Save Kit
Save Kit
Safe, versioned, drop-in saving for Godot 4. Add a node, list what to keep, call one line to save and one to load.
| Lite | Complete | |
|---|---|---|
| Price | Free (the demo file on this page) | $8 |
| Licence | MIT | Complete licence: one developer or a team of up to 5, unlimited games, no credit, no royalties |
| Features | Save slots with metadata, a one-node way to save anything, type-safe JSON, background saves, atomic writes and corruption checks | Everything in Lite, plus save versions with migrations, binary saves with compression and encryption, autosave, rolling backups with recovery, scene-wide save, saves as text, and a Saves panel in the editor |
Saves are written on a background thread with atomic writes, so a crash mid-save never costs a player their progress, and every save is checked on load, so a damaged or tampered file fails cleanly instead of breaking your game. Lite is free and covers the core. Complete adds what a shipped game needs over its lifetime: upgrading old saves after an update, encryption, autosave, backups, saving the whole scene, and tools to look inside saves while you develop. Lite is a strict subset of Complete with the same API, so upgrading is a drop-in replacement.
Lite (free, MIT)
- Named save slots with metadata for your load menu: save time, playtime, save version, game version and your own fields (level name, chapter, portrait id). Listing slots reads only a small header, so it stays quick.
SK_Saveable: add it to any node and list the properties to keep (position,health,modulate:a), or give your scriptsave_data()andload_data().- Type-safe JSON: values come back with their exact Godot types, from 64-bit ints and vectors to transforms, colours, typed arrays and dictionaries, and every packed array.
- Background saves: the data is captured at once and written on a worker thread, so saving doesn't hitch. Saves and loads run in the order you call them.
- Atomic writes and recovery: a save goes to a temp file and replaces the old one only when it's complete. If the game dies mid-save, the old save (or the finished new one) is still there.
- Checked on load: a SHA-256 checksum over every save, and empty, truncated, damaged or foreign files fail with an error code and change nothing.
- Untrusted-input safe: saves are parsed as plain data and validated, never loaded as Resources, so a save file can't run code.
- Playtime tracking, documented API in Godot's built-in help, works on Web.
Complete
- Everything in Lite, plus:
- Save versions with migrations: when an update renames or moves saved data, add a step and old saves upgrade on load. Helpers rename, move, remove, default and convert values, with wildcards. A failing step changes nothing.
- Binary saves: a compact layout with Zstandard compression and AES-256 encryption, signed with HMAC-SHA256. Load menus still show slot details, and older JSON saves keep loading. Change the key in an update without breaking old saves.
- Autosave: on a timer of play time, when the window closes, when the app goes to the background or the browser tab loses focus, and at checkpoints, rotating several autosave slots.
- Rolling backups: each save keeps the versions it replaces, and a save that can't be read loads the newest good backup instead.
- Scene-wide save: saves which scene is running, the enemies and items your game spawned, and the pickups it removed. Loading from the title screen rebuilds the level exactly as it was.
- Saves as text: export a save as one line and import it again, for cloud sync, a "copy my save" button or bug reports. Imports are checked as strictly as loads.
- A Saves panel in the editor: see every save with its backups, which one is damaged and why, read and edit a save's data, open encrypted saves with your key, delete slots, and import a player's save string.
Try it in your browser
The demo above is the project's demo: a small top-down level with two rooms. Collect coins, take the key, open the door and drop beacons, then save to a slot, close the tab, come back and press Continue: the coins you took stay gone, the door stays open, your beacons are where you left them and the drones carry on from where they were. It autosaves every minute of play. The test bench (from the title screen) tries the rest by hand: binary and encrypted saves, an old save upgraded on load, a damaged save loading its backup, and a crash mid-save.
Requirements
- Godot 4.7.x, tested on 4.7.2 (standard build; .NET not tested).
- Works on desktop and Web (threads or no threads); the browser demo runs on Compatibility.
More addons and packs
- Stylized Shader Pack Vol. 1: https://tiny-forge.itch.io/stylized-shader-pack-vol-1
- Juice Kit: https://tiny-forge.itch.io/juice-kit
- Horde Survivor Template: https://tiny-forge.itch.io/horde-survivor-template
- Procedural VFX Kit: https://tiny-forge.itch.io/procedural-vfx-kit
- Stylized Shader Pack Vol. 2: https://tiny-forge.itch.io/stylized-shader-pack-vol-2
- Card Roguelike Template: https://tiny-forge.itch.io/card-roguelike-template
| Updated | 19 hours ago |
| Published | 10 days ago |
| Status | Released |
| Category | Tool |
| Platforms | HTML5 |
| Author | Tiny-Forge |
| Made with | Godot |
| Tags | gdscript, Godot, godot4, json, plugin, save-load, save-system, serialization |
| AI Disclosure | AI Assisted, Code, Text |
Purchase
In order to download this tool you must purchase it at or above the minimum price of $8 USD. You will get access to the following files:



Leave a comment
Log in with itch.io to leave a comment.