Photon Fusion 2.x - Scene Setup & Usage
Goal
This page describes how to wire a scene so the spawner behaves correctly in Fusion.
Rule 1: Only authority runs the spawner
Runtime Spawner should be initialized and started only on the authoritative peer.
Typical patterns:
Host/Server checks (
runner.IsServer)Shared mode checks (StateAuthority owner of the spawner controller object)
Recommended flow
Start Fusion (
NetworkRunner.StartGame)Spawn/resolve player(s)
On authority:
spawner.Init()spawner.StartSpawners()
Clients do not call spawner start logic; they receive spawned objects through replication.
Using wave triggers and regions in networked play
Wave triggers and region triggers are offline-first authoring components.
In Fusion you typically set:
WaveTrigger→ ActivationMode = ExternalLocalAreaSpawner→ ActivationMode = External
Then add the corresponding Fusion driver component:
FusionWaveTriggerDriverFusionLocalAreaSpawnerDriver
Those drivers:
perform trigger detection only on the configured authority target
replicate inside/activate/reset state via RPC
call the public APIs (
SetTriggerInside,ExternalActivate,SetPlayerInRegion, etc.)
Scene checklist
RuntimeSpawner exists in the scene
Fusion Runner exists (or is instantiated by bootstrap)
Network prefabs are registered
WaveTrigger/LocalAreaSpawner are set to External mode
Fusion drivers are added for network behavior
Authority-only spawner init/start is confirmed
Optional: pooling provider usage
If you use Runtime Spawner’s Fusion provider:
attach/configure it as part of runner startup
verify it is the runner’s active
ObjectProvider
If you do not:
Runtime Spawner still works; Fusion will use your existing provider (or default) for lifecycle.
Last updated