Godot — Breaking Changes

Last verified: 2026-02-12

Changes between Godot versions, focused on post-LLM-cutoff changes (4.4+).

4.5 → 4.6 (Jan 2026 — POST-CUTOFF, HIGH RISK)

SubsystemChangeDetails
PhysicsJolt is now the DEFAULT 3D physics engineNew projects use Jolt automatically. Existing projects keep their setting. Some HingeJoint3D properties (like damp) only work with GodotPhysics.
RenderingGlow processes BEFORE tonemappingWas after tonemapping. Scenes with glow will look different. Adjust intensity/blend in WorldEnvironment.
RenderingD3D12 default on WindowsWas Vulkan. For better driver compatibility.
RenderingAgX tonemapper new controlsWhite point and contrast parameters added.
CoreQuaternion initializes to identityWas zero. Unlikely to affect most code but technically breaking.
UIDual-focus systemMouse/touch focus now separate from keyboard/gamepad focus. Visual feedback differs by input method.
AnimationIK system fully restoredCCDIK, FABRIK, Jacobian IK, Spline IK, TwoBoneIK via SkeletonModifier3D nodes.
EditorNew "Modern" theme defaultGrayscale replaces blue-tint. Restore: Editor Settings → Interface → Theme → Style: Classic
Editor"Select Mode" keybind changedNew "Select Mode" (v key) prevents accidental transforms. Old mode renamed "Transform Mode" (q key).
2DTileMapLayer scene tile rotationScene tiles can now be rotated like atlas tiles.
LocalizationCSV plural form supportNo longer requires Gettext for plurals. Context columns added.
C#Automatic string extractionTranslation strings auto-extracted from C# code.
PluginsNew EditorDock classSpecialized container for plugin docks with layout control.

4.4 → 4.5 (Late 2025 — POST-CUTOFF, HIGH RISK)

SubsystemChangeDetails
GDScriptVariadic arguments addedFunctions can accept ... arbitrary params — new language feature
GDScript@abstract decoratorAbstract classes and methods now enforceable
GDScriptScript backtracingDetailed call stacks available even in Release builds
RenderingStencil buffer supportNew capability for advanced visual effects
RenderingSMAA 1x antialiasingNew post-processing AA option
RenderingShader BakerPre-compiles shaders — reportedly 20x faster startup on some demos
RenderingBent normal maps, specular occlusionNew material features
AccessibilityScreen reader supportControl nodes work with accessibility tools via AccessKit
EditorLive translation previewTest GUI layouts in different languages in-editor
Physics3D interpolation rearchitectedMoved from RenderingServer to SceneTree. API unchanged but internals differ.
AnimationBoneConstraint3DNew: AimModifier3D, CopyTransformModifier3D, ConvertTransformModifier3D
Resourcesduplicate_deep() addedNew explicit method for deep duplication of nested resources
NavigationDedicated 2D navigation serverNo longer a proxy to 3D navigation; smaller export for 2D games
UIFoldableContainer nodeNew accordion-style container for collapsible UI sections
UIRecursive Control behaviorDisable mouse/focus interactions across entire node hierarchies
PlatformvisionOS export supportNew platform target
PlatformSDL3 gamepad driverDelegated gamepad handling to SDL library
PlatformAndroid 16KB page supportRequired for Google Play targeting Android 15+

4.3 → 4.4 (Mid 2025 — NEAR CUTOFF, VERIFY)

SubsystemChangeDetails
CoreFileAccess.store_* return boolWas void. Methods: store_8, store_16, store_32, store_64, store_buffer, store_csv_line, store_double, store_float, store_half, store_line, store_pascal_string, store_real, store_string, store_var
CoreOS.execute_with_pipeAdded optional blocking parameter
CoreRegEx.compile/create_from_stringAdded optional show_error parameter
RenderingRenderingDevice.draw_list_beginMany parameters removed; breadcrumb parameter added
RenderingShader texture typesParameter/return types changed from Texture2D to Texture
Particles.restart() methodAdded optional keep_seed parameter (CPU/GPU 2D/3D)
GUIRichTextLabel.push_metaAdded optional tooltip parameter
GUIGraphEdit.connect_nodeAdded optional keep_alive parameter

4.2 → 4.3 (In Training Data — LOW RISK)

SubsystemChangeDetails
AnimationSkeleton3D.add_bone returns int32Was void
Animationbone_pose_updated signalReplaced by skeleton_updated
TileMapTileMapLayer replaces TileMapOne node per layer instead of multi-layer single node
NavigationNavigationRegion2DRemoved avoidance_layers, constrain_avoidance properties
EditorEditorSceneFormatImporterFBXRenamed to EditorSceneFormatImporterFBX2GLTF
AnimationAnimationMixer base classAnimationPlayer and AnimationTree now extend AnimationMixer
Built with LogoFlowershow