Move spawned object from level to level, due to ServerTravel()

Hi. To keep things clear - i understand UE networking system quite well, from hi level blueprints to low level details during connection handshake. So the problem is - i have the dedicated server and client that connects to it. Server spawns APawn object based on the accepted client data. I want to keep spawned pawn object after server travels to new level. Not to keep an APawn class itself but an object of this pawn with all of it fields, configured during custom InitNewPlayer() call at fist client connection to server. Usual UE approach is to rerespawn APawn class after travel to new level and then repossess it with existing clients PlayerController. Server calls RestartPlayer() soon after ServerTravel() and things happens.

First way to achieve my goal is to save all APawn data to PlayerState and than load data from it after new object of my APawn will be spawned in new level. But i do not want to do so, because reasons (c) :slight_smile:

Second way is to use GetSeamlessTravelActorList() - and than add my spawned APawn object pointer to it. Will it keep my APawn object and transfers it to new level? How this Array works? Should i manually assign saved pointer to APawn field in APlayerController class after ServerTravel()?

Or maybe there is another approaches to achieve my goal?

Thanks.