# Player Settings

`PlayerSettings` is essentially a [SaveState](/esave/esave-pro/scripting/save-states.md) that is meant to save data that should be persistent across all save states, such as a player's preferred game settings.

You can manage data in `PlayerSettings` the [same way as you can with save states](/esave/esave-pro/scripting/saving-and-loading.md). The difference is that you don't need to call `ESave.Save` on it to confirm the changes, which means that the changes made are confirmed automatically.

## Creating Player Settings

Player settings is automatically created upon [initializing](/esave/esave-pro/scripting/initialization.md) ESave for the first time.

## Getting Player Settings

You can get the player's settings with the `ESave.GetPlayerSettings` method.

```csharp
PlayerSettings myPlayerSettings = ESave.GetPlayerSettings();
```

## Managing Data

Data inside `PlayerSettings` can be managed the same way as `SaveState`'s. See [Saving & Loading](/esave/esave-pro/scripting/saving-and-loading.md). Remember, you **don't** need to call `ESave.Save` to confirm the changes.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://espergames.gitbook.io/esave/esave-pro/scripting/player-settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
