Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
LethalNetworkAPI
A library/API to allow developers to easily add networking to their mods.
| Date uploaded | 16 hours ago |
| Version | 3.3.3 |
| Download link | xilophor-LethalNetworkAPI-3.3.3.zip |
| Downloads | 5984 |
| Dependency string | xilophor-LethalNetworkAPI-3.3.3 |
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
LethalNetworkAPI
This mod is an API meant for mod developers.
Usage
See the GitHub Wiki for information on how to use this API in your mod.
Acknowledgements
Thank you @Lordfirespeed for helping set up the GitHub Actions, and continually being my rubber ducky!
Thank you @giosuel for helping me test the v3 major release of this API!
Thank you @Dreadrith for helping test and reform this API in the preview/release-candidate stage!
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]
[v3.3.3]
Changed
- Updated dependencies (OdinSerializer; UnityModules) to latest applicable versions
[v3.3.2]
Fixed
- Fixed
NullReferenceExceptionthat occurs inLNetworkVariables when re-hosting a lobby.
[v3.3.1]
Fixed
- Fixed error occuring when disconnecting from a lobby when you were previously a host in the game session.
[v3.3.0]
Added
LNetworkUtils.OnNetworkStartCallback- This event will run when the server/client starts up.
Changed
- Minor Internal Refactoring
[v3.2.1]
Added
- Support for LobbyCompatibility; this will ensure that the server and clients are using the same version of this API.
Fixed
- Fixed
IsConnectednot working properly.
[v3.2.0]
Changed
- Improved error messages.
- Changed internal backend to be more optimal and only use Networking and Serialization when necessary.
Fixed
- Fixed
SendOtherClientsnot sending to the server. - Fixed
LNetworkUtils.AllConnectedClientsnot including the server.
[v3.1.1]
Fixed
- Fixed Shutdown error for
UnnamedMessageHandler. - Fixed
LNetworkVariableupdate error when the variable has not yet been created on the client.
[v3.1.0]
Added
- Added
LNetworkVariable- replacesLethalNetworkVariable.- Added
LNetworkVariableWritePermsenum to control the write permissions of the variable. - Added
UpdateOwnermethod to update the owner of the variable. - Added
Disposemethod to dispose of the variable.
- Added
Fixed
- Fixed clients not sending events/messages/variable updates to other clients.
[v3.0.3]
Fixed
- NGO
ConnectedClients should only be accessed on the servererror.
[v3.0.2]
Fixed
- Some built-in types not serializing properly.
- NGO
InvalidOperationExceptionduring disconnecting if aLethalNetworkVariableis used.
[v3.0.1]
Fixed
InvalidOperationException: Invalid binary data streamerror.
[v3.0.0]
Added
LNetworkMessage- Simplifies sending/receiving messages between the server and clients by using a single class instead of multiple classes
- Replaces
LethalServerMessageandLethalClientMessage
LNetworkEvent- Simplifies sending/receiving events between the server and clients by using a single class instead of multiple classes
- Replaces
LethalServerEventandLethalClientEvent
- Added
LNetworkUtils
Changed
- Reworked the entire API
- Now uses Unity's new
CustomMessagingManagerto send messages - This allows for vanilla compatibility, though it is not recommended
- Added
LNetworkMessage - Added
LNetworkEvent
- Now uses Unity's new
Deprecated
- The
LethalClientMessageandLethalServerMessageclasses- Use
LNetworkMessageinstead
- Use
- The
LethalClientEventandLethalServerEventclasses- Use
LNetworkEventinstead
- Use
- The
LethalNetworkVariableclass- Currently, there is no replacement for this class. If you need to use it immediately, this class still will work but will receive no updates
[v2.1.7]
Added
ClearSubscriptionsmethod for messages & events
[v2.1.7]
Changed
- Added warning when using incorrect build - only for devs
Fixed
- Incompatibility with latest (preview) LLL versions
[v2.1.6]
Changed
- Reverted Serialization Changes from v2.1.5
Fixed
- Network Variable ownership ignored when joining a lobby
- Null Variables breaking loading into a server
[v2.1.5]
Changed
- Serialization of NetworkObjects/Behaviours
- Should now support collections
Fixed
- Error when setting a Network Variable's value before joining a lobby.
[v2.1.4]
Added
- NuGet Package Tags
Fixed
- Actually fixed issues with re-hosting.
[v2.1.3]
Changed
- Increased Harmony Patch priority
[v2.1.2]
Changed
- Minor internal refactoring.
- Better error messages.
[v2.1.1]
Fixed
- Issue with Network Variables causing error when re-hosting
[v2.1.0]
Added
- Ability to create network messages and events with a method to run instead of having to subscribe separately.
Changed
- Minor internal refactoring.
Fixed
- Issue with networking Network Variables
[v2.0.2]
Added
- Stack-traces to identifier errors.
[v2.0.1]
Fixed
- Extensions were not accessible.
- Identifiers were not mod-specific.
[v2.0.0]
Added
- Ability to create Network Variables specific to a Network Object.
[PublicNetworkVariable]Attribute
Changed
- Network Variables
- Ownership
- By default, the server is now the owner.
- Using the
[PublicNetworkVariable]Attribute, you can allow any client to modify the variable. - Client-owned variables can only be made by creating one specific to a Network Object.
- A great choice is
PlayerControllerB
- A great choice is
- Ownership
- Internal Refactoring
Removed
- LethalNetworkVariable.SetOwnership()
- Removed in favor of the newly reworked Network Variable ownership system.
[LethalNetworkProtected]Attribute- Removed in favor of the newly reworked Network Variable ownership system.
Fixed
- Errors when re-hosting a server
[v1.1.3]
Changed
- Updated NuGet Package License
[v1.1.2]
Changed
- Updated Changelog
[v1.1.1]
Changed
- Internal GitHub Workflow Shenanigans
[v1.1.0]
Changed
- Backend NetworkHandler Rework
- May not be compatible with v1.0.0
[v1.0.0]
Added
- Network Messages
- Network Events
- Network Variables
- Network Utils/Extensions