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.

Upgrading from Godot 4.3 to Godot 4.4

For most games and apps made with 4.3 it should be relatively safe to migrate to 4.4. This page intends to cover everything you need to pay attention to when migrating your project.

Breaking changes

If you are migrating from 4.3 to 4.4, the breaking changes listed here might affect you. Changes are grouped by areas/systems.

Este artigo indica se cada alteração drástica afeta o GDScript e se a alteração drástica do C# é compatível com o binário ou compatível com o código-fonte:

  • Binary compatible - Existing binaries will load and execute successfully without recompilation, and the run-time behavior won't change.

  • Compatível com a fonte - O código fonte será compilado com sucesso, sem alterações, ao atualizar o Godot.

Componentes Principais

Mudança

GDScript Compatible

Compatível com C# Binário

Compatível com fonte C#

Introduzido

FileAccess

Method open_encrypted adds a new iv optional parameter

✔️

✔️

✔️

GH-98918

Method store_8 changes return type from void to bool

✔️

✔️

GH-78289

Method store_16 changes return type from void to bool

✔️

✔️

GH-78289

Method store_32 changes return type from void to bool

✔️

✔️

GH-78289

Method store_64 changes return type from void to bool

✔️

✔️

GH-78289

Method store_buffer changes return type from void to bool

✔️

✔️

GH-78289

Method store_csv_line changes return type from void to bool

✔️

✔️

GH-78289

Method store_double changes return type from void to bool

✔️

✔️

GH-78289

Method store_float changes return type from void to bool

✔️

✔️

GH-78289

Method store_half changes return type from void to bool

✔️

✔️

GH-78289

Method store_line changes return type from void to bool

✔️

✔️

GH-78289

Method store_pascal_string changes return type from void to bool

✔️

✔️

GH-78289

Method store_real changes return type from void to bool

✔️

✔️

GH-78289

Method store_string changes return type from void to bool

✔️

✔️

GH-78289

Method store_var changes return type from void to bool

✔️

✔️

GH-78289

OS

Method execute_with_pipe adds a new blocking optional parameter

✔️

✔️

✔️

GH-94434

Method read_string_from_stdin adds a new buffer_size parameter [1]

✔️

✔️

GH-91201

RegEx

Method compile adds a new show_error optional parameter

✔️

✔️

✔️

GH-95212

Method create_from_string adds a new show_error optional parameter

✔️

✔️

✔️

GH-95212

Semaphore

Method post adds a new count optional parameter

✔️

✔️

✔️

GH-93605

TranslationServer

Method standardize_locale adds a new add_defaults optional parameter

✔️

✔️

✔️

GH-98972

Export annotations

Aviso

O comportamento de @export_file mudou no Godot 4.4. Ao atribuir um novo valor a partir do Inspetor, o caminho agora é armazenado e retornado como uma referência uid:// em vez do caminho tradicional res:// (GH-97912). Esta é uma mudança drástica e pode causar problemas se você estiver esperando caminhos baseados em res:// em scripts ou arquivos serializados.

Por exemplo, arrays exportados de arquivos agora podem conter uma mistura de caminhos uid:// e res://, especialmente se eles foram parcialmente editados no Inspetor.

Em 4.4, a única maneira de manter o formato res:// é editar manualmente os arquivos .tscn ou .tres em um editor de texto. A partir do Godot 4.5, uma nova anotação @export_file_path pode ser usada para reter explicitamente o comportamento antigo e exportar os caminhos res:// brutos.

GUI nodes

Mudança

GDScript Compatible

Compatível com C# Binário

Compatível com fonte C#

Introduzido

Texto Formatado

Method push_meta adds a new tooltip optional parameter

✔️

✔️

✔️

GH-99481

Method set_table_column_expand adds a new shrink optional parameter

✔️

✔️

✔️

GH-101482

GraphEdit

Method connect_node adds a new keep_alive optional parameter

✔️

✔️

✔️

GH-97449

Signal frame_rect_changed changes new_rect parameter type from Vector2 to Rect2

GH-102796

Física

Mudança

GDScript Compatible

Compatível com C# Binário

Compatível com fonte C#

Introduzido

SoftBody3D

Method set_point_pinned adds a new insert_at optional parameter

✔️

✔️

✔️

GH-94684

Renderização

Mudança

GDScript Compatible

Compatível com C# Binário

Compatível com fonte C#

Introduzido

CPUParticles2D

Method restart adds a new keep_seed optional parameter

✔️

✔️

✔️

GH-92089

CPUParticles3D

Method restart adds a new keep_seed optional parameter

✔️

✔️

✔️

GH-92089

GPUParticles2D

Method restart adds a new keep_seed optional parameter

✔️

✔️

✔️

GH-92089

GPUParticles3D

Method restart adds a new keep_seed optional parameter

✔️

✔️

✔️

GH-92089

Dispositivo de Renderização

Method draw_list_begin adds a new breadcrumb optional parameter

✔️

✔️

✔️

GH-90993

Method draw_list_begin removes many parameters

✔️

✔️

GH-98670

Method index_buffer_create adds a new enable_device_address optional parameter

✔️

✔️

✔️

GH-100062

Method uniform_buffer_create adds a new enable_device_address optional parameter

✔️

✔️

✔️

GH-100062

Method vertex_buffer_create adds a new enable_device_address optional parameter

✔️

✔️

✔️

GH-100062

Dispositivo de Servidor

Method multimesh_allocate_data adds a new use_indirect optional parameter

✔️

✔️

✔️

GH-99455

Shader

Method get_default_texture_parameter changes return type from Texture2D to Texture

✔️

GH-95126

Method set_default_texture_parameter changes texture parameter type from Texture2D to Texture

✔️

✔️

GH-95126

VisualShaderNodeCubemap

Property cube_map changes type from Cubemap to TextureLayered

✔️

GH-95126

VisualShaderNodeTexture2DArray

Property texture_array changes type from Texture2DArray to TextureLayered

✔️

GH-95126

Nota

In C#, the enum RenderingDevice.StorageBufferUsage breaks compatibility because of the way the bindings generator detects the enum prefix. New members where added in GH-100062 to the enum that caused the enum members to be renamed.

Plugins do editor

Mudança

GDScript Compatible

Compatível com C# Binário

Compatível com fonte C#

Introduzido

Interface do Editor

Method open_scene_from_path adds a new set_inherited optional parameter

✔️

✔️

✔️

GH-90057

Method popup_node_selector adds a new current_value optional parameter

✔️

✔️

✔️

GH-94323

Method popup_property_selector adds a new current_value optional parameter

✔️

✔️

✔️

GH-94323

EditorSceneFormatImporter

Method _get_import_flags removed

GH-101531

EditorTranslationParserPlugin

O método _parse_file altera o tipo de retorno para Array e remove os parâmetros msgids e msgids_context_plural

GH-99297

Nota

O método _get_import_flags nunca foi usado pela engine. Ele foi removido apesar da quebra de compatibilidade, já que não havia como os usuários dependerem disso para afetar o comportamento da engine.

Behavior changes

Componentes Principais

Nota

O recurso Curve agora aplica seu intervalo de valores, portanto, min_value e max_value precisam ser alterados se algum dos pontos estiver fora do intervalo padrão [0, 1].

Renderização

Nota

O nó de shader VisualShaderNodeVec4Constant teve seu tipo de entrada alterado para Vector4. Os usuários precisam recriar os valores em suas constantes.

CSG

Nota

A implementação de CSG agora utiliza a biblioteca Manifold de Emmett Lalish (GH-94321). A nova implementação é mais consistente com as definições de manifold e corrige vários bugs e problemas de estabilidade. Como resultado, malhas não-manifold não são mais suportadas. Você pode usar MeshInstance3D para renderizar geometria não-manifold, como quads ou planos.

Android

Nota

Os eventos de sensores no Android não são mais habilitados por padrão (GH-94799). Projetos que utilizam eventos de sensores podem habilitá-los conforme necessário nas Configurações do Projeto, em Dispositivos de Entrada > Sensores.