![xilophor-StaticNetcodeLib-1.1.0 icon](https://gcdn.thunderstore.io/live/repository/icons/xilophor-StaticNetcodeLib-1.1.0.png.128x128_q95.jpg)
StaticNetcodeLib
A library/patcher for NGO in a static context.
Date uploaded | 2 weeks ago |
Version | 1.1.0 |
Download link | xilophor-StaticNetcodeLib-1.1.0.zip |
Downloads | 6276 |
Dependency string | xilophor-StaticNetcodeLib-1.1.0 |
This mod requires the following mods to function
![BepInEx-BepInExPack-5.4.2100 icon](https://gcdn.thunderstore.io/live/repository/icons/BepInEx-BepInExPack-5.4.2100.png.64x64_q95.png)
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100![Lordfirespeed-OdinSerializer-2022.11.9 icon](https://gcdn.thunderstore.io/live/repository/icons/Lordfirespeed-OdinSerializer-2022.11.9.png.64x64_q95.png)
Lordfirespeed-OdinSerializer
Fast, robust, powerful and extendible .NET serializer built for Unity
Preferred version: 2022.11.9README
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.
CHANGELOG
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[v1.1.0]
Changed
- The static RPCs should now serialize anything you throw at it.
[v1.0.3]
Changed
- Internal Refactoring
Fixed
- Fixed failure to patch static rpcs
[v1.0.2]
Fixed
- Fixed error when an installed mod did not get loaded
[v1.0.1]
Changed
- Internal Refactoring
- Updated README
[v1.0.0]
Added
- Added static RPC patching