Where to store global variables?

The definitive solution at this point is the GameInstance rather than gamesingleton or similar, it is a valid solution for all game setups even transitioning between multiplayer levels and maps. It starts with the engine and closes with the engine, so if you say, have a setting you want loaded at startup and then to stay in a persistent, accessible place regardless of what servers or levels the player goes to, or pawns or controllers are created or destroyed, that’s the way to do it.

Don’t abuse the game instance by placing level or current game related variables there, but it’s the perfect place for things like settings that arent specific to levels or pawn, controller etc objects.