Is there no way to persist Player information across servertravel?

To work around this problem, here’s what we are doing now:

  1. Upon connection to the server, the server generates a unique ID (UID) and fires it to the client via RPC. it also stores the UID locally in the server-side GameInstance

  2. The client takes the UID and stores it locally in its GameInstance. Since GameInstances are not replicated, each client has a UID which is generated by the server it connected to, lasting the life time of the GameInstance (or until the server sends it a new one)

  3. When servertravel occurs, the new client PlayerController checks for its UID from the local GameInstance, and uses that with its back and forth with the server.

This works, but it does feel a bit convoluted and it certainly feels like there should be a better way to do this. Ideally I’d like to be able to queue-up the PlayerControllers that need to be “prepared” for game play in the lobby level, and simply start preparing them in order when the game starts…but at the moment that isn’t possible…and it feels like a massive hole in UE4’s basic multiplayer capabilities.