Core Systems Quest

Save & Load Guide

Separate durable save data from live nodes, scene paths, and temporary runtime state.

10-20 min Practice first Godot 4.6
Start here

Which save approach should I use?

The right save system depends on how much state you need to restore. Start with the smallest approach that can survive a real export and a failed load.

Unity comparison

Use FileAccess plus JSON for what Unity projects often solve with PlayerPrefs, JsonUtility, or custom file IO. Godot does not force a SaveGame class; you own the format.

Settings only

Use
ConfigFile or small JSON
Best for
Volume, fullscreen, language, accessibility options, input preferences.
Watch out
Do not mix settings with game progress unless the game is very small.

Simple progress

Use
One JSON file in user://
Best for
Level reached, coins, player position, unlocked items, flags.
Watch out
Do not save raw node references. Save IDs, names, paths, or data values.

Medium game state

Use
SaveManager autoload plus per-node save data
Best for
Many saveable objects, checkpoints, opened chests, killed enemies, quest state.
Watch out
Do not let the manager know every detail of every node. Let nodes provide their data.

Multiple profiles or slots

Use
A saves directory with slot metadata
Best for
Save slots, autosaves, continue menu previews, player profiles.
Watch out
Do not overwrite the only save without a backup or validation path.
Default recommendation

For most solo 2D and small 3D projects, use one JSON save file first. Add slots, autosaves, and encryption only after the basic load path is reliable.

Tutor Checkpoint

Lock the pattern in

Before jumping to the next page, turn the idea into one tiny scene or script. That is where the Godot habit sticks.

Unity habit

PlayerPrefs is not a full save architecture.

Unreal habit

SaveGame-style data still needs stable IDs and migration habits.

Godot habit

Use user://, plain dictionaries or Resources, and validate loaded data.

Try this

Add a save_version field before the save file grows.