Skip to content

Releases: Unity-Technologies/com.unity.netcode.gameobjects

v2.7.0

03 Nov 19:47
b1ca571

Choose a tag to compare

[2.7.0] - 2025-10-27

Added

  • RpcInvokePermission to control who has permission to invoke specific RPC methods. (#3731)
  • Added NetworkRigidbody documentation section. (#3664)
  • Added new fields to the SceneMap struct when using Unity 6.3 or higher. These fields allow referencing scene handles via the new SceneHandle struct. (#3734)

Changed

  • Better error message when using generic IEquatable in a generic INetworkSerializable class and updated documentation with workaround. (#3739)
  • The NetworkManager functions GetTransportIdFromClientId and GetClientIdFromTransportId will now return ulong.MaxValue when 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.SwitchTransformSpaceWhenParented when 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 NetworkDelivery used 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)
  • Updated transport dependency of the package to 2.6.0 (#3736)

Deprecated

  • Deprecated all RequireOwnership fields around the RPCs in favor of the RpcInvokePermission. (#3731)
  • On Unity 6.5 some SceneMap fields that use an int to represent a SceneHandle are deprecated. (#3734)

Removed

  • Removed usage of UNITY_UNET_PRESENT define (#3736)

Fixed

  • Initialization errors with NetworkAnimator. (#3767)
  • Multiple disconnect events from the same transport will no longer disconnect the host. (#3707)
  • Fixed NetworkTransform state synchronization issue when NetworkTransform.SwitchTransformSpaceWhenParented is enabled and the associated NetworkObject is parented multiple times in a single frame or within a couple of frames. (#3664)
  • Fixed issue when spawning, parenting, and immediately re-parenting when NetworkTransform.SwitchTransformSpaceWhenParented is enabled. (#3664)
  • Fixed issue where the disconnect event and provided message was too generic to know why the disconnect occurred. (#3551)
  • Exception when the network prefab list in the network manager has uninitialized elements. (#3739)

v2.6.0

16 Oct 16:22
a0231c6

Choose a tag to compare

[2.6.0] - 2025-10-11

Added

  • NetworkSceneManager as an internal wrapper for the SceneManager.Scene.handle and swapped all places that use an int to represent a Scene.handle to instead use the NetworkSceneManager. (#3647)
  • Clicking on the Help icon in the inspector will now redirect to the relevant documentation. (#3663)
  • Added a Set function onto NetworkList that 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 ClientIds list when sending a ChangeOwnershipMessage. (#3687)
  • Made a variety of small performance improvements. (#3683)

v2.5.1

15 Sep 12:50

Choose a tag to compare

[2.5.1] - 2025-09-13

Added

  • Added a warning when NetworkManager.NetworkConfig.ConnectionApproval is 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)

v1.14.1

26 Aug 08:13

Choose a tag to compare

[1.14.1] - 2025-08-17

Fixed

  • Fixed issue with unnecessary internal GC Allocations when using the IReadOnlyList NetworkManager.ConnectedClientsIds within a foreach statement by either replacing with a for loop or directly referencing the NetworkConnectionManager.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)

v2.5.0

21 Aug 10:07

Choose a tag to compare

🎉 Netcode for GameObjects v2.5.0 📦 is now publicly available 👉 (CHANGELOG)

Added

  • Added AsNativeArray() read‑only accessor to NetworkList (#3567)
  • Added serializer for Pose (#3546)
  • Added AttachableBehaviour helper component to provide an alternate approach to parenting items without using the NetworkObject parenting. (#3518)
  • Added AttachableNode helper component that is used by AttachableBehaviour as the target node for parenting. (#3518)
  • Added ComponentController helper component that can be used to synchronize the enabling and disabling of components and can be used in conjunction with AttachableBehaviour. (#3518)
  • Added NetworkBehaviour.OnNetworkPreDespawn that is invoked before running through the despawn sequence for the NetworkObject and all NetworkBehaviour children of the NetworkObject being despawned. (#3518)
  • Added methods GetDefaultNetworkSettings and GetDefaultPipelineConfigurations to UnityTransport. These can be used to retrieve the default settings and pipeline stages that are used by UnityTransport. This is useful when providing a custom driver constructor through UnityTransport.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 of UnityTransport, like integration with the Network Simulator and Network Profiler from the multiplayer tools package. (#3501)
  • Added mappings between ClientId and TransportId. (#3516)
  • Added NetworkPrefabInstanceHandlerWithData, a variant of INetworkPrefabInstanceHandler that provides access to custom instantiation data directly within the Instantiate() 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.GetNetworkBehaviourAtOrderIndex was 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.DestroyWithScene would cause errors when a destroying non-authority instances due to loading (single mode) or unloading scene events. (#3500)
  • Fixed an issue where UnityTransport would not accept single words as valid hostnames (notably "localhost"). (#3591)
  • Fixed issue where viewing a NetworkBehaviour with one or more NetworkVariable fields 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 associated NetworkObject. (#3578)
  • Fixed issue when using a distributed authority network topology and viewing a NetworkBehaviour with one or more NetworkVariable fields in the inspector view would not show editable fields. (#3578)
  • Fixed issue with unnecessary internal GC Allocations when using the IReadOnlyList NetworkManager.ConnectedClientsIds within a foreach statement by either replacing with a for loop or directly referencing the NetworkConnectionManager.ConnectedClientIds. (#3527)

Changed

  • Marked UnityTransport.ConnectionAddressData.ServerEndPoint as obsolete. It can't work when using hostnames as the server address, and its functionality can easily be replicated using NetworkEndpoint.Parse. (#3591)
  • Optimized NetworkList 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.0

31 Jul 14:09

Choose a tag to compare

[1.14.0] - 2025-07-21

Added

  • Added serializer for Pose (#3540)
  • Added mappings between ClientId and TransportId. (#3515)
  • Added SinglePlayerTransport that 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 NullReferenceException on NetworkList when used without a NetworkManager in scene. (#3502)
  • Fixed inconsistencies in the OnSceneEvent callback. (#3487)
  • Fixed issue where NetworkClient could persist some settings if re-using the same NetworkManager instance. (#3494)
  • Fixed issue where a pooled NetworkObject was not resetting the internal latest parent property when despawned. (#3494)
  • Fixed issue where the initial client synchronization pre-serialization process was not excluding spawned NetworkObjects that already had pending visibility for the client being synchronized. (#3493)
  • Fixed issue where invoking NetworkObject.NetworkShow and NetworkObject.ChangeOwnership consecutively 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 a NetworkBehaviour could fail to synchronize changes if one has NetworkVariableUpdateTraits set and is dirty but is not ready to send. (#3465)
  • Fixed issue where when a client changes ownership via RPC the NetworkBehaviour.OnOwnershipChanged can result in identical previous and current owner identifiers. (#3434)

2.4.4

21 Jul 08:20
f4d9185

Choose a tag to compare

[2.4.4] - 2025-07-07

Added

  • Added documentation to package repository.

1.13.1

21 Jul 08:19
7771224

Choose a tag to compare

[1.13.1] - 2025-07-07

Added

  • Added documentation to package repository.

2.4.3

27 Jun 13:19
31017e2

Choose a tag to compare

[2.4.3] - 2025-06-27

Fixed

  • Fixed issue where spawned objects with NetworkObject.DontDestroyWithOwner set to false would not be destroyed when using a client-server network topology. (#3522)

2.4.2

16 Jun 16:30
7bbc1c3

Choose a tag to compare

[2.4.2] - 2025-06-13

Fixed

  • Fixed NullReferenceException on NetworkList when used without a NetworkManager in scene. (#3503)
  • Fixed issue where NetworkClient could persist some settings if re-using the same NetworkManager instance. (#3491)
  • Fixed issue where a pooled NetworkObject was not resetting the internal latest parent property when despawned. (#3491)
  • Fixed issue where the initial client synchronization pre-serialization process was not excluding spawned NetworkObject instances that already had pending visibility for the client being synchronized. (#3488)
  • Fixed issue where there was a potential for a small memory leak in the ConnectionApprovedMessage. (#3486)