This is an automated archive made by the Lemmit Bot.

The original was posted on /r/godot by /u/clauscodes on 2025-10-19 11:46:41+00:00.


Every game needs config files, and Godot offers many ways to do things. Resources are okay, but saving a file even if nothing has changed will generate a new unique ID. Git really hates that. And then there’s JSON, which is a little bit better, but very particular about quotes and commas.

To solve the Resource ID issue I built Godot YAML, and a user recently suggested adding validation via the JSON Schema standard. It sounded great, so I built GDSchema to handle the validation. GDSchema works as a stand-alone extension as well so you can use it with your JSON or whatever data format you’re into. For the YAML extension’s 2nd major version I integrated the schema validation deeply to the parsing process, and introduced a few new keywords, like the x-yaml-tag to enforce an object to be of a specific variant type - or your own custom class. The default keyword reduces the amount of boilerplate needed by making it easy to define default values.

This match made in heaven combines a human-readable and version-control friendly data format, and a standardized way to enforce it’s structure and contents - perfect for data-heavy games. I use the tag system of YAML extensively, including the !Resource "res://assets/sprites/player.png" tag that allows loading any Godot resource files. And of course there’s a security feature to make modding a bit safer. YAML files are treated as resources as well, which enables you to build your configs through nesting. Circular references are detected and will error without crashing your app.

With signals you can get notified when a YAML file is created, updated, or deleted, and that makes it fairly easy to enable hot-reloading assets while the game is running, and avoid the constant recompiles while you tweak things. Easy, fast, and fluid iteration with minimal friction.

I’ve been SUPER STOKED with the reception and feedback I’ve received for the extensions, and I’m inspired to keep crafting more tools that solve real problems, and share them with the awesome Godot developer community.

Today I released an update for both extensions bringing Android support, and both extensions work on 64-bit Windows, Linux, macOS, and now Android platforms. The Godot Asset Library is pending for review, and updates should be available in next few days.

The next big update will bake the schema validation directly to the integrated YAML editor to make it harder to shoot yourself in the foot (and maybe avoid crashing your game) because of a typo, and also provide you with robust auto-complete features, bringing the YAML editor closer to full feature parity with the default GDScript editor, and making YAML a first-class citizen in the Godot engine.

I have more cool stuff on my near future roadmap, and I’ll be announcing them when I’m ready to show what I’ve been cooking.

If you’ve found my extensions useful in your projects, I’d love to hear what you’re using them for!