So my understanding of SeamlessTravel is mostly based on this:
I don’t think its the BlueprintReadOnly, but the fact that PlayerState is “persisted” across a seamless travel. You can add more Actors to persist by putting it in the AGameMode::GetSeamlessTravelActorList()
My understanding is that Actors “persisted” across a SeamlessTravel is NOT the same Actor in memory; the persisted actor has its “count” increased (the _1, _13, etc), and certain data is copied across. In The case of PlayerState, there is an existing CopyProperties function which allows you to specify what to copy
So did you try it out in the PlayerState/CopyProperties?
I’ve read everything there is about this and it still didn’t work. I used BlueprintReadWrite on my UPROPERTY and it didn’t work, you are welcomed to try it and then we can compare results.
You can persist Actors by implementing GameMode::GetSeamlessTravelActorList() , “putting it” is kind of misdirected as it may be interpretated as to use a Set-function, override is better to use in this case imo.
Thank you for sharing the solution. I have the same problem in a blueprint only project and this is really bad :-(. I can override CopyProperties in Blueprint, but it does not work. It will copy the properties, but for some reason not use the copy, as you wrote above. It seems that I need to implement PlayerState in C++.
It is important to note that this only works for seamless travel. And since seamless travel does not work in the editor (up until at least UE 4.22), this will not work while debugging using the editor!
You can use this in standalone (and thus the packaged build only!)