Saving system for multiplayer

Hey, I’m looking for a way to Save variables in my game (such as player name, xp, level, class etc) that works for multiplayer, I’ve seen a lot about SaveGame, GameInstances and PlayerState. Can someone give me a detailed guide on how to do this? I couldn’t find a video that shows exactly this. Thanks.

Ideally, this is what you got to do:

1 - Create a blueprint/C++ class that derives from SaveGame.

2 - Add the variables you want to save there, like player location, player health, etc (if there’s a lot of them, try to save them using structures). NOTE: You CANNOT save references (pointers) to other actors. Only primitive types like floats, Vectors, etc!

3 - In your Character or GameMode blueprint (wherever you want to start the process of saving your game) do the following:

3.1 - Create a “CreateSaveGameObject” node, pick the SaveGame class you just created.
3.2 - Drag off of the newly created save object and set all the variables inside accordingly
3.3 - Drag off of the newly created save object and create a “SaveGameToSlot” node. You’ll have to feed it your save game name, “MyGameSave” for instance, and the index where you want to save it. You can have several save games with different names, or even with the same name but at different indexes!
3.4 - Whenever you want to load the game you saved, create a “LoadGameFromSlot” node, which will return the SaveGame object with the specified name and index, where you should have all your variables intact!