# PlayerPrefs

> PlayerPrefs is a class that stores Player preferences between game sessions. It can store string, float and integer values into the user's platform registry.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public class PlayerPrefs
```

## Remarks

Unity stores PlayerPrefs in a local registry, without encryption. Don't use PlayerPrefs data to store sensitive data.

Unity stores `PlayerPrefs` data differently based on which operating system the application runs on. In the file paths given on this page, the `ExampleCompanyName`, `ExampleProductName`, and `ExampleBundleIdentifier` are the names you set in Unity's [Player Settings](/engine/6000.7/manual/unity-editor/editor-settings-reference/comp-manager-group/class-player-settings.md).

**Standalone Player storage location**

* **Android**: `/data/data/pkg-name/shared_prefs/pkg-name.v2.playerprefs.xml`.

**Notes**:

* Unity uses [SharedPreferences](https://developer.android.com/reference/android/content/SharedPreferences) API to access the `PlayerPrefs` data and [SharedPreferences.Editor](https://developer.android.com/reference/android/content/SharedPreferences.Editor) API to modify it.

* C#, Android Java, and native code can all access the `PlayerPrefs` data.

* **iOS**: Uses the `[NSUserDefaults standardUserDefaults]` API to store PlayerPrefs data.

* **Linux**: `~/.config/unity3d/ExampleCompanyName/ExampleProductName`

* **macOS**: `~/Library/Preferences/ExampleBundleIdentifier.plist`. The default value of **ExampleBundleIdentifier** is **com.ExampleCompanyName.ExampleProductName**. Override this value from the [macOS Player settings](/engine/6000.7/manual/platform-specific/apple-mac/player-settings-mac-os.md).

* **Web**: Unity stores up to 1MB of PlayerPrefs data using the browser's IndexedDB API. For more information, see [IndexedDB](https://developers.google.com/web/ilt/pwa/lab-indexeddb#overview).

* **Windows**: `Computer\HKEY_CURRENT_USER\Software\ExampleCompanyName\ExampleProductName` in the Registry Editor.

* **Windows Universal Platform**: `%userprofile%\AppData\Local\Packages\[ProductPackageId]\LocalState\playerprefs.dat`

**In-Editor Play mode storage location**

* **macOS**: `~/Library/Preferences/com.ExampleCompanyName.ExampleProductName.plist`

* **Windows**: `Computer\HKEY_CURRENT_USER\Software\Unity\UnityEditor\ExampleCompanyName\ExampleProductName` key. Note that Windows uses the key names from the application's PlayerPrefs as a hashed identifier. For example, Unity adds a `DeckBase` string to the hashed key name (for example `h3232628825`) to create `DeckBase_h3232628825`. Unity hashes the names because it:

- Allows Unity to store case-sensitive key names.
- Prevents naming conflicts with data the application stores outside of PlayerPrefs.
- Ensures that you use the PlayerPrefs API to access and modify the values.

The application ignores the extension.

## Static Methods

| Method                                                                            | Description                                                                                                                                                                                                  |
| --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [DeleteAll](/engine/6000.7/script-reference/unityengine/playerprefs/deleteall.md) | Removes all keys and values from the preferences. Use with caution.                                                                                                                                          |
| [DeleteKey](/engine/6000.7/script-reference/unityengine/playerprefs/deletekey.md) | Removes the given `key` from the PlayerPrefs. If the key does not exist, [PlayerPrefs.DeleteKey](/engine/6000.7/script-reference/unityengine/playerprefs/deletekey.md) has no impact.                        |
| [GetFloat](/engine/6000.7/script-reference/unityengine/playerprefs/getfloat.md)   | Returns the float value that corresponds to `key` in the player preferences.                                                                                                                                 |
| [GetInt](/engine/6000.7/script-reference/unityengine/playerprefs/getint.md)       | Gets the int value that corresponds to `key` in the player preferences.                                                                                                                                      |
| [GetString](/engine/6000.7/script-reference/unityengine/playerprefs/getstring.md) | Gets the string that corresponds to `key` in the player preferences.                                                                                                                                         |
| [HasKey](/engine/6000.7/script-reference/unityengine/playerprefs/haskey.md)       | Returns true if the given `key` exists in PlayerPrefs, otherwise returns false.                                                                                                                              |
| [Save](/engine/6000.7/script-reference/unityengine/playerprefs/save.md)           | Saves all modified preferences.                                                                                                                                                                              |
| [SetFloat](/engine/6000.7/script-reference/unityengine/playerprefs/setfloat.md)   | Sets the float value of the preference identified by the given key. You can use [PlayerPrefs.GetFloat](/engine/6000.7/script-reference/unityengine/playerprefs/getfloat.md) to retrieve this value.          |
| [SetInt](/engine/6000.7/script-reference/unityengine/playerprefs/setint.md)       | Sets a single integer value for the preference identified by the given key. You can use [PlayerPrefs.GetInt](/engine/6000.7/script-reference/unityengine/playerprefs/getint.md) to retrieve this value.      |
| [SetString](/engine/6000.7/script-reference/unityengine/playerprefs/setstring.md) | Sets a single string value for the preference identified by the given key. You can use [PlayerPrefs.GetString](/engine/6000.7/script-reference/unityengine/playerprefs/getstring.md) to retrieve this value. |
