> For the complete documentation index, see [llms.txt](https://irrelevant-pixel.gitbook.io/irrelevant-pixel/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://irrelevant-pixel.gitbook.io/irrelevant-pixel/getting-to-know-how-to-use-it/save-your-options.md).

# Save your Options

In the future, I am planning to rework my whole <mark style="color:purple;">`SaveGame`</mark> concept and make it more automatic and easier to use. For now, it is quite straight-forward and simple, if you already at least watched some of the Unreal Engine <mark style="color:purple;">`SaveGame`</mark> tutorials and know what that is - it all will be easy for you to understand.

***

Open the <mark style="color:purple;">`SaveGame`</mark> file `BP_SaveGame_GameSettings`. As you can see, here all of the *non-GameSettings* are stored.&#x20;

<figure><img src="/files/Hi8aBQhxH9LXVzKVuOix" alt=""><figcaption></figcaption></figure>

Add a variable for the new Option you need. Now you want to access that variable from <mark style="color:yellow;">**any place**</mark> in your Project, *read* / *write* its value. I do that with the help of the **GlobalFunctions BP library**.

<details>

<summary>SaveGame sections in Global Functions</summary>

In `BPFL_GlobalFunctions`, if you look at categories, some of those are normal, and others (*almost half*) end with <mark style="color:purple;">`(SaveGame)`</mark>. The second ones are isolated functions that do nothing but interact with <mark style="color:purple;">`SaveGame`</mark> variables, nothing more. Primarily performs `Set`/`Get`. Almost no real reason even to bother looking inside those, no real functionality there.

<img src="/files/f7lMW9bJdYE0QN2FTdZy" alt="" data-size="original">

All functions in such categories are named with prefix <mark style="color:purple;">`(S)`</mark>

</details>

I suggest you also make `Set`/`Get` little functions as well. In my opinion, it is better to have such things as one neat node when possible.

***

In this project, I went with a simple and straightforward approach of autosave. Once an event from an `Option` in the `Page` is triggered and its functional part is executed - then it is instantly <mark style="color:purple;">Saved</mark>.

Go and open something like `Screen`, `Audio`, `Mouse` pages and look what i am talking about. <mark style="color:purple;">Save</mark> is performed with a simple call of this Global function:

<figure><img src="/files/mEZJzyBAIxNclNMAuCBl" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="success" %}
But I am already thinking about remaking this entire thing, probably will figure out the best way how to do that soon.
{% endhint %}
