ProjectSettings
Inherits: Object
Stores globally-accessible variables.
Description
Stores variables that can be accessed from everywhere. Use get_setting(), set_setting() or has_setting() to access them. Variables stored in project.godot are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options.
When naming a Project Settings property, use the full path to the setting including the category. For example, "application/config/name" for the project name. Category and property names can be viewed in the Project Settings dialog.
Feature tags: Project settings can be overridden for specific platforms and configurations (debug, release, ...) using feature tags.
Overriding: Any project setting can be overridden by creating a file named override.cfg in the project's root directory. This file is in the same format as project.godot, and can also be written using ConfigFile. This can also be used in exported projects by placing this file in the same directory as the project binary. Overriding will still take the base project settings' feature tags in account. Therefore, make sure to also override the setting with the desired feature tags if you want them to override base project settings on all platforms and configurations.
Tutorials
Properties
Methods
void |
add_property_info(hint: Dictionary) |
check_changed_settings_in_group(setting_prefix: String) const |
|
void |
|
get_changed_settings() const |
|
get_setting(name: String, default_value: Variant = null) const |
|
get_setting_with_override(name: StringName) const |
|
get_setting_with_override_and_custom_features(name: StringName, features: PackedStringArray) const |
|
globalize_path(path: String) const |
|
has_setting(name: String) const |
|
load_resource_pack(pack: String, replace_files: bool = true, offset: int = 0) |
|
localize_path(path: String) const |
|
save() |
|
save_custom(file: String) |
|
void |
set_as_basic(name: String, basic: bool) |
void |
set_as_internal(name: String, internal: bool) |
void |
set_initial_value(name: String, value: Variant) |
void |
|
void |
set_restart_if_changed(name: String, restart: bool) |
void |
set_setting(name: String, value: Variant) |
Signals
settings_changed() 🔗
Emitted when any setting is changed, up to once per process frame.
Property Descriptions
String accessibility/general/accessibility_driver = "accesskit" 🔗
Accessibility driver:
-accesskit (default): AccessKit driver.
-dummy: Dummy driver, screen reader support is disabled.
int accessibility/general/accessibility_support = 0 🔗
Accessibility support mode:
Auto (
0): Accessibility support is enabled, but updates to the accessibility information are processed only if an assistive app (such as a screen reader or a Braille display) is active (default).Always Active (
1): Accessibility support is enabled, and updates to the accessibility information are always processed, regardless of the status of assistive apps.Disabled (
2): Accessibility support is fully disabled.
Note: Accessibility debugging tools, such as Accessibility Insights for Windows, Accessibility Inspector (macOS), or AT-SPI Browser (Linux/BSD), do not count as assistive apps. To test your project with these tools, use Always Active.
int accessibility/general/updates_per_second = 60 🔗
The number of accessibility information updates per second.
bool animation/compatibility/default_parent_skeleton_in_mesh_instance_3d = false 🔗
If true, MeshInstance3D.skeleton will point to the parent node (..) by default, which was the behavior before Godot 4.6. It's recommended to keep this setting disabled unless the old behavior is needed for compatibility.
Note: If you disable this option in an existing project, it's strongly recommended to use the Project > Tools > Upgrade Project Files... option to ensure existing scenes do not break.
bool animation/warnings/check_angle_interpolation_type_conflicting = true 🔗
If true, AnimationMixer prints the warning of interpolation being forced to choose the shortest rotation path due to multiple angle interpolation types being mixed in the AnimationMixer cache.
bool animation/warnings/check_invalid_skeleton_modifier_node_paths = true 🔗
If true, SkeletonModifier3D prints a warning if there's no matching object for the track path in the scene when assigning.
bool animation/warnings/check_invalid_track_paths = true 🔗
If true, AnimationMixer prints the warning of no matching object of the track path in the scene.
Color application/boot_splash/bg_color = Color(0.14, 0.14, 0.14, 1) 🔗
Background color for the boot splash.
String application/boot_splash/image = "" 🔗
Path to an image used as the boot splash. If left empty, the default Godot Engine splash will be displayed instead.
Note: Only effective if application/boot_splash/show_image is true.
Note: The only supported format is PNG. Using another image format will result in an error.
Note: The image will also show when opening the project in the editor. If you want to display the default splash image in the editor, add an empty override for editor_hint feature.
int application/boot_splash/minimum_display_time = 0 🔗
Minimum boot splash display time (in milliseconds). It is not recommended to set too high values for this setting.
bool application/boot_splash/show_image = true 🔗
If true, displays the image specified in application/boot_splash/image when the engine starts. If false, only displays the plain color specified in application/boot_splash/bg_color.
int application/boot_splash/stretch_mode = 1 🔗
Specifies how the splash image will be stretched. For the original size without stretching, set to disabled. See SplashStretchMode constants for more information.
bool application/boot_splash/use_filter = true 🔗
If true, applies linear filtering when scaling the image (recommended for high-resolution artwork). If false, uses nearest-neighbor interpolation (recommended for pixel art).
bool application/config/auto_accept_quit = true 🔗
If true, the application automatically accepts quitting requests.
String application/config/custom_user_dir_name = "" 🔗
This user directory is used for storing persistent data (user:// filesystem). If a custom directory name is defined, this name will be appended to the system-specific user data directory (same parent folder as the Godot configuration folder documented in OS.get_user_data_dir()).
The application/config/use_custom_user_dir setting must be enabled for this to take effect.
Note: If application/config/custom_user_dir_name contains trailing periods, they will be stripped as folder names ending with a period are not allowed on Windows.
String application/config/description = "" 🔗
The project's description, displayed as a tooltip in the Project Manager when hovering the project.
bool application/config/disable_project_settings_override = false 🔗
If true, disables loading of project settings overrides (file defined in application/config/project_settings_override and res://override.cfg) and related CLI arguments.
String application/config/icon = "" 🔗
Icon used for the project, set when project loads. Exporters will also use this icon as a fallback if necessary.
String application/config/macos_native_icon = "" 🔗
Icon set in .icns format used on macOS to set the game's icon. This is done automatically on start by calling DisplayServer.set_native_icon().
String application/config/name = "" 🔗
The project's name. It is used both by the Project Manager and by exporters. The project name can be translated by translating its value in localization files. The window title will be set to match the project name automatically on startup.
Note: Changing this value will also change the user data folder's path if application/config/use_custom_user_dir is false. After renaming the project, you will no longer be able to access existing data in user:// unless you rename the old folder to match the new project name. See Data paths in the documentation for more information.
Dictionary application/config/name_localized = {} 🔗
Translations of the project's name. This setting is used by OS tools to translate application name on Android, iOS and macOS.
Note: When left empty, the application name is translated using the project translations.
String application/config/project_settings_override = "" 🔗
Specifies a file to override project settings. For example: user://custom_settings.cfg. See "Overriding" in the ProjectSettings class description at the top for more information.
Note: Regardless of this setting's value, res://override.cfg will still be read to override the project settings.
bool application/config/quit_on_go_back = true 🔗
If true, the application quits automatically when navigating back (e.g. using the system "Back" button on Android).
bool application/config/use_custom_user_dir = false 🔗
If true, the project will save user data to its own user directory. If application/config/custom_user_dir_name is empty, <OS user data directory>/<project name> directory will be used. If false, the project will save user data to <OS user data directory>/Godot/app_userdata/<project name>.
See also File paths in Godot projects. This setting is only effective on desktop platforms.
If true, the project will use a hidden directory (.godot) for storing project-specific data (metadata, shader cache, etc.).
If false, a non-hidden directory (godot) will be used instead.
Note: Restart the application after changing this setting.
Note: Changing this value can help on platforms or with third-party tools where hidden directory patterns are disallowed. Only modify this setting if you know that your environment requires it, as changing the default can impact compatibility with some external tools or plugins which expect the default .godot folder.
String application/config/version = "" 🔗
The project's human-readable version identifier. This is used by exporters if the version identifier isn't overridden there. If application/config/version is an empty string and the version identifier isn't overridden in an exporter, the exporter will use 1.0.0 as a version identifier.
String application/config/windows_native_icon = "" 🔗
Icon set in .ico format used on Windows to set the game's icon. This is done automatically on start by calling DisplayServer.set_native_icon().
bool application/run/delta_smoothing = true 🔗
Time samples for frame deltas are subject to random variation introduced by the platform, even when frames are displayed at regular intervals thanks to V-Sync. This can lead to jitter. Delta smoothing can often give a better result by filtering the input deltas to correct for minor fluctuations from the refresh rate.
Note: Delta smoothing is only attempted when display/window/vsync/vsync_mode is set to enabled, as it does not work well without V-Sync.
It may take several seconds at a stable frame rate before the smoothing is initially activated. It will only be active on machines where performance is adequate to render frames at the refresh rate.
bool application/run/disable_stderr = false 🔗
If true, disables printing to standard error. If true, this also hides error and warning messages printed by @GlobalScope.push_error() and @GlobalScope.push_warning(). See also application/run/disable_stdout.
Changes to this setting will only be applied upon restarting the application. To control this at runtime, use Engine.print_error_messages.
bool application/run/disable_stdout = false 🔗
If true, disables printing to standard output. This is equivalent to starting the editor or project with the --quiet command line argument. See also application/run/disable_stderr.
Changes to this setting will only be applied upon restarting the application. To control this at runtime, use Engine.print_to_stdout.
If true, allows the Alt + Space keys to display the window menu. This menu allows the user to perform various window management operations such as moving, resizing, or minimizing the window.
Note: When the menu is displayed, project execution will pause until the menu is fully closed due to Windows behavior. Consider this when enabling this setting in a networked multiplayer game. The menu is only considered fully closed when an option is selected, when the user clicks outside, or when Escape is pressed after bringing up the window menu and another key is pressed afterwards.
Note: This setting is implemented only on Windows.
bool application/run/flush_stdout_on_print = false 🔗
If true, flushes the standard output stream every time a line is printed. This affects both terminal logging and file logging.
When running a project, this setting must be enabled if you want logs to be collected by service managers such as systemd/journalctl. This setting is disabled by default on release builds, since flushing on every printed line will negatively affect performance if lots of lines are printed in a rapid succession. Also, if this setting is enabled, logged files will still be written successfully if the application crashes or is otherwise killed by the user (without being closed "normally").
Note: Regardless of this setting, the standard error stream (stderr) is always flushed when a line is printed to it.
Changes to this setting will only be applied upon restarting the application.
bool application/run/flush_stdout_on_print.debug = true 🔗
Debug build override for application/run/flush_stdout_on_print, as performance is less important during debugging.
Changes to this setting will only be applied upon restarting the application.
int application/run/frame_delay_msec = 0 🔗
Forces a constant delay between frames in the main loop (in milliseconds). In most situations, application/run/max_fps should be preferred as an FPS limiter as it's more precise.
This setting can be overridden using the --frame-delay <ms;> command line argument.
bool application/run/load_shell_environment = false 🔗
If true, loads the default shell and copies environment variables set by the shell startup scripts to the app environment.
Note: This setting is implemented on macOS for non-sandboxed applications only.
bool application/run/low_processor_mode = false 🔗
If true, enables low-processor usage mode. When enabled, the engine takes longer to redraw, but only redraws the screen if necessary. This may lower power consumption, and is intended for editors or mobile applications. For most games, because the screen needs to be redrawn every frame, it is recommended to keep this setting disabled.
int application/run/low_processor_mode_sleep_usec = 6900 🔗
Amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU usage.
String application/run/main_loop_type = "SceneTree" 🔗
The name of the type implementing the engine's main loop.
String application/run/main_scene = "" 🔗
Path to the main scene file that will be loaded when the project runs.
int application/run/max_fps = 0 🔗
Maximum number of frames per second allowed. A value of 0 means "no limit". The actual number of frames per second may still be below this value if the CPU or GPU cannot keep up with the project logic and rendering.
Limiting the FPS can be useful to reduce system power consumption, which reduces heat and noise emissions (and improves battery life on mobile devices).
If display/window/vsync/vsync_mode is set to Enabled or Adaptive, it takes precedence and the forced FPS number cannot exceed the monitor's refresh rate. See also DisplayServer.screen_get_refresh_rate().
If display/window/vsync/vsync_mode is Enabled, on monitors with variable refresh rate enabled (G-Sync/FreeSync), using an FPS limit slightly lower than the monitor's refresh rate will reduce input lag while avoiding tearing. At higher refresh rates, the difference between the FPS limit and the monitor refresh rate should be increased to ensure frames to account for timing inaccuracies. The optimal formula for the FPS limit value in this scenario is r - (r * r) / 3600.0, where r is the monitor's refresh rate.
If display/window/vsync/vsync_mode is Disabled, limiting the FPS to a high value that can be consistently reached on the system can reduce input lag compared to an uncapped framerate. Since this works by ensuring the GPU load is lower than 100%, this latency reduction is only effective in GPU-bottlenecked scenarios, not CPU-bottlenecked scenarios.
See also physics/common/physics_ticks_per_second.
This setting can be overridden using the --max-fps <fps> command line argument (including with a value of 0 for unlimited framerate).
Note: This property is only read when the project starts. To change the rendering FPS cap at runtime, set Engine.max_fps instead.
bool application/run/print_header = true 🔗
If true, the engine header is printed in the console on startup. This header describes the current version of the engine, as well as the renderer being used. This behavior can also be disabled on the command line with the --no-header option.
float audio/buses/channel_disable_threshold_db = -60.0 🔗
Audio buses will disable automatically when sound goes below a given dB threshold for a given time. This saves CPU as effects assigned to that bus will no longer do any processing.
float audio/buses/channel_disable_time = 2.0 🔗
Audio buses will disable automatically when sound goes below a given dB threshold for a given time. This saves CPU as effects assigned to that bus will no longer do any processing.
String audio/buses/default_bus_layout = "res://default_bus_layout.tres" 🔗
Default AudioBusLayout resource file to use in the project, unless overridden by the scene.
Specifies the audio driver to use. This setting is platform-dependent as each platform supports different audio drivers. If left empty, the default audio driver will be used.
The Dummy audio driver disables all audio playback and recording, which is useful for non-game applications as it reduces CPU usage. It also prevents the engine from appearing as an application playing audio in the OS' audio mixer.
To query the value that is being used at run-time (which may be overridden by command-line arguments or headless mode), use AudioServer.get_driver_name().
Note: The driver in use can be overridden at runtime via the --audio-driver command line argument.
bool audio/driver/enable_input = false 🔗
If true, microphone input will be allowed. This requires appropriate permissions to be set when exporting to Android or iOS.
Note: If the operating system blocks access to audio input devices (due to the user's privacy settings), audio capture will only return silence. On Windows, make sure that apps are allowed to access the microphone in the OS' privacy settings.
int audio/driver/mix_rate = 44100 🔗
Target mixing rate used for audio (in Hz). In general, it's better to not touch this and leave it to the host operating system.
Note: On iOS and macOS, mixing rate is determined by audio driver, this value is ignored.
Note: Input and output mixing rates might be different. Use AudioServer.get_mix_rate() and AudioServer.get_input_mix_rate() to get actual values.
int audio/driver/mix_rate.web = 0 🔗
Safer override for audio/driver/mix_rate in the Web platform. Here 0 means "let the browser choose" (since some browsers do not like forcing the mix rate).
int audio/driver/output_latency = 15 🔗
Specifies the preferred output latency in milliseconds for audio. Lower values will result in lower audio latency at the cost of increased CPU usage. Low values may result in audible crackling on slower hardware.
Audio output latency may be constrained by the host operating system and audio hardware drivers. If the host can not provide the specified audio output latency then Godot will attempt to use the nearest latency allowed by the host. As such you should always use AudioServer.get_output_latency() to determine the actual audio output latency.
Audio output latency can be overridden using the --audio-output-latency <ms> command line argument.
Note: This setting is ignored on Android.
int audio/driver/output_latency.web = 50 🔗
Safer override for audio/driver/output_latency in the Web platform, to avoid audio issues especially on mobile devices.
float audio/general/2d_panning_strength = 0.5 🔗
The base strength of the panning effect for all AudioStreamPlayer2D nodes. The panning strength can be further scaled on each Node using AudioStreamPlayer2D.panning_strength. A value of 0.0 disables stereo panning entirely, leaving only volume attenuation in place. A value of 1.0 completely mutes one of the channels if the sound is located exactly to the left (or right) of the listener.
The default value of 0.5 is tuned for headphones. When using speakers, you may find lower values to sound better as speakers have a lower stereo separation compared to headphones.
float audio/general/3d_panning_strength = 0.5 🔗
The base strength of the panning effect for all AudioStreamPlayer3D nodes. The panning strength can be further scaled on each Node using AudioStreamPlayer3D.panning_strength. A value of 0.0 disables stereo panning entirely, leaving only volume attenuation in place. A value of 1.0 completely mutes one of the channels if the sound is located exactly to the left (or right) of the listener.
The default value of 0.5 is tuned for headphones which means that the opposite side channel goes no lower than 50% of the volume of the nearside channel. You may find that you can set this value higher for speakers to have the same effect since both ears can hear from each speaker.
int audio/general/default_playback_type = 0 🔗
Experimental: This property may be changed or removed in future versions.
Specifies the default playback type of the platform.
The default value is set to Stream, as most platforms have no issues mixing streams.
int audio/general/default_playback_type.web = 1 🔗
Experimental: This property may be changed or removed in future versions.
Specifies the default playback type of the Web platform.
The default value is set to Sample as the Web platform is not suited to mix audio streams outside of the Web Audio API, especially when exporting a single-threaded game. Sample allows for lower latency on the web platform at the cost of flexibility (AudioEffects are not supported).
Warning: Forcing Stream on the Web platform may cause high audio latency and crackling, especially when exporting a multi-threaded game.
bool audio/general/ios/mix_with_others = false 🔗
Sets the mixWithOthers option for the AVAudioSession on iOS. This will override the mix behavior, if the category is set to Play and Record, Playback, or Multi Route.
Ambient always has this set per default.
int audio/general/ios/session_category = 0 🔗
Sets the AVAudioSessionCategory on iOS. Use the Playback category to get sound output, even if the phone is in silent mode.
bool audio/general/text_to_speech = false 🔗
If true, text-to-speech support is enabled on startup, otherwise it is enabled the first time any TTS method is used. See also DisplayServer.tts_get_voices() and DisplayServer.tts_speak().
Note: Enabling TTS can cause additional idle CPU usage and interfere with the sleep mode, so consider disabling it if TTS is not used.
int audio/video/video_delay_compensation_ms = 0 🔗
Setting to hardcode audio delay when playing video. Best to leave this unchanged unless you know what you are doing.
bool collada/use_ambient = false 🔗
If true, ambient lights will be imported from COLLADA models as DirectionalLight3D. If false, ambient lights will be ignored.
int compression/formats/gzip/compression_level = -1 🔗
The default compression level for gzip. Affects compressed scenes and resources. Higher levels result in smaller files at the cost of compression speed. Decompression speed is mostly unaffected by the compression level. -1 uses the default gzip compression level, which is identical to 6 but could change in the future due to underlying zlib updates.
int compression/formats/zlib/compression_level = -1 🔗
The default compression level for Zlib. Affects compressed scenes and resources. Higher levels result in smaller files at the cost of compression speed. Decompression speed is mostly unaffected by the compression level. -1 uses the default gzip compression level, which is identical to 6 but could change in the future due to underlying zlib updates.
int compression/formats/zstd/compression_level = 3 🔗
The default compression level for Zstandard. Affects compressed scenes and resources. Higher levels result in smaller files at the cost of compression speed. Decompression speed is mostly unaffected by the compression level.
bool compression/formats/zstd/long_distance_matching = false 🔗
Enables long-distance matching in Zstandard.
int compression/formats/zstd/window_log_size = 27 🔗
Largest size limit (in power of 2) allowed when compressing using long-distance matching with Zstandard. Higher values can result in better compression, but will require more memory when compressing and decompressing.
Color debug/canvas_items/debug_redraw_color = Color(1, 0.2, 0.2, 0.5) 🔗
If canvas item redraw debugging is active, this color will be flashed on canvas items when they redraw.
float debug/canvas_items/debug_redraw_time = 1.0 🔗
If canvas item redraw debugging is active, this will be the time the flash will last each time they redraw.
bool debug/file_logging/enable_file_logging = false 🔗
If true, logs all output and error messages to files. See also debug/file_logging/log_path, debug/file_logging/max_log_files, and application/run/flush_stdout_on_print.
bool debug/file_logging/enable_file_logging.pc = true 🔗
Desktop override for debug/file_logging/enable_file_logging, as log files are not readily accessible on mobile/Web platforms.
String debug/file_logging/log_path = "user://logs/godot.log" 🔗
Path at which to store log files for the project. Using a path under user:// is recommended.
This can be specified manually on the command line using the --log-file <file> command line argument. If this command line argument is specified, log rotation is automatically disabled (see debug/file_logging/max_log_files).
int debug/file_logging/max_log_files = 5 🔗
Specifies the maximum number of log files allowed (used for rotation). Set to 1 to disable log file rotation.
If the --log-file <file> command line argument is used, log rotation is always disabled.
int debug/gdscript/warnings/assert_always_false = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when an assert call always evaluates to false.
int debug/gdscript/warnings/assert_always_true = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when an assert call always evaluates to true.
int debug/gdscript/warnings/confusable_capture_reassignment = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a local variable captured by a lambda is reassigned, since this does not modify the outer local variable.
int debug/gdscript/warnings/confusable_identifier = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when an identifier contains characters that can be confused with something else, like when mixing different alphabets.
int debug/gdscript/warnings/confusable_local_declaration = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when an identifier declared in the nested block has the same name as an identifier declared below in the parent block.
int debug/gdscript/warnings/confusable_local_usage = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when an identifier that will be shadowed below in the block is used.
int debug/gdscript/warnings/confusable_temporary_modification = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a built-in property of type Packed*Array is modified using a complex assignment chain or a non-const method call. In this case, you are only modifying a temporary value, and the property's value remains unchanged.
int debug/gdscript/warnings/deprecated_keyword = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when deprecated keywords are used.
Note: There are currently no deprecated keywords, so this warning is never produced.
Dictionary debug/gdscript/warnings/directory_rules = { "res://addons": 0 } 🔗
The rules for including or excluding scripts when generating warnings, as a dictionary. Each rule is an entry consisting of a directory path (key) and a decision (value). When trying to generate a warning, the GDScript parser chooses the most specific rule, i.e. the most nested directory containing the script. If the decision is Exclude, warnings are not generated for this script. If the decision is Include or the script doesn't satisfy any of the rules, the warning configuration specified in the Project Settings is applied.
It is recommended to include your own addons/libraries, either project-specific or actively being developed at the moment. Third-party or project-agnostic addons/libraries should be excluded, as they may be incompatible with the project's warning configuration.
Note: It is not recommended to remove or change the rule for "res://addons" as the project's warning configuration may break third-party addons. Instead, consider including individual addons, if necessary.
Note: The editor does not check whether the specified paths are existing directories. It also does not automatically update these paths when directories are moved.
int debug/gdscript/warnings/empty_file = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when an empty file is parsed.
bool debug/gdscript/warnings/enable = true 🔗
If true, enables specific GDScript warnings (see debug/gdscript/warnings/* settings). If false, disables all GDScript warnings.
int debug/gdscript/warnings/enum_variable_without_default = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a variable has an enum type but no explicit default value, but only if the enum does not contain 0 as a valid value.
int debug/gdscript/warnings/get_node_default_without_onready = 2 🔗
When set to Warn or Error, produces a warning or an error respectively when Node.get_node() (or the shorthand $) is used as default value of a class variable without the @onready annotation.
int debug/gdscript/warnings/incompatible_ternary = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a ternary operator may emit values with incompatible types.
int debug/gdscript/warnings/inference_on_variant = 2 🔗
When set to Warn or Error, produces a warning or an error respectively when a static inferred type uses a Variant as initial value, which makes the static type to also be Variant.
int debug/gdscript/warnings/inferred_declaration = 0 🔗
When set to Warn or Error, produces a warning or an error respectively when a variable, constant, or parameter has an implicitly inferred static type. In GDScript, type inference is performed by declaring a variable with := instead of = and leaving out the type specifier. For example, var x := 1 will infer the int type, while var x: int = 1 explicitly declares the variable as int.
Note: This warning is recommended in addition to debug/gdscript/warnings/untyped_declaration if you want to always specify the type explicitly. Having INFERRED_DECLARATION warning level higher than UNTYPED_DECLARATION warning level makes little sense and is not recommended.
int debug/gdscript/warnings/int_as_enum_without_cast = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when trying to use an integer as an enum without an explicit cast.
int debug/gdscript/warnings/int_as_enum_without_match = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when trying to use an integer as an enum when there is no matching enum member for that numeric value.
int debug/gdscript/warnings/integer_division = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when dividing an integer by another integer (the decimal part will be discarded).
int debug/gdscript/warnings/missing_await = 0 🔗
When set to Warn or Error, produces a warning or an error respectively when calling a coroutine without await.
int debug/gdscript/warnings/missing_tool = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when the base class script has the @tool annotation, but the current class script does not have it.
int debug/gdscript/warnings/narrowing_conversion = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when passing a floating-point value to a function that expects an integer (it will be converted and lose precision).
int debug/gdscript/warnings/native_method_override = 2 🔗
When set to Warn or Error, produces a warning or an error respectively when a method in the script overrides a native method, because it may not behave as expected.
int debug/gdscript/warnings/onready_with_export = 2 🔗
When set to Warn or Error, produces a warning or an error respectively when the @onready annotation is used together with the @export annotation, since it may not behave as expected.
int debug/gdscript/warnings/redundant_await = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a function that is not a coroutine is called with await.
int debug/gdscript/warnings/redundant_static_unload = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when the @static_unload annotation is used in a script without any static variables.
bool debug/gdscript/warnings/renamed_in_godot_4_hint = true 🔗
When enabled, using a property, enum, or function that was renamed since Godot 3 will produce a hint if an error occurs.
int debug/gdscript/warnings/return_value_discarded = 0 🔗
When set to Warn or Error, produces a warning or an error respectively when calling a function without using its return value (by assigning it to a variable or using it as a function argument). These return values are sometimes used to indicate possible errors using the Error enum.
int debug/gdscript/warnings/shadowed_global_identifier = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when defining a local or member variable, signal, or enum that would have the same name as a built-in function or global class name, thus shadowing it.
int debug/gdscript/warnings/shadowed_variable = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a local variable or local constant shadows a member declared in the current class.
int debug/gdscript/warnings/shadowed_variable_base_class = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a local variable or local constant shadows a member declared in a base class.
int debug/gdscript/warnings/standalone_expression = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when calling an expression that may have no effect on the surrounding code, such as writing 2 + 2 as a statement.
int debug/gdscript/warnings/standalone_ternary = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when calling a ternary expression that may have no effect on the surrounding code, such as writing 42 if active else 0 as a statement.
int debug/gdscript/warnings/static_called_on_instance = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when calling a static method from an instance of a class instead of from the class directly.
int debug/gdscript/warnings/unassigned_variable = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when using a variable that wasn't previously assigned.
int debug/gdscript/warnings/unassigned_variable_op_assign = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when assigning a variable using an assignment operator like += if the variable wasn't previously assigned.
int debug/gdscript/warnings/unreachable_code = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when unreachable code is detected (such as after a return statement that will always be executed).
int debug/gdscript/warnings/unreachable_pattern = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when an unreachable match pattern is detected.
int debug/gdscript/warnings/unsafe_call_argument = 0 🔗
When set to Warn or Error, produces a warning or an error respectively when using an expression whose type may not be compatible with the function parameter expected.
int debug/gdscript/warnings/unsafe_cast = 0 🔗
When set to Warn or Error, produces a warning or an error respectively when a Variant value is cast to a non-Variant.
int debug/gdscript/warnings/unsafe_method_access = 0 🔗
When set to Warn or Error, produces a warning or an error respectively when calling a method whose presence is not guaranteed at compile-time in the class.
int debug/gdscript/warnings/unsafe_property_access = 0 🔗
When set to Warn or Error, produces a warning or an error respectively when accessing a property whose presence is not guaranteed at compile-time in the class.
int debug/gdscript/warnings/unsafe_void_return = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when returning a call from a void function when such call cannot be guaranteed to be also void.
int debug/gdscript/warnings/untyped_declaration = 0 🔗
When set to Warn or Error, produces a warning or an error respectively when a variable or parameter has no static type, or if a function has no static return type.
Note: This warning is recommended together with EditorSettings.text_editor/completion/add_type_hints to help achieve type safety.
int debug/gdscript/warnings/unused_local_constant = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a local constant is never used.
int debug/gdscript/warnings/unused_parameter = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a function parameter is never used.
int debug/gdscript/warnings/unused_private_class_variable = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a private member variable is never used.
int debug/gdscript/warnings/unused_signal = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a signal is declared but never explicitly used in the class.
int debug/gdscript/warnings/unused_variable = 1 🔗
When set to Warn or Error, produces a warning or an error respectively when a local variable is unused.
String debug/settings/crash_handler/message = "Please include this when reporting the bug to the project developer." 🔗
Message to be displayed before the backtrace when the engine crashes. By default, this message is only used in exported projects due to the editor-only override applied to this setting.
String debug/settings/crash_handler/message.editor = "Please include this when reporting the bug on: https://github.com/godotengine/godot/issues" 🔗
Editor-only override for debug/settings/crash_handler/message. Does not affect exported projects in debug or release mode.
bool debug/settings/gdscript/always_track_call_stacks = false 🔗
Whether GDScript call stacks will be tracked in release builds, thus allowing Engine.capture_script_backtraces() to function.
Note: This setting has no effect on editor builds or debug builds, where GDScript call stacks are tracked regardless.
bool debug/settings/gdscript/always_track_local_variables = false 🔗
Whether GDScript local variables will be tracked in all builds, including export builds, thus allowing Engine.capture_script_backtraces() to capture them when enabling its include_variables parameter.
Enabling this comes at the cost of roughly 50 bytes of memory per local variable, for every compiled class in the entire project, so can be several MiB in larger projects.
Note: This setting has no effect when running the game from the editor, where GDScript local variables are tracked regardless.
int debug/settings/gdscript/max_call_stack = 1024 🔗
Maximum call stack allowed for debugging GDScript.
bool debug/settings/physics_interpolation/enable_warnings = true 🔗
If true, enables warnings which can help pinpoint where nodes are being incorrectly updated, which will result in incorrect interpolation and visual glitches.
When a node is being interpolated, it is essential that the transform is set during Node._physics_process() (during a physics tick) rather than Node._process() (during a frame).
int debug/settings/profiler/max_functions = 16384 🔗
Maximum number of functions per frame allowed when profiling.
int debug/settings/profiler/max_timestamp_query_elements = 256 🔗
Maximum number of timestamp query elements allowed per frame for visual profiling.
bool debug/settings/stdout/print_fps = false 🔗
Print frames per second to standard output every second.
bool debug/settings/stdout/print_gpu_profile = false 🔗
Print GPU profile information to standard output every second. This includes how long each frame takes the GPU to render on average, broken down into different steps of the render pipeline, such as CanvasItems, shadows, glow, etc.
bool debug/settings/stdout/verbose_stdout = false 🔗
Print more information to standard output when running. It displays information such as memory leaks, which scenes and resources are being loaded, etc. This can also be enabled using the --verbose or -v command line argument, even on an exported project. See also OS.is_stdout_verbose() and @GlobalScope.print_verbose().
bool debug/shader_language/warnings/device_limit_exceeded = true 🔗
When set to true, produces a warning when the shader exceeds certain device limits. Currently, the only device limit checked is the limit on uniform buffer size. More device limits will be added in the future.
bool debug/shader_language/warnings/enable = true 🔗
If true, enables specific shader warnings (see debug/shader_language/warnings/* settings). If false, disables all shader warnings.
bool debug/shader_language/warnings/float_comparison = true 🔗
When set to true, produces a warning when two floating-point numbers are compared directly with the == operator or the != operator.
bool debug/shader_language/warnings/formatting_error = true 🔗
When set to true, produces a warning upon encountering certain formatting errors. Currently this only checks for empty statements. More formatting errors may be added over time.
bool debug/shader_language/warnings/magic_position_write = true 🔗
When set to true, produces a warning when the shader contains POSITION = vec4(vertex, as this was very common code written in Godot 4.2 and earlier that was paired with a QuadMesh to produce a full screen post processes pass. With the switch to reversed z in 4.3, this trick no longer works, as it implicitly relied on the VERTEX.z being 0.
bool debug/shader_language/warnings/treat_warnings_as_errors = false 🔗
When set to true, warnings are treated as errors.
bool debug/shader_language/warnings/unused_constant = true 🔗
When set to true, produces a warning when a constant is never used.
bool debug/shader_language/warnings/unused_function = true 🔗
When set to true, produces a warning when a function is never used.
bool debug/shader_language/warnings/unused_local_variable = true 🔗
When set to true, produces a warning when a local variable is never used.
bool debug/shader_language/warnings/unused_struct = true 🔗
When set to true, produces a warning when a struct is never used.
bool debug/shader_language/warnings/unused_uniform = true 🔗
When set to true, produces a warning when a uniform is never used.
bool debug/shader_language/warnings/unused_varying = true 🔗
When set to true, produces a warning when a varying is never used.
Color debug/shapes/avoidance/2d/agents_radius_color = Color(1, 1, 0, 0.25) 🔗
Color of the avoidance agents radius, visible when "Visible Avoidance" is enabled in the Debug menu.
bool debug/shapes/avoidance/2d/enable_agents_radius = true 🔗
If enabled, displays avoidance agents radius when "Visible Avoidance" is enabled in the Debug menu.
bool debug/shapes/avoidance/2d/enable_obstacles_radius = true 🔗
If enabled, displays avoidance obstacles radius when "Visible Avoidance" is enabled in the Debug menu.
bool debug/shapes/avoidance/2d/enable_obstacles_static = true 🔗
If enabled, displays static avoidance obstacles when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/2d/obstacles_radius_color = Color(1, 0.5, 0, 0.25) 🔗
Color of the avoidance obstacles radius, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/2d/obstacles_static_edge_pushin_color = Color(1, 0, 0, 1) 🔗
Color of the static avoidance obstacles edges when their vertices are winded in order to push agents in, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/2d/obstacles_static_edge_pushout_color = Color(1, 1, 0, 1) 🔗
Color of the static avoidance obstacles edges when their vertices are winded in order to push agents out, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/2d/obstacles_static_face_pushin_color = Color(1, 0, 0, 0) 🔗
Color of the static avoidance obstacles faces when their vertices are winded in order to push agents in, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/2d/obstacles_static_face_pushout_color = Color(1, 1, 0, 0.5) 🔗
Color of the static avoidance obstacles faces when their vertices are winded in order to push agents out, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/3d/agents_radius_color = Color(1, 1, 0, 0.25) 🔗
Color of the avoidance agents radius, visible when "Visible Avoidance" is enabled in the Debug menu.
bool debug/shapes/avoidance/3d/enable_agents_radius = true 🔗
If enabled, displays avoidance agents radius when "Visible Avoidance" is enabled in the Debug menu.
bool debug/shapes/avoidance/3d/enable_obstacles_radius = true 🔗
If enabled, displays avoidance obstacles radius when "Visible Avoidance" is enabled in the Debug menu.
bool debug/shapes/avoidance/3d/enable_obstacles_static = true 🔗
If enabled, displays static avoidance obstacles when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/3d/obstacles_radius_color = Color(1, 0.5, 0, 0.25) 🔗
Color of the avoidance obstacles radius, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/3d/obstacles_static_edge_pushin_color = Color(1, 0, 0, 1) 🔗
Color of the static avoidance obstacles edges when their vertices are winded in order to push agents in, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/3d/obstacles_static_edge_pushout_color = Color(1, 1, 0, 1) 🔗
Color of the static avoidance obstacles edges when their vertices are winded in order to push agents out, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/3d/obstacles_static_face_pushin_color = Color(1, 0, 0, 0) 🔗
Color of the static avoidance obstacles faces when their vertices are winded in order to push agents in, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/avoidance/3d/obstacles_static_face_pushout_color = Color(1, 1, 0, 0.5) 🔗
Color of the static avoidance obstacles faces when their vertices are winded in order to push agents out, visible when "Visible Avoidance" is enabled in the Debug menu.
Color debug/shapes/collision/contact_color = Color(1, 0.2, 0.1, 0.8) 🔗
Color of the contact points between collision shapes, visible when "Visible Collision Shapes" is enabled in the Debug menu.
bool debug/shapes/collision/draw_2d_outlines = true 🔗
Sets whether 2D physics will display collision outlines in game when "Visible Collision Shapes" is enabled in the Debug menu.
int debug/shapes/collision/max_contacts_displayed = 10000 🔗
Maximum number of contact points between collision shapes to display when "Visible Collision Shapes" is enabled in the Debug menu.
Color debug/shapes/collision/shape_color = Color(0, 0.6, 0.7, 0.42) 🔗
Color of the collision shapes, visible when "Visible Collision Shapes" is enabled in the Debug menu.
Color to display enabled navigation agent paths when an agent has debug enabled.
Rasterized size (pixel) used to render navigation agent path points when an agent has debug enabled.
Color to display edge connections between navigation regions, visible when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays navigation agent paths when an agent has debug enabled.
If enabled, displays edge connections between navigation regions when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays navigation mesh polygon edges when "Visible Navigation" is enabled in the Debug menu.
If enabled, colorizes each navigation mesh polygon face with a random color when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays navigation link connections when "Visible Navigation" is enabled in the Debug menu.
Color to display enabled navigation mesh polygon edges, visible when "Visible Navigation" is enabled in the Debug menu.
Color to display disabled navigation mesh polygon edges, visible when "Visible Navigation" is enabled in the Debug menu.
Color to display enabled navigation mesh polygon faces, visible when "Visible Navigation" is enabled in the Debug menu.
Color to display disabled navigation mesh polygon faces, visible when "Visible Navigation" is enabled in the Debug menu.
Color to use to display navigation link connections, visible when "Visible Navigation" is enabled in the Debug menu.
Color to use to display disabled navigation link connections, visible when "Visible Navigation" is enabled in the Debug menu.
Color to display enabled navigation agent paths when an agent has debug enabled.
Rasterized size (pixel) used to render navigation agent path points when an agent has debug enabled.
Color to display edge connections between navigation regions, visible when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays navigation agent paths when an agent has debug enabled.
If enabled, displays navigation agent paths through geometry when an agent has debug enabled.
If enabled, displays edge connections between navigation regions when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays edge connections between navigation regions through geometry when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays navigation mesh polygon edges when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays navigation mesh polygon edges through geometry when "Visible Navigation" is enabled in the Debug menu.
If enabled, colorizes each navigation mesh polygon face with a random color when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays navigation link connections when "Visible Navigation" is enabled in the Debug menu.
If enabled, displays navigation link connections through geometry when "Visible Navigation" is enabled in the Debug menu.
Color to display enabled navigation mesh polygon edges, visible when "Visible Navigation" is enabled in the Debug menu.
Color to display disabled navigation mesh polygon edges, visible when "Visible Navigation" is enabled in the Debug menu.
Color to display enabled navigation mesh polygon faces, visible when "Visible Navigation" is enabled in the Debug menu.
Color to display disabled navigation mesh polygon faces, visible when "Visible Navigation" is enabled in the Debug menu.
Color to use to display navigation link connections, visible when "Visible Navigation" is enabled in the Debug menu.
Color to use to display disabled navigation link connections, visible when "Visible Navigation" is enabled in the Debug menu.
Color debug/shapes/paths/geometry_color = Color(0.1, 1, 0.7, 0.4) 🔗
Color of the curve path geometry, visible when "Visible Paths" is enabled in the Debug menu.
float debug/shapes/paths/geometry_width = 2.0 🔗
Line width of the curve path geometry, visible when "Visible Paths" is enabled in the Debug menu.
String display/display_server/driver 🔗
Sets the driver to be used by the display server. This property can not be edited directly, instead, set the driver using the platform-specific overrides.
String display/display_server/driver.android 🔗
Android override for display/display_server/driver.
String display/display_server/driver.ios 🔗
iOS override for display/display_server/driver.
String display/display_server/driver.linuxbsd 🔗
LinuxBSD override for display/display_server/driver.
String display/display_server/driver.macos 🔗
MacOS override for display/display_server/driver.
String display/display_server/driver.visionos 🔗
visionOS override for display/display_server/driver.
String display/display_server/driver.windows 🔗
Windows override for display/display_server/driver.
String display/mouse_cursor/custom_image = "" 🔗
Custom image for the mouse cursor (limited to 256×256).
Vector2 display/mouse_cursor/custom_image_hotspot = Vector2(0, 0) 🔗
Hotspot for the custom mouse cursor image.
Vector2 display/mouse_cursor/tooltip_position_offset = Vector2(10, 10) 🔗
Position offset for tooltips, relative to the mouse cursor's hotspot.
bool display/window/dpi/allow_hidpi = true 🔗
If true, allows HiDPI display on Windows, macOS, Android, iOS and Web. If false, the platform's low-DPI fallback will be used on HiDPI displays, which causes the window to be displayed in a blurry or pixelated manner (and can cause various window management bugs). Therefore, it is recommended to make your project scale to multiple resolutions instead of disabling this setting.
Note: This setting has no effect on Linux as DPI-awareness fallbacks are not supported there.
bool display/window/energy_saving/keep_screen_on = true 🔗
If true, keeps the screen on (even in case of inactivity), so the screensaver does not take over. Works on desktop and mobile platforms.
bool display/window/frame_pacing/android/enable_frame_pacing = true 🔗
Enable Swappy for stable frame pacing on Android. Highly recommended.
Note: This option will be forced off when using OpenXR.
int display/window/frame_pacing/android/swappy_mode = 2 🔗
Swappy mode to use. The options are:
pipeline_forced_on: Try to honor Engine.max_fps. Pipelining is always on. This is the same behavior as a desktop PC.auto_fps_pipeline_forced_on: Calculate the max FPS automatically. The actual max FPS will be between0and Engine.max_fps. While this sounds convenient, beware that Swappy will often downgrade the max FPS until it finds a value that can be maintained. That means, if your game runs between 40fps and 60fps on a 60hz screen, after some time Swappy will downgrade the max FPS so that the game renders at a perfect 30fps.auto_fps_auto_pipeline: Same asauto_fps_pipeline_forced_on, but if Swappy detects that rendering is very fast (for example it takes less than 8ms to render on a 60hz screen), Swappy will disable pipelining to minimize input latency. This is the default.
Note: If Engine.max_fps is 0, the actual max FPS will be considered to be the screen's refresh rate (often 60hz, 90hz, or 120hz, depending on device model and OS settings).
int display/window/handheld/orientation = 0 🔗
The default screen orientation to use on mobile devices. See ScreenOrientation for possible values.
Note: When set to a portrait orientation, this project setting does not flip the project resolution's width and height automatically. Instead, you have to set display/window/size/viewport_width and display/window/size/viewport_height accordingly.
bool display/window/hdr/request_hdr_output = false 🔗
If true, HDR output is requested for the main window and the editor. The main window and editor will automatically switch between HDR and SDR if it is moved between screens, screen capabilities change, or system settings are modified. This will internally force Viewport.use_hdr_2d to be enabled on the main Viewport. All other SubViewport of the Window must have their Viewport.use_hdr_2d property enabled to produce HDR output.
Note: This property is only read when the project starts. To change this property at runtime, set Window.hdr_output_requested.
bool display/window/ios/allow_high_refresh_rate = true 🔗
If true, iOS devices that support high refresh rate/"ProMotion" will be allowed to render at up to 120 frames per second.
bool display/window/ios/hide_home_indicator = true 🔗
If true, the home indicator is hidden automatically. This only affects iOS devices without a physical home button.
bool display/window/ios/hide_status_bar = true 🔗
If true, the status bar is hidden while the app is running.
bool display/window/ios/suppress_ui_gesture = true 🔗
If true, it will require two swipes to access iOS UI that uses gestures.
Note: This setting has no effect on the home indicator if hide_home_indicator is true.
bool display/window/per_pixel_transparency/allowed = false 🔗
If true, allows per-pixel transparency for the window background. This affects performance, so leave it on false unless you need it. See also display/window/size/transparent and rendering/viewport/transparent_background.
bool display/window/size/always_on_top = false 🔗
Forces the main window to be always on top.
Note: This setting is ignored on iOS, Android, and Web.
bool display/window/size/borderless = false 🔗
Forces the main window to be borderless.
Note: This setting is ignored on iOS, Android, and Web.
bool display/window/size/extend_to_title = false 🔗
Main window content is expanded to the full size of the window. Unlike a borderless window, the frame is left intact and can be used to resize the window, and the title bar is transparent, but has minimize/maximize/close buttons.
Note: This setting is implemented only on macOS.
Vector2i display/window/size/initial_position = Vector2i(0, 0) 🔗
Main window initial position (in virtual desktop coordinates), this setting is used only if display/window/size/initial_position_type is set to "Absolute" (0).
Note: This setting only affects the exported project, or when the project is run from the command line. In the editor, the value of EditorSettings.run/window_placement/rect_custom_position is used instead.
int display/window/size/initial_position_type = 1 🔗
Main window initial position.
0 - "Absolute", display/window/size/initial_position is used to set window position.
1 - "Primary Screen Center".
3 - "Other Screen Center", display/window/size/initial_screen is used to set the screen.
4 - "Center of Screen With Mouse Pointer".
5 - "Center of Screen With Keyboard Focus".
Note: This setting only affects the exported project, or when the project is run from the command line. In the editor, the value of EditorSettings.run/window_placement/rect is used instead.
int display/window/size/initial_screen = 0 🔗
Main window initial screen, this setting is used only if display/window/size/initial_position_type is set to "Other Screen Center" (2).
Note: This setting only affects the exported project, or when the project is run from the command line. In the editor, the value of EditorSettings.run/window_placement/screen is used instead.
bool display/window/size/maximize_disabled = false 🔗
If true, the main window's maximize button is disabled.
bool display/window/size/minimize_disabled = false 🔗
If true, the main window's minimize button is disabled.
int display/window/size/mode = 0 🔗
Main window mode. See WindowMode for possible values and how each mode behaves.
Note: Game embedding is available only in the "Windowed" mode.
bool display/window/size/no_focus = false 🔗
Main window can't be focused. No-focus window will ignore all input, except mouse clicks.
bool display/window/size/resizable = true 🔗
If true, allows the window to be resizable by default.
Note: This property is only read when the project starts. To change whether the window is resizable at runtime, set Window.unresizable instead on the root Window, which can be retrieved using get_viewport().get_window(). Window.unresizable takes the opposite value of this setting.
Note: Certain window managers can be configured to ignore the non-resizable status of a window. Do not rely on this setting as a guarantee that the window will never be resizable.
Note: This setting is ignored on iOS.
bool display/window/size/sharp_corners = false 🔗
If true, the main window uses sharp corners by default.
Note: This property is implemented only on Windows (11).
bool display/window/size/transparent = false 🔗
If true, enables a window manager hint that the main window background can be transparent. This does not make the background actually transparent. For the background to be transparent, the root viewport must also be made transparent by enabling rendering/viewport/transparent_background.
Note: To use a transparent splash screen, set application/boot_splash/bg_color to Color(0, 0, 0, 0).
Note: This setting has no effect if display/window/per_pixel_transparency/allowed is set to false.
Note: This setting has no effect on Android as transparency is controlled only via display/window/per_pixel_transparency/allowed.
int display/window/size/viewport_height = 648 🔗
Sets the game's main viewport height. On desktop platforms, this is also the initial window height, represented by an indigo-colored rectangle in the 2D editor. Stretch mode settings also use this as a reference when using the canvas_items or viewport stretch modes. See also display/window/size/viewport_width, display/window/size/window_width_override and display/window/size/window_height_override.
int display/window/size/viewport_width = 1152 🔗
Sets the game's main viewport width. On desktop platforms, this is also the initial window width, represented by an indigo-colored rectangle in the 2D editor. Stretch mode settings also use this as a reference when using the canvas_items or viewport stretch modes. See also display/window/size/viewport_height, display/window/size/window_width_override and display/window/size/window_height_override.
int display/window/size/window_height_override = 0 🔗
On desktop platforms, overrides the game's initial window height. See also display/window/size/window_width_override, display/window/size/viewport_width and display/window/size/viewport_height.
Note: By default, or when set to 0, the initial window height is the display/window/size/viewport_height. This setting is ignored on iOS, Android, and Web.
int display/window/size/window_width_override = 0 🔗
On desktop platforms, overrides the game's initial window width. See also display/window/size/window_height_override, display/window/size/viewport_width and display/window/size/viewport_height.
Note: By default, or when set to 0, the initial window width is the display/window/size/viewport_width. This setting is ignored on iOS, Android, and Web.
String display/window/stretch/aspect = "keep" 🔗
Defines how the aspect ratio of the base size is preserved when stretching to fit the resolution of the window or screen.
"ignore": Ignore the aspect ratio when stretching the screen. This means that the original resolution will be stretched to exactly fill the screen, even if it's wider or narrower. This may result in non-uniform stretching: things looking wider or taller than designed.
"keep": Keep aspect ratio when stretching the screen. This means that the viewport retains its original size regardless of the screen resolution, and black bars will be added to the top/bottom of the screen ("letterboxing") or the sides ("pillarboxing").
"keep_width": Keep aspect ratio when stretching the screen. If the screen is wider than the base size, black bars are added at the left and right (pillarboxing). But if the screen is taller than the base resolution, the viewport will be grown in the vertical direction (and more content will be visible at the bottom). You can also think of this as "Expand Vertically".
"keep_height": Keep aspect ratio when stretching the screen. If the screen is taller than the base size, black bars are added at the top and bottom (letterboxing). But if the screen is wider than the base resolution, the viewport will be grown in the horizontal direction (and more content will be visible to the right). You can also think of this as "Expand Horizontally".
"expand": Keep aspect ratio when stretching the screen, but keep neither the base width nor height. Depending on the screen aspect ratio, the viewport will either be larger in the horizontal direction (if the screen is wider than the base size) or in the vertical direction (if the screen is taller than the original size). This is the default for projects created starting in Godot 4.7.
String display/window/stretch/mode = "disabled" 🔗
Defines how the base size is stretched to fit the resolution of the window or screen.
"disabled": No stretching happens. One unit in the scene corresponds to one pixel on the screen. In this mode, display/window/stretch/aspect has no effect. Recommended for non-game applications.
"canvas_items": The base size specified in width and height in the project settings is stretched to cover the whole screen (taking display/window/stretch/aspect into account). This means that everything is rendered directly at the target resolution. 3D is unaffected, while in 2D, there is no longer a 1:1 correspondence between sprite pixels and screen pixels, which may result in scaling artifacts. Recommended for most games that don't use a pixel art aesthetic, although it is possible to use this stretch mode for pixel art games too (especially in 3D). This is the default for projects created starting in Godot 4.7.
"viewport": The size of the root Viewport is set precisely to the base size specified in the Project Settings' Display section. The scene is rendered to this viewport first. Finally, this viewport is scaled to fit the screen (taking display/window/stretch/aspect into account). Recommended for games that use a pixel art aesthetic.
float display/window/stretch/scale = 1.0 🔗
The scale factor multiplier to use for 2D elements. This multiplies the final scale factor determined by display/window/stretch/mode. If using the Disabled stretch mode, this scale factor is applied as-is. This can be adjusted to make the UI easier to read on certain displays.
String display/window/stretch/scale_mode = "fractional" 🔗
The policy to use to determine the final scale factor for 2D elements. This affects how display/window/stretch/scale is applied, in addition to the automatic scale factor determined by display/window/stretch/mode.
"fractional": The scale factor will not be modified.
"integer": The scale factor will be floored to an integer value, which means that the screen size will always be an integer multiple of the base viewport size. This provides a crisp pixel art appearance.
Note: When using integer scaling with a stretch mode, resizing the window to be smaller than the base viewport size will clip the contents. Consider preventing that by setting Window.min_size to the same value as the base viewport size defined in display/window/size/viewport_width and display/window/size/viewport_height.
bool display/window/subwindows/embed_subwindows = true 🔗
If true, subwindows are embedded in the main window (this is also called single-window mode). Single-window mode can be faster as it does not need to create a separate window for every popup and tooltip, which can be a slow operation depending on the operating system and rendering method in use.
If false, subwindows are created as separate windows (this is also called multi-window mode). This allows them to be moved outside the main window and use native operating system window decorations.
This is equivalent to EditorSettings.interface/editor/display/single_window_mode in the editor.
int display/window/vsync/vsync_mode = 1 🔗
Sets the V-Sync mode for the main game window. The editor's own V-Sync mode can be set using EditorSettings.interface/editor/display/vsync_mode.
See VSyncMode for possible values and how they affect the behavior of your application.
Depending on the platform and rendering method, the engine will fall back to Enabled if the desired mode is not supported.
V-Sync can be disabled on the command line using the --disable-vsync command line argument.
Note: The Adaptive and Mailbox V-Sync modes are only supported in the Forward+ and Mobile rendering methods, not Compatibility.
Note: This property is only read when the project starts. To change the V-Sync mode at runtime, call DisplayServer.window_set_vsync_mode() instead.
String dotnet/project/assembly_name = "" 🔗
Name of the .NET assembly. This name is used as the name of the .csproj and .sln files. By default, it's set to the name of the project (application/config/name) allowing to change it in the future without affecting the .NET assembly.
int dotnet/project/assembly_reload_attempts = 3 🔗
Number of times to attempt assembly reloading after rebuilding .NET assemblies. Effectively also the timeout in seconds to wait for unloading of script assemblies to finish.
String dotnet/project/solution_directory = "" 🔗
Directory that contains the .sln file. By default, the .sln files is in the root of the project directory, next to the project.godot and .csproj files.
Changing this value allows setting up a multi-project scenario where there are multiple .csproj. Keep in mind that the Godot project is considered one of the C# projects in the workspace and it's root directory should contain the project.godot and .csproj next to each other.
bool editor/export/convert_text_resources_to_binary = true 🔗
If true, text resource (tres) and text scene (tscn) files are converted to their corresponding binary format on export. This decreases file sizes and speeds up loading slightly.
Note: Because a resource's file extension may change in an exported project, it is heavily recommended to use @GDScript.load() or ResourceLoader instead of FileAccess to load resources dynamically.
Note: The project settings file (project.godot) will always be converted to binary on export, regardless of this setting.
int editor/import/atlas_max_width = 2048 🔗
The maximum width to use when importing textures as an atlas. The value will be rounded to the nearest power of two when used. Use this to prevent imported textures from growing too large in the other direction.
bool editor/import/reimport_missing_imported_files = true 🔗
There is currently no description for this property. Please help us by contributing one!
bool editor/import/use_multiple_threads = true 🔗
If true importing of resources is run on multiple threads.
int editor/movie_writer/audio_bit_depth = 16 🔗
Number of bits per audio sample written to the .avi file. Only 16 and 32-bit are supported.
bool editor/movie_writer/disable_vsync = false 🔗
If true, requests V-Sync to be disabled when writing a movie (similar to setting display/window/vsync/vsync_mode to Disabled). This can speed up video writing if the hardware is fast enough to render, encode and save the video at a framerate higher than the monitor's refresh rate.
Note: editor/movie_writer/disable_vsync has no effect if the operating system or graphics driver forces V-Sync with no way for applications to disable it.
int editor/movie_writer/fps = 60 🔗
The number of frames per second to record in the video when writing a movie. Simulation speed will adjust to always match the specified framerate, which means the engine will appear to run slower at higher editor/movie_writer/fps values. Certain FPS values will require you to adjust editor/movie_writer/mix_rate to prevent audio from desynchronizing over time.
This can be specified manually on the command line using the --fixed-fps <fps> command line argument.
int editor/movie_writer/mix_rate = 48000 🔗
The audio mix rate to use in the recorded audio when writing a movie (in Hz). This can be different from audio/driver/mix_rate, but this value must be divisible by editor/movie_writer/fps to prevent audio from desynchronizing over time.
String editor/movie_writer/movie_file = "" 🔗
The output path for the movie. The file extension determines the MovieWriter that will be used.
Godot has 3 built-in MovieWriters:
OGV container with Theora for video and Vorbis for audio (
.ogvfile extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing editor/movie_writer/video_quality and editor/movie_writer/ogv/audio_quality. The resulting file can be viewed in Godot with VideoStreamPlayer and most video players, but not web browsers as they don't support Theora.AVI container with MJPEG for video and uncompressed audio (
.avifile extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing editor/movie_writer/video_quality. The resulting file can be viewed in most video players, but it must be converted to another format for viewing on the web or by Godot with VideoStreamPlayer. MJPEG does not support transparency. AVI output is currently limited to a file of 4 GB in size at most.PNG image sequence for video and WAV for audio (
.pngfile extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as FFmpeg after recording. Transparency is currently not supported, even if the root viewport is set to be transparent.
If you need to encode to a different format or pipe a stream through third-party software, you can extend this MovieWriter class to create your own movie writers.
When using PNG output, the frame number will be appended at the end of the file name. It starts from 0 and is padded with 8 digits to ensure correct sorting and easier processing. For example, if the output path is /tmp/hello.png, the first two frames will be /tmp/hello00000000.png and /tmp/hello00000001.png. The audio will be saved at /tmp/hello.wav.
float editor/movie_writer/ogv/audio_quality = 0.5 🔗
The audio encoding quality to use when writing Vorbis audio to a file, between -0.1 and 1.0 (inclusive). Higher quality values result in better-sounding output at the cost of larger file sizes. Even at quality 1.0, compression remains lossy.
Note: This does not affect video quality, which is controlled by editor/movie_writer/video_quality instead.
int editor/movie_writer/ogv/encoding_speed = 4 🔗
The tradeoff between encoding speed and compression efficiency. Speed 1 is the slowest but provides the best compression. Speed 4 is the fastest but provides the worst compression. Video quality is generally not affected significantly by this setting.
int editor/movie_writer/ogv/keyframe_interval = 64 🔗
Forces keyframes at the specified interval (in frame count). Higher values can improve compression up to a certain level at the expense of higher latency when seeking.
int editor/movie_writer/speaker_mode = 0 🔗
The speaker mode to use in the recorded audio when writing a movie. See SpeakerMode for possible values.
float editor/movie_writer/video_quality = 0.75 🔗
The video encoding quality to use when writing a Theora or AVI (MJPEG) video to a file, between 0.0 and 1.0 (inclusive). Higher quality values result in better-looking output at the cost of larger file sizes. Recommended quality values are between 0.75 and 0.9. Even at quality 1.0, compression remains lossy.
String editor/naming/default_signal_callback_name = "_on_{node_name}_{signal_name}" 🔗
The format of the default signal callback name (in the Signal Connection Dialog). The following substitutions are available: {NodeName}, {nodeName}, {node_name}, {SignalName}, {signalName}, and {signal_name}.
String editor/naming/default_signal_callback_to_self_name = "_on_{signal_name}" 🔗
The format of the default signal callback name when a signal connects to the same node that emits it (in the Signal Connection Dialog). The following substitutions are available: {NodeName}, {nodeName}, {node_name}, {SignalName}, {signalName}, and {signal_name}.
int editor/naming/node_name_casing = 0 🔗
When creating node names automatically, set the type of casing to use in this project. This is mostly an editor setting.
int editor/naming/node_name_num_separator = 0 🔗
What to use to separate node name from number. This is mostly an editor setting.
int editor/naming/scene_name_casing = 2 🔗
When generating scene file names from scene root node, set the type of casing to use in this project. This is mostly an editor setting.
int editor/naming/script_name_casing = 0 🔗
When generating script file names from the selected node, set the type of casing to use in this project. This is mostly an editor setting.
String editor/run/main_run_args = "" 🔗
The command-line arguments to append to Godot's own command line when running the project. This doesn't affect the editor itself.
It is possible to make another executable run Godot by using the %command% placeholder. The placeholder will be replaced with Godot's own command line. Program-specific arguments should be placed before the placeholder, whereas Godot-specific arguments should be placed after the placeholder.
For example, this can be used to force the project to run on the dedicated GPU in an NVIDIA Optimus system on Linux:
prime-run %command%
PackedStringArray editor/script/search_in_file_extensions 🔗
Text-based file extensions to include in the script editor's "Find in Files" feature. You can add e.g. tscn if you wish to also parse your scene files, especially if you use built-in scripts which are serialized in the scene files.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedStringArray for more details.
String editor/script/templates_search_path = "res://script_templates" 🔗
Search path for project-specific script templates. Godot will search for script templates both in the editor-specific path and in this project-specific path.
bool editor/version_control/autoload_on_startup = false 🔗
There is currently no description for this property. Please help us by contributing one!
String editor/version_control/plugin_name = "" 🔗
There is currently no description for this property. Please help us by contributing one!
bool filesystem/import/blender/enabled = true 🔗
If true, Blender 3D scene files with the .blend extension will be imported by converting them to glTF 2.0.
This requires configuring a path to a Blender executable in the EditorSettings.filesystem/import/blender/blender_path setting. Blender 3.0 or later is required.
bool filesystem/import/blender/enabled.android = false 🔗
Override for filesystem/import/blender/enabled on Android where Blender can't easily be accessed from Godot.
bool filesystem/import/blender/enabled.web = false 🔗
Override for filesystem/import/blender/enabled on the Web where Blender can't easily be accessed from Godot.
bool filesystem/import/fbx2gltf/enabled = true 🔗
If true, Autodesk FBX 3D scene files with the .fbx extension will be imported by converting them to glTF 2.0.
This requires configuring a path to an FBX2glTF executable in the editor settings at EditorSettings.filesystem/import/fbx/fbx2gltf_path.
bool filesystem/import/fbx2gltf/enabled.android = false 🔗
Override for filesystem/import/fbx2gltf/enabled on Android where FBX2glTF can't easily be accessed from Godot.
bool filesystem/import/fbx2gltf/enabled.web = false 🔗
Override for filesystem/import/fbx2gltf/enabled on the Web where FBX2glTF can't easily be accessed from Godot.
int gui/common/default_scroll_deadzone = 0 🔗
Default value for ScrollContainer.scroll_deadzone, which will be used for all ScrollContainers unless overridden.
int gui/common/drag_threshold = 10 🔗
The minimum distance the mouse cursor must move while pressed before a drag operation begins in the default viewport. For custom viewports see Viewport.gui_drag_threshold.
int gui/common/show_focus_state_on_pointer_event = 1 🔗
Determines whether a Control should visually indicate focus when that focus is gained using a mouse or touch input.
Never (
0) show the focused state for mouse/touch input.Text Input Controls (
1) show the focused state even if that focus was gained via mouse/touch input (similar to browser behavior).Always (
2) show the focused state, even if that focus was gained via mouse/touch input.
bool gui/common/snap_controls_to_pixels = true 🔗
If true, snaps Control node vertices to the nearest pixel to ensure they remain crisp even when the camera moves or zooms.
int gui/common/swap_cancel_ok = 0 🔗
How to position the Cancel and OK buttons in the project's AcceptDialog windows. Different platforms have different conventions for this, which can be overridden through this setting.
Auto follows the platform convention: OK first on Windows, KDE, and LXQt; Cancel first on macOS and other Linux desktop environments.
Cancel First forces the Cancel/OK ordering.
OK First forces the OK/Cancel ordering.
To check if these buttons are swapped at runtime, use DisplayServer.get_swap_cancel_ok().
Note: This doesn't affect native dialogs such as the ones spawned by DisplayServer.dialog_show().
int gui/common/text_edit_undo_stack_max_size = 1024 🔗
Maximum undo/redo history size for TextEdit fields.
bool gui/fonts/dynamic_fonts/use_oversampling = true 🔗
If set to true and display/window/stretch/mode is set to "canvas_items", font and DPITexture oversampling is enabled in the main window. Use Viewport.oversampling to control oversampling in other viewports and windows.
String gui/theme/custom = "" 🔗
Path to a custom Theme resource file to use for the project (.theme or generic .tres/.res extension).
String gui/theme/custom_font = "" 🔗
Path to a custom Font resource to use as default for all GUI elements of the project.
int gui/theme/default_font_antialiasing = 1 🔗
Font anti-aliasing mode for the default project font. See FontFile.antialiasing.
Note: This setting does not affect custom Fonts used within the project. Use the Import dock for that instead (see ResourceImporterDynamicFont.antialiasing).
bool gui/theme/default_font_generate_mipmaps = false 🔗
If set to true, the default font will have mipmaps generated. This prevents text from looking grainy when a Control is scaled down, or when a Label3D is viewed from a long distance (if Label3D.texture_filter is set to a mode that displays mipmaps).
Enabling gui/theme/default_font_generate_mipmaps increases font generation time and memory usage. Only enable this setting if you actually need it.
Note: This setting does not affect custom Fonts used within the project. Use the Import dock for that instead (see ResourceImporterDynamicFont.generate_mipmaps).
int gui/theme/default_font_hinting = 1 🔗
Font hinting mode for the default project font. See FontFile.hinting.
Note: This setting does not affect custom Fonts used within the project. Use the Import dock for that instead (see ResourceImporterDynamicFont.hinting).
bool gui/theme/default_font_multichannel_signed_distance_field = false 🔗
If set to true, the default font will use multichannel signed distance field (MSDF) for crisp rendering at any size. Since this approach does not rely on rasterizing the font every time its size changes, this allows for resizing the font in real-time without any performance penalty. Text will also not look grainy for Controls that are scaled down (or for Label3Ds viewed from a long distance).
MSDF font rendering can be combined with gui/theme/default_font_generate_mipmaps to further improve font rendering quality when scaled down.
Note: This setting does not affect custom Fonts used within the project. Use the Import dock for that instead (see ResourceImporterDynamicFont.multichannel_signed_distance_field).
int gui/theme/default_font_subpixel_positioning = 1 🔗
Font glyph subpixel positioning mode for the default project font. See FontFile.subpixel_positioning.
Note: This setting does not affect custom Fonts used within the project. Use the Import dock for that instead (see ResourceImporterDynamicFont.subpixel_positioning).
float gui/theme/default_theme_scale = 1.0 🔗
The default scale factor for Controls, when not overridden by a Theme.
Note: This property is only read when the project starts. To change the default theme scale at runtime, set ThemeDB.fallback_base_scale instead. However, to adjust the scale of all 2D elements at runtime, it's preferable to use Window.content_scale_factor on the root Window node instead (as this also affects overridden Themes). See Multiple resolutions in the documentation for details.
int gui/theme/lcd_subpixel_layout = 1 🔗
LCD subpixel layout used for font anti-aliasing. See FontLCDSubpixelLayout.
float gui/timers/button_shortcut_feedback_highlight_time = 0.2 🔗
When BaseButton.shortcut_feedback is enabled, this is the time the BaseButton will remain highlighted after a shortcut. This duration is not affected by Engine.time_scale.
int gui/timers/incremental_search_max_interval_msec = 2000 🔗
Timer setting for incremental search in Tree, ItemList, etc. controls (in milliseconds).
float gui/timers/text_edit_idle_detect_sec = 3 🔗
Timer for detecting idle in TextEdit (in seconds).
float gui/timers/tooltip_delay_sec = 0.5 🔗
Default delay for tooltips (in seconds).
float gui/timers/tooltip_delay_sec.editor_hint = 0.5 🔗
Delay for tooltips in the editor.
Dictionary input/ui_accept 🔗
Default InputEventAction to confirm a focused button, menu or list item, or validate input.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_accessibility_drag_and_drop 🔗
Default InputEventAction to start or end a drag-and-drop operation without using mouse.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_cancel 🔗
Default InputEventAction to discard a modal or pending input.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_close_dialog 🔗
Default InputEventAction to close a dialog window.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_close_dialog.macos 🔗
macOS specific override for the shortcut to close a dialog window.
Dictionary input/ui_colorpicker_delete_preset 🔗
Default InputEventAction to delete a color preset in a ColorPicker.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_copy 🔗
Default InputEventAction to copy a selection to the clipboard.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_cut 🔗
Default InputEventAction to cut a selection to the clipboard.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_down 🔗
Default InputEventAction to move down in the UI.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_end 🔗
Default InputEventAction to go to the end position of a Control (e.g. last item in an ItemList or a Tree), matching the behavior of @GlobalScope.KEY_END on typical desktop UI systems.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_filedialog_delete 🔗
Default InputEventAction to delete the selected file in a FileDialog.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_filedialog_find 🔗
Default InputEventAction to open file filter in a FileDialog.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_filedialog_focus_path 🔗
Default InputEventAction to focus path edit field in a FileDialog.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_filedialog_focus_path.macos 🔗
macOS specific override for the shortcut to focus path edit field in FileDialog.
Dictionary input/ui_filedialog_refresh 🔗
Default InputEventAction to refresh the contents of the current directory of a FileDialog.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Default InputEventAction to toggle showing hidden files and directories in a FileDialog.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_filedialog_up_one_level 🔗
Default InputEventAction to go up one directory in a FileDialog.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_focus_mode 🔗
Default InputEventAction to switch TextEdit input/ui_text_indent between moving keyboard focus to the next Control in the scene and inputting a Tab character.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_focus_next 🔗
Default InputEventAction to focus the next Control in the scene. The focus behavior can be configured via Control.focus_next.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_focus_prev 🔗
Default InputEventAction to focus the previous Control in the scene. The focus behavior can be configured via Control.focus_previous.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_graph_delete 🔗
Default InputEventAction to delete a GraphNode in a GraphEdit.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_graph_duplicate 🔗
Default InputEventAction to duplicate a GraphNode in a GraphEdit.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_graph_follow_left 🔗
Default InputEventAction to follow a GraphNode input port connection.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_graph_follow_left.macos 🔗
macOS specific override for the shortcut to follow a GraphNode input port connection.
Dictionary input/ui_graph_follow_right 🔗
Default InputEventAction to follow a GraphNode output port connection.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_graph_follow_right.macos 🔗
macOS specific override for the shortcut to follow a GraphNode output port connection.
Dictionary input/ui_home 🔗
Default InputEventAction to go to the start position of a Control (e.g. first item in an ItemList or a Tree), matching the behavior of @GlobalScope.KEY_HOME on typical desktop UI systems.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_left 🔗
Default InputEventAction to move left in the UI.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Default InputEventAction to open a context menu in a text field.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_page_down 🔗
Default InputEventAction to go down a page in a Control (e.g. in an ItemList or a Tree), matching the behavior of @GlobalScope.KEY_PAGEDOWN on typical desktop UI systems.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_page_up 🔗
Default InputEventAction to go up a page in a Control (e.g. in an ItemList or a Tree), matching the behavior of @GlobalScope.KEY_PAGEUP on typical desktop UI systems.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_paste 🔗
Default InputEventAction to paste from the clipboard.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_redo 🔗
Default InputEventAction to redo an undone action.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_right 🔗
Default InputEventAction to move right in the UI.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_select 🔗
Default InputEventAction to select an item in a Control (e.g. in an ItemList or a Tree).
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_swap_input_direction 🔗
Default InputEventAction to swap input direction, i.e. change between left-to-right to right-to-left modes. Affects text-editing controls (LineEdit, TextEdit).
Dictionary input/ui_text_add_selection_for_next_occurrence 🔗
If a selection is currently active with the last caret in text fields, searches for the next occurrence of the selection, adds a caret and selects the next occurrence.
If no selection is currently active with the last caret in text fields, selects the word currently under the caret.
The action can be performed sequentially for all occurrences of the selection of the last caret and for all existing carets.
The viewport is adjusted to the latest newly added caret.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_backspace 🔗
Default InputEventAction to delete the character before the text cursor.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_backspace_all_to_left 🔗
Default InputEventAction to delete all text before the text cursor.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_backspace_all_to_left.macos 🔗
macOS specific override for the shortcut to delete all text before the text cursor.
Dictionary input/ui_text_backspace_word 🔗
Default InputEventAction to delete all characters before the cursor up until a whitespace or punctuation character.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_backspace_word.macos 🔗
macOS specific override for the shortcut to delete a word.
Dictionary input/ui_text_caret_add_above 🔗
Default InputEventAction to add an additional caret above every caret of a text.
Dictionary input/ui_text_caret_add_above.macos 🔗
macOS specific override for the shortcut to add a caret above every caret.
Dictionary input/ui_text_caret_add_below 🔗
Default InputEventAction to add an additional caret below every caret of a text.
Dictionary input/ui_text_caret_add_below.macos 🔗
macOS specific override for the shortcut to add a caret below every caret.
Dictionary input/ui_text_caret_document_end 🔗
Default InputEventAction to move the text cursor to the end of the text.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_document_end.macos 🔗
macOS specific override for the shortcut to move the text cursor to the end of the text.
Dictionary input/ui_text_caret_document_start 🔗
Default InputEventAction to move the text cursor to the start of the text.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_document_start.macos 🔗
macOS specific override for the shortcut to move the text cursor to the start of the text.
Dictionary input/ui_text_caret_down 🔗
Default InputEventAction to move the text cursor down.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_left 🔗
Default InputEventAction to move the text cursor left.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_line_end 🔗
Default InputEventAction to move the text cursor to the end of the line.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_line_end.macos 🔗
macOS specific override for the shortcut to move the text cursor to the end of the line.
Dictionary input/ui_text_caret_line_start 🔗
Default InputEventAction to move the text cursor to the start of the line.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_line_start.macos 🔗
macOS specific override for the shortcut to move the text cursor to the start of the line.
Dictionary input/ui_text_caret_page_down 🔗
Default InputEventAction to move the text cursor down one page.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_page_up 🔗
Default InputEventAction to move the text cursor up one page.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_right 🔗
Default InputEventAction to move the text cursor right.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_up 🔗
Default InputEventAction to move the text cursor up.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_word_left 🔗
Default InputEventAction to move the text cursor left to the next whitespace or punctuation.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_word_left.macos 🔗
macOS specific override for the shortcut to move the text cursor back one word.
Dictionary input/ui_text_caret_word_right 🔗
Default InputEventAction to move the text cursor right to the next whitespace or punctuation.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_caret_word_right.macos 🔗
macOS specific override for the shortcut to move the text cursor forward one word.
Dictionary input/ui_text_clear_carets_and_selection 🔗
If there's only one caret active and with a selection, clears the selection.
In case there's more than one caret active, removes the secondary carets and clears their selections.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_completion_accept 🔗
Default InputEventAction to accept an autocompletion hint.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_completion_query 🔗
Default InputEventAction to request autocompletion.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_completion_replace 🔗
Default InputEventAction to accept an autocompletion hint, replacing existing text.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_dedent 🔗
Default InputEventAction to unindent text.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_delete 🔗
Default InputEventAction to delete the character after the text cursor.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_delete_all_to_right 🔗
Default InputEventAction to delete all text after the text cursor.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_delete_all_to_right.macos 🔗
macOS specific override for the shortcut to delete all text after the text cursor.
Dictionary input/ui_text_delete_word 🔗
Default InputEventAction to delete all characters after the cursor up until a whitespace or punctuation character.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_delete_word.macos 🔗
macOS specific override for the shortcut to delete a word after the text cursor.
Dictionary input/ui_text_indent 🔗
Default InputEventAction to indent the current line.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_newline 🔗
Default InputEventAction to insert a new line at the position of the text cursor.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_newline_above 🔗
Default InputEventAction to insert a new line before the current one.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_newline_blank 🔗
Default InputEventAction to insert a new line after the current one.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_scroll_down 🔗
Default InputEventAction to scroll down one line of text.
Note: Default ui_* actions cannot be removed as they are necessary for the internal logic of several Controls. The events assigned to the action can however be modified.
Dictionary input/ui_text_scroll_down.macos 🔗
macOS specific override for the shortcut to scroll down one line.