User Manual

A save system for Unity. Declare your game data once, and it saves and loads itself.

The whole idea

Your save data lives in an asset. Make a class that inherits PersistentScriptableObject, and every serialized field on it survives between play sessions, automatically.

using PersistentAsset;
using UnityEngine;

[CreateAssetMenu(menuName = "Player Data")]
public class PlayerData : PersistentScriptableObject
{
    public int gold;
    public int level = 1;
}

That is the entire setup. Create the asset, press Play, change the values, stop, press Play again, and they are still there. No save code, no file paths, no boilerplate.

Persistent Asset stores your data in ScriptableObjects. Never used one? Here is a two-minute primer.
The example above covers most projects. Save slots, encryption, cloud saves, save versioning and no-code variables layer on top, as a game needs them.

No parallel data model

A traditional save system asks for a second set of data structures: save classes next to your game data, code to copy fields into them to write, code to copy them back to read, and both models kept in sync release after release.

Here your data is the save. The asset holding a profile, settings, progression or an inventory is the same object your game reads at runtime and your designers edit in the inspector, so there is no mapping layer and nothing to drift out of date.

Where to go next

Author & Contact

Created by Juste Tools.

Reviews on the Asset Store are always appreciated.