-
Notifications
You must be signed in to change notification settings - Fork 464
Description
Description
In Distributed Authority (DA) topology, when I spawn objects using NetworkObject.Spawn(destroyWithScene: true), then change scene as SessionOwner using NetworkManager.SceneManager.LoadScene("Lobby", LoadSceneMode.Single), the network objects owned by the clients are correctly destroyed, but the SessionOwner receives an error:
Destroy a spawned NetworkObject on a non-owner client is not valid during a distributed authority session.
Additionally, unchecking Scene Migration Synchronization on the NetworkObject was required, even though in my opinion it should be irrelevant when destroyWithScene: true is set.
Reproduce Steps
- Set up a multiplayer game using Netcode for GameObjects (NGO) with Distributed Authority topology.
- In a game scene, let clients spawn their own network objects with
destroyWithScene: true. - Have the session owner call
NetworkManager.SceneManager.LoadScene("Lobby", LoadSceneMode.Single). - Observe the session owner's console output.
Actual Outcome
- Network objects are destroyed as expected.
- The session owner receives an error
Expected Outcome
- Network objects should be destroyed without errors since
destroyWithScene: truewas explicitly set. - in my opinion, Scene Migration Synchronization should not require manual disabling in this context.
Screenshots
NetworkObject on an object owned by a client:

Environment
- OS: Windows 11
- Unity Version: 6000.0.28f1
- Multiplayer Services: 1.0.2
- Netcode Commit: https://docs.unity3d.com/Packages/[email protected]/changelog/CHANGELOG.html
Additional Context
As far as I know, the player object has to be destroyed by each client manually, where as other spawned network objects should be destroyed automatically on scene change if destroyWithScene: true. Please correct me if I'm wrong.