QuickSave


It's safe ... You can change your mind later ... Features ... Compression — GZip for smaller save files JSON or binary — readable JSON (with optional pretty print) or a compact binary ...


by bokokit


Price History +

Save and load your game in a few lines of code. Save slots with thumbnails, AES encryption, GZip, async saving, auto-save and data migration included. No dependencies.

Technical details

Key features

  • Static API: Set, Get, Has, Delete, Clear, Commit, CommitAsync
  • Object API: SaveObject, LoadObject, TryLoadObject, SaveObjectAsync
  • Slots: UseSlot, ListSlots, GetSlotInfo, SetSlotMeta, DeleteSlot (playtime, last-write time, screenshot, custom fields)
  • Supported types: all primitives, decimal, enums, Vector2/3/4, Quaternion, Color, Color32, Rect, Bounds, arrays, List<T>, Dictionary<string, T>, nested [Serializable] classes and structs
  • Formats: JSON (optional pretty print), binary
  • Storage: files in Application.persistentDataPath, or PlayerPrefs
  • Encryption: AES-256-CBC + HMAC-SHA256 integrity check
  • Compression: GZip
  • Atomic file writes, automatic .bak recovery, reads never throw
  • Self-describing save files (format, compression and encryption recorded in each file)
  • Async saving on a background thread
  • Auto-save modes: Timer, OnPauseAndQuit, Both
  • Versioned saves and migrations (MigrationContext: Get, Set, Has, Delete, Rename, Keys)
  • Events: OnBeforeSave, OnAfterSave, OnAfterLoad, OnError
  • Editor window, save-folder shortcut, settings asset with "Apply to Runtime"

Platforms & backends

  • Unity 2021.3 LTS or newer
  • Mono and IL2CPP (link.xml included)
  • Tested: Unity Editor (Windows), IL2CPP Windows player

Package contents

  • Runtime and Editor assemblies with full C# source
  • 8 samples, including the playable Showcase Game
  • README and PDF manual with API reference
  • No third-party dependencies (samples use Unity UI, included in Unity by default)

Limitations

  • GameObjects, components and asset references are not serialized — save their data instead
  • Dictionary keys must be strings
  • Encrypted saves require the key they were written with

Why use QuickSave?

It's easy
Save and load with a few lines of code — no setup, no components to add:

QuickSave.Set("coins", 120);
QuickSave.Commit();
int coins = QuickSave.Get("coins", 0);

It's safe
Atomic writes mean a crash mid-save never corrupts the previous save. A backup of the last save is restored automatically if a file is damaged, and loading never throws — problems are reported through an event instead of crashing your game.

It grows with your project
Start with a few values, then add save slots, encryption, compression, background saving, auto-save and data migrations — all through the same small API.

You can change your mind later
Every save file records how it was written. Switch between JSON and binary, or turn compression and encryption on or off, and your players' existing saves still load.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Features

  • Save almost any data — primitives, enums, Vector2/3/4, Quaternion, Color, Rect, Bounds, arrays, Lists, Dictionaries and your own [Serializable] classes, nested as deep as you need
  • Save slots with metadata — playtime, last-save time, a screenshot thumbnail and your own custom fields for every slot, ready for a save/load menu
  • Encryption — AES-256 with an integrity check that detects a wrong key or an edited file
  • Compression — GZip for smaller save files
  • JSON or binary — readable JSON (with optional pretty print) or a compact binary format
  • Async saving — serialize, compress, encrypt and write on a background thread, without a frame hitch
  • Auto-save — on a timer, when the game is paused or closed, or both
  • Data migration — change your data model and upgrade old saves on load (rename fields, add defaults)
  • Events — OnBeforeSave, OnAfterSave, OnAfterLoad and OnError with clear, specific messages
  • Files or PlayerPrefs — choose the storage backend with one setting
  • Editor tools — browse, inspect, edit and delete saves in Window > QuickSave; configure everything with a settings asset
  • IL2CPP ready — link.xml included

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Learn by playing: the Showcase Game

A small playable 3D sample where you move, collect coins and build objects, then save to three slots with real thumbnails, load them back, change every QuickSave setting from the UI and watch the save events live. All of its QuickSave calls are in one readable script.

Plus 7 focused samples: Basic, Slots, Encryption & Compression, Async, Auto-Save, Migration and a Samples Hub.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Compatible with

Unity 2021.3 LTS or newer

Mono and IL2CPP scripting backends
Built-in Render Pipeline and URP (the runtime does no rendering)
Tested in the Unity Editor and an IL2CPP Windows build

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Fully documented & source code included

A complete manual (README and PDF): installation, quick start, setup, full API reference, guides and troubleshooting. Full C# source, no DLLs.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━