OpenLevel or LoadLevel Not Working Properly in Multiplayer (UE5)

Hi everyone,

I’m running into a problem while trying to switch levels in a multiplayer game using Unreal Engine 5. I’m using OpenLevel() to load a new map when a player completes an objective, but it only seems to work correctly on the server — the clients either get disconnected or don’t follow the level change.

Here’s what I’m doing:

  • I’m calling OpenLevel(this, "NewMapName") from the GameMode class after an event triggers.

  • The server loads the level, but clients either stay in the current level or get stuck on a loading screen.

  • I’ve tested using seamless travel by enabling bUseSeamlessTravel = true in the GameMode.

  • I’ve also tried calling ClientTravel() on the client side, but that causes issues with synchronization.

My questions:

  1. What is the correct way to switch levels in a multiplayer session and ensure all clients follow?

  2. Should I always use seamless travel in multiplayer? What are the limitations?

  3. Do I need to handle ClientTravel() manually for each connected player, or is there a better approach?

Any advice, example code, or pointers to official documentation would be greatly appreciated. Thank you in advance!

Hi,

Have you tried using ServerTravel() ?

Here is the multiplayer Documentation Travelling in Multiplayer in Unreal Engine | Unreal Engine 5.6 Documentation | Epic Developer Community