Releases: needle-mirror/com.unity.netcode.gameobjects
1.15.1
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[1.15.1] - 2026-01-21
Fixed
- general documentation update
2.8.0
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[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)
1.15.0
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[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
Fixed
- Multiple disconnect events from the same transport will no longer disconnect the host. (#3721)
- Exception when the network prefab list in the network manager has uninitialized elements. (#3744)
2.7.0
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[2.7.0] - 2025-10-27
Added
RpcInvokePermissionto control who has permission to invoke specific RPC methods. (#3731)- Added NetworkRigidbody documentation section. (#3664)
- Added new fields to the
SceneMapstruct when using Unity 6.3 or higher. These fields allow referencing scene handles via the newSceneHandlestruct. (#3734)
Changed
- Better error message when using generic IEquatable in a generic INetworkSerializable class and updated documentation with workaround. (#3739)
- The
NetworkManagerfunctionsGetTransportIdFromClientIdandGetClientIdFromTransportIdwill now returnulong.MaxValuewhen the clientId or transportId do not exist. (#3707) - Changed NetworkShow to send a message at the end of the frame and force a NetworkVariable synchronization prior to generating the CreateObjectMessage as opposed to waiting until the next network tick to synchronize the show with the update to NetworkVariables. (#3664)
- Changed NetworkTransform now synchronizes
NetworkTransform.SwitchTransformSpaceWhenParentedwhen it is updated by the motion model authority. (#3664) - Changed when NetworkObjects pending to be shown to clients can now occur on partial network ticks. If any pending NetworkObjects pending to be shown to clients happens to be ready on a new network tick they still are shown after network variable deltas have been processed. (#3664)
- Changed the default
NetworkDeliveryused by all messages is now reliable fragmented sequenced with the exception of named, unnamed, and any messages sent with a user specified network delivery type. This assures certain order of operations to be preserved when same call-stack changes are applied to a newly spawned, authority side, NetworkObject. (#3664) - Changed NetworkTransform documentation to better reflect the Teleport methods intended usage along with updates to NetworkObject and physics areas of the documentation. (#3664)
- The first session owner no longer sends two synchronization messages to the service. (#3563)
2.6.0
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[2.6.0] - 2025-10-11
Added
NetworkSceneManageras an internal wrapper for theSceneManager.Scene.handleand swapped all places that use anintto represent aScene.handleto instead use theNetworkSceneManager. (#3647)- Clicking on the Help icon in the inspector will now redirect to the relevant documentation. (#3663)
- Added a
Setfunction ontoNetworkListthat takes an optional parameter that forces an update to be processed even if the current value is equal to the previous value. (#3690)
Changed
- Improved performance of the NetworkVariable. (#3683)
- Improved performance around the NetworkBehaviour component. (#3687)
Fixed
- Distributed authority clients no longer send themselves in the
ClientIdslist when sending aChangeOwnershipMessage. (#3687) - Made a variety of small performance improvements. (#3683)
2.5.1
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[2.5.1] - 2025-09-13
Added
- Added a warning when
NetworkManager.NetworkConfig.ConnectionApprovalis set in a distributed authority context. (#3658)
Fixed
- Fixed issue where a client, under above average latency and packet loss conditions, could receive multiple NetworkTransform state updates in one frame and when processing the state updates only the last state update would be applied to the transform if interpolation was disabled. (#3614)
2.5.0
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[2.5.0] - 2025-08-17
Added
- Added
AsNativeArray()read‑only accessor toNetworkList<T>(#3567) - Added serializer for
Pose(#3546) - Added
AttachableBehaviourhelper component to provide an alternate approach to parenting items without using theNetworkObjectparenting. (#3518) - Added
AttachableNodehelper component that is used byAttachableBehaviouras the target node for parenting. (#3518) - Added
ComponentControllerhelper component that can be used to synchronize the enabling and disabling of components and can be used in conjunction withAttachableBehaviour. (#3518) - Added
NetworkBehaviour.OnNetworkPreDespawnthat is invoked before running through the despawn sequence for theNetworkObjectand all NetworkBehaviour children of theNetworkObjectbeing despawned. (#3518) - Added methods
GetDefaultNetworkSettingsandGetDefaultPipelineConfigurationstoUnityTransport. These can be used to retrieve the default settings and pipeline stages that are used byUnityTransport. This is useful when providing a custom driver constructor throughUnityTransport.s_DriverConstructor, since it allows reusing or tuning the existing configuration instead of trying to recreate it. This means a transport with a custom driver can now easily benefit from most of the features ofUnityTransport, like integration with the Network Simulator and Network Profiler from the multiplayer tools package. (#3501) - Added mappings between
ClientIdandTransportId. (#3516) - Added
NetworkPrefabInstanceHandlerWithData<T>, a variant ofINetworkPrefabInstanceHandlerthat provides access to custom instantiation data directly within theInstantiate()method. (#3497)
Fixed
- Removed allocation to the heap in NetworkBehaviourUpdate. (#3573)
- Fixed issue where NetworkConfig.ConnectionData could cause the ConnectionRequestMessage to exceed the transport's MTU size and would result in a buffer overflow error. (#3564)
- Fixed regression issue in v2.x where
NetworkObject.GetNetworkBehaviourAtOrderIndexwas converted from public to internal. (#3541) - Fixed ensuring OnValueChanged callback is still triggered on the authority when a collection changes and then reverts to the previous value in the same frame. (#3539)
- Fixed synchronizing the destroyGameObject parameter to clients for InScenePlaced network objects. (#3514)
- Fixed distributed authority related issue where enabling the
NetworkObject.DestroyWithScenewould cause errors when a destroying non-authority instances due to loading (single mode) or unloading scene events. (#3500) - Fixed an issue where
UnityTransportwould not accept single words as valid hostnames (notably "localhost"). (#3591) - Fixed issue where viewing a
NetworkBehaviourwith one or moreNetworkVariablefields could throw an exception if running a distributed authority network topology with a local (DAHost) host and viewed on the host when the host is not the authority of the associatedNetworkObject. (#3578) - Fixed issue when using a distributed authority network topology and viewing a
NetworkBehaviourwith one or moreNetworkVariablefields in the inspector view would not show editable fields. (#3578) - Fixed issue with unnecessary internal GC Allocations when using the
IReadOnlyListNetworkManager.ConnectedClientsIdswithin aforeachstatement by either replacing with aforloop or directly referencing theNetworkConnectionManager.ConnectedClientIds. (#3527)
Changed
- Marked
UnityTransport.ConnectionAddressData.ServerEndPointas obsolete. It can't work when using hostnames as the server address, and its functionality can easily be replicated usingNetworkEndpoint.Parse. (#3591) - Optimized
NetworkList<T>indexer setter to skip operations when the new value equals the existing value, improving performance by avoiding unnecessary list events and network synchronization. (#3587)
1.14.1
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[1.14.1] - 2025-08-17
Fixed
- Fixed issue with unnecessary internal GC Allocations when using the
IReadOnlyListNetworkManager.ConnectedClientsIdswithin aforeachstatement by either replacing with aforloop or directly referencing theNetworkConnectionManager.ConnectedClientIds. (#3601) - Fixed issue with allocation to the heap in NetworkBehaviourUpdate when there is nothing to be updated. (#3568)
- Fixed issue where NetworkConfig.ConnectionData could cause the ConnectionRequestMessage to exceed the transport's MTU size and would result in a buffer overflow error. (#3565)
1.14.0
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[1.14.0] - 2025-07-21
Added
- Added serializer for
Pose(#3540) - Added mappings between
ClientIdandTransportId. (#3515) - Added
SinglePlayerTransportthat provides the ability to start as a host for a single player network session. (#3475) - When using UnityTransport >=2.4 and Unity >= 6000.1.0a1, SetConnectionData will accept a fully qualified hostname instead of an IP as a connect address on the client side. (#3440)
Fixed
- Fixed
NullReferenceExceptiononNetworkListwhen used without a NetworkManager in scene. (#3502) - Fixed inconsistencies in the
OnSceneEventcallback. (#3487) - Fixed issue where
NetworkClientcould persist some settings if re-using the sameNetworkManagerinstance. (#3494) - Fixed issue where a pooled
NetworkObjectwas not resetting the internal latest parent property when despawned. (#3494) - Fixed issue where the initial client synchronization pre-serialization process was not excluding spawned
NetworkObjectsthat already had pending visibility for the client being synchronized. (#3493) - Fixed issue where invoking
NetworkObject.NetworkShowandNetworkObject.ChangeOwnershipconsecutively within the same call stack location could result in an unnecessary change in ownership error message generated on the target client side. (#3493) - Fixed issue where
NetworkVariables on aNetworkBehaviourcould fail to synchronize changes if one hasNetworkVariableUpdateTraitsset and is dirty but is not ready to send. (#3465) - Fixed issue where when a client changes ownership via RPC the
NetworkBehaviour.OnOwnershipChangedcan result in identical previous and current owner identifiers. (#3434)
Changed
2.4.4
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[2.4.4] - 2025-07-07
Added
- Added documentation to package repository.