Build & publish a Godot game
What you need to prepare before EngineForge can build your Godot project and publish it to itch.io — and what happens when you click Build.
EngineForge builds your Godot project straight from your GitHub repo and publishes the result to itch.io (or Steam) — no build machine, no export templates to install, and no signing to set up yourself. This page is the checklist to get your first Godot build green.
What we build. Godot 4.0 through 4.6, exporting to Windows, macOS, Linux, and Web (HTML5). See Supported engines for the exact policy.
Before your first build
You need four things in place. The first three are one-time account setup; the fourth is per project.
- Your Godot project on GitHub. The repo root must be the Godot project root —
your
project.godotsits at the top of the repository (not inside a subfolder). EngineForge detects a Godot project by that file. - GitHub connected. In the console, go to Settings → Services and connect GitHub. Every build clones your repo with your authorization.
- itch.io connected, and the game page created. In Settings → Services, paste
your itch.io API key (itch.io → Settings → API keys).
Then create the game's project page on itch.io first — EngineForge uploads to an
existing page and can't create one. Note its URL
https://<owner>.itch.io/<slug>; you will enter the target as<owner>/<slug>. (Publishing to Steam instead? Connect Steam in the same place.) - A workflow. Open your project, and in the workflow editor set:
- Game engine → Godot (the default)
- Build target → itch.io
- Platforms → any of Windows, macOS, Linux, Web
- itch.io game →
owner/game(matching the page URL above)
Godot is free and open source, so there's no license or account to provide.
Godot-specific requirements
A few things are worth knowing about how Godot projects build:
- Supported version. Your project must be Godot 4.0–4.6. The build machines run
Godot 4.6, which opens and upgrades any 4.x project; a project targeting a newer
Godot is rejected until we bake it, and Godot 3.x isn't supported — upgrade to
Godot 4. The version is read from your
project.godot(config/features). - Export presets are optional. If you commit an
export_presets.cfg, EngineForge uses your preset for each platform you chose — so you stay in control of icons, features, and export options. If you don't commit one, EngineForge generates a sensible default for each platform and tells you it did so in the build log. A preset committed to your repo always wins. - macOS just works. macOS builds are signed so they launch on Apple Silicon, and EngineForge fills in the details Godot needs (such as a bundle identifier) for you. If your team has Developer ID signing + notarization configured, the workflow's macOS signing option uses it; otherwise builds are ad-hoc signed.
- Web needs one toggle on itch.io. A Web (HTML5) build uploads to itch.io's
html5channel, but itch.io can't be told it's browser-playable from an upload — after your first Web build, open the game's Edit page on itch.io and tick "This file will be played in the browser" once. - Commit what the build needs. Everything required to export must be in the repo
(
project.godot, your scenes/scripts/assets, and yourexport_presets.cfgif you use one). The.godot/cache folder should stay ignored; Godot regenerates it.
What happens when you click Build
-
Validate — checks GitHub + itch.io are connected, and that the itch.io game page exists.
-
Fetch sources — clones your repo.
-
Build — exports your project headlessly with Godot, once per platform you chose, resolving each platform's export preset (your committed preset, a previously used one, or a generated default).
-
Publish — each platform's build is zipped and pushed to itch.io with butler, to the matching channel:
Platform itch.io channel Windows windowsmacOS osxLinux linuxWeb html5 -
Email — you get a build-result email (success with a link, or failure with the failing step and reason).
You can download each platform's build zip from the build page in the console, and they appear on your itch.io project under the channels above.
Troubleshooting
- "WE CANNOT BUILD THIS — Godot <x> …" Your project's Godot version is outside 4.0–4.6. Upgrade a 3.x project to Godot 4, or target 4.6 or earlier if it's newer (see Supported engines).
- "used a generated default preset." You didn't commit an
export_presets.cfgfor that platform, so EngineForge made one. The build still succeeds; commit your own preset if you want to control the export options. - "itch.io game … does not exist." Create the project page on itch.io first, then make
sure the
owner/slugyou entered matches the page URL exactly (itch.io slugs use dashes, not underscores). - The Web build isn't playable in the browser on itch.io. Tick "This file will be played in the browser" on the game's Edit page once — it can't be set from an upload.
- macOS build won't open on a tester's Mac. Ad-hoc signing lets Apple Silicon run it, but it isn't notarized — testers may need to right-click → Open the first time, or configure Developer ID signing for a notarized build.
Supported engines & versions
The game engines, engine versions, and platforms EngineForge officially builds — and what happens when a project falls outside them.
Build & publish a Unity game
What you need to prepare before EngineForge can build your Unity project and publish it to itch.io — and what happens when you click Build.