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.

Cambios importantes

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 artículo indica si cada cambio significativo afecta a GDScript y si el cambio significativo en C# es compatible binario o compatible con el código fuente:

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

  • Compatible con el código fuente: el código fuente se compila correctamente sin ningún cambio al actualizar Godot.

Núcleo

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

Acceso a archivos

Method open_encrypted adds a new iv optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

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

✔️

|✔️ compatible|

|✔️ compatible|

GH-94434

Method read_string_from_stdin adds a new buffer_size parameter [1]

|✔️ compatible|

|✔️ compatible|

GH-91201

RegEx

Method compile adds a new show_error optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-95212

Method create_from_string adds a new show_error optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-95212

Semaphore

Method post adds a new count optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-93605

TranslationServer

Method standardize_locale adds a new add_defaults optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-98972

Export annotations

Advertencia

El comportamiento de @export_file cambió en Godot 4.4. Al asignar un nuevo valor desde el Inspector, la ruta ahora se almacena y se devuelve como una referencia uid:// en lugar de la ruta res:// tradicional (GH-97912). Este es un cambio importante y puede causar problemas si espera rutas basadas en res:// en scripts o archivos serializados.

Por ejemplo, las matrices de archivos exportadas ahora pueden contener una combinación de rutas uid:// y res://, especialmente si se editaron parcialmente en el Inspector.

En la versión 4.4, la única forma de conservar el formato res:// es editar manualmente los archivos .tscn o .tres en un editor de texto. A partir de Godot 4.5, se puede usar la nueva anotación @export_file_path para conservar explícitamente el comportamiento anterior y exportar rutas res:// sin formato.

Nodos GUI

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

RichTextLabel

El método push_meta añade un nuevo parámetro opcional tooltip

✔️

|✔️ compatible|

|✔️ compatible|

GH-99481

El método set_table_column_expand agrega un nuevo parámetro opcional shrink

✔️

|✔️ compatible|

|✔️ compatible|

GH-101482

GraphEdit

El método connect_node agrega un nuevo parámetro opcional keep_alive

✔️

|✔️ compatible|

|✔️ compatible|

GH-97449

La señal frame_rect_changed cambia el tipo de parámetro new_rect de Vector2 a Rect2

GH-102796

Física

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

SoftBody3D

Method set_point_pinned adds a new insert_at optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-94684

Renderizado

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

CPUParticles2D

Method restart adds a new keep_seed optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-92089

CPUParticles3D

Method restart adds a new keep_seed optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-92089

GPUParticles2D

Method restart adds a new keep_seed optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-92089

GPUParticles3D

Method restart adds a new keep_seed optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-92089

RenderingDevice

Method draw_list_begin adds a new breadcrumb optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-90993

Method draw_list_begin removes many parameters

|✔️ compatible|

|✔️ compatible|

GH-98670

Method index_buffer_create adds a new enable_device_address optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-100062

Method uniform_buffer_create adds a new enable_device_address optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-100062

Method vertex_buffer_create adds a new enable_device_address optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-100062

RenderingServer

Method multimesh_allocate_data adds a new use_indirect optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

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 del editor

Cambio

Compatibilidad con GDScript

Compatible con binarios C#

Compatible con código fuente C#

Introducido

EditorInterface

Method open_scene_from_path adds a new set_inherited optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-90057

Method popup_node_selector adds a new current_value optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-94323

Method popup_property_selector adds a new current_value optional parameter

✔️

|✔️ compatible|

|✔️ compatible|

GH-94323

EditorSceneFormatImporter

Method _get_import_flags removed

GH-101531

EditorTranslationParserPlugin

El método _parse_file cambia el tipo de retorno a Array y elimina los parámetros msgids y msgids_context_plural

GH-99297

Nota

El motor nunca utilizó el método _get_import_flags. Se eliminó a pesar de la falla de compatibilidad, ya que los usuarios no podían confiar en que afectara el comportamiento del motor.

Cambios de comportamiento

Núcleo

Nota

El recurso Curve ahora aplica su rango de valores, por lo que min_value y max_value deben cambiarse si alguno de los puntos queda fuera del rango predeterminado [0, 1].

Renderizado

Nota

Se cambió el tipo de entrada del nodo sombreador VisualShaderNodeVec4Constant a Vector4. Los usuarios deben recrear los valores de sus constantes.

CSG

Nota

La implementación de CSG ahora utiliza la biblioteca Manifold de Emmett Lalish (GH-94321). Esta nueva implementación es más consistente con las definiciones de manifold y corrige varios errores y problemas de estabilidad. Como resultado, ya no se admiten mallas no manifold. Puede usar MeshInstance3D para renderizar geometría no manifold, como cuadriláteros o planos.

Android

Nota

Los eventos de sensor de Android ya no están habilitados de forma predeterminada (GH-94799). Los proyectos que usan eventos de sensor pueden habilitarlos según sea necesario en la configuración del proyecto, en Dispositivos de entrada > Sensores.