I have a coin variable for my player, and say i collect 5 coins and then die or exit to the main menu or exit the game, i want the coin value to add everything up so i can spend them in a store for items.
It is a Bp where you can store and change variables that then will carried over from level to level.
It works like a regular Blueprint, but when you set your created Instance as the GameInstance i will then not be reset from level to level, and as such will be where you store your money variable, (and also where you store your bought items when you return to the world).
No, if you need the variable stored outside of the game, you would than take the GameInstance variable, and place it in a save game object (there are also some good documentation on that if you are unceartian of this).
Then when the game is opened, you load the variable before the main game is started, and place it back into theGameInstance.
With these executions, you will now have the possibility to store your variable between levels/menus and between program starts