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.
This article indicates whether each breaking change affects GDScript and whether the C# breaking change is binary compatible or source compatible:
Binary compatible - Existing binaries will load and execute successfully without recompilation, and the run-time behavior won't change.
Source compatible - Source code will compile successfully without changes when upgrading Godot.
Jądro
Zmiana |
GDScript Compatible |
C# Binary Compatible |
C# Source Compatible |
Wprowadzona |
|---|---|---|---|---|
FileAccess |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
Method |
✔️ |
❌ |
✔️ |
|
OS |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
❌ |
✔️ |
✔️ |
|
RegEx |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Semaphore |
||||
Method |
✔️ |
✔️ |
✔️ |
|
TranslationServer |
||||
Method |
✔️ |
✔️ |
✔️ |
Export annotations
Ostrzeżenie
The behavior of @export_file changed in Godot 4.4. When assigning a new value
from the Inspector, the path is now stored and returned as a uid:// reference
instead of the traditional res:// path(GH-97912). This is a breaking change and may
cause issues if you're expecting res://-based paths in scripts or serialized
files.
For example, exported arrays of files may now contain a mix of uid:// and
res:// paths, especially if they were partially edited in the Inspector.
In 4.4, the only way to retain the res:// format is to manually edit the
.tscn or .tres files in a text editor. Starting in Godot 4.5, a new annotation
@export_file_path can be used to explicitly retain the old behavior and export
raw res:// paths.
GUI nodes
Zmiana |
GDScript Compatible |
C# Binary Compatible |
C# Source Compatible |
Wprowadzona |
|---|---|---|---|---|
RichTextLabel |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
GraphEdit |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Signal |
❌ |
❌ |
❌ |
Fizyka
Zmiana |
GDScript Compatible |
C# Binary Compatible |
C# Source Compatible |
Wprowadzona |
|---|---|---|---|---|
SoftBody3D |
||||
Method |
✔️ |
✔️ |
✔️ |
Renderowanie
Zmiana |
GDScript Compatible |
C# Binary Compatible |
C# Source Compatible |
Wprowadzona |
|---|---|---|---|---|
CPUParticles2D |
||||
Method |
✔️ |
✔️ |
✔️ |
|
CPUParticles3D |
||||
Method |
✔️ |
✔️ |
✔️ |
|
GPUParticles2D |
||||
Method |
✔️ |
✔️ |
✔️ |
|
GPUParticles3D |
||||
Method |
✔️ |
✔️ |
✔️ |
|
RenderingDevice |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
❌ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
RenderingServer |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Shader |
||||
Method |
✔️ |
❌ |
❌ |
|
Method |
✔️ |
❌ |
✔️ |
|
VisualShaderNodeCubemap |
||||
Property |
✔️ |
❌ |
❌ |
|
VisualShaderNodeTexture2DArray |
||||
Property |
✔️ |
❌ |
❌ |
Informacja
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.
Wtyczki edytora
Zmiana |
GDScript Compatible |
C# Binary Compatible |
C# Source Compatible |
Wprowadzona |
|---|---|---|---|---|
EditorInterface |
||||
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
Method |
✔️ |
✔️ |
✔️ |
|
EditorSceneFormatImporter |
||||
Method |
❌ |
❌ |
❌ |
|
EditorTranslationParserPlugin |
||||
Method |
❌ |
❌ |
❌ |
Informacja
The method _get_import_flags was never used by the engine. It was removed despite the
compatibility breakage as there's no way for users to rely on this affecting engine behavior.
Behavior changes
Jądro
Informacja
The Curve resource now enforces its value range, so min_value and max_value need to be changed
if any of the points fall outside of the default [0, 1] range.
Renderowanie
Informacja
The VisualShaderNodeVec4Constant shader node had its input type changed to Vector4. Users need to
recreate the values in their constants.
CSG
Informacja
The CSG implementation now uses Emmett Lalish's Manifold library (GH-94321).
The new implementation is more consistent with manifold definitions and fixes a number of bugs and stability
issues. As a result, non-manifold meshes are no longer supported. You can use MeshInstance3D for
rendering non-manifold geometry, such as quads or planes.
Android
Informacja
Android sensor events are no longer enabled by default (GH-94799). Projects that use sensor events can enable them as needed in Project Settings under Input Devices > Sensors.