Synchronization
FusionReplicator
FusionReplicator handles property sync for networked objects.
Add it as a child of your networked scene's root node.
The authority client writes values to the server; remote clients receive and optionally smooth them.
Replication Modes
- REPLICATION_NONE — no auto-sync; add custom properties via the replicator's bottom panel
- REPLICATION_AUTO — auto-detects root node type and syncs accordingly:
- RigidBody2D/3D → position, rotation, linear_velocity, angular_velocity (forecast smoothing)
- CharacterBody2D/3D → position, rotation, velocity (interpolation smoothing)
- Other nodes → position, rotation (interpolation smoothing)
Smoothing
When root_smoothing is true (default), remote values are corrected smoothly instead of snapped.
Physics bodies use velocity-based forecast; non-physics nodes use spring-damper interpolation.
Set root_smoothing = false for direct value application.
Authority and Ownership
GDScript
if $FusionReplicator.has_authority():
position += velocity * delta
$FusionReplicator.request_authority() # claim ownership
$FusionReplicator.release_authority() # release
Ownership modes (set via owner_mode):
- TRANSACTION (default) — authority changes require server confirmation
- PLAYER_ATTACHED — permanently owned by the spawning player
- DYNAMIC — any client can claim immediately
- MASTER_CLIENT — only the master client owns
Interest Management (AOI)
Objects publish an interest key via interest_mode on FusionReplicator; clients subscribe to keys via FusionClient.
- INTEREST_GLOBAL (default) — visible to all clients
- INTEREST_AREA — spatial grid key auto-computed from position (cell size in Project Settings
fusion/interest_management/area_of_interest_cell_size) - INTEREST_USER — custom group key via
interest_key

Subscribe with one or more FusionInterestArea nodes (auto-manages grid subscriptions, tipically following camera or player node) or manually:

GDScript
FusionClient.set_area_keys([[cell_key, 0]]) # area keys (refresh each frame)
FusionClient.add_user_key(42) # user keys (persistent)
Enter/exit signals: FusionClient.interest_enter / interest_exit.
Key Properties
root_path(NodePath,"..") — node whose properties are syncedroot_replication_mode— NONE or AUTOroot_smoothing(bool,true)update_interval(int,1) — server send interval in ticksroot_teleport_threshold(float,100.0) — snap if error exceeds thisroot_spring_stiffness(float,50.0) /root_spring_damping(float,10.0)

Signals
authority_changed(has_authority: bool)— ownership changedsynchronized— inbound sync cycle completed