godot-export
gamedev-skills/awesome-gamedev-agent-skills
Export and build Godot 4.x projects for Windows, macOS, Linux, Web, Android, and headless servers.
What is godot-export?
Installs export templates, configures export presets, and runs headless CLI exports for distribution. Use this when building a Godot game for multiple platforms, automating CI builds, or setting up web/dedicated-server exports.
- Install and manage export templates matching your Godot engine version
- Create and edit export presets for Windows, macOS, Linux, Web, Android, and iOS platforms
- Export projects from the editor or headless CLI for automation and CI pipelines
- Configure web (HTML5) builds with cross-origin isolation (COOP/COEP) for SharedArrayBuffer support
- Build dedicated-server and headless instances without rendering or GPU requirements
- Handle platform-specific requirements: Android keystores, macOS signing, resource filters, and custom feature tags
How to install godot-export
npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill godot-export- Godot 4.7 editor installed
- Export templates downloaded via Editor > Manage Export Templates (must match editor version exactly)
- For Android: Android SDK, JDK, and a debug or release keystore configured in Editor Settings
- For macOS/iOS distribution: valid signing certificates and Apple developer account
How to use godot-export
- 1.Download and install export templates via Editor menu > Manage Export Templates, ensuring the version matches your Godot editor exactly
- 2.Open Project > Export and add presets for each target platform (Windows Desktop, macOS, Linux, Web, Android)
- 3.Configure each preset: set export path, icons, features, and resource filters (e.g., *.json files)
- 4.For web builds, ensure your server sends Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: require-corp headers
- 5.Export from the editor via Export Project (release) or use headless CLI: godot --headless --export-release "Preset Name" output/path
- 6.For dedicated servers, run headless without export: godot --headless --path . res://server_main.tscn
- 7.In your code, use user:// for save paths (res:// is read-only in exports) and detect build context with OS.has_feature() or DisplayServer.get_name()
Use cases
- Automate game builds in CI/CD pipelines using headless CLI exports with preset names
- Export a web build and serve it with proper COOP/COEP headers to enable threading support
- Build a dedicated-server executable that runs headless without a window or GPU
- Configure resource filters to include non-standard files (.json, .txt) in exported builds
- Test a build locally before shipping by exporting to a target platform and smoke-testing
- Game developers shipping Godot games to multiple platforms
- DevOps engineers automating game builds in CI/CD pipelines
- Indie developers building web, desktop, and mobile versions of the same project
- Server developers creating dedicated-server or headless builds for multiplayer games
godot-export FAQ
Export templates must match your exact Godot editor version, including beta/RC tags. Re-download via Editor > Manage Export Templates after upgrading Godot.
Preset names in --export-release are case- and space-sensitive. Quote the name exactly as it appears in Project > Export, e.g., --export-release "Windows Desktop".
HTML5 builds using threads require cross-origin isolation. Serve over HTTP(S) (not file://), and ensure your server sends Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Embedder-Policy: require-corp headers. itch.io has a toggle for this.
Add file patterns to the preset's Resources > Filters to export non-resource files, e.g., *.json or *.txt.
Yes, use OS.has_feature("web") or OS.has_feature("dedicated_server"), or check DisplayServer.get_name() == "headless" for headless builds.
Full instructions (SKILL.md)
Source of truth, from gamedev-skills/awesome-gamedev-agent-skills.
name: godot-export description: > Export and build a Godot 4.7 project for distribution: install export templates, define export presets (Windows/macOS/Linux/Web/Android), run headless command-line exports for CI, and handle web (HTML5) COOP/COEP and dedicated-server/headless builds. Use when exporting a Godot game, configuring export_presets.cfg, building for web/desktop/mobile, or automating builds from the command line.
Godot Export & Builds (4.x)
Turn a project into runnable platform builds via export presets and the command line, and handle the web/dedicated-server gotchas. Targets Godot 4.7.
When to use
- Use when producing a shippable build: installing export templates, creating/editing export presets, exporting from the editor or headless CLI (CI), or troubleshooting web (HTML5) and dedicated-server exports.
When not to use: storefront publishing flows → steam-publish/itch-publish; the
networking code of a server → godot-multiplayer (this skill covers building it headless).
Core workflow
- Install export templates matching your engine version: Editor menu >
Manage Export Templates (download), or install the
.tpzoffline. Versions must match the editor exactly. - Add export presets in Project > Export: pick a platform (Windows Desktop, macOS,
Linux, Web, Android, iOS), set the export path, icons, features, and resource
include/exclude filters. Presets are saved to
export_presets.cfg. - Export from the editor with Export Project (release) or Export PCK/ZIP.
- Or export headless from the CLI for automation/CI using
--export-release "<preset name>" <output path>. - Per platform: Web needs cross-origin isolation (COOP/COEP) for threads; Android needs the SDK/keystore; macOS/iOS need signing for distribution.
- Smoke-test the build on the target before shipping — exported builds use
res://read-only; write touser://.
Patterns
1. Headless CLI export (CI-friendly)
# Preset name must match exactly what's in Project > Export (quote it).
# Run from the project directory (where project.godot lives).
godot --headless --export-release "Windows Desktop" build/windows/game.exe
godot --headless --export-release "Linux/X11" build/linux/game.x86_64
godot --headless --export-release "Web" build/web/index.html
# Debug build (includes debug symbols / remote debug):
godot --headless --export-debug "Windows Desktop" build/windows/game_debug.exe
# Export only the data pack (no executable):
godot --headless --export-pack "Linux/X11" build/game.pck
2. Run a project headless (dedicated server / tests)
# No window/GPU — for a server build or automated runs.
godot --headless --path . res://server_main.tscn
# Quit after N main-loop iterations (frames, NOT seconds) — handy for a headless smoke test:
godot --headless --path . --quit-after 600
3. Detect the build context at runtime
func _ready() -> void:
if OS.has_feature("dedicated_server") or DisplayServer.get_name() == "headless":
_start_server_only() # skip rendering/UI on a headless server
if OS.has_feature("web"):
_apply_web_tweaks()
# Custom feature tags (added per preset) are also queryable:
# if OS.has_feature("demo"): limit_content()
4. Choose write paths that survive export
# res:// is READ-ONLY in exported games. Always write to user://.
func save_path() -> String:
return "user://savegame.tres" # resolves to the OS app-data dir
func _ready() -> void:
print(OS.get_user_data_dir()) # where user:// actually lives
Pitfalls
- "No export template found". Templates must match the exact editor version (incl. beta/rc). Re-download via Manage Export Templates after upgrading Godot.
- Preset name mismatch in CLI.
--export-release "Windows"fails if the preset is named"Windows Desktop". Names are case- and space-sensitive; quote them. - Web build shows a blank page / threads error. HTML5 builds that use threads require
the server to send
Cross-Origin-Opener-Policy: same-originandCross-Origin-Embedder-Policy: require-corp(cross-origin isolation forSharedArrayBuffer). Must be served over HTTP(S), not opened as afile://. itch.io has a "SharedArrayBuffer support" toggle for this. - Writing to
res://at runtime fails in exports (read-only, packed). Useuser://. - Missing resources in the build. Non-resource files (e.g. external
.json,.txt) are not auto-included — add them via the preset's Resources > Filters to export non-resource files (e.g.*.json). - Android export needs setup: Android SDK/JDK paths in Editor Settings, a debug or
release keystore, and the
INTERNETpermission for networked games. - macOS/iOS distribution requires signing/notarization; unsigned macOS apps are blocked by Gatekeeper.
- Debug vs release.
--export-debugenables remote debugging and debug checks; ship--export-release.
References
- For the
export_presets.cfgstructure, all useful CLI flags, custom feature tags, PCK/expansion patching, encryption, and per-platform setup (Android keystore, macOS signing, web headers), readreferences/presets-and-cli.md.
Related skills
godot-multiplayer— the dedicated-server code you export headless.steam-publish/itch-publish— getting the build to players.prototype-fast/game-jam— quick web/desktop builds for sharing.
Related skills
More from gamedev-skills/awesome-gamedev-agent-skills and the wider catalog.

godot-gdscript
Write idiomatic GDScript 2.0 for Godot 4.7 with static typing, lifecycle callbacks, and signals.

godot-multiplayer
Build networked Godot 4.7 games with ENet, RPCs, and state replication.

godot-nodes-scenes
Structure Godot 4.x games with scenes, nodes, and runtime instancing.

godot-physics
Configure Godot 4.x physics bodies, collision layers/masks, overlap detection, and raycasts in 2D and 3D.

godot-resources
Design data-driven Godot 4.7 games with custom Resource classes and .tres/.res files.

godot-shaders
Write Godot 4.7 shaders (2D canvas_item and 3D spatial) with uniforms, TIME animation, and screen-reading.