Release Notes
Migrating to the Latest Fusion SDK
If you are upgrading an existing project from an earlier 3.x preview, walk through the five steps below.
1. FusionClient Singleton Renamed to Fusion
Project-wide find/replace FusionClient. → Fusion. covers almost everything.
The C++ class name is still FusionClient; only the GDScript singleton was renamed.
2. Remove initialize_from_settings()
Fusion now self-initializes from project settings.
Delete any initialize_from_settings() calls and the surrounding is_initialized() guard.
Use Fusion.set_app_id(...) only if you need to override the App ID at runtime (per-build flavor, remote config); otherwise put it in Project Settings and call connect_to_photon() directly.
3. Connection Symbols: server → photon
| Before | After |
|---|---|
connect_to_server() |
connect_to_photon() |
is_connected_to_server() |
is_connected_to_photon() |
disconnect_from_server() |
disconnect_from_photon() |
connected_to_server (signal) |
connected_to_photon |
STATUS_CONNECTING |
STATUS_CONNECTING_TO_PHOTON |
STATUS_CONNECTED |
STATUS_CONNECTED_TO_PHOTON |
Other STATUS_* values (STATUS_DISCONNECTED, STATUS_JOINING_ROOM, STATUS_IN_ROOM, STATUS_ERROR) are unchanged.
The rename disambiguates "connecting to the Photon Cloud" from the Client-Server topology's simulation-server role.
4. FusionReplicator → FusionSharedReplicator
FusionReplicator is now an abstract base.
For each replicator node in your scenes: right-click in the Scene tree → Change Type… → FusionSharedReplicator, then save.
Use FusionServerReplicator instead if your room uses Client-Server topology with input prediction.
Update script types to match:
GDScript
@onready var replicator: FusionSharedReplicator = $FusionReplicator
5. Re-check root_interpolation_mode
The InterpolationMode enum was simplified from four modes to two, so saved integers in .tscn files now resolve to different modes.
| Old enum | New enum | |
|---|---|---|
| 0 | INTERPOLATION_SPRING_DAMPER (default) |
INTERPOLATION_SNAPSHOT |
| 1 | INTERPOLATION_SNAPSHOT |
INTERPOLATION_EXPONENTIAL (default) |
| 2 | INTERPOLATION_SIMPLE_LERP |
(removed) |
| 3 | INTERPOLATION_EXPONENTIAL |
(removed) |
Open each replicator and confirm Root Interpolation Mode in the Inspector matches your intent; reset if not.
The exponential mode was previously called ASYMPTOTIC and its tuning property prefix changed from root_asym_* to root_smooth_*.
Exponential Decay is the new default for non-physics smoothing (replacing the removed Spring Damper).
Two error-detection thresholds gate its behaviour: root_max_smooth_dist (above this position error, a catch-up term blends in) and root_no_smooth_dist (above this error, the value snaps).
Both are world-space distances, so suitable values differ by an order of magnitude between 2D scenes (pixels) and 3D scenes (meters); the defaults (2.0 and 5.0) target 3D and likely need to be raised for 2D projects.