According to the documentation : The GameInstance exists for the duration of the engine’s session, meaning that it is created when the engine starts up and not destroyed or replaced until the engine shuts down. A separate GameInstance exists on the server and on each client, and these instances do not communicate with each other. Because the GameInstance exists outside of the game session and is the only game structure that exists across level loads, it is a good place to store certain types of persistent data, such as lifetime player statistics (e.g. total number of games won), account information (e.g. locked/unlocked status of special items), or even a list of maps to rotate through in a competitive game like Unreal Tournament.
Step 1: Create a Blueprint GameInstance and BP Interface
Step 2: Connect Interface to Gameinstance and make Reference
Step 3 : Create Blueprint Widget and add Show MainMenu in Interface
Step 4 : Building the Widget
Step 5 : Event Show Main Menu in GameInstance
Step 6 : Open main menu from level blueprint
Video step 1 to 6
In the following video I forgot to show that in Project Settings, Maps en Modes, the Game Instance class is set to your created Gameinstance!!
Previous steps are preparation for the real thing 🙂
Step 7 Create PlayerInfo Struct, Add to Interface, Store in GameInstance
Step 8 Store to PlayerInfo in Menu. Event M to print PlayerInfo
Video step 7 and 8
Wrap up Part 4
Extra
I have added another part, where on the Gameinstance al list of numbers is stored. This list is filled by the clients. In this case I used the character for getting access to the gameinstance of the server
Keys : G and H
Result