Loading...

ScriptHookV .NET Core v1.2.1

Download
86deb9 dotnet

23,732

ScriptHookV, for .NET Core
Created with the goal to upgrade ScriptHookV .NET to latest .NET Core runtime, while maintaing compatability with previous versions. See the issue and discussion here

Requirements:
An asi loader and Alexander Blade's ScriptHookV
.NET 7 desktop runtime

Installation:
Extract all contents inside the zip archive to your game root.

For developers:
Create a .NET 7 class library project.

[CoreCLR]
Install the nuget package and start writing scripts like you would in SHVDN.
Add <EnableDynamicLoading>true</EnableDynamicLoading> to your csproj, and copy output to a folder in GTAROOT\CoreScripts, e.g. GTAROOT\CoreScripts\MyScripts.

[NativeAOT]
Install this package instead and copy the compiled dll in the native folder inside the output directory (important! File size should be larger than 4 mb) to GTAROOT\CoreScripts folder.

Press End to unload all scripts, Home to reload.
See the project on GitHub for detailed guides and more information.

Note
This project is a seperate asi plugin that only depends on ScriptHookV. It provides a new way to write scripts in latest .NET version, it does not replace SHVDN, the latter is still needed to run the scripts that're built against it. Existing scripts will continue to work as long as you have SHVDN installed.


Experimental, might have bugs/crash

Credits:
Alexander Blade for his ScriptHookV
crosire and all contributors of ScriptHookV .NET.
Basically all scripting API are from ScriptHookV .NET, with some modifications to adapt to new runtime.

Changelogs(might not be up-to-date, see complete ones on GitHub release page):

v1.2.1
- Fix crash and native call not working in Release build

v1.2.0

v1.1.2

v1.1.1


v1.1.0
- Fixed issue in source generator that causes duplicated script loading under some circumstances (#2)
- Added in-game console, press F6 to open by default, configurable through the ini file. The console is not as powerful as that of SHVDN, only commands registered by scripts can be executed as it's impossible to dynamically compile and execute code in NativeAOT. To expose a function as command, mark it with GTA.ConsoleCommand attribute, most primitives and class that implements IConvertible can be converted and passed as parameters.
- Fixed an error that causes random crash probaly due to the use of fiber switching and GC by reintrducing dedicated script thread, performance degration is expected. To get better performance, mark the script class with [ScriptAttribute(NoScriptThread = true)] like those in the base script, but beware that Script.Yield() and Script.Wait() will throw an exception running in such mode.
- Save time for memory scanning each time a module is loaded by reusing NativeMemoryStruct
- Added NativeInvoker class, which allows easy and intuitive native function calling with strong-typed parameters and comments
Show Full Description

First Uploaded: December 21, 2022
Last Updated: March 12, 2023
Last Downloaded: 31 minutes ago

All Versions

 v1.2.1 (current)

14,340 downloads , 8.29 MB
March 12, 2023

 v1.2.0

297 downloads , 7.94 MB
March 11, 2023

 v1.1.0

3,796 downloads , 7.13 MB
February 08, 2023

 v1.0.0

5,300 downloads , 5.28 MB
December 21, 2022

23 Comments