diff --git a/Assets/Mirror/Runtime/NetworkManager.cs b/Assets/Mirror/Runtime/NetworkManager.cs index 679606296..a06ecd317 100644 --- a/Assets/Mirror/Runtime/NetworkManager.cs +++ b/Assets/Mirror/Runtime/NetworkManager.cs @@ -613,7 +613,9 @@ public void StopClient() // doesn't think we need initialize anything. mode = NetworkManagerMode.Offline; - if (!string.IsNullOrEmpty(offlineScene) && SceneManager.GetActiveScene().name != offlineScene) + // If this is the host player, StopServer will already be changing scenes. + // Check loadingSceneAsync to ensure we don't double-invoke the scene change. + if (!string.IsNullOrEmpty(offlineScene) && SceneManager.GetActiveScene().name != offlineScene && loadingSceneAsync == null) { ClientChangeScene(offlineScene, SceneOperation.Normal); }