Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
StaticNetcodeLib
A library/patcher for NGO in a static context.
| Last updated | 3 months ago |
| Total downloads | 2689969 |
| Total rating | 14 |
| Categories | Libraries BepInEx Client-side Server-side |
| Dependency string | xilophor-StaticNetcodeLib-1.2.0 |
| Dependants | 1776 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100Lordfirespeed-OdinSerializer
Fast, robust, powerful and extendible .NET serializer built for Unity
Preferred version: 2024.2.2700README
StaticNetcodeLib
This lib allows BepInEx mods to use Netcode for GameObjects in a static context.
Usage
Add the appropriate BepInDependency attribute to your plugin class, like so:
[BepInDependency(StaticNetcodeLib.Guid, DependencyFlags.HardDependency)]
public class ExampleMod : BaseUnityPlugin
Then add the StaticNetcode attribute to any classes that have static rpcs.
[StaticNetcode]
public class ExampleNetworkingClass
After that, you can simply use Server & Client Rpcs as you normally would (even outside NetworkBehaviours), but in a static context, like so:
[ClientRpc]
public static void ExampleClientRpc(string exampleString)
{
ExampleMod.Logger.LogDebug(exampleString);
}
/* ... */
ExampleClientRpc("Hello, world!");
Note: The Rpc attribute params are not respected for this. For example, ServerRpcs are static and thus cannot have an owner, and are used as if it had the RequireOwnership = false parameter.
Acknowledgements
Thank you @Lordfirespeed for being my rubber ducky.