This document is about: FUSION 2
SWITCH TO

Download

Preview

The Fusion SDK 2.1.0 is provided as development snapshots and is not intended to be used for live or released games. There may be blocker bugs and the API can change or break during the preview phase.

To ensure quick support and iterations new SDK packages will be published as nightly builds.

Projects should be upgraded to the latest 2.0.x SDK before being upgraded to 2.1.

Downloads

VersionRelease DateDownload
2.1.0 Nightly8月 08, 2025Fusion SDK 2.1.0 Nightly Build 1240Release Notes

Release Notes

2.1.0

Nightly

Build 1240 (Aug 08, 2025)

Breaking Changes

  • NetworkTransform.DisableSharedModeInterpolation option is now a flag enum value
  • Prefabs and scenes need to be reimported due to baking changes
  • SendReliableDataToPlayer(), SendReliableDataToServer(), OnReliableDataReceived() all now pass ReadOnlySpan<byte> to avoid allocations

What's New

  • Fusion Version Scripting Define Symbols: FUSION_2, FUSION_2_1, FUSION_2_1_0, FUSION_2_OR_NEWER, FUSION_2_0_OR_NEWER, FUSION_2_1_OR_NEWER
  • NetworkRunner.HasCustomPlugin - returns true if the game is run against a custom plugin
  • NetworkRunner.FailedToResolveNetworkObject - an event that can be used to detect cases where [Networked] NetworkObject properties return null not due to underlying NetworkId being zero, but because the object was not found (due to AoI, being destroyed locally etc.)
  • NetworkTransform supports the use of physics i.e. Rigidbody or Rigidbody2D in both Shared and Client-Server modes
  • Object Priority gives control over the update rate of objects
  • [Shared Mode] the size of the Area of Interest cells and the size of the grid can be adjusted in the NetworkProjectConfig
  • Added RpcChannel.ReliableLargeData to send RPCs that exceed 512 bytes. Not tick accurate
  • NetworkRunner.RequestMasterClientReassign to promote the local player as the master client
  • Non-addressable scenes can now also be loaded with NetworkRunner.LoadScene(SceneRef.FromPath(...))
  • [Multipeer] Ensure we execute physics for non-default scenes last in FixedUpdate, so this as close to Unity's normal position of running the physics as possible
  • FusionUnityHostProfiler - Fusions integration with Unity profiler
  • Added FusionMppmCommand.ExecuteAsync
  • MatchmakingArgumentsExtensions Utility Methods. Helps to setup MatchmakingArguments for Fusion
  • Updated to Realtime SDK 5.1.5
  • New Fusion Intro Sample and switch Fusion Menu to standalone
  • New Fusion Hub
  • NetworkRunner.LocalAddress to access the address Fusion bound to for direct connections
  • StartGameArgs.PlayerUniqueId enables reconnects to maintain the same PlayerRef
  • Support for breakpoints: ClientServer Mode only. Working on both Multi-Peer and Unity MPPM
  • RpcAttribute.InvokeLocalMode. If set to RpcInvokeLocalMode.ForwardToServer, locally invokable RPCs will always be forwarded to the server/plugin from clients

Changes

  • RPCs targeted at state authority do not get sent if the local client is the state authority
  • Failed to unwrap warning no longer logged for NetworkBehaviour references that fail to resolve, regardless of the reason
  • Failed to find behaviour is now logged for an invalid NetworkBehaviour on a valid NetworkObject
  • Update to Photon Realtime SDK to 5.1.7
  • Clamp PlayerCount to a valid range (1-2048) in Shared Mode
  • Clamp Heap PageCount to a valid range (16-4096) in Shared Mode
  • Inline help icons added to config's Client/Server Tick/Send rates
  • In/out packets statistics reflect packet fragmentation
  • Update NanoSockets for Android to support 16 KB page sizes
  • OnChangedRender now called at alpha = 0.5 to match interpolators (and reduce perceived latency)
  • Unity-provided packages are ignored when looking for assets. To override, define FUSION_ENABLE_SEARCH_IN_UNITY_PACKAGES
  • NetworkObjectBaker uses Fusion.Log instead of UnityEngine.Debug
  • Check if in Session before leaving it
  • Check if connected to Photon Cloud before running disconnect
  • Clicking animator bake failure error messages now shows the relevant gameObject in the hierarchy
  • Keep Session running only if Host/Server disconnected by Timeout
  • Leave Session before disconnect from Photon Cloud
  • Removed SendReliableDataToPlayer and SendReliableDataToServer with byte arrays; use overloads with with ReadOnlySpan<byte> instead. Avoids allocation
  • Editor trace logs are more granular, with following defines controlling specific streams: FUSION_EDITOR_TRACE_IMPORT, FUSION_EDITOR_TRACE_INSPECTOR, FUSION_EDITOR_TRACE_TEST, FUSION_EDITOR_TRACE_MPPM
  • INetPeerGroupCallbacks no longer deal with NetSendEnvelope; NotifyData packet type is assumed and data is passed
  • INetworkRunnerCallbacks.OnUserSimulationMessage is now obsolete and no longer used
  • SimulationMessage is now obsolete
  • Simulation.IsStateAuthority handles PlayerRef.None correctly (i.e. when it represents the host)
  • Simulation.IsInputAuthority handles PlayerRef.None and PlayerRef.MasterClient correctly
  • Skip opening Fusion Hub in batchmode
  • NetworkTRSP state authority change error correction delta default value set to 0
  • Assemblies with FUSION_FORCE_WEAVING version define will be weaved even if they are not included in the config's AssembliesToWeave
  • Fusion.Unity assembly no longer has to be added to the config's AssembliesToWeave
  • NetworkObjectInterestModes made public
  • NetworkObject.ObjectInterest internal field renamed to NetworkObject.LegacyObjectInterest; it is used only to migrate to storing interest settings in object flags (handled by the baker)
  • Current flag versions set to NetworkObjectFlags.V2. All prefabs and scenes need a rebake
  • NetworkObject editor: Prefab Source is now selectable
  • NetworkRunner.FindObject/TryFindObject no longer throw if simulation is not started
  • NetworkTransform on root NetworkObject is now always placed at index 0, regardless of component order
  • Join Session Log to be more clear
  • Made NetworkSceneManagerDefault.OnSceneInfoChanged method virtual
  • NetworkObjects that remains after shared mode authority leaves now has state authority set to PlayerRef.None
  • DestroyWhenStateAuthorityLeaves prefab flag is now independent from the AllowStateAuthorityOverride
  • Shared mode master client can now despawn network objects with PlayerRef.None as state authority
  • Apply NetworkTransform.DisableSharedModeInterpolation in Single Mode

Removed

  • EngineProfiler, the old DLL-side profiler integration
  • FusionProfiler, the old Unity-side profiler integration

Bug Fixes

  • Fixed: Empty IntrusiveLinkedListNode is now different than the one in a single-element list. This is done by the list always being cyclical
  • Fixed: Fusion plugin crashing during stress tests due to the number of RPC to be tracked in an envelope
  • Fixed: VisionOS NanoSockets Static Library
  • Fixed: Prefabs not being replicated until a resimulation tick occur
  • Fixed: MenuItem attribute preventing builds
  • Fixed: Reset re-join attempts when peer is able to join Session
  • Fixed: Rst item in SimulationConfig (ReplicationFeatures) does not draw it's help correctly in Unity inspector
  • Fixed: Object destroys not being resent in case of a packet loss
  • Fixed: OnNotifyDataLost ignoring objects/destroys if there haven't been any RPCs in the packet as well
  • Fixed: Stop repeated Unity warning logging if simulating multi peer physics scenes by not simulating the default scene
  • Fixed: RPCs targeting state authority were not being received when outside the area of interest
  • Fixed: Alloc in NetSocketHybrid.Receive
  • Fixed: Alloc in TimeSeries.Median
  • Fixed: NetworkArray<T>.GetRef throwing NullReferenceException
  • Fixed: NetworkBool drawer throwing ArgumentOutOfRangeException
  • Fixed: Editor error when interacting with invalid network objects. Header can be uninitialized and causes null ref, checking Ptr to avoid it
  • Fixed: Crash in some Unity versions when opening the project in batch mode due to forced recompilation
  • Fixed: [Shared Mode] data not being sent to a client if the previous packet has just been acknowledged
  • Fixed: Invalid authority checks when destroying hierarchies of NetworkObjects with mixed authorities
  • Fixed: Error logged when input authority invokes RPC with state authority target mask
  • Fixed: In Shared Mode, if a state authority makes a state change which races against the server removing state authority from it, then flag the original state needing to be re-sent
  • Fixed: [Shared Mode] Pending local deletes being ignored when receiving object updates
  • Fixed: Shutdown normally if Disconnected By PluginLogic
  • Fixed: Use StartGameArgs.Config for PlayerCount, if supplied
  • Fixed: Runtime spawned objects in scene are spawned/despawned multiple times in scene unload with a large amount of objects
  • Fixed: WriteUsingAreOfInterest not terminating data block properly
  • Fixed: Structs state authority not checked before writing
  • Fixed: Received objects state authority not checked before applying
  • Fixed: Plugin not deserializing private serializable fields of base types
  • Fixed: Plugin exporter adding preserved protected fields to sub types
  • Fixed: Prefab table not updating if running in batchmode
  • Fixed: Client not rolling objects back to latest snapshot state in certain conditions
  • Fixed: Data RPCs are no longer limited to be 1MB in size
  • Fixed: SendReliableData always sending 1MB of data
  • Fixed: SimulationPacketEnvelope not freed on packet delivered
  • Fixed: BitScanReverse64 always returning one too high
  • Fixed: Client sometimes not updating LatestServerTick after receiving a new snapshot
  • Fixed: Unable to update Session properties after Host Migration
  • Fixed: RPCs failing to send arrays
  • Fixed: NullReferenceException when trying to spawn a prefab with NetworkObject reference without object provider being set
  • Fixed: Simulation.Add/RemoveAlwaysInterested not working in Shared Mode
  • Fixed: Incorrect reset/jump of time on proxy objects after a frame of exceptionally long duration
  • Fixed: Lag Compensation box overlap problem with hitbox Y rotation
  • Fixed: A sequence of lost packets resulting in a partial object data being sent
  • Fixed: Lag Compensation box overlap having problems with hitboxes offset
  • Fixed: Unable to spawn during StateAuthorityChanged callback on MasterClientObjects
  • Fixed: Intro Sample Menu Dependency
  • Fixed: Lag compensation layer masks being ignored with subtick accuracy
  • Fixed: Odin drawers not finding underlying fields
  • Fixed: NetworkObject.IsSpawnable setter not working
  • Fixed: RPCs not being forwarded to stateauth (exclusive)
  • Fixed: RpcSerializer offset error
  • Fixed: Plugin can override state auth data again
  • Fixed: Invalid copy of state-auth data for transforms
  • Fixed: Not being able to send changes to plugin-spawned objects
  • Fixed: RpcInfo.Source in single player mode now correctly points to the source player
  • Fixed: NetworkRunner.SessionInfo Support for Single Player
Back to top