Early development. The game is playable and changing every day; expect rough edges.

Free to play, read, change and share

Open source

All the code and all the art in Ironbound are open. Fork it, mod it, learn from it, or help build it.

Please take it and build anything you like. Ironbound is vibe coded with Claude, and it only exists because of Open RTS, Godot and many other open source projects, so passing it on feels right.

Licence

Ironbound is released under the MIT licence, the same licence as Open RTS by Lampe Games, the project it grew from. You may use, copy, change and sell it, as long as the licence and copyright notice stay with it. Read the full licence.

Asset credits

Assets made for Ironbound are original and generated by scripts in the repository, so they are MIT licensed too and anyone can rebuild them. No assets from non-commercial sources are used.

AssetsMade with
Desert props, deposits, units, buildingsModelled by script in Blender
Starter city build-up animationModelled and animated by script in Blender
Clouds textureGenerated noise
Ambience, war sounds, machine sounds, construction soundsSynthesized from noise and sine waves
Unit and advisor voicesKokoro-82M voice model (Apache 2.0, by hexgrad) run locally with kokoro-onnx (MIT)
Terrain, water, cloud and road shadersWritten for this project
3D Space KitKenney.nl, CC0
Godot and Lampe Games logosSee LOGO_LICENSES.md
Website fonts: Barlow, Big Shoulders Stencil, IBM Plex MonoSIL Open Font License 1.1, licence files in site/assets/fonts

The full list with rebuild commands is in ASSET_CREDITS.md.

Mods

Units, maps, resources, AI play styles, difficulties and voices are plain JSON files in data/. A mod adds or patches them from mods/<name>/data/, no code needed.

Add a unit in 10 minutes

Copy the scout buggy file, change its numbers and model, and the game builds the rest.

Make a map

Paint lakes, forests, deposits and start points in the in-game map editor, or hand-build a Godot scene.

Add a resource

A new commodity needs one entry in resources.json and one deposit scene.

New voices

Voice sets are JSON lists of short .ogg clips, one set per unit type.

Check your changes with the validator: godot --headless --path . -s res://tools/validate_data.gd. The guides are in docs/modding/.

Contributing

  1. Bugs: open an issue with what happened and how to make it happen again. A crash report from the game is even better.
  2. Fixes: open a pull request. Run gdformat --check source/ and gdlint source/ first; the checks run on every pull request.
  3. Features: open an issue first so we can agree on the idea before you build it.
  4. Testing: ./play.sh (or play on Windows) plays every test scenario and writes a report. See docs/testing/play-harness.md.

Be kind in issues and reviews. Everyone here is volunteering their time.

Built with