I have checked out meny Tutorials on “Doing main menu options settings” BUT…
…But I have not seen one that does a GOOD job on “saving and loading” the custom main menu options settings!..
…Example: normally each time you start the game it just loads the “default game manu options settings” and NOT the “custom player main menu settings”!..
…In other words how do you SAVE the custom resolution and custom details and next time you load the game it LOADS the custom settings of the custom resolution and custom details that had been saved!?
…But that exemple is too generalistic, I am looking for something more like:
Example: you have detail options “low, médium, high, epic” and Resolution “1K, 2K, 4K, 8K” and you choose one of each and save uption, after at game start up it loads custom options saved…
…Its that simple but in blueprint have done some ways but it does not work right…
…Have checked a lot of oficial vídeos but did not find one that loads and saves custom game options that do that!!!
I create a custom struct called ‘UserSettings’ and I add a bunch of different variables to it like: float MasterVolume, bool InvertedMouse, etc. and I save and load that custom struct with all the settings of the game in it.
For “low, medium, high, epic” and “1K, 2K, 4K, 8K(wow:D)” settings, you could create two custom Enums with these list elements and you also add these Enums to your custom struct.
In your settings menu, when the player changes something, make sure you update the respective elements in your custom struct.
I usually create an ‘ApplySettings’ function that I run when my game loads up or when the user saved some new settings. In this function, you load up your saved custom struct and you apply all the changes to your game based on the information in the struct. This is the time when you need to associate some values to your Enum list elements, so use a ‘Switch on YourEnum’ node to apply the desired settings. For example you have a ‘GraphicsQuality’ enum with the elements you mentioned (low, medium etc), you would use the ‘SwitchOnGraphicsSettings’ node then you can determine what quality settings you should apply when the chosen one is ‘low’ what to apply when it is ‘medium’ etc.