Open-Source Wikis

/

Godot

/

Reference

/

Configuration

godotengine/godot

Configuration

Three config surfaces matter when working in Godot:

  1. Build options — passed to scons at compile time.
  2. Project settings — the project.godot file that ships with each project.
  3. Editor settings — per-user preferences for the editor.

This page summarizes each.

Build options

Top-level options are documented by scons --help. The most common ones:

Option Default Effect
platform host One of linuxbsd, windows, macos, android, ios, visionos, web
target editor editor, template_debug, template_release
arch host x86_64, x86_32, arm64, arm32, rv64, ppc32, ppc64, wasm32, universal
dev_build no Debug symbols, asserts, fast incremental builds
dev_mode no Like dev_build, plus extra warnings as errors
production no Release-grade flags (LTO, optimize=speed, no asserts)
optimize by target none, custom, debug, speed, speed_trace, size, size_extra
use_lto no Link-time optimization (auto, thin, full)
tests no Compile the doctest unit tests
scu_build no Single compilation unit mode (faster compile, smaller objects)
precision single single or double for float precision
compiledb no Emit compile_commands.json
verbose no Print full compile command lines
module_<name>_enabled varies Disable a module
custom_modules empty Comma-separated list of paths to external module dirs
disable_3d no Build without any 3D code (smaller binary)
disable_navigation no Drop the navigation servers
disable_xr no Drop XR servers
tools yes Include editor and editor-only code

Per-platform options live in platform/<name>/detect.py. Examples:

  • linuxbsd: use_pulseaudio, use_alsa, use_dbus, use_sowrap, use_libdecor, wayland, x11.
  • windows: use_mingw, use_llvm, use_static_cpp, windows_subsystem.
  • macos: vulkan, use_volk, bundle_sign_identity.
  • android: swappy, generate_android_apk.
  • web: threads, dlink_enabled, proxy_to_pthread.

Project settings (project.godot)

ProjectSettings (core/config/project_settings.cpp) loads settings from project.godot (or the binary project.binary for exported projects). Settings are:

  • Hierarchical key paths like application/config/name, rendering/textures/canvas_textures/default_texture_filter.
  • Per-feature override-able — adding application/config/name.mobile = "MyGameMobile" overrides the base value when the engine reports the mobile feature.
  • Persistable — only changes from the engine defaults are written.

Key sections

Section Examples
application/ App name, version, autoload list, splash screen, run/main_scene
audio/ Driver, output channels, default bus layout
compression/ Default compression mode for .res
debug/ Settings shape and stack-trace behaviour
display/window/ Window size, mode, position, vsync, MSAA
editor/ Editor-only project hints (when this project is open in the editor)
filesystem/ File system caching, import settings
gui/ Theme, common controls behaviour, focus
input/ Action map (per-action event lists)
internationalization/ Locale, fallback locales, RTL hints
layer_names/ Friendly names for physics + render layers
memory/ Limits
navigation/ Navigation server defaults
network/ TLS cert path, multiplayer defaults
physics/ Engine choice, ticks per second, layer count
rendering/ Driver, method, shadows, post-process, GI defaults
xr/ OpenXR enable/disable + per-runtime tweaks

The full default list can be inspected with Engine.get_singleton("ProjectSettings") from a script or by reading the engine's register_* calls (each subsystem registers its defaults via GLOBAL_DEF/GLOBAL_DEF_INTERNAL).

Feature tags

Built-in feature tags include:

  • Platform: linux, windows, macos, android, ios, visionos, web.
  • Architecture: x86_64, x86_32, arm64, arm32, rv64, wasm32.
  • Capability: mobile, web, release, debug, editor, template.
  • GPU: s3tc, etc2, astc, bptc.
  • Custom: any tag declared in application/config/custom_features.

Feature tags drive both project-setting overrides and export preset filtering.

Editor settings

EditorSettings (editor/settings/editor_settings.cpp) holds per-user editor preferences in editor_settings.tres under the user's data dir. The defaults are registered through _initial_set calls grouped by category:

Category What's there
interface/ Theme, font, language, scale, display features
editor/ Save behaviour, scene defaults, recent project list
text_editor/ Code editor: theme, font size, completion, navigation
docks/ Visibility, sort orders
network/ Proxy, debugger ports
filesystem/ Trash usage, scanning
run/ Player run paths, environment
debugger/ Breakpoint behaviour, profiler defaults
import/ Import dialog defaults

Editor settings are not exported with the project — they are user preferences. Shortcuts live alongside as ShortcutMap entries.

Where defaults come from

When a new project is created, the engine writes a small project.godot containing the project name and the engine version. Everything else is implied by the defaults in code. This is why projects are small and forward-compatible: the defaults can shift between engine versions without rewriting every file.

Project upgrades on major version changes are handled by editor/project_upgrade/.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Configuration – Godot wiki | Factory