Puppy Save - The Friendliest Save Game & Data Persistence
Bonez&Carrots
$32.99
(no ratings)
Jump AssetStore
Saves any type that Unity can serialize to a JSON file. Map a variable once, then decide when it writes. Whole objects, scene state, and a verified backup that repairs a corrupt save.Unity ships with PlayerPrefs, and it holds three types. Puppy Save writes a real JSON file, holds anything Unity can serialize, and never writes behind your back.You map a variable once, telling Puppy Save how to read it and how to write it back. From then on, it is saved. Nothing reaches disk until you call Save(), so you decide whether that is on a checkpoint, on a menu close, on quit, or on a timer.STORAGE- A plain JSON file written with JsonUtility, in Unity's standard persistent data folder- Readable, diffable, and hand-editable, with a save file editor included- Optional subfolder, so your saves sit apart from other packages- Profiles are separate files that sort together, for example save.json and save.slot2.jsonSAVING- Map any type Unity can serialize: primitives, strings, enums, Vector3, Color, your own [Serializable] classes and lists- Three calls to learn: Map, Load, Save. Nothing is written until you call Save- Enum keys or string keys, stored by name, so reordering an enum is safe- Pass owner: this and a mapping drop with the destroyed object, so a save after death never reads a corpseSCENE OBJECTS, NO CODE- SavableObject component: tick the transform, the active state, and the script fields to keep- Runtime-spawned objects respawn on load, destroyed ones stay gone- Registry builder scans and wires the prefabs for youWRITES THAT SURVIVE A CRASH- Temp file, read back, verified, then swapped in- Timed backup file with automatic fallback when the main file fails to parse- Save() returns false on failure, and OnSaveFailed carries the reasonWHEN IT WRITES- Save on quit, on pause, and on focus lost, each toggled separately- Auto-save interval, plus a dirty flag so you only write when something changedSLOTS, PROFILES, TRANSFER- Numbered slots and named profiles, each an independent file- Export and import a save as a string, verified before it is acceptedVERSIONING- Bump Game Data Version and fix old files on the way in- Rename keys, reshape values, remove keys, all from one migration hookSESSIONS- Total play time across every launch, time away since last session, consecutive day streak- Settable time source, so server time can replace the device clockSECURITY- Optional file scrambling with a tamper check, keyed by a project passwordPLATFORMS- WebGL flushes to IndexedDB after every successful write, so a closed tab keeps progress- Works in Built-in, URP, HDRP, and custom pipelines. No rendering code, no dependenciesEDITOR- Setup window, save file browser and editor, and a Project Settings page- Live panel in play mode: profile, values in memory, unsaved state, file name and size- Full C# source, one namespace, offline PDF documentationAI tools were used in a supporting role during development. Specifically: writing and running test cases against the package, drafting and formatting the documentation, wording the in-code comments, and checking the scripts for consistency with our own coding conventions. The package design, architecture, and functionality are our own.




