Storing character stats

Hi, I’m starting to make my game and I created some stats that my character can develop, like rising maximum health value or unlocking new abilities. When I change level, all the stats reset to default values. I expected that, but which system should I use to store those variables between maps: game instance, game state or maybe player state? One more thing- those stats i’m talking about are all set in character blueprint, should I redo them in gamestate/gameinstance from the scratch or they can the communicate between themselves?

Game instance is the same between levels, so any stats you store here will remain unchanged on level loading.
Here is some info on player states too which also might be a viable option: Player States

You may want to consider SaveData class as well so your stats will be saved even between game sessions.
SaveData

In terms of where to store the data initially, is really up to you. having a single source to hold the data is probably good practice so you’ll always know where to look to grab that data from any class. If you store it in character and update to your player state or game instance or whatever, throughout scripting/programming you may accidentally direct some game object to the wrong location.

just found this reference as well which may help:
Player Everything

and the following link is probably the most comprehensive answer regarding player state design which just made things a lot clearer as i research the topic:
Player States

Ok, I decided to go for game instance solution and it works for now. Thanks for your answer!

I encountered a trouble - I have really simple equipment system, which works by spawning actors and attaching them to my character. It looks like this:

I reconstructed it in my game instance BP and it works fine… until I change map. Attached items dissappears and i have to equip them again. It’s very important for me to retain equipped items when changing level. How should I set it up?

What I did for this issue was to build a function in my Level Blueprint that spawn my items and attached them to my Character.