mirror of
https://github.com/godotengine/godot.git
synced 2025-10-15 02:49:24 +00:00
287 KiB
287 KiB
Changelog
This file lists all changes made between the current feature branch and the previous feature release. It is equivalent to the listings on our interactive changelog.
Changelogs for earlier feature releases are available in their respective Git branches, and linked at the end of this file.
4.5 - 2025-09-15
Table of contents:
- 2D
- 3D
- Animation
- Assetlib
- Audio
- Buildsystem
- C#
- Codestyle
- Core
- Documentation
- Editor
- Export
- GDExtension
- GDScript
- GUI
- I18n
- Import
- Input
- Multiplayer
- Navigation
- Network
- Particles
- Physics
- Plugin
- Porting
- Rendering
- Shaders
- Tests
- Thirdparty
- XR
2D
- Add warning in scene tree when nested CanvasItems try to clip children (GH-98949).
- Optimize usability of VisibleOnScreenNotifier2D (GH-100874).
- Improve usability of
Camera2D
(GH-101427). - Draw tilemap coordinate and rectangle size on the screen when using the TileMapLayer's Terrains plugin (GH-101737).
- Fix wrong canvas camera override panning in the runtime debugger (GH-103489).
- Path2D prefer control points for outward curve (GH-103956).
- Polygon2DEditor: Add tool to automatically move center of gravity to origin (GH-104015).
- Add a dedicated editor for Camera2D limits (GH-104190).
- Improve/fix
TileMap
andTileSet
editors UI (GH-104192). - Fix applying
TileMapLayer.self_modulate
to tiles (GH-104677). - Add null check for SpriteFramesEditor's SpriteFrames (GH-104830).
- Fix Editor 2D Ruler Text Top-Align (GH-104993).
- Add ruler width editor setting to 2D editor (GH-104996).
- Fix editing custom data for tilesets (GH-105024).
- Allow
Sprite2D
being dragged to change theirregion_rect
(GH-105147). - Fix process callback state getting overwritten by calls to
set_process_smoothing_speed
(GH-105473). - Improve Path2D debug performance (GH-105606).
- Fix
Camera2D
right and bottom limit to depend on bottom right corner (GH-105825). - Fix rotated/flipped tiles rendering origin (GH-105861).
- Deprecate
ParallaxBackground
andParallaxLayer
(GH-105964). - Improved Camera2D limits handling when limits are smaller than screen rect (GH-106180).
- Expose Camera2D current rotation (GH-106690).
- TileSet: Fix potential crash updating stale atlas source editor toolbar (GH-106795).
- TileSet: Prevent crash in conversion of invalid tiles from Godot 3.x (GH-106796).
- TileSet: Fix
-Wmaybe-uninitialized
warning on CompatibilityShapeData (GH-106864). - Make TileMapLayer editor match layer's filter (GH-107001).
- Fix rotated/flipped tiles destination rect calculations (GH-107080).
- Fix WorldBoundaryShape2D handle when distance is negative (GH-107103).
- Fix Sprite2D error spam in exported project (GH-107360).
- Don't put main properties of
AnimatedSprite2D
inside a group (GH-107528). - Improve Camera2D limit editing (GH-107622).
- Fix removing wrong vertices in the Polygon2D editor when points overlap each other (GH-107932).
- Fix points jumping when dragging starts in the Polygon2D editor (GH-107933).
- Fix smoothed camera position with limits (GH-108200).
- Fix error spam caused by
internal_vertex_count
property (GH-108207). - Fix selecting wrong vertices in the Polygon2D editor when adding a polygon (GH-108249).
- Fix lingering grid from TileMapLayer editor (GH-108477).
- Fix debanding not being used in the 2D editor when enabled in Project Settings (GH-108950).
- Fix debug rendering in TileMapLayer (GH-108963).
- Rename Camera2D set_position_smoothing_enabled parameter (GH-109147).
- Fix
TileMapLayer
terrain preview icons for transformed alternative tiles (GH-109584). - Free TileMapLayer debug quadrant meshes when clearing (GH-109736).
3D
- Allow customizing debug color of Path3D (GH-82321).
- Curve3D: Fix middle point forward vector when control1=end and control2=begin (GH-88925).
- Disable debug draw modes in the 3D editor according to current rendering method (GH-93673).
- Fix
!is_inside_tree
in csg node when reloading a scene (GH-95414). - Set correct position of node with
Align Transform with View
in orthographic view (GH-99099). - Fix 3D Ruler stuck in viewport if tool mode is switched during measurement (GH-100420).
- Update cursor instance when calling
set_selected_palette_item
(GH-100723). - Fix being able to grab hidden transform gizmo handles (GH-100813).
- Add "active" state to one of the multiple selected Node3Ds to determine basis in Local mode (GH-102176).
- Fix some global-space bugs in
RemoteTransform3D._update_remote
and add some optimizations (GH-102223). - Editor: Improve capsule gizmos (GH-102292).
- Do not commit gizmo handles if no changes were made (GH-102317).
- Allow rotating selected cells in GridMap (GH-103020).
- Add UndoRedo actions to preview sun/environment popup (GH-103053).
- Unify CSGPolygon3D gizmos with the other geometries (GH-103301).
- Use physical keys for the Q/W/E/R 3D editor shortcuts (GH-103533).
- Make Game view follow more editor settings (GH-103758).
- Improve cylinder gizmo performance (GH-103903).
- Path3D prefer control points for outward curve (GH-104058).
- Improve
GPUParticlesCollision3DGizmoPlugin
performance (GH-104172). - Unbind
CSGShape::_update_shape()
and make it public (GH-104206). - Fix
GridMap
shortcuts being triggered during freelook (mouse captured) (GH-104213). - Fix 3D view menu gizmo icons being broken in empty scene (GH-104475).
- Allow multiple EditorNode3DGizmo collision meshes (GH-104631).
- Fix missing tooltips on "Advanced Import Settings for Scene" window (GH-104804).
- Allow higher freelook base speed values in the 3D editor settings (GH-104884).
- Fix gizmos from 3D editor plugins not applying changes to locked nodes (GH-104945).
- Optimize PrimitiveMesh creation by avoiding CoW behavior and dynamic memory allocations (GH-105264).
- Fix GridMap OctantKey cell rasterization (GH-105329).
- Fix light theme gizmo icons in the 3D editor appearing too dark (GH-105487).
- Optimize GridMap rendering scenario quadruple-getters (GH-105563).
- Replace GridMap legacy use of
List
withLocalVector
(GH-105565). - Improve and optimize lightmap probe gizmo creation (GH-105568).
- Fix incorrect transform when editor camera is moved externally (GH-105613).
- Fix GridMap move selection crashing on invalid MeshLibrary item (GH-105664).
- Gave billboarded sprites and labels more fitting AABBs (GH-105785).
- Fix for Node3D request gizmos multiple times (GH-106070).
- Fix Quaternion arc constructor tolerance (GH-106337).
- Show
Curve3D
point tilt in degrees in inspector (GH-106605). - FTI -
global_transform_interpolated()
on demand for invisible nodes (GH-107308). - Add a LightmapProbe gizmo size editor setting (GH-107382).
- Fix missing gizmo update when selection changes outside of 3D view (GH-107458).
- SceneTreeFTI: - miscellaneous speedups (GH-107485).
- Fix freelook in 3D when multiple viewports are open (GH-107530).
- Clear cache when setting Mesh's surfaces (GH-107585).
- Fix
MeshInstance3D::get_active_material()
error on empty mesh or empty surfaces (GH-107691). - Gridmap editor: Avoid extra mesh instantiation when setting clipboard data (GH-108026).
- Fix
Mesh.generate_triangle_mesh
when usingPRIMITIVE_TRIANGLE_STRIP
(GH-108038). - Fix sphere gizmo handle position (GH-108494).
- Move last four 3D files to 3D folder and move physics gizmos to their own physics folder (GH-108523).
- Fix missing 3d gizmos (GH-109029).
- Fix editor segfault when using a
Path3D
without aCurve3D
(GH-109059). - Stop clearing editor_plugin_screen on script edit (GH-109176).
- Fix
BoneAttachment3D
getting global transform of external skeleton before itis_inside_tree()
(GH-109444). - Fix node can't be rotated by holding ctrl/command while in select mode (GH-109465).
- Fix cinematic preview causing the editor redraw continuously and aspect ratio not updating in camera preview (GH-109469).
- Fix transforms trying to continue after a cancel (GH-109684).
- Prevent held escape key from unselecting nodes after canceling a transform (GH-109733).
- Create an undo/redo action when pinning a SoftBody3D point in the editor (GH-109828).
Animation
- Allow double-click within tracks to set a new play position (GH-92141).
- Add option to auto tangent new bezier points in animation editor (GH-95564).
- Support hiding functions calls in Method Tracks (GH-96421).
- Add editor setting for default animation step (GH-98414).
- Add selection box movement/scaling to the animation bezier editor (GH-100470).
- Implement
BoneConstraint3D
withCopyTransform
/ConvertTransform
/Aim
Modifiers (GH-100984). - Fix opacity when deleting or renaming a node in AnimationNodeStateMachine (GH-101179).
- Improve wording on recursive transition detection warning (GH-101582).
- Add external force property to
SpringBoneSimulator3D
(GH-101633). - Change
NodeOneShot
fading to uses self delta instead of input delta (GH-101792). - Add editor setting for FPS mode and compat (GH-102189).
- Add node started/finished signals for animation state machines (GH-102398).
- Add animation filtering to animation editor (GH-103130).
- Fix
Tween.is_valid()
returningtrue
after callingkill()
(GH-103198). - Add select node shortcut to list view in Animation Player Editor (GH-103295).
- Add alphabetical sorting to Animation Player (GH-103584).
- Add
delta
argument toSkeletonModifier3D._process_modification()
as_process_modification_with_delta(delta)
and exposeadvance()
inSkeleton3D
(GH-103639). - Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D (GH-103921).
- Improve State Machine BlendTree node to properly display conditions (GH-103986).
- Fix missing
process_state
error in blend spaces (GH-104018). - Add
is_inside_tree()
check to SpringBoneSimulator3D (GH-104167). - Fix rest translation space in
LookAtModifier3D
(GH-104217). - Remove incorrect errors in AnimationMixer (GH-104419).
- Add correct cursors when scaling bezier keys with box scaling (GH-104436).
- Add bone name/idx matching validation and lacked virtual methods to
SkeletonModifier3D
(GH-104560). - Fix final tween value with custom interpolator (GH-104578).
- Add axis snapping for bezier key move in
Animation Player
(GH-104879). - Move
SpringBoneSimulator3D
registration to the outside of Physics3D's environment (GH-104998). - Fix EditorSpinSlider Grabber Scaling (GH-105039).
- Fix
current_animation_changed
emission on animation finish (GH-105089). - Remove dead code in AnimationStateMachine editor (GH-105135).
- Remove error print in the Animation getter (GH-105174).
- Expose
AnimationNode(StateMachine/BlendTree).get_node_list()
(GH-105552). - Fix the Animation Optimization results for Nearest and Cubic Interpolation (GH-105644).
- Sort animation nodes in
AnimationNodeBlendSpace2DEditor
popup menu (GH-105658). - Make silhouette fixer to use arc
Quaternion
constructor instead oflooking_at()
(GH-105706). - Fix scaling from cursor in AnimationPlayer (GH-105715).
- Use AHashMap for RBMap nodes and HashMap input_activity (GH-105789).
- Add optional rotation axis & Fix initial pose with rotation axis in SpringBone (GH-105888).
- Fix rest update process by dirty flag to not take into account pose dirty flag in
Skeleton3D
(GH-105920). - Fix creating outline for skinned meshes (GH-106076).
- Use a type-hinted dictionary for AnimationLibrary's
libraries
property (GH-106111). - Make sure clicking AnimationTree node open the state machine editor not the track editor (GH-106334).
- Implement method lookup for method tracks (GH-106524).
- Fix fade out duration to extend a bit take into account current delta in NodeOneShot (GH-106567).
- New test for animation blend tree (GH-106575).
- Remove unnecessary calling
_validate_property()
in the core from all extended classes (GH-106622). - Fix Heap buffer overflow in Animation::_find() (GH-106654).
- Refactor
BoneAttachment
property registration (GH-106841). - Implement
ModifierBoneTarget3D
which can be target of the otherSkeletonModifier3D
s (GH-106846). - Fix ambiguous AnimationNode's parameter type in default value and make
validate_type_match()
static function (GH-107005). - Fix animation track filter size bug (GH-107084).
- Add default paramater for AnimationNode as super class (GH-107171).
- Fix animation track inserted path and key type (GH-107241).
- Fix AnimationPlayer finished state in the editor (GH-107244).
- Fix editing/removal of bone meta (GH-107546).
- Skip killed/invalid subtween (GH-107690).
- Fix animation keying not working with toggleable inspector sections (GH-107919).
- Block Tween
custom_step()
during step (GH-108004). - Remove PropertyTweener start warning (GH-108410).
- Fix SpringBone3D being unintentionally disabled (GH-108887).
- Fix glitched animation key after canceled dragging (GH-109271).
- Fix name included in animation when saved from slice in scene importer (GH-109593).
- Fix incorrect
blend_position
values in BlendSpace editor after dragging point (GH-109777). - Correctly hide BlendSpace editor error panel on load (GH-109794).
- Process skeleton modifiers when the skeleton is marked as dirty (GH-109841).
- Fix overly aggressive focus grabbing by StateMachine and BlendSpaces (GH-109881).
- Add missing bone name suggestions in ModifierBoneTarget3D (GH-109905).
- Move Skeleton3D init process (for dirty flags) into
POST_ENTER_TREE
fromENTER_TREE
(GH-110145).
Assetlib
- Fix wrong "location" substring matching when HTTP status is 301 or 302 (GH-108387).
Audio
- Fix audio input gets muted after a while on android (GH-93200).
- Editor: Move thread name assignment in audio preview (GH-98818).
- Add metadata tags to WAV and OGG audio streams (GH-99504).
- Add "Mute Game" toggle in Game view (GH-99555).
- Reduce memory overhead of
save_to_wav
(GH-100559). - AudioStreamPlaybackWAV: Inherit from
Resampled
(GH-100652). - Implement seek operation for Theora video files, improve multi-channel audio resampling (GH-102360).
- Fix AudioServer missing deletes (GH-103897).
- Set interactive music streams as meta streams (GH-104054).
- Fix AudioEffectPitchShift issues when
pitch_scale
is set to 1 (GH-104090). - Optimize reverb by removing stray
volatile
from theundenormalize
function signature (GH-104239). - Add support for
Mute Game
toggle in the Android Editor (GH-104409). - Fix AudioStreamPlayer3D stereo panning issue (GH-104853).
- Enable TTS on demand, instead of fully disabling it when project setting is not set (GH-104873).
- Add an actual name for Ogg Vorbis importer visible name (GH-105152).
- Allow theming audio buses (GH-105321).
- AudioEffectPitchShift: 3rd attempt at fixing
-Wstringop-overflow
warning (GH-105744). - Return the length of the playing stream for AudioStreamRandomizer (GH-105952).
- Fix AudioStreamPlayer3D's
layer_mask
property using the wrong property hint (+ misc related fixes) (GH-106000). - Hide scrollbar in the audio stream importer dialog when unneeded (GH-106423).
- AudioStreamWAV: Inline tag remap inside load (GH-107250).
- Fix audio name doesn't appear in exports of child classes of
AudioStream
(GH-107598). - Fix broken WAV info list tag parsing (GH-107605).
- Use TightLocalVector for AudioStreamWAV/MP3 (GH-107790).
- Web: Fix Webkit leak caused by the position reporting audio worklets (GH-107948).
- Add permission request for Apple embedded platforms, fix microphone input (GH-107973).
- Fix
AudioListener3D
not tracking velocity for doppler (GH-108051). - Web: Fix sample playback deletion and
AudioStreamPolyphonic
issue (GH-108384). - Add missing copyright for pitch shift (GH-108797).
- Fix random pitch upward bias in
AudioStreamRandomizer
(GH-109006). - Make WAV metadata tag mappings more consistent with Vorbis (GH-109627).
- Web: Fix
AudioStreamPlayer.get_playback_position()
returning incorrect values for samples (GH-109790).
Buildsystem
- Use SSE 4.2 as a baseline when compiling Godot (GH-59595).
- Remove PrefersNonDefaultGPU from linux desktop file (GH-97852).
- SCons: Make builders prettier, utilize
constexpr
(GH-98653). - CI: Format SCons input flags & build action (GH-99938).
- Core: Avoid including
modules/modules_enabled.gen.h
in headers (GH-100023). - CI: Ensure default branch cache persists (GH-100457).
- Remove custom
--language-in
arg for the Closure compiler (GH-100525). - CI: Replace pytest with pre-commit hook (GH-101443).
- SCons: Add emitter to declutter build objects (GH-101641).
- Replace header guards style with
#pragma once
(GH-102298). - Web: Add library emitter to make sources dependent of compiler version (GH-102676).
- SCons: Implement minor fixes (GH-102924).
- Style: Ensure svgs have trailing newlines (GH-103011).
- Update CI
ruff
&mypy
pre-commit hooks (GH-103089). - Fix
.sln
project generation logic for Rider to support all OS and all C++ toolchains (GH-103405). - Bump version to 4.5-dev (GH-103510).
- CI: Use correct godot-cpp branch (GH-103514).
- CI: Bump SCons to latest (4.8.1 → 4.9.0) (GH-103515).
- Android: Fix build with
disable_3d
(GH-103523). - zstd: Update to 1.5.7, fix support for GAS
.S
files on Windows/MinGW (GH-103596). - SCons: Simplify Windows/MSVC detection (GH-103864).
- SCons: Remove
check_c_headers
(GH-103865). - CI: Add workflow to cleanup PR caches when closed (GH-104077).
- CI: Trim cache before saving (GH-104080).
- Apply
pre-commit
changes (GH-104119). - Fix build errors when building with
disable_3d=yes
(GH-104143). - Make SConstruct file check some envs before querying modules (GH-104148).
- SCons: Fix broken msvc conditional (GH-104208).
- CI: Set explicit write permission for cache cleanup token (GH-104220).
- CI: Build macOS binary without Vulkan if Vulkan SDK fails installing (GH-104307).
- CI: Ensure
scons-cache
exists before parsing (GH-104316). - SCons: Expand
NoCache
coverage (GH-104320). - Web: Fix editor build after
#pragma once
refactoring (GH-104406). - Fix incorrect guards in
VisibleOnScreenNotifier2D
(GH-104437). - Support a
NO_COLOR
environment variable indoc_status.py
(GH-104524). - SCons: Refactor
color.py
(GH-104617). - Editor: Restructure editor code (GH-104696).
- SCons: Ensure MinGW as fallback if missing MSVC (GH-104744).
- CI: Bump various pre-commit hooks (GH-104771).
- Android: Replace the deprecated version macro (GH-104797).
- CI: Validate
scons-cache
via action output (GH-104803). - SCons: Only set GCC
-Wvirtual-inheritance
for C++ andwarnings=extra
(GH-104841). - SCons: Add
CPPEXTPATH
for external includes (GH-104893). - mbedtls: Disable ASM when compiling with LLVM MemorySanitizer (MSAN) (GH-104912).
- Organize ifdefs for disabling navigation, physics, and XR (GH-104915).
- Fix compiling with
disable_xr=yes
when 3d enabled (GH-104978). - SCons: Integrate
WARNLEVEL
&OPTIMIZELEVEL
(GH-104982). - CI: Remove "Free disk space on runner" job (REVERTED) (GH-105025).
- Fix issue where vsproj=yes vsproj_gen_only=no sometimes fails to build (GH-105238).
- Web: Add the equivalent of
-Werror
forwasm-ld
(GH-105242). - Fix missing
gdb.printing
import for the pretty print script (GH-105494). - Add
{c,cpp}_compiler_launcher
options (GH-105498). - Android: Enable native debug symbols generation (GH-105605).
- Update the Android NDK to the latest LTS version (r27c) (GH-105611).
- SCons: Begin decoupling generation & build code (GH-105621).
- Native visionOS platform support (GH-105628).
- Fixes for
.sln
project generation for Rider on Mac/Linux (GH-105650). - CI: Remove legacy dependency (GH-105661).
- CI: Replace
gold
withmold
(GH-105662). - Use
separate_debug_symbols
to control generation of the separate Android debug symbols file (GH-105671). - Web: Add required exported functions and runtime methods for emscripten (GH-105692).
- SCons: Explicitly enable
-mfpmath=sse -mstackrealign
for x86_32 (GH-105697). - Fix macOS build with ANGLE enabled and Vulkan disabled (GH-105709).
- CI: Remove now unused godot-api-dump action (GH-105731).
- Update Mesa-NIR library detection and download script (GH-105740).
- CI: Ensure Windows Actions handle utf-8 characters (GH-105756).
- MinGW: Explicitly link
shell32
library (GH-105764). - Fix
uiautomationcore
linking in 32-bit x86 MinGW builds (GH-105786). - Fix install_vulkan_sdk_macos.sh incorrectly saying Vulkan was installed when jq is missing (GH-105798).
- SCons: Add enum conversion warning (GH-105799).
- Web: Include emscripten headers by default (GH-105800).
- Remove WinAPI
#undef
hacks needed for mingw-std-threads (GH-105897). - doctest: Patch for clang warning about replacing
<ciso646>
by<version>
(GH-105913). - Add
EnumVariable(ignorecase=2)
(GH-105914). - Wayland: Fix compile error with DBUS disabled (GH-105935).
- CI: Run
apt update
before installing libxml2-utils (GH-105939). - Only instantiate
MovieWriterMJPEG
andMovieWriterPNGWAV
movie writers if they are enabled (GH-105982). - CI: Propagate
matrix.sconsflags
in macos_builds.yml (GH-106003). - Move MovieWriterMJPEG class to
jpg
module it depends on (GH-106013). - Remove registration of deprecated classes (GH-106093).
- SCons: Don't enable
-Wenum-conversion
for GCC < 11 (GH-106118). - register_editor_types: Fix
DISABLE_DEPREACTED
typo (GH-106126). - macOS: Fix support for latest VulkanSDK .app name in install script (GH-106128).
- Bump the minimum supported SDK version to 24 (GH-106148).
- Annual versions bump for the Android platform (GH-106152).
- basis_universal: Add missing
ctype.h
include to fix MSVC build (GH-106155). - Linux: Fix build with
dbus=no
orthreads=no
(GH-106175). - Convert path separators for Windows (GH-106216).
- SCons: Hide SCU folders by adding "." to foldername (GH-106269).
- Android: Store native libraries uncompressed in APK (GH-106288).
- Preserve CRLF line terminators for MSVS project template (GH-106302).
- Web: Add WebAssembly SIMD support (
wasm_simd
) and enable it by default (GH-106319). - macOS: Fix
template_debug
build after #105884 (GH-106348). - Skip default font loading if Brotli is disabled (GH-106381).
- Fix macOS build with
dev_build=yes
andtarget=template_debug
(GH-106383). - Linux: Drop
ppc32
(32-bit PowerPC) architecture support (GH-106390). - Wayland: Unbreak build with
libdecor=no
(GH-106394). - D3D12: Silence
-Wmaybe-uninitialized
warning in D3D12MemAlloc (GH-106398). - Android: Re-add
generate_apk
alias for compatibility (GH-106435). - Make it possible to run CI manually if
DISABLE_GODOT_CI
is set (GH-106438). - Update to the AAB directory layout (GH-106604).
- Shader Baker: Fix build with
deprecated=no
(GH-106920). - Fix alphabetical order of codespell ignore list (GH-106945).
- Windows: Drop support for Windows 7/8/8.1 (GH-106959).
- Web: Fix build failure on Windows (GH-107112).
- SCons: Identify build clearly when using AES256 encryption key (GH-107309).
- Fix Android build files joining paths without join (GH-107328).
- Wayland: Simplify including protocols (GH-107356).
- Web: Add Web-build specific stdout header (GH-107415).
- Web: Fix Emscripten for WebXR and update minimum version (GH-107460).
- Update CI
ruff
pre-commit hooks (GH-107665). - Add module defines to the per-platform generated props file so VS knows which ones are enabled (GH-107709).
- Fix compiler error: pass
-mpopcnt
when using clang / llvm and targeting x86_64 (GH-107939). - Android: Fix the build logic to generate the native debug symbols (GH-107998).
- SDL: Fix missing header build error on some Linux systems (GH-108144).
- Add .zed/ to .gitignore (GH-108247).
- Fix remaining physics and navigation disabling issues (GH-108332).
- Thirdparty: Fix SDL arm64 compilation on Windows (GH-108354).
- Android: Update the maven publishing configuration following the deprecation of the OSSHR service (GH-108393).
- Codeowners: Minor improvements after restructure (GH-108515).
- SCons: Support header-only modules (GH-108616).
- Windows: Fix SSE4.2 detection with LTO build (GH-108637).
- CI: Use Xcode 16 for macOS build (GH-108649).
- macOS: Use liquid glass icon for the editor (GH-108894).
- CI: Use modern
--import
syntax in GHA (GH-109026). - CI: Add headless import test (GH-109090).
- macOS: Regenerate editor
icns
file to include all resolutions (GH-109292). - Meta: Move /editor/scene folder from
core
todocks
codeowner (GH-109424). - CI: Update dependency setup on Linux actions (GH-109573).
- SCons: Temporarily revert Mesa includes to
CPPPATH
(GH-109749). - SCons: Fix
dlltool
on Windows MinGW builds (GH-109758). - CI: Fix detection of Windows D3D12 dependencies (GH-109912).
- CI: Ensure prettier/clearer sanitizer output (GH-109960).
- Fix build on OpenBSD (GH-110113).
- Bump version to 4.5-rc (GH-110285).
- Fix Wayland build with OpenGL disabled (GH-110294).
C#
- Remove unnecessary spaces (GH-82083).
- Resolve the hostfxr path using dotnet CLI (GH-96146).
- Add
linux-bionic
RID export option to support NativeAOT on Android (GH-97908). - Use
ObjectID
when convertingVariant
toGodotObject
(GH-98034). - Editor: Prevent
TOOLS
.NETDefineConstants
being overriden by the user (GH-98153). - Fix thread deadlock when using a worker thread to load a script with a generic base class (GH-99798).
- Update Dotnet iOS Export Process (GH-100187).
- Fix
RefCounted
not disposed correctly in certain case (GH-101006). - Add
Min(float)
and octahedron encode/decode toVector3.cs
(GH-102356). - Improve Documentation for Typed
Godot.Collections
Wrappers (GH-102765). - Skip serializing delegates with a disposed target (GH-102837).
- Move entries from
AnalyzerReleases.Unshipped.md
toAnalyzerReleases.Shipped.md
(GH-103536). - Skip re-saving
.csproj
when TFM is unchanged (GH-103714). - Add missing
get_data
when callingCFStringCreateWithCString
inmacos_utils
(GH-103837). - Fix missing Vector4(i) and Projection in C# bindings generator (GH-104097).
- Deprecate compat methods that reference deprecated types (GH-104153).
- Fix source generator for primary constructor (GH-104219).
- Fix nested GodotObject class in generic class lead to source generator errors in C# (GH-104279).
- Add caching for dotnet TFM validation result (GH-104613).
- .Net: Avoid unnecessary StringName allocations on not implemented virtual
_Get
and_Set
method call (GH-104689). - Separate Rider and Fleet options as external editors (GH-104828).
- Fix Windows Mono build (GH-104864).
- .Net: Avoid array allocation when signal have 0 arg (GH-105082).
- Use
FrozenDictionary
forNamedColors
(GH-105104). - Add a preload hook to load .NET assemblies from the APK (GH-105262).
- Fix
string.PathJoin
to be consistent with core (GH-105281). - Fix extraction of C# default property values when negative (GH-105352).
- Avoid StringName allocation in
GodotObject.Free
(GH-105486). - Mark referenced packages in SDK as implicitly defined (GH-105819).
- Load assemblies directly from PCK on Android (GH-105853).
- Don't create unnecessary arrays in C# (GH-105927).
- Expose byte array compress and decompress (GH-106008).
- Avoid heap alloc when using StringNames as key in a Dictionary (GH-106133).
- Use
stackalloc
to create the pivot arrays inProjection.Inverse
(GH-106177). - Fix 'Script class can only be set together with base class name' error with .NET typed collections upon rebuild (GH-106243).
- Fix crash on aot unloading (GH-106502).
- Fix source generator exceptions appearing when use "@+internal keyword" as type or namespace name in C# script (GH-106744).
- Add
Basis.ScaledLocal
(GH-107300). - Fix Mono build on Windows after
String::resize
rename (GH-107496). - Fix
Quaternion(arc_from: Vector3, arc_to: Vector3)
behaves differently in gdscript and c# (GH-107618). - Avoid exporting to duplicate architectures (GH-107987).
- Fix return value of
StringExtensions.GetExtension()
(GH-108041). - Mention MSBuild panel when building fails (GH-108053).
- Fix crash in C# bindings generator with bad enum documentation XML (GH-108262).
- Fix
Quaternion(Vector3, Vector3)
constructor when vectors are the same (GH-109281). - Fix C# environment variables access on Linux (SDL-related bug) (GH-109283).
- Fix the issue preventing installing C# binaries on Android devices with api <= 29 (GH-110260).
- Require
net9.0
for Android exports (GH-110263).
Codestyle
- Remove
ABS
in favor ofMath::abs
(GH-69406). - Remove pointless use of atomics in error macros (GH-75629).
- Use initializer list in Arrays (GH-89782).
- Core: Add
[[nodiscard]]
to string-like classes/structs (GH-93517). - Core: Convert
Math
class to namespace (GH-94441). - Use
get_slicec
instead ofget_slice
for single character splitters (GH-99321). - Optimize
String::chr
to avoid callingstrlen
. UseString::chr
instead ofString(&chr, 1)
where appropriate (GH-100314). - Add templated version of
ObjectDB::get_instance()
(GH-100602). - Remove unnecessary
friend class
declarations ofCowData
(GH-100650). - Image: Remove references to defunct
FORMAT_CUSTOM
(GH-100754). - Style: Standardize Obj-C
#import
syntax (GH-101174). - Use iterator pattern instead of manually traverse
List::Element *
(GH-102354). - Use
std::size
instead ofsizeof(a) / sizeof(a[0])
pattern throughout the codebase (GH-102419). - Clean up some uses of
String::substr
(GH-102427). - Improve
_is_drop_valid()
code in EditorPropertyArray (GH-102630). - Style: Begin integrating simple clangd fixes (GH-103075).
- Use idiomatic templating vargs in a few places to reduce code (GH-103899).
- Remove empty constructors and destructors from
editor/
(GH-103988). - Style: Convert namespaces to PascalCase (GH-104043).
- De-duplicate
String
single-char constructor (GH-104049). - Remove
TOOLS_ENABLED
checks fromeditor/
(GH-104130). - Camera2D code cleanup (GH-104136).
- Replace
size() == 0
withis_empty()
(GH-104375). - Core: Replace C math headers with C++ equivalents (GH-104386).
- Remove pointless
_3D_DISABLED
checks in editor code (GH-104390). - Tree: apply comment style guidelines and remove unused variables (GH-104708).
- Make reusable functions for GameController joystick and trigger input (GH-104725).
- Replace
append_utfx
with directString::utfx
(GH-104810). - Core: Integrate warning suppression macro helpers (GH-104850).
- Remove unused
get_valid_parents_static
functions fromGDCLASS
(GH-104921). - Remove unused
get_inheritance_list_static
fromGDCLASS
(GH-104976). - Move
GD_IS_CLASS_ENABLED
and respective include fromclass_db.h
toobject.h
, as this is where it's needed (GH-105030). - Convert
PtrToArg
macros to regular C++ structs (GH-105231). - Core: Use
Math
namespace for constants (GH-105249). - Range: Remove useless
p_what
argument (GH-105306). - Replace duplicate code of
is_ancestor_of()
in node.cpp (GH-105337). - Remove
auto
misuse cases (GH-105384). - Use Math::abs to avoid ambiguity with integer abs (GH-105394).
- Rename
BLOCK_DEVICE()
macro toFORCE_ANGLE()
inmain.cpp
(GH-105427). - Use
Math::abs
to avoid ambiguity with integer abs (GH-105460). - Simplify use of
LocalVector
force_trivial
template parameter (GH-105505). - Style: Declare inline macros as attributes (GH-105531).
- Remove GridMap godotsphir remarks (GH-105586).
- FileDialog code cleanup (GH-105630).
- Fix various sanitizer issues (GH-105865).
- Quick
StringName
improvements (GH-105871). - Inline static variables (part 1) (GH-105876).
- Remove inline from constexpr variables (GH-105880).
- Core: Modernize C headers with C++ equivalents (GH-105887).
- Rename editor "File" MenuOption enums for clarity (GH-105924).
- Remove empty constructors and destructors from
scene/
(GH-106124). - Fix a typo in variable name in ProgressBar class (GH-106189).
- Remove unused
SceneTree::make_group_changed
(GH-106343). - Improve
ScriptLanguage
get keyword API (GH-106374). - Optimize and simplify
sarray
(GH-106445). - Style: Remove redundant
DEBUG_METHODS_ENABLED
macro (GH-106456). - Fix for implicit conversion from
char16_t
tochar32_t
inTextServerAdvanced
(GH-106649). - Simplify
Memory::memnew_arr_placement
to always initialize memory (GH-106730). - Un-support
force_trivial
parameter forLocalVector
. Instead, users should useresize_uninitialized
(GH-106876). - Remove obsolete
VMap
forward declaration (GH-106897). - Remove redundant
queue_redraw()
& fix typo (GH-106899). - Rename
String::resize
toresize_uninitialized
(GH-106913). - Fix mixed use of spaces and tabs for indentation (GH-107222).
- Remove implicit conversions from math types to
String
, to avoid accidental conversions (GH-107295). - Enforce GDScript and C# dictionary spacing style guidelines in code samples (GH-107357).
- Core: Remove implicit conversions from
Callable
andSignal
toString
, to avoid accidental conversions (GH-107379). - Core: Remove unused
StringName::search
(GH-107380). - Core: Remove implicit conversions from
IPAddress
toString
, to avoid accidental conversions (GH-107406). - Make conversions from
NodePath
toString
explicit (GH-107408). - Fix spelling in comments (GH-107550).
- Android: Misc changes (GH-109267).
- Typo cleanup pass (GH-109791).
Core
- Add PackedByteArray conversion to PackedVector2Array, PackedVector3Array, PackedVector4Array and PackedColorArray (GH-76075).
- Change Node
set_name
to use StringName, slightly improves performance (GH-76560). - Typed array equality operator update (GH-82497).
- Add negative index to
Array.remove_at
andArray.insert
(GH-83027). - Add
Node.get_orphan_node_ids
, editNode.print_orphan_nodes
(GH-83757). - Add list initialization to Array, Variant, and TypedArray (GH-86015).
- Improve error message for
String.format
when using nested Arrays (GH-86653). - Expose
set_uid()
(GH-87714). - Don't duplicate internal nodes (GH-89442).
- Fix
RID
cannot be string formatted (GH-90971). - Add
Logger
and ability to print and log script backtraces (GH-91006). - Remove old path remaps system (GH-91594).
- Use
Vector
forMethodInfo::arguments
(GH-91660). - Add
String::replace_char(s)
methods for performance and convenience (GH-92475). - Add
String::remove_char(s)
methods for performance and convenience (GH-92476). - Avoid unnecessary copy-on-write Vector/Array (GH-93276).
- Improve
JSON::stringify
performance (GH-93783). - Consolidate and simplify string joining code in
VariantUtilityFunctions
(GH-93883). - Add dedicated
BitField
template (GH-95916). - Convert
Pair
/KeyValue
toconstexpr
(GH-96497). - Array: performance improvements to reduce copying/copy_on_write calls (GH-96664).
- Add
is_same
to types that have float components (GH-97553). - Reduce allocations when solving path in
AStarGrid2D
(GH-97843). - Update ViewportTexture path relative to its local scene instead of the Viewport owner (GH-97861).
- Fix
StreamPeerGZIP::finish()
internal buffer size usage (GH-98043). - StringLikeVariantOrder: Compare in-place (GH-98408).
- Integrate
CharStringT
(GH-98439). - Use Grisu2 algorithm in
String::num_scientific
to fix serializing (GH-98750). - Fix
String::is_valid_hex_number
(GH-99059). - Add
create_id_for_path()
to ResourceUID (GH-99543). - Improve
parse_utf8
performance (GH-99826). - Print error message when index is out of range in
Variant::iter_get
(GH-99985). - Improve
ContainerTypeValidate
performance for object types (GH-100057). - Fix
RandomPCG::random(int, int)
overflow bug (GH-100067). - Simplify and fix
Projection
's getter functions (GH-100209). - Optimize String
copy_from_unchecked
to actually not check the string (GH-100238). - Add
Span
struct (replacingStrRange
). Spans represent read-only access to a contiguous array, resemblingstd::span
(GH-100293). - Use
LocalVector
instead ofList
as arg ofDictionary::get_key_list
(GH-100333). - Optimize / refactor
CowData
, combining resize and fork to avoid unnecessary reallocations (GH-100619). - Overhaul resource duplication (GH-100673).
- Use 1.5x growth factor for LocalVector (GH-100944).
- Natively convert
enum
/BitField
withVariant
(GH-101003). - Add
LocalVector.erase_unordered
, mimickingerase
but withremove_at_unordered
, to remove duplicate logic (GH-101026). - Rename
LocalVector.invert()
->LocalVector.reverse()
to match theVector
,String
andList
APIs (GH-101027). - Change
StringName.operator const void *
toexplicit operator bool
(GH-101291). - Remove implicit conversions from
String
,Char16String
andCharString
to data pointers (GH-101293). - Remove unnecessary allocations and memcpy in
codesign.cpp
(GH-101295). - Add
String::ascii
creator functions, to parse a char buffer as ASCII (GH-101304). - Remove unintentional use of zero-width space (GH-101339).
- Isolate
Ref
forward declare logic (GH-101361). - Optimize and expose
Basis::scaled_local
to script (GH-101563). - VariantParser: Fix reading negated identifiers, replace
inf_neg
with-inf
(GH-101618). - Automate generation of the
char_range.inc
file (GH-101878). - Move
unicode_ranges
out ofdynamic_font_import_settings.cpp
into its own file (GH-101880). - Don't inline certain functions for smaller binary size (GH-101964).
- Add DDS image load and save functionality (GH-101994).
- Optimize
ProjectSettings::get_setting_with_override
/GLOBAL_GET
by avoiding repeated dict lookups (GH-102126). - Optimize
String::get_data
by avoiding a dereference of ptr, and inlining the function (GH-102369). - Sanitize ClassDB locking (GH-102449).
- Add
ERR_FAIL_COND_MSG
for reparenting to self (GH-102451). - Add
scene_changed
signal to SceneTree (GH-102986). - Fix file handle leak in ZipArchive and FileAccessZip (GH-103219).
- Rename "file" param for str.path_join() to "path" (GH-103264).
- Add compression level support to Zip Module (GH-103283).
- PackedScene: Use ObjectID for DeferredNodePathProperties base (GH-103320).
- Use single RNG instance for
FileAccessEncrypted
IV generation (GH-103415). - Fix crash when calling
get_argument_count()
on Callable with freed object (GH-103465). - Rename version defines to
GODOT_VERSION_*
to match GDExtension godot-cpp (GH-103557). - Prevent inlining error printing functions (GH-103577).
- Add missing default values to the
read_*_from_stdin
binds (GH-103619). - Avoid multiple lookups in
Dictionary::operator[]
(GH-103647). - Fix
AHashMap
constructors reserving too few elements (GH-103698). - Optimize
Object::cast_to
by assuming no virtual and multiple inheritance, gaining 7x throughput overdynamic_cast
(GH-103708). - Optimize
Array.resize
by usingmemset
(through newis_zero_constructible
type trait) (GH-103759). - Fix translation remaps incorrectly falling back (GH-103838).
- VideoStreamPlayer: Redraw when stream resolution changes (GH-103912).
- Add C array constructor to
Span
(GH-103923). - Add iteration to
Span
(GH-103924). - Move
CowData
find
,rfind
andcount
toSpan
(GH-103932). - Add
Span
conversion toLocalVector
(GH-103936). - Remove outdated
vformat
comments/workarounds intime.cpp
(GH-103939). - Improve error messages for
add_property_info()
(GH-103944). - Directly use segment points in Geometry2D/3D function parameters (GH-103993).
- Remove unneeded
read_only
check forArray
const operator (GH-103999). - Add const iteration support to
Dictionary
(GH-104047). - Add
FixedVector
template - a collection that can be used completely on the stack (GH-104055). - Fix
Invalid Task ID
errors inResourceLoader
(GH-104060). - Do not iterate
Dictionary
withget_key_at_index
(GH-104082). - Fix missing binding for
NOTIFICATION_WM_POSITION_CHANGED
(GH-104083). - Use
resize_zeroed
instead ofresize
thenfill(0)
in several places (GH-104109). - Add missing Projection constructor with 16
real_t
values (GH-104113). - Bind
SceneState
methodsget_path
andget_base_scene_state
(GH-104115). - Add
Memory::alloc_static_zeroed
to allocate memory that's filled with zeroes (GH-104124). - Remove
String
clipping constructors (GH-104127). - Fix
Marshalls.utf8_to_base64
shows"ret.is_empty()" is true
error for empty string (GH-104155). - Recycle
zstd
decompression context if possible, avoiding repeated allocations (GH-104178). - Add missing
String + char *
function, to avoid unnecessary right side allocation toString
(GH-104182). - Expand
is_zero_constructible
coverage (GH-104183). - Optimize
FileAccessCompressed::get_buffer
by usingmemcpy
(GH-104187). - Fix hash issue with OptimizedTranslation caused by signed char (GH-104218).
- Fix tangent baking for curves when cubic derivatives are 0 (GH-104221).
- Optimize thread pools by avoiding needless locks and unlocks of the
task_mutex
(GH-104237). - Simplify and optimize
Math::absf
implementation to use::fabs
and::fabsf
(GH-104273). - Harmonize
String
,Vector
andLocalVector
find
andrfind
(GH-104286). - Don't free already freed scenes when changing
SceneTree
current scene (GH-104335). - Optimize
ClassDB::get_direct_inheriters_from_class
(GH-104355). - Optimize
Array
methods withSWAP
/std::move
(GH-104374). - Optimize
Object::notification
by avoiding runtime branches (GH-104381). - Optimize
Color::to_html
by allocating less (GH-104389). - Do not iterate
Dictionary
withDictionary::keys()
(GH-104432). - Add
resize_initialized
andresize_uninitialized
toVector
andLocalVector
(GH-104522). - Use
append_
instead ofparse_
forString
methods (GH-104556). - Include
intrin.h
for MSVC (GH-104570). - Expose TriangleMesh api functions wrapped for scripting (GH-104625).
- Add move semantics to
Ref
(GH-104649). - Add missing
initializer_list
constructor to TypedDictionary (GH-104664). - Remove redundant
ClassDB::locker
declaration (GH-104668). - Optimize
LocalVector::push_back
for non-trivial objects (GH-104693). - Use
LocalVector
inRID_Owner::get_owned_list
(GH-104738). - Image: Improve
is_invisible
function (GH-104741). - Image: Fix typo at
_set_color_at_ofs
withFORMAT_RGB565
(GH-104745). - Fix reversed hex order in
Color::to_html
(GH-104746). - Add missing "/" to "center" tag in
__print_line_rich()
(GH-104774). - Rename
_strlen_clipped
tostrnlen
(and use the system equivalent forchar *
inputs) (GH-104815). - Add and require
GDSOFTCLASS
forObject
subclasses that want to cast but do not useGDCLASS
(GH-104844). - Fix time display in MovieWriter window title and console output (GH-104856).
- Optimize Color HTML validation (GH-104885).
- Optimize Color.html() (GH-104897).
- CryptoCore: Use
size_t
for buffer sizes to fix encoding/sums of 2.0+ GiB files (GH-104960). - PortableCompressedTexture: Fix create compressed format from image (GH-104962).
- Always use
String
asStringName
backing internally (GH-104985). VariantWriter::write
: Fix writing negative infinity whenp_compat
is true (GH-104991).- Optimize
ClassDB::get_inheriters_from_class
(GH-105020). - Decouple
GDCLASS
fromClassDB
(GH-105028). - Fix caching of objects' class name pointer in
Object
instances (GH-105099). - Add uri_file_decode to handle + in file names (GH-105130).
- Fix
FileAccessCompressed
claiming one byte more than it actually has (GH-105144). - Add bswap methods to the
PackedByteArray
bindings (GH-105145). - Add a safety check for
CowData::_unref()
, for when something tries to add elements during destruction (GH-105146). - Change
get_class_static
to returnStringName
(GH-105166). - Remove misleading and incorrect notes about endianness. Fix FileAccess and StreamPeer not doing what name suggests (GH-105178).
- Fix Thread crash when using invalid callback signature. And invalid message formatting (GH-105180).
- Use non-recursive mutex for
StringName
, improving performance (GH-105192). - Use validated key in
Dictionary::has
(GH-105205). - Add GDSOFTCLASS to FileAccess and DirAccess derived classes (GH-105210).
- Fix BBCode print with nested
[
(GH-105247). - Smoke test: Log an error if
reserve()
is called with fewer elements thansize()
(GH-105278). - Fix custom scene argument if it's referenced as UID (GH-105288).
- Add
--scene
command line argument (GH-105302). - Supress unused paramater warning conflicting with if constexpr (GH-105326).
- Allow inserting at end of array again (GH-105334).
- Optimize
Array
min
/max
methods (GH-105392). - Add thread safety to Object signals (GH-105453).
- Increase chunk limit for known problematic
RID_Owners
(GH-105470). - Fix cases where
_get
returned true erroneously (GH-105537). - Remove 2^31 cap on RID allocations (GH-105538).
- Ensure
VARIANT
instances are actuallyVT_BSTR
before treating them as such inOS_Windows::get_video_adapter_driver_info()
(GH-105548). - Reuse and optimize sorting logic for
List
,SelfList
, andHashMap
(GH-105629). - Improve ConfigFile get_sections and get_section_keys by returning Vector (GH-105700).
- Improve Window's
_validate_property()
(GH-105730). - Print script backtrace in the crash handler (GH-105741).
- Remove unnecessary
StringName
idx
cache in_Data
to reduce its size (GH-105760). - Use
PagedAllocator
forStringName
to accelerate and localize allocations (GH-105761). - Optimize static allocations by removing unused
Memory::alloc_count
(GH-105767). - Add
GLOBAL_GET
cached macros (GH-105910). - Use
__fastfail()
in MSVC error macros (GH-105916). - Avoid extra copy/validation of keys in
Dictionary::has_all
(GH-105922). - Deprecate
PackedDataContainer
(GH-105990). - Only update case sensitive fuzzy searching within
set_query
(GH-105996). - Optimize
HashMap
insertion by removing duplicate computation of hash and position (GH-106020). - Reduce allocations/copies in
String::format
(GH-106027). - Add Dictionary Type Hint to SVGTexture (GH-106087).
- Fix empty lines being added for errors with no script backtrace (GH-106089).
- Fix for debugging typed dictionaries (GH-106170).
- Support 64-bit sizes in Compression (GH-106190).
- Faster
Node::get_child_count()
(GH-106226). - Fix wrong children range when duplicating node (GH-106281).
- Remove translation loading logic that was never used (GH-106295).
- Improve
Timer::start
error message (GH-106307). - Avoid single character
String
allocations when appending characters (GH-106309). - Refactor
TextEdit::search
to be more robust to failure (GH-106342). - Optimize
HashMap
size for zero-sized Allocators (GH-106353). - Move bisect functionality to
Span
and deduplicate code (GH-106357). - Accelerate
HashMap
andHashSet
lookup by usingif
based modulo in loops (GH-106569). - Add 64-bit versions of core power of 2 functions (GH-106606).
- Prevent comparison of items with themselves while partitioning sort arrays (GH-106661).
- Use
LocalVector
forRingBuffer
(GH-106689). - Expose helper methods for converting UIDs (GH-106717).
- Improve error messages in ResourceLoader (GH-106720).
- Simplify implementation of
errarray
(GH-106754). - Update
time.cpp
year/unix time conversions to be constant time (GH-106759). - Move compatible functionality from
GDCLASS
toGDSOFTCLASS
(GH-106775). - Theora: Fix UV channel offset when cropping region (GH-106779).
- Remove redundant
data.inside_tree
(GH-106903). - JavaClassWrapper: Don't discard overloaded methods that differ by object type (GH-106908).
- Add missing headers in
FixedVector
andSpan
(GH-106954). - Remove
OAHashMap
, in favour ofAHashMap
(GH-106996). - Expose
WorkerThreadPool.get_caller_task_id()
(GH-107029). - Add
WorkerThreadPool.get_caller_group_id
(GH-107040). - Fix
ResourceSaver
saving default value ofResource
(GH-107049). - Fix various race conditions with capturing of script backtraces (GH-107058).
- Fix async resource loading progress on empty
p_original_path
(GH-107114). - Revert some instances of
Math::INF
back to 1e20 (GH-107151). - Add Ogg Theora support to MovieWriter (GH-107188).
- Fix resources wrongly duplicated upon instantiating inherited scenes (GH-107219).
- Bitpack node auto translation values (GH-107283).
- Add missing Color hash function (GH-107289).
- Expose
Node.can_auto_translate()
(GH-107344). - Fix
script
property of custom resources inherited from scripts are not saved (GH-107355). - Add a proper error message when trying to add node to a group with an empty name (GH-107375).
- Stop
FileAccess::fix_path
from emitting errors for invalid UIDs (GH-107402). - Add a smoke test for non-empty
nullptr
Span
(GH-107444). - Improve error messages for method calls expecting only 1 argument (GH-107457).
- PCKPacker: Fix first file being written mis-aligned (GH-107482).
- Fix data race in remote debugger; handle errors (GH-107643).
- Fix invalid resize after appending (GH-107646).
- Enhance bindings of deep resource duplication (GH-107770).
- Use
reserve
inLocalVector::resize
, to restore expected growth behavior (GH-107796). - Always decode
--scene
argument UID path (GH-107848). - Image: Fix
is_invisible
detection for RGBAH and RGBAF (GH-107898). - Fix typed collections using same reference across scene instances (GH-108216).
- Never duplicate Scripts when duplicating resources recursively (GH-108453).
- Fix issue with array comparison reference (GH-108459).
- Remove an unnecessary include of main/ code from core/ (GH-108464).
- Fix releasing the old unique name when renaming a Node (GH-108684).
- Ensure that threads only process one pump task (GH-108697).
- Fix internal JSON stringify not preserving p_full_precision (GH-108831).
- Prevent infinite recursion during printing (GH-108860).
- macOS: Make document type icons look closer to current macOS system type icons (GH-109008).
- Fix external resource IDs being lost for default properties (GH-109122).
- Allow processing low priority threads on calling thread in the WTP (GH-109151).
- Fix
printraw
causing infinite recursion inLogger._log_message
(GH-109172). - Fix FindClass() failing to find Dictionary on Android leading to crash (GH-109188).
- Harden jni_find_class() and its setup/cleanup (GH-109227).
- Automatically unregister loggers when script language is deinitialized (GH-109240).
- Fix symlink copy in
DirAccess::copy_dir
(GH-109276). - Fix
local_to_scene
duplication of typed dictionary (GH-109377). - Fix screen_orientation not being assigned on ios (GH-109478).
- Fix drive selection issue on Android (GH-109528).
- Don't use
alloca()
inObject::emit_signalp()
to prevent stack overflow (GH-109612). - Fix regression in mechanism to hold objects while emitting (GH-109770).
- Fix typo in ScriptLanguageExtension::lookup_code (GH-109772).
- Rename SVGTexture to DPITexture (GH-109811).
- Fix safe area regression on older Android versions (GH-109818).
- Make
SceneTree
not crash when receiving a notification without a root being set (GH-110041). - Fix Resource duplicate calls
ImageTexture::set_image
with an invalid image (GH-110215).
Documentation
- Overhaul Node3D documentation (GH-87440).
- Replace XML codeblock spaces with tabs (GH-89819).
- Overhaul CanvasItem documentation (no
draw
methods) (GH-93735). - Move and simplify Object's
connect
description slightly (GH-94143). - Add tip to use more specific return type for
_iter_get()
(GH-97821). - Improve documentation on "physics spiral of death" in ProjectSettings (GH-98250).
- Mention
DUPLICATE_SIGNALS
only affectsCONNECT_PERSIST
signals (GH-99631). - Clarify ambiguous String comparison methods documentation (GH-100849).
- Add explanation for the
PROPERTY_HINT_DICTIONARY_TYPE
data format (GH-100926). - Update capsule documentations for size constraint clarifications (GH-101732).
- Specify
max_slides
must be greater than 0 (GH-101776). - Add a note about
Object._init
and required parameters in relation to@rpc
(GH-102123). - Fix
LogMultiplayer
example in documentation (GH-102283). - Update OptionButton documentation (GH-102350).
- Improve documentation of some
Resource
methods (GH-102499). - Add basic descriptions to the BreadcrumbMarker enum (GH-102511).
- Add info about
set_deferred
for CollisionShape3D disabled property (GH-102520). - Use float instead of integers for durations in
Tween
documentation (GH-102523). - Replace references from TileMap to TileMapLayer in documentation (GH-102561).
- Clarify forward direction for
VehicleBody3D
(GH-102610). - Better explain texture repeat (GH-103012).
- Fix CanvasLayer 'Follow Viewport' documentation to match its behavior (GH-103111).
- Document that
memdelete()
is the GDExtension C++ version offree()
(GH-103231). - Clarify requirement for
action
match inInputEvent.is_action_pressed
(GH-103448). - Fix InputEventMouseMotion reference (GH-103462).
- Fix CharacterBody's
wall_min_slide_angle
doc (GH-103507). - Document Glow Upscale Mode project setting only affecting Forward+/Mobile (GH-103519).
- Improve BaseMaterial3D/Label3D/SpriteBase3D's
fixed_size
documentation (GH-103665). - Docs: Fix WorkerThreadPool wrong max thread value description (GH-103701).
- Link
Script
method documentation to details about returned dictionaries (GH-103716). - AudioEffectCompressor: Recommend HardLimiter over deprecated Limiter (GH-103847).
- Update logo/run icon path in platform READMEs (GH-103891).
- Fix BBCode tag for NativeMenu class reference (GH-103893).
- Fix incomplete description for
ResourceLoader.list_directory()
(GH-104006). - Clarify
XRController3D
get_input
name corresponds to actions in the action set (GH-104103). - Improve documentation for return value of
Packed*Array.resize
(GH-104258). - Document RichTextLabel
fgcolor
andbgcolor
padding behavior (and risk of overlap) (GH-104284). - Fix even more miscellaneous oddities around the class reference (GH-104333).
- Fix typos in
ProjectSettings
class reference (GH-104361). - Add instruction to wrap nested classes in
JavaClassWrapper
(GH-104364). - Add
Game
workspace to documentation and autocomplete (GH-104376). - Fix
hex_decode()
example inString
andStringName
(GH-104378). - Minor doc update for
low_processor_mode_sleep_usec
editor settings (GH-104391). - Add color space alpha notes to Color documentation (GH-104410).
- Physics Interpolation - Fix project setting tooltip (GH-104525).
- Clarify that AcceptDialog's
custom_action
is only triggered if action is non-empty (GH-104530). - Add clarifications to PhysicsDirectSpaceState docs on how to get their instance (GH-104533).
- Document CSGShape3D updates being deferred until the next frame (GH-104561).
- Deprecate NavigationServer
map_force_update()
(GH-104762). - Clarify that
Window.dpi_changed
signal is supported on Linux (Wayland) (GH-104889). - Cleanup and unify
DisplayServer
screen methods and documentation (GH-104907). - Docs: Add note about console wrapper to
get_stdin_type
(GH-104918). - Improve
Camera2D.zoom
description to be less ambiguous (GH-104941). - Change "GDExtension example in C++" links to accommodate the new docs file structure (GH-104973).
- Fix differences between RayCast2D and RayCast3D documentation (GH-105048).
- Fix differences between PhysicsDirectSpaceState2D/3D docs (GH-105051).
- Fix incorrect data format in RenderingDevice docs (GH-105053).
- Fix typo in common note for packed arrays (GH-105054).
- Fix typo in Window's
exclude_from_capture
(GH-105055). - Fix miscellaneous oddities around the class reference (part 4) (GH-105073).
- Add missing word to canvas layer docs (GH-105075).
- Fix some differences between OpenXRInterface and XRHandTracker docs (GH-105095).
- Fix CodeEdit typos (GH-105126).
- Fix misleading
Material::render_priority
description (GH-105133). - Fix typos in
Image
documentation (GH-105161). - Fix typos in
UDPServer::poll
documentation (GH-105170). - Improve documentation on
is_nan()
andNAN
constant (GH-105287). - Improve get_cursor_shape() documentation (GH-105357).
- Fix typo in the description of RandomNumberGenerator.state (GH-105404).
- Normalize description of
ResourceLoader.list_directory()
(GH-105484). - Document
Vector2.from_angle()
not always returning a normalized vector (GH-105488). - Update ProgressBar description (GH-105574).
- Document
SceneTree.set_multiplayer()
should be called in_enter_tree()
(GH-105687). - Fix invalid AnimationNode documentation syntax (GH-105859).
- Fix grammatical error in MeshInstance3D documentation (GH-105886).
- Fix typo in
sqrt
classref (GH-105895). - Clarify the conditions that need to be met for a valid file name in Godot (GH-105932).
- Fix a typo in the
Light3D
documentation (GH-106002). - Clarify the input action that affects
AcceptDialog.dialog_close_on_escape
(GH-106157). - Docs: Remove redundant info on the enum types used (GH-106159).
- Add missing description of
FileAccess.store_half
behavior on error (GH-106162). - Fix description of
EditorProperty
'sdraw_background
anddraw_label
(GH-106179). - Document the FileAccess read/write cursor (GH-106191).
- Fix type error in
InputEventAction.action
description (GH-106195). - Doc: Add search keywords for
Vector2/3.limit_length
method (GH-106205). - Improve SpinBox class documentation (GH-106327).
- Improve documentation for
Array.get()
andPacked*Array.get()
methods (GH-106369). - Document output parameters of
EditorImportPlugin.import
(GH-106439). - Fix typo in
Node.get_child
documentation (GH-106452). - Improve description of
Control.scale
(GH-106476). - Clarify
String.is_subsequence_of()
working differently fromString.contains()
(GH-106613). - Add description for
Skeleton3D.bone_list_changed
(GH-106791). - Document EditorProperty behavior when the node isn't fully ready yet (GH-106807).
- Clarify
SceneTree.get_frame()
description (GH-106862). - Improve the
PhysicsShapeQueryParameters3D
's description (GH-106911). - Update CameraFeed document for Android (GH-106917).
- Fix extra parenthesis in
Array.slice
description (GH-107020). - Recommend Jolt Physics in SoftBody3D class reference (GH-107022).
- Clarify
set_initial_value()
(GH-107062). - Clarify
offset.y
behavior for Sprite2D vs Sprite3D (GH-107064). - Fix incorrect note about holes in HeightMapShape3D (GH-107068).
- Link demo project in AStar2D and AStarGrid2D documentation (GH-107069).
- Fix copy-paste error in Viewport classref (GH-107081).
- Clarify existence of custom project settings (GH-107082).
- Update CameraServer document for Android (GH-107087).
- Fix miscellaneous oddities around the class reference (part 5) (GH-107143).
- Clarify parameters in
@GlobalScope.wrap()
being inclusive/exclusive (GH-107166). - Clarify the data param in the docs for RD.texture_create (GH-107172).
- Clarify behavior of
Node.physics_interpolation_mode
in the class reference (GH-107212). - Clarify behavior of
Timer.stop()
(GH-107228). - Update
Shortcut
class reference (GH-107252). - Document the direction that directional and spot lights emit light in (GH-107279).
- Improve description of fuzzy matching in editor settings documentation (GH-107368).
- Add clarification to
AudioStream.get_length
(GH-107420). - Fix outdated
MODE_FULLSCREEN
description (GH-107445). - Fix various errors in the class reference (GH-107472).
- Docs: Add few notes about screen capture (GH-107474).
- Add warning about infinite recursion to NavigationAgent docs (GH-107509).
- Add a note about navigation mesh baking issues when using
0
for theagent_radius
(GH-107532). - Improve
ResourceLoader.get_dependencies()
's description (GH-107554). - Add a note about
_notification()
being multilevel (GH-107564). - Clarify note in documentation about childing rigid bodies (GH-107565).
- Remove angle constraint mention from SkeletonModification2DFABRIK class docs (GH-107567).
- Docs: Fix typo and spacing in vector coordinates (GH-107576).
- Reword
text_editor/completion/add_type_hints
's description (GH-107601). - Misc: Fix typo in cmd arg description (GH-107607).
- C#: Fix Shortcut example (GH-107609).
- Clarify
_set
/_get
description (GH-107823). - Docs: Various grammar and spelling fixes (GH-107895).
- Specifiy return value in several store methods in
FileAccess
(GH-107938). - Fix OptionButton ID value range documentation (GH-107940).
- Document
Gradient.sample()
clamping behavior (GH-107976). - Clarify
visible_characters
(GH-108029). - Document that
native file dialog
is only available on Android 10+ devices (GH-108043). - Add example of using
get_connection_list_from_node
(GH-108056). - Fix signature in docs of
EditorImportPlugin.GetOptionVisibility
(GH-108113). - Clarify initialization of scene tiles (GH-108166).
- Fix image download example code (GH-108230).
- Class docs: Fix ReflectionProbe note regarding Compatibility renderer support (GH-108271).
- Clarify that Network Mode is not mandatory for plugins (GH-108285).
- Update
auto_unfold_foreign_scenes
description (GH-108590). - Document
AnimationMixer.animation_started
not being emitted for looping animations (GH-108615). - Document Translation plurals requiring the use of the gettext PO format (GH-108617).
- Clarify type inference in ProjectSettings Inferred Declaration warning (GH-108650).
- Fix spinbox formatting to fix linking (GH-108782).
- Update documentation for
DriverResource
enum (GH-108906). - Add the C# code equivalent to the documentation of Viewport.GetTexture() (GH-109010).
- Remove outdated note from EditorScript description (GH-109074).
- Add search keywords for CheckButton and ButtonGroup (GH-109089).
- Update HDR 2D documentation to include Compatibility support (GH-109095).
- JavaClassWrapper: Add example to invoke constructor (GH-109115).
- Improve documentation related to GridMap mesh/lightmap baking (GH-109164).
- Clarify the behavior of
RigidBody.CENTER_OF_MASS_MODE_AUTO
(GH-109180). - Fix inaccurate description of
get_current_rendering_driver_name
(GH-109208). - Document
Tree.item_collapsed
also being emitted when the item is expanded (GH-109242). - Update _physics_process and _process docs to reflect implementation (GH-109320).
- Document
OS.get_video_adapter_driver_info()
being slow to call the first time (GH-109344). - Add "dropdown" keyword to OptionButton and MenuButton (GH-109402).
- Docs:
PhysicsShapeQueryParameters3D
fix function used in code example (GH-109504). - Clarify the types
InputEvent.is_action_type()
will returntrue
for (GH-109552). - Docs: Mention 'build version' in iOS, macOS, and visionOS export docs (GH-109577).
- Document ClassDB not storing information on user-defined classes (GH-109747).
- Fix incorrect statement on thread (un)safety in AStar class reference (GH-109785).
- Fix typo in doc of
text_editor/theme/highlighting/gdscript/string_name_color
(GH-109797). - Docs: Mark
SVGTexture
as experimental (GH-109805). - Clarify that
EXCLUDE_FROM_CAPTURE
only works with native windows (GH-109813). - Document
REGION_RECT
canvas shader built-in in Sprite2D region property (GH-109877). - Update
ProjectSettings
HDR 2D documentation to include Compatibility (GH-110065).
Editor
- Add a flag to make the connection automatically emit the source object (GH-60143).
- Allow to override editor settings per project (GH-69012).
- Allow to ignore debugger error breaks (GH-77015).
- CodeEditor: Make possible to select and copy error text (GH-77776).
- Add syntax highlighting for ConfigFile/TSCN/TRES/project.godot (GH-77972).
- Make "access as/revoke unique name" a checkbox (GH-82216).
- Don't save unnecessarily with
save_before_running
(GH-90034). - Add credits roll (GH-90092).
- Add Open Dock shortcuts (GH-90226).
- Add include/exclude to
FindInFiles
for filtering files (GH-90558). - Fix help overview tooltip flicker (GH-91264).
- Fix documentation for built-in scripts (GH-92280).
- Revert Solarized Dark theme to Godot 3 (GH-92542).
- Fix ProjectSettings name casing options and missing String methods (GH-94883).
- Prompt user to terminate if quitting while project is running (GH-95392).
- Allow empty click in scene tree dock (GH-95540).
- ScriptEditor: Remove obsolete completion cache (GH-95585).
- Fix dropping Node into script on non-empty line (GH-95914).
- Fix copying a Node with a signal potentially resulting in an editor crash (GH-96372).
- Autocompletion: Don't add parenthesis if
Callable
is expected (GH-96375). - Add
PROPERTY_HINT_INPUT_NAME
for use with@export_custom
to allow using input actions (GH-96611). - Fix spaces converted to tabs in triple quote strings (GH-96925).
- Enable Auto Reload Scripts on External Change by default in the editor settings (GH-97148).
- Update Inspector when renaming a file via File System Dock (GH-97348).
- SceneImportSettings update_timer should be a oneshot (GH-97837).
- Rename internal
view_menu
in 3D editor code (GH-98133). - Translate main thread name in the editor instead of running project (GH-98379).
- Automatically set
text_editor/external/exec_flags
based on the editor specified inexec_path
text box (GH-98846). - Add "Close Tabs Below" option to script editor context menu (GH-98847).
- Drop preload Resources as UID (GH-99094).
- Add named
EditorScript
s to the command palette (GH-99318). - Add
double
to the version full build string when using a double-precision build (GH-99590). - Allow to select multiple remote nodes at runtime (GH-99680).
- Add a
TouchActionsPanel
to Android Editor (GH-100339). - Remember state of built-in script/shader checkbox (GH-100379).
- Always update
.tscn
name when "Save Scene As…" is pressed (GH-100430). - Add borders to
BitMap
inBitMapEditor
(GH-100761). - EditorNode: Add function to load file as either scene or resource (GH-100877).
- Don't initialize editor when exiting (GH-101765).
- Mark main screen plugin names for translation (GH-102101).
- Fix Error when connecting signal with unbinds not yet existing function (GH-102258).
- Do not require editor restart when changing selection box color (GH-102281).
- Eliminate interior mutability in
get_selected_node_list
(GH-102282). - Improve drag and drop into array property editors (GH-102534).
- Use
FlowContainer
forEditorNetworkProfiler
bar (GH-102576). - Fix error when toggling comment with empty lines (GH-102601).
- Prevent
changed
signal spam on resource reload (GH-102650). - Fix empty type removal in theme editor causing all empty types to be deleted (GH-102846).
- Don't synchronize scripts with errors (GH-102933).
- Add editor setting to override tablet driver (GH-102940).
- Prompt to Save As when saving all scenes (GH-102990).
- Replace UID and Surface upgrade tools with universal one (GH-103044).
- Fix EditorObjectSelector popup size (GH-103125).
- Avoid some excessive edits of resources (GH-103129).
- Minor adjusts in the
Show in Filesystem
code inSpriteFrames
editor (GH-103218). - Fix vbox separation in sections with
PROPERTY_USAGE_ARRAY
(GH-103309). - Make
EditorProperty
and its childEditorProperty
behave like sibling nodes when handling mouse events (GH-103316). - Keep ProjectSettings overrides right below the original setting (GH-103336).
- Don't hard-code setting list in DependencyEditor (GH-103393).
- Improve path validation in ScriptCreateDialog (GH-103397).
- Add Save & Reload option to
Reload Saved Scene
(GH-103402). - Fix TextEdit scrolls wrong on text selection (GH-103410).
- Set editor's translation domain at root node (GH-103447).
- Restore "Show in File Manager" button functionality in
ProjectManager
(GH-103454). - Reorder properties in NoiseTexture2D/3D (GH-103631).
- Redraw inspector section when cursor enters and exits header to update hover state (GH-103670).
- EditorHelpBit: Fix symbol type name capitalization for text files (GH-103689).
- Fix forcing
ViewportTexture
after selecting a viewport in the "Pick a Viewport" popup (GH-103692). - Update script modified times when saved in EditorNode (GH-103695).
- Don't edit objects when loading folding (GH-103697).
- Re-grab FileSystem focus after rescan (GH-103734).
- Inspect SceneTree node when dragged over (GH-103738).
- Remove unused Reload button (GH-103762).
- Update
MultiNodeEdit
property list on edited nodes' property list changed (GH-103764). - Fix ownership when pasting non root with child nodes in new scene (GH-103769).
- Validate custom directory when project is started (GH-103796).
- Fix recovery mode lock file not being cleared on import/export (GH-103805).
- FindReplaceBar: Fix "Replace (All)" buttons repositioning, improve "Hide" button visual feedback (GH-103806).
- Save queued
ProjectSettings
changes immediately when settings dialog is closed (GH-103816). - Make project manager's "last edited" field display use local time instead of UTC (GH-103833).
- Add Embed Game Window shortcut hotkeys support for
suspend/pause
andnext frame
buttons (GH-103841). - Fix stuck editor cameras and fix 3D error spam for non-finite transforms (GH-103845).
- Allow opening a project in verbose mode from the Project Manager (GH-103875).
- Improve Sphere gizmo performance (GH-103910).
- Debugger: Allow locating VRAM resource by double-clicking (GH-103949).
- Fix global classes can't be used in the Evaluator (GH-103979).
- Add "Paste as Unique" option to the editor resource picker dropdown (GH-103980).
- Improve editor 2D/3D main screen auto-switching logic (GH-104010).
- Improve Audio Stream Player Gizmo Performance (GH-104016).
- Defend against directories without trailing slashes (GH-104022).
- Don't show Extend Script option for built-in scripts (GH-104031).
- Fix debugger's memory leak when project closes itself (GH-104050).
- Improve default/no query quick open dialog behavior (GH-104061).
- Fix
Game
view visual streaking when selecting nodes withPhysics Interpolation
enabled (GH-104089). - Focus
Don't Save
inReload Saved Scene
and don't save unmodified scenes (GH-104102). - Don't allow empty string when splitting allowed types and allowed subtypes in
_is_drop_valid()
in EditorPropertyArray (GH-104152). - Fix error panel auto-hiding (GH-104169).
- Fix wrong height for top editors in the inspector (GH-104181).
- Fix Run Instances window being too big in single-window mode for window at minimum size (GH-104228).
- Fix
ThemeEditor
being too wide for small screen or minimized window (GH-104231). - Fix Node dock broken right after opening project (GH-104235).
- Create .uid files for detected new files (GH-104248).
- Prompt to restart when project data (.godot) is missing (GH-104252).
- Set window position when running project in maximized or full-screen mode to ensure it is opened on the correct screen (GH-104253).
- Fix editor crash when inspecting 2 objects handled by the same plugin (GH-104296).
- Fix editor crash on overrides for non-existent input mappings (GH-104306).
- Call plugin edit before making visible (GH-104318).
- Change root node transform warning to only show up for position (GH-104331).
- Fix blank popup menu on
EditorResourcePicker
(GH-104342). - Fix vbox separation for inspector subgroups (GH-104344).
- Scene Tree prevent inspecting node while scrolling (GH-104346).
- Fix use after free in the editor inspector section cleanup (GH-104362).
- Fix icons with non-ASCII file names in project manager (GH-104403).
- Simplify
ScriptEditorDebugger::_parse_message
; separate into handler functions (GH-104425). - Fix embedded help menu icons (GH-104441).
- ColorChannelSelector: add tooltip, fix
toggle_button
repositioning and channels autotranslation (GH-104474). - Hide 3D mode in Game view if the feature is disabled (GH-104482).
- EditorResourcePicker: Add
Quick Load
button (GH-104490). - Fix crash when removing breakpoints from DAP, and multiple fixes (GH-104523).
- Fix regressions regarding multiple remote object selection (GH-104573).
- Change
.build
extension for engine build profiles to.gdbuild
(GH-104587). - Remove New prefix from EditorResourcePicker (GH-104604).
- Project manager: Add option to backup project when it will be changed (GH-104624).
- Fix
_delete_internal_files()
receiving wrong path (GH-104669). - Add several new physics-related icons (GH-104682).
- Fix create root node dialog to follow preferred node name casing (GH-104711).
- Use the correct root inspector when making elements moved in an array visible (GH-104756).
- Handle null values for object types, as seen in typed dictionaries (GH-104772).
- Fix EditorNode3DGizmo::add_solid_box() GPU stalling (GH-104777).
- Fix setting root inspector's
follow_focus
totrue
whenupdate_tree()
method ends (GH-104785). - Fix
Cannot get class
error when searchingTextFile
/OtherFile
in FileSystem dock (GH-104789). - Fix remote object inspector through DAP (GH-104842).
- Fix input config dialog overflow on Android Editor (GH-104849).
- Remember last POT generator path (GH-104886).
- Refactor
SceneDebugger::parse_message
into handler functions (GH-104895). - Fix Edit option for sub-resources (GH-104938).
- Fix
BitMapEditor
crash when bitmap is empty (GH-104957). - Display PortableCompressedTexture's format in inspector preview (GH-104963).
- Cleanup QuickOpenDialog history and fix UID errors (GH-104974).
- Android Editor: Add an editor setting to enable/disable
TouchActionsPanel
(GH-105015). - Fix error spam when inspecting remote nodes outside the tree (GH-105034).
- Add UID to file tooltip (GH-105069).
- Validate custom directory when running from editor (GH-105103).
- Reset
ProjectSettings
scroll when changing category (GH-105132). - Android Editor: Add new actions and enhancements to
TouchActionsPanel
(GH-105140). - Fix exported Node/Resource variables resetting when extending script in the SceneTreeDock (GH-105148).
- Use separate
EditorFileDialog
for "Pack Project as ZIP" (GH-105154). - Move
THREADS_ENABLED
check after common imports (GH-105159). - Add
Engine Version Update Mode
button to Project ManagerQuick Settings
(GH-105162). - Remove focus draw for editor inspector elements (GH-105197).
- Remove "dummy" renderer from the editor dropdown (GH-105216).
- Search custom types when filtering on type in the SceneTree dock (GH-105224).
- Fix visual shader editor popups not using editor scale (GH-105226).
- Add fuzzy filtering to the script filtering (GH-105239).
- Add fuzzy search to method filtering (GH-105240).
- Add enable checkboxes to editor sections (GH-105272).
- Fix issue with playing a custom scene from a UID (GH-105277).
- Update donation link to
fund.godotengine.org
(GH-105283). - Rename editor setting
Engine Version Update Mode
toCheck for Updates
(GH-105291). - Support custom features in project settings dialog (GH-105307).
- TextureEditorPlugin: Add borders to 3D and Layered editors (GH-105310).
- Add separate editor accessibility mode setting (GH-105314).
- Add inspector support for typed property hint formats (GH-105368).
- FileSystemList: Fix edit popup not accounting scroll position (GH-105378).
- Fix Sublime text external editor Exec Flags setting (GH-105442).
- Fix division by zero when scaling (GH-105446).
- Add
EditorInterface::close_scene()
(GH-105502). - Embed TouchActionsPanel directly into the Android editor UI (GH-105518).
- Make the position and the size of FileSystem controls more precise (GH-105560).
- Fix EditorInspector tooltip disappearing in special cases (GH-105576).
- Allow Inspector Section Checkboxes to hide features, Add "On" text to checkboxes (GH-105623).
- Hide
one-click deploy
button on Android and XR editor (GH-105636). - Change editor button focus mode to
FOCUS_ACCESSIBILITY
(GH-105678). - Make documentation ignore undocumented private signals (GH-105691).
- Add inline color pickers to script editor (GH-105724).
- Walk up inheritance hierarchy when finding which script's docs to open (GH-105806).
- Fix Signals dock only un-doubling parent class's first signal (GH-105811).
- Remove deprecated
engine_version_update_mode
editor setting (GH-105844). - Fix group name completion for
get_node_count_in_group
(GH-105860). - Fix empty Script Editor members overview visible (GH-105883).
- Fix class reference discrepancy when using
--doctool
with TextServerFallback (GH-105890). - Add original index field to fuzzy search result (GH-105930).
- Make
script_class_get_icon_path()
return any value whenr_valid
is passed (GH-105942). - Add editor setting to collapse main menu into a
MenuButton
(GH-105944). - Unify shortcut handling in FileSystem dock (GH-106041).
- Fix Set focus on right control on user action "show in file system" (GH-106049).
- Set current directory when using "Save Branch as Scene..." (GH-106108).
- Improve zoom performance in
Script
andShader
editors (GH-106117). - Allow undoredo actions to not make history unsaved (GH-106121).
- macOS: Additional improvements and fixes for embedded window support (GH-106134).
- Remove redundant
line_spacing
editor setting (GH-106137). - Fix editor crash when middle mouse button is clicked on empty space in scene tabs (GH-106151).
- macOS: Embedded window fixes (GH-106166).
- Remove
Don't save
button from "running project" confirmation modal (GH-106187). - Script Editor: Fix Ctrl-Drag unique-name Editable Children (GH-106193).
- Fix some extensions missing in resource load dialog (GH-106194).
- Force weights on custom editor fonts when variable (GH-106217).
- Add dropdown to Movie Maker button in editor run bar to access settings (GH-106231).
- Fix
EditorNode::drag_resource
crash (GH-106252). - Do not grab focus on filename
LineEdit
inEditorFileDialog
when outside the tree (GH-106260). - Make errors override warnings in script line coloring (GH-106297).
- Optimize unsaved history checking (GH-106326).
- AudioStreamImport: Make play and stop buttons accessible through keyboard (GH-106338).
- Allow running EditorScripts from the FileSystemDock (GH-106339).
- Draw checkerboard (or clear color) under embedded window (GH-106340).
- Fix EditorHelp's
FindBar
search index (GH-106432). - Fix highlighting warning and error issues (GH-106441).
- Fix redundant signal connection in
TextureRegionEditor
(GH-106453). - Fix potential crash when checking unsaved history (GH-106454).
- Android: Don't request
CAMERA
permission on editor startup (GH-106462). - Fix GridMap scenario crash when outside tree (GH-106464).
- Make FindInFiles globally accessible (GH-106500).
- Reintroduce the dragging method of Sprite2D's region_rect (GH-106553).
- Fix error when closing all scene tabs on the last tab (GH-106624).
- Fix MSVC warning for potential mod by 0 (C4724) (GH-106634).
- Fix MovieWriter window title in embedded mode (GH-106662).
- Fix print/error ordering issue in editor Output (GH-106674).
- Ignore rename shortcut when Remote tab is active (GH-106688).
- Fix Ignore External Changes Bug (GH-106714).
- Allow toggling UID display in path properties (GH-106716).
- Assign base path when creating Resource (GH-106750).
- Add highlight around docks when dragging (GH-106762).
- Duplicate Folder: Fix to remap references between duplicated files (GH-106763).
- Android Editor: Disable
nomedia
file creation for Android 11 (api level 30) (GH-106797). - Fix missing popup item defined in
EditorContextMenuPlugin
with slotCONTEXT_SLOT_FILESYSTEM_CREATE
(GH-106811). - Fix
EditorContextMenuPlugin
CONTEXT_SLOT_FILESYSTEM_CREATE
does not receive path information for some menus (GH-106820). - Reorganize scroll and zoom elements in the audio import dialog (GH-106831).
- Decrease font placeholder opacity in the editor theme (GH-106850).
- Align autoload popup columns to the left (GH-106861).
- Add class icon cache to EditorNode (GH-106866).
- Cleanup header includes for AddMetadataDialog (GH-106870).
- Improve Variant type menus in the editor (GH-106888).
- Remove parentheses around "All" option in the feature tag menu (GH-106905).
- Improve
EditorInspectorCategory
(GH-106923). - Fix
get_class_icon()
ignoring fallback (GH-106963). - Texture format error on export: Show project setting (GH-107015).
- Add file search QoL when focused on folder text box (GH-107028).
- Add support for taking embedded window screenshots (GH-107038).
- Explicit SceneDebugger
parse_message
handlers (GH-107046). - Fix scene reload causing segfaults when non-existent node is currently selected (GH-107067).
- Fix Debugger Dock bottom margin (GH-107102).
- Describe "Fuzzy Search" in Quick Open tooltip (GH-107108).
- Add
OS::open_with_program
for opening files/directories with a specific program on macOS (GH-107113). - Doc: Add "required" qualifier to methods (GH-107130).
- Fix crash when inspecting Variant export variable (GH-107133).
- Fix multi-instance behavior with embedded game view (GH-107182).
- Improve Input Map and Shortcuts editor (GH-107196).
- Fix capitalization for visionOS and tvOS (GH-107221).
- Add memory amount to output from the Copy System Info editor action (GH-107240).
- Fix
hint.radians_as_degrees
on Vector2 and Vector4 editor properties (GH-107248). - Fix Game runtime debugging in the Android Editor (GH-107251).
- Fix not being able to open directory in certain terminals (GH-107310).
- Filesystem dock: Fix thumbnail size not updating instantly after changing editor setting (GH-107323).
- ProjectSettings: Fix missing property hint of setting overrides (GH-107349).
- Unhide
one-click deploy
button on Android and XR editor (GH-107378). - Fix the editor shortcuts for the game menu on Android (GH-107389).
- Fix crash when
save_on_focus_loss
is enabled (GH-107397). - Fix CSV translation not updating after reimport (GH-107410).
- Fix FileSystemDock signal connection for path navigation text box (GH-107434).
- Fix some inspector action buttons not updating icon when theme changes (GH-107436).
- Fix favorite folder colors (GH-107455).
- Fix debugger inspector minimum size (GH-107467).
- Fix problems with scripts and metadata in remote objects (GH-107490).
- Avoid manipulating
PackedScene
cache when generating scene preview thumbnails (GH-107514). - Fix editing
ShaderInclude
causes aShader
to be edited (GH-107534). - Fix game view window not updating title when translation changes (GH-107581).
- Fix root node auto translation settings affecting editor root (GH-107584).
- Make
PROPERTY_HINT_GROUP_ENABLE
hide properties by default (GH-107591). - Add "See Migration Guide" button to the Project Manager (GH-107623).
- Add null check on generating thumbnails for PackedScene (GH-107630).
- Free nodes from instantiating if it is not a
Control
in the theme editor (GH-107632). - Fix crash in
ConnectionsDialog
(GH-107668). - Do not remove
SubViewport
nodes in thumbnail preview scene (GH-107676). - Clear current path when deselecting files (GH-107683).
- Don't update script documentation when exporting (GH-107685).
- Check UID to disable "Set as Main Scene" in FileSystemDock (GH-107686).
- Fix
doctool
crash and errors on macOS (GH-107700). - Fix
Evaluator
's format issues caused by special characters in the expression (GH-107748). - Swap UID and path buttons (GH-107766).
- Use one-based line numbers for external text editors (GH-107816).
- Fix aspect ratio of small thumbnails (GH-107818).
- Fix can't convert to ShaderMaterial in FileSystemDock (GH-107842).
- Fix Resource doesn't update when overwritten in editor (GH-107850).
- Expose
ScriptEditor.clear_docs_from_script
(GH-107862). - Fix ScriptEditor inline colors float handling (GH-107904).
- Fix updating project settings after move (GH-107929).
- Fix resizing error when generating thumbnails (GH-107934).
- Generate scene ID for created built-in Resources (GH-107943).
- Don't rename nodes when tree is invisible (GH-108017).
- Fix subinspector for parameter preview in visual shader editor (GH-108119).
- Properly show detach script button when script is added via inspector (GH-108122).
- Fix
PROPERTY_HINT_GROUP_ENABLE
display on hover (GH-108264). - Fix remote deselection not working when selection limit is reached (GH-108297).
- Fix filtered out nodes not getting deselected (GH-108312).
- Fix and improve auto-translation for
FindInFiles
(GH-108336). - Fix can't remove inspector plugins after reaching max count (GH-108377).
- Fix error when "Toggle Files Panel" in shader editor (GH-108381).
- Fix main editor title after changing language (GH-108396).
- Improve error when
update_doc()
fails (GH-108418). - Scroll scene tree dock when moving item(s) with keys (GH-108436).
- Fix ScriptEditor inline color wrong line number (GH-108440).
- Fix some Text Editor theme issues and clean up (GH-108463).
- Fix MissingNode
{get,set}_original_scene
bindings (GH-108531). - Fix unwanted resource duplication in the theme editor (GH-108533).
- Android Editor: Reduce default gizmo scale multiplier (GH-108570).
- Fix crash when specifying
--debug-server
(GH-108618). - Fix new autoload scripts using file name instead of user defined name (GH-108642).
- Fix error when dragging non-resource file (GH-108645).
- Prompt to save modified scene missing when quitting editor with running project (GH-108651).
- Cancel save dialog on editor exit (GH-108679).
- Fix debugger immediate disconnect (GH-108692).
- SpriteFramesEditor: Decompress texture before auto slicing sprite sheet (GH-108699).
- Fix the absolute
NodePath
was calculated incorrectly when "Reparent to New Node" (GH-108708). - Fix hidden scrollbar in editor settings (GH-108721).
- Fix
FindInFilesPanel
sizing issues (GH-108792). - Save the changes before duplicating resource files (GH-108816).
- Fix crash in SceneTreeDock when closing a scene with a selected node (GH-108883).
- Fix
ProgressDialog
errors during first scan (GH-108893). - Use
EditorUndoRedoManager
to track the property changes of the configuredInputEvent
in the plugin (GH-109016). - Prevent invalid and ambiguous tag names (GH-109058).
- Fix snapping logic in Range (GH-109100).
- Clear SceneTreeDock's previous node selection when removing edited scene (GH-109130).
- Use
point_grab_radius
setting inPolygon2DEditor
bottom panel editor (GH-109133). - Fix inconsistent thumbnail width (GH-109199).
- Fix inheriting from abstract classes dialog (GH-109203).
- Keep collapsed state for actions when modifying Input Map (GH-109259).
- Add new line when dropping onready on empty line (GH-109448).
- Fix remote tree max selection warning not showing properly (GH-109474).
- Don't open folders as file in script editor (GH-109522).
- SceneCreateDialog: Hide 3D Scene option when 3D editor is disabled (GH-109564).
- Strip empty deps when loading filesystem cache (GH-109614).
- Add hover styles to buttons in Script/Shader editor (GH-109672).
- macOS: Remove FEATURE_MOUSE from embedded display server (GH-109723).
- Fix/remove error about "Can't update documentation" when saving script (GH-109735).
- Fix editor resource tooltip crash on broken symlinks (GH-109766).
- Track last selection using ObjectID (GH-109801).
- Don't start editor as unsaved (GH-109825).
- Remove nearly-unused "default" range hint min/max (GH-109884).
- Rescale values to better utilize R128 range before snapping (GH-109887).
- Allow extending previously-non-abstract scripts that became abstract (GH-109903).
- Add single-object inspect command backwards compatible API for potential regression (GH-110043).
- Add missing range hint to
Viewport.oversampling_override
in the editor (GH-110094). - Fix Range scale overflow (GH-110107).
- Fix "SpriteFrames" editor not fully hidding the bottom panel (GH-110280).
Export
- Use project settings overrides with the target preset features instead of current platform features (GH-71542).
- Modify Windows template without rcedit (GH-75950).
- Update Windows icon cache after export (GH-101904).
- Convert
uid://
names tores://
when exporting files (GH-101954). - Fix apksigner execution failure on linux (GH-102171).
- Add shader baker to project exporter (GH-102552).
- Hide debug keystore export settings (GH-102910).
- Fix Inspector checkable button sizing (GH-102953).
- When code signing, specify which keystore is not found (GH-103000).
- Updates and fixes to the Android prebuilt export logic (GH-103173).
- Add "Go Online" button on Export Template Manager (GH-103235).
- [iOS export] Restore one-click deploy device enumeration using Xcode (GH-103590).
- Use
text_overrun
for project export errors (GH-103598). - Android: Convert
compress_native_libraries
to a basic export option (GH-104301). - Change unportable
echo
in the Linux/macOS debug launcher script (GH-104415). - Web: Use actual
PThread
pool size forget_default_thread_pool_size()
(GH-104458). - PCK: Move directory to the end of file, write exported/saved PCK in place (GH-105757).
- Improve editor progress reporting on the command line (GH-105770).
- Compile out editor-only logic within
_validate_property
in export template (GH-105907). - Android: Implement sparse bundle PCK support (GH-105984).
- Android: Add support for 16 KB page sizes, update to NDK r28b (GH-106358).
- Android: Misc build fixes (GH-106466).
- Android: Add export option for custom theme attributes (GH-106724).
- Fix ios plugin always invalid due to null ConfigFile (GH-106736).
- Show shader baker related export warnings only if enabled (GH-107215).
- Apple: Improve Apple embedded export and debugging (GH-107574).
- Fix export fail on Android if
shader_baker
is enabled (GH-107600). - Move Web export threads options out of variant mk2 (GH-108172).
- [Windows export] Move debug symbol sections on export (GH-108455).
- [Windows export] Use project version as fallback (GH-108472).
- Remove selective shader baking (GH-108914).
- Reduce log spam during headless import/export (GH-109334).
- Android: Thread Syncronization for FileAccessHandler (GH-109340).
- Fix headless import/export reporting progress greater than 100% (GH-109391).
- Android: Fix build command for AAB export (GH-109608).
- Add default param value to
EditorExportPlatform::get_forced_export_files
(GH-109662). - Fix editor export plugins always causing resources to be edited (GH-110057).
GDExtension
- MovieWriter: extension support (GH-96134).
- Expose the
EditorScriptHighlighter::_create()
method to GDExtension (GH-98929). - Check if class without recreate callback is creatable, before marking whole extension as unreloadable (GH-99133).
- Add speed scale feature for VideoStreamPlayer node (GH-101219).
- Make use of
latin1
encoding explicit ingdextension_interface.cpp
(GH-101352). - Add interface functions for
Object::set_script_instance()
(GH-102373). - Prevent instantiating classes that aren't exposed (GH-102440).
- Include precision in
extension_api.json
(GH-103137). - Add
status
toget_godot_version
(GH-103199). - Correctly register editor-only
OpenXR*
classes'api_type
(GH-103869). - Register editor classes normally, rather than via
ClassDB::set_current_api()
(GH-104084). - Add mechanism to get which classes an extension is using (GH-104129).
- Optimize gdvirtual function layout (GH-104264).
- Allow instantiating unexposed
EditorPlugin
from GDExtension (GH-104906). - Print Godot version when an extension is found to be incompatible (GH-105345).
- Fix GDExtension
Object/Node::to_string
to checkis_valid
before returning the result (GH-105546). - Web: Fix crash when built with
dlink_enabled=yes
(GH-105768). - Fix
GDExtensionLoader
using the wrong super type inGDSOFTCLASS
(GH-105817). - Fallback to ScriptInstance::get_property_state when get_property_state is not implemented in ScriptInstanceExtension (GH-105896).
- Add function to register main loop callbacks (GH-106030).
- Always run shutdown callback before deinitializing any levels (GH-107594).
- Fix minor inconsistencies and errors in
gdextension_interface.h
(GH-107788). - Restore
graph_offset
property (GH-107965). - Prevent compatibility breakage from change to
ClassDB::instantiate()
for unexposed classes (GH-108614). - Call startup callback only after reload is fully finished (GH-109309).
- Postpone adding new extension plugins to the editor (GH-109310).
- Fix
WindowUtils::copy_and_rename_pdb
regression (GH-110033). - Fix
classdb_register_extension_class*
documentation incore/extension/gdextension_interface.h
(GH-110064).
GDScript
- Add abstract classes to GDScript (GH-67777).
- Optimize non-constant
for
-range
(GH-71564). - Highlight script members like native ones (GH-74393).
- Re-add
ord()
function (GH-77164). - Add constant
Array
andDictionary
constructors (GH-78837). - Add support for variadic functions (GH-82808).
- Allow exporting variables of type Variant (GH-89324).
- Autocompletion: Fix type resolution when assigning variant (GH-92584).
- Fix call hint appearance for complex callees (GH-93429).
- Add tests for calling with wrong arguments in Callable.callv() when passing a readonly (const) Array (GH-93636).
- Fix autocompletion issues with nested types (GH-94996).
- Scripting: Fix script docs not being searchable without manually recompiling scripts (GH-95821).
- Fix
Callable
call error text (GH-99150). - Add
_enable
/_disable_plugin
to plugin script template (GH-99872). - Core: Unify display of error type prefixes (GH-100899).
- Improve consistency of code regions (GH-101319).
- Fix crash when using a modulo operator between a float and an integer (GH-101536).
- Improve GDScript editor support for global enums (GH-102186).
- Do phrase level recovery when parsing faulty dictionaries (GH-102218).
- Highlight warning lines in Script editor (GH-102469).
- Cancel suspended functions when reloading a script (GH-102521).
- Optimize
GDScriptLambdaCallable
by skipping the unnecessaryObjectDB
lookup forscript
(GH-102930). - Implement class detection in GDScript for build configuration (GH-103134).
- Remove dead code in GDScript function
CallState
(GH-103709). - Fix crash related to #region/#endregion caused by trailing spaces (GH-103825).
- Fix head class range to include
class_name
(GH-104114). - Add clearing of
static_gdscript_cache
toGDScriptCache
(GH-104281). - LSP: Fix file URI handling + warn about workspace project mismatch (GH-104401).
- Return early when parsing invalid super call (GH-104509).
- Add specific errors for use of keywords removed in Godot 4 (GH-104636).
- Fix a few GDScript warning messages for grammar and consistency (GH-104729).
- Fix invalid DAP responses when content has non-ASCII content (GH-104936).
- LSP: Fix relative path handling for document links (GH-105059).
- LSP: Don't advertize support for workspace symbols (GH-105061).
- Add autocompletion for
@export_tool_button
(GH-105081). - LSP: Extract annotations from
EditorHelp
(GH-105087). - Fix LSP not returning expected localization for API docs (GH-105344).
- LSP: Account for unicode identifiers (GH-105347).
- Do phrase level recovery for match (GH-105413).
- Add
@export_file_path
to export raw paths (no UID) (GH-105414). - Autocompletion: Remove additional parenthesis from utility function options (GH-105415).
- Update
get_stack()
,print_stack()
, andprint_debug()
(GH-105801). - Fix GDScript stack leak (GH-105842).
- Add code completion for user-defined methods when overriding in GDScript (GH-106198).
- Add abstract methods (GH-106409).
- Fix script backtrace reporting wrong line numbers in release exports (GH-106485).
- Bump script bytecode version after token enum change (GH-106552).
- Remove
leftmost_column
andrightmost_column
fields (GH-106683). - Fix crash on exit due to GDScriptLanguage::CallStack mismatched deallocation (GH-106691).
- GDScript call stack as reverse linked list with fixed coroutines (GH-106790).
- LSP: Fix class documentation to include brief (GH-107315).
- Add missing type conversions in
for range
(GH-107416). - Fix a crash when the first line of GDScript code is indented (GH-107424).
- Autocompletion: Don't use
next
forGET_NODE
inference (GH-107636). - Fix errors not being emitted when debugger breaks on script errors (GH-107663).
- Replace
abstract
keyword with@abstract
annotation (GH-107717). - Autocompletion: Don't filter overrides when the existing function is the current one (GH-107852).
- Autocomplete: Avoid prepending literals when the character has already been typed (GH-107872).
- Fix double spaces for type hints when connecting signal (GH-107909).
- Fix
GDScriptLanguage::make_function()
(GH-108072). - LSP: Don't poll during editor setup (GH-108140).
- Don't get invalid dictionary key during completion (GH-108167).
- Fix lookup symbol for
super()
(GH-108306). - DAP: Cast request's
seq
value to int (GH-108337). - Fix Variant properties losing value upon script update (GH-108558).
- Web: Disable GDScript LSP (GH-108714).
- Properly detect native class on static call optimization (GH-108944).
- Fix crash when GDScript scripts are reloaded during initial import (GH-108947).
- Autocompletion: Push empty call for lambdas (GH-108979).
- Autocompletion: Don't call const functions (GH-109297).
- Don't stop annotation argument parsing at file end (GH-109304).
- Fix
range
helper method using 32-bit ints for arguments (GH-109376). - Fix
GDScript::reload
leavingreloading
astrue
on failure (GH-109442). - Improve error messages for lambda functions without a body (GH-109561).
GUI
- Rework AcceptDialog's ok button text (GH-81178).
- Windows: Remove visible
WINDOW_MODE_FULLSCREEN
border by setting window region (GH-88852). - Editor: Add ability to rename theme types (GH-89530).
- Fix words not being selected by endpoints (GH-89556).
- Remove
NOTIFICATION_ENTER_TREE
whenNOTIFICATION_THEME_CHANGED
is used (GH-89746). - Fix incorrect submenu icon and accelerator text positions involving margins (GH-90832).
- Fix wrong tooltip behavior in
PopupMenu
s that have styles with top borders (GH-90922). - Add theme cache to the inspector (GH-93246).
- [TextEdit / LineEdit] Add support for OEM Alt codes input (GH-93466).
- Fix unfocused windows can't be dragged (GH-95606).
- Allow changing the color for the Checkbox's checked and unchecked icons (GH-95736).
- Consider search keywords in
CreateDialog
(GH-96169). - Remove
_FORCE_INLINE_
fromTextServer*::_ensure*
methods (GH-96233). - Fix
changed
signal emission inCurve::set_point_offset
(GH-96296). - Implement properties that can recursively disable child controls'
Focus Mode
&Mouse Filter
(GH-97495). - Fix
GraphEdit
connections not updating when a child ofGraphNode
goes invisible or changes size (GH-97763). - Improve native file dialog parent window selection (GH-98194).
- Tree: Fix relationship lines 1px width draw bug when MSAA anti aliasing is enabled (GH-98560).
- Fix and improve editor state persistence for the VisualShader editor (GH-98566).
- Improve ColorPicker picker shape keyboard and joypad accessibility (GH-99374).
- Refactor ColorPicker shapes (GH-99515).
- Augment unit tests for
OptionButton
(GH-99632). - ColorPicker: Allow other color wheels in okhsl mode (GH-99662).
- Tree: highlight selected items on hover (GH-100412).
- Fix spinbox decimal issues when
update_on_text_changed
= true (GH-100684). - Fix UI navigation breaking on invisible controls (GH-101077).
- Add movement threshold before activating viewport rotation gizmo dragging (GH-101376).
- Add
get_connection_list_from_node
function toGraphEdit
(GH-101439). - Linux: Implement native color picker (GH-101546).
- Remove confusing
Control::is_top_level_control()
(GH-101745). - TextEdit: Use actual indentation offset instead of space width for wrapped lines (GH-101824).
- Use
LocalVector<Glyph>
inTextServerAdvanced
to reduce reallocation (GH-101950). - DisplayServer: Decouple
show_window(MAIN_WINDOW_ID)
fromDisplayServer
constructor, update project manager size/position after DS init (GH-101980). - Optimize text rendering by caching
UBreakIterator
instances (GH-102129). - Fix ColorPicker sliders in overbright RGB (GH-102240).
- Add
FoldableContainer
(GH-102346). - Display the actual used theme items in the Inspector (GH-102372).
- Fix error when embedded popup is closed while resizing (GH-102504).
- TextEdit: Improve wrapped line indent handling (GH-102514).
- Expose
OVERRUN_ENFORCE_ELLIPSIS
flag to the controls (GH-102648). - Fix viewport scaling at intermediate resolutions (GH-102741).
- Fix MenuButton style in editor top menu bar (GH-102786).
- Fix Tree keyboard navigation in RTL direction (GH-102865).
- Fix Tree buttons jiggle on horizontal scrolling (GH-102878).
- Apply
fix_alpha_edges
for both theme icons and font glyphs (GH-102880). - Add tooltip for
StyleBoxPreview
grid button (GH-102950). - TabBar: Add boolean toggle for middle-click to fire
tab_close_pressed
signal (GH-103024). - Fix black bars appearing when using
background_color
on a TextEdit/CodeEdit (GH-103063). - Fix PopupMenu clickable area with shadows (GH-103155).
- Add tab spacing modifier for tabs in TabBar and TabContainer (GH-103214).
- Fix invisible ItemList cursor in editor theme (GH-103270).
- Add tree multiselect with shift up & down arrow keys (GH-103382).
- VideoStreamPlayer: Stop video on exit tree (GH-103396).
- ItemList multiselect with shift up & down arrow keys (GH-103414).
- Keep editor SceneTree buttons attached to the cell in Right-To-Left (GH-103424).
- Fix text shadow outline draw batching (GH-103471).
- LineEdit: Fix
caret_force_displayed
(GH-103508). - Add space for BBCode Ordered Lists (GH-103580).
- ColorPicker: Add an intensity slider to all modes for HDR (GH-103583).
- Allow TabBar drag and drop to be overridden and add tab mouse tests (GH-103601).
- StyleBoxFlat: Fix glitchy overlapping shapes (GH-103607).
- Use
Viewport
's default texture filter/repeat in GUI tooltips (GH-103636). - Fix popup location for
PROPERTY_USAGE_ARRAY
inspector items (GH-103649). - Apply transforms for LineEdit, RichTextLabel, and TextEdit popup positions (GH-103653).
- RTL: Fix custom effects not updating (GH-103677).
- Fix SceneTree's rename LineEdit's offset position (GH-103705).
- Label: Fix min. size calculation counting extra spacing twice (GH-103728).
- Make embed floating window respect
Always On Top
configuration (GH-103731). - Editor: Change global menu icons theme independently of editor theme (GH-103751).
- Fix SceneTree Item text display bug in Right-to-Left (GH-103791).
- Fix memory leak caused by hidden tooltip controls (GH-103793).
- Fix GraphNode port positions of children with size flag expand (GH-103822).
- Add auto translate mode for items in
PopupMenu
andOptionButton
(GH-103848). - Slider: Add bottom and top ticks and tick offset (GH-103907).
- Show
theme_type_variation
s in the inspector onControl
s that inherit a theme (GH-103922). - Scroll
EditorInspector
while drag & drop hovering near the edges (GH-103943). - Sync
display/window/size/initial_position_type
andWindow::WINDOW_INITIAL_POSITION_
enum (GH-103961). - Fix focus cycle through window (GH-103967).
- Add missing
ETR
/TTR
markups (GH-104020). - Tree: Fix dragging unselected item when a selection already exists (GH-104032).
- Apply gizmo scale to EditorControlAnchor (GH-104073).
- Fix the TreeItem rename LineEdit is offset (GH-104141).
- Fix folding arrow and relationship lines move to 2nd column (GH-104201).
- Fix game crashes when adding color preset after clearing presets in another control (GH-104227).
- Add properties to configure space trimming on line break (GH-104230).
- Prevent clicking of TreeItem buttons when letting go outside of the button (GH-104241).
- Fix
ScrollContainer
focus border issue (GH-104317). - Fix inspector theme not updating when theme changed (GH-104339).
- Fix smooth scrolling being tied to physics process (GH-104349).
- LineEdit: Fix selection rectangle when text overflows container (GH-104356).
- Tree: Fix offset relationship lines with Hide Folding (GH-104370).
- Improve Popup
content_scale_factor
(GH-104399). - Optimize
TextServerAdvanced::_add_features
by using iteration instead of.values()
and.keys()
(GH-104430). - Fix reparenting control does not update recursive mode cache properly (GH-104444).
- Optimize startup times by avoiding loading fonts twice (GH-104450).
- Fix excessively calling resized and floating point errors in Control (GH-104451).
- Optimize startup times by using
ubrk_clone
instead ofubrk_open
(GH-104455). - RTL: Fix
float
andint
matching in FX environment (GH-104542). - Fallback
Control.layout_mode
to valid mode when child of non-container control (GH-104614). - Fix and simplify hit calculation in
PopupMenu::_get_mouse_over
(GH-104632). - CI: Fix godot regression project test (GH-104638).
- RTL: Fix size/alignment of tables with padded cells (GH-104662).
- RTL: Improve vertical padding (GH-104685).
- Remove macros from FontFile test case (GH-104709).
- Implement Stackable Text Outline on
Label
(GH-104731). - Fix TextEdit VScroll max tolerance (GH-104776).
- Replace global oversampling with overrideable per-viewport oversampling (GH-104872).
- Add font import flag to toggle modulation of colored glyphs (GH-104878).
- Make
swap_cancel_ok
setting 3-state instead of boolean (GH-104958). - Linux: Detect KDE/LXQt and swap OK/Cancel buttons to Windows style (GH-104959).
- macOS: Fix native menu submenu items have wrong action and accelerators set (GH-104977).
- Fix wrong translation method in FileDialog (GH-104984).
- CodeEdit: Fix folding for comments mixed with code region tags (GH-105007).
- Fix EditorSpinSlider Scroll Edit when inside a ScrollContainer (GH-105041).
- Add custom sort to center tab bar in the editor and project manager (GH-105106).
- Add separate
minimize_disabled
andmaximize_disabled
window flags (GH-105107). - Fix
EditorHelpBitTooltip
in single window mode (GH-105111). - Fix initial project manager size and scales < 1 (GH-105173).
- Fix and rename mouse filter recursive behavior and focus mode recursive behavior (GH-105222).
- Fix shadow offset larger than shadow size in PopupMenu and PopupPanel (GH-105237).
- RTL: Track external changes in the custom fonts set by BBCode /
push_*
(GH-105259). - Fix graph node resizing (GH-105265).
- Fix
exp_edit
description (GH-105304). - Remove debug focus rect draws from MenuBar and GraphNode (GH-105322).
- RTL: Fix VC_GLYPHS_RTL visible character trimming mode (GH-105323).
- Fix GraphNode frag/vert port positions misaligned (GH-105370).
- Implement
SVGTexture
auto-scalable with font oversampling (GH-105375). - Queue hover update when creating TreeItem (GH-105376).
- Fix bitmap font scaling (GH-105408).
- Fix typo ovrsampling → oversampling (GH-105409).
- Fix fixed size image fonts incorrectly getting oversampling applied if set to native size (GH-105412).
- Fix custom scale sometimes not applied to the project manager window size (GH-105438).
- Fix X11 boot splash scaling (GH-105451).
- Fix incorrect title bar sorting in RTL layout (GH-105481).
- Fix regression causing jittery canvas transforms (GH-105482).
- RichTextLabel: Add methods to compute the height and width of a line (GH-105504).
- [ColorPicker, macOS] Add link to request required screen recording permission (GH-105507).
- Unify ScrollBar/ScrollContainer scroll delta (GH-105516).
- Add [br] to bbcode parsing for
rich_text_label
(GH-105524). - Improve default OK text in AcceptDialog (GH-105547).
- Add drag zoom feature with CTRL+MiddleMouseButton (GH-105625).
- Selectively apply
FOCUS_ACCESSIBILITY
to theLabel
s instead of setting it by default (GH-105639). - SvgTexture not in 3D (GH-105640).
- Change FileDialog's Tree to ItemList (GH-105641).
- Improve FileDialog options (GH-105647).
- [LineEdit/TextEdit] Add composite character backspace delete and get composite character positions (GH-105656).
- Add favorites and recent directories to FileDialog (GH-105680).
- Add file sort to FileDialog (GH-105723).
- Use same oversampling granularity as fonts use for
SVGTexture
s (GH-105725). - Fix
AnimationNodeBlendTree
crash onOpen Editor
button press (GH-105797). - Fix item translation and icon in the Anchors Preset dropdown (GH-105815).
- Improve edited scene layout direction detection (GH-105835).
- Rename FoldableContainer's
text
totitle
(GH-105846). - Fix ColorPicker preset button format string typo (GH-105855).
- TextEdit: Fix caret cut of in RTL layout, account for wrapped line indents in accessibility updates (GH-105857).
- ScrollContainer: Fix focus rect draw position in RTL layout (GH-105858).
- Add thumbnail mode to FIleDialog (GH-105863).
- TextEdit: Fix margin rounding at sub 100% scale (GH-105870).
- TextServer: Fix outline size and image fonts with oversampling (GH-105874).
- Improve
ColorPicker
(GH-105892). - Editor: Allow non-finite values in
Range
(GH-105911). - Fix background size calculation in TreeItem (GH-105918).
- Fix oversampling for embedded windows using content scale (GH-105949).
- Some QOL and cleanup to EditorHelp's
FindBar
(GH-105968). - Add option for a touch-friendly drag handle in
SplitContainer
(GH-105994). - Allow Control Rect tool to not snap to pixel (GH-106001).
- Move
alt_code_oem437
andalt_code_cp1252
to separate header file (GH-106051). - Show "No Recent Scenes" under
Open Recent
instead of redundant button (GH-106082). - Add missing dictionary and array type hints (GH-106113).
- Add property to control showing the virtual keyboard on focus events (GH-106114).
- Change Selected value for OptionButton when last item is deleted (GH-106254).
- Fix TabBar Hidden Tabs Handling (GH-106257).
- Fix FileSystemTree rename TextEdit is offset (GH-106286).
- Accessibility: Account for window scaling transform when setting node bounds (GH-106298).
- RTL: Add options to override underline color and default alpha (GH-106300).
- Copy all text in
RichTextLabel
if nothing is selected (GH-106404). - Cleanup header includes in Tree (GH-106430).
- Fix TabContainer not respecting
tabbar_background
's margins (GH-106516). - Web: Fix
LineEdit
select_all_on_focus
behavior when using a virtual keyboard (GH-106526). - Fix LineEdit with secret checked reveals the secret when a selection is dragged (GH-106565).
- Adjust SVG in OT scaling and baseline (GH-106584).
- Lazy create menu and slider nodes in
Tree
(GH-106588). - Adjust hex code box baseline calculation (GH-106621).
- Deselect invisible TreeItems (GH-106639).
- Move some accessibility properties from Node to Control (GH-106660).
- Add hardcoded baseline offset for Apple Color Emoji (GH-106666).
- Improve SVGTexture lazy loading (GH-106671).
- Allow customizing FileDialog's features (GH-106679).
- Use OkHSV for
RichTextLabel
rainbows (GH-106733). - Call
PopupMenu
min. size calculations afterabout_to_popup
signal processing (GH-106742). - Use
TabContainer
material for internalTabBar
(GH-106746). - Do not activate accessibility when screen reader detection failed (GH-106783).
- Fix Android editor UI (GH-106810).
- Add missing
TRANSLATION_CHANGED
notifications (GH-106813). - Fix MenuBar min size not updating after child rename (GH-106815).
- VideoStreamPlayer: Fix sync with the scene tree (GH-106825).
- Remove freed up FontForSize data from
oversampling_levels
(GH-106833). - Fix
SCROLL_MODE_RESERVE
with RTL layout (GH-106915). - Fix CodeEdit hover word lookup (GH-106919).
- Clamp FontFile Face Index to a valid range in the inspector (GH-106921).
- macOS: Fix borderless window maximization (GH-106942).
- Fix window embedding for windows with
force_native
enabled (GH-106952). - Accessibility: Always auto-translation mode for names/descriptions (GH-106966).
- Check script sample characters to filter out incorrect script support information (GH-107030).
- Fix LineEdit continues to force showing the caret after drag is aborted (GH-107055).
- [SVG in OT] Fix rendering of some glyphs using "defs" with "#glyphXXXXX.X" id (GH-107079).
- Make
BaseButton
s' shortcut feedback timers internal (GH-107088). - RTL: Fix outline offset (GH-107092).
- Unify
get_[_visible]paragraph/line_count
behavior (GH-107110). - Fix LineEdit's caret desyncing issue when toggling secret mode (GH-107125).
- ColorPicker: Fix cursor position in okhsl circle (GH-107198).
- ColorPicker: Add okhsl HS and HL rectangular picker shapes (GH-107249).
- Ensure hiding
AcceptDialog
OK button keeps other buttons centered (GH-107280). - Don't store deprecated
auto_translate
property forWindow
(GH-107282). - Spinbox: Fix incorrect step and decimal text when using custom arrow step (GH-107302).
- Fix window title drawn outside the title bar (GH-107305).
- RTL: Add paragraph separation theme property (GH-107331).
- ItemList: Fix text drawing not taking
h_separation
into account in top mode (GH-107333). - Fix visible ratio when displaying all characters in Label (GH-107338).
- RTL: Decouple image width/height "in percent" properties. Add [hr] tag support (GH-107347).
- Partially revert 107110, process all lines in
VC_CHARS_BEFORE_SHAPING
mode to return correct line count (GH-107373). - Improve performance of
visible_characters
updates inVC_CHARS_BEFORE_SHAPING
mode (GH-107394). - Fix IME window position not taking into account window transform (GH-107413).
- Fix ScriptEditor error line out of bounds (GH-107426).
- Add
line_breaking_strictness
project setting (GH-107439). - Move font related project settings definitions to
TextServer
(GH-107450). - Multiply contents minimum size by scale factor (GH-107488).
- Fix
set_force_native
when window is not in tree (GH-107498). - Rename TreeItem's
alt_text
todescription
for consistency with Accessibility API (GH-107540). - Fix scale and position of popups with
force_native
(GH-107560). - Fix some menu bar items unresponsive after language change (GH-107578).
- Cleanup accessibility names (GH-107656).
- Restore per font oversampling override (GH-107708).
- Android: Address API 35 UI behavior changes (GH-107742).
- GraphNode: Fix slot focus rect draw, make slot focus mode configurable (GH-107825).
- Tree: Fix handling of
__focus_rect
with various Select Modes (GH-107834). - Fix custom Text Editor theme changes on reload (GH-107918).
- SpinBox: Fix
custom_arrow_step
by snapping it tostep
(GH-108196). - Android: Don't exclude display cutout in immersive mode (GH-108205).
- Fix: TabBar/TabContainer can't start with all tabs deselected (GH-108255).
- Fix ColorPicker linear mode sliders color (GH-108328).
- Fix typo in
TextParagraph.direction
hint string (GH-108367). - Deactivate orientation gizmo on window exit (GH-108374).
- RTL: Add option to scroll follow visible characters (GH-108399).
- Draw guide lines over selection and focus styleboxes (GH-108401).
- [Code Editor] Fix "Pick Color" menu option replacing multiple color items (GH-108431).
- RTL: Add method to get visible content bounding box (GH-108466).
- RTL: Fix padding and alignment of embedded image clicks (GH-108469).
- Fix export path "leaking" between presets (GH-108478).
- Android: Fix system bar regression (GH-108557).
- Fix
TabBar
minimum size withclip_tabs
enabled (GH-108592). - RTL: Fix text selection offset in padded cells (GH-108597).
- TextEdit: Draw guidelines under the text and caret (GH-108599).
- Wayland: Workaround tooltip issues (GH-108604).
- Add minimum scale to shader list (GH-108632).
- Use
double
consistently inRange::get_as_ratio
(GH-108638). - Fix inconsistent column in Tree click detection (GH-108706).
- SplitContainer: Fix inability to override touch dragger icon and add theme colors to touch dragger (GH-108718).
- Deprecate updown icon (GH-108724).
- Web: Fix Web MouseWheel scrolling (GH-108747).
- TextServer: Fix soft hyphen font fallback (GH-108769).
- Fix ColorPresetButton
preset_focus
is set to wrong type in default theme (GH-108814). - Fix editor one-click icons not showing (GH-108825).
- Fix TextEdit line wrap indent when disabled (GH-108889).
- Fix RichTextLabel nested tables not sizing properly (GH-108911).
- Fix button down signal not emitting on first press after being disabled (GH-108921).
- Fix font fallback for lines with only non-visual/control characters (GH-108959).
- Fix Tree cell text vertical alignment (GH-108995).
- Update GraphNode selection logic if not visible (GH-108996).
- Accessibility: Process non-focusable windows (popups, menus) as part of the parent window tree (GH-109046).
- Avoid color conversion roundtrip in colorpicker (GH-109072).
- Add
SVGTexture
support toNinePatchRect
,TextureProgressBar
andStyleBoxTexture
(GH-109118). - SVGTexture: Always use real values for
texture_set_size_override
(GH-109139). - Use non-MSDF fallback for MSDF fonts if fallback is a color or non-scalable font (GH-109152).
- Break batch on Compatibility when primitive texture changes (GH-109198).
- Fix LineEdit center alignment (GH-109329).
- Fix some localization issues in controls (GH-109354).
- TextServer: Fix caret hit test rounding (GH-109415).
- Use MSDF instead of MTSDF for font rendering (GH-109437).
- Fix issues searching
RichTextLabel
when search result is in a table (GH-109441). - Disallow clicking to toggle the checkbox of a theme override of type
Resource
to checked (GH-109480). - LineEdit: Fix double click not selecting single character words (GH-109541).
- ThemeEditor: fix to show filename for new/renamed files (GH-109619).
- Fix missing hover style for Ignore Error breaks button (GH-109673).
- RTL: Fix text around
visible_characters
boundary being added twice to the buffer (GH-109699). - Fix PopupMenu accel position (GH-109708).
- Fix OptionButton not removing icon when using clear (GH-109755).
- Update
TextEdit
to use center alignment for inline objects (GH-109814). - Enable input when ColorPicker popup exits tree (GH-109824).
- Popup: Reset state on visibility change (GH-109927).
- Validate theme type name input in Add Theme Type dialog (GH-110044).
- Do not set flags when
PopupMenu::set_visible
is called to hide popup (GH-110049). - Fix ColorPicker after adding intensity sliders (GH-110160).
- TextEdit: Fix text edit font update order (GH-110191).
I18n
- Add translation preview in editor (GH-96921).
- Enable changing editor language without restart (GH-102562).
- Don't send
TRANSLATION_CHANGED
outside tree (GH-102585). - Split repeated translation in Game plugin (GH-102666).
- Split repeated translation for floating windows (GH-102709).
- Fix some i18n issues in visual shader editor (GH-103756).
- ScriptEditor: Disable auto translation of the filename label (GH-103842).
- Fix Android build template message translation (GH-104151).
- Tweak a few miscellaneous localization strings (GH-104377).
- Improve auto-translation for static strings in docks (GH-104584).
- Fix editor layout direction change on translation change (GH-104698).
- Inspector localization improvements (GH-104701).
- Fix updating editor icons on translation change (GH-104703).
- Improve Project Manager auto-translation (GH-104845).
- Improve EditorAbout dialog auto-translation (GH-105297).
- Improve AssetLib auto-translation (GH-105519).
- Improve SceneTree auto-translation. Fix TreeItem tooltips and the Filter (GH-105578).
- Fix double translations in Project Manager (GH-105905).
- Improve auto-translation of settings dialogs (GH-106249).
- Fix i18n for array property custom add button text (GH-106579).
- Don't update scene tree when calling
Translation::set_locale()
(GH-106855). - Fix category names in help search dialog not translated (GH-106893).
- Improve auto-translation of main screens (GH-106943).
- Improve auto-translation of Script Editor (GH-106946).
- Improve auto-translation of editor's top & bottom bars (GH-107624).
- Mark GDScript and shader warnings for translation (GH-107944).
- Add Japanese translation for Linux .desktop file (GH-107964).
- Add Polish translation for Linux .desktop file (GH-107991).
- Fix root auto-translate mode ignored for child nodes when generating POT (GH-108772).
- Disable auto translation of flag names in the inspector (GH-109294).
Import
- Fix Texture3D import not working (GH-92344).
- Implement
KHR_node_visibility
in the GLTF module (GH-93722). - Fix resetting imported scene parameters to default (GH-98014).
- Add Channel Remap settings to ResourceImporterTexture (GH-99676).
- Support multi dot extensions in import plugins (GH-100086).
- Use UIDs in addition to paths for extracted meshes, materials and animations (GH-100786).
- GLTF: Only pad zeros when exporting numbered images (GH-101270).
- GLTF: Don't write unused
"targetNames"
on meshes (GH-101275). - DDS: Prevent crashing when unable to load image (GH-101834).
- ufbx: Update to 0.17.1 (GH-102538).
- Betsy: Remove OGRE aliases (GH-102667).
- Increase size of Offset field in audio import dialog (GH-103029).
- Disable
ResourceFormatLoader/Saver
s of disabled classes (GH-103099). - bcdec: Fix decompressing mipmaps of non-power of 2 textures (GH-103276).
- GLTF: Use scene root nodes for root nodes, don't include orphan nodes (GH-103332).
- Fix headless import always emits errors (GH-103403).
- Allow attaching scripts to nodes in the Advanced Import Settings dialog (GH-103418).
- Delete rendering device on the same thread it was created (GH-103521).
- etcpak: Improve and fix decompression of mipmaps (GH-103573).
- Fix Image format RGB565 conversion and rendering (GH-103635).
- Improve error message when trying to load scene as an animation library (GH-103678).
- Make build profile project detection also set build options (GH-103719).
- BasisUniversal: Ensure ASTC's HDR variant is supported when transcoding (GH-103766).
- GLTF: Fix wrong color space for GLTFLight on export (GH-103853).
- basis_universal: Update to 1.60 (GH-103968).
- ResourceLoader: Do not wait for the main thread during initial reimport (GH-104013).
- Add named placeholder to blender import options (GH-104025).
- GLTF: Don't collapse non-joint leaf nodes when importing skeletons (GH-104184).
- Update BoneAttachment3D transform when setting the bone index (GH-104209).
- Force multiple of 4 sizes for Betsy compressor (GH-104275).
- Update Mipmaps > Limit import option visibility when intended in the texture importer (GH-104325).
- Use libjpeg-turbo for improved jpg compatibility and speed (GH-104347).
- Fix crash when reimporting nested gltf scenes (GH-104384).
- Update astcenc to the upstream 5.3.0 release (GH-104462).
- Force multiple of 4 sizes for CVTT compressor (GH-104575).
- Load decompressable texture format if no supported one is found (GH-104590).
- Don't show toasts for textures detected as used in 3D/normal/roughness (GH-104667).
- GLTF: Fix
export_post_convert
not running for multi-root scenes (GH-104713). - GLTF: Fix importing files with invalid buffer view byte strides (GH-104780).
- GLTF export: Allow using a PNG or JPEG fallback image (GH-104784).
- PortableCompressedTexture: Fix BasisU crash and wrong format (GH-105005).
- PortableCompressedTexture: Support ASTC format and creating directly from compressed image (GH-105006).
- Allow completely opting out of name suffix magic in 3D scene import (GH-105014).
- BasisU: Use KTX2 format and add import options to configure encoder (GH-105080).
- Fix incorrect mipmap size calculation for uncompressed DDS textures (GH-105193).
- Fix importing compressed dds textures with non-power-of-two width or height (GH-105200).
- Remove old oversampling property from font importers (GH-105400).
- Fix
is_pixel_opaque
bound checks (GH-105561). - Add
SVGTexture
importer (GH-105655). - Explicitly handle Image AlphaMode enum instead of treating as bool (GH-105722).
- Fix fbx runtime import not generating meshes properly (GH-105787).
- DDS: Load BGRA4 textures directly as RGBA4 (GH-106055).
- Fix loading BPTC/ASTC textures on devices that don't support them (GH-106085).
- BasisU: Configure HDR quality from the settings (GH-106110).
- GLTF: Support 64-bit sizes in glTF import and export (GH-106220).
- Fix libjpeg-turbo not working on 32-bit builds (GH-106380).
- Check if import script is subtype of EditorScenePostImport (GH-106403).
- Expand the imported texture channel count for remapping if necessary (GH-106437).
- Use vertex colors (if present) as attributes during simplification (GH-106446).
- Image: Fix detecting color channels (GH-106486).
- GLTF: Make skeleton bone names unique per-skeleton instead of scene-wide (GH-106537).
- Adjust LOD selection metrics to use attribute error (GH-106562).
- Add DDS loading of 32bit aligned data without alpha (GH-106572).
- Relax the requirements for making
EditorImportPlugin
(GH-106678). - GLTF: Don't export AnimationPlayer nodes as glTF nodes (GH-106803).
- Implement UID references in VariantParser (GH-106902).
- Make svg files respect
interface/theme/icon_saturation
setting when imported for editor use (GH-107051). - [Image font import] Allow comma separated lists as a character range (GH-107111).
- GLTF: Align accessor buffer
byteOffset
to multiple of component size (GH-107193). - GLTF: Don't save unnecessary zero "byteOffset" on export (GH-107194).
- Restore 3.x style material auto-extraction import option (GH-107211).
- Implement naming version system for FBX and Blend importers like glTF (GH-107352).
- Fix deadlock in
EditorFileSystem::reimport_files
(GH-107620). - DDS: Fix loading cubemaps (GH-107971).
- meshoptimizer: Update to 0.24 (GH-108027).
- GLTF: Fix nasty bug with incorrect buffer indices on export (GH-108302).
- Fix incorrect light values on blend import (GH-108356).
- Fix all asset reimport on missing filesystem_cache10 (GH-108474).
- Fix allow any descendant to be used as a Root Type in Scene Import (GH-108810).
- Fix Editor crash during first scan in headless import mode (GH-108992).
- GLTF: Fix minor niche edge case issues with accessors (GH-109102).
- Prevent generating Editor 3D scene preview in headless mode (GH-109116).
- Fix
Image
nearest and cubic resizing bias (GH-109123). - Dedupe images during GLTF Export (GH-109181).
- GLTF: Fix crash reading texture sampler for non-existent texture (GH-109625).
- ImporterMesh: Validate triangle indices array size is a multiple of 3 (GH-109666).
- Fix infinite loop in GLTFDocument::_convert_animation_node_track (GH-109685).
Input
- Allow all tool modes to select (GH-87756).
- Add configuration option to disable
Scroll Deadzone
on Android (GH-96139). - Android: Enable support for volume button events (GH-102984).
- Fix Android mouse capture issues (GH-103413).
- Fix macOS mouse tracking in tooltip popups (GH-103788).
- Fix "Unicode parsing error" spam when opening editor (GH-104107).
- [macOS/iOS] Ensure only one axis change event is produced during single
process_joypads()
call (GH-104314). - Fix EditorProperty shortcuts being global and unintentionally triggering (GH-104485).
- Support more controllers on macOS 11+ (GH-104619).
- macOS: Release keys and regenerate mouse events after native popup menu tracking (GH-104644).
- Fix Apple's incorrect mapping of Joy-Con (L) and Joy-Con (R) face buttons (GH-104726).
- macOS: Use productCategory instead of vendorName for joypad name (GH-104894).
- Adjust 2D select/move/rotate/scale shortcuts to match 3D (GH-105208).
- Android: Fix decimal keyboard (GH-105301).
- Fix
FOCUS_ACCESSIBILITY
grabbing focus when it is not supposed to, forwardGraphNode
key input toGraphEdit
(GH-105595). - Web: Avoid unnecessary gamepad polling when no gamepads are connected (GH-105601).
- macOS: Update entered state from
mouseMoved
(GH-105822). - macOS: Embedded window support (GH-105884).
- iOS: Prevent startup crash with Input singleton null check (GH-105953).
- Fix issues with Android controller input handling (GH-105992).
- Fix added missing shortcuts from tree to file list (GH-105997).
- Fix Xbox Controller on Android (GH-106021).
- Optimize
InputMap::get_actions
(GH-106209). - Add support for SDL3 joystick input driver for Windows, Linux and macOS (GH-106218).
- macOS: Process first click event without requiring focus (GH-106317).
- macOS: Send initial modifier keys as input events (GH-106365).
- Wayland: Fix stuck pointer buttons on window leave (GH-106414).
- Keep virtual keyboard visible when
keep_editing_on_text_submit
is enabled (GH-106729). - Web: Add support for pen pressure (GH-107136).
- Allow numpad comma
,
to be used for 3D Blender-Style Transforms (GH-107441). - Fix action name for
ui_colorpicker_delete_preset
in built-in InputMap (GH-107471). - Fix
screen_accum
not being reset when it should be inInput::VelocityTrack
(GH-108005). - Web: Poll controllers only if at least one is detected (GH-108007).
- Fix
Input.get_joy_info()
regression after the SDL input driver PR (GH-108214). - Android: Fix the EOF detection logic (GH-108329).
- Add environment variable access defines to SDL linux build config (GH-108350).
- Use inotify to detect devices for better reliability on Linux (GH-108364).
- Fix the usage of udev and dbus with SDL joystick input driver (GH-108373).
- macOS: Fix mouse enter/exit event and custom cursor shape in embedded game mode (GH-108624).
- Fix menu keyboard and controller navigation (GH-108820).
- Forward mouse events to embedded no-focus windows (GH-109109).
- Windows: Release mouse buttons after native window drag/resize operation (GH-109300).
- Fix shortcut reset for spatial_editor/tool_select (GH-109539).
- Add methods to check which event first triggered "just pressed/released" state (GH-109540).
- Handle SDL joypad events for connected controllers on game startup (on Windows and Linux) (GH-109750).
- Fix DirectInput controllers on game startup (GH-109819).
- fix: macOS cmd + drag snapping not working for 3D editor Move, Rotate and Scale tool (GH-110068).
Multiplayer
- Add
MultiplayerSpawner
unit tests (GH-99101). - Fix node cache errors on nested MultiplayerSpawners (GH-101416).
- Expose
get_rpc_config
andget_node_rpc_config
(GH-106848).
Navigation
- Make
get_id_path
return empty when first point is disabled (GH-86983). - Increase NavigationLink3D gizmo detail to match other circle/sphere 3D gizmos (GH-101411).
- Create a dedicated 2D navigation server (GH-101504).
- Rename classes in preparation for future restructure (GH-102100).
- Add path query region filters (GH-102766).
- Add navigation path query parameter limits (GH-102767).
- Make NavigationLink3D properly update on visibility change (GH-103588).
- Fix navmesh
border_size
precision warnings (GH-103735). - Fix visible avoidance debug rendering in NavigationRegion2D (GH-103784).
- Move navmesh connection owner check to subfunction (GH-104002).
- Add bake state info and MultiNodeEdit support for NavigationRegion3D (GH-104210).
- Emit
changed
signal after baking navigation mesh (GH-104242). - Allow to compile templates without navigation features (GH-104811).
- Add function to get navigation region iteration id from NavigationServer (GH-104826).
- Fix typo in performance (GH-104829).
- Prepare NavigationServer for
process()
andphysics_process()
split (GH-104862). - Change navigation module LocalVector
size_t
uses touint32_t
(GH-104896). - Replace the deprecated
Geometry2D::get_closest_point_to_segment
(GH-104903). - Move NavigationServer navmesh sync from
main()
toprocess()
(GH-105067). - Make navigation maps emit
map_changed
directly (GH-105071). - Clean and group NavigationServer headers (GH-105105).
- Replace NavigationServer2D
Point
struct withVector2
(GH-105252). - Replace NavigationServer3D
Point
struct withVector3
(GH-105253). - Remove no longer needed link polygons from NavMapBuilder (GH-105257).
- Move
NavigationObstacle3DEditorPlugin
tonavigation_3d
module (GH-105588). - Rename
NavigationMeshEditor
toNavigationRegion3DEditor
(GH-105592). - Move
NavigationRegion3DGizmoPlugin
tonavigation_3d
module (GH-105593). - Move
NavigationLink3DGizmoPlugin
tonavigation_3d
module (GH-105594). - Remove
AStar2D/3D
comments onreserve_space()
capacity needs (GH-105631). - Capitalize global navigation constants (GH-105718).
- Add function to get navigation link iteration id from NavigationServer (GH-105765).
- Move 2d navigation related editor plugins to
navigation_2d
module (GH-106188). - Rename
nav_2d
namespace toNav2D
to matchNav3D
(GH-106329). - Change 3D navigation region and link updates to an async process (GH-106670).
- Match avoidance defaults for NavigationAgent and NavigationServer NavAgent (GH-107255).
- Change
NavigationServer2D
avoidance callbacks fromVector3
toVector2
(GH-107256). - Fix CapsuleShape2D outline for navmesh baking (GH-107263).
- Change 2D navigation region and link updates to an async process (GH-107381).
- Only repath a NavigationAgent with a target position (GH-107513).
- Remove
get_used_cells
to avoid unecessary allocations in navigation baking (GH-107559). - NavigationServer2D: Bind missing
merge_rasterizer_cell_scale
setting and functions (GH-107802). - NavMap3D: check if obstacles have avoidance enabled (GH-108281).
- NavMap2D: check if obstacles have avoidance enabled (GH-108284).
- Add a way to filter neighbor points to AStar2D/3D (GH-108843).
- Fix flipped clipper2 ifdef (GH-108912).
- Fix path post-processing edgecentered (GH-109196).
Network
- JSONRPC: Require manual method registration (GH-104890).
- JSONRPC: Fix notification return behavior (GH-104939).
- Web: Avoid extra copy when encoding string in WebSocket
_onmessage
(GH-105571). - mbedTLS: Fix concurrency issues with TLS (GH-106167).
- Fix EditorSettings usage in TLSContext (GH-108060).
- mbedTLS: Update to version 3.6.4, fixes GCC 15 compatibility (GH-108371).
Particles
- Fix particle jitter when scene tree is paused (GH-95912).
- Fix
CPUParticles2D
repeatedly scaling particles with 0 velocity and Align Y (GH-100977). - Add emission shape gizmos to Particles2D (GH-102249).
- Overhaul the cull mask internals for Lights, Decals, and Particle Colliders (GH-102399).
- Fix GPU particles not emitting at some configured rates when scale curve is zero (GH-103121).
- Fix wrongly assigned
emission_normal_texture
(GH-106203). - Fix heap-use-after-free when closing a scene with 2D particle nodes selected (GH-106739).
- Fix floating point precision errors when setting particle trail length (GH-107568).
- Fix particles resetting properties when emitting is toggled (GH-107915).
- Move 2D and 3D particle editors to the 2D and 3D folders (GH-108368).
Physics
- Add mid height property to CapsuleShape2D/3D (GH-93836).
- Add ability to apply forces and impulses to
SoftBody3D
(GH-100463). - Place a hard limit on the
max_contacts_reported
property in 2D/3D physics (GH-101011). - Refactor Jolt-related project settings to only be loaded as needed (GH-101254).
- Improve capsule gizmo performance (GH-101533).
- Fix
get_rpm()
on wheel which has steering (GH-101664). - Chunk tilemap physics (GH-102662).
- Improve Jolt module initialization style (GH-102975).
- Fix interpolation in XR (GH-103233).
- Allow to compile templates without physics servers (GH-103373).
- Fix broken negative scaling when using Jolt Physics (GH-103440).
- Fix
ConcavePolygonShape3D
always enablingbackface_collision
when using Jolt Physics (GH-104310). - Jolt: Update to 5.3.0 (GH-104449).
- Fix
shape
always being zero withget_rest_info
when using Jolt Physics (GH-104599). - Jolt: 32-bit MinGW g++ doesn't call the correct overload for the new operator when a type is 16 bytes aligned (GH-105696).
- Remove Jolt Physics project setting "Areas Detect Static Bodies" (GH-105746).
- Remove no-op locking in Jolt Physics module (GH-105748).
- Remove emitting of error in
JoltBody3D::_exit_all_areas
(GH-106119). - SoftBody3D: Add a property for scaling rest lengths of edge constraints (GH-106321).
- Fix SCU build issues related to Jolt Physics (GH-106346).
- Jolt physics: Setting position instead of velocity in
JoltSoftBody3D::set_vertex_position
(GH-106366). - Improve performance with non-monitoring areas when using Jolt Physics (GH-106490).
- Remove force enter/exit logic from
JoltArea3D
(GH-106693). - Remove error for degenerate soft body faces when using Jolt Physics (GH-106725).
- Change
JoltShapeInstance3D
to use move semantics (GH-106761). - Fix Area3D signal emissions when using Jolt Physics (GH-106918).
- Batch the adding of Jolt Physics bodies (GH-107454).
- Fix Jolt Physics soft body vertex normal calculation (GH-107832).
- Fix crash when disabling
SoftBody3D
while using Jolt Physics (GH-108042). - Jolt physics: wake up a soft body when its transform changes (GH-108094).
- Improve performance for shapeless objects when using Jolt Physics (GH-108235).
- Fix crash in Jolt Physics when switching scenes in editor (GH-108239).
- Document some deadlocks in the physics server code (GH-108495).
- Fix performance regression when rendering collision shapes (GH-108530).
- Fix contacts not being reported properly when using Jolt Physics (GH-108544).
- Revert "SoftBody3D: Support physics Interpolation" (GH-109265).
- Increase SoftBody3D damping coefficient editor range (GH-109419).
- Pause physics command queue during physics processing (GH-109591).
- Fix
move_and_slide
forcing synchronization with physics thread (GH-109607). - Fix one-way-collision polygons being merged despite being on different Y-origins in TileMapLayer (GH-109820).
- Fix crash when rendering a soft body 3d (GH-109929).
Plugin
- EditorInterface: Add
get_open_scene_roots
to retrieve all opened scenes root nodes (GH-97838). - Clarify API for top selected nodes in EditorSelection and make public (GH-99897).
- JavaClassWrapper: Improve handling of typed array arguments (GH-102817).
- JavaClassWrapper: Fix converting returned arrays to Godot types (GH-103375).
- JavaClassWrapper: Fix conversion to/from
org.godotengine.godot.Dictionary
that regressed (GH-103733). - JavaClassWrapper: Fix mistake in last fix for
org.godotengine.godot.Dictionary
conversion (GH-104156). - Add maven publishing configuration for Godot tools (GH-104819).
- Fix wrong context menu argument from FileSystem's item list (GH-106040).
- Update the documentation for
JavaClassWrapper
andAndroidRuntimePlugin
(GH-106970). - Always use base directory in
CONTEXT_SLOT_FILESYSTEM_CREATE
(GH-107085). - Android: Fix Android plugins regression (GH-108243).
- Add a debug version for Godot's maven central artifact (GH-108729).
Porting
- Implement screen reader support using AccessKit library (GH-76829).
- macOS: Add support for loading shell environment from UI apps (GH-81266).
- FileAccess: Implement
get_size
andget_access_time
methods (GH-83538). - Windows: Fix issue where newly created window incorrectly acquired the popup property (GH-94689).
- Use
windowBackgroundColor
instead ofcontrolColor
for macOS system base color (GH-95049). - Simplify the printed file paths in the Linux/*BSD crash handler (GH-95776).
- Add methods to decode/encode multibyte encodings (GH-97002).
- Wayland: Handle
fifo_v1
and clean up suspension logic (GH-101454). - Wayland: Implement native sub-windows (GH-101774).
- Add support for using an Android Service to host the Godot engine (GH-102866).
- Android: Skip non-existing system font files (GH-103384).
- Android: Fix editor crash after changing device language (GH-103419).
- X11: Fix check for
is_maximized
to require both horizontal and vertical (GH-103526). - [Linux/BSD] Offload RenderingDevice creation test to subprocess (GH-103560).
- Improve error message from
JavaClassWrapper.wrap()
(GH-103571). - Windows: Fix
get_modified_time
on locked files (GH-103622). - Swap Nintendo face buttons on macOS (GH-103661).
- Use more efficient sleep approach on Windows when low-processor mode is enabled (GH-103773).
- Set
unsupported
to true on error inFreeDesktopScreenSaver
(GH-103802). - X11: Fix native dialog parent selection condition (GH-103815).
- macOS: Enable transparency for windows with decorations (GH-103857).
- [macOS/iOS] Fix system font family descriptor leak (GH-103872).
- macOS: Fix editor loading crash on native menu click (GH-103892).
- DisplayServer: Implement
get_accent_color
on Linux (GH-104106). - macOS: Update mouse-entered state when subwindow closes (GH-104328).
- macOS: Replace custom main loop with
[NSApp run]
andCFRunLoop
observer (GH-104397). - Implement
DirAccess.is_equivalent
method (GH-104597). - macOS: Fix cleanup with some command line tools (GH-104615).
- macOS: Fix running with
DisplayServerHeadless
(GH-104660). - Windows: Fix borderless maximized window mode (GH-104686).
- macOS: Fix missing frame_changed signal to CameraFeed (GH-104809).
- Android Editor: Auto create
nomedia
file to hide project files in media apps (GH-104970). - Handle the case where
waitpid
returnserrno
EINTR
(GH-105114). - Wayland: Fix error spam for closed windows (GH-105129).
- Apple: Add pthread implementation of
Thread
class (GH-105164). - Change
DisplayServerMacOS
fromGDCLASS
toGDSOFTCLASS
. AddGDSOFTCLASS
to other display servers (GH-105225). - Accessibility: Use system timer/wait functions for frame delay when screen reader is active (GH-105343).
- Fix crash in release build with llvm-mingw (GH-105430).
- Web: Prevent unnecessary canvas resizes by flooring scaled dimensions (GH-105585).
- macOS: Fix close button hidden and title bar transparent in fullscreen mode (GH-105673).
- macOS: Fix touch bar observer crash (GH-105804).
- Fix Windows
OS.get_unique_id()
null termination issue (GH-106052). - Wayland: Ensure pointed window's existence in
mouse_get_position
(GH-106083). - Improve script backtrace print in crash handlers (GH-106139).
- Do not call
accessibility_set_window_rect
on Wayland, fix main windows accessibility context creation (GH-106247). - Wayland: Implement the cursor-shape-v1 protocol (GH-106251).
- Wayland: Fix error spam when closing popup (GH-106315).
- X11: Fix GL init memory leak when transparency is enabled (GH-106345).
- macOS: Fix embedded window position when host control is moved, but not resized (GH-106349).
- macOS: Fix transparent window state detection for embedded process (GH-106355).
- macOS: Fix a crash if no input event is set for a specific window (GH-106367).
- Implement
get_filesystem_type
on macOS and Linux (GH-106386). - Wine: Use
_SH_DENY*
flags instead of unsupported_SH_SECURE
(GH-106392). - Web: Always return
0
forOS::get_process_id()
(GH-106504). - macOS: Ensure LayerHost size is set when first embedded (GH-106538).
- Wayland: Fix window fitting in single-window mode (GH-106657).
- Fix
GodotApplicationDelegate
init (GH-106672). - Fix
execute_with_pipe
/create_process
exit code (GH-106708). - Fix transparency background issue on Android (GH-106709).
- Wayland: Add missing return in selection logic (GH-106836).
- Add support for
OS.get_version_alias()
on Android (GH-106859). - macOS: Fix clipboard and TTS not working in embedded game mode (GH-107135).
- Fix native file dialog crash with invalid filter (GH-107197).
- Android: Fix save issue when using native file dialog (GH-107207).
- Remove TTS debug print (GH-107365).
- Fix
Input.vibrate_handheld
on Android (GH-107385). - macOS: Initialize
CVDisplayLinkRef
member field (GH-107437). - Address remaining feedback on Android background transparency (GH-107473).
- macOS: Add
--path
argument when instance is created by project started from editor (GH-107479). - Wayland: Fix division by zero when scale is less than 1 (GH-107787).
- Cleanup closed embedded processes on macOS (GH-107917).
- macOS: Move keyboard layout related code to base display server (GH-107926).
- Add missing JNI variant conversion for generic Array (GH-108019).
- X11: Fix memory leak when using window embedding (GH-108082).
- Android: Fix
DisplayServer.get_display_safe_area()
issues (GH-108102). - Fix immersive mode and virtual keyboard height issue on Android (GH-108287).
- Fix Android splash theme regression (GH-108449).
- Windows: Add SSE4.2 support runtime check (GH-108561).
- Add keypad codes to the keysym unicode map (GH-108659).
- Linux: Fix narrowing conversion error in 32-bit builds (GH-108661).
- macOS: Do not use NSApplication main loop for headless mode (GH-108696).
- Android: Run clipboard tasks on UI thread (GH-108796).
- macOS: Fix
warp_mouse
in game mode (GH-108858). - Web: Fix inappropriate
memfree()
use (GH-108874). - Fix: Make
get_space_left
on Windows usecurrent_dir
instead of process CWD (GH-108964). - Web: Fix the editor
{godot,emscripten}PoolSize
config values (GH-108969). - macOS: Add Tahoe 26.0 to version alias (GH-108978).
- MacOS: Fix embedded screen_get_scale API (GH-109064).
- Fix Android TTS on-demand init (GH-109162).
- Windows: Additionally use
cpuid
instruction to detect SSE4.2 support (GH-109169). - Unix: Replace symlink target, not the link itself when using backup save mode (GH-109383).
- Unix: Fix
execute_with_pipe
closing wrong pipe handle (GH-109397). - Defer
format_changed
andframe_changed
signal for all camera feeds (GH-109594). - macOS: Process joypad input directly in the embedded process (GH-109603).
- macOS: Fix embedded menu/spacer relative position (GH-109676).
- Windows: Fix color picker on old versions of Windows 10 (GH-109694).
- macOS: Forward application focus events to the embedded process (GH-109724).
- Use
org.a11y.Status/ScreenReaderEnabled
on Linux (GH-109739). - SCons: Use gnu++20 in metal driver (GH-109786).
- [Linux/BSD] Initialize DBus only once (GH-109857).
- Windows: Save and restore window rect when switching to/from maximized+borderless mode (GH-110010).
Rendering
- Add stencil support to spatial materials (GH-80710).
- Implement
LIMIT_MAX_COMPUTE_SHARED_MEMORY_SIZE
tolimit_get
in the Vulkan backend (GH-87388). - Implement FXAA 3.11 to replace the current broken implementation (GH-89582).
- Add support for bent normal maps for specular occlusion and indirect lighting (GH-89988).
- Add new StandardMaterial properties to allow users to control FPS-style objects (hands, weapons, tools close to the camera) (GH-93142).
- Add
color_conversion_disabled
shader hint (GH-97801). - Optimize shared texture creations (GH-98760).
- Implement Fragment density map support (GH-99551).
- OpenXR: Use the
XR_FB_foveation_vulkan
extension to get the density map for VRS (GH-99768). - Implement motion vectors in mobile renderer (GH-100283).
- Expose
RenderingServer::environment_set_fog_depth
(GH-101785). - Fix
Camera3D
gizmo representation to accurately reflect FOV (GH-101884). - WebGL: Support native ASTC compression when available (GH-101932).
- Fix wrong default texture for global uniforms of type
sampler2DArray
(GH-101941). - Pass angular diameter into light size constants for sky shaders (GH-101971).
- Optimize ProceduralSkyMaterial by removing uses of acos and simplifying logic (GH-101973).
- Rendering compositor identifies
is_opengl
API; minor optimisation (GH-102302). - Add SMAA 1x to screenspace AA options (GH-102330).
- Add ASTC HDR format variants (GH-102777).
- GLES3: Fix errors baking light map with compatibility renderer (GH-102783).
- Fix voxelizer normals (GH-102893).
- Fix render info primitive count per
TRIANGLE_STRIP
(GH-102905). - Fix 2D quad primitive missing lighting data in GLES3 renderer (GH-102908).
- Fix uninitialized value in Tonemap (GH-103092).
- Add Meshes to the Video RAM Profiler (GH-103238).
- Disable texture array reflections on Intel GPUs on macOS due to driver bugs (GH-103306).
- Suppress OpenGL debug marker printing (GH-103404).
- RenderingDevice: Validate pre-raster (vertex) shader in
render_pipeline_create
(GH-103480). - Physics Interpolation - Add editor configuration warnings (GH-103504).
- Use separate WorkThreadPool for shader compiler (GH-103506).
- Validate triviality of InstanceData struct in Mobile and Forward+ renderers (GH-103529).
- Fix inefficient upload in Mobile Shadows (GH-103531).
- Optimize
_fill_instance_data
function in Forward+ renderer (GH-103547). - Metal: Use uniform set index passed by
RenderingDevice
(GH-103613). - Metal: Add missing stage info to shader description (GH-103616).
- Fix inefficient upload in Mobile Shadows (GH-103641).
- Metal: Use
p_set_index
when binding uniforms, to use correct data (GH-103645). - Fix incorrect parameters passed to VMA (GH-103730).
- MetalFX: Change fallback behavior (GH-103792).
- Significantly reduce per-frame memory allocations from the heap in the Mobile renderer (GH-103794).
- Switch occlusion culling to be based on depth instead of Euclidean distance (GH-103798).
- RenderingDevice: Delay expensive operations to
get_perf_report
(GH-103814). - Fix GLES3
gaussian_blur
mipmap setup (GH-103878). - Fix deadlock between
PipelineHashMapRD::local_mutex
andGDScriptCache::mutex
(GH-103880). - Clean up more dynamic allocations in the RD renderers with a focus on 2D (GH-103889).
- Forward+: Replace the current BRDF approximation with a DFG LUT and add multiscattering energy compensation (GH-103934).
- Renderer: Expose and document
Features
enum for MetalFX (GH-103941). - CPUParticles2D: Fix physics interpolation after entering tree with
emitting = false
(GH-103966). - Fix
Invalid Task ID
error spam inPipelineHashMapRD
(GH-104044). - Metal: Use reference, so we're not copying every frame (GH-104051).
- Vulkan: Disable layers in editor deemed buggy by RenderDoc (GH-104154).
- Error when draw list is not active in
draw_list_switch_to_next_pass
(GH-104159). - Physics Interpolation - Move 3D FTI to
SceneTree
(GH-104269). - Add error check for reflection probe invalid atlas index (GH-104302).
- Fix Movie Writer behavior with Viewport Display Mode + Window Size Override (GH-104334).
- Renderer: Fix Metal handling of cube textures; assert equal dimensions (GH-104341).
- Renderer: Warn when images need to be converted due to their formats being unsupported by hardware (GH-104480).
- Disable broken Vulkan layers before running RenderingDevice tests (GH-104572).
- Vulkan: Re-enable Mesa device select layer (GH-104592).
- Fix uninitialized member vars in CommandQueueMT and RasterizerSceneGLES3 (GH-104616).
- Fix corrupted negative values for signed BC6 (GH-104768).
- Avoid using a global variable to store instance index in canvas items shader in RD renderer (GH-105037).
- Combine
TileMapLayer
debug quadrant shapes to a surface (GH-105090). - Renderer: Reduce scope of mutex locks to prevent common deadlocks (GH-105138).
- Detect more pipeline settings at load time to avoid pipeline stutters (GH-105175).
- Relax the range hint for canvas layer properties (GH-105245).
- Pre-allocate more resources when screen textures are detected in the Mobile renderer (GH-105267).
- Fix
Math
constant conversion (GH-105286). - Fix RendererRD crash on start on Intel Macs (GH-105424).
- Allow moving meshes without motion vectors (GH-105437).
- Properly report missing nodes in LightmapGI (GH-105465).
- Fix UBSAN alignment issues in the render graph (GH-105501).
- Scene shader: Improve and document SH diffuse evaluation for light probes (GH-105525).
- RenderingDevice: Pass mipmap count to
texture_create_from_extension()
(GH-105570). - Fix float/int comparison in acos_approx in sky template shader (GH-105837).
- Avoid unnecessary
version_get_uniform()
calls (GH-105864). - Fix reflection probe dark borders (GH-105899).
- Fix error spam to due wrong use of
reserve()
in D3D12 driver (GH-105906). - FTI - Add custom interpolation for wheels (GH-105915).
- FTI - Fix
SceneTreeFTI
behaviour on exit tree (GH-105973). - Avoid crash when allocating specular and normal-roughness buffers when render buffers aren't available (GH-106079).
- Check for GL ES version of BPTC extension when using the OpenGL renderer (GH-106086).
- Add specular occlusion from ambient light (GH-106145).
- Compatibility: Disable environment ambient light when affected by light probes (GH-106149).
- SceneTreeFTI: faster access to
Node
children (GH-106224). - Fix reflection probe box projection stretching (GH-106241).
- FTI - Optimize
SceneTree
traversal (GH-106244). - Use a fragment shader copy instead of a blit copy in the final blit to screen in the Compatibility backend (GH-106267).
- Change Occlusion Culling Buffer debug view to use log scaling (GH-106316).
- Implement the
count
parameter inRenderingServer.canvas_item_add_triangle_array
(GH-106396). - Rewrite textureProjLod usage to avoid a Vulkan validation error (GH-106399).
- Improve platform compatibility of Windows and Direct3D 12 (GH-106400).
- Rework semaphores for presentation to be created per swap chain image to fix validation error (GH-106407).
- Fix Reflection Mask not working on Mobile (GH-106411).
- Reduce amount of permutations in mobile shader (GH-106493).
- Shader: Fix the default behavior when mat uniforms are null (GH-106592).
- macOS: Support vsync when embedding OpenGL processes (GH-106614).
- Mobile: Disable subpass post-processing when using FXAA (GH-106631).
- Metal: Ensure stencil-only rendering is supported (GH-106653).
- Fix light range in VoxelGI (GH-106673).
- Metal: Fix crash when clearing render buffers (GH-106694).
- Metal: Disable MetalFX Temporal for
mobile
rendering method (GH-106731). - Renderer: Eliminate
String
allocations for all labels in the renderer (GH-106732). - Ignore destination alpha when blitting to window in compatibility renderer (GH-106737).
- Mobile: Move
_setup_lightmaps
before_fill_render_list
(GH-106748). - D3D12: Fix inconsistent value for
DCOMP_ENABLED
in platform code (GH-106827). - Fix missing ibl reconstruction from DFG multiscattering (GH-106844).
- Minor rendering and XR changes to allow Meta enivornment depth API to work entirely from GDExtension (GH-106880).
- Vulkan Mobile: Fix lightmap instances count (GH-106907).
- Correctly place viewport and use viewport relative rect for the final blit in Compatibility renderer (GH-106924).
- Metal: Fix multi-view support (GH-106925).
- Allow double precision modelview (GH-106951).
- Avoid
-Wmissing-declarations
warning in RenderingShaderContainer (GH-106999). - SceneTreeFTI: - Fix
identity_xform
flag getting out of sync (GH-107041). - Increase directional light energy in sky for fog sun scatter (GH-107099).
- Expose
RS.mesh_surface_update_index_region
(GH-107116). - Optimize Mobile renderer by using FP16 explicitly (GH-107119).
- LightmapGI: Search for shadowmask light index only after sorting the lights (GH-107145).
- Fix SH lightmap coefficients for direct lights (GH-107168).
- Avoid crash when texture layers is greater than 1 and format is not an ARRAY type (GH-107169).
- SceneTreeFTI: - Fix
force_update
flag getting out of sync with invisible nodes (GH-107175). - Make
LightmapGIData::_set_user_data
a proper setter instead of an additive operation (GH-107192). - Fix crash when using
VIEW_INDEX
in shader with Vulkan mobile renderer (GH-107210). - RendererRD: Fix swizzle on depth formats (GH-107230).
- OpenGL: Fix shader compilation failure with
shadow_to_opacity
andunshaded
(GH-107238). - Fix LightmapGI shadow leaks (GH-107254).
- Fix crash on custom shaders using
VIEW_INDEX
on Vulkan Clustered Forward Renderer (GH-107270). - macOS: Switch Angle to Metal backend (GH-107306).
- Fix final blit in OpenGL when stereo rendering is used (GH-107345).
- Vulkan Mobile: Fix crash from shader compilation with
USE_RADIANCE_CUBEMAP_ARRAY
(GH-107359). - Upgrade normal interpolators to FP32 to fix Adreno (GH-107364).
- Change all interpolators to FP32 in mobile renderer (GH-107419).
- Fix the VRS attachment being incorrectly added to
color_attachments
(GH-107451). - Fix bent normal maps not working with triplanar UVs (GH-107453).
- Use raw buffer pointers in
RenderingDevice
allocation APIs to avoid intermediary arrays (GH-107486). - Check render target validity before getting motion vector texture in mobile renderer (GH-107515).
- Forward+: Fix builtins in light shader (GH-107625).
- SCons: Enable
lightmapper
andxatlas_unwrap
modules on Android and iOS editors (GH-107635). - Fix GLES3 stereo output (sRGB + lens distortion) (GH-107698).
- Fix baked VoxelGI using the wrong color space (GH-107776).
- Always perform color correction and debanding on nonlinear sRGB values (GH-107782).
- macOS: Selectively bake specific shader variants for MoltenVK (GH-107794).
- Fix stencil preset priorities (GH-107807).
- Fix stencil preset
next_pass
stencil flags (GH-107808). - Fix buffer size calculations in lightmapper_rd.cpp to account for element sizes (GH-107820).
- Ensure sky orientation is set when reflection uses sky (GH-107858).
- Fix a few improper memory accesses in the clustered forward vertex shader (GH-107876).
- Vulkan Mobile: Fix writing vertex color in spatial shader (GH-107893).
- Always send lights to sky shader if using sun scatter (GH-107928).
- Fix
RenderingServer::mesh_surface_get_lods()
(GH-107985). - Fix VVL errors by changing
frag_color
to FP32 and dFdx/y (GH-108015). - Metal: Use image atomic operations on supported Apple hardware (GH-108028).
- Fix opaque stencil rendering (GH-108044).
- FTI: - Fix
MultiMesh
init and stable behaviour (GH-108109). - FTI: - Add reset on setting
top_level
(GH-108112). - Metal: Use correct environment variable to generate labels (GH-108123).
- FTI: - Clear
SceneTreeFTI
completely on enabling / disabling (GH-108131). - Web: Restrict rendering method selection (GH-108276).
- Fix
surface_get_arrays
returns wrong index array when using empty vertex array (GH-108308). - Fix underculling of occulusion culling (GH-108347).
- Fix division by zero in clearcoat specular BRDF (GH-108378).
- Fix crash when creating voxel GI data (GH-108397).
- Metal: Remove invalid assumption for image atomic operations (GH-108452).
- macOS: Selectively bake "no image atomics" shader variants (GH-108510).
- Fix crash when editing some resources and reloading scene (GH-108555).
- Add some multimesh null checks to avoid crash (GH-108567).
- RenderingDevice: Add
uniform_type
check to avoid crash (GH-108568). - Never overwrite motion vectors in the transparent pass (GH-108664).
- Fix lightmap dynamic objects with physical lights (GH-108728).
- Fix debanding for Mobile rendering method with HDR 2D (GH-108761).
- D3D12: Fix shader model check, initialization error handling (GH-108919).
- Check for Vulkan Memory Model support and make it a variant (GH-108936).
- Compute texture alignment for transfers using the LCM instead (GH-108940).
- Don't use
GL_DEPTH_STENCIL_ATTACHMENT
on depth buffer from WebXR (GH-108943). - Remove Adreno 3xx flip workaround (GH-109042).
- Fix overflowing render priority for stencil mode outline and xray (GH-109052).
- OpenGL: Fix crash at startup with "Thread Model" set to "Separate" (GH-109057).
- Windows: Add Intel Gen9.5 (Kaby Lake) GPUs to Angle blocklist (GH-109210).
- Metal: Ensure correct output texture format selection (GH-109406).
- Fix mobile renderer motion vectors (GH-109556).
- Fix material removal clearing all instances of shared texture arrays (GH-109644).
- Fix MSDF outline size clamping (GH-109765).
- Treat missing variants as normal cache misses during shader cache lookup (GH-109882).
- Metal: Read
gl_ViewIndex
in tonemapper.glsl for multi-view subpasses (GH-109891). - Add debanding to SMAA and apply debanding before spatial upscalers (GH-109970).
- Check renderer type when setting 3D upscaling mode (GH-109993).
- Use vertex shader workaround for Mali GXX GPUs for glow shader (GH-109994).
- Handle the case where VRS is a two byte per pixel format when creating default VRS texture (GH-109995).
- Fix --generate-spirv-debug-info regression (alternate take) (GH-110025).
- Metal: Reduce baked version to MSL 3.1; validate minimum version (GH-110063).
- MSDF: Fix outline bleed out at small sizes (GH-110148).
- Avoid attempting to load from shader cache when both the user-dir and res-dir are invalid (GH-110174).
- Add GENERAL resource usage to the render graph and fix mutable texture initialization in D3D12 (GH-110204).
- Metal: Ensure baked Metal binaries can be loaded on the minimum target OS (GH-110264).
Shaders
- Expose built-in region information (GH-90436).
- Re-organize UI in the shader editor (GH-100287).
- Replace
VMap
used inVisualShader
withHashMap
and removeVMap
(GH-100446). - Allow constants and expressions in
hint_range
(GH-102289). - Allow
default
case at the top of a switch scope in shaders (GH-103177). - Fix 2D instance params crashing using outside of
main()
(GH-103348). - Fix "unused varying" incorrect warning in shaders (GH-103434).
- 2D: Fix light shader accessing
TEXTURE_PIXEL_SIZE
(GH-103617). - Fix missing alpha input for visual shaders (GH-103886).
- Limit error messages in CodeTextEditor to 2 lines length (GH-104739).
- Shader: Fix
bvec
to variant conversion (GH-104880). - Unify Scripts Panel naming for the script and shader editors (GH-105124).
- Make shader editor menu position consistent with script editor (GH-105183).
- Web: Optimize
GL.getSource
for known-length shader sources (GH-105833). - Remove duplicated entries from shader built-ins (GH-106248).
- Fix shader compiler crash when parsing case labels with non-existent vars (GH-106781).
- Vulkan Mobile: Fix reading builtins in
light()
of spatial shader (GH-107404). - Fix global shader texture uniform (GH-107475).
- Prevent ternary expression with a sampler types in shaders (GH-107724).
- Add missing input transform to visual shader preview (GH-107729).
- Fix shader function overloads with incorrect order (GH-108085).
- Fix shader editor auto-opens on startup (GH-108295).
- Visual Shader State Persistence - Type Fixes (GH-108620).
- Sort bent normal output at the bottom to prevent visual shader breakage (GH-108630).
- Fix shader editor menu switch on hover for file button (GH-108877).
- Improve shader overloaded function error reporting (GH-109548).
- Make shader editor menu position consistent between shader languages (GH-109973).
Tests
- Add getter tests for dynamic fonts (GH-81503).
- Add check for argument name validity (GH-94798).
- Core: Add
constexpr
constructors/operators to math structs (GH-98768). - Fix
SCRIPT ERROR/ERROR/WARNING
on test output (GH-103663). - Remove
build_array()
andbuild_dictionary()
from tests (GH-104735). - Add
THREADS_ENABLED
check before RID thread tests (GH-105157). - Test for insertion at array's size (GH-105428).
- Delete test cache before running it (GH-105848).
- Fix tests that fail when alone (GH-106129).
- Fix
--test
help option not showing in template builds (GH-106130). - Add unit tests for Sprite2D (GH-106574).
- Don't hard-code test path when deleting test data (GH-106749).
- Fix infinite recursion on
GDScriptTests
if a script cannot be reloaded (GH-106976). - Fix Resource Duplication test errors (GH-107516).
- Fix tests warning line break strictness project setting (GH-107517).
- Fix unfiltered error output in tests (GH-109094).
Thirdparty
- embree: Update to 4.4.0 (GH-101345).
- libwebp: Update to 1.5.0 (GH-101348).
- clipper2: Update to 1.5.2 (GH-102661).
- Theora: Fix YUV422/444 to RGB conversion (GH-102859).
- tinyexr: Update to 1.0.12 (GH-102996).
- Update to latest version of Swappy (GH-103409).
- Update HarfBuzz to 10.4.0 (GH-103491).
- Update FreeType to 2.13.3 (GH-103492).
- ICU4C: Update to version 77.1 (GH-104104).
- libpng: Update to 1.6.47 (GH-104255).
- thorvg: Update to 0.15.11 (GH-104304).
- pcre2: Update to 10.45 (GH-104521).
- mbedTLS: Update to version 3.6.3 (GH-104562).
- thorvg: Update to 0.15.12 (GH-105093).
- ufbx: Update to 0.18.0 (GH-105096).
- Update HarfBuzz to 11.2.1 (GH-105480).
- basis_universal: Rediff patches, remove Windows encoding fix (GH-105856).
- manifold: Update to 3.1.1 (GH-106465).
- Correct libjpeg-turbo patches (GH-106467).
- Update
qoa.h
to latest git (GH-106602). - certs: Sync with upstream as of Apr 8 2025 (GH-106615).
- Update OpenXR to 1.1.47 (GH-106616).
- AccessKit: Update API to 0.16.0 (GH-106659).
- Update meshoptimizer to v0.23 (GH-106740).
- ufbx: Update to 0.18.2 (GH-106851).
- Fix
unzSeekCurrentFile
not resettingtotal_out_64
(GH-106869). - thorvg: Update to 0.15.13 (GH-106885).
- clipper2: Update to 1.5.3 (GH-107026).
- libpng: Update to 1.6.48 (+ cleanup thirdparty docs) (GH-107155).
- doctest: Update to 2.4.12 (GH-107158).
- openxr: Update to 1.1.48 (GH-107159).
- msdfgen: Update to 1.12.1 (GH-107160).
- miniupnpc: Update to 2.3.3 (GH-107161).
- libktx: Update to 4.4.0 (GH-107163).
- libtheora: Update to 1.2.0 (GH-107190).
- clipper2: Update to 1.5.4 (GH-107314).
- OpenXR: Update to 1.1.49 (GH-107386).
- ufbx: Update to 0.20.0 (GH-107956).
- Sync controller mappings DB with SDL community repo (GH-107962).
- Fix SDL threading on macOS/Linux (GH-107963).
- Specify Apache license version for Grisu2 (GH-108400).
- Update manifold to upstream commit 76208dc (GH-108655).
- Fix ICU support data loading (GH-108806).
- harfbuzz: Update to 11.3.2 (GH-108859).
- Update access-kit to 0.17.0 (GH-108924).
- Add two missing SDL patches to the
README.md
(GH-108927). - TVG: Use heap for XML parser allocs (GH-109530).
XR
- Implement
XR_EXT_performance_settings
OpenXR extension (GH-101597). - Add support for the OpenXR futures extension (GH-101951).
- Implement OpenXR FB swapchain update extensions (GH-101999).
- OpenXR: Expose more system info from
XrSystemProperties
(GH-102869). - OpenXR: Add controller interaction profile for Pico 4 Ultra (GH-103234).
- Allow to compile the engine without XR support (GH-103267).
- OpenXR: Support alternative reference spaces from extensions (GH-103643).
- Fix build errors when building with
disable_xr=yes
(GH-103778). - Add support for running hybrid apps from the XR editor (GH-103972).
- OpenXR: Fix OpenGL version warning when using GLES (GH-103973).
- OpenXR: Clean-up
OpenXRExtensionWrapper
by removing multiple inheritance and deprecatingOpenXRExtensionWrapperExtension
(GH-104087). - Add support for Direct3D 12 OpenXR backend (GH-104207).
- Deactivate the
CameraServer
by default (GH-104232). - Correct occlusion culling viewport location calculation when projection uses asymmetric FOV (GH-104249).
- Editor: Replace TextEdit with EditorSpinSlider for XR Action Set Priority (GH-104461).
- Add tooltips to OpenXR Action Map UI (GH-104465).
- Enable composition layer fallback in panel mode (GH-104470).
- Avoid doctools attempting to query the
CameraServer
to infer a default value forcamera_is_active
(GH-104582). - Ensure the composition layer is registered when the layer viewport is updated (GH-104658).
- macOS: Allow users to select Continuity Camera (GH-104857).
- Automatically activate camera monitoring when using
CameraTexture
(GH-104971). - Fix OpenXR Action Map GUI not scaling according to Editor Scale (GH-105072).
- Add singleton check before adding webxr interface (GH-105206).
- OpenXR: Request the
XR_KHR_loader_init
extension (GH-105445). - OpenXR: Fix saving action map when UID is used in project settings (GH-105624).
- OpenXR: Fix building foveation extension without Vulkan (GH-105708).
- OpenXR: Fix building with Wayland support and
opengl3=no
(GH-105711). - Fix camera feed device order on Linux (GH-105734).
- Enable game window close button on PicoOS (GH-105912).
- Enable XR play mode options in the regular editor (GH-106077).
- Add CameraFeed support for Android (GH-106094).
- Physics Interpolation - Fix XR Nodes to work with
SceneTreeFTI
(GH-106109). - OpenXR Futures: Add return value support (GH-106738).
- Fix the
CAMERA
permission request on HorizonOS devices (GH-107184). - Add new joints to
XrBodyTracker
(GH-107220). - WebXR: Better errors when WebXR Layers or multiview are unavailable (GH-107288).
- OpenXR: Add support for render models extension (GH-107388).
- OpenXR: Only run xrSyncActions when application has focus (GH-107619).
- Rename
OpenXRInterface.OpenXrSessionState
toOpenXRInterface.SessionState
(GH-107710). - Adjust names of new
XRBodyTracker
joints (GH-107715). - FTI: - Change
SceneTree
global setting to static (GH-107886). - Add
CameraServer
feeds_updated
signal, and document async behavior (GH-108165). - Add missing OpenXR paths to /user/vive_tracker_htcx (GH-108511).
- Fix error spam when hands are not tracked (GH-108537).
- Fix camera removal detection after toggling monitoring on Linux (GH-108584).
- Misc XR editor updates (GH-108841).
- OpenXR: Work around bug with Meta runtime on 1.0.49 (GH-108869).
- Update the OpenXR Vendors plugin for the XR editor to the latest stable version (GH-108956).
- OpenXR: Fix required extension tooltip (GH-109289).
- OpenXR: Use GLTFDocument function to get supported extension names (GH-109630).
- Fix missing layer provider setup when setting Surface after visibility (GH-109647).
- OpenXR: Fix default action map entry for Vive Focus 3 (GH-109856).