I am working on a local co-op game with two players and I am having an issue with Local Player spawning when changing or restarting levels.
When I start the game, everything works correctly and both local players are spawned as expected. However, when I open a new level using Open Level by Name, or restart the current level, the Local Players are created again, resulting in duplicate players.
For example:
- Level 1 starts with Player 1 and Player 2 correctly.
- I open Level 2 using
Open Level by Name. - The new level creates the Local Players again, causing additional Player Controllers / characters to appear.
- If I restart or change levels multiple times, the number of players can increase.
I am using Unreal Engine 5.6.1 and the game is a local co-op game.
My question is: What is the correct way to handle Local Players and Player Controllers when changing levels in a local multiplayer game?
Should the Local Players be created only once and preserved between levels, or is there a recommended way to prevent GameMode / BeginPlay from spawning duplicate Local Players after Open Level by Name?
Any advice on the correct architecture for handling local co-op players across level transitions would be greatly appreciated.
