I have created a save system where the game will load the player’s last saved transform when loaded. It works really well except when I load a new level, It uses the old transform from level 1 in level 2 instead of the player start. Also if I select new game (it deletes the old save) it spawns me under the map instead of the player start. I cant figure out a way to apply the save changes if the player has moved but use the player start if not, like in a new level. Help would be much appreciated!
Since you’re storing the level name in the save, check if saved level name != the result of get current level name before setting the transform.
thanks for the reply! I have just tried this earlier and ran into one problem, If you load the save from the menu map it will not load the players location. If you have a suggestion for that pls let me know.
What are the blueprint screenshots part of? An actor? The level blueprint? your main character?
BTW, I’ve done extensive testing on loading levels and I know a LOT of what happens during loading. But before getting into that, I need to ask why are you applying Save Game Changes before wiping it out with OpenLevel in the PlayerLoadGame event?
I can give you lots more details, but I need to narrow things down a bit. I will say that OpenLevel node does not immediately load a level. It will take MANY MANY frames before the new level is fully loaded and visible. So the old level can still change things while the new level is being initialized.
One final question, are you using level instances in your levels?
I think I have some VERY helpful tips for you that can clear all this up, but I need more info first.
Maybe add a .01s delay or delay until next tick before calling apply save game? Could be the begin play (is that on player char?) is firing before the map load from menu has been picked up by game instance or something.