Create GameState when loading level

Sounds like you don’t need the GameState at all. Your GameMode can directly access the GameInstance and return the desired SpawnPoint from the FindPlayerStart function.

Pretty sure the GameMode(Base) is responsible for spawning its GameState anyway. So there is nothing that prevents you from overriding this functionality and deciding on a different GameStateClass dynamically. Although I believe there is some check to verify that the GameState and GameMode classes are compatible. Maybe that was just to ensure a Base class isn’t mixed with a non-Base class.