Releases: Unity-Technologies/com.unity.netcode.gameobjects
Releases · Unity-Technologies/com.unity.netcode.gameobjects
v2.11.1
[2.11.1] - 2026-04-26
Added
- Better context aware logging (#3944)
Changed
- Improve handling of destroyed NetworkBehaviours. The collection of which NetworkBehaviours belong to a NetworkObject is now a Dictionary giving stable lookup. (#3953)
- Hardened error handling and recovery during
NetworkObjectspawn. (#3941) - Replaced Debug usage by NetcodeLog on
NetworkSpawnManagerandNetworkObject. (#3933) - Improved performance of
NetworkBehaviour. (#3915) - Improved performance of
NetworkTransform. (#3907) - Improved performance of
NetworkRigidbodyBase. (#3906) - Improved performance of
NetworkAnimator. (#3905) - Small cleanup and replaced Debug usage by NetcodeLog on
NetworkSpawnManagerandNetworkObject. (#3933)
Removed
- Removed un-needed exceptions on
NetworkSpawnManager. (#3933)
Fixed
- Fixed issue where either an
AttachableBehaviouror anAttachableNodecan throw an exception if they are attached during a scene unload where one of the two persists the scene unload event and the other does not. (#3931) - Fixed issue where attempts to use
NetworkLogwhen there is noNetworkManagerinstance would result in an exception. (#3917) - CreateObject and DestroyObject messages will now be properly deferred while the client is still connecting (#3941)
- Resources will be properly cleaned up when an object spawn fails (#3941)
- Non-authority client will now always have the
OnSceneEventcallback triggered with theSynchronizeevent when starting to process theSynchronizemessage from the scene authority (#3941)
v2.11.0
[2.11.0] - 2026-03-19
Added
- Added a
WebSocketPathfield toUnityTransport.ConnectionData(which also shows up in the inspector if "Use WebSockets" is checked) that controls the path clients will connect to and servers/hosts will listen on when using WebSockets. (#3903) NetworkTransport.EarlyUpdateandNetworkTransport.PostLateUpdateare now public. For the vast majority of users, there's really no point in ever calling those methods directly (the NetworkManager handles it). It's only useful if wrapping transports outside of NGO. (#3890)
Fixed
- Fixed issue where starting the
NetworkManagerwithinOnClientStoppedorOnServerStoppedresulted in a broken NetworkManager state. (#3908) - Fixed issue where an attachable could log an error upon being de-spawned during shutdown. (#3589)
- NestedNetworkVariables initialized with no value no longer throw an error. (#3891)
- Fixed NetworkShow behavior when it is called twice. (#3867)
Removed
- Removed un-needed exceptions on
NetworkObject.cs. (#3867)
Obsolete
NotListeningExceptionis now marked as obsolete as it is no longer used internally. (#3867)
v2.10.0
[2.10.0] - 2026-03-01
Added
- The
NetworkMetricsPipelineStagefor Unity Transport is now part of the public API. This allows using it in custom implementations ofINetworkStreamDriverConstructorthat want to maintain compatibility with the multiplayer tools package. (#3853)
Changed
- Updating usage of deprecated
FindObjectsByType(FindObjectsSortMode)and enumFindObjectSortModein 6000.4 and 6000.5. (#3857)
Fixed
- Fixed
NetworkTransformissue where a user could enable UseUnreliableDeltas while SwitchTransformSpaceWhenParented was also enabled (and vice versa). (#3875) - Fixed issue where
NetworkVariablewas not properly synchronizing to changes made by the spawn and write authority duringOnNetworkSpawnandOnNetworkPostSpawn. (#3878) - Fixed issue where
NetworkManagerwas not cleaning itself up if an exception was thrown while starting. (#3864) - Prevented a
NullReferenceExceptionin UnityTransport when using a customINetworkStreamDriverConstructorthat doesn't use all the default pipelines and the multiplayer tools package is installed. (#3853)
v2.9.2
v2.8.2
v2.9.1
v2.9.0
[2.9.0] - 2026-02-01
Added
- Added stricter checks on InSpawned within NetworkObject. (#3831)
- Added a new InvalidOperation status to OwnershipRequestStatus. (#3831)
Changed
- Ensure logs in NetworkObject log the NetworkObject.name wherever possible. (#3283)
- Improved performance of NetworkBehaviour ILPostProcessor by omitting unnecessary type and assembly resolutions. (#3827)
- Improve performance of NetworkObject. (#3820, #3831)
- If the Unity Transport Disconnect Timeout is set to 0 in the Editor, the timeout will be entirely disabled. (#3810)
Fixed
- Duplicate transport connection events for the same connection will now do nothing. (#3861)
- Fixed memory leak in NetworkAnimator on clients where RpcTarget groups were not being properly disposed due to incorrect type casting of ProxyRpcTargetGroup to RpcTargetGroup.
- Fixed issue when using a client-server topology where a NetworkList with owner write permissions was resetting sent time and dirty flags after having been spawned on owning clients that were not the spawn authority. (#3850)
- Fixed an integer overflow that occurred when configuring a large disconnect timeout with Unity Transport. (#3810)
v2.8.1
v2.8.0
[2.8.0] - 2025-12-15
Added
- It is now possible to control which port clients will bind to using the
UnityTransport.ConnectionData.ClientBindPortfield. If not set, clients will bind to an ephemeral port (same as before this change). (#3764) - Added a flag to override command-line arguments (port and ip) in
SetConnectionData. (#3760) - Added a command-line singleton to parse environment command-line arguments. (#3760)
- Added
NetworkAnimator.AuthorityModewhich allows you to select whether theNetworkAnimatorwill use a server or owner authority model for state updates (likeNetworkTransform). (#3586) - Added the ability to select which
Animatorparameters the authorityNetworkAnimatorinstance should synchronize. This can be done via the inspector view interface or during runtime viaNetworkAnimator.EnableParameterSynchronization. (#3586)
Changed
- Improve performance of
ParentSyncMessage. (#3814) - Improve performance of
DestroyObjectMessage. (#3801) - Improve performance of
CreateObjectMessage. (#3800) - First pass of CoreCLR engine API changes. (#3799)
- Changed when a server is disconnecting a client with a reason it now defers the complete transport disconnect sequence until the end of the frame after the server's transport has sent all pending outbound messages. (#3786)
- Improve performance of
NetworkTransformState. (#3770) - Changed NetworkAnimator to use the
RpcAttributealong with the appropriateSendToparameter. (#3586)
Fixed
- Ensure
NetworkBehaviour.IsSessionOwneris correctly set when a new session owner is promoted. (#3817) - Fixed issue where spawning a player in distributed authority mode via a client, typically session owner, other than the newly connected client and scene management is disabled then the already spawned players will not properly get synchronized by each owning client due to the newly connected client's identifier already being added prior to synchronization. (#3816)
- Reset extended ownership flags on
NetworkObjectdespawn. (#3817) - Fixed issues with the "Client-server quickstart for Netcode for GameObjects" script having static methods and properties. (#3787)
- Fixed issue where a warning message was being logged upon a client disconnecting from a server when the log level is set to developer. (#3786)
- Fixed issue where the server or host would no longer have access to the transport id to client id table when processing a transport level client disconnect event. (#3786)
- Fixed issue where invoking an RPC, on another
NetworkBehaviourassociated with the sameNetworkObjectthat is ordered before theNetworkBehaviourinvoking the RPC, duringOnNetworkSpawncould throw an exception if scene management is disabled. (#3782) - Fixed issue where the
Axis to Synchronizetoggles didn't work with multi object editing inNetworkTransform. (#3781) - Fixed issue where using the dedicated server package would override all attempts to change the port by code. (#3760)
- Fixed issue with authority animator instance sending itself RPCs. (#3586)
v1.15.0
[1.15.0] - 2025-11-14
Changed
- Better error message when using generic IEquatable in a generic INetworkSerializable class and updated documentation with workaround. (#3744)
- The
NetworkManagerfunctionsGetTransportIdFromClientIdandGetClientIdFromTransportIdwill now returnulong.MaxValuewhen the clientId or transportId do not exist. (#3721) - Changed minimum Unity version supported to 2022.3 LTS