Netcode for GameObjects scene sync issue

Hello!

I’m having an issue where originally, my team had our project on Unity 6000.0.23f1. We had a lobby scene where when the host pressed “Start Game”, it would load all the players into the main game’s scene. From there, if a player quit and rejoined (using facepunch transport through Steam), the player would be reloaded into the host’s active scene. This was all working well!

However, after upgrading the engine to 6000.0.38f1, it no longer works. We haven’t done anything different, and suddenly it doesn’t work. I confirmed we still have the “Enable Scene Management” checkbox checked. I even set the “ActiveSceneSynchronizationEnabled” to true for the host in the code. I can still see that the client is connecting from the host, but it just doesn’t synchronize the scene anymore…

Here is the code I’m using to load everyone into the scene:
NetworkManager.Singleton.SceneManager.LoadScene(scene.name, UnityEngine.SceneManagement.LoadSceneMode.Single);

I’m not sure what to do next or where to look. Any obvious answers or suggestions, checks to do, logs to put it, or anything are appreciated!

1 Like

Are you sure this is related just to the editor version upgrade? Did you check if perhaps Netcode was updated as well? What does source control say regarding the changes made to the project between now and the last time it was working?

Git showed it changed some packages as well, so I went in and changed them back to the versions they were previously (while still staying on version .38f1) and we still got the same result.

The player joins, it takes us to the original lobby screen, and doesn’t pull the client into the new scene that the host is in.

I figured out the issue:

It WASN’T the Unity upgrade! It was a random change around the Unity upgrade that automatically put a network object onto a prefab we had, so there were two on our player prefab, which the game did NOT like, specifically on the host.