Godot Engine (32-bit) Download (2025 Latest)

What’s new in this version:

2D:
– Add warning in scene tree when nested CanvasItems try to clip children
– Optimize usability of VisibleOnScreenNotifier2D
– Improve usability of Camera2D
– Draw tilemap coordinate and rectangle size on the screen when using the TileMapLayer’s Terrains plugin
– Fix wrong canvas camera override panning in the runtime debugger
– Path2D prefer control points for outward curve
– Polygon2DEditor: Add tool to automatically move center of gravity to origin
– Add a dedicated editor for Camera2D limits
– Improve/fix TileMap and TileSet editors UI
– Fix applying TileMapLayer.self_modulate to tiles
– Add null check for SpriteFramesEditor’s SpriteFrames
– Fix Editor 2D Ruler Text Top-Align
– Add ruler width editor setting to 2D editor
– Fix editing custom data for tilesets
– Allow Sprite2D being dragged to change their region_rect
– Fix process callback state getting overwritten by calls to set_process_smoothing_speed
– Improve Path2D debug performance
– Fix Camera2D right and bottom limit to depend on bottom right corner
– Fix rotated/flipped tiles rendering origin
– Deprecate ParallaxBackground and ParallaxLayer
– Improved Camera2D limits handling when limits are smaller than screen rect
– Expose Camera2D current rotation
– TileSet: Fix potential crash updating stale atlas source editor toolbar
– TileSet: Prevent crash in conversion of invalid tiles from Godot 3.x
– TileSet: Fix -Wmaybe-uninitialized warning on CompatibilityShapeData
– Make TileMapLayer editor match layer’s filter
– Fix rotated/flipped tiles destination rect calculations
– Fix WorldBoundaryShape2D handle when distance is negative
– Fix Sprite2D error spam in exported project
– Don’t put main properties of AnimatedSprite2D inside a group
– Improve Camera2D limit editing
– Fix removing wrong vertices in the Polygon2D editor when points overlap each other
– Fix points jumping when dragging starts in the Polygon2D editor
– Fix smoothed camera position with limits
– Fix error spam caused by internal_vertex_count property
– Fix selecting wrong vertices in the Polygon2D editor when adding a polygon
– Fix lingering grid from TileMapLayer editor
– Fix debanding not being used in the 2D editor when enabled in Project Settings
– Fix debug rendering in TileMapLayer
– Rename Camera2D set_position_smoothing_enabled parameter
– Fix TileMapLayer terrain preview icons for transformed alternative tiles
– Free TileMapLayer debug quadrant meshes when clearing

3D:
– Allow customizing debug color of Path3D
– Curve3D: Fix middle point forward vector when control1=end and control2=begin
– Disable debug draw modes in the 3D editor according to current rendering method
– Fix !is_inside_tree in csg node when reloading a scene
– Set correct position of node with Align Transform with View in orthographic view
– Fix 3D Ruler stuck in viewport if tool mode is switched during measurement
– Update cursor instance when calling set_selected_palette_item
– Fix being able to grab hidden transform gizmo handles
– Add “active” state to one of the multiple selected Node3Ds to determine basis in Local mode
– Fix some global-space bugs in RemoteTransform3D._update_remote and add some optimizations
– Editor: Improve capsule gizmos
– Do not commit gizmo handles if no changes were made
– Allow rotating selected cells in GridMap
– Add UndoRedo actions to preview sun/environment popup
– Unify CSGPolygon3D gizmos with the other geometries
– Use physical keys for the Q/W/E/R 3D editor shortcuts
– Make Game view follow more editor settings
– Improve cylinder gizmo performance
– Path3D prefer control points for outward curve
– Improve GPUParticlesCollision3DGizmoPlugin performance
– Unbind CSGShape::_update_shape() and make it public
– Fix GridMap shortcuts being triggered during freelook (mouse captured)
– Fix 3D view menu gizmo icons being broken in empty scene
– Allow multiple EditorNode3DGizmo collision meshes
– Fix missing tooltips on “Advanced Import Settings for Scene” window
– Allow higher freelook base speed values in the 3D editor settings
– Fix gizmos from 3D editor plugins not applying changes to locked nodes
– Optimize PrimitiveMesh creation by avoiding CoW behavior and dynamic memory allocations
– Fix GridMap OctantKey cell rasterization
– Fix light theme gizmo icons in the 3D editor appearing too dark
– Optimize GridMap rendering scenario quadruple-getters
– Replace GridMap legacy use of List with LocalVector
– Improve and optimize lightmap probe gizmo creation
– Fix incorrect transform when editor camera is moved externally
– Fix GridMap move selection crashing on invalid MeshLibrary item
– Gave billboarded sprites and labels more fitting AABBs
– Fix for Node3D request gizmos multiple times
– Fix Quaternion arc constructor tolerance
– Show Curve3D point tilt in degrees in inspector
– FTI – global_transform_interpolated() on demand for invisible nodes
– Add a LightmapProbe gizmo size editor setting
– Fix missing gizmo update when selection changes outside of 3D view
– SceneTreeFTI: – miscellaneous speedups
– Create more optimized CSGShape3D baked static mesh
– Fix freelook in 3D when multiple viewports are open
– Clear cache when setting Mesh’s surfaces
– Fix MeshInstance3D::get_active_material() error on empty mesh or empty surfaces
– Gridmap editor: Avoid extra mesh instantiation when setting clipboard data
– Fix Mesh.generate_triangle_mesh when using PRIMITIVE_TRIANGLE_STRIP
– Revert “Create more optimized CSGShape3D baked static mesh”
– Fix sphere gizmo handle position
– Move last four 3D files to 3D folder and move physics gizmos to their own physics folder
– Fix missing 3d gizmos
– Fix editor segfault when using a Path3D without a Curve3D
– Stop clearing editor_plugin_screen on script edit
– Fix BoneAttachment3D getting global transform of external skeleton before it is_inside_tree()
– Fix node can’t be rotated by holding ctrl/command while in select mode
– Fix cinematic preview causing the editor redraw continuously and aspect ratio not updating in camera preview
– Fix transforms trying to continue after a cancel
– Prevent held escape key from unselecting nodes after canceling a transform
– Create an undo/redo action when pinning a SoftBody3D point in the editor

Animation:
– Allow double-click within tracks to set a new play position
– Add option to auto tangent new bezier points in animation editor
– Support hiding functions calls in Method Tracks
– Add editor setting for default animation step
– Add selection box movement/scaling to the animation bezier editor
– Implement BoneConstraint3D with CopyTransform/ConvertTransform/Aim Modifiers
– Fix opacity when deleting or renaming a node in AnimationNodeStateMachine
– Improve wording on recursive transition detection warning
– Add external force property to SpringBoneSimulator3D
– Change NodeOneShot fading to uses self delta instead of input delta
– Add editor setting for FPS mode and compat
– Add node started/finished signals for animation state machines
– Add animation filtering to animation editor
– Fix Tween.is_valid() returning true after calling kill()
– Add select node shortcut to list view in Animation Player Editor
– Add alphabetical sorting to Animation Player
– Add delta argument to SkeletonModifier3D._process_modification() as _process_modification_with_delta(delta) and expose advance() in Skeleton3D
– Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D
– Improve State Machine BlendTree node to properly display conditions
– Fix missing process_state error in blend spaces
– Add is_inside_tree() check to SpringBoneSimulator3D
– Fix rest translation space in LookAtModifier3D
– Remove incorrect errors in AnimationMixer
– Add correct cursors when scaling bezier keys with box scaling
– Add bone name/idx matching validation and lacked virtual methods to SkeletonModifier3D
– Fix final tween value with custom interpolator
– Add axis snapping for bezier key move in Animation Player
– Move SpringBoneSimulator3D registration to the outside of Physics3D’s environment
– Fix EditorSpinSlider Grabber Scaling
– Fix current_animation_changed emission on animation finish
– Remove dead code in AnimationStateMachine editor
– Remove error print in the Animation getter
– Expose AnimationNode(StateMachine/BlendTree).get_node_list()
– Fix the Animation Optimization results for Nearest and Cubic Interpolation
– Sort animation nodes in AnimationNodeBlendSpace2DEditor popup menu
– Make silhouette fixer to use arc Quaternion constructor instead of looking_at()
– Fix scaling from cursor in AnimationPlayer
– Use AHashMap for RBMap nodes and HashMap input_activity
– Add optional rotation axis & Fix initial pose with rotation axis in SpringBone
– Fix rest update process by dirty flag to not take into account pose dirty flag in Skeleton3D
– Fix creating outline for skinned meshes
– Use a type-hinted dictionary for AnimationLibrary’s libraries property
– Make sure clicking AnimationTree node open the state machine editor not the track editor
– Implement method lookup for method tracks
– Fix fade out duration to extend a bit take into account current delta in NodeOneShot
– New test for animation blend tree
– Remove unnecessary calling _validate_property() in the core from all extended classes
– Fix Heap buffer overflow in Animation::_find()
– Refactor BoneAttachment property registration
– Implement ModifierBoneTarget3D which can be target of the other SkeletonModifier3Ds
– Fix ambiguous AnimationNode’s parameter type in default value and make validate_type_match() static function
– Fix animation track filter size bug
– Add default paramater for AnimationNode as super class
– Fix animation track inserted path and key type
– Fix AnimationPlayer finished state in the editor
– Fix editing/removal of bone meta
– Skip killed/invalid subtween
– Fix animation keying not working with toggleable inspector sections
– Block Tween custom_step() during step
– Remove PropertyTweener start warning
– Fix SpringBone3D being unintentionally disabled
– Fix glitched animation key after canceled dragging
– Fix name included in animation when saved from slice in scene importer
– Fix incorrect blend_position values in BlendSpace editor after dragging point
– Correctly hide BlendSpace editor error panel on load
– Process skeleton modifiers when the skeleton is marked as dirty
– Fix overly aggressive focus grabbing by StateMachine and BlendSpaces
– Add missing bone name suggestions in ModifierBoneTarget3D
– Move Skeleton3D init process (for dirty flags) into POST_ENTER_TREE from ENTER_TREE

Assetlib:
– Fix wrong “location” substring matching when HTTP status is 301 or 302

Audio:
– Fix audio input gets muted after a while on android
– Editor: Move thread name assignment in audio preview
– Add metadata tags to WAV and OGG audio streams
– Add “Mute Game” toggle in Game view
– Reduce memory overhead of save_to_wav
– AudioStreamPlaybackWAV: Inherit from Resampled
– Implement seek operation for Theora video files, improve multi-channel audio resampling
– Fix AudioServer missing deletes
– Set interactive music streams as meta streams
– Fix AudioEffectPitchShift issues when pitch_scale is set to 1
– Optimize reverb by removing stray volatile from the undenormalize function signature
– Add support for Mute Game toggle in the Android Editor
– Fix AudioStreamPlayer3D stereo panning issue
– Enable TTS on demand, instead of fully disabling it when project setting is not set
– Add an actual name for Ogg Vorbis importer visible name
– Allow theming audio buses
– AudioEffectPitchShift: 3rd attempt at fixing -Wstringop-overflow warning
– Return the length of the playing stream for AudioStreamRandomizer
– Fix AudioStreamPlayer3D’s layer_mask property using the wrong property hint (+ misc related fixes)
– Hide scrollbar in the audio stream importer dialog when unneeded
– AudioStreamWAV: Inline tag remap inside load
– Fix audio name doesn’t appear in exports of child classes of AudioStream
– Fix broken WAV info list tag parsing
– Use TightLocalVector for AudioStreamWAV/MP3
– Web: Fix Webkit leak caused by the position reporting audio worklets
– Add permission request for Apple embedded platforms, fix microphone input
– Fix AudioListener3D not tracking velocity for doppler
– Web: Fix sample playback deletion and AudioStreamPolyphonic issue
– Add missing copyright for pitch shift
– Fix random pitch upward bias in AudioStreamRandomizer
– Make WAV metadata tag mappings more consistent with Vorbis
– Web: Fix AudioStreamPlayer.get_playback_position() returning incorrect values for samples

Buildsystem:
– Use SSE 4.2 as a baseline when compiling Godot
– Remove PrefersNonDefaultGPU from linux desktop file
– SCons: Make builders prettier, utilize constexpr
– CI: Format SCons input flags & build action
– Core: Avoid including modules/modules_enabled.gen.h in headers
– CI: Ensure default branch cache persists
– Remove custom –language-in arg for the Closure compiler
– CI: Replace pytest with pre-commit hook
– SCons: Add emitter to declutter build objects
– Replace header guards style with #pragma once
– Web: Add library emitter to make sources dependent of compiler version
– SCons: Implement minor fixes
– Style: Ensure svgs have trailing newlines
– Update CI ruff & mypy pre-commit hooks
– Fix .sln project generation logic for Rider to support all OS and all C++ toolchains
– Bump version to 4.5-dev
– CI: Use correct godot-cpp branch
– CI: Bump SCons to latest (4.8.1 → 4.9.0)
– Android: Fix build with disable_3d
– zstd: Update to 1.5.7, fix support for GAS .S files on Windows/MinGW
– SCons: Simplify Windows/MSVC detection
– SCons: Remove check_c_headers
– Revert mypy update (1.15.0 -> 1.14.1)
– CI: Add workflow to cleanup PR caches when closed
– CI: Trim cache before saving
– Apply pre-commit changes
– Fix build errors when building with disable_3d=yes
– Make SConstruct file check some envs before querying modules
– SCons: Fix broken msvc conditional
– CI: Set explicit write permission for cache cleanup token
– CI: Build macOS binary without Vulkan if Vulkan SDK fails installing
– CI: Ensure scons-cache exists before parsing
– SCons: Expand NoCache coverage
– Web: Fix editor build after #pragma once refactoring
– Fix incorrect guards in VisibleOnScreenNotifier2D
– Support a NO_COLOR environment variable in doc_status.py
– SCons: Refactor color.py
– Editor: Restructure editor code
– SCons: Ensure MinGW as fallback if missing MSVC
– CI: Bump various pre-commit hooks
– Android: Replace the deprecated version macro
– CI: Validate scons-cache via action output
– SCons: Only set GCC -Wvirtual-inheritance for C++ and warnings=extra
– SCons: Add CPPEXTPATH for external includes
– mbedtls: Disable ASM when compiling with LLVM MemorySanitizer (MSAN)
– Organize ifdefs for disabling navigation, physics, and XR
– Fix compiling with disable_xr=yes when 3d enabled
– SCons: Integrate WARNLEVEL & OPTIMIZELEVEL
– CI: Remove “Free disk space on runner” job (REVERTED)
– Fix issue where vsproj=yes vsproj_gen_only=no sometimes fails to build
– Web: Add the equivalent of -Werror for wasm-ld
– Fix missing gdb.printing import for the pretty print script
– Add {c,cpp}_compiler_launcher options
– Android: Enable native debug symbols generation
– Update the Android NDK to the latest LTS version (r27c)
– SCons: Begin decoupling generation & build code
– Native visionOS platform support
– Fixes for .sln project generation for Rider on Mac/Linux
– CI: Remove legacy dependency
– CI: Replace gold with mold
– Use separate_debug_symbols to control generation of the separate Android debug symbols file
– Web: Add required exported functions and runtime methods for emscripten
– SCons: Explicitly enable -mfpmath=sse -mstackrealign for x86_32
– Fix macOS build with ANGLE enabled and Vulkan disabled
– CI: Remove now unused godot-api-dump action
– Update Mesa-NIR library detection and download script
– CI: Ensure Windows Actions handle utf-8 characters
– MinGW: Explicitly link shell32 library
– Fix uiautomationcore linking in 32-bit x86 MinGW builds
– Fix install_vulkan_sdk_macos.sh incorrectly saying Vulkan was installed when jq is missing
– SCons: Add enum conversion warning
– Web: Include emscripten headers by default
– Remove WinAPI #undef hacks needed for mingw-std-threads
– doctest: Patch for clang warning about replacing by
– Add EnumVariable(ignorecase=2)
– Wayland: Fix compile error with DBUS disabled
– CI: Run apt update before installing libxml2-utils
– Only instantiate MovieWriterMJPEG and MovieWriterPNGWAV movie writers if they are enabled
– CI: Propagate matrix.sconsflags in macos_builds.yml
– Move MovieWriterMJPEG class to jpg module it depends on
– Remove registration of deprecated classes
– SCons: Don’t enable -Wenum-conversion for GCC < 11
– register_editor_types: Fix DISABLE_DEPREACTED typo
– macOS: Fix support for latest VulkanSDK .app name in install script
– Bump the minimum supported SDK version to 24
– Annual versions bump for the Android platform
– basis_universal: Add missing ctype.h include to fix MSVC build
– Linux: Fix build with dbus=no or threads=no
– Convert path separators for Windows
– SCons: Hide SCU folders by adding “.” to foldername
– Android: Store native libraries uncompressed in APK
– Preserve CRLF line terminators for MSVS project template
– Web: Add WebAssembly SIMD support (wasm_simd) and enable it by default
– macOS: Fix template_debug build after #105884
– Skip default font loading if Brotli is disabled
– Fix macOS build with dev_build=yes and target=template_debug
– Linux: Drop ppc32 (32-bit PowerPC) architecture support
– Wayland: Unbreak build with libdecor=no
– D3D12: Silence -Wmaybe-uninitialized warning in D3D12MemAlloc
– Android: Re-add generate_apk alias for compatibility
– Make it possible to run CI manually if DISABLE_GODOT_CI is set
– Update to the AAB directory layout
– Shader Baker: Fix build with deprecated=no
– Fix alphabetical order of codespell ignore list
– Windows: Drop support for Windows 7/8/8.1
– Web: Fix build failure on Windows
– SCons: Identify build clearly when using AES256 encryption key
– Fix Android build files joining paths without join
– Wayland: Simplify including protocols
– Web: Add Web-build specific stdout header
– Web: Fix Emscripten for WebXR and update minimum version
– Update CI ruff pre-commit hooks
– Add module defines to the per-platform generated props file so VS knows which ones are enabled
– Fix compiler error: pass -mpopcnt when using clang / llvm and targeting x86_64
– Android: Fix the build logic to generate the native debug symbols
– SDL: Fix missing header build error on some Linux systems
– Add .zed/ to .gitignore
– Fix remaining physics and navigation disabling issues
– Thirdparty: Fix SDL arm64 compilation on Windows
– Android: Update the maven publishing configuration following the deprecation of the OSSHR service
– Codeowners: Minor improvements after restructure
– SCons: Support header-only modules
– Windows: Fix SSE4.2 detection with LTO build
– CI: Use Xcode 16 for macOS build
– macOS: Use liquid glass icon for the editor
– CI: Use modern –import syntax in GHA
– CI: Add headless import test
– macOS: Regenerate editor icns file to include all resolutions
– Meta: Move /editor/scene folder from core to docks codeowner
– CI: Update dependency setup on Linux actions
– SCons: Temporarily revert Mesa includes to CPPPATH
– SCons: Fix dlltool on Windows MinGW builds
– CI: Fix detection of Windows D3D12 dependencies
– CI: Ensure prettier/clearer sanitizer output
– Fix build on OpenBSD
– Bump version to 4.5-rc
– Fix Wayland build with OpenGL disabled

C#:
– Remove unnecessary spaces
– Resolve the hostfxr path using dotnet CLI
– Add linux-bionic RID export option to support NativeAOT on Android
– Use ObjectID when converting Variant to GodotObject
– Editor: Prevent TOOLS .NET DefineConstants being overriden by the user
– Fix thread deadlock when using a worker thread to load a script with a generic base class
– Update Dotnet iOS Export Process
– Fix RefCounted not disposed correctly in certain case
– Add Min(float) and octahedron encode/decode to Vector3.cs
– Improve Documentation for Typed Godot.Collections Wrappers
– Skip serializing delegates with a disposed target
– Move entries from AnalyzerReleases.Unshipped.md to AnalyzerReleases.Shipped.md
– Skip re-saving .csproj when TFM is unchanged
– Add missing get_data when calling CFStringCreateWithCString in macos_utils
– Fix missing Vector4(i) and Projection in C# bindings generator
– Deprecate compat methods that reference deprecated types
– Fix source generator for primary constructor
– Fix nested GodotObject class in generic class lead to source generator errors in C#
– Add caching for dotnet TFM validation result
– .Net: Avoid unnecessary StringName allocations on not implemented virtual _Get and _Set method call
– Separate Rider and Fleet options as external editors
– Fix Windows Mono build
– .Net: Avoid array allocation when signal have 0 arg
– Use FrozenDictionary for NamedColors
– Add a preload hook to load .NET assemblies from the APK
– Fix string.PathJoin to be consistent with core
– Fix extraction of C# default property values when negative
– Avoid StringName allocation in GodotObject.Free
– Mark referenced packages in SDK as implicitly defined
– Load assemblies directly from PCK on Android
– Don’t create unnecessary arrays in C#
– Expose byte array compress and decompress
– Avoid heap alloc when using StringNames as key in a Dictionary
– Use stackalloc to create the pivot arrays in Projection.Inverse
– Fix ‘Script class can only be set together with base class name’ error with .NET typed collections upon rebuild
– Fix crash on aot unloading
– Fix source generator exceptions appearing when use “@+internal keyword” as type or namespace name in C# script
– Add Basis.ScaledLocal
– Fix Mono build on Windows after String::resize rename
– Fix Quaternion(arc_from: Vector3, arc_to: Vector3) behaves differently in gdscript and c#
– Avoid exporting to duplicate architectures
– Fix return value of StringExtensions.GetExtension()
– Mention MSBuild panel when building fails
– Fix crash in C# bindings generator with bad enum documentation XML
– Fix Quaternion(Vector3, Vector3) constructor when vectors are the same
– Fix C# environment variables access on Linux (SDL-related bug)
– Fix the issue preventing installing C# binaries on Android devices with api <= 29
– Require net9.0 for Android exports

Codestyle:
– Remove ABS in favor of Math::abs
– Remove pointless use of atomics in error macros
– Use initializer list in Arrays
– Core: Add [[nodiscard]] to string-like classes/structs
– Core: Convert Math class to namespace
– Use get_slicec instead of get_slice for single character splitters
– Optimize String::chr to avoid calling strlen. Use String::chr instead of String(&chr, 1) where appropriate
– Add templated version of ObjectDB::get_instance()
– Remove unnecessary friend class declarations of CowData
– Image: Remove references to defunct FORMAT_CUSTOM
– Style: Standardize Obj-C #import syntax
– Use iterator pattern instead of manually traverse List::Element *
– Use std::size instead of sizeof(a) / sizeof(a[0]) pattern throughout the codebase
– Clean up some uses of String::substr
– Improve _is_drop_valid() code in EditorPropertyArray
– Style: Begin integrating simple clangd fixes
– Use idiomatic templating vargs in a few places to reduce code
– Remove empty constructors and destructors from editor/
– Style: Convert namespaces to PascalCase
– De-duplicate String single-char constructor
– Remove TOOLS_ENABLED checks from editor/
– Camera2D code cleanup
– Replace size() == 0 with is_empty()
– Core: Replace C math headers with C++ equivalents
– Remove pointless _3D_DISABLED checks in editor code
– Tree: apply comment style guidelines and remove unused variables
– Make reusable functions for GameController joystick and trigger input
– Replace append_utfx with direct String::utfx
– Core: Integrate warning suppression macro helpers
– Remove unused get_valid_parents_static functions from GDCLASS
– Remove unused get_inheritance_list_static from GDCLASS
– Move GD_IS_CLASS_ENABLED and respective include from class_db.h to object.h, as this is where it’s needed
– Convert PtrToArg macros to regular C++ structs
– Core: Use Math namespace for constants
– Range: Remove useless p_what argument
– Replace duplicate code of is_ancestor_of() in node.cpp
– Remove auto misuse cases
– Use Math::abs to avoid ambiguity with integer abs
– Rename BLOCK_DEVICE() macro to FORCE_ANGLE() in main.cpp
– Use Math::abs to avoid ambiguity with integer abs
– Simplify use of LocalVector force_trivial template parameter
– Style: Declare inline macros as attributes
– Remove GridMap godotsphir remarks
– FileDialog code cleanup
– Fix various sanitizer issues
– Quick StringName improvements
– Inline static variables (part 1)
– Remove inline from constexpr variables
– Core: Modernize C headers with C++ equivalents
– Rename editor “File” MenuOption enums for clarity
– Remove empty constructors and destructors from scene/
– Fix a typo in variable name in ProgressBar class
– Remove unused SceneTree::make_group_changed
– Improve ScriptLanguage get keyword API
– Optimize and simplify sarray
– Style: Remove redundant DEBUG_METHODS_ENABLED macro
– Fix for implicit conversion from char16_t to char32_t in TextServerAdvanced
– Simplify Memory::memnew_arr_placement to always initialize memory
– Un-support force_trivial parameter for LocalVector. Instead, users should use resize_uninitialized
– Remove obsolete VMap forward declaration
– Remove redundant queue_redraw() & fix typo
– Rename String::resize to resize_uninitialized
– Fix mixed use of spaces and tabs for indentation
– Remove implicit conversions from math types to String, to avoid accidental conversions
– Enforce GDScript and C# dictionary spacing style guidelines in code samples
– Core: Remove implicit conversions from Callable and Signal to String, to avoid accidental conversions
– Core: Remove unused StringName::search
– Core: Remove implicit conversions from IPAddress to String, to avoid accidental conversions
– Make conversions from NodePath to String explicit
– Fix spelling in comments
– Android: Misc changes
– Typo cleanup pass

Core:
– Add PackedByteArray conversion to PackedVector2Array, PackedVector3Array, PackedVector4Array and PackedColorArray
– Change Node set_name to use StringName, slightly improves performance
– Typed array equality operator update
– Add negative index to Array.remove_at and Array.insert
– Add Node.get_orphan_node_ids, edit Node.print_orphan_nodes
– Add list initialization to Array, Variant, and TypedArray
– Improve error message for String.format when using nested Arrays
– Expose set_uid()
– Don’t duplicate internal nodes
– Fix RID cannot be string formatted
– Add Logger and ability to print and log script backtraces
– Remove old path remaps system
– Use Vector for MethodInfo::arguments
– Add String::replace_char(s) methods for performance and convenience
– Add String::remove_char(s) methods for performance and convenience
– Avoid unnecessary copy-on-write Vector/Array
– Improve JSON::stringify performance
– Consolidate and simplify string joining code in VariantUtilityFunctions
– Add dedicated BitField template
– Convert Pair/KeyValue to constexpr
– Array: performance improvements to reduce copying/copy_on_write calls
– Add is_same to types that have float components
– Reduce allocations when solving path in AStarGrid2D
– Update ViewportTexture path relative to its local scene instead of the Viewport owner
– Fix StreamPeerGZIP::finish() internal buffer size usage
– StringLikeVariantOrder: Compare in-place
– Integrate CharStringT
– Use Grisu2 algorithm in String::num_scientific to fix serializing
– Fix String::is_valid_hex_number
– Add create_id_for_path() to ResourceUID
– Improve parse_utf8 performance
– Print error message when index is out of range in Variant::iter_get
– Improve ContainerTypeValidate performance for object types
– Fix RandomPCG::random(int, int) overflow bug
– Simplify and fix Projection’s getter functions
– Optimize String copy_from_unchecked to actually not check the string
– Add Span struct (replacing StrRange). Spans represent read-only access to a contiguous array, resembling std::span
– Use LocalVector instead of List as arg of Dictionary::get_key_list
– Optimize / refactor CowData, combining resize and fork to avoid unnecessary reallocations
– Overhaul resource duplication
– Use 1.5x growth factor for LocalVector
– Natively convert enum/BitField with Variant
– Add LocalVector.erase_unordered, mimicking erase but with remove_at_unordered, to remove duplicate logic
– Rename LocalVector.invert() -> LocalVector.reverse() to match the Vector, String and List APIs
– Change StringName.operator const void * to explicit operator bool
– Remove implicit conversions from String, Char16String and CharString to data pointers
– Remove unnecessary allocations and memcpy in codesign.cpp
– Add String::ascii creator functions, to parse a char buffer as ASCII
– Remove unintentional use of zero-width space
– Isolate Ref forward declare logic
– Optimize and expose Basis::scaled_local to script
– VariantParser: Fix reading negated identifiers, replace inf_neg with -inf
– Automate generation of the char_range.inc file
– Move unicode_ranges out of dynamic_font_import_settings.cpp into its own file
– Don’t inline certain functions for smaller binary size
– Add DDS image load and save functionality
– Optimize ProjectSettings::get_setting_with_override / GLOBAL_GET by avoiding repeated dict lookups
– Optimize String::get_data by avoiding a dereference of ptr, and inlining the function
– Sanitize ClassDB locking
– Add ERR_FAIL_COND_MSG for reparenting to self
– Add scene_changed signal to SceneTree
– Fix file handle leak in ZipArchive and FileAccessZip
– Rename “file” param for str.path_join() to “path”
– Add compression level support to Zip Module
– PackedScene: Use ObjectID for DeferredNodePathProperties base
– Use single RNG instance for FileAccessEncrypted IV generation
– Fix crash when calling get_argument_count() on Callable with freed object
– Rename version defines to GODOT_VERSION_* to match GDExtension godot-cpp
– Prevent inlining error printing functions
– Add missing default values to the read_*_from_stdin binds
– Avoid multiple lookups in Dictionary::operator[]
– Fix AHashMap constructors reserving too few elements
– Optimize Object::cast_to by assuming no virtual and multiple inheritance, gaining 7x throughput over dynamic_cast
– Optimize Array.resize by using memset (through new is_zero_constructible type trait)
– Fix translation remaps incorrectly falling back
– Revert “Add built-in GUI to display license notices”
– VideoStreamPlayer: Redraw when stream resolution changes
– Add C array constructor to Span
– Add iteration to Span
– Move CowData find, rfind and count to Span
– Add Span conversion to LocalVector
– Remove outdated vformat comments/workarounds in time.cpp
– Improve error messages for add_property_info()
– Directly use segment points in Geometry2D/3D function parameters
– Remove unneeded read_only check for Array const operator
– Add const iteration support to Dictionary
– Add FixedVector template – a collection that can be used completely on the stack
– Fix Invalid Task ID errors in ResourceLoader
– Do not iterate Dictionary with get_key_at_index
– Fix missing binding for NOTIFICATION_WM_POSITION_CHANGED
– Use resize_zeroed instead of resize then fill(0) in several places
– Add missing Projection constructor with 16 real_t values
– Bind SceneState methods get_path and get_base_scene_state
– Add Memory::alloc_static_zeroed to allocate memory that’s filled with zeroes
– Remove String clipping constructors
– Fix Marshalls.utf8_to_base64 shows “ret.is_empty()” is true error for empty string
– Recycle zstd decompression context if possible, avoiding repeated allocations
– Add missing String + char * function, to avoid unnecessary right side allocation to String
– Expand is_zero_constructible coverage
– Optimize FileAccessCompressed::get_buffer by using memcpy
– Fix hash issue with OptimizedTranslation caused by signed char
– Fix tangent baking for curves when cubic derivatives are 0
– Optimize thread pools by avoiding needless locks and unlocks of the task_mutex
– Simplify and optimize Math::absf implementation to use ::fabs and ::fabsf
– Harmonize String, Vector and LocalVector find and rfind
– Don’t free already freed scenes when changing SceneTree current scene
– Optimize ClassDB::get_direct_inheriters_from_class
– Optimize Array methods with SWAP/std::move
– Optimize Object::notification by avoiding runtime branches
– Optimize Color::to_html by allocating less
– Do not iterate Dictionary with Dictionary::keys()
– Add resize_initialized and resize_uninitialized to Vector and LocalVector
– Use append_ instead of parse_ for String methods
– Include intrin.h for MSVC
– Expose TriangleMesh api functions wrapped for scripting
– Add move semantics to Ref
– Add missing initializer_list constructor to TypedDictionary
– Remove redundant ClassDB::locker declaration
– Optimize LocalVector::push_back for non-trivial objects
– Use LocalVector in RID_Owner::get_owned_list
– Image: Improve is_invisible function
– Image: Fix typo at _set_color_at_ofs with FORMAT_RGB565
– Fix reversed hex order in Color::to_html
– Add missing “/” to “center” tag in __print_line_rich()
– Rename _strlen_clipped to strnlen (and use the system equivalent for char * inputs)
– Add and require GDSOFTCLASS for Object subclasses that want to cast but do not use GDCLASS
– Fix time display in MovieWriter window title and console output
– Optimize Color HTML validation
– Optimize Color.html()
– CryptoCore: Use size_t for buffer sizes to fix encoding/sums of 2.0+ GiB files
– PortableCompressedTexture: Fix create compressed format from image
– Always use String as StringName backing internally
– VariantWriter::write: Fix writing negative infinity when p_compat is true
– Optimize ClassDB::get_inheriters_from_class
– Decouple GDCLASS from ClassDB
– Fix caching of objects’ class name pointer in Object instances
– Add uri_file_decode to handle + in file names
– Fix FileAccessCompressed claiming one byte more than it actually has
– Add bswap methods to the PackedByteArray bindings
– Add a safety check for CowData::_unref(), for when something tries to add elements during destruction
– Change get_class_static to return StringName
– Remove misleading and incorrect notes about endianness. Fix FileAccess and StreamPeer not doing what name suggests
– Fix Thread crash when using invalid callback signature. And invalid message formatting
– Use non-recursive mutex for StringName, improving performance
– Use validated key in Dictionary::has
– Add GDSOFTCLASS to FileAccess and DirAccess derived classes
– Fix BBCode print with nested [
– Smoke test: Log an error if reserve() is called with fewer elements than size()
– Fix custom scene argument if it’s referenced as UID
– Add –scene command line argument
– Supress unused paramater warning conflicting with if constexpr
– Allow inserting at end of array again
– Optimize Array min/max methods
– Add thread safety to Object signals
– Increase chunk limit for known problematic RID_Owners
– Fix cases where _get returned true erroneously
– Remove 2^31 cap on RID allocations
– Ensure VARIANT instances are actually VT_BSTR before treating them as such in OS_Windows::get_video_adapter_driver_info()
– Reuse and optimize sorting logic for List, SelfList, and HashMap
– Improve ConfigFile get_sections and get_section_keys by returning Vector
– Improve Window’s _validate_property()
– Print script backtrace in the crash handler
– Remove unnecessary StringName idx cache in _Data to reduce its size
– Use PagedAllocator for StringName to accelerate and localize allocations
– Optimize static allocations by removing unused Memory::alloc_count
– Add GLOBAL_GET cached macros
– Use __fastfail() in MSVC error macros
– Avoid extra copy/validation of keys in Dictionary::has_all
– Deprecate PackedDataContainer
– Only update case sensitive fuzzy searching within set_query
– Optimize HashMap insertion by removing duplicate computation of hash and position
– Reduce allocations/copies in String::format
– Add Dictionary Type Hint to SVGTexture
– Fix empty lines being added for errors with no script backtrace
– Fix for debugging typed dictionaries
– Support 64-bit sizes in Compression
– Faster Node::get_child_count()
– Fix wrong children range when duplicating node
– Remove translation loading logic that was never used
– Improve Timer::start error message
– Avoid single character String allocations when appending characters
– Refactor TextEdit::search to be more robust to failure
– Optimize HashMap size for zero-sized Allocators
– Move bisect functionality to Span and deduplicate code
– Accelerate HashMap and HashSet lookup by using if based modulo in loops
– Add 64-bit versions of core power of 2 functions
– Prevent comparison of items with themselves while partitioning sort arrays
– Use LocalVector for RingBuffer
– Expose helper methods for converting UIDs
– Improve error messages in ResourceLoader
– Simplify implementation of errarray
– Update time.cpp year/unix time conversions to be constant time
– Move compatible functionality from GDCLASS to GDSOFTCLASS
– Theora: Fix UV channel offset when cropping region
– Remove redundant data.inside_tree
– JavaClassWrapper: Don’t discard overloaded methods that differ by object type
– Add missing headers in FixedVector and Span
– Remove OAHashMap, in favour of AHashMap
– Expose WorkerThreadPool.get_caller_task_id()
– Add WorkerThreadPool.get_caller_group_id
– Fix ResourceSaver saving default value of Resource
– Fix various race conditions with capturing of script backtraces
– Fix async resource loading progress on empty p_original_path
– Revert some instances of Math::INF back to 1e20
– Add Ogg Theora support to MovieWriter
– Fix resources wrongly duplicated upon instantiating inherited scenes
– Bitpack node auto translation values
– Add missing Color hash function
– Expose Node.can_auto_translate()
– Fix script property of custom resources inherited from scripts are not saved
– Add a proper error message when trying to add node to a group with an empty name
– Stop FileAccess::fix_path from emitting errors for invalid UIDs
– Add a smoke test for non-empty nullptr Span
– Improve error messages for method calls expecting only 1 argument
– PCKPacker: Fix first file being written mis-aligned
– Fix data race in remote debugger; handle errors
– Fix invalid resize after appending
– Enhance bindings of deep resource duplication
– Use reserve in LocalVector::resize, to restore expected growth behavior
– Always decode –scene argument UID path
– Image: Fix is_invisible detection for RGBAH and RGBAF
– Fix typed collections using same reference across scene instances
– Never duplicate Scripts when duplicating resources recursively
– Fix issue with array comparison reference
– Remove an unnecessary include of main/ code from core/
– Fix releasing the old unique name when renaming a Node
– Ensure that threads only process one pump task
– Fix internal JSON stringify not preserving p_full_precision
– Prevent infinite recursion during printing
– macOS: Make document type icons look closer to current macOS system type icons
– Fix external resource IDs being lost for default properties
– Allow processing low priority threads on calling thread in the WTP
– Fix printraw causing infinite recursion in Logger._log_message
– Fix FindClass() failing to find Dictionary on Android leading to crash
– Harden jni_find_class() and its setup/cleanup
– Automatically unregister loggers when script language is deinitialized
– Fix symlink copy in DirAccess::copy_dir
– Fix local_to_scene duplication of typed dictionary
– Fix screen_orientation not being assigned on ios
– Fix drive selection issue on Android
– Don’t use alloca() in Object::emit_signalp() to prevent stack overflow
– Fix regression in mechanism to hold objects while emitting
– Fix typo in ScriptLanguageExtension::lookup_code
– Rename SVGTexture to DPITexture
– Fix safe area regression on older Android versions
– Revert “Prevent crashing if max_threads is zero.”
– Make SceneTree not crash when receiving a notification without a root being set
– Fix Resource duplicate calls ImageTexture::set_image with an invalid image

Documentation:
– Overhaul Node3D documentation
– Replace XML codeblock spaces with tabs
– Overhaul CanvasItem documentation (no draw methods)
– Move and simplify Object’s connect description slightly
– Add tip to use more specific return type for _iter_get()
– Improve documentation on “physics spiral of death” in ProjectSettings
– Mention DUPLICATE_SIGNALS only affects CONNECT_PERSIST signals
– Clarify ambiguous String comparison methods documentation
– Add explanation for the PROPERTY_HINT_DICTIONARY_TYPE data format
– Update capsule documentations for size constraint clarifications
– Specify max_slides must be greater than 0
– Add a note about Object._init and required parameters in relation to @rpc
– Fix LogMultiplayer example in documentation
– Update OptionButton documentation
– Improve documentation of some Resource methods
– Add basic descriptions to the BreadcrumbMarker enum
– Add info about set_deferred for CollisionShape3D disabled property
– Use float instead of integers for durations in Tween documentation
– Replace references from TileMap to TileMapLayer in documentation
– Clarify forward direction for VehicleBody3D
– Better explain texture repeat
– Fix CanvasLayer ‘Follow Viewport’ documentation to match its behavior
– Document that memdelete() is the GDExtension C++ version of free()
– Clarify requirement for action match in InputEvent.is_action_pressed
– Fix InputEventMouseMotion reference
– Fix CharacterBody’s wall_min_slide_angle doc
– Document Glow Upscale Mode project setting only affecting Forward+/Mobile
– Improve BaseMaterial3D/Label3D/SpriteBase3D’s fixed_size documentation
– Docs: Fix WorkerThreadPool wrong max thread value description
– Link Script method documentation to details about returned dictionaries
– AudioEffectCompressor: Recommend HardLimiter over deprecated Limiter
– Update logo/run icon path in platform READMEs
– Fix BBCode tag for NativeMenu class reference
– Fix incomplete description for ResourceLoader.list_directory()
– Clarify XRController3D get_input name corresponds to actions in the action set
– Improve documentation for return value of Packed*Array.resize
– Document RichTextLabel fgcolor and bgcolor padding behavior (and risk of overlap)
– Fix even more miscellaneous oddities around the class reference
– Fix typos in ProjectSettings class reference
– Add instruction to wrap nested classes in JavaClassWrapper
– Add Game workspace to documentation and autocomplete
– Fix hex_decode() example in String and StringName
– Minor doc update for low_processor_mode_sleep_usec editor settings
– Add color space alpha notes to Color documentation
– Physics Interpolation – Fix project setting tooltip
– Clarify that AcceptDialog’s custom_action is only triggered if action is non-empty
– Add clarifications to PhysicsDirectSpaceState docs on how to get their instance
– Document CSGShape3D updates being deferred until the next frame
– Deprecate NavigationServer map_force_update()
– Clarify that Window.dpi_changed signal is supported on Linux (Wayland)
– Cleanup and unify DisplayServer screen methods and documentation
– Docs: Add note about console wrapper to get_stdin_type
– Improve Camera2D.zoom description to be less ambiguous
– Change “GDExtension example in C++” links to accommodate the new docs file structure
– Fix differences between RayCast2D and RayCast3D documentation
– Fix differences between PhysicsDirectSpaceState2D/3D docs
– Fix incorrect data format in RenderingDevice docs
– Fix typo in common note for packed arrays
– Fix typo in Window’s exclude_from_capture
– Fix miscellaneous oddities around the class reference (part 4)
– Add missing word to canvas layer docs
– Fix some differences between OpenXRInterface and XRHandTracker docs
– Fix CodeEdit typos
– Fix misleading Material::render_priority description
– Fix typos in Image documentation
– Fix typos in UDPServer::poll documentation
– Improve documentation on is_nan() and NAN constant
– Improve get_cursor_shape() documentation
– Fix typo in the description of RandomNumberGenerator.state
– Normalize description of ResourceLoader.list_directory()
– Document Vector2.from_angle() not always returning a normalized vector
– Update ProgressBar description
– Document SceneTree.set_multiplayer() should be called in _enter_tree()
– Fix invalid AnimationNode documentation syntax
– Fix grammatical error in MeshInstance3D documentation
– Fix typo in sqrt classref
– Clarify the conditions that need to be met for a valid file name in Godot
– Fix a typo in the Light3D documentation
– Clarify the input action that affects AcceptDialog.dialog_close_on_escape
– Docs: Remove redundant info on the enum types used
– Add missing description of FileAccess.store_half behavior on error
– Fix description of EditorProperty’s draw_background and draw_label
– Document the FileAccess read/write cursor
– Fix type error in InputEventAction.action description
– Doc: Add search keywords for Vector2/3.limit_length method
– Improve SpinBox class documentation
– Improve documentation for Array.get() and Packed*Array.get() methods
– Document output parameters of EditorImportPlugin.import
– Fix typo in Node.get_child documentation
– Improve description of Control.scale
– Clarify String.is_subsequence_of() working differently from String.contains()
– Add description for Skeleton3D.bone_list_changed
– Document EditorProperty behavior when the node isn’t fully ready yet
– Clarify SceneTree.get_frame() description
– Improve the PhysicsShapeQueryParameters3D’s description
– Update CameraFeed document for Android
– Fix extra parenthesis in Array.slice description
– Recommend Jolt Physics in SoftBody3D class reference
– Clarify set_initial_value()
– Clarify offset.y behavior for Sprite2D vs Sprite3D
– Fix incorrect note about holes in HeightMapShape3D
– Link demo project in AStar2D and AStarGrid2D documentation
– Fix copy-paste error in Viewport classref
– Clarify existence of custom project settings
– Update CameraServer document for Android
– Fix miscellaneous oddities around the class reference (part 5)
– Clarify parameters in @GlobalScope.wrap() being inclusive/exclusive
– Clarify the data param in the docs for RD.texture_create
– Clarify behavior of Node.physics_interpolation_mode in the class reference
– Clarify behavior of Timer.stop()
– Update Shortcut class reference
– Document the direction that directional and spot lights emit light in
– Improve description of fuzzy matching in editor settings documentation
– Add clarification to AudioStream.get_length
– Fix outdated MODE_FULLSCREEN description
– Fix various errors in the class reference
– Docs: Add few notes about screen capture
– Add warning about infinite recursion to NavigationAgent docs
– Add a note about navigation mesh baking issues when using 0 for the agent_radius
– Improve ResourceLoader.get_dependencies()’s description
– Add a note about _notification() being multilevel
– Clarify note in documentation about childing rigid bodies
– Remove angle constraint mention from SkeletonModification2DFABRIK class docs
– Docs: Fix typo and spacing in vector coordinates
– Reword text_editor/completion/add_type_hints’s description
– Misc: Fix typo in cmd arg description
– C#: Fix Shortcut example
– Clarify _set/_get description
– Docs: Various grammar and spelling fixes
– Specifiy return value in several store methods in FileAccess
– Fix OptionButton ID value range documentation
– Document Gradient.sample() clamping behavior
– Clarify visible_characters
– Document that native file dialog is only available on Android 10+ devices
– Add example of using get_connection_list_from_node
– Fix signature in docs of EditorImportPlugin.GetOptionVisibility
– Clarify initialization of scene tiles
– Fix image download example code
– Class docs: Fix ReflectionProbe note regarding Compatibility renderer support
– Clarify that Network Mode is not mandatory for plugins
– Update auto_unfold_foreign_scenes description
– Document AnimationMixer.animation_started not being emitted for looping animations
– Document Translation plurals requiring the use of the gettext PO format
– Clarify type inference in ProjectSettings Inferred Declaration warning
– Fix spinbox formatting to fix linking
– Update documentation for DriverResource enum
– Add the C# code equivalent to the documentation of Viewport.GetTexture()
– Remove outdated note from EditorScript description
– Add search keywords for CheckButton and ButtonGroup
– Update HDR 2D documentation to include Compatibility support
– JavaClassWrapper: Add example to invoke constructor
– Improve documentation related to GridMap mesh/lightmap baking
– Clarify the behavior of RigidBody.CENTER_OF_MASS_MODE_AUTO
– Fix inaccurate description of get_current_rendering_driver_name
– Document Tree.item_collapsed also being emitted when the item is expanded
– Update _physics_process and _process docs to reflect implementation
– Document OS.get_video_adapter_driver_info() being slow to call the first time
– Add “dropdown” keyword to OptionButton and MenuButton
– Docs: PhysicsShapeQueryParameters3D fix function used in code example
– Clarify the types InputEvent.is_action_type() will return true for
– Docs: Mention ‘build version’ in iOS, macOS, and visionOS export docs
– Document ClassDB not storing information on user-defined classes
– Fix incorrect statement on thread (un)safety in AStar class reference
– Fix typo in doc of text_editor/theme/highlighting/gdscript/string_name_color
– Docs: Mark SVGTexture as experimental
– Clarify that EXCLUDE_FROM_CAPTURE only works with native windows
– Document REGION_RECT canvas shader built-in in Sprite2D region property
– Update ProjectSettings HDR 2D documentation to include Compatibility

Editor:
– Add a flag to make the connection automatically emit the source object
– Allow to override editor settings per project
– Allow to ignore debugger error breaks
– CodeEditor: Make possible to select and copy error text
– Add syntax highlighting for ConfigFile/TSCN/TRES/project.godot
– Make “access as/revoke unique name” a checkbox
– Don’t save unnecessarily with save_before_running
– Add credits roll
– Add Open Dock shortcuts
– Add include/exclude to FindInFiles for filtering files
– Fix help overview tooltip flicker
– Fix documentation for built-in scripts
– Revert Solarized Dark theme to Godot 3
– Fix ProjectSettings name casing options and missing String methods
– Prompt user to terminate if quitting while project is running
– Allow empty click in scene tree dock
– ScriptEditor: Remove obsolete completion cache
– Fix dropping Node into script on non-empty line
– Fix copying a Node with a signal potentially resulting in an editor crash
– Autocompletion: Don’t add parenthesis if Callable is expected
– Add option to copy a file’s name in the FileSystem dock (reverted)
– Add PROPERTY_HINT_INPUT_NAME for use with @export_custom to allow using input actions
– Fix spaces converted to tabs in triple quote strings
– Enable Auto Reload Scripts on External Change by default in the editor settings
– Update Inspector when renaming a file via File System Dock
– SceneImportSettings update_timer should be a oneshot
– Rename internal view_menu in 3D editor code
– Translate main thread name in the editor instead of running project
– Automatically set text_editor/external/exec_flags based on the editor specified in exec_path text box
– Add “Close Tabs Below” option to script editor context menu
– Drop preload Resources as UID
– Add named EditorScripts to the command palette
– Add double to the version full build string when using a double-precision build
– Allow to select multiple remote nodes at runtime
– Add a TouchActionsPanel to Android Editor
– Remember state of built-in script/shader checkbox
– Always update .tscn name when “Save Scene As…” is pressed
– Add borders to BitMap in BitMapEditor
– EditorNode: Add function to load file as either scene or resource
– Don’t initialize editor when exiting
– Mark main screen plugin names for translation
– Fix Error when connecting signal with unbinds not yet existing function
– Do not require editor restart when changing selection box color
– Eliminate interior mutability in get_selected_node_list
– Improve drag and drop into array property editors
– Use FlowContainer for EditorNetworkProfiler bar
– Fix error when toggling comment with empty lines
– Prevent changed signal spam on resource reload
– Fix empty type removal in theme editor causing all empty types to be deleted
– Don’t synchronize scripts with errors
– Add editor setting to override tablet driver
– Prompt to Save As when saving all scenes
– Replace UID and Surface upgrade tools with universal one
– Fix EditorObjectSelector popup size
– Avoid some excessive edits of resources
– Minor adjusts in the Show in Filesystem code in SpriteFrames editor
– Fix vbox separation in sections with PROPERTY_USAGE_ARRAY
– Make EditorProperty and its child EditorProperty behave like sibling nodes when handling mouse events
– Keep ProjectSettings overrides right below the original setting
– Don’t hard-code setting list in DependencyEditor
– Improve path validation in ScriptCreateDialog
– Add Save & Reload option to Reload Saved Scene
– Fix TextEdit scrolls wrong on text selection
– Set editor’s translation domain at root node
– Restore “Show in File Manager” button functionality in ProjectManager
– Reorder properties in NoiseTexture2D/3D
– Redraw inspector section when cursor enters and exits header to update hover state
– EditorHelpBit: Fix symbol type name capitalization for text files
– Fix forcing ViewportTexture after selecting a viewport in the “Pick a Viewport” popup
– Update script modified times when saved in EditorNode
– Don’t edit objects when loading folding
– Re-grab FileSystem focus after rescan
– Inspect SceneTree node when dragged over
– Remove unused Reload button
– Update MultiNodeEdit property list on edited nodes’ property list changed
– Fix ownership when pasting non root with child nodes in new scene
– Validate custom directory when project is started
– Fix recovery mode lock file not being cleared on import/export
– FindReplaceBar: Fix “Replace (All)” buttons repositioning, improve “Hide” button visual feedback
– Save queued ProjectSettings changes immediately when settings dialog is closed
– Make project manager’s “last edited” field display use local time instead of UTC
– Add Embed Game Window shortcut hotkeys support for suspend/pause and next frame buttons
– Fix stuck editor cameras and fix 3D error spam for non-finite transforms
– Allow opening a project in verbose mode from the Project Manager
– Improve Sphere gizmo performance
– Debugger: Allow locating VRAM resource by double-clicking
– Fix global classes can’t be used in the Evaluator
– Add “Paste as Unique” option to the editor resource picker dropdown
– Improve editor 2D/3D main screen auto-switching logic
– Improve Audio Stream Player Gizmo Performance
– Defend against directories without trailing slashes
– Don’t show Extend Script option for built-in scripts
– Fix debugger’s memory leak when project closes itself
– Improve default/no query quick open dialog behavior
– Fix Game view visual streaking when selecting nodes with Physics Interpolation enabled
– Focus Don’t Save in Reload Saved Scene and don’t save unmodified scenes
– Don’t allow empty string when splitting allowed types and allowed subtypes in _is_drop_valid() in EditorPropertyArray
– Fix error panel auto-hiding
– Fix wrong height for top editors in the inspector
– Fix Run Instances window being too big in single-window mode for window at minimum size
– Fix ThemeEditor being too wide for small screen or minimized window
– Fix Node dock broken right after opening project
– Create .uid files for detected new files
– Prompt to restart when project data (.godot) is missing
– Set window position when running project in maximized or full-screen mode to ensure it is opened on the correct screen
– Fix editor crash when inspecting 2 objects handled by the same plugin
– Fix editor crash on overrides for non-existent input mappings
– Call plugin edit before making visible
– Change root node transform warning to only show up for position
– Fix blank popup menu on EditorResourcePicker
– Fix vbox separation for inspector subgroups
– Scene Tree prevent inspecting node while scrolling
– Fix use after free in the editor inspector section cleanup
– Fix icons with non-ASCII file names in project manager
– Simplify ScriptEditorDebugger::_parse_message; separate into handler functions
– Revert “Add option to copy a file’s name in the FileSystem dock”
– Fix embedded help menu icons
– ColorChannelSelector: add tooltip, fix toggle_button repositioning and channels autotranslation
– Hide 3D mode in Game view if the feature is disabled
– EditorResourcePicker: Add Quick Load button
– Fix crash when removing breakpoints from DAP, and multiple fixes
– Fix regressions regarding multiple remote object selection
– Change .build extension for engine build profiles to .gdbuild
– Remove New prefix from EditorResourcePicker
– Project manager: Add option to backup project when it will be changed
– Fix _delete_internal_files() receiving wrong path
– Add several new physics-related icons
– Fix create root node dialog to follow preferred node name casing
– Use the correct root inspector when making elements moved in an array visible
– Handle null values for object types, as seen in typed dictionaries
– Fix EditorNode3DGizmo::add_solid_box() GPU stalling
– Fix setting root inspector’s follow_focus to true when update_tree() method ends
– Fix Cannot get class error when searching TextFile/OtherFile in FileSystem dock
– Fix remote object inspector through DAP
– Fix input config dialog overflow on Android Editor
– Remember last POT generator path
– Refactor SceneDebugger::parse_message into handler functions
– Fix Edit option for sub-resources
– Fix BitMapEditor crash when bitmap is empty
– Display PortableCompressedTexture’s format in inspector preview
– Cleanup QuickOpenDialog history and fix UID errors
– Android Editor: Add an editor setting to enable/disable TouchActionsPanel
– Fix error spam when inspecting remote nodes outside the tree
– Add UID to file tooltip
– Validate custom directory when running from editor
– Reset ProjectSettings scroll when changing category
– Android Editor: Add new actions and enhancements to TouchActionsPanel
– Fix exported Node/Resource variables resetting when extending script in the SceneTreeDock
– Use separate EditorFileDialog for “Pack Project as ZIP”
– Move THREADS_ENABLED check after common imports
– Add Engine Version Update Mode button to Project Manager Quick Settings
– Remove focus draw for editor inspector elements
– Remove “dummy” renderer from the editor dropdown
– Search custom types when filtering on type in the SceneTree dock
– Fix visual shader editor popups not using editor scale
– Add fuzzy filtering to the script filtering
– Add fuzzy search to method filtering
– Add enable checkboxes to editor sections
– Fix issue with playing a custom scene from a UID
– Update donation link to fund.godotengine.org
– Rename editor setting Engine Version Update Mode to Check for Updates
– Support custom features in project settings dialog
– TextureEditorPlugin: Add borders to 3D and Layered editors
– Add separate editor accessibility mode setting
– Add inspector support for typed property hint formats
– FileSystemList: Fix edit popup not accounting scroll position
– Fix Sublime text external editor Exec Flags setting
– Fix division by zero when scaling
– Add EditorInterface::close_scene()
– Embed TouchActionsPanel directly into the Android editor UI
– Make the position and the size of FileSystem controls more precise
– Fix EditorInspector tooltip disappearing in special cases
– Allow Inspector Section Checkboxes to hide features, Add “On” text to checkboxes
– Hide one-click deploy button on Android and XR editor
– Change editor button focus mode to FOCUS_ACCESSIBILITY
– Make documentation ignore undocumented private signals
– Add inline color pickers to script editor
– Walk up inheritance hierarchy when finding which script’s docs to open
– Fix Signals dock only un-doubling parent class’s first signal
– Remove deprecated engine_version_update_mode editor setting
– Fix group name completion for get_node_count_in_group
– Fix empty Script Editor members overview visible
– Fix class reference discrepancy when using –doctool with TextServerFallback
– Add original index field to fuzzy search result
– Make script_class_get_icon_path() return any value when r_valid is passed
– Add editor setting to collapse main menu into a MenuButton
– Unify shortcut handling in FileSystem dock
– Fix Set focus on right control on user action “show in file system”
– Set current directory when using “Save Branch as Scene…”
– Improve zoom performance in Script and Shader editors
– Allow undoredo actions to not make history unsaved
– macOS: Additional improvements and fixes for embedded window support
– Remove redundant line_spacing editor setting
– Fix editor crash when middle mouse button is clicked on empty space in scene tabs
– macOS: Embedded window fixes
– Remove Don’t save button from “running project” confirmation modal
– Script Editor: Fix Ctrl-Drag unique-name Editable Children
– Fix some extensions missing in resource load dialog
– Force weights on custom editor fonts when variable
– Add dropdown to Movie Maker button in editor run bar to access settings
– Fix EditorNode::drag_resource crash
– Do not grab focus on filename LineEdit in EditorFileDialog when outside the tree
– Make errors override warnings in script line coloring
– Optimize unsaved history checking
– AudioStreamImport: Make play and stop buttons accessible through keyboard
– Allow running EditorScripts from the FileSystemDock
– Draw checkerboard (or clear color) under embedded window
– Fix EditorHelp’s FindBar search index
– Fix highlighting warning and error issues
– Fix redundant signal connection in TextureRegionEditor
– Fix potential crash when checking unsaved history
– Android: Don’t request CAMERA permission on editor startup
– Fix GridMap scenario crash when outside tree
– Make FindInFiles globally accessible
– Reintroduce the dragging method of Sprite2D’s region_rect
– Fix error when closing all scene tabs on the last tab
– Fix MSVC warning for potential mod by 0 (C4724)
– Fix MovieWriter window title in embedded mode
– Fix print/error ordering issue in editor Output
– Ignore rename shortcut when Remote tab is active
– Fix Ignore External Changes Bug
– Allow toggling UID display in path properties
– Assign base path when creating Resource
– Add highlight around docks when dragging
– Duplicate Folder: Fix to remap references between duplicated files
– Android Editor: Disable nomedia file creation for Android 11 (api level 30)
– Fix missing popup item defined in EditorContextMenuPlugin with slot CONTEXT_SLOT_FILESYSTEM_CREATE
– Fix EditorContextMenuPlugin CONTEXT_SLOT_FILESYSTEM_CREATE does not receive path information for some menus
– Reorganize scroll and zoom elements in the audio import dialog
– Decrease font placeholder opacity in the editor theme
– Align autoload popup columns to the left
– Add class icon cache to EditorNode
– Cleanup header includes for AddMetadataDialog
– Improve Variant type menus in the editor
– Remove parentheses around “All” option in the feature tag menu
– Improve EditorInspectorCategory
– Fix get_class_icon() ignoring fallback
– Texture format error on export: Show project setting
– Add file search QoL when focused on folder text box
– Add support for taking embedded window screenshots
– Explicit SceneDebugger parse_message handlers
– Fix scene reload causing segfaults when non-existent node is currently selected
– Fix Debugger Dock bottom margin
– Describe “Fuzzy Search” in Quick Open tooltip
– Add OS::open_with_program for opening files/directories with a specific program on macOS
– Doc: Add “required” qualifier to methods
– Fix crash when inspecting Variant export variable
– Fix multi-instance behavior with embedded game view
– Improve Input Map and Shortcuts editor
– Fix capitalization for visionOS and tvOS
– Add memory amount to output from the Copy System Info editor action
– Fix hint.radians_as_degrees on Vector2 and Vector4 editor properties
– Fix Game runtime debugging in the Android Editor
– Fix not being able to open directory in certain terminals
– Filesystem dock: Fix thumbnail size not updating instantly after changing editor setting
– ProjectSettings: Fix missing property hint of setting overrides
– Unhide one-click deploy button on Android and XR editor
– Fix the editor shortcuts for the game menu on Android
– Fix crash when save_on_focus_loss is enabled
– Fix CSV translation not updating after reimport
– Fix FileSystemDock signal connection for path navigation text box
– Fix some inspector action buttons not updating icon when theme changes
– Fix favorite folder colors
– Fix debugger inspector minimum size
– Fix problems with scripts and metadata in remote objects
– Avoid manipulating PackedScene cache when generating scene preview thumbnails
– Fix editing ShaderInclude causes a Shader to be edited
– Fix game view window not updating title when translation changes
– Fix root node auto translation settings affecting editor root
– Make PROPERTY_HINT_GROUP_ENABLE hide properties by default
– Add “See Migration Guide” button to the Project Manager
– Add null check on generating thumbnails for PackedScene
– Free nodes from instantiating if it is not a Control in the theme editor
– Fix crash in ConnectionsDialog
– Do not remove SubViewport nodes in thumbnail preview scene
– Clear current path when deselecting files
– Don’t update script documentation when exporting
– Check UID to disable “Set as Main Scene” in FileSystemDock
– Fix doctool crash and errors on macOS
– Fix Evaluator’s format issues caused by special characters in the expression
– Swap UID and path buttons
– Revert “Rework scene preview thumbnails”
– Use one-based line numbers for external text editors
– Fix aspect ratio of small thumbnails
– Fix can’t convert to ShaderMaterial in FileSystemDock
– Fix Resource doesn’t update when overwritten in editor
– Expose ScriptEditor.clear_docs_from_script
– Fix ScriptEditor inline colors float handling
– Fix updating project settings after move
– Fix resizing error when generating thumbnails
– Generate scene ID for created built-in Resources
– Don’t rename nodes when tree is invisible
– Fix subinspector for parameter preview in visual shader editor
– Properly show detach script button when script is added via inspector
– Fix PROPERTY_HINT_GROUP_ENABLE display on hover
– Fix remote deselection not working when selection limit is reached
– Fix filtered out nodes not getting deselected
– Fix and improve auto-translation for FindInFiles
– Fix can’t remove inspector plugins after reaching max count
– Fix error when “Toggle Files Panel” in shader editor
– Fix main editor title after changing language
– Improve error when update_doc() fails
– Scroll scene tree dock when moving item(s) with keys
– Fix ScriptEditor inline color wrong line number
– Fix some Text Editor theme issues and clean up
– Fix MissingNode {get,set}_original_scene bindings
– Fix unwanted resource duplication in the theme editor
– Android Editor: Reduce default gizmo scale multiplier
– Fix crash when specifying –debug-server
– Fix new autoload scripts using file name instead of user defined name
– Fix error when dragging non-resource file
– Prompt to save modified scene missing when quitting editor with running project
– Cancel save dialog on editor exit
– Fix debugger immediate disconnect
– SpriteFramesEditor: Decompress texture before auto slicing sprite sheet
– Fix the absolute NodePath was calculated incorrectly when “Reparent to New Node”
– Fix hidden scrollbar in editor settings
– FIX: Prevent crashing if max_threads is zero. (reverted)
– Fix FindInFilesPanel sizing issues
– Save the changes before duplicating resource files
– Fix crash in SceneTreeDock when closing a scene with a selected node
– Fix ProgressDialog errors during first scan
– Use EditorUndoRedoManager to track the property changes of the configured InputEvent in the plugin
– Prevent invalid and ambiguous tag names
– Fix snapping logic in Range
– Clear SceneTreeDock’s previous node selection when removing edited scene
– Use point_grab_radius setting in Polygon2DEditor bottom panel editor
– Fix inconsistent thumbnail width
– Fix inheriting from abstract classes dialog
– Keep collapsed state for actions when modifying Input Map
– Add new line when dropping onready on empty line
– Fix remote tree max selection warning not showing properly
– Don’t open folders as file in script editor
– SceneCreateDialog: Hide 3D Scene option when 3D editor is disabled
– Strip empty deps when loading filesystem cache
– Add hover styles to buttons in Script/Shader editor
– macOS: Remove FEATURE_MOUSE from embedded display server
– Fix/remove error about “Can’t update documentation” when saving script
– Fix editor resource tooltip crash on broken symlinks
– Track last selection using ObjectID
– Don’t start editor as unsaved
– Remove nearly-unused “default” range hint min/max
– Rescale values to better utilize R128 range before snapping
– Allow extending previously-non-abstract scripts that became abstract
– Add single-object inspect command backwards compatible API for potential regression
– Add missing range hint to Viewport.oversampling_override in the editor
– Fix Range scale overflow
– Fix “SpriteFrames” editor not fully hidding the bottom panel

Export:
– Use project settings overrides with the target preset features instead of current platform features
– Modify Windows template without rcedit
– Update Windows icon cache after export
– Convert uid:// names to res:// when exporting files
– Fix apksigner execution failure on linux
– Add shader baker to project exporter
– Hide debug keystore export settings
– Fix Inspector checkable button sizing
– When code signing, specify which keystore is not found
– Updates and fixes to the Android prebuilt export logic
– Add “Go Online” button on Export Template Manager
– [iOS export] Restore one-click deploy device enumeration using Xcode
– Use text_overrun for project export errors
– Android: Convert compress_native_libraries to a basic export option
– Change unportable echo in the Linux/macOS debug launcher script
– Web: Use actual PThread pool size for get_default_thread_pool_size()
– PCK: Move directory to the end of file, write exported/saved PCK in place
– Improve editor progress reporting on the command line
– Compile out editor-only logic within _validate_property in export template
– Android: Implement sparse bundle PCK support
– Android: Add support for 16 KB page sizes, update to NDK r28b
– Remove the gradle_build/compress_native_libraries export option (reverted)
– Add support for exporting to Google Play Instant via Google Play Instant Export Option (reverted)
– Android: Misc build fixes
– Android: Add export option for custom theme attributes
– Fix ios plugin always invalid due to null ConfigFile
– Show shader baker related export warnings only if enabled
– Revert “Add support for exporting to Google Play Instant”
– Apple: Improve Apple embedded export and debugging
– Fix export fail on Android if shader_baker is enabled
– Revert the removal of the gradle_build/compress_native_libraries export option
– Move Web export threads options out of variant mk2
– [Windows export] Move debug symbol sections on export
– [Windows export] Use project version as fallback
– Remove selective shader baking
– Reduce log spam during headless import/export
– Android: Thread Syncronization for FileAccessHandler
– Fix headless import/export reporting progress greater than 100%
– Android: Fix build command for AAB export
– Add default param value to EditorExportPlatform::get_forced_export_files
– Fix editor export plugins always causing resources to be edited

GDExtension:
– MovieWriter: extension support
– Expose the EditorScriptHighlighter::_create() method to GDExtension
– Check if class without recreate callback is creatable, before marking whole extension as unreloadable
– Add speed scale feature for VideoStreamPlayer node
– Make use of latin1 encoding explicit in gdextension_interface.cpp
– Add interface functions for Object::set_script_instance()
– Prevent instantiating classes that aren’t exposed
– Include precision in extension_api.json
– Add status to get_godot_version
– Correctly register editor-only OpenXR* classes’ api_type
– Register editor classes normally, rather than via ClassDB::set_current_api()
– Add mechanism to get which classes an extension is using
– Optimize gdvirtual function layout
– Allow instantiating unexposed EditorPlugin from GDExtension
– Print Godot version when an extension is found to be incompatible
– Fix GDExtension Object/Node::to_string to check is_valid before returning the result
– Web: Fix crash when built with dlink_enabled=yes
– Fix GDExtensionLoader using the wrong super type in GDSOFTCLASS
– Fallback to ScriptInstance::get_property_state when get_property_state is not implemented in ScriptInstanceExtension
– Add function to register main loop callbacks
– Always run shutdown callback before deinitializing any levels
– Fix minor inconsistencies and errors in gdextension_interface.h
– Restore graph_offset property
– Prevent compatibility breakage from change to ClassDB::instantiate() for unexposed classes
– Call startup callback only after reload is fully finished
– Postpone adding new extension plugins to the editor
– Fix WindowUtils::copy_and_rename_pdb regression
– Fix classdb_register_extension_class* documentation in core/extension/gdextension_interface.h

GDScript:
– Add abstract classes to GDScript
– Optimize non-constant for-range
– Highlight script members like native ones
– Re-add ord() function
– Add constant Array and Dictionary constructors
– Add support for variadic functions
– Allow exporting variables of type Variant
– Autocompletion: Fix type resolution when assigning variant
– Fix call hint appearance for complex callees
– Add tests for calling with wrong arguments in Callable.callv() when passing a readonly (const) Array
– Fix autocompletion issues with nested types
– Scripting: Fix script docs not being searchable without manually recompiling scripts
– Fix Callable call error text
– Add _enable/_disable_plugin to plugin script template
– Core: Unify display of error type prefixes
– Improve consistency of code regions
– Fix crash when using a modulo operator between a float and an integer
– Improve GDScript editor support for global enums
– Do phrase level recovery when parsing faulty dictionaries
– Highlight warning lines in Script editor
– Cancel suspended functions when reloading a script
– Optimize GDScriptLambdaCallable by skipping the unnecessary ObjectDB lookup for script
– Implement class detection in GDScript for build configuration
– Remove dead code in GDScript function CallState
– Fix crash related to #region/#endregion caused by trailing spaces
– Fix head class range to include class_name
– Add clearing of static_gdscript_cache to GDScriptCache
– LSP: Fix file URI handling + warn about workspace project mismatch
– Return early when parsing invalid super call
– Add specific errors for use of keywords removed in Godot 4
– Fix a few GDScript warning messages for grammar and consistency
– Fix invalid DAP responses when content has non-ASCII content
– LSP: Fix relative path handling for document links
– LSP: Don’t advertize support for workspace symbols
– Add autocompletion for @export_tool_button
– LSP: Extract annotations from EditorHelp
– Fix LSP not returning expected localization for API docs
– LSP: Account for unicode identifiers
– Do phrase level recovery for match
– Add @export_file_path to export raw paths (no UID)
– Autocompletion: Remove additional parenthesis from utility function options
– Update get_stack(), print_stack(), and print_debug()
– Fix GDScript stack leak
– Add code completion for user-defined methods when overriding in GDScript
– Add abstract methods
– Fix script backtrace reporting wrong line numbers in release exports
– Bump script bytecode version after token enum change
– Remove leftmost_column and rightmost_column fields
– Fix crash on exit due to GDScriptLanguage::CallStack mismatched deallocation
– GDScript call stack as reverse linked list with fixed coroutines
– LSP: Fix class documentation to include brief
– Add missing type conversions in for range
– Fix a crash when the first line of GDScript code is indented
– Autocompletion: Don’t use next for GET_NODE inference
– Fix errors not being emitted when debugger breaks on script errors
– Replace abstract keyword with @abstract annotation
– Autocompletion: Don’t filter overrides when the existing function is the current one
– Autocomplete: Avoid prepending literals when the character has already been typed
– Fix double spaces for type hints when connecting signal
– Fix GDScriptLanguage::make_function()
– LSP: Don’t poll during editor setup
– Don’t get invalid dictionary key during completion
– Fix lookup symbol for super()
– DAP: Cast request’s seq value to int
– Fix Variant properties losing value upon script update
– Web: Disable GDScript LSP
– Properly detect native class on static call optimization
– Fix crash when GDScript scripts are reloaded during initial import
– Autocompletion: Push empty call for lambdas
– Autocompletion: Don’t call const functions
– Don’t stop annotation argument parsing at file end
– Fix range helper method using 32-bit ints for arguments
– Fix GDScript::reload leaving reloading as true on failure
– Improve error messages for lambda functions without a body

GUI:
– Add built-in GUI to display license notices (reverted)
– Rework AcceptDialog’s ok button text
– Windows: Remove visible WINDOW_MODE_FULLSCREEN border by setting window region
– Editor: Add ability to rename theme types
– Fix words not being selected by endpoints
– Remove NOTIFICATION_ENTER_TREE when NOTIFICATION_THEME_CHANGED is used
– Fix incorrect submenu icon and accelerator text positions involving margins
– Fix wrong tooltip behavior in PopupMenus that have styles with top borders
– Add theme cache to the inspector
– [TextEdit / LineEdit] Add support for OEM Alt codes input
– Fix unfocused windows can’t be dragged
– Allow changing the color for the Checkbox’s checked and unchecked icons
– Consider search keywords in CreateDialog
– Remove _FORCE_INLINE_ from TextServer*::_ensure* methods
– Fix changed signal emission in Curve::set_point_offset
– Implement properties that can recursively disable child controls’ Focus Mode & Mouse Filter
– Fix GraphEdit connections not updating when a child of GraphNode goes invisible or changes size
– Improve native file dialog parent window selection
– Tree: Fix relationship lines 1px width draw bug when MSAA anti aliasing is enabled
– Fix and improve editor state persistence for the VisualShader editor
– Improve ColorPicker picker shape keyboard and joypad accessibility
– Refactor ColorPicker shapes
– Augment unit tests for OptionButton
– ColorPicker: Allow other color wheels in okhsl mode
– Tree: highlight selected items on hover
– Fix spinbox decimal issues when update_on_text_changed = true
– Fix UI navigation breaking on invisible controls
– Add movement threshold before activating viewport rotation gizmo dragging
– Add get_connection_list_from_node function to GraphEdit
– Linux: Implement native color picker
– Remove confusing Control::is_top_level_control()
– TextEdit: Use actual indentation offset instead of space width for wrapped lines
– Use LocalVector in TextServerAdvanced to reduce reallocation
– DisplayServer: Decouple show_window(MAIN_WINDOW_ID) from DisplayServer constructor, update project manager size/position after DS init
– Optimize text rendering by caching UBreakIterator instances
– Fix ColorPicker sliders in overbright RGB
– Add FoldableContainer
– Display the actual used theme items in the Inspector
– Fix error when embedded popup is closed while resizing
– TextEdit: Improve wrapped line indent handling
– Expose OVERRUN_ENFORCE_ELLIPSIS flag to the controls
– Fix viewport scaling at intermediate resolutions
– Fix MenuButton style in editor top menu bar
– Fix Tree keyboard navigation in RTL direction
– Fix Tree buttons jiggle on horizontal scrolling
– Apply fix_alpha_edges for both theme icons and font glyphs
– Add tooltip for StyleBoxPreview grid button
– TabBar: Add boolean toggle for middle-click to fire tab_close_pressed signal
– Fix black bars appearing when using background_color on a TextEdit/CodeEdit
– Fix PopupMenu clickable area with shadows
– Add tab spacing modifier for tabs in TabBar and TabContainer
– Fix invisible ItemList cursor in editor theme
– Add tree multiselect with shift up & down arrow keys
– VideoStreamPlayer: Stop video on exit tree
– ItemList multiselect with shift up & down arrow keys
– Keep editor SceneTree buttons attached to the cell in Right-To-Left
– Fix text shadow outline draw batching
– LineEdit: Fix caret_force_displayed
– Add space for BBCode Ordered Lists
– ColorPicker: Add an intensity slider to all modes for HDR
– Allow TabBar drag and drop to be overridden and add tab mouse tests
– StyleBoxFlat: Fix glitchy overlapping shapes
– Use Viewport’s default texture filter/repeat in GUI tooltips
– Fix popup location for PROPERTY_USAGE_ARRAY inspector items
– Apply transforms for LineEdit, RichTextLabel, and TextEdit popup positions
– RTL: Fix custom effects not updating
– Fix SceneTree’s rename LineEdit’s offset position
– Label: Fix min. size calculation counting extra spacing twice
– Make embed floating window respect Always On Top configuration
– Editor: Change global menu icons theme independently of editor theme
– Fix SceneTree Item text display bug in Right-to-Left
– Fix memory leak caused by hidden tooltip controls
– Fix GraphNode port positions of children with size flag expand
– Add auto translate mode for items in PopupMenu and OptionButton
– Slider: Add bottom and top ticks and tick offset
– Show theme_type_variations in the inspector on Controls that inherit a theme
– Scroll EditorInspector while drag & drop hovering near the edges
– Sync display/window/size/initial_position_type and Window::WINDOW_INITIAL_POSITION_ enum
– Fix focus cycle through window
– Add missing ETR/TTR markups
– Tree: Fix dragging unselected item when a selection already exists
– Apply gizmo scale to EditorControlAnchor
– Fix the TreeItem rename LineEdit is offset
– Fix folding arrow and relationship lines move to 2nd column
– Fix game crashes when adding color preset after clearing presets in another control
– Add properties to configure space trimming on line break
– Prevent clicking of TreeItem buttons when letting go outside of the button
– Fix ScrollContainer focus border issue
– Fix inspector theme not updating when theme changed
– Fix smooth scrolling being tied to physics process
– LineEdit: Fix selection rectangle when text overflows container
– Fix Control.set_position resizes offsets/anchors (reverted)
– Tree: Fix offset relationship lines with Hide Folding
– Improve Popup content_scale_factor
– Optimize TextServerAdvanced::_add_features by using iteration instead of .values() and .keys()
– Fix reparenting control does not update recursive mode cache properly
– Optimize startup times by avoiding loading fonts twice
– Fix excessively calling resized and floating point errors in Control
– Optimize startup times by using ubrk_clone instead of ubrk_open
– RTL: Fix float and int matching in FX environment
– Fallback Control.layout_mode to valid mode when child of non-container control
– Fix and simplify hit calculation in PopupMenu::_get_mouse_over
– CI: Fix godot regression project test
– RTL: Fix size/alignment of tables with padded cells
– RTL: Improve vertical padding
– Remove macros from FontFile test case
– Implement Stackable Text Outline on Label
– Fix TextEdit VScroll max tolerance
– Replace global oversampling with overrideable per-viewport oversampling
– Add font import flag to toggle modulation of colored glyphs
– Make swap_cancel_ok setting 3-state instead of boolean
– Linux: Detect KDE/LXQt and swap OK/Cancel buttons to Windows style
– macOS: Fix native menu submenu items have wrong action and accelerators set
– Fix wrong translation method in FileDialog
– CodeEdit: Fix folding for comments mixed with code region tags
– Fix EditorSpinSlider Scroll Edit when inside a ScrollContainer
– Add custom sort to center tab bar in the editor and project manager
– Add separate minimize_disabled and maximize_disabled window flags
– Fix EditorHelpBitTooltip in single window mode
– Fix initial project manager size and scales < 1
– Fix and rename mouse filter recursive behavior and focus mode recursive behavior
– Fix shadow offset larger than shadow size in PopupMenu and PopupPanel
– RTL: Track external changes in the custom fonts set by BBCode / push_*
– Fix graph node resizing
– Fix exp_edit description
– Remove debug focus rect draws from MenuBar and GraphNode
– RTL: Fix VC_GLYPHS_RTL visible character trimming mode
– Fix GraphNode frag/vert port positions misaligned
– Implement SVGTexture auto-scalable with font oversampling
– Queue hover update when creating TreeItem
– Fix bitmap font scaling
– Fix typo ovrsampling → oversampling
– Fix fixed size image fonts incorrectly getting oversampling applied if set to native size
– Fix custom scale sometimes not applied to the project manager window size
– Fix X11 boot splash scaling
– Fix incorrect title bar sorting in RTL layout
– Fix regression causing jittery canvas transforms
– RichTextLabel: Add methods to compute the height and width of a line
– [ColorPicker, macOS] Add link to request required screen recording permission
– Unify ScrollBar/ScrollContainer scroll delta
– Add [br] to bbcode parsing for rich_text_label
– Improve default OK text in AcceptDialog
– Add drag zoom feature with CTRL+MiddleMouseButton
– Selectively apply FOCUS_ACCESSIBILITY to the Labels instead of setting it by default
– SvgTexture not in 3D
– Change FileDialog’s Tree to ItemList
– Improve FileDialog options
– [LineEdit/TextEdit] Add composite character backspace delete and get composite character positions
– Add favorites and recent directories to FileDialog
– Add file sort to FileDialog
– Use same oversampling granularity as fonts use for SVGTextures
– Fix AnimationNodeBlendTree crash on Open Editor button press
– Fix item translation and icon in the Anchors Preset dropdown
– Improve edited scene layout direction detection
– Rename FoldableContainer’s text to title
– Fix ColorPicker preset button format string typo
– TextEdit: Fix caret cut of in RTL layout, account for wrapped line indents in accessibility updates
– ScrollContainer: Fix focus rect draw position in RTL layout
– Add thumbnail mode to FIleDialog
– TextEdit: Fix margin rounding at sub 100% scale
– TextServer: Fix outline size and image fonts with oversampling
– Improve ColorPicker
– Editor: Allow non-finite values in Range
– Fix background size calculation in TreeItem
– Fix oversampling for embedded windows using content scale
– Some QOL and cleanup to EditorHelp’s FindBar
– Add option for a touch-friendly drag handle in SplitContainer
– Allow Control Rect tool to not snap to pixel
– Move alt_code_oem437 and alt_code_cp1252 to separate header file
– Show “No Recent Scenes” under Open Recent instead of redundant button
– Add missing dictionary and array type hints
– Add property to control showing the virtual keyboard on focus events
– Fix unexpected control position change when left/top offsets not match pos_cache (reverted)
– Change Selected value for OptionButton when last item is deleted
– Fix TabBar Hidden Tabs Handling
– Fix FileSystemTree rename TextEdit is offset
– Accessibility: Account for window scaling transform when setting node bounds
– RTL: Add options to override underline color and default alpha
– Copy all text in RichTextLabel if nothing is selected
– Cleanup header includes in Tree
– Revert #104357 and #106141 to fix Control RTL position
– Fix TabContainer not respecting tabbar_background’s margins
– Web: Fix LineEdit select_all_on_focus behavior when using a virtual keyboard
– Fix LineEdit with secret checked reveals the secret when a selection is dragged
– Adjust SVG in OT scaling and baseline
– Lazy create menu and slider nodes in Tree
– Adjust hex code box baseline calculation
– Deselect invisible TreeItems
– Move some accessibility properties from Node to Control
– Add hardcoded baseline offset for Apple Color Emoji
– Improve SVGTexture lazy loading
– Allow customizing FileDialog’s features
– Use OkHSV for RichTextLabel rainbows
– Call PopupMenu min. size calculations after about_to_popup signal processing
– Use TabContainer material for internal TabBar
– Do not activate accessibility when screen reader detection failed
– Fix Android editor UI
– Add missing TRANSLATION_CHANGED notifications
– Fix MenuBar min size not updating after child rename
– VideoStreamPlayer: Fix sync with the scene tree
– Remove freed up FontForSize data from oversampling_levels
– Fix SCROLL_MODE_RESERVE with RTL layout
– Fix CodeEdit hover word lookup
– Clamp FontFile Face Index to a valid range in the inspector
– macOS: Fix borderless window maximization
– Fix window embedding for windows with force_native enabled
– Accessibility: Always auto-translation mode for names/descriptions
– Check script sample characters to filter out incorrect script support information
– Fix LineEdit continues to force showing the caret after drag is aborted
– [SVG in OT] Fix rendering of some glyphs using “defs” with “#glyphXXXXX.X” id
– Make BaseButtons’ shortcut feedback timers internal
– RTL: Fix outline offset
– Unify get_[_visible]paragraph/line_count behavior
– Fix LineEdit’s caret desyncing issue when toggling secret mode
– ColorPicker: Fix cursor position in okhsl circle
– ColorPicker: Add okhsl HS and HL rectangular picker shapes
– Ensure hiding AcceptDialog OK button keeps other buttons centered
– Don’t store deprecated auto_translate property for Window
– Spinbox: Fix incorrect step and decimal text when using custom arrow step
– Fix window title drawn outside the title bar
– RTL: Add paragraph separation theme property
– ItemList: Fix text drawing not taking h_separation into account in top mode
– Fix visible ratio when displaying all characters in Label
– RTL: Decouple image width/height “in percent” properties. Add [hr] tag support
– Partially revert 107110, process all lines in VC_CHARS_BEFORE_SHAPING mode to return correct line count
– Improve performance of visible_charactersupdates in VC_CHARS_BEFORE_SHAPING mode
– Fix IME window position not taking into account window transform
– Fix ScriptEditor error line out of bounds
– Add line_breaking_strictness project setting
– Move font related project settings definitions to TextServer
– Multiply contents minimum size by scale factor
– Fix set_force_native when window is not in tree
– Rename TreeItem’s alt_text to description for consistency with Accessibility API
– Fix scale and position of popups with force_native
– Fix some menu bar items unresponsive after language change
– Cleanup accessibility names
– Restore per font oversampling override
– Android: Address API 35 UI behavior changes
– GraphNode: Fix slot focus rect draw, make slot focus mode configurable
– Tree: Fix handling of __focus_rect with various Select Modes
– Fix custom Text Editor theme changes on reload
– SpinBox: Fix custom_arrow_step by snapping it to step
– Android: Don’t exclude display cutout in immersive mode
– Fix: TabBar/TabContainer can’t start with all tabs deselected
– Fix ColorPicker linear mode sliders color
– Fix typo in TextParagraph.direction hint string
– Deactivate orientation gizmo on window exit
– RTL: Add option to scroll follow visible characters
– Draw guide lines over selection and focus styleboxes
– [Code Editor] Fix “Pick Color” menu option replacing multiple color items
– Fix incorrect anchor preset when custom offset is set (reverted)
– RTL: Add method to get visible content bounding box
– RTL: Fix padding and alignment of embedded image clicks
– Fix export path “leaking” between presets
– Android: Fix system bar regression
– Fix TabBar minimum size with clip_tabs enabled
– RTL: Fix text selection offset in padded cells
– TextEdit: Draw guidelines under the text and caret
– Wayland: Workaround tooltip issues
– Add minimum scale to shader list
– Use double consistently in Range::get_as_ratio
– Fix inconsistent column in Tree click detection
– SplitContainer: Fix inability to override touch dragger icon and add theme colors to touch dragger
– Deprecate updown icon
– Web: Fix Web MouseWheel scrolling
– TextServer: Fix soft hyphen font fallback
– Fix ColorPresetButton preset_focus is set to wrong type in default theme
– Fix editor one-click icons not showing
– Fix TextEdit line wrap indent when disabled
– Fix RichTextLabel nested tables not sizing properly
– Fix button down signal not emitting on first press after being disabled
– Fix font fallback for lines with only non-visual/control characters
– Fix Tree cell text vertical alignment
– Update GraphNode selection logic if not visible
– Accessibility: Process non-focusable windows (popups, menus) as part of the parent window tree
– Avoid color conversion roundtrip in colorpicker
– Add SVGTexturesupport to NinePatchRect, TextureProgressBar and StyleBoxTexture
– SVGTexture: Always use real values for texture_set_size_override
– Use non-MSDF fallback for MSDF fonts if fallback is a color or non-scalable font
– Break batch on Compatibility when primitive texture changes
– Fix LineEdit center alignment
– Fix some localization issues in controls
– Revert “Fix incorrect anchor preset when custom offset is set”
– TextServer: Fix caret hit test rounding
– Use MSDF instead of MTSDF for font rendering
– Fix issues searching RichTextLabel when search result is in a table
– Disallow clicking to toggle the checkbox of a theme override of type Resource to checked
– LineEdit: Fix double click not selecting single character words
– ThemeEditor: fix to show filename for new/renamed files
– Fix missing hover style for Ignore Error breaks button
– RTL: Fix text around visible_characters boundary being added twice to the buffer
– Fix PopupMenu accel position
– Fix OptionButton not removing icon when using clear
– Update TextEdit to use center alignment for inline objects
– Enable input when ColorPicker popup exits tree
– Popup: Reset state on visibility change
– Validate theme type name input in Add Theme Type dialog
– Do not set flags when PopupMenu::set_visible is called to hide popup
– Fix ColorPicker after adding intensity sliders
– TextEdit: Fix text edit font update order

I18n:
– Add translation preview in editor
– Enable changing editor language without restart
– Don’t send TRANSLATION_CHANGED outside tree
– Split repeated translation in Game plugin
– Split repeated translation for floating windows
– Fix some i18n issues in visual shader editor
– ScriptEditor: Disable auto translation of the filename label
– Fix Android build template message translation
– Tweak a few miscellaneous localization strings
– Improve auto-translation for static strings in docks
– Fix editor layout direction change on translation change
– Inspector localization improvements
– Fix updating editor icons on translation change
– Improve Project Manager auto-translation
– Improve EditorAbout dialog auto-translation
– Improve AssetLib auto-translation
– Improve SceneTree auto-translation. Fix TreeItem tooltips and the Filter
– Fix double translations in Project Manager
– Improve auto-translation of settings dialogs
– Fix i18n for array property custom add button text
– Don’t update scene tree when calling Translation::set_locale()
– Fix category names in help search dialog not translated
– Improve auto-translation of main screens
– Improve auto-translation of Script Editor
– Improve auto-translation of editor’s top & bottom bars
– Mark GDScript and shader warnings for translation
– Add Japanese translation for Linux .desktop file
– Add Polish translation for Linux .desktop file
– Fix root auto-translate mode ignored for child nodes when generating POT
– Disable auto translation of flag names in the inspector

Import:
– Fix Texture3D import not working
– Implement KHR_node_visibility in the GLTF module
– Fix resetting imported scene parameters to default
– Add Channel Remap settings to ResourceImporterTexture
– Support multi dot extensions in import plugins
– Use UIDs in addition to paths for extracted meshes, materials and animations
– GLTF: Only pad zeros when exporting numbered images
– GLTF: Don’t write unused “targetNames” on meshes
– DDS: Prevent crashing when unable to load image
– Rework scene preview thumbnails (reverted)
– ufbx: Update to 0.17.1
– Betsy: Remove OGRE aliases
– Increase size of Offset field in audio import dialog
– Disable ResourceFormatLoader/Savers of disabled classes
– bcdec: Fix decompressing mipmaps of non-power of 2 textures
– GLTF: Use scene root nodes for root nodes, don’t include orphan nodes
– Fix headless import always emits errors
– Allow attaching scripts to nodes in the Advanced Import Settings dialog
– Delete rendering device on the same thread it was created
– etcpak: Improve and fix decompression of mipmaps
– Fix Image format RGB565 conversion and rendering
– Improve error message when trying to load scene as an animation library
– Make build profile project detection also set build options
– BasisUniversal: Ensure ASTC’s HDR variant is supported when transcoding
– GLTF: Fix wrong color space for GLTFLight on export
– basis_universal: Update to 1.60
– ResourceLoader: Do not wait for the main thread during initial reimport
– Add named placeholder to blender import options
– GLTF: Don’t collapse non-joint leaf nodes when importing skeletons
– Update BoneAttachment3D transform when setting the bone index
– Force multiple of 4 sizes for Betsy compressor
– Update Mipmaps > Limit import option visibility when intended in the texture importer
– Use libjpeg-turbo for improved jpg compatibility and speed
– Fix crash when reimporting nested gltf scenes
– Update astcenc to the upstream 5.3.0 release
– Force multiple of 4 sizes for CVTT compressor
– Load decompressable texture format if no supported one is found
– Don’t show toasts for textures detected as used in 3D/normal/roughness
– GLTF: Fix export_post_convert not running for multi-root scenes
– GLTF: Fix importing files with invalid buffer view byte strides
– GLTF export: Allow using a PNG or JPEG fallback image
– PortableCompressedTexture: Fix BasisU crash and wrong format
– PortableCompressedTexture: Support ASTC format and creating directly from compressed image
– Allow completely opting out of name suffix magic in 3D scene import
– BasisU: Use KTX2 format and add import options to configure encoder
– Fix incorrect mipmap size calculation for uncompressed DDS textures
– Fix importing compressed dds textures with non-power-of-two width or height
– Remove old oversampling property from font importers
– Fix is_pixel_opaque bound checks
– Add SVGTexture importer
– Explicitly handle Image AlphaMode enum instead of treating as bool
– Fix fbx runtime import not generating meshes properly
– DDS: Load BGRA4 textures directly as RGBA4
– Fix loading BPTC/ASTC textures on devices that don’t support them
– BasisU: Configure HDR quality from the settings
– GLTF: Support 64-bit sizes in glTF import and export
– Fix libjpeg-turbo not working on 32-bit builds
– Check if import script is subtype of EditorScenePostImport
– Expand the imported texture channel count for remapping if necessary
– Use vertex colors (if present) as attributes during simplification
– Image: Fix detecting color channels
– GLTF: Make skeleton bone names unique per-skeleton instead of scene-wide
– Adjust LOD selection metrics to use attribute error
– Add DDS loading of 32bit aligned data without alpha
– Relax the requirements for making EditorImportPlugin
– GLTF: Don’t export AnimationPlayer nodes as glTF nodes
– Implement UID references in VariantParser
– Make svg files respect interface/theme/icon_saturation setting when imported for editor use
– [Image font import] Allow comma separated lists as a character range
– GLTF: Align accessor buffer byteOffset to multiple of component size
– GLTF: Don’t save unnecessary zero “byteOffset” on export
– Restore 3.x style material auto-extraction import option
– Implement naming version system for FBX and Blend importers like glTF
– Fix deadlock in EditorFileSystem::reimport_files
– DDS: Fix loading cubemaps
– meshoptimizer: Update to 0.24
– GLTF: Fix nasty bug with incorrect buffer indices on export
– Fix incorrect light values on blend import
– Fix all asset reimport on missing filesystem_cache10
– Fix allow any descendant to be used as a Root Type in Scene Import
– Fix Editor crash during first scan in headless import mode
– GLTF: Fix minor niche edge case issues with accessors
– Prevent generating Editor 3D scene preview in headless mode
– Fix Image nearest and cubic resizing bias
– Dedupe images during GLTF Export
– GLTF: Fix crash reading texture sampler for non-existent texture
– ImporterMesh: Validate triangle indices array size is a multiple of 3
– Fix infinite loop in GLTFDocument::_convert_animation_node_track

Input:
– Allow all tool modes to select
– Add configuration option to disable Scroll Deadzone on Android
– Android: Enable support for volume button events
– Fix Android mouse capture issues
– Fix macOS mouse tracking in tooltip popups
– Fix “Unicode parsing error” spam when opening editor
– [macOS/iOS] Ensure only one axis change event is produced during single process_joypads() call
– Fix EditorProperty shortcuts being global and unintentionally triggering
– Support more controllers on macOS 11+
– macOS: Release keys and regenerate mouse events after native popup menu tracking
– Fix Apple’s incorrect mapping of Joy-Con (L) and Joy-Con (R) face buttons
– macOS: Use productCategory instead of vendorName for joypad name
– Adjust 2D select/move/rotate/scale shortcuts to match 3D
– Android: Fix decimal keyboard
– Fix FOCUS_ACCESSIBILITY grabbing focus when it is not supposed to, forward GraphNode key input to GraphEdit
– Web: Avoid unnecessary gamepad polling when no gamepads are connected
– macOS: Update entered state from mouseMoved
– macOS: Embedded window support
– iOS: Prevent startup crash with Input singleton null check
– Fix issues with Android controller input handling
– Fix added missing shortcuts from tree to file list
– Fix Xbox Controller on Android
– Optimize InputMap::get_actions
– Add support for SDL3 joystick input driver for Windows, Linux and macOS
– macOS: Process first click event without requiring focus
– macOS: Send initial modifier keys as input events
– Wayland: Fix stuck pointer buttons on window leave
– Keep virtual keyboard visible when keep_editing_on_text_submit is enabled
– Web: Add support for pen pressure
– Allow numpad comma , to be used for 3D Blender-Style Transforms
– Fix action name for ui_colorpicker_delete_preset in built-in InputMap
– Web: Disregard touch events in pointer callbacks (reverted)
– Fix screen_accum not being reset when it should be in Input::VelocityTrack
– Web: Poll controllers only if at least one is detected
– Fix Input.get_joy_info() regression after the SDL input driver PR
– Android: Fix the EOF detection logic
– Add environment variable access defines to SDL linux build config
– Use inotify to detect devices for better reliability on Linux
– Fix the usage of udev and dbus with SDL joystick input driver
– macOS: Fix mouse enter/exit event and custom cursor shape in embedded game mode
– Fix menu keyboard and controller navigation
– Forward mouse events to embedded no-focus windows
– Windows: Release mouse buttons after native window drag/resize operation
– Fix shortcut reset for spatial_editor/tool_select
– Add methods to check which event first triggered “just pressed/released” state
– Handle SDL joypad events for connected controllers on game startup (on Windows and Linux)
– Fix DirectInput controllers on game startup
– Revert “[Web] Disregard touch events in pointer callbacks”
– fix: macOS cmd + drag snapping not working for 3D editor Move, Rotate and Scale tool

Multiplayer:
– Add MultiplayerSpawner unit tests
– Fix node cache errors on nested MultiplayerSpawners
– Expose get_rpc_config and get_node_rpc_config

Navigation:
– Make get_id_path return empty when first point is disabled
– Increase NavigationLink3D gizmo detail to match other circle/sphere 3D gizmos
– Create a dedicated 2D navigation server
– Rename classes in preparation for future restructure
– Add path query region filters
– Add navigation path query parameter limits
– Make NavigationLink3D properly update on visibility change
– Fix navmesh border_size precision warnings
– Fix visible avoidance debug rendering in NavigationRegion2D
– Move navmesh connection owner check to subfunction
– Add bake state info and MultiNodeEdit support for NavigationRegion3D
– Emit changed signal after baking navigation mesh
– Allow to compile templates without navigation features
– Add function to get navigation region iteration id from NavigationServer
– Fix typo in performance
– Prepare NavigationServer for process() and physics_process() split
– Change navigation module LocalVector size_t uses to uint32_t
– Replace the deprecated Geometry2D::get_closest_point_to_segment
– Move NavigationServer navmesh sync from main() to process()
– Make navigation maps emit map_changed directly
– Clean and group NavigationServer headers
– Replace NavigationServer2D Point struct with Vector2
– Replace NavigationServer3D Point struct with Vector3
– Remove no longer needed link polygons from NavMapBuilder
– Move NavigationObstacle3DEditorPlugin to navigation_3d module
– Rename NavigationMeshEditor to NavigationRegion3DEditor
– Move NavigationRegion3DGizmoPlugin to navigation_3d module
– Move NavigationLink3DGizmoPlugin to navigation_3d module
– Remove AStar2D/3D comments on reserve_space() capacity needs
– Capitalize global navigation constants
– Add function to get navigation link iteration id from NavigationServer
– Move 2d navigation related editor plugins to navigation_2d module
– Rename nav_2d namespace to Nav2D to match Nav3D
– Change 3D navigation region and link updates to an async process
– Match avoidance defaults for NavigationAgent and NavigationServer NavAgent
– Change NavigationServer2D avoidance callbacks from Vector3 to Vector2
– Fix CapsuleShape2D outline for navmesh baking
– Change 2D navigation region and link updates to an async process
– Only repath a NavigationAgent with a target position
– Remove get_used_cells to avoid unecessary allocations in navigation baking
– NavigationServer2D: Bind missing merge_rasterizer_cell_scale setting and functions
– NavMap3D: check if obstacles have avoidance enabled
– NavMap2D: check if obstacles have avoidance enabled
– Add a way to filter neighbor points to AStar2D/3D
– Fix flipped clipper2 ifdef
– Fix path post-processing edgecentered

Network:
– JSONRPC: Require manual method registration
– JSONRPC: Fix notification return behavior
– Web: Avoid extra copy when encoding string in WebSocket _onmessage
– mbedTLS: Fix concurrency issues with TLS
– Fix EditorSettings usage in TLSContext
– mbedTLS: Update to version 3.6.4, fixes GCC 15 compatibility

Particles:
– Fix particle jitter when scene tree is paused
– Fix CPUParticles2D repeatedly scaling particles with 0 velocity and Align Y
– Add emission shape gizmos to Particles2D
– Overhaul the cull mask internals for Lights, Decals, and Particle Colliders
– Fix GPU particles not emitting at some configured rates when scale curve is zero
– Fix wrongly assigned emission_normal_texture
– Fix heap-use-after-free when closing a scene with 2D particle nodes selected
– Fix floating point precision errors when setting particle trail length
– Fix particles resetting properties when emitting is toggled
– Move 2D and 3D particle editors to the 2D and 3D folders

Physics:
– Add mid height property to CapsuleShape2D/3D
– Add ability to apply forces and impulses to SoftBody3D
– Place a hard limit on the max_contacts_reported property in 2D/3D physics
– Refactor Jolt-related project settings to only be loaded as needed
– Improve capsule gizmo performance
– Fix get_rpm() on wheel which has steering
– Chunk tilemap physics
– Improve Jolt module initialization style
– Fix interpolation in XR
– Allow to compile templates without physics servers
– Fix broken negative scaling when using Jolt Physics
– Fix ConcavePolygonShape3D always enabling backface_collision when using Jolt Physics
– Jolt: Update to 5.3.0
– Fix shape always being zero with get_rest_info when using Jolt Physics
– Jolt: 32-bit MinGW g++ doesn’t call the correct overload for the new operator when a type is 16 bytes aligned
– Remove Jolt Physics project setting “Areas Detect Static Bodies”
– Remove no-op locking in Jolt Physics module
– FTI – Reduce VisualInstance3D xform notifications (reverted)
– Remove emitting of error in JoltBody3D::_exit_all_areas
– SoftBody3D: Add a property for scaling rest lengths of edge constraints
– Fix SCU build issues related to Jolt Physics
– Jolt physics: Setting position instead of velocity in JoltSoftBody3D::set_vertex_position
– Improve performance with non-monitoring areas when using Jolt Physics
– Remove force enter/exit logic from JoltArea3D
– Remove error for degenerate soft body faces when using Jolt Physics
– Change JoltShapeInstance3D to use move semantics
– SoftBody3D: Support physics interpolation (reverted)
– Fix Area3D signal emissions when using Jolt Physics
– Batch the adding of Jolt Physics bodies
– Fix Jolt Physics soft body vertex normal calculation
– Fix crash when disabling SoftBody3D while using Jolt Physics
– Jolt physics: wake up a soft body when its transform changes
– Improve performance for shapeless objects when using Jolt Physics
– Fix crash in Jolt Physics when switching scenes in editor
– Document some deadlocks in the physics server code
– Fix performance regression when rendering collision shapes
– Fix contacts not being reported properly when using Jolt Physics
– Revert “SoftBody3D: Support physics Interpolation”
– Increase SoftBody3D damping coefficient editor range
– Pause physics command queue during physics processing
– Fix move_and_slide forcing synchronization with physics thread
– Fix one-way-collision polygons being merged despite being on different Y-origins in TileMapLayer
– Fix crash when rendering a soft body 3d

Plugin:
– EditorInterface: Add get_open_scene_roots to retrieve all opened scenes root nodes
– Clarify API for top selected nodes in EditorSelection and make public
– JavaClassWrapper: Improve handling of typed array arguments
– JavaClassWrapper: Fix converting returned arrays to Godot types
– JavaClassWrapper: Fix conversion to/from org.godotengine.godot.Dictionary that regressed
– JavaClassWrapper: Fix mistake in last fix for org.godotengine.godot.Dictionary conversion
– Add maven publishing configuration for Godot tools
– Fix wrong context menu argument from FileSystem’s item list
– Update the documentation for JavaClassWrapper and AndroidRuntimePlugin
– Always use base directory in CONTEXT_SLOT_FILESYSTEM_CREATE
– Android: Fix Android plugins regression
– Add a debug version for Godot’s maven central artifact

Porting:
– Implement screen reader support using AccessKit library
– macOS: Add support for loading shell environment from UI apps
– FileAccess: Implement get_size and get_access_time methods
– Windows: Fix issue where newly created window incorrectly acquired the popup property
– Use windowBackgroundColor instead of controlColor for macOS system base color
– Simplify the printed file paths in the Linux/*BSD crash handler
– Add methods to decode/encode multibyte encodings
– Wayland: Handle fifo_v1 and clean up suspension logic
– Wayland: Implement native sub-windows
– Add support for using an Android Service to host the Godot engine
– Android: Skip non-existing system font files
– Android: Fix editor crash after changing device language
– X11: Fix check for is_maximized to require both horizontal and vertical
– [Linux/BSD] Offload RenderingDevice creation test to subprocess
– Improve error message from JavaClassWrapper.wrap()
– Windows: Fix get_modified_time on locked files
– Swap Nintendo face buttons on macOS
– Use more efficient sleep approach on Windows when low-processor mode is enabled
– Set unsupported to true on error in FreeDesktopScreenSaver
– X11: Fix native dialog parent selection condition
– macOS: Enable transparency for windows with decorations
– [macOS/iOS] Fix system font family descriptor leak
– macOS: Fix editor loading crash on native menu click
– DisplayServer: Implement get_accent_color on Linux
– macOS: Update mouse-entered state when subwindow closes
– macOS: Replace custom main loop with [NSApp run] and CFRunLoop observer
– Implement DirAccess.is_equivalent method
– macOS: Fix cleanup with some command line tools
– macOS: Fix running with DisplayServerHeadless
– Windows: Fix borderless maximized window mode
– macOS: Fix missing frame_changed signal to CameraFeed
– Android Editor: Auto create nomedia file to hide project files in media apps
– Handle the case where waitpid returns errno EINTR
– Wayland: Fix error spam for closed windows
– Apple: Add pthread implementation of Thread class
– Change DisplayServerMacOS from GDCLASS to GDSOFTCLASS. Add GDSOFTCLASS to other display servers
– Accessibility: Use system timer/wait functions for frame delay when screen reader is active
– Fix crash in release build with llvm-mingw
– Web: Prevent unnecessary canvas resizes by flooring scaled dimensions
– macOS: Fix close button hidden and title bar transparent in fullscreen mode
– macOS: Fix touch bar observer crash
– Fix Windows OS.get_unique_id() null termination issue
– Wayland: Ensure pointed window’s existence in mouse_get_position
– Improve script backtrace print in crash handlers
– Do not call accessibility_set_window_rect on Wayland, fix main windows accessibility context creation
– Wayland: Implement the cursor-shape-v1 protocol
– Wayland: Fix error spam when closing popup
– X11: Fix GL init memory leak when transparency is enabled
– macOS: Fix embedded window position when host control is moved, but not resized
– macOS: Fix transparent window state detection for embedded process
– macOS: Fix a crash if no input event is set for a specific window
– Implement get_filesystem_type on macOS and Linux
– Wine: Use _SH_DENY* flags instead of unsupported _SH_SECURE
– Web: Always return 0 for OS::get_process_id()
– macOS: Ensure LayerHost size is set when first embedded
– Wayland: Fix window fitting in single-window mode
– Fix GodotApplicationDelegate init
– Fix execute_with_pipe / create_process exit code
– Fix transparency background issue on Android
– Wayland: Add missing return in selection logic
– Add support for OS.get_version_alias() on Android
– macOS: Fix clipboard and TTS not working in embedded game mode
– Fix native file dialog crash with invalid filter
– Android: Fix save issue when using native file dialog
– Remove TTS debug print
– Fix Input.vibrate_handheld on Android
– macOS: Initialize CVDisplayLinkRef member field
– Address remaining feedback on Android background transparency
– macOS: Add –path argument when instance is created by project started from editor
– Wayland: Fix division by zero when scale is less than 1
– Cleanup closed embedded processes on macOS
– macOS: Move keyboard layout related code to base display server
– Add missing JNI variant conversion for generic Array
– X11: Fix memory leak when using window embedding
– Android: Fix DisplayServer.get_display_safe_area() issues
– Fix immersive mode and virtual keyboard height issue on Android
– Fix Android splash theme regression
– Windows: Add SSE4.2 support runtime check
– Add keypad codes to the keysym unicode map
– Linux: Fix narrowing conversion error in 32-bit builds
– macOS: Do not use NSApplication main loop for headless mode
– Android: Run clipboard tasks on UI thread
– macOS: Fix warp_mouse in game mode
– Web: Fix inappropriate memfree() use
– Fix: Make get_space_left on Windows use current_dir instead of process CWD
– Web: Fix the editor {godot,emscripten}PoolSize config values
– macOS: Add Tahoe 26.0 to version alias
– MacOS: Fix embedded screen_get_scale API
– Fix Android TTS on-demand init
– Windows: Additionally use cpuid instruction to detect SSE4.2 support
– Unix: Replace symlink target, not the link itself when using backup save mode
– Unix: Fix execute_with_pipe closing wrong pipe handle
– Defer format_changed and frame_changed signal for all camera feeds
– macOS: Process joypad input directly in the embedded process
– macOS: Fix embedded menu/spacer relative position
– Windows: Fix color picker on old versions of Windows 10
– macOS: Forward application focus events to the embedded process
– Use org.a11y.Status/ScreenReaderEnabled on Linux
– SCons: Use gnu++20 in metal driver
– [Linux/BSD] Initialize DBus only once
– Windows: Save and restore window rect when switching to/from maximized+borderless mode

Rendering:
– Use lower shadow normal bias for distant directional shadow splits (reverted)
– Add stencil support to spatial materials
– Implement LIMIT_MAX_COMPUTE_SHARED_MEMORY_SIZE to limit_get in the Vulkan backend
– Implement FXAA 3.11 to replace the current broken implementation
– Add support for bent normal maps for specular occlusion and indirect lighting
– Add new StandardMaterial properties to allow users to control FPS-style objects (hands, weapons, tools close to the camera)
– Add color_conversion_disabled shader hint
– Optimize shared texture creations
– Implement Fragment density map support
– OpenXR: Use the XR_FB_foveation_vulkan extension to get the density map for VRS
– Implement motion vectors in mobile renderer
– Expose RenderingServer::environment_set_fog_depth
– Fix Camera3D gizmo representation to accurately reflect FOV
– WebGL: Support native ASTC compression when available
– Fix wrong default texture for global uniforms of type sampler2DArray
– Pass angular diameter into light size constants for sky shaders
– Optimize ProceduralSkyMaterial by removing uses of acos and simplifying logic
– Rendering compositor identifies is_opengl API; minor optimisation
– Add SMAA 1x to screenspace AA options
– Add ASTC HDR format variants
– GLES3: Fix errors baking light map with compatibility renderer
– Fix voxelizer normals
– Fix render info primitive count per TRIANGLE_STRIP
– Fix 2D quad primitive missing lighting data in GLES3 renderer
– Fix uninitialized value in Tonemap
– Add Meshes to the Video RAM Profiler
– Disable texture array reflections on Intel GPUs on macOS due to driver bugs
– Suppress OpenGL debug marker printing
– RenderingDevice: Validate pre-raster (vertex) shader in render_pipeline_create
– Physics Interpolation – Add editor configuration warnings
– Use separate WorkThreadPool for shader compiler
– Validate triviality of InstanceData struct in Mobile and Forward+ renderers
– Fix inefficient upload in Mobile Shadows
– Optimize _fill_instance_data function in Forward+ renderer
– Metal: Use uniform set index passed by RenderingDevice
– Metal: Add missing stage info to shader description
– Fix inefficient upload in Mobile Shadows
– Metal: Use p_set_index when binding uniforms, to use correct data
– Fix incorrect parameters passed to VMA
– MetalFX: Change fallback behavior
– Significantly reduce per-frame memory allocations from the heap in the Mobile renderer
– Switch occlusion culling to be based on depth instead of Euclidean distance
– RenderingDevice: Delay expensive operations to get_perf_report
– Fix GLES3 gaussian_blur mipmap setup
– Fix deadlock between PipelineHashMapRD::local_mutex and GDScriptCache::mutex
– Clean up more dynamic allocations in the RD renderers with a focus on 2D
– Forward+: Replace the current BRDF approximation with a DFG LUT and add multiscattering energy compensation
– Renderer: Expose and document Features enum for MetalFX
– CPUParticles2D: Fix physics interpolation after entering tree with emitting = false
– Fix Invalid Task ID error spam in PipelineHashMapRD
– Metal: Use reference, so we’re not copying every frame
– Vulkan: Disable layers in editor deemed buggy by RenderDoc
– Error when draw list is not active in draw_list_switch_to_next_pass
– Physics Interpolation – Move 3D FTI to SceneTree
– Add error check for reflection probe invalid atlas index
– Fix Movie Writer behavior with Viewport Display Mode + Window Size Override
– Renderer: Fix Metal handling of cube textures; assert equal dimensions
– Renderer: Warn when images need to be converted due to their formats being unsupported by hardware
– Disable broken Vulkan layers before running RenderingDevice tests
– Vulkan: Re-enable Mesa device select layer
– Fix uninitialized member vars in CommandQueueMT and RasterizerSceneGLES3
– Fix corrupted negative values for signed BC6
– Avoid using a global variable to store instance index in canvas items shader in RD renderer
– Combine TileMapLayer debug quadrant shapes to a surface
– Renderer: Reduce scope of mutex locks to prevent common deadlocks
– Detect more pipeline settings at load time to avoid pipeline stutters
– Relax the range hint for canvas layer properties
– Pre-allocate more resources when screen textures are detected in the Mobile renderer
– Fix Math constant conversion
– Fix RendererRD crash on start on Intel Macs
– Allow moving meshes without motion vectors
– Properly report missing nodes in LightmapGI
– Fix UBSAN alignment issues in the render graph
– Scene shader: Improve and document SH diffuse evaluation for light probes
– RenderingDevice: Pass mipmap count to texture_create_from_extension()
– Fix float/int comparison in acos_approx in sky template shader
– Avoid unnecessary version_get_uniform() calls
– Fix reflection probe dark borders
– Fix error spam to due wrong use of reserve() in D3D12 driver
– FTI – Add custom interpolation for wheels
– FTI – Fix SceneTreeFTI behaviour on exit tree
– Avoid crash when allocating specular and normal-roughness buffers when render buffers aren’t available
– Check for GL ES version of BPTC extension when using the OpenGL renderer
– Add specular occlusion from ambient light
– Compatibility: Disable environment ambient light when affected by light probes
– SceneTreeFTI: faster access to Node children
– Fix reflection probe box projection stretching
– FTI – Optimize SceneTree traversal
– Use a fragment shader copy instead of a blit copy in the final blit to screen in the Compatibility backend
– Change Occlusion Culling Buffer debug view to use log scaling
– Implement the count parameter in RenderingServer.canvas_item_add_triangle_array
– Rewrite textureProjLod usage to avoid a Vulkan validation error
– Improve platform compatibility of Windows and Direct3D 12
– Rework semaphores for presentation to be created per swap chain image to fix validation error
– Fix Reflection Mask not working on Mobile
– Reduce amount of permutations in mobile shader
– Shader: Fix the default behavior when mat uniforms are null
– macOS: Support vsync when embedding OpenGL processes
– Mobile: Disable subpass post-processing when using FXAA
– Metal: Ensure stencil-only rendering is supported
– Fix light range in VoxelGI
– Metal: Fix crash when clearing render buffers
– Metal: Disable MetalFX Temporal for mobile rendering method
– Renderer: Eliminate String allocations for all labels in the renderer
– Ignore destination alpha when blitting to window in compatibility renderer
– Mobile: Move _setup_lightmaps before _fill_render_list
– D3D12: Fix inconsistent value for DCOMP_ENABLED in platform code
– Fix missing ibl reconstruction from DFG multiscattering
– Minor rendering and XR changes to allow Meta enivornment depth API to work entirely from GDExtension
– Vulkan Mobile: Fix lightmap instances count
– Correctly place viewport and use viewport relative rect for the final blit in Compatibility renderer
– Metal: Fix multi-view support
– Allow double precision modelview
– Avoid -Wmissing-declarations warning in RenderingShaderContainer
– SceneTreeFTI: – Fix identity_xform flag getting out of sync
– Increase directional light energy in sky for fog sun scatter
– Expose RS.mesh_surface_update_index_region
– Optimize Mobile renderer by using FP16 explicitly
– LightmapGI: Search for shadowmask light index only after sorting the lights
– Fix SH lightmap coefficients for direct lights
– Avoid crash when texture layers is greater than 1 and format is not an ARRAY type
– SceneTreeFTI: – Fix force_update flag getting out of sync with invisible nodes
– Make LightmapGIData::_set_user_data a proper setter instead of an additive operation
– Fix crash when using VIEW_INDEX in shader with Vulkan mobile renderer
– RendererRD: Fix swizzle on depth formats
– OpenGL: Fix shader compilation failure with shadow_to_opacity and unshaded
– Fix LightmapGI shadow leaks
– Fix crash on custom shaders using VIEW_INDEX on Vulkan Clustered Forward Renderer
– macOS: Switch Angle to Metal backend
– Fix final blit in OpenGL when stereo rendering is used
– Vulkan Mobile: Fix crash from shader compilation with USE_RADIANCE_CUBEMAP_ARRAY
– Upgrade normal interpolators to FP32 to fix Adreno
– Change all interpolators to FP32 in mobile renderer
– Fix the VRS attachment being incorrectly added to color_attachments
– Fix bent normal maps not working with triplanar UVs
– Use raw buffer pointers in RenderingDevice allocation APIs to avoid intermediary arrays
– Check render target validity before getting motion vector texture in mobile renderer
– Forward+: Fix builtins in light shader
– SCons: Enable lightmapper and xatlas_unwrap modules on Android and iOS editors
– Revert “Use lower shadow normal bias for distant directional shadow splits”
– Fix GLES3 stereo output (sRGB + lens distortion)
– Fix baked VoxelGI using the wrong color space
– Always perform color correction and debanding on nonlinear sRGB values
– macOS: Selectively bake specific shader variants for MoltenVK
– Fix stencil preset priorities
– Fix stencil preset next_pass stencil flags
– Fix buffer size calculations in lightmapper_rd.cpp to account for element sizes
– Revert “FTI – Reduce VisualInstance3D xform notifications”
– Ensure sky orientation is set when reflection uses sky
– Fix a few improper memory accesses in the clustered forward vertex shader
– Vulkan Mobile: Fix writing vertex color in spatial shader
– Always send lights to sky shader if using sun scatter
– Fix RenderingServer::mesh_surface_get_lods()
– Fix VVL errors by changing frag_color to FP32 and dFdx/y
– Metal: Use image atomic operations on supported Apple hardware
– Fix opaque stencil rendering
– FTI: – Fix MultiMesh init and stable behaviour
– FTI: – Add reset on setting top_level
– Metal: Use correct environment variable to generate labels
– FTI: – Clear SceneTreeFTI completely on enabling / disabling
– Web: Restrict rendering method selection
– Fix surface_get_arrays returns wrong index array when using empty vertex array
– Fix underculling of occulusion culling
– Fix division by zero in clearcoat specular BRDF
– Fix crash when creating voxel GI data
– Metal: Remove invalid assumption for image atomic operations
– macOS: Selectively bake “no image atomics” shader variants
– Fix crash when editing some resources and reloading scene
– Add some multimesh null checks to avoid crash
– RenderingDevice: Add uniform_type check to avoid crash
– Never overwrite motion vectors in the transparent pass
– Fix lightmap dynamic objects with physical lights
– Fix debanding for Mobile rendering method with HDR 2D
– D3D12: Fix shader model check, initialization error handling
– Check for Vulkan Memory Model support and make it a variant
– Compute texture alignment for transfers using the LCM instead
– Don’t use GL_DEPTH_STENCIL_ATTACHMENT on depth buffer from WebXR
– Remove Adreno 3xx flip workaround
– Fix overflowing render priority for stencil mode outline and xray
– OpenGL: Fix crash at startup with “Thread Model” set to “Separate”
– Windows: Add Intel Gen9.5 (Kaby Lake) GPUs to Angle blocklist
– Metal: Ensure correct output texture format selection
– Fix mobile renderer motion vectors
– Fix material removal clearing all instances of shared texture arrays
– Fix MSDF outline size clamping
– Treat missing variants as normal cache misses during shader cache lookup
– Metal: Read gl_ViewIndex in tonemapper.glsl for multi-view subpasses
– Add debanding to SMAA and apply debanding before spatial upscalers
– Check renderer type when setting 3D upscaling mode
– Use vertex shader workaround for Mali GXX GPUs for glow shader
– Handle the case where VRS is a two byte per pixel format when creating default VRS texture
– Fix –generate-spirv-debug-info regression (alternate take)
– Metal: Reduce baked version to MSL 3.1; validate minimum version
– MSDF: Fix outline bleed out at small sizes
– Avoid attempting to load from shader cache when both the user-dir and res-dir are invalid
– Add GENERAL resource usage to the render graph and fix mutable texture initialization in D3D12
– Metal: Ensure baked Metal binaries can be loaded on the minimum target OS

Shaders:
– Expose built-in region information
– Re-organize UI in the shader editor
– Replace VMap used in VisualShader with HashMap and remove VMap
– Allow constants and expressions in hint_range
– Allow default case at the top of a switch scope in shaders
– Fix 2D instance params crashing using outside of main()
– Fix “unused varying” incorrect warning in shaders
– 2D: Fix light shader accessing TEXTURE_PIXEL_SIZE
– Fix missing alpha input for visual shaders
– Limit error messages in CodeTextEditor to 2 lines length
– Shader: Fix bvec to variant conversion
– Unify Scripts Panel naming for the script and shader editors
– Make shader editor menu position consistent with script editor
– Web: Optimize GL.getSource for known-length shader sources
– Remove duplicated entries from shader built-ins
– Fix shader compiler crash when parsing case labels with non-existent vars
– Vulkan Mobile: Fix reading builtins in light() of spatial shader
– Fix global shader texture uniform
– Prevent ternary expression with a sampler types in shaders
– Add missing input transform to visual shader preview
– Fix shader function overloads with incorrect order
– Fix shader editor auto-opens on startup
– Visual Shader State Persistence – Type Fixes
– Sort bent normal output at the bottom to prevent visual shader breakage
– Fix shader editor menu switch on hover for file button
– Improve shader overloaded function error reporting
– Make shader editor menu position consistent between shader languages

Tests:
– Add getter tests for dynamic fonts
– Add check for argument name validity
– Core: Add constexpr constructors/operators to math structs
– Fix SCRIPT ERROR/ERROR/WARNING on test output
– Remove build_array() and build_dictionary() from tests
– Add THREADS_ENABLED check before RID thread tests
– Test for insertion at array’s size
– Delete test cache before running it
– Fix tests that fail when alone
– Fix –test help option not showing in template builds
– Add unit tests for Sprite2D
– Don’t hard-code test path when deleting test data
– Fix infinite recursion on GDScriptTests if a script cannot be reloaded
– Fix Resource Duplication test errors
– Fix tests warning line break strictness project setting
– Fix unfiltered error output in tests

Thirdparty:
– embree: Update to 4.4.0
– libwebp: Update to 1.5.0
– clipper2: Update to 1.5.2
– Theora: Fix YUV422/444 to RGB conversion
– tinyexr: Update to 1.0.12
– Update to latest version of Swappy
– Update HarfBuzz to 10.4.0
– Update FreeType to 2.13.3
– ICU4C: Update to version 77.1
– libpng: Update to 1.6.47
– thorvg: Update to 0.15.11
– pcre2: Update to 10.45
– mbedTLS: Update to version 3.6.3
– thorvg: Update to 0.15.12
– ufbx: Update to 0.18.0
– Update HarfBuzz to 11.2.1
– basis_universal: Rediff patches, remove Windows encoding fix
– manifold: Update to 3.1.1
– Correct libjpeg-turbo patches
– Update qoa.h to latest git
– certs: Sync with upstream as of Apr 8 2025
– Update OpenXR to 1.1.47
– AccessKit: Update API to 0.16.0
– Update meshoptimizer to v0.23
– ufbx: Update to 0.18.2
– Fix unzSeekCurrentFile not resetting total_out_64
– thorvg: Update to 0.15.13
– clipper2: Update to 1.5.3
– libpng: Update to 1.6.48 (+ cleanup thirdparty docs)
– doctest: Update to 2.4.12
– openxr: Update to 1.1.48
– msdfgen: Update to 1.12.1
– miniupnpc: Update to 2.3.3
– libktx: Update to 4.4.0
– libtheora: Update to 1.2.0
– clipper2: Update to 1.5.4
– OpenXR: Update to 1.1.49
– ufbx: Update to 0.20.0
– Sync controller mappings DB with SDL community repo
– Fix SDL threading on macOS/Linux
– Specify Apache license version for Grisu2
– Update manifold to upstream commit 76208dc
– Fix ICU support data loading
– harfbuzz: Update to 11.3.2
– Update access-kit to 0.17.0
– Add two missing SDL patches to the README.md
– TVG: Use heap for XML parser allocs

XR:
– Implement XR_EXT_performance_settings OpenXR extension
– Add support for the OpenXR futures extension
– Implement OpenXR FB swapchain update extensions
– OpenXR: Expose more system info from XrSystemProperties
– OpenXR: Add controller interaction profile for Pico 4 Ultra
– Allow to compile the engine without XR support
– OpenXR: Support alternative reference spaces from extensions
– Fix build errors when building with disable_xr=yes
– Add support for running hybrid apps from the XR editor
– OpenXR: Fix OpenGL version warning when using GLES
– OpenXR: Clean-up OpenXRExtensionWrapper by removing multiple inheritance and deprecating OpenXRExtensionWrapperExtension
– Add support for Direct3D 12 OpenXR backend
– Deactivate the CameraServer by default
– Correct occlusion culling viewport location calculation when projection uses asymmetric FOV
– Editor: Replace TextEdit with EditorSpinSlider for XR Action Set Priority
– Add tooltips to OpenXR Action Map UI
– Enable composition layer fallback in panel mode
– Avoid doctools attempting to query the CameraServer to infer a default value for camera_is_active
– Ensure the composition layer is registered when the layer viewport is updated
– macOS: Allow users to select Continuity Camera
– Automatically activate camera monitoring when using CameraTexture
– Fix OpenXR Action Map GUI not scaling according to Editor Scale
– Add singleton check before adding webxr interface
– OpenXR: Request the XR_KHR_loader_init extension
– OpenXR: Fix saving action map when UID is used in project settings
– OpenXR: Fix building foveation extension without Vulkan
– OpenXR: Fix building with Wayland support and opengl3=no
– Fix camera feed device order on Linux
– Enable game window close button on PicoOS
– Enable XR play mode options in the regular editor
– Add CameraFeed support for Android
– Physics Interpolation – Fix XR Nodes to work with SceneTreeFTI
– OpenXR Futures: Add return value support
– Fix the CAMERA permission request on HorizonOS devices
– Add new joints to XrBodyTracker
– WebXR: Better errors when WebXR Layers or multiview are unavailable
– OpenXR: Add support for render models extension
– OpenXR: Only run xrSyncActions when application has focus
– Rename OpenXRInterface.OpenXrSessionState to OpenXRInterface.SessionState
– Adjust names of new XRBodyTracker joints
– FTI: – Change SceneTree global setting to static
– Add CameraServer feeds_updated signal, and document async behavior
– Add missing OpenXR paths to /user/vive_tracker_htcx
– Fix error spam when hands are not tracked
– Fix camera removal detection after toggling monitoring on Linux
– Misc XR editor updates
– OpenXR: Work around bug with Meta runtime on 1.0.49
– Update the OpenXR Vendors plugin for the XR editor to the latest stable version
– OpenXR: Fix required extension tooltip
– OpenXR: Use GLTFDocument function to get supported extension names
– Fix missing layer provider setup when setting Surface after visibility
– OpenXR: Fix default action map entry for Vive Focus 3

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top