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

Breaking changes

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

This article indicates whether each breaking change affects GDScript and whetherthe C# breaking change isbinary compatible orsource compatible:

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

  • Source compatible - Source code will compile successfully without changes whenupgrading Godot.

Core

Change

GDScript Compatible

C# Binary Compatible

C# Source Compatible

Introduced

FileAccess

Methodopen_encrypted adds a newiv optional parameter

✔️

✔️

✔️

GH-98918

Methodstore_8 changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_16 changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_32 changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_64 changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_buffer changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_csv_line changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_double changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_float changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_half changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_line changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_pascal_string changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_real changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_string changes return type fromvoid tobool

✔️

✔️

GH-78289

Methodstore_var changes return type fromvoid tobool

✔️

✔️

GH-78289

OS

Methodexecute_with_pipe adds a newblocking optional parameter

✔️

✔️

✔️

GH-94434

Methodread_string_from_stdin adds a newbuffer_size parameter[1]

✔️

✔️

GH-91201

RegEx

Methodcompile adds a newshow_error optional parameter

✔️

✔️

✔️

GH-95212

Methodcreate_from_string adds a newshow_error optional parameter

✔️

✔️

✔️

GH-95212

Semaphore

Methodpost adds a newcount optional parameter

✔️

✔️

✔️

GH-93605

TranslationServer

Methodstandardize_locale adds a newadd_defaults optional parameter

✔️

✔️

✔️

GH-98972

[1]

Default buffer size in 4.3 is1024.

GUI nodes

Change

GDScript Compatible

C# Binary Compatible

C# Source Compatible

Introduced

RichTextLabel

Methodpush_meta adds a newtooltip optional parameter

✔️

✔️

✔️

GH-99481

Methodset_table_column_expand adds a newshrink optional parameter

✔️

✔️

✔️

GH-101482

GraphEdit

Methodconnect_node adds a newkeep_alive optional parameter

✔️

✔️

✔️

GH-97449

Signalframe_rect_changed changesnew_rect parameter type fromVector2 toRect2

GH-102796

Physics

Change

GDScript Compatible

C# Binary Compatible

C# Source Compatible

Introduced

SoftBody3D

Methodset_point_pinned adds a newinsert_at optional parameter

✔️

✔️

✔️

GH-94684

Rendering

Change

GDScript Compatible

C# Binary Compatible

C# Source Compatible

Introduced

CPUParticles2D

Methodrestart adds a newkeep_seed optional parameter

✔️

✔️

✔️

GH-92089

CPUParticles3D

Methodrestart adds a newkeep_seed optional parameter

✔️

✔️

✔️

GH-92089

GPUParticles2D

Methodrestart adds a newkeep_seed optional parameter

✔️

✔️

✔️

GH-92089

GPUParticles3D

Methodrestart adds a newkeep_seed optional parameter

✔️

✔️

✔️

GH-92089

RenderingDevice

Methoddraw_list_begin adds a newbreadcrumb optional parameter

✔️

✔️

✔️

GH-90993

Methoddraw_list_begin removes many parameters

✔️

✔️

GH-98670

Methodindex_buffer_create adds a newenable_device_address optional parameter

✔️

✔️

✔️

GH-100062

Methoduniform_buffer_create adds a newenable_device_address optional parameter

✔️

✔️

✔️

GH-100062

Methodvertex_buffer_create adds a newenable_device_address optional parameter

✔️

✔️

✔️

GH-100062

RenderingServer

Methodmultimesh_allocate_data adds a newuse_indirect optional parameter

✔️

✔️

✔️

GH-99455

Shader

Methodget_default_texture_parameter changes return type fromTexture2D toTexture

✔️

GH-95126

Methodset_default_texture_parameter changestexture parameter type fromTexture2D toTexture

✔️

✔️

GH-95126

VisualShaderNodeCubemap

Propertycube_map changes type fromCubemap toTextureLayered

✔️

GH-95126

VisualShaderNodeTexture2DArray

Propertytexture_array changes type fromTexture2DArray toTextureLayered

✔️

GH-95126

Note

In C#, the enumRenderingDevice.StorageBufferUsage breaks compatibility because of the way the bindings generatordetects the enum prefix. New members where added inGH-100062 to the enum that caused the enum members to be renamed.

Navigation

Change

GDScript Compatible

C# Binary Compatible

C# Source Compatible

Introduced

NavigationServer2D

Methodquery_path adds a newcallback optional parameter

✔️

✔️

✔️

GH-100129

NavigationServer3D

Methodquery_path adds a newcallback optional parameter

✔️

✔️

✔️

GH-100129

Editor plugins

Change

GDScript Compatible

C# Binary Compatible

C# Source Compatible

Introduced

EditorInterface

Methodopen_scene_from_path adds a newset_inherited optional parameter

✔️

✔️

✔️

GH-90057

Methodpopup_node_selector adds a newcurrent_value optional parameter

✔️

✔️

✔️

GH-94323

Methodpopup_property_selector adds a newcurrent_value optional parameter

✔️

✔️

✔️

GH-94323

EditorSceneFormatImporter

Method_get_import_flags removed

GH-101531

EditorTranslationParserPlugin

Method_parse_file changes return type toArray and removesmsgids andmsgids_context_plural parameters

GH-99297

Note

The method_get_import_flags was never used by the engine. It was removed despite thecompatibility breakage as there's no way for users to rely on this affecting engine behavior.

Behavior changes

Core

Note

TheCurve resource now enforces its value range, somin_value andmax_value need to be changedif any of the points fall outside of the default[0,1] range.

Rendering

Note

TheVisualShaderNodeVec4Constant shader node had its input type changed toVector4. Users need torecreate the values in their constants.

CSG

Note

The CSG implementation now uses Emmett Lalish'sManifold library (GH-94321).The new implementation is more consistent with manifold definitions and fixes a number of bugs and stabilityissues. As a result, non-manifold meshes are no longer supported. You can useMeshInstance3D forrendering non-manifold geometry, such as quads or planes.

Android

Note

Android sensor events are no longer enabled by default (GH-94799). Projects that use sensor events canenable them as needed in Project Settings underInput Devices > Sensors.


User-contributed notes

Please read theUser-contributed notes policy before submitting a comment.