Player Remain After Loading A New Map

I have a game with several levels. I’m using the Open Level function to load new levels when a player reaches the end of their current level. It works find, opens a new map. However my player character seems to get destroyed and recreated every time I do this. Which resets all the players variables for health, score, power ups and the music (which I have playing from he player right now for reasons I can’t remember). I notice the Open Level function does have some kind of absolute bool but that doesn’t seem to affect anything. There’s also an options parameter that accepts a string but I don’t see how that’s useful at all. Is there some way these two features can be used to stop it killing my player between levels and if not, is there some other type of map loading code or something I can deselect on the player that will help me?

I think the solution is to create a PlayerState and use that to migrate the values between levels.

Although I’m sure this has been answered in the last 2 years, I’m going to add an answer just in case people search and find this question - as I did:

There are 2 methods I use.

The first is to use a save game. Save the variables from the player state before you load the new map, and load the save game from an event in the player state. You could even just use Begin Play to load the save game as that will get fired when the new map loads.

The second is to copy the variables to duplicate entries in the Game Instance before moving to the new map, as the Game Instance persists through map loading.

I don’t use the second method very often as it’s cumbersome and leads to similarly named variables across BPs. Also,a save system is something you will likely need to set up elsewhere in the game anyway - so use it for this circumstance as well.