Release Notes

3.0.0

Preview

Build 1698 (Oct 27, 2026)

Breaking Changes

  • FusionArraySize is no longer capped at 64 elements, and FusionMeta::FusionArrayMaxSize was removed. Arrays now preallocate the full FusionArraySize they declare
  • UFusionTypeBase::AddProperty(Property*, FProperty*, FPropertyBuildOptions&) is now virtual
  • UFusionClient::SendUserRpc() now takes an FFusionPlayerId instead of a FusionCore::PlayerId
  • FKeyObjectId::Origin is now a FusionCore::PlayerId instead of uint16
  • UFusionOnlineSubsystem::StopFusionSession (both overloads, including the Blueprint node) was removed. Leave the room with LeaveRoom or disconnect with DisconnectFromPhoton; both stop the session
  • UFusionClient::Shutdown() and ShutdownNow() are now private
  • UFusionOnlineSubsystem::StartFusionSession now takes the UFusionRealtimeClient to run on, and fails unless that client is in a room and has a FusionCore client
  • UFusionOnlineSubsystem::TestTick was removed
  • UFusionOnlineSubsystem::ResetRealtimeClient was renamed to TryResetRealtimeClient; when given a client it only resets if that is still the current one
  • UFusionRealtimeClient::FromExisting and OwnsClient were removed. A UFusionRealtimeClient always owns its RealtimeClient
  • UFusionRealtimeClient::CleanupCompletedTasks was renamed to PostUpdate
  • UFusionClient::Startup now returns bool
  • FusionMatchmakingHelpers::StartFusion is gone. Use UFusionOnlineSubsystem::StartFusionSession(WorldContextObject) instead, which takes an optional context object and falls back to the subsystem's own world
  • UFusionOnlineSubsystem::RealtimeClient is no longer a public member. Use GetRealtimeClient() and SetRealtimeClient(); SetRealtimeClient is also what subscribes the subsystem to the disconnect event, so assigning the client directly would have skipped it
  • UFusionOnlineSubsystem::SetFusionClient now returns bool and refuses to replace a client that is still active. Clearing the client moved to the new ResetFusionClient()
  • EMapState::Shutdown was removed. Shutdown is tracked in dedicated flags on UFusionClient rather than in the map state machine, which writes CurrentMapState freely. A CoreRedirect maps the old value to EMapState::Invalid
  • Map actor network ids are now derived from a 64-bit name hash instead of a within-level index, so every client in a room has to run the same Fusion version. A client on an older build will not resolve map actors against a newer one
  • FFusionMapActorId replaces IndexInLevel, Index() and ReservedRange with a 64-bit EngineHash
  • UFusionHelpers::GenerateMapActorId no longer takes a collision registry. Collision reporting moved to the new UFusionHelpers::CheckForCollisions, which callers invoke separately
  • UFusionHelpers::GetMapActorSubObjectHash now takes the 64-bit map actor hash in place of the uint16 within-level index
  • FLevelIndex exposes IndexedLevelActors, ActorsByName and LevelActorsByHash in place of NetworkedMapActors, OtherMapActors and ReverseOtherMapActors
  • Removed UFusionOnlineSubsystem::SendRpcToPlayer
  • Player IDs are now represented by the new FFusionPlayerId struct instead of integers
  • PhotonCommon namespace was renamed to RealtimeCore::Common
  • PhotonMatchmaking namespace was renamed to RealtimeCore::Matchmaking
  • Moved PIE specific helper methods from UFusionHelpers to the new UFusionPIEHelpers class. Existing Blueprints migrate automatically via CoreRedirects but C++ references must be updated to UFusionPIEHelpers
  • Collapsed EFusionInstanceType::PieConsole1..4 into EFusionInstanceType::PieClient
  • Removed UFusionHelpers::PieConsoleGameIndex() and UFusionHelpers::IsPieConsoleGame()
  • Fusion no longer writes the player number into APlayerState::SavedNetworkAddress, read it from APlayerState::PlayerId instead

What's New

  • Add ability to set transform, quaternion, and float precision per project (Fusion Settings -> Replication) and per actor (Fusion Actor Component)
  • Add ability to pack transform rotations and quaternion properties into 32 bits
  • Add ability to replicate FVector_NetQuantize, FVector_NetQuantize10, FVector_NetQuantize100 and FVector_NetQuantizeNormal at their fixed precision, plus a new FFusionQuat_NetQuantize type for always-packed quaternions
  • FFusionPlayerId::MasterClient(), Plugin() and ObjectOwner(), plus IsMasterClient(), IsPlugin(), IsObjectOwner(), IsSpecial() and IsSpecificPlayer()
  • UFusionPlayerIdLibrary exposes IsNone, IsMasterClient, IsPlugin, IsObjectOwner and IsSpecificPlayer to Blueprints
  • UFusionRealtimeClient::CreateFusionCoreClient(), GetFusionCoreClient() and ReleaseFusionCoreClient(). CreateFusionCoreClient must be called before joining a room; the built-in room actions do this for you
  • C++ factory overloads on the room actions (CreateRoom, JoinRoom, JoinRandomRoom, JoinOrCreateRoom, JoinOrCreateRandomRoom, LeaveRoom, DisconnectFromPhoton) that take the UFusionRealtimeClient to use
  • UFusionOnlineSubsystem::OnFusionDisconnected, a Blueprint assignable event broadcast when the underlying Realtime connection drops, carrying the new EFusionDisconnectCause enum
  • UFusionClient::ShutdownNow() for the cases where no further ticks will come (PIE end, engine exit, travel failure) and the session has to be gone immediately
  • UFusionClient::IsShutdownRequested() and HasCompletedShutdown() to tell a session that is on its way out from one that is still running
  • Support world partitioning and actor streaming
  • Networked objects now survive streaming. An object whose actor is streamed out is deactivated instead of destroyed, and is rebound to the new instance when its level streams back in, keeping its object id, its subobjects and its replicated state
  • OnObjectRemovedFromWorld and OnObjectAddedBackToWorld events on FusionActorComponent, broadcast when the owning actor is streamed out of and back into the world
  • UFusionActorComponent::GetNetworkId() to read the Fusion object id a component is currently attached to
  • Levels are no longer limited to 65533 networked map actors
  • TargetPlayer RPC that can be sent to a specific player
  • FFusionPlayerId struct used to identify a player in the current room
  • RPC and replication support for int8, and for enums backed by int8, int64 or uint64

Improvements

  • A Max Array Size setting (Fusion Settings -> Fusion|Arrays, default 4 KB) logs a warning when a replicated array in object state preallocates more state than the limit. Zero disables the warning
  • Whether a remote object is already connected to an engine object is now decided by the object pair map, which also detects pairs whose engine object has gone invalid
  • FFusionPlayerId::ToString() now names the special ids (MasterClient, Plugin, ObjectOwner) instead of printing their raw values
  • The SDK now uses the latest FusionNative-Core (00ee6ff). Player IDs are now 32-bit, so player numbers are no longer limited to the uint16 range, and the version room property can no longer be changed
  • Room actions keep talking to the RealtimeClient they were created with, so replacing the subsystem's client mid-action no longer redirects them
  • The SDK now uses the latest FusionNative-Core (f294053). This brings in the core fixes for ownership grants and authority transfer responses, blocking clients from switching the master client, master client state on reconnect, the plugin messaging players before their handshake finished, a joiner staying on the old map when the master changed map during its handshake, and duplicate sub-object entries from repeated create packets
  • IsFusionRunning() returns false as soon as a shutdown has been requested, rather than staying true until the deferred teardown has run
  • Add the ability to set different Forecast extrapolation modes. The default "Linear" mode behaves as Forecast always has, the new "FollowRotation" mode extrapolates along the arc based on the angular velocity
  • Added the "Get PIE Instance" Blueprint node (UFusionHelpers::GetPIEInstance) returning the PIE instance index

Changes

  • Replicated transforms now follow each actor's Replicated Movement precision by default (1 cm for stock actors) with packed rotations. Set Transform Quantization to Uncompressed to send exact values
  • Update FusionNative-Core and move FusionCore::Client ownership to UFusionRealtimeClient
  • APlayerState::PlayerId now contains the Fusion player number, so the same player has the same PlayerId on every client
  • Move the RPC log to the trace channel

Bug Fixes

  • Fixed: Changing the size of a replicated array larger than its preallocated size crashed the owning client
  • Fixed: Attempting to open a level that fails to load while Fusion is running crashed the game
  • Fixed: Streamed out actors that remained loaded it would remove FusionActorComponent events and not have events recreated when streamed back in
  • Fixed: An array's FusionArraySize carried over to the arrays declared after it in the same type
  • Fixed: A received array with more than 500 elements was rejected as an invalid array size
  • Fixed: A received array larger than its preallocated size was resized to the received size, leaving default-constructed elements past the preallocated size. It is now clamped to the preallocated size and logs a warning
  • Fixed: When a Fusion networked array shrank, changes to its remaining elements were not applied until the next update
  • Fixed: Actors without a Fusion Actor Component in streamed sub-levels or Level Instances lost authority
  • Fixed: FVector, FRotator and FQuat RPC parameters no longer lose precision; they are sent as 64-bit values
  • Fixed: Compiling with CHECK_PUREVIRTUALS=1 gave missing virtual overrides errors
  • Fixed: A remote object whose engine object had been destroyed but whose pair was still registered was skipped when attaching the current map, instead of being re-created
  • Fixed: A remote subobject could be created against a root whose engine object was pending kill. It is now dropped and re-queued when the root becomes ready again
  • Fixed: A remote object that failed to finalize was retried within the same pass, and could be re-queued after being destroyed while other objects were finalizing
  • Fixed: InitializeNewRemoteObjects and OnObjectCreatedFinalize dereferenced a null core client during shutdown
  • Fixed: The core client could be freed while it was still on the stack of a room leave or disconnect callback. It is now released from the subsystem's tick, and only once it has stopped running
  • Fixed: LeaveRoom did not stop the Fusion session when the connection had already dropped or the client was no longer in a room
  • Fixed: A disconnect action finishing late could reset a newer RealtimeClient that had replaced the one it was disconnecting
  • Fixed: Sending an RPC, a user RPC or calling ClientTravel during shutdown dereferenced a null core client
  • Fixed: HasOwner, GetOwner, IsOwner, CanModify and GetRtt could dereference a null core client while a session was shutting down
  • Fixed: TriggerLevelChanged ran against a client that was already shutting down
  • Fixed: A failed StartFusionSession left a half-started UFusionClient installed on the subsystem
  • Fixed: RPC parameter blocks were not initialized properly with default values and could cause a crash
  • Fixed: Received RPCs could leak one allocation
  • Fixed: Receiving an RPC with an enum parameter declared with int32 caused a crash
  • Fixed: Sending an RPC could crash if a parameter Fusion cannot send came before another parameter
  • Fixed: Disconnecting or shutting down Fusion from inside an RPC no longer crashes
  • Fixed: A disconnect raised from inside a Fusion callback tore the client down while the core client was still on the stack. UFusionClient::Shutdown() now only requests a teardown and the teardown itself runs on the next tick, so the caller keeps a usable client for the rest of the frame
  • Fixed: A map load starting in the same frame as a shutdown could cancel the pending teardown and leave the session half alive. PreMapLoad, PostMapLoad, OnMapInit, OnMapChange and AttachCurrentMap are all no-ops once a shutdown has been requested
  • Fixed: A world initialised during a pending shutdown was adopted as the current world, so the teardown ran its net driver and physics cleanup against the world the game was travelling into
  • Fixed: The actor spawned and actor destroyed handlers were only removed in OnMapDestroy, so a teardown that kept the world (StopFusionSession without a map change, a forced disconnect) left them firing into a shut down client
  • Fixed: Connecting again reused the previous Realtime client instead of resetting it first
  • Fixed: Starting a session while the previous client was still shutting down silently replaced it. StartFusionSession now reports the error and leaves the old client alone until its teardown has been ticked
  • Fixed: A shutdown landing while a map load was in flight left the state machine reporting a load that never finished, so IsLoadingMap() stayed true
  • Fixed: Adding, removing or renaming a networked map actor no longer changes the network ids of the other map actors in the same level
  • Fixed: Registering one object under a second network object id is now rejected with an error instead of silently overwriting the first mapping and orphaning it
  • Fixed: Destroying a network object could remove a different object's id mapping, or leave a stale mapping behind when the actor had already been garbage collected
  • Fixed: Objects whose actors were registered before the room had a map sequence were attached against sequence 0
  • Fixed: Taking ownership of a Forecast physics object could cause a spurious teleport on the other clients, because the new owner had not picked up the current teleport key from the replicated body state
  • Fixed: Runtime object registrations were not cleared when Fusion shut down and leaked into the next session
  • Fixed: Welded child primitives no longer get their own physics replication components when using Forecast physics
  • Fixed: Potential issue with map corruption when reloading the same map that is currently loaded. In this instance non-seamless travel will be used
  • Fixed: PIE sessions with more than 5 clients failed to load maps and spammed "no map to load" errors
  • Fixed: OnObjectDestroyed firing twice when an actor is destroyed locally
  • Fixed: Potential crash when replicating a component of a locally destroyed actor
  • Fixed: Fix issues in attach map

Build 1659 (Oct 12, 2026)

Bug Fixes

  • Fixed: When using Fusion installed from Fab it failed to package with a PhotonFusionUbtPlugin.dll not found error. If you used Fusion 1638 from Fab and packaging failed, delete this file once after updating. Unreal recreates it on the next build. Use your specific engine path: "C:\Program Files\Epic Games\UE_5.X\Engine\Intermediate\ScriptModules.UBT\PhotonFusionUbtPlugin.ubtplugin.json"

Build 1638 (Oct 07, 2026)

What's New

  • Added Support for Playstation 4
  • Added Support for Playstation 5
  • Added Support for Nintendo Switch
  • Added Support for Nintendo Switch 2
  • Added Support for Xbox One
  • Added Support for Xbox Series X|S

Bug Fixes

  • Fixed: Setting a replicated property back to the value the client last sent, after another client had changed it, was never sent
  • Fixed: An object destroyed by its creator a few frames after creating it could be re-created as a duplicate object

Build 1618 (Sep 30, 2026)

Bug Fixes

  • Fixed: Compiling with IsBuildMachine=1 gave a missing constructor compile error

Build 1606 (Sep 25, 2026)

Changes

  • Update the LICENSE.txt and THIRD_PARTY_NOTICES.txt files

Build 1498 (Jul 29, 2026)

Breaking Changes

  • Removed UFusionOnlineSubsystem::SetPriority(), use UFusionActorComponent::SetLocalSendRate() / SetRoomSendRate() instead
  • Removed unnecessary UFusionOnlineSubsystem::GetResolvedOwner(), use UFusionOnlineSubsystem::GetOwner() instead. Existing Blueprints migrate automatically via a CoreRedirect
  • Remove OnConnectedToPhoton multicast delegate on UFusionOnlineSubsystem that was not firing properly. Bind to OnSuccess when connecting in order to trigger logic after connecting to Photon
  • Removed UFusionHelpers::FusionClientTravel(). Use UFusionOnlineSubsystem::ClientTravel(), ChangeWorld() or ChangeWorldByName() instead
  • OnForcedDisconnect now also returns a reason enum

What's New

  • Unreal 5.8 support

Improvements

  • Add the ability to adjust object SendRate via methods on the FusionActorComponent (SetLocalSendRate() / SetRoomSendRate()). Adjusting the local send rate can be used with the Dynamic ownership model to react quickly while wanting ownership
  • Add the OnObjectOwnerPredictionFailed delegate on the UFusionActorComponent that can be used to respond to instances when ownership was not received in Dynamic ownership mode
  • Rework ownership request/response system. New method: RespondToOwnershipRequest. New events: OnOwnershipDenied, OnOwnershipRequested. Requests are automatically denied when nothing is bound to OnOwnershipRequested
  • Add error log and soft assert to hash collisions
  • Avoid costly copies of FFusionObjectActorPair
  • Support sublevel streaming
  • APlayerState no longer has a custom lifespan when changing world, lifecycle is owned by Unreal's own travelling logic
  • Changed ObjectId counter to uint64, removes chance of hash collisions when dealing with a large number of networked map actors

Changes

  • Move RPC Blueprint Node into its own "UncookedOnly" Module. Leave rest in a pure "Editor" module

Bug Fixes

  • Fixed: Compile warning from a Unreal header when compiling 5.7 in Visual Studio 2026 with MSVC 14.51+ being treated as an error
  • Fixed: Issue where PlayerState was reported as being a duplicate
  • Fixed: Actor roles were not reset back to ROLE_Authority after shutting down Fusion. Actors should now have normal offline behaviour once Fusion is torn down
  • Fixed: Remove unused Forecast Physics setting: MaxSpawnExtrapolationTime
  • Fixed: Forecast Physics objects could spawn in the wrong position (underground or invisible) for remote clients until the owning client first moved them. Fast-moving objects may now spawn a fraction behind their predicted position for a frame before correcting
  • Fixed: UniqueNetId used by Steam and other online subsystems is now properly replicated
  • Fixed: Disconnecting from inside RPC will now cause a controlled shutdown, ending current tick and object iteration
  • Fixed: Failing to create networked subobjects caused a memory leak, will now revert creation and prevent the leak
  • Fixed: Non-networked components of networked actors were incorrectly encoded and failed to replicate

Build 1341 (Jun 08, 2026)

What's New

  • FilterPlugin.ini is now included in the packaged plugin

Changes

  • UHT plugin doesnt auto detect engine version anymore and instead uses a hard coded value

Build 1315 (Jun 01, 2026)

What's New

  • LICENSE.txt and THIRD_PARTY_NOTICES.txt with the Fusion Unreal license as well as licenses from third party libraries Fusion Unreal uses

Build 1254 (May 15, 2026)

Improvements

  • Add the ability to disable GameState replication via CVAR
  • Performance improvements related to updating actor state

Build 1214 (May 07, 2026)

Bug Fixes

  • Fixed: Issue preventing streaming levels from being unloaded

Build 1201 (May 05, 2026)

Breaking Changes

  • Renamed SharedMode namespace to FusionCore
  • A number of .cpp and .h files have been renamed to add the "Fusion" prefix. CoreRedirects exist for BP/Asset references, but existing code files will need to be updated
  • StartFusionSession is no longer exposed as a BP function and is instead called automatically from the BP functions to create/join rooms

Improvements

  • StartFusionSession on subsystem no longer async, can also be accessed using static class FusionMatchmakingHelpers
  • Implement the new initial map logic, where its part of room options
  • Remove RPC predefined array size
  • GameState now networked implicitly
  • GameState ReplicatedWorldTimeSeconds uses Fusions own network time
  • Network Debugging Tool, found under: Window/Fusion Debug Tools

Bug Fixes

  • Fixed: Map attach issues
  • Fixed: Better handling for blueprint RPC property creation
  • Fixed: Issue where Fusion matchmaking callbacks could be cleaned up prematurely when another PIE window World is destroyed
  • Fixed: Possible build failure when creating Fusion RPCs
  • Fixed: Prevent possible timeout disconnection error (1041) when loading into a map in standalone mode
  • Fixed: Potential crash when switching maps
  • Fixed: Cloning properties in UHT uses more DRY logic and should support most types now
  • Fixed: Ensure FName can be sent as parameters in rpcs, worked nested in structs before
  • Fixed: Setting softobjectreference to null caused crash, fixed
  • Fixed: Patch objectid changes (map changes) resulted in incorrectly serialized objectids
  • Fixed: Remove redundant call to destroy, just causes incorrect logspam "not authority to destroy"
  • Fixed: Make sure we flag individual destroy instead
  • Fixed: Ensure we only send the events when replication inside fusion is active
  • Fixed: Replication issue with PlayerState actors

Build 1118 (Apr 20, 2026)

Improvements

  • Add the ability to set the "Local State Copy Mode" of an actor to "Manual" in order to prevent potentially expensive copy operations every frame for an actor the client can modify. Using this mode found on the UFusionActorComponent requires the user to call UFusionActorComponent::CopyLocalStateNextFrame() in order to trigger a copy of the state of an Actor next frame. Copying the state of the actor allows other connected clients to receive the replicated changes
  • Performance improvements related to detecting transient objects

Build 1112 (Apr 16, 2026)

Improvements

  • Performance improvements in the core Fusion library related to strings

Bug Fixes

  • Fixed: Issue where StartFusionSession() with a valid InitialWorld would not trigger a map load

Build 1108 (Apr 13, 2026)

Improvements

  • Performance improvements in the core Fusion library. Including working with strings and ownership methods

Bug Fixes

  • Fixed: Sub objects would trigger unnecessary data to be sent

Build 1100 (Mar 25, 2026)

Bug Fixes

  • Fixed: Replication issue with PlayerState actors

Build 1088 (Mar 24, 2026)

Breaking Changes

  • Renamed: UFusionActorSettings to UFusionActorComponent

Changes

  • Trying to connect while being connected is failing the connecting instead of tearing down the session and starting a new one
  • Trying to join a room while being in a room is failing the joining instead of tearing down the session and starting a new one
  • Added ClientTravel to FusionSubsystem, this is to handle map transitions when running under one process, this is a known unreal bug

Bug Fixes

  • Fixed: Region Select Mode "Select" was timing out
  • Fixed: Issues with AttachCurrentMap, ensure connecting clients (none master) are put into correct state before attaching
  • Fixed: Make sure we clear all related objects in OnMapDestroy
  • Fixed: Add missing rpc type handlers, caused a crash
  • Fixed: Make sure APlayerState is properly replicated and survives map transitions

Build 1011 (Mar 12, 2026)

  • Previous SDK versions are no longer compatible with deployed infrastructure. Please update to this build or later

Breaking Changes

  • FFusionRoomOptions does not have an InitialWorld property anymore, set the InitialWorld when calling UFusionOnlineSubsystem::StartFusionSession()
  • EActionFailureCodes changed and numeric values for enums changed
  • UFusionClient::IsConnected() was removed, use UFusionOnlineSubsystem::IsConnected() or UFusionRealtimeClient::IsConnected() instead
  • FTimerState was renamed to FFusionTimerState and was moved to FFusionTimerState.h
  • The SharedMode::Logging namespace is now in the PhotonCommon namespace
  • The SharedMode::CharType and SharedMode::StringType types are now both in the PhotonCommon namespace
  • Update plugin code to follow Epics guidelines
  • Removed unused RoomName Argument from JoinRandomRoom

What's New

  • A new Realtime Matchmaking API was added that replaces the old connection methods, providing full access to Photon Realtime related features
  • A LeaveRoom blueprint node was added to leave a Realtime room without disconnecting
  • Added support for dynamically adding and removing replicated actor components
  • Improved AOI system
  • Added a new "Player Attached" ownership mode which means the player actor will be destroyed when they disconnect
  • Ability to connect ongoing world to fusion via UFusionOnlineSubsystem::AttachCurrentMap()

Changes

  • The Fusion Session is not started automatically when joining a Realtime room anymore, call UFusionOnlineSubsystem::StartFusionSession() to start a Fusion Session after joining a room

Bug Fixes

  • Fixed: Prevent erroneous error logs being generated when the non-master client code loads the map via the OnMapLoadPerform callback
  • Fixed: Uninitialized memory caused the frame update to never run
  • Fixed: Class properties when used in RPCs
  • Fixed: Ensure InitialMap loads properly
  • Fixed: Update service while in shutdown to allow us to receive the disconnect status
  • Fixed: Harden disconnect
  • Fixed: Add physics state delta checks to avoid unnecessary network sends
  • Fixed: Potential issue when using "Standalone Game" launched from the editor
  • Fixed: Potential crash and log spam when leaving a Photon room

Build 835 (Feb 19, 2026)

Bug Fixes

  • Fixed: Closing a standalone window sometimes caused a crash
  • Fixed: A player would sometimes fail to spawn properly after joining a room at start-up in Unreal 5.4

Build 760 (Feb 12, 2026)

Bug Fixes

  • Fixed: Adjust a number of Fusion Blueprint nodes so that the main input parameter defaults to self as they did previously: HasOwner, GetOwner, GetResolvedOwner, IsOwner, CanModify
  • Fixed: Fix issue where remote Pawns were being assigned the local PlayerController. Remote Pawns no longer have a PlayerController set

Build 756 (Feb 11, 2026)

Bug Fixes

  • Fixed: Fix closing PIE instance crash
  • Fixed: Fix issues in seamless travel

Build 720 (Feb 10, 2026)

Breaking Changes

  • Correct spelling of "Recieve" to be "Receive" for Fusion RPC functions. Fusion C++ RPC functions need to be renamed from *_Recieve to *_Receive
  • Previous SDK versions are no longer compatible with deployed infrastructure. Please update to this (build 719) or later.

What's New

  • Add support for using Actors, Objects, Classes as RPC parameters
  • Connecting to the Photon Cloud supports now choosing the best region based on the players ping
  • All edge cases around object life cycles should be solved to provide more consistent replication
  • Android support and crossplay support between Android and Windows
  • Removed interpolation of replicated properties, the behaviour of Fusion now matches unreals netcode more closely in several regards.
  • Property RepNotify's now supports previous value argument.
  • Native remote function calls now supported in both blueprint and c++, see documentation for further details. RPCs In Depth

Improvements

  • Improved physics prediction and replication further
  • All public code should now conform to the unreal formatting standard
  • Fusion can now use "Run Under One Process" mode in unreal editor

Bug Fixes

  • Fixed: Fix issue where a client may not be reliably informed of an object having its owner removed
  • Fixed: Fix a potential issue where an actor would not be properly replicated if it is part of a map and immediately possessed
  • Fixed: Prevent an assert triggering when loading into level when using UE 5.4.4
  • Fixed: Manually set netdriver world
  • Fixed: Issue with map loading when loading the same map again
  • Fixed: Map actors now use a consistent hashing for identifying sub components which removes the need for consistent component order on all connected clients.

Build 492 (Jan 12, 2026)

What's New

  • Unreal 5.7 support

Bug Fixes

  • Fixed: Native pointer usage in member declaration preventing a shipping build

Build 438 (Dec 18, 2025)

Breaking Changes

  • Previous SDK versions are no longer compatible with deployed infrastructure. Please update to this (build 438) or later.

What's New

  • Added full support for the Character Movement Component
  • Added internal "string heap" replication system for string and text data
  • Added support for networking GameInstance and calling Fusion RPCs on it
  • The Actor Role now reports to be either Authority or SimulatedProxy based on whether it can be modified
  • The NetMode now reports to be a Client

Improvements

  • Object replication model has been updated to reduce bandwidth and improve type support

Bug Fixes

  • Fixed: Issue where a replicated Actor reference set to None/nullptr by the authority would not be correctly set on remote clients
  • Fixed: Duplicate CreatedLocal existed on derived RootObject, hiding other implementation
  • Fixed: RPC regression fix, datatypes not properly serialized
  • Fixed: IsOwner and CanModify was not properly evaluating all conditional branches
  • Fixed: Race condition on sub-object system during object destruction

Build 354 (Nov 25, 2025)

Bug Fixes

  • Fixed: Prevent crash and add error log when running multiple PIE windows in one process

Build 349 (Nov 24, 2025)

  • Initial release

Last updated on

Back to top