How Persistent Asset Compares
See how Persistent Asset holds up against the other save solutions on the store.
Legend: ✅ yes · ⚠️ partly / manual or unclear · ➖ deliberately not · ❌ no · ⏳ coming
| Persistent Asset | Easy Save 3 | Bayat Save System | |
|---|---|---|---|
| Setup & workflow | |||
| Saves & loads automatically, no code | ✅ Runs on its own | ⚠️ Auto Save component | ⚠️ Auto Save component |
| Set up entirely in the Inspector | ✅ No C# needed | ⚠️ Mostly code | ⚠️ Mostly code |
| Drop Save / Load onto a button | ✅ Ready for UnityEvents | ⚠️ Small script | ❌ Needs scripting |
| Save or wipe everything in one call | ✅ One call, every object | ⚠️ Auto Save / DeleteFile | ⚠️ Auto Save Manager |
| Change where saves go without rewriting code | ✅ Dropdown on the asset | ⚠️ Default in Settings window | ❌ Set in code |
| Where it saves | |||
| Local files & PlayerPrefs | ✅ Built in | ✅ Built in | ✅ Built in |
| Multiple save slots | ✅ Built in | ✅ Multiple files | ✅ Catalog API |
| Screenshot thumbnails for save slots | ✅ Built-in per-slot capture | ⚠️ Save a Texture2D yourself | ⚠️ Save images yourself |
| Cloud saves across devices, built-in | ✅ Unity Cloud Save | ✅ ES3Cloud (self-host) | ⚠️ Firebase / PlayFab add-ons |
| Keeps working offline, syncs later | ✅ Auto-uploads later | ⚠️ Saves locally, manual ES3Cloud.Sync | ⚠️ Manual |
| Database storage (SQL / NoSQL) | ➖ By design: your backend | ✅ MySQL (SQL) via ES3Cloud | ⚠️ Firebase add-on (NoSQL) |
| PC, mobile & WebGL | ✅ Fully supported | ✅ Fully supported | ✅ Fully supported |
| Consoles | ⚠️ Custom code, integrated | ❌ Fully custom, no integration | ❌ Fully custom, no integration |
| Reliability & data safety | |||
| Saves can’t corrupt on crash or power loss | ✅ Atomic write-then-swap | ⚠️ Atomic move, manual recovery | ⚠️ Backup-based |
| Automatic backup copy | ✅ Automatic fallback | ⚠️ Manual backup/restore | ⚠️ Manual backup API |
| Never overwrites good progress with defaults | ✅ Won’t wipe a real save | ⚠️ Up to your code | ⚠️ Up to your code |
| Knows when async/cloud data is ready to use | ✅ Built-in ready signal | ⚠️ You track it | ⚠️ You track it |
| Upgrades old saves after a game update | ✅ Versioning built in | ⚠️ Migrate yourself | ⚠️ Migrate yourself |
| Change save format or location without losing player saves | ✅ Auto-migrates old saves | ⚠️ Up to your code | ⚠️ Up to your code |
| Reset to defaults or restore a checkpoint | ✅ Built-in reset & checkpoints | ⚠️ Manual | ⚠️ Manual |
| Finishes saving before the game closes | ✅ Waits for in-flight saves | ➖ Synchronous, no wait needed | ⚠️ No async drain |
| Security | |||
| Save encryption | ✅ AES-256 | ✅ AES-128 | ✅ AES-128 |
| Tamper-proofing & anti-cheat | ✅ Edit-detection + device locks | ⚠️ Encryption only | ⚠️ Encryption only |
| Performance | |||
| Smooth saving, no frame stutter | ✅ Heavy work in the background | ⚠️ Mostly main thread | ⚠️ Async API only |
| Compress saves to shrink file size | ✅ gzip (Fast or Optimal) | ✅ gzip | ❌ Not built in |
| Skips saving when nothing changed | ✅ Optional dirty-check | ⚠️ Manual / cache | ⚠️ Manual |
| What you can save | |||
| Deep object graphs & polymorphism out of the box | ⏳ [SerializeReference] now, full serializers coming |
✅ Reflection serializer | ✅ Json.NET-based |
| Save any object from anywhere in code | ➖ By design: one clear asset | ✅ Save anything, anywhere | ✅ Save anything, anywhere |
| Reach saved data anywhere, no string keys | ✅ Find by type, no refs | ⚠️ Via string keys | ⚠️ Via string keys |
| Save entire scenes & GameObjects | ➖ By design: we save data | ✅ Snapshots scene objects | ✅ Unity objects & components |
| Save references between objects | ⏳ Asset refs planned | ✅ Unity & shared refs | ✅ Resolvers + shared refs |
| Save individual values / keys | ✅ Via Persistent Variables bag | ✅ Per-key partial saves | ✅ Per-key |
| Editor & debugging tools | |||
| Live save status right in the Inspector | ✅ Load state & last result | ❌ No live panel | ❌ None |
| Edit your data live while playing | ✅ Tweak in the Inspector mid-play | ⚠️ Your component fields | ⚠️ Your component fields |
| Run Save / Load / Clear by hand while playing | ✅ Inspector buttons | ⚠️ From code | ⚠️ From code |
| Running log of every save & load | ✅ Built-in log | ❌ Not built in | ❌ Not built in |
| On-device log viewer (debug on real builds) | ✅ In-game overlay | ❌ Not built in | ❌ Not built in |
| Simulate failures & slow/cancelled saves | ✅ Built-in test mode | ❌ Not built in | ❌ Not built in |
| One-click wipe of local saves for re-testing | ✅ Dev tool included | ⚠️ Editor tools | ⚠️ Via code |
| No-code for designers | |||
| Save options & settings, no code | ✅ Ready-made workflow | ➖ Code-first by design | ➖ Code-first by design |
| Bind values to UI without code | ✅ Binder components | ➖ Code-first by design | ➖ Code-first by design |
| Values notify your UI when they change | ✅ Observable values | ➖ Code-first by design | ➖ Code-first by design |
| Extending & integrations | |||
| Add your own save destination | ✅ Custom manager (+ cloud base) | ⚠️ Manual, no provider API | ✅ Modular Storage API |
| Swap in your own save format / serializer | ✅ Serializer is a slot | ⚠️ No serializer slot | ✅ Modular Serialization API |
| Teach it your own custom data types | ✅ Custom codecs | ✅ Custom ES3 types | ✅ Custom converters |
| React to saves & loads with events / hooks | ✅ Global events | ⚠️ Limited | ✅ Auto Save events |
| Add advanced behaviour with one small interface | ✅ Opt-in interfaces | ❌ No equivalent | ⚠️ Extensible APIs |
| Free official serializer add-ons | ⏳ Newtonsoft / Odin (coming) | ⚠️ Community | ❌ Json.NET only |
| Third-party integrations (Steam, PlayFab, Firebase…) | ⏳ On the roadmap | ⚠️ Some / community | ✅ Firebase, PlayFab |
| Visual scripting (PlayMaker) | ❌ Under consideration | ✅ PlayMaker actions | ⚠️ PlayMaker add-on; Bolt legacy |
| Spreadsheet / CSV export | ❌ Not our focus | ✅ Built in | ❌ Not offered |
| Compatibility & ownership | |||
| Full C# source included | ✅ Editable source | ✅ Editable source | ✅ Editable source |
| No mandatory dependencies | ✅ Standalone | ✅ Standalone | ✅ Standalone |
| IL2CPP / AOT ready | ✅ Mono & IL2CPP | ✅ Mono & IL2CPP | ✅ Mono & IL2CPP |
| Human-readable saves (unencrypted) | ✅ Plain JSON | ✅ Plain JSON | ✅ Plain JSON |
| Save to a custom file path | ✅ Configurable | ✅ Configurable | ✅ Configurable |
| Track record | |||
| Years of proven track record | ❌ New release | ✅ Long-established | ✅ Established |
| Actively developed (new features) | ✅ Active | ✅ Frequent updates | ❌ No release since Dec 2024 |
| Big community, tutorials & integrations | ❌ New | ✅ Large ecosystem | ⚠️ Smaller |
| Tested | ✅ 1,300+ automated tests (EditMode & PlayMode) | ✅ Field-proven over years | ⚠️ Platform-tested |
| Thorough documentation | ✅ Full docs | ✅ Full docs | ✅ Docs site |