Local Multiplayer - All Players = 0?

Trying to sort out local multiplayer with gamepads but having some issue going between levels.
I wanted to set up a character select screen so I made a bool in GameMode called InGame, checked at begin play.
If InGame is false then its character select.


I do a player ID check on both levels, on the first I get what i want (0,1,2,3)
All players can change their own color.

However when i go into the main level i get (0,0,0,0) and the player controller cast fails
All players become controlled by ID 0


Both levels have the same game mode, and the code for InGame and not InGame is the same so i dont know why this is happening.


Also dont worry about it not spawning pawns, thats not the issue, the print is

If your transferring levels you need to set the player color info in a game instance class. Game instance is the only blueprint that persist across level changing.


This fixed it