Persistence of Player Between Session (Steam)

Partial Answer?

I found that the various IDs a player, player controller, or player state has are not reliable.

So instead I did a C++ blueprint static function to get the Steam ID of the local player, and the gamertag too.

When a player joins a server I send a custom TDLPlayerJoin event with the player SteamID from the client to the server and just keep it as a string on the player blueprint. Works great.

Then when I want to store player data like inventory or Last Known Position, I can use the Steam ID as part of the file name.