Existing Fusion Project? Read This First
Integrating the Runtime Spawner into an existing Fusion project
If your project already uses Photon Fusion with a custom pooling setup, please read this section before enabling Runtime Spawner’s Fusion integration.
Runtime Spawner Requires Its Own Fusion Pool Provider
Runtime Spawner includes a component called FusionPoolObjectProvider, which becomes the single INetworkObjectProvider for the NetworkRunner.
Fusion only allows one provider at a time, which means:
Any existing pooling system (custom provider, custom
IPoolAdapter, or Fusion’s default provider) will be replaced by Runtime Spawner’s provider.Fusion will still handle network lifecycle, but Runtime Spawner will now manage all object pooling.
This is required to ensure:
Proper reuse/despawn behavior for Runtime Spawner–spawned objects
Consistent population tracking
Network-safe object recycling
Correct cleanup before returning objects to Fusion’s internal pool
What You Need to Do
If your Fusion project previously had pooling logic, you have three options:
1. Prefab-Level Pool Logic (Recommended)
Move any “OnSpawned/OnDespawned” or reset logic onto the prefab using OnEnable / OnDisable.
Runtime Spawner will call these at the correct times.
2. Use Runtime Spawner’s Spawn/Despawn Events Subscribe to Runtime Spawner’s events if you need global visibility over active objects.
3. Advanced: Wrap the Provider
If you must keep custom provider-level behavior, you can implement a wrapper provider that forwards calls to FusionPoolObjectProvider.
TL;DR
Runtime Spawner becomes the pooling system used by Fusion.
You may need to move your old spawn/despawn logic.
Runtime Spawner provides extension points so you can still run custom logic on pooled objects.
Last updated