Seamless Travel does not correctlyx carry over players

Hi,

I currently try to get my head around seamless travel in Multiplayer. It kind of works as the clients follow. but some parts are not working. As the title is Crossplay on different platforms, we are required to display a Platform Icon next to the name on the Scoreboard.

What we are doing for this is, the Player Controller pushes it’s Platform Name to the PlayerState. This all works on the first connect and is correctly displayed. But after a seamless travel, it seams like the PlayerController Begin Play is not triggered. As well as the Gamemode OnPost Login.
We found that OnPostLogin does actually only fire on the first connection of a client but not after a Seamless Travel.

Handle Starting new Player suposedly should do this. But it does not.


We even tried to Force a Begin Play on the Player Controller, but this seams to also not trigger.

We came up with a different solution to loop over the Player Array from Game State and Login al Players. Doesn’t correctly work.


The Begin Play on Player Controller is not correctly called.

And all our custom Login in the Login Player which are called from all vcariants above (Opening Team Select Menu, moving Player to an overhead perspective and so on) is also only correctly executed on the first connection.

So how do I get this working? How do I get PlayerController and the Gamemodes Login logic to correctly work after seamless travel?

Thanks!

Controllers are created by the GM on initial connection. Server travel maintains the same controller, thus begin play, and On Post Login do not fire. Players are already connected and have controllers.

Pre-Server travel you need to do a Save Game and store your platform data and anything else you want to maintain.

Once you’ve finished travel you should reset your controllers and update them via Save Game data.