How to do Session-Connect-To-Server?

Hello all! Thank you for taking the time to read this, I have spent a while reading docs and videos, and I’m still totally confused :frowning:

Here is what I am looking to accomplish:

  1. Player launches the game and is presented with a login / register screen.

  2. Player logs in (Nevermind the register for the scope of this question)

  3. Player gets a Main screen with a menu (play, options, credits, etc)

  4. Player clicks “Play” and is given a list of servers. This list will contain servers dedicated and perhaps user hosted.

  5. Player selects a server and joins that game.

To add a bit of explanation, think of it as World of Warcraft if you are familiar. You opened the game and logged in. You then selected a Server (Called a Realm) and clicked Join Server and you were entered into that servers game.

So, I am confused. I am finding my way, and I can do mysql login easy enough, I’ve got that working. What I’m needing to know is, what is the best way to handle all of the user’s information. There will be “Global” information such as player name, global ban status, achievements, etc. There will also be “Local Server” information such as Health, Guild, Inventory, etc. It seems this would imply a handoff at some point(s) but I’m not sure.

The specific information that I need is a theory of how to accomplish this along with how and when to use the GameMode, GameState, PlayerState. I am so confused. If I launch the game and use GameModeOne (example name) for the login and main menu, etc. Do I still need to use GameModeOne for the actual servers game? Or can I use GameModeTwo? How would I securely (Prevent cheating, exploiting, etc) pass data between them?

I would like to keep this all in blueprints. Thank you for any input.