# Save Load

Use when implementing save/load systems, ConfigFile, JSON, Resource serialization...

- Repository: https://github.com/jame581/GodotPrompter (914 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add jame581/GodotPrompter --skill save-load -g -a claude-code -y`
Codex: `npx skills add jame581/GodotPrompter --skill save-load -g -a codex -y`
Cursor: `npx skills add jame581/GodotPrompter --skill save-load -g -a cursor -y`
Gemini CLI: `npx skills add jame581/GodotPrompter --skill save-load -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add jame581/GodotPrompter`

## Description

Use when implementing save/load systems, ConfigFile, JSON, Resource serialization, save game architecture

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Save / Load Systems in Godot 4.3+

Choose the right serialization strategy for your data type. All examples target Godot 4.3+ with no deprecated APIs.

> **Related skills:** **resource-pattern** for custom Resource data containers, **inventory-system** for inventory serialization patterns, **godot-project-setup** for SaveManager autoload setup, **popochiu** for adventure-framework saves.

---

## 1. Strategy Comparison

| Strategy          | Best For                        | Readable | Editor Support | Notes                              |
|-------------------|---------------------------------|----------|----------------|------------------------------------|
| ConfigFile        | Settings, simple key-value data | Yes      | No             | Built-in INI-style, no extra deps  |
| JSON              | Game saves, flexible structures | Yes      | No             | Cross-platform, version-migratable |
| Resource .tres    | Editor-integrated data          | Yes      | Yes            | **NOT secure, never load untrusted files** |
| Resource .res     | Fast binary data                | No       | Yes            | **NOT secure, never load untrusted files** |

When you recommend a strategy, name the one you rejected and the factor that decided it, "JSON, not Resource files, because saves are user-writable and loading a Resource can run code". A format picked without a named alternative cannot be overruled.

> **Security warning:** Loading `.tres` or `.res` files executes arbitrary GDScript embedded in the resource. Never load Resource files from untrusted sources (user-uploaded files, downloaded mods). Use ConfigFile or JSON for user-generated save data.

---

## 2. ConfigFile, Settings

`ConfigFile` writes INI-style sections, ideal for audio / video / controls settings (small, designer-debuggable). Use `set_value(section, key, value)` then `save(path)`; load with `load(path)` and `get_value(section, key, default)`.

The rest: https://github.com/jame581/GodotPrompter/blob/HEAD/skills/save-load/SKILL.md
