Photon instantiate - too early (wrong scene) for late joiners

So my game has a pre-game lobby scene before the actual game scene is loaded. The player has already chosen a game at this point, it is not a typical “lobby”, it is where players can text/voice chat before the game, select their team, change loadouts, etc. Everything works great for all the players in the game at initial load time. The problems arise for the late joiners. The player prefabs which are created with PhotonNetwork.instantiate on the 2nd scene show up too early in the lobby (1st scene) and then are nowhere to be found once they enter the game. As a result, players already in the game can see them but not vice versa.

The only way I know of turning off the RPC calls and preventing the instantiation from happening is by setting “PhotonNetwork.isMessageQueueRunning” to false. Unfortunately, I need this to be set to true as I need an updated list of players playing shown in the pre-game lobby. Also I am using “PhotonNetwork.automaticallySyncScene” to join the game once the player is ready.

Flow: Game Creation/Game Search —> Scene 1 (Pre-game lobby) —> Scene 2 (Actual game)

I have been working on this about 6 hours trying to figure it out, super frustrated, hope someone can help!

Try PhotonNetwork.LoadLevel().
To make it sync scenes automatically (including late-joiners), you need to set PhotonNetwork.automaticallySyncScene = true, too. Setting that once when you start the game is enough.