| name | godot-export-builds |
| description | Expert patterns for multi-platform exports including export templates (Windows/Linux/macOS/Android/iOS/Web), command-line exports (headless mode), platform-specific settings (codesign, notarization, Android SDK), feature flags (OS.has_feature), CI/CD pipelines (GitHub Actions), and build optimization (size reduction, debug stripping). Use for release preparation or automated deployment. Trigger keywords: export_preset, export_template, headless_export, platform_specific, feature_flag, CI_CD, build_optimization, codesign, Android_SDK. |
Export & Builds
Headless / CI / platform release plumbing — not Editor → Export click-path tutorials.
NEVER Do (Expert Export Rules)
Platform & Validation
- NEVER export to production without a smoke test — Editor play ≠ Web/Mobile/Console constraints.
- NEVER skip macOS notarization for direct distribution — Gatekeeper blocks unsigned apps (Steam/App Store distribution can substitute).
- NEVER use ad-hoc writable
res://paths in builds — Saves/logs go touser://.
Performance & Size
- NEVER ship Debug templates as release — Use
--export-release. - NEVER include raw authoring junk — Filter
.md/.psd/ docs out of presets. - NEVER ignore VRAM compression on Web/Mobile — Enable ASTC/ETC2 (keep pixel art uncompressed).
Security
- NEVER commit keystores or passwords — Env vars + export_android_signing_env.ps1.
- NEVER leave debug cheats in release — Gate with
OS.has_feature("release"). - NEVER enable Shader Baker on dedicated server exports — Wasted build time; baker is for visual clients.
Godot 4.7: Import & Export
EditorSceneFormatImporterconstants moved to ImportFlags enum — update importer scripts.- Asset Store replaces Asset Library in editor — document addon acquisition via new store UI.
- HDR export: verify viewport HDR settings per platform in export presets.
Platform Decision Tree
| Target | MANDATORY scripts / actions | Do NOT Load |
|---|---|---|
| Desktop smoke (Win/Linux) | export_headless_pipeline.ps1 or headless_build.sh | Manual Export UI tutorials |
| Web smoke | Headless web preset + size report | Desktop-only compression assumptions |
| Android release | export_android_signing_env.ps1 | Committed keystores |
| macOS direct distribute | export_macos_notarize_cmd.ps1 | Skipping notarize "because Steam exists" when not on Steam |
| Dedicated server | Headless server preset, baker off | Client shader baker / UI feature packs |
| CI multi-platform | export_ci_github_actions.yml (Godot 4.7 images) | Stale 4.2.x container pins |
| Steam depot upload | export_steam_upload.ps1 | — if not shipping on Steam |
| PCK / DLC patches | export_pck_patch_loader.gd | — if no DLC |
| One-click all presets | export_universal_manager.gd | — |
| Version sync | export_version_sync.gd / version_manager.gd | Hardcoded version labels in UI only |
| Feature stripping | export_feature_flag_manager.gd | — |
| Size audit | export_build_size_report.gd | — |
| Custom engine strip | export_custom_build_stripper.py | — unless custom builds |
| Post-export zip/manifest | export_post_process_hook.gd | — |
Editor Export UI / template download prose: use Official Documentation links in Reference — or export-setup-guide.md for INI/CLI/platform checklists.
Available Scripts
MANDATORY: Read the script that matches the platform decision above before implementing.
- export_headless_pipeline.ps1
- headless_build.sh
- export_version_sync.gd / version_manager.gd
- export_post_process_hook.gd
- export_feature_flag_manager.gd
- export_pck_patch_loader.gd
- export_android_signing_env.ps1
- export_custom_build_stripper.py
- export_macos_notarize_cmd.ps1
- export_build_size_report.gd
- export_ci_github_actions.yml — pin 4.7 templates/executable
- export_steam_upload.ps1 — SteamPipe via
steamcmd+ VDF - export_universal_manager.gd
CI Contract (4.7)
Workflows must pull Godot 4.7 editor + export templates (not 4.2.x). Prefer the checked-in export_ci_github_actions.yml over pasted legacy YAML. Artifacts upload with actions/upload-artifact@v4.
Expert Export Patterns
1. Platform-Specific Patching (Delta Updates)
Mount external PCKs with ProjectSettings.load_resource_pack(path, true) — same-path resources override base. See export_pck_patch_loader.gd.
2. VRAM Compression Audit
- Desktop Forward+: S3TC/BPTC
- Mobile: ETC2 / ASTC
- Pixel art: compression off
3. SteamPipe Upload
Build locally/CI → export_steam_upload.ps1 with STEAM_USER / STEAM_PASS / STEAMCMD_PATH env vars and an app_build.vdf.
4. Universal Build Manager
Iterate presets from export_presets.cfg via export_universal_manager.gd for one-click multi-platform consistency.
Reference
Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.
Official Documentation
- Exporting (tutorial index) — Entry map for presets, templates, platform guides, feature tags, and PCK workflows before platform deep-dives.
- Exporting projects — Export presets, template install, include/exclude filters, and release vs debug template choice.
- Feature tags —
OS.has_feature/ custom tags that drive runtime stripping of debug tools and platform forks. - Command line tutorial —
--headless,--export-release,--export-debug, and--export-packfor CI and scripted pipelines. - Exporting packs, patches, and mods — PCK/DLC mounting with
ProjectSettings.load_resource_packfor delta updates. - Exporting for Android — SDK, keystore, and signing env expectations for store and CI Android builds.
- Exporting for macOS — Codesign, notarization, and universal binary options required for Gatekeeper distribution.
- Exporting for Web — Threading/SharedArrayBuffer, VRAM compression, and HTML5 shell constraints for web smoke tests.
- Exporting for dedicated servers — Headless server templates and why client-only bake steps (e.g. shader baker) waste server builds.
- EditorExportPlugin — Hook API for post-export zip/manifest steps shared across team export presets.
- Optimizing for size — SCons module stripping and size flags when custom templates must beat stock binary weight.
- Data paths —
res://vsuser://so exported builds do not write into read-only packed paths.
Related Skills
Prerequisites
- godot-project-foundations — Project layout,
project.godotversion/icon settings, and import defaults must be sane before export presets and filters. - godot-gdscript-mastery —
EditorScript/ plugin typing andOS.executepatterns used by version sync, universal export, and post-process hooks.
Complements
- godot-platform-desktop — Windows/Linux/macOS runtime quirks (icons, windowing, Steam) that export presets must match.
- godot-platform-mobile — Android/iOS permission, orientation, and input assumptions that belong in mobile export options.
- godot-platform-web — Web host constraints (CORS, threads, memory) that decide Web export type and smoke-test matrix.
- godot-platform-console — Console certification packaging flows that extend beyond desktop/mobile export templates.
- godot-adapt-desktop-to-mobile — Touch/UI/safe-area adaptations that must ship in mobile feature-tagged builds, not desktop-only assets.
- godot-debugging-profiling — Profile export vs editor differences (shader compile, memory) before blaming preset filters.
- godot-testing-patterns — Automated smoke tests against headless/CI artifacts so “runs in editor” never ships alone.
- godot-save-load-systems — Persist under
user://; export filters must not strip save schemas players need after install. - godot-resource-data-patterns — Resource packing and
.gdignorehygiene that directly shrinks export footprint.
Downstream / consumers
- godot-performance-optimization — Escalate when release builds still fail budgets after filters, VRAM compression, and template choice.
- godot-server-architecture — Consumes dedicated-server export presets and headless pipelines for authoritative hosts.
- godot-multiplayer-networking — Client/server binary pairs and feature tags for dedicated vs listen-server packaging.
Master
- godot-master — Library router and mirrored module entry; open when discovering which Domain Skill owns a cross-cutting export or platform concern.