Tutorial de linha de comando

Alguns desenvolvedores gostam de usar a linha de comando extensivamente. Godot é projetado para funcionar com elas, então aqui estão os passos para trabalhar inteiramente a partir da linha de comando. Como a engine depende de quase nenhuma biblioteca externa, os tempos de inicialização são muito rápidos, o que o torna adequado para esse fluxo de trabalho.

Nota

No Windows e Linux, você pode rodar um binário do Godot em um terminal especificando o seu caminho absoluto ou relativo.

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.

Referência para linha de comando

Legend

  • release Disponível em compilações de editor, modelos de exportação de depuração e modelos de exportação de versão.

  • |depurar| Disponível somente em compilações do editor e modelos de exportação de depuração.

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

  • editor Apenas disponível em compilações de editores.

Note que os argumentos de linha de comando desconhecidos não têm nenhum efeito. O motor não vai avisá-lo ao usar um argumento de linha de comando que não existe com um determinado tipo de compilação.

Opções gerais

Comando

Descrição

-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.

--no-header

release Não exibir a versão da engine e o cabeçalho do método de renderização ao iniciar.

Opções de execução

Comando

Descrição

--, ++

release Separador para argumentos fornecidos pelo usuário. Os argumentos seguintes não são usados pelo motor, mas podem ser lidos através de OS.get_cmdline_user_args().

-e, --editor

editor Inicia o editor em vez de executar a cena.

-p, --project-manager

editor Inicie o Gerenciador de Projetos, mesmo que um projeto seja detectado automaticamente.

--recovery-mode

editor Inicia o editor em modo de recuperação, que desativa recursos que normalmente podem causar falhas na inicialização, como scripts de ferramenta, plugins do editor, complementos GDExtension e outros.

--debug-server <uri>

editor Inicia o servidor de depuração do editor (<protocol>://<host/IP>[:<port>], por exemplo, tcp://127.0.0.1:6007)

--dap-port <port>

editor Usa a porta especificada para o Protocolo de Depuração do GDScript (Debug Adapter Protocol). Faixa de portas recomendada: [1024, 49151].

--lsp-port <port>

editor Usa a porta especificada para o Protocolo de Servidor de Linguagem do GDScript (Language Server Protocol). Faixa de portas recomendada: [1024, 49151].

--quit

release Quit after the first iteration.

--quit-after

release Sai após o número de iterações especificado. Defina como 0 para desativar.

-l, --language <locale>

release Usa uma localização (locale) específico. <locale> segue o formato language_Script_COUNTRY_VARIANT, onde "language" é um código de idioma de 2 ou 3 letras em minúsculas e o restante é opcional. Veja Locale codes para mais detalhes.

--path <diretório>

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 <arquivo>

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

--render-thread <modo>

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

--remote-fs <endereço>

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

--remote-fs-password <password>

release Senha para Arquivos remoto.

--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.

--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 Nome do renderizador. Requer suporte de driver.

--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 uma GPU específica (execute com --verbose para obter a lista de dispositivos disponíveis).

--text-driver <driver>

release Driver de texto (fontes, BiDi, modelagem).

--tablet-driver <driver>

release Driver de entrada para mesa digitalizadora.

--headless

release Habilita o modo headless (--display-driver headless --audio-driver Dummy). Útil para servidores e com --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 Execute a engine de forma que um filme seja gravado (geralmente com extensão .avi ou .png). --fixed-fps é forçado quando habilitado, mas pode ser usado para alterar o FPS do filme. --disable-vsync pode acelerar a gravação do filme, mas dificulta a interação. --quit-after pode ser usado para especificar o número de quadros a serem gravados.

Opções de exibição

Comando

Descrição

-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 <largura>x<altura>

release Request window resolution.

--position <X>,<Y>

release Request window position.

--screen <N>

release Request window screen.

--single-window

release Use uma única janela (sem subjanelas separadas).

--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'].

Opções de Depuração

Comando

Descrição

-d, --debug

release Debug (local stdout debugger).

-b, --breakpoints

release Breakpoint list as source::line comma-separated pairs, no spaces (use %20 instead).

--ignore-error-breaks

release Se o depurador estiver conectado, impede o envio de breakpoints de erro.

--profiling

release Enable profiling in the script debugger.

--gpu-profile

release Exibe um perfil de desempenho da GPU das tarefas que mais demoraram durante a renderização do quadro.

--gpu-validation

release Habilita as camadas de validação da API gráfica validation layers para depuração.

--gpu-abort

|depurar| Abortar em erros de GPU (geralmente erros da camada de validação) pode ajudar a ver o problema se o seu sistema travar.

--generate-spirv-debug-info

debug Gera informações de depuração SPIR-V. Isso permite a depuração de shaders em nível de código-fonte com o RenderDoc.

--extra-gpu-memory-tracking

debug Habilita o rastreamento adicional de memória (veja a referência da classe para RenderingDevice.get_driver_and_device_memory_report() e métodos relacionados). Atualmente, isso só está implementado para Vulkan. Ativar esse recurso pode causar falhas em alguns sistemas devido a drivers com bugs ou problemas no Vulkan Loader. Veja https://github.com/godotengine/godot/issues/95967

--accurate-breadcrumbs

debug Força barreiras entre breadcrumbs. Útil para identificar um comando que esteja causando reinicializações da GPU. Atualmente, isso só está implementado para Vulkan.

--remote-debug <uri>

release Depuração remota (<protocol>://<host/IP>[:<port>], por exemplo tcp://127.0.0.1:6007).

--single-threaded-scene

release A árvore de cenas é executada em modo de thread única. Os grupos de subthreads são desabilitados e executados na thread principal.

--debug-collisions

debug Show collision shapes when running the scene.

--debug-paths

debug Show path lines when running the scene.

--debug-navigation

debug Show navigation polygons when running the scene.

--debug-avoidance

debug Show navigation avoidance debug visuals when running the scene.

--debug-stringnames

debug Imprime todas as alocações de StringName no stdout quando a engine é encerrada.

--debug-canvas-item-redraw

debug Exibe um retângulo sempre que um item de canvas solicita uma atualização (útil para diagnosticar o modo de baixo uso de processador).

--max-fps <fps>

release Define um número máximo de quadros por segundo renderizados (pode ser usado para limitar o consumo de energia). Um valor de 0 resulta em taxa de quadros ilimitada.

--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 <escala>

release Force time scale (higher values are faster, 1.0 is normal speed).

--disable-vsync

release Força a desativação da sincronização vertical, mesmo se habilitada nas configurações do projeto. Não substitui a aplicação de V-Sync no nível do driver.

--disable-render-loop

release Disable render loop so rendering only occurs when called explicitly from script.

--disable-crash-handler

release Disable crash handler when supported by the platform code.

--fixed-fps <fps>

release Force a fixed number of frames per second. This setting disables real-time synchronization.

--delta-smoothing <enable>

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

--print-fps

release Print the frames per second to the stdout.

--editor-pseudolocalization

editor Habilita a pseudolocalização para o editor e o gerenciador de projetos.

Ferramentas independentes

Comando

Descrição

-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 Inicia o editor, aguarda a importação de quaisquer recursos e, em seguida, encerra. Implica --editor e --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 Semelhante ao --export-release, mas usa o template de depuração. Implica --import.

--export-pack <preset> <caminho>

editor Like --export-release, but only export the game pack for the given preset. The <path> extension determines whether it will be in PCK or ZIP format. Implies --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 Converta o projeto de Godot 3.x para Godot 4.x.

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

editor Mostrar que elementos serão renomeados ao converter o projeto de Godot 3.x para Godot 4.x.

--doctool [<path>]

editor Dump the engine API reference to the given <path> in XML format, merging if existing files are found.

--no-docbase

editor Impede a geração dos tipos base (usado com --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 Compila as soluções de script (por exemplo, para projetos em C#). Implica --editor e requer um projeto válido para editar.

--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 Valida um arquivo de API de extensão despejado (com a opção acima) de uma versão anterior da engine para garantir a compatibilidade da API. Se incompatibilidades ou erros forem detectados, o código de retorno será diferente de zero.

--benchmark

editor Faça uma avaliação comparativa do tempo de execução e imprima-o no console.

--benchmark-file <path>

editor Faça um benchmark do tempo de execução e salve-o em um arquivo específico no formato JSON. O caminho deve ser absoluto.

--test [--help]

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

Caminho

It is recommended to place your Godot editor binary in your PATH environment variable, so it can be executed easily from any place by typing godot. You can do so on Linux by placing the Godot binary in /usr/local/bin and making sure it is called godot (case-sensitive).

Para fazer isso facilmente no Windows ou macOS, você pode instalar o Godot usando Scoop (no Windows) ou Homebrew (no macOS). Isso tornará automaticamente a cópia do Godot instalada disponível no PATH:

# 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

Definindo o caminho do projeto

Dependendo de onde seu binário Godot está localizado e qual é seu diretório de trabalho atual, talvez seja necessário definir o caminho para o seu projeto para que qualquer um dos comandos a seguir funcione corretamente.

When running the editor, this can be done by giving the path to the project.godot file of your project as either the first argument, like this:

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

For all commands, this can be done by using the --path argument:

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

Por exemplo, o comando completo para exportar seu jogo (conforme explicado abaixo) pode ser assim:

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

Ao iniciar a partir de um subdiretório do seu projeto, use o argumento --upwards para que o Godot encontre automaticamente o arquivo project.godot pesquisando recursivamente nos diretórios pais.

Por exemplo, executar uma cena (conforme explicado abaixo) aninhada em um subdiretório pode parecer assim quando seu diretório de trabalho estiver no mesmo caminho:

godot --upwards nested_scene.tscn

Criando um projeto

Creating a project from the command line can be done by navigating the shell to the desired place and making a project.godot file.

mkdir newgame
cd newgame
touch project.godot

O projeto agora pode ser aberto com Godot.

Executando o editor

Running the editor is done by executing Godot with the -e flag. This must be done from within the project directory or by setting the project path as explained above, otherwise the command is ignored and the Project Manager appears.

godot -e

Ao passar o caminho completo para o arquivo project.godot, o sinalizador (flag) -e pode ser omitido.

Se uma cena foi criada e salva, ela pode ser editada posteriormente, executando o mesmo código com aquela cena como argumento.

godot -e scene.tscn

Apagando uma cena

Godot is friends with your filesystem and will not create extra metadata files. Use rm to erase a scene file. Make sure nothing references that scene. Otherwise, an error will be thrown upon opening the project.

rm scene.tscn

Executando o jogo

To run the game, execute Godot within the project directory or with the project path as explained above.

godot

Observe que passar o arquivo project.godot sempre executará o editor em vez de executar o jogo.

Quando uma cena específica precisa ser testada, passe essa cena para a linha de comando.

godot scene.tscn

Depuração

Catching errors in the command line can be a difficult task because they scroll quickly. For this, a command line debugger is provided by adding -d. It works for running either the game or a single scene.

godot -d
godot -d scene.tscn

Exportando

Exporting the project from the command line is also supported. This is especially useful for continuous integration setups.

Nota

O uso do argumento de linha de comando --headless é obrigatório em plataformas que não têm acesso à GPU (como integração contínua). Em plataformas com acesso à GPU, --headless impede que uma janela seja aberta durante a exportação do projeto.

# `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

O nome do preset deve corresponder ao nome de um preset de exportação definido no arquivo export_presets.cfg do projeto. Se o nome da predefinição contiver espaços ou caracteres especiais (como "Windows Desktop"), ele deve ser colocado entre aspas.

To export a debug version of the game, use the --export-debug switch instead of --export-release. Their parameters and usage are the same.

To export only a PCK file, use the --export-pack option followed by the preset name and output path, with the file extension, instead of --export-release or --export-debug. The output path extension determines the package's format, either PCK or ZIP.

Aviso

When specifying a relative path as the path for --export-release, --export-debug or --export-pack, the path will be relative to the directory containing the project.godot file, not relative to the current working directory.

Executando um script

It is possible to run a .gd script from the command line. This feature is especially useful in large projects, e.g. for batch conversion of assets or custom import/export.

O script deve herdar de SceneTree ou MainLoop.

Here is an example sayhello.gd, showing how it works:

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

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

E como executá-lo:

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

Se nenhum project.godot existir no caminho, o caminho atual é assumido como o diretório de trabalho atual (a menos que -path seja especificado).

O caminho do script será interpretado como um caminho de recurso relativo ao projeto, neste caso, res://sayhello.gd. Você também pode usar um caminho absoluto do sistema de arquivos, o que é útil se o script estiver localizado fora do diretório do projeto.

A primeira linha de sayhello.gd acima é comumente referida como shebang. Se o binário Godot estiver em seu PATH como godot, ele permite que você execute o script da seguinte forma em distribuições Linux modernas, bem como no macOS:

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

Se o acima não funcionar em sua versão atual do Linux ou macOS, você sempre pode fazer com que o shebang execute Godot diretamente de onde está localizado da seguinte maneira:

#!/usr/bin/godot -s