Yes! SHVDN itself supports all official versions including
v1.0.372.2. If we find our APIs that can be technically used but
not working in some game versions despite our intention, we will
fix them. If you find some of them or if you wonder the supported
game versions of certain APIs due to the lack of the
documentations, your reports would be greatly appreciated on
GitHub.
Since some major game update introduces some native functions (Rockstar
calls them commands) and SHVDN lets their scripts do unsafe operations
including but not limited to arbitrary direct memory reading/writing,
some advanced SHVDN scripts may not work in certain game versions.
If some scripts do not work in certain versions and you believe it
is wrong, you might want to consult the script developers for more
supported game versions.
SHVDN does not contain any anti-piracy checks of any kind. Pirated copies just do not receive support. If it works, then it works. If not, additional support is not going to be added. We just do not care about any pirated copies.
Nope! SHVDN does not intentionally disable any Rockstar Social
Club features. For example, you can use your GTA:O characters in
Director Mode while SHVDN is installed in your game.
However, the game prevent you from playing GTA:O while an ASI loader
is installed for altered game files. Therefore, you must uninstall
any mods including SHVDN and the ASI loader before you can play GTA:O.
You should find out what scripts are causing your issue. You would
want to try removing suspicious scripts one by one.
Unfortunately, Script Hook V's structured exception handling disables
SHVDN (and any ASI plugins) to create crash logs, so we cannot help
you with our crash logs until some ASI plugin is released that can
disable Script Hook V's structured exception handling. If said plugin
is released, we may create our crash logging feature.
No, you can't. You need to use the ASI file and the DLL files for APIs in an archive of the same version because the internal structure of the SHVDN runtime and scripting SDK/APIs can be changed without notices. If you experience some issues by cherry-picking a ASI file and DLL files for scripting SDK/APIs, we will not provide support at all.
In official, that will not happen until the v4 SDK of SHVDN is
released for more organized and polished SDK. The lack of most
features of AppDomain, which SHVDN relies on for script reload, forces us to
pracically recreate a runtime against .NET Core/.NET 5+ from
scratch before we can create our .NET Core/.NET 5+ variant of
SHVDN. Also, we are aiming to figure out major flaws of our v3
scripting SDK/API before we release SHVDN v4.
You can try ScriptHookV .NET Core if you want to try a forked .NET 7 variant of SHVDN.
You create your project for a "Class Library (.NET Framework)",
and add the ScriptHookVDotNet3 package as a reference. You can use the NuGet package for v3 SDK/API for easier management. And then, you create at least one class that
inherits from the GTA.Script class and has a public default constructor.
Your scripts should subscribe to at least one of Tick, KeyDown, and
KeyUp events to have some effect on the game in practical. Also, they
should subscribe to the Aborted event in the typical case so they can
dispose of their own scripting resources when about to be terminated.
C#.
You might appreciate C# more if you learn to use unsafe code for
more interop between your script and the game. You can even do
some custom function hooking for super advanced features with a
library such as EasyHook.
C# also supports direct unsafe operations and one-way C/C++ function invokation. This would indicate you might not want to bother to use C++/CLI
unless you have to create scripts where some functions can be
called from programs built against C or C++, which is unlikely to
happen.
You should use the latest scripting version for new projects,
which is, v3 as of v3.7.0. Older scripting SDK/APIs should be used
only for older projects built against an older SDK/API or when you
have to use libraries built against an older SDK/API.
We make breaking changes only in new major versions, except for ones
that will break only few scripts in favor of performance improvements.
Older scripting SDK/APIs will not receive any new features after we
release a newer major version. We do not immediately stop supporting
older scripting SDK/APIs for compatibility issues or performance improvements
after a new major version is released, but some of the flawed API designs
of older SDK/APIs may prevent us from improving performance and the
convenience like we can do in newer SDK/APIs.
We decided not to do either of them by design. We don't provide wrappers for the typed method declarations intended to use within scripts, because the C# compiler does not remove any unused methods or properties whose visibility are restricted to its assembly. Scripting SDK/APIs will never have any typed method declarations because you have to disassemble GTA5.exe to exactly know how natives work and Rockstar may change some native functions to take additional arguments in some game updates (there are cases in v1.0.1103.2 at the latest).
For the official abbreviation, yes. We recommend using "SHVDN" as the abbreviation of ScriptHookVDotNet, just like the
developers of RAGE Plugin Hook (MulleDK19 and LMS) always use
"RPH" as the official abbreviation. On the other hand, we don't
recommend using "SHDN" ('V' is absent) since using SHDN as an
abbreviation may result in the ambiguity between ScriptHookVDotNet
and GTAIV .Net Script Hook in GTA communities.
We rarely use the name "Community Script Hook V .NET" today as much
more people calls this plugin ScriptHookVDotNet than those who call
"Community Script Hook V .NET".
kagikn and contributors, and
formerly crosire led the project
since April 2015 until May 2023. kagikn is leading the project since crosire assigned kagikn to the repository maintenance except for the participation in changes to the ScriptDomain core
in May 2023.