I’ve watched a lot of tutorials on creating/saving to a game slot manually. And I’ve found others that cover multiple game slots using the same method. But I haven’t found any that cover how this would work in an open world game, where saving happens ‘automatically’ (i.e. the user doesn’t manually select which savegame slot to save to each time an update happens).
For example, my rpg currently allows up to three game slots per account. I think I’ve successfully got the blueprint working to create a new game slot in the save game blueprint if there are no previously saved games in that slot. However, if I log out and log back in later and load up the slot 2 game from the start menu (as an example), how do I ensure all progress in that instance is saved to the variables set up for game slot 2 and not slots 1 or 3 while I’m running the game? They need to automatically update as the player won’t be asked which slot to select every time. The process has to run in the background.
I currently have variables for slots 1-3 organised on a single save game blueprint. How do I get the start menu to tell the game instance which slot I’m playing and therefore which savegame variables to save to during the game?
It’s only a small game in terms of maps, items, etc, and only a handful of variables to save per slot. But the UI is set up like WoW (log into account, create new character or select previously saved one, enter game and play with automatic saves at certain trigger points like obtaining item, completing quest, etc).
If anyone knows of any tutorials that cover this specific situation (I’m guessing other rpg creators have dealt with this before) then that would be really useful.
- I should specifiy this is a singleplayer, not multiplayer, which might (hopefully) make things a bit easier.
More info on the UI / logic / components for context…
I have a savegame blueprint with a few variables.
The start/create game menu is split into:
-
3 buttons for each potential game slot (Slot 1, Slot 2, Slot 3) - with text ’ - ’ by default unless a character is using that slot, at which point they display the save game variable ‘CharName’ for that slot. Clicking on one of these buttons should store that slot # (1, 2 or 3) on the game instance blueprint as variable ‘ActiveSlot’, retrieve the most recent saved variable data for that slot, then close the start menu and run the game from where the player last logged out.
-
Each of the 3 buttons has a corresponding ‘delete’ button that will bring up a warning message when clicked, then on ‘confirm’ the saved data for that slot will be wiped so the slot becomes free to use again.
-
A ‘create new character’ button that checks to see if a saved game exists in slot 1. If it doesn’t then use slot 1 to create a new character. If a saved game already exists in slot 1, check slot 2, then 3 until a free one is found. If all 3 slots are used, a message appears advising the max number of characters has been reached. When a slot is created, it should store that slot # (1, 2 or 3) on the game instance blueprint, then go to the character basics screen.
-
On the character basics screen the player chooses a species for their character. Clicking ‘back’ will give a warning message that character is incomplete and will not be saved. On ‘confirm’ it will wipe that slot so it’s free to use again. Or they choose a species, click ‘next’ and the ‘species’ variable for that slot on the savegame blueprint is updated from default to their choice. Then go to the character class screen.
-
The character class screen is similar to the above. They either return to the previous screen on ‘back’ or they pick a class and the class variable for that slot updates. Then go to the customise screen.
-
The customise screen lets them pick eye colour, hair, skin, etc and specify a character name, which updates all these variables on the game slot. Then they click ‘confirm’, which updates the displayed text for that slot button on the first screen, then runs an animation before they enter the first level map.
-
If for some reason the game shuts down before the character creation process is complete, then on reboot that game slot is wiped and an error message notifies the player that the character was not saved’.
I have a custom game instance that should retrieve the ‘ActiveSlot’ number and tell the savegame blueprint to save to this slot while the player is in the game. There are various ‘triggers’ to save, such as obtaining a new item, completing a quest, increasing skill XP, current location, choosing to ‘log out’, etc. Each of these will refer to the ‘ActiveSlot’ to decide where to save the new data.