Simple on the surface. Careful underneath.
PersistKit saves and loads a game's data in one line, remembers a scene object from a few ticks in the Inspector, and refuses — out loud, with a code — the three things every save system gets wrong eventually: losing a value it could not store, overwriting a save it could not read, and guessing when it cannot tell which copy is newer.
Use as much of it as you want
Every level writes the same file, so a value saved from the Inspector is a value your own code can load, and the other way round.
No code at all
Add PersistKit Behaviour to the object whose state matters, tick the parts that should come back, and press Play. Each field has a Save box and a Load box, so a value can be written without ever being overwritten, or read from an older save without being rewritten.
- Save and Load columns
- Physics written through the body
- Names the field it refuses
One line each way
Persist.Save("score", 1500) and int score = Persist.Load("score", 0). Numbers, text, enums, Unity value types, your own [System.Serializable] classes, and arrays, lists and dictionaries of all of them — with no wrapper class.
- Slots
- Backups
- Recovery from a damaged file
- Results, not exceptions
The parts a long-lived game needs
Asset references by registry key, the objects your game spawned from prefabs, AES-256 with HMAC authentication on request, and migrations that walk an old save forward one version at a time — copy first, validate, then write, and roll back if anything fails.
- Refuses a newer save
- Refuses a missing migration
- Keeps a copy before migrating
Two providers that work, and no invented ones
PersistKit carries the whole cloud behaviour — what counts as a conflict, what to do offline, what to retry — and a provider only moves bytes.
Folder and REST
Verified- A Dropbox, OneDrive or network folder, with no account and no SDK
- Any HTTP endpoint, with conditional writes through
If-Match - Conflicts are a question, never an overwrite: keep this device's copy, the cloud's, or both
- Offline saves are marked and sent later
SDK services
Not supported- Unity Cloud Save, Steam Cloud, Firebase, Supabase, PlayFab
- Each needs an account, a plan or a platform SDK, and none could be run here
- No adapter ships, and nothing in the package references their SDKs
- The five-operation contract each one needs is documented
Six labels, six meanings
- AvailableIn the package and enforced by tests. If it stops being true, that is a defect.
- VerifiedExercised and passing in a named environment, with the way to reproduce it stated.
- Requires an adapterThe package ships the contract; you supply the implementation.
- RoadmapPlanned, not shipped. No dates are promised and nothing here is usable today.
- Not verifiedReasoned about, never run. No claim is made in either direction.
- Not supportedDeliberately out of scope, with the reason and the workaround stated.
Want the edges first?The limitations page lists what PersistKit does not do, what it cannot protect, and where a documented boundary will be met rather than discovered.
Read the limitations