Save System for Godot 4: Save Slots, Autosave & Migrations (Save/Load Kit)
Save system for Godot 4: save slots, atomic writes, rotating backups, corruption fallback and save migrations.
Try it in your browser above before you buy.
Godot version: Works with Godot 4.4+. Tested on 4.4 and 4.7 (Windows, NVIDIA GPU). Does not run on 4.3 (it uses to_native/from_native, added in 4.4). Not tested: web export, macOS/Linux.
Launch sale until Oct 16: discounted price shown on this page, one sale only.
Save/Load Kit is a save system for Godot 4 that cares about the boring failure cases: a crash in the middle of a write, a damaged file, and a game update that changes your data layout. 100 percent code (no art, no audio, nothing to import), typed GDScript with doc comments.
SaveKit.set_value("coins", 12)
SaveKit.save_game("1", "Chapter 2")
var r := SaveKit.load_game("1") # r.ok(), r.used_backup(), r.migrated
What is inside
- Save slots with metadata: name, timestamp, playtime, optional thumbnail, free-form extra data. List them for a load menu.
- Atomic writes: data goes to a temp file, is read back and verified, then moved into place. The previous save is never overwritten in place.
- Rotating backups (default 3) and autosave (timer or manual) through the same rotation.
- Corruption detection: a SHA-256 over header and body catches truncated, flipped or extended files. The loader skips bad copies and uses the newest good backup, and tells you (
backup_usedsignal,result.backup_index). Loading never writes to disk. - Schema versioning and migrations:
register_migration(from_version, callable). Old saves are upgraded in a chain on load, in memory; the old file is kept as a backup when you next save. A missing step is reported by name, andmissing_migrations()lets you assert at startup. - Optional encryption with
FileAccess.open_encrypted_with_pass, plus password helpers. Turn it on later and old plain saves still load. - JSON or binary bodies. Types survive the round trip (ints stay ints, Vector2, Color, nested dictionaries and so on); Objects are refused with a clear path instead of failing silently.
- Two ways to collect state: a
Saveablenode (list property names and/orsave_state()/load_state()), or put any node in groupsaveable; plus a plain dictionary API (set_value/get_value). Duplicate ids are caught. - Signals for every step, a
SaveResultwith a status enum and message instead of bare error codes. - A demo scene with a slot list built in code: save, load, delete, corrupt a file on purpose and watch the backup fallback, write an old v1 save and watch the migration.
SaveStoreworks without nodes or autoloads if you want only the file layer.
How it compares
There are free save systems for Godot, and they are a fine choice if you only need to write a dictionary to a file. This kit is for when you also want backups, corruption recovery and migrations that are built in and covered by tests, and you would rather pay a few dollars than write and debug that yourself. It is not a framework for cloud saves, Steam Cloud or saving whole Resource/Node trees.
Licence
Commercial use in unlimited projects, modification allowed. You may not redistribute or resell the kit (as source, or inside another asset pack, template or tutorial pack). Full text in LICENSE.txt.
Honest testing note
Built and tested on Godot 4.7 stable (Linux). A headless test script with 133 checks passes, also from the unzipped download: slots, metadata, JSON and binary, backup rotation, corruption by flipped byte, truncation, garbage, appended bytes and damaged metadata with fallback, a multi-step migration chain, encryption round trip, wrong password, and the SaveKit signals and node collection. The demo was rendered with the GL Compatibility renderer (software OpenGL) and the screenshots here are real captures.
Not tested: Windows, macOS, Android, iOS and web export (it uses only user:// paths and standard FileAccess/DirAccess, but nothing was run there), real power loss or process kill during a write (simulated with leftover temp files and a missing main file), very large saves, threads, other Godot versions. Encryption here is obfuscation: the password ships in your game. The checksum detects accidental damage, not cheating. Godot cannot tell a wrong password from a damaged encrypted file, so both report DECRYPT_FAILED.
AI-assistance disclosure
The code and text of this kit were written with AI assistance under human direction and tested by the author. There is no AI-generated art or audio.
More from inkharbor
Full packs: Print & Paint FX · Retro Screen FX · Pulse FX 2D · Weather FX 2D · Pixel Sprite FX · Toon Forge 3D · Ember VFX 3D · Hitfeel Kit · Screen Transitions · Settings Menu Kit · Inventory Kit · Dialogue & Quest Kit · Exporter Pro
Free to try: Print & Paint sampler · Exporter (free) · Hitfeel Lite · Screen Transitions Lite · Retro Lite · Pulse Lite · Weather Lite · Pixel Lite · Toon Lite · Ember Lite · Dialogue Lite · Inventory Lite · Last Ember (free game)
| Published | 1 day ago |
| Status | Released |
| Category | Assets |
| Author | inkharbor |
| Genre | Role Playing |
| Made with | Godot |
| Tags | Asset Pack, Game Design, Godot, sourcecode, Project template |
| AI Disclosure | AI Assisted, Code, Text |
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $2.84 USD. You will get access to the following files:




