Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Kommandozeilen-Tutorial

Einige Entwickler verwenden gerne und ausgiebig die Befehlszeile. Godot ist so konzipiert, dass es mit ihnen kompatibel ist. Hier sind die Schritte, um vollständig über die Befehlszeile zu arbeiten. Da die Engine fast keine externen Bibliotheken benötigt, sind die Initialisierungszeiten recht kurz, was sie für diesen Workflow geeignet macht.

Bemerkung

Unter Windows und Linux können Sie eine Godot-Binärdatei in einem Terminal ausführen, indem Sie den relativen oder absoluten Pfad angeben.

On macOS, the process is different due to Godot being contained within a .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.

Kommandozeilen-Referenz

Legende

  • Release Verfügbar in Editor-Builds, Debug-Exportvorlagen und Release-Exportvorlagen.

  • Debuggen Nur in Editor-Builds und Debug-Exportvorlagen verfügbar.

  • extended Only available in editor builds, and export templates compiled with disable_path_overrides=false.

  • Editor Nur in Editor-Builds verfügbar.

Beachten Sie, dass unbekannte Kommandozeilenargumente keinerlei Auswirkungen haben. Die Engine wird Sie nicht warnen, wenn Sie ein Kommandozeilenargument verwenden, das für einen bestimmten Build-Typ nicht existiert.

Allgemeine Optionen

Befehl

Beschreibung

-h, --help

Release Zeigt die Liste der Kommandozeilenoptionen an.

--version

Release Zeigt den Versions-String an.

-v, --verbose

Release Ausführlichen stdout-Modus verwenden.

-q, --quiet

Release Stummer Modus, unterdrückt stdout-Meldungen. Fehler werden weiterhin angezeigt.

--no-header

Release Do not print engine version and rendering method header on startup.

Ausführen-Optionen

Befehl

Beschreibung

--, ++

Release Trennzeichen für vom Benutzer bereitgestellte Argumente. Die folgenden Argumente werden nicht von der Engine verwendet, können aber von OS.get_cmdline_user_args() gelesen werden.

-e, --editor

Editor Editor starten, anstatt die Szene ablaufen zu lassen.

-p, --project-manager

Editor Projektmanager starten, auch wenn ein Projekt automatisch erkannt wird.

--recovery-mode

Editor "Start the editor in recovery mode, which disables features that can typically cause startup crashes, such as tool scripts, editor plugins, GDExtension addons, and others.

--debug-server <uri>

Editor Debug-Server des Editors starten (<protocol>://<host/IP>[:<port>], z.B. tcp://127.0.0.1:6007)

--dap-port <port>

Editor Use the specified port for the GDScript Debug Adapter Protocol. Recommended port range [1024, 49151].

--lsp-port <port>

Editor Use the specified port for the GDScript Language Server Protocol. Recommended port range [1024, 49151].

--quit

Release Nach der ersten Iteration beenden.

--quit-after

Release Beenden nach der angegebenen Anzahl von Iterationen. Zum Deaktivieren auf 0 setzen.

-l, --language <locale>

Release Ein bestimmtes Gebietsschema verwenden. <locale> folgt dem Format language_Script_COUNTRY_VARIANT, wobei language ein 2- oder 3-stelliger Sprachcode in Kleinbuchstaben und der Rest optional ist. Siehe Gebietsschema-Codes für weitere Details.

--path <Verzeichnis>

extended Path to a project (<directory> must contain a "project.godot" file).

--scene <path>

extended Path or UID of a scene in the project that should be started.

--main-pack <file>

extended 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-Dateisystem (<host/IP>[:<port>]-Adresse).

--remote-fs-password <password>

Release Passwort für Remote-Dateisystem.

--audio-driver <driver>

Release Audiotreiber. Verwenden Sie zuerst --help, um die Liste der verfügbaren Treiber anzuzeigen.

--display-driver <driver>

Release Display-Treiber (und Rendering-Treiber). Verwenden Sie zuerst --help, um die Liste der verfügbaren Treiber anzuzeigen.

--audio-output-latency <ms>

Release Override audio output latency in milliseconds (default is 15 ms). Lower values make sound playback more reactive but increase CPU usage, and may result in audio cracking if the CPU can't keep up.

--rendering-method <renderer>

Release Renderer name. Valid values are forward_plus, mobile, and gl_compatibility. Requires driver support.

--rendering-driver <driver>

Release Rendering-Treiber (abhängig vom Display-Treiber). Verwenden Sie zuerst --help, um die Liste der verfügbaren Treiber anzuzeigen.

--gpu-index <device_index>

Release Use a specific GPU (only available on the Forward+/Mobile renderers; run with --verbose to get available device list).

--text-driver <driver>

Release Texttreiber (Schriftarten, BiDi, Shaping).

--tablet-driver <driver>

Release Stifttablett-Eingabetreiber.

--headless

Release Aktivieren Sie den Headless-Modus (--display-driver headless --audio-driver Dummy). Nützlich für Server und mit --script.

--log-file

Release Write output/error log to the specified path instead of the default location defined by the project. <file> path should be absolute or relative to the project directory.

--write-movie <file>

Release Führt die Engine so aus, dass ein Film geschrieben wird (normalerweise mit .avi oder .png-Erweiterung). --fixed-fps wird erzwungen, falls aktiviert, kann aber verwendet werden, um die FPS des Films zu ändern. --disable-vsync kann das Schreiben von Filmen beschleunigen, macht aber die Interaktion schwieriger. --quit-after kann verwendet werden, um die Anzahl der zu schreibenden Bilder festzulegen.

Anzeige-Optionen

Befehl

Beschreibung

-f, --fullscreen

Release Vollbildmodus anfordern.

-m, --maximized

Release Maximiertes Fenster anfordern.

-w, --windowed

Release Fenstermodus anfordern.

-t, --always-on-top

Release Fenster anfordern, das immer im Vordergrund ist.

--resolution <W>x<H>

Release Fenster-Auflösung anfordern.

--position <X>,<Y>

Release Fenster-Position anfordern.

--screen <N>

Release Fenster-Bildschirm anfordern.

--single-window

Release Einzelnes Fenster verwenden (keine separaten Unterfenster).

--xr-mode <mode>

Release Select XR mode ("default", "off", "on").

--wid <window_id>

Release Request parented to window.

--accessibility <mode>

Release Select accessibility mode ['auto" (when screen reader is running, default), "always", "disabled'].

Debug-Optionen

Befehl

Beschreibung

-d, --debug

Release Debug (lokaler stdout-Debugger).

-b, --breakpoints

Release Haltepunktliste als source::line Komma-getrennte Paare, keine Leerzeichen (stattdessen %20 verwenden).

--ignore-error-breaks

Release If debugger is connected, prevents sending error breakpoints.

--profiling

Release Profiling im Skript-Debugger einschalten.

--gpu-profile

Release GPU-Profil der Aufgaben anzeigen, die während des Frame-Renderings die meiste Zeit in Anspruch genommen haben.

--gpu-validation

Release Grafik-API Validation Layers zur Fehlersuche aktivieren.

--gpu-abort

Debuggen Abbruch bei GPU-Fehlern (in der Regel Validation Layer-Fehler), kann helfen, das Problem zu erkennen, wenn Ihr System einfriert.

--generate-spirv-debug-info

Debuggen Generate SPIR-V debug information. This allows source-level shader debugging with RenderDoc.

--extra-gpu-memory-tracking

Debuggen Enables additional memory tracking (see class reference for RenderingDevice.get_driver_and_device_memory_report() and linked methods). Currently only implemented for Vulkan. Enabling this feature may cause crashes on some systems due to buggy drivers or bugs in the Vulkan Loader. See https://github.com/godotengine/godot/issues/95967

--accurate-breadcrumbs

Debuggen Force barriers between breadcrumbs. Useful for narrowing down a command causing GPU resets. Currently only implemented for Vulkan.

--remote-debug <uri>

Release Remote-Debug (<protocol>://<host/IP>[:<port>], z.B. tcp://127.0.0.1:6007).

--single-threaded-scene

Release Szenenbaum läuft im Single-Thread-Modus. Sub-Thread-Gruppen sind deaktiviert und laufen auf dem Haupt-Thread.

--debug-collisions

Debuggen Kollisions-Shapes beim Ausführen der Szene anzeigen.

--debug-paths

Debuggen Pfadlinien beim Ausführen der Szene anzeigen.

--debug-navigation

Debuggen Navigationspolygone beim Ausführen der Szene anzeigen.

--debug-avoidance

Debuggen Debug-Visualisierungen zum Navigationsausweichen anzeigen, wenn die Szene ausgeführt wird.

--debug-stringnames

Debuggen Alle StringName-Zuweisungen auf stdout ausgeben, wenn die Engine beendet wird.

--debug-canvas-item-redraw

Debuggen Display a rectangle each time a canvas item requests a redraw (useful to troubleshoot low processor mode).

--max-fps <fps>

Release Set a maximum number of frames per second rendered (can be used to limit power usage). A value of 0 results in unlimited framerate.

--frame-delay <ms>

Release Simulate high CPU load (delay each frame by <ms> milliseconds). Do not use as a FPS limiter; use --max-fps instead.

--time-scale <scale>

Release Zeitskala erzwingen (höhere Werte sind schneller - 1,0 ist normale Geschwindigkeit).

--disable-vsync

Release Deaktivierung der vertikalen Synchronisation erzwingen, auch wenn sie in den Projekteinstellungen aktiviert ist. Die V-Sync-Erzwingung auf Treiberebene wird nicht außer Kraft gesetzt.

--disable-render-loop

Release Rendering-Schleife deaktivieren, so dass das Rendering nur erfolgt, wenn es explizit vom Skript aufgerufen wird.

--disable-crash-handler

Release Crash-Handler deaktivieren, wenn vom Plattformcode unterstützt.

--fixed-fps <fps>

Release Feste Anzahl von Bildern pro Sekunde erzwingen. Mit dieser Einstellung wird die Echtzeitsynchronisation deaktiviert.

--delta-smoothing <enable>

Release Enable or disable frame delta smoothing ("enable", "disable").

--print-fps

Release Frames pro Sekunde auf stdout ausgeben.

--editor-pseudolocalization

Editor Enable pseudolocalization for the editor and the project manager.

Eigenständige Tools

Befehl

Beschreibung

-s, --script <script>

extended Run a script. <script> must be a resource path relative to the project (myscript.gd will be interpreted as res://my_script.gd) or an absolute filesystem path (for example, on Windows: C:/tmp/my_script.gd).

--main-loop <main_loop_name>

extended Run a MainLoop specified by its global class name.

--check-only

extended Only parse for errors and quit (use with --script).

--import

Editor Startet den Editor, wartet darauf, dass Ressourcen importiert werden, und beendet ihn dann. Impliziert --editor und --quit.

--export-release <preset> <path>

Editor Export the project in release mode using the given preset and output path. The preset name should match one defined in "export_presets.cfg". <path> should be absolute or relative to the project directory, and include the filename for the binary (e.g. "builds/game.exe"). The target directory must exist.

--export-debug <preset> <path>

Editor Wie --export-release, verwendet aber die Debug-Vorlage. Impliziert --import.

--export-pack <preset> <path>

Editor Wie --export-release, aber exportiert nur das Spielpaket für die angegebene Vorgabe. Die <path>-Erweiterung bestimmt, ob es im PCK- oder ZIP-Format sein wird. Impliziert --import.

--export-patch <preset> <path>

Editor Export pack with changed files only. See --export-pack description for other considerations.

--patches <paths>

Editor List of patches to use with --export-patch. The list is comma-separated.

--install-android-build-template

Editor Install the Android build template. Used in conjunction with --export-release or --export-debug.

--convert-3to4 [<max_file_kb>] [<max_line_size>]

Editor Projekt von Godot 3.x nach Godot 4.x konvertieren.

--validate-conversion-3to4 [<max_file_kb>] [<max_line_size>]

Editor Zeigt an, welche Elemente bei der Konvertierung eines Projekts von Godot 3.x nach Godot 4.x umbenannt werden.

--doctool [<path>]

Editor Engine-API-Referenz auf den angegebenen <Pfad> im XML-Format ausgeben, Mergen, wenn vorhandene Dateien gefunden werden.

--no-docbase

Editor Dumping der Basistypen verbieten (verwendet mit --doctool).

--gdextension-docs

Editor Rather than dumping the engine API, generate API reference from all the GDExtensions loaded in the current project (used with --doctool).

--gdscript-docs <path>

Editor Rather than dumping the engine API, generate API reference from the inline documentation in the GDScript files found in <path> (used with --doctool).

--build-solutions

Editor Bauen der Skripting-Solutions (z.B. für C# Projekte). Impliziert --editor und erfordert ein gültiges Projekt zum Bearbeiten.

--dump-gdextension-interface

Editor Generate GDExtension header file "gdextension_interface.h" in the current folder. This file is the base file required to implement a GDExtension.

--dump-gdextension-interface-json

Editor Generate a JSON dump of the GDExtension interface named "gdextension_interface.json" in the current folder.

--dump-extension-api

Editor Generate JSON dump of the Godot API for GDExtension bindings named "extension_api.json" in the current folder.

--dump-extension-api-with-docs

Editor Generate JSON dump of the Godot API like the previous option, but including documentation.

--validate-extension-api <path>

Editor Erweiterungs-API-Datei validieren, die (mit der obigen Option) aus einer früheren Version der Engine kopiert wurde, um die API-Kompatibilität sicherzustellen. Wenn Inkompatibilitäten oder Fehler entdeckt werden, ist der Rückgabewert ungleich Null.

--benchmark

Editor Benchmarking der Laufzeit und Ausgabe auf der Konsole.

--benchmark-file <path>

Editor Benchmarking der Laufzeit und Speichern in einer angegebenen Datei im JSON-Format. Der Pfad sollte absolut sein.

--test [--help]

Editor Run unit tests (requires compiling the engine with tests=yes). Use --test --help for more information.

Pfad

Es wird empfohlen, die Godot-Editor-Binärdatei in der PATH-Umgebungsvariablen zu platzieren, so dass sie leicht von jedem Ort aus durch Eingabe von godot ausgeführt werden kann. Unter Linux können Sie dies tun, indem Sie die Godot-Binärdatei in /usr/local/bin ablegen und sicherstellen, dass sie godot heißt (Groß- und Kleinschreibung beachten).

Um dies unter Windows oder macOS einfach zu erreichen, können Sie Godot mit Scoop (unter Windows) oder Homebrew (unter macOS) installieren. Dadurch wird die installierte Kopie von Godot automatisch im PATH verfügbar gemacht:

# Add "Extras" bucket
scoop bucket add extras

# Standard editor:
scoop install godot

# Editor with C# support (will be available as `godot-mono` in `PATH`):
scoop install godot-mono

Projektpfad setzen

Je nachdem, wo sich Ihre Godot-Binärdatei befindet und welches Ihr aktuelles Arbeitsverzeichnis ist, müssen Sie möglicherweise den Pfad zu Ihrem Projekt festlegen, damit einer der folgenden Befehle korrekt funktioniert.

Beim Starten des Editors kann der Pfad zur project.godot-Datei des Projekts entweder wie folgt als erstes Argument eingetragen werden:

godot path_to_your_project/project.godot [other] [commands] [and] [args]

Für alle Befehle kann dies mit dem Argument --path erfolgen:

godot --path path_to_your_project [other] [commands] [and] [args]

Zum Beispiel, der vollständige Befehl zum exportieren Ihres Spiels (wie unten beschrieben) sieht in etwa so aus:

godot --headless --path path_to_your_project --export-release my_export_preset_name game.exe

Wenn Sie aus einem Unterverzeichnis Ihres Projekts starten, verwenden Sie das Argument --upwards, damit Godot automatisch die Datei project.godot findet, indem es die übergeordneten Verzeichnisse rekursiv durchsucht.

Zum Beispiel könnte die Ausführung einer Szene (wie unten erklärt) in einem Unterverzeichnis wie folgt aussehen, wenn sich Ihr Arbeitsverzeichnis im selben Pfad befindet:

godot --upwards nested_scene.tscn

Projekt erzeugen

Ein Projekt kann von der Kommandozeile aus erstellt werden, indem man in der Shell zum gewünschten Ort navigiert und eine project.godot-Datei erstellt.

mkdir newgame
cd newgame
touch project.godot

Das Projekt kann nun mit Godot geöffnet werden.

Editor starten

Die Ausführung des Editors erfolgt durch die Ausführung von Godot mit dem Flag -e. Dies muss aus dem Projektverzeichnis heraus geschehen oder durch Setzen des Projektpfades wie oben beschrieben, sonst wird der Befehl ignoriert und der Projektmanager erscheint.

godot -e

Wenn der vollständige Pfad zur Datei project.godot übergeben wird, kann das -e-Flag weggelassen werden.

Wenn eine Szene erstellt und gespeichert wurde, kann sie später bearbeitet werden, indem derselbe Code mit dieser Szene als Argument ausgeführt wird.

godot -e scene.tscn

Szene löschen

Godot ist mit wird Ihrem Dateisystem zuliebe keine zusätzlichen Metadaten-Dateien erstellen. Verwenden Sie rm, um eine Szenendatei zu löschen. Stellen Sie sicher, dass nichts auf diese Szene verweist. Andernfalls wird beim Öffnen des Projekts ein Fehler ausgelöst.

rm scene.tscn

Spiel starten

Um das Spiel zu starten, führen Sie Godot im Projektverzeichnis oder mit dem Projektpfad aus, wie oben erklärt.

godot

Beachten Sie, dass die Übergabe der Datei project.godot immer den Editor startet, anstatt das Spiel zu starten.

Wenn eine spezielle Szene getestet werden soll, fügen Sie diese Szene in die Eingabeaufforderung ein.

godot scene.tscn

Debugging

Das Auffinden von Fehlern in der Kommandozeile kann eine schwierige Aufgabe sein, da sie schnell durchlaufen. Zu diesem Zweck wird ein Kommandozeilen-Debugger durch Hinzufügen von -d bereitgestellt. Er funktioniert entweder für das Spiel oder eine einzelne Szene.

godot -d
godot -d scene.tscn

Exportieren

Das Exportieren des Projekts von der Kommandozeile aus wird ebenfalls unterstützt. Dies ist besonders nützlich für die Continuous Integration.

Bemerkung

Die Verwendung des Kommandozeilenarguments --headless ist erforderlich auf Plattformen, die keinen GPU-Zugriff haben (z.B. Continuous Integration). Auf Plattformen mit GPU-Zugriff verhindert --headless, dass ein Fenster erscheint, während das Projekt exportiert wird.

# `godot` must be a Godot editor binary, not an export template.
# Also, export templates must be installed for the editor
# (or a valid custom export template must be defined in the export preset).
godot --headless --export-release "Linux/X11" /var/builds/project
godot --headless --export-release Android /var/builds/project.apk

Der Name der Vorgabe muss mit dem Namen einer Exportvorgabe übereinstimmen, die in der Datei export_presets.cfg des Projekts definiert ist. Wenn der Vorgabenname Leerzeichen oder Sonderzeichen enthält (z. B. "Windows Desktop"), muss er mit Anführungszeichen umgeben werden.

Um eine Debug-Version des Spiels zu exportieren, verwenden Sie den Schalter --export-debug anstelle von --export-release. Die Parameter und die Verwendung sind die gleichen.

Um nur eine PCK-Datei zu exportieren, verwenden Sie die Option --export-pack, gefolgt von dem Vorgabenamen und dem Ausgabepfad, mit der Dateierweiterung, anstelle von --export-release oder --export-debug. Die Erweiterung des Ausgabepfades bestimmt das Format des Pakets, entweder PCK oder ZIP.

Warnung

Wenn ein relativer Pfad als Pfad für --export-release, --export-debug oder --export-pack angegeben wird, ist der Pfad relativ zu dem Verzeichnis, das die Datei project.godot enthält, nicht relativ zum aktuellen Arbeitsverzeichnis.

Ein Skript ausführen

Es ist möglich, ein .gd-Skript über die Befehlszeile auszuführen. Diese Funktion ist besonders bei großen Projekten nützlich, z.B. für die Batch-Konvertierung von Assets oder den benutzerdefinierten Import/Export.

Das Skript muss von SceneTree oder MainLoop erben.

Hier ist ein Beispiel sayhello.gd, das zeigt, wie es funktioniert:

#!/usr/bin/env -S godot -s
extends SceneTree

func _init():
    print("Hello!")
    quit()

Und so wird es ausgeführt:

# Prints "Hello!" to standard output.
godot -s sayhello.gd

Wenn kein project.godot im Pfad existiert, wird der aktuelle Pfad als das aktuelle Arbeitsverzeichnis angenommen (es sei denn, --path ist angegeben).

The script path will be interpreted as a resource path relative to the project, here res://sayhello.gd. You can also use an absolute filesystem path instead, which is useful if the script is located outside of the project directory.

Die erste Zeile von sayhello.gd oben wird allgemein als shebang bezeichnet. Wenn sich die Godot-Binärdatei in Ihrem PATH als godot befindet, können Sie das Skript in modernen Linux-Distributionen sowie unter MacOS wie folgt ausführen:

# Mark script as executable.
chmod +x sayhello.gd
# Prints "Hello!" to standard output.
./sayhello.gd

Wenn das oben genannte unter Ihrer aktuellen Linux- oder MacOS-Version nicht funktioniert, können Sie den "Shebang" immer wie folgt direkt von Godot ausführen lassen:

#!/usr/bin/godot -s