Issue with Server Travel and Player Character Persistence Between Lobby and Main Map

Hi everyone,

I’m currently working on a multiplayer setup and running into issues when transitioning from a Lobby map to a Main map using server travel.

Here’s my setup:

  • The Lobby Map uses a different GameMode than the Main Map.

  • In the Lobby, players can customize their character (appearance, properties, etc.).

  • I store these customization properties in the PlayerState, since I understand it persists across server travel.

What I’m trying to achieve:

  • When transitioning to the Main Map, I want each player to spawn with their customized character from the Lobby.

What I’ve done so far:

  • I save the character customization data in the PlayerState.

  • In the Main Map’s GameMode, I attempt to spawn the player character inside Event Handle Starting New Player.

  • I try to retrieve the saved data from PlayerState and apply it to the spawned character.

The problem:

  • The character is not spawning correctly, and in some cases, it doesn’t spawn at all.

  • Overall, the behavior is not working as intended.

My questions:

  1. Am I using the correct approach by storing data in PlayerState and spawning the character in HandleStartingNewPlayer?

  2. Is there a better way to persist and apply player customization across server travel?

  3. Could I be missing an important step in the spawning or possession process?

I’m still relatively new to multiplayer, and despite researching, I haven’t found a clear solution for this specific case.

Any guidance would be really appreciated. Thanks!

I ‘think’ the playerstate is destroyed, try the GameInstances or an actual savefile

I agree with @Auran131
GameInstance and GameInstanceSubsystems are the only classes that persist across maps. So either store it there, or from a save file.

alright will through game Instance and bring feedback. though Is the player state not supposed to persist across server travel?

only if the GameMode is the same i think. So from lobby to game no but from level to level yes