Command line tutorial

Some developers like using the command line extensively. Godot is designed to be friendly to them, so here are the steps for working entirely from the command line. Given the engine relies on almost no external libraries, initialization times are pretty fast, making it suitable for this workflow.

Note

On Windows and Linux, you can run a Godot binary in a terminal by specifying its relative or absolute path.

On macOS, the process is different due to Godot being contained within an .app bundle (which is a folder, not a file). To run a Godot binary from a terminal on macOS, you have to cd to the folder where the Godot application bundle is located, then run Godot.app/Contents/MacOS/Godot followed by any command line arguments. If you've renamed the application bundle from Godot to another name, make sure to edit this command line accordingly.

Command line reference

Legend

  • release Available in editor builds, debug export templates and release export templates.

  • debug Available in editor builds and debug export templates only.

  • editor Only available in editor builds.

Note that unknown command line arguments have no effect whatsoever. The engine will not warn you when using a command line argument that doesn't exist with a given build type.

General options

Command

Description

-h, --help

release Display the list of command line options.

--version

release Display the version string.

-v, --verbose

release Use verbose stdout mode.

-q, --quiet

release Quiet mode, silences stdout messages. Errors are still displayed.

Run options

Command

Description

--, ++

release Separator for user-provided arguments. Following arguments are not used by the engine, but can be read from OS.get_cmdline_user_args().

-e, --editor

editor Start the editor instead of running the scene.

-p, --project-manager

editor Start the Project Manager, even if a project is auto-detected.

--debug-server <uri>

editor Start the editor debug server (<protocol>://<host/IP>[:<port>], e.g. tcp://127.0.0.1:6007)

--quit

release Quit after the first iteration.

--quit-after

release Quit after the given number of iterations. Set to 0 to disable.

-l, --language <locale>

release Use a specific locale. <locale> follows the format language_Script_COUNTRY_VARIANT where language is a 2 or 3-letter language code in lowercase and the rest is optional. See Locale codes for more details.

--path <directory>

release Path to a project (<directory> must contain a 'project.godot' file).

-u, --upwards

release Scan folders upwards for 'project.godot' file.

--main-pack <file>

release Path to a pack (.pck) file to load.

--render-thread <mode>

release Render thread mode ('unsafe', 'safe', 'separate'). See Thread Model for more details.

--remote-fs <address>

release Remote filesystem (<host/IP>[:<port>] address).

--remote-fs-password <password>

release Password for remote filesystem.

--audio-driver <driver>

release Audio driver. Use --help first to display the list of available drivers.

--display-driver <driver>

release Display driver (and rendering driver). Use --help first to display the list of available drivers.

--rendering-method <renderer>

release Renderer name. Requires driver support.

--rendering-driver <driver>

release Rendering driver (depends on display driver). Use --help first to display the list of available drivers.

--gpu-index <device_index>

release Use a specific GPU (run with --verbose to get available device list).

--text-driver <driver>

release Text driver (Fonts, BiDi, shaping).

--tablet-driver <driver>

release Pen tablet input driver.

--headless

release Enable headless mode (--display-driver headless --audio-driver Dummy). Useful for servers and with --script.

--write-movie <file>

release Run the engine in a way that a movie is written (usually with .avi or .png extension). --fixed-fps is forced when enabled, but can be used to change movie FPS. --disable-vsync can speed up movie writing but makes interaction more difficult. --quit-after can be used to specify the number of frames to write.

Display options

Command

Description

-f, --fullscreen

release Request fullscreen mode.

-m, --maximized

release Request a maximized window.

-w, --windowed

release Request windowed mode.

-t, --always-on-top

release Request an always-on-top window.

--resolution <W>x<H>

release Request window resolution.

--position <X>,<Y>

release Request window position.

--screen <N>

release Request window screen.

--single-window

release Use a single window (no separate subwindows).

--xr-mode <mode>

release Select XR mode ('default', 'off', 'on').

Debug options

Command

Description