PlayerPrefs is not a full save architecture.
Save & Load Guide
Separate durable save data from live nodes, scene paths, and temporary runtime state.
Save & Load Systems
Build robust save systems in Godot 4 - from simple JSON to full game state serialization
Why Every Game Needs a Save System
Save systems preserve player progress, settings, and game state. Without them, players lose everything when they close your game.
In Unity, you might use PlayerPrefs for simple data or serialize to JSON/binary files. Godot uses FileAccess class for all file operations - it's more direct and powerful.
What to Save
- Player position, health, inventory
- Game progress (levels, quests)
- World state (opened chests, killed enemies)
- Settings (volume, keybinds)
- Statistics (playtime, deaths)
Where Saves Go
user://- User's app data folder- Windows:
%APPDATA%\Godot\app_userdata\ - macOS:
~/Library/Application Support/ - Linux:
~/.local/share/godot/
Always use user:// for save files, never res://. The res:// path is read-only in exported games and points to your project folder during development.
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.
SaveGame-style data still needs stable IDs and migration habits.
Use user://, plain dictionaries or Resources, and validate loaded data.
Add a save_version field before the save file grows.