220 KiB
220 KiB
Changelog
This file lists all changes made between the current feature branch and the previous feature release. It is equivalent to the listings on our interactive changelog.
Changelogs for earlier feature releases are available in their respective Git branches, and linked at the end of this file.
4.2.1 - 2023-12-12
2D
- Fix UV editor not using texture transform (GH-84076).
- Fix generating terrain icon with certain image formats (GH-84507).
- Keep scene tiles even if the TileMap is invisible (GH-85753).
- Fix TileMap occluders (GH-85893).
3D
- Only allow MeshInstance3D-inherited nodes in MultiMesh Populate Surface dialog (GH-84933).
Animation
- Fix imported track flag on sliced animations (GH-85061).
- Prevent a crash when calling
AnimationMixer::restore
with an invalid resource (GH-85428). - Fix AnimationPlayer seeking for Discrete keys (GH-85569).
- Fix Tween loop initial value (GH-85681).
Audio
- Fix importing WAV files with odd chunk sizes (GH-85556).
Buildsystem
- Use Python venv if detected when building VS project (GH-84593).
- Fix the Web platform team's codeowners link (GH-85746).
- Fix invalid Python escape sequences (GH-85818).
Core
- Set language encoding flag when using
ZIPPacker
(GH-78732). - Fix crash when hashing empty
CharString
(GH-85389). - Prevent infinite recursion when printing errors (GH-85397).
- Fix property groups overriding real properties (GH-85486).
- Do not reload resources and send notification if locale is not changed (GH-85787).
Documentation
- Improve and clarify texture filtering documentation (GH-83907).
- Fix documentation for
icon_and_font_color
editor setting (GH-85491). - Improve documentation for
CameraAttributesPhysical.exposure_shutter_speed
(GH-85599). - Fix missing heading in translated online class reference (GH-85877).
Editor
- Remove exp hint of a few properties (GH-80326).
- Fix UV editor not showing polygon correctly (GH-84116).
- Inspector: Fix clearing array/dictionary element with
<Object#null>
(GH-84237). - Allow dragging editable children (GH-84310).
- Fix errors on file rename or move in the Filesystem Dock (GH-84520).
- Fix issue with 3D scene drag and drop preview node (GH-85087).
- Fix SnapGrid is almost invisible in light theme (GH-85585).
- Fix theme application in various editor dialogs (GH-85745).
Export
- Fix order of operations for macOS template check (GH-84990).
- iOS: Use
mdfind
to check if Xcode is installed in one-click deploy code (GH-85774).
GDExtension
- Fix updating cached singletons when reloading GDScripts (GH-85373).
- Fix crash when using incompatible versions of Godot Jolt (GH-85779).
GDScript
- Improve autocompletion with
get_node
(GH-79386). - Filter groups and categories from autocompletion (GH-85196).
GUI
- Enable scrolling of output with UI scale changes (GH-82079).
- VideoPlayer: Fix reloading translation remapped stream (GH-84794).
- Restored Control properties when you undo a parenting of a Control to a Container (GH-85181).
- Make sure
Window
's title is respected before we compute the size (GH-85312). - RTL: Fix CharFX character offset calculation (GH-85363).
- Limit window size updates on title change (GH-85542).
- Fix size and visuals of the
InputEventConfigurationDialog
(GH-85790). - Limit window size updates on title translation change (GH-85828).
Import
- Fix memory leak on error paths in tinyexr loader (GH-85002).
- Fix memory corruption and assert failures in convex decomposition (GH-85631).
Input
- X11: Send IME update notification deferred (GH-85306).
- Fix IME key event being erased in macOS (GH-85458).
- Fix SubViewport physics picking (GH-85665).
Navigation
- Fix missing NavigationLink property updates in constructor (GH-83802).
- Fix missing NavigationRegion property updates in constructor (GH-83812).
- Fix missing NavigationAgent property updates in constructor (GH-83814).
- Fix missing NavigationObstacle property updates in constructor (GH-83816).
- Fix memory leak in 'NavigationServer3D' involving static obstacles (GH-84816).
- Fix NavigationRegion2D transform update (GH-85258).
Particles
- Only allow MeshInstance3D-based nodes in particles emission shape node selector (GH-84891).
Plugin
- Correctly check scripts that must inherit
EditorPlugin
(GH-85271).
Porting
- Do not consume mouse messages in windows with
no_focus
on Windows OS (GH-85484). - Set what were default values for Web platform linker flags
-sSTACK_SIZE
and-sDEFAULT_PTHREAD_STACK_SIZE
(GH-86036).
Rendering
- Fix buffer updates going to the wrong cmd buffer if barriers were 0 (GH-83736).
- Fix bad parameter for
rendering_method
crashes Godot (GH-84241). - Add
shadows_disabled
macro in Compatibility renderer (GH-84416). - Vulkan: Fix incorrect access to the buffers on Android (GH-84852).
- Use vertex input mask for creating vertex arrays (GH-85092).
- Fix typo in BaseMaterial3D conversion from 3.x SpatialMaterial (GH-85269).
- Set ReflectionProbe frame before mapping id in mobile renderer (GH-85635).
- Add a descriptive error message when creating a mesh surface from the wrong array type (GH-85646).
- GLES3: Skip batches with zero instance count while rendering canvas (GH-85778).
- macOS: Switch ANGLE backend to ANGLE over OpenGL, switch default compatibility renderer back to native (GH-85785).
- Ensure that 2D meshes use a proper input mask (GH-85972).
Shaders
- Automatically ensure correct normals in Compatibility renderer (GH-82804).
- Comment the shader template light function by default (GH-84594).
XR
- Remove unused grip touch action from default OpenXR action map (GH-85048).
4.2 - 2023-11-30
2D
- Greatly improve Y-sort performance on TileMaps (GH-73813).
- Add separate editor plugin for TileMap and TileSet (GH-74717).
- Cleanup tiles outside the texture (GH-77986).
- Move TileMap layers to their own class (GH-78328).
- Add option to swap default Alt+scroll zooming behavior in 2D editor (GH-78451).
- Add white rect to TileMap selection tool (GH-78519).
- Improve string drawing in the tiledata editor (GH-78522).
- Make sure the shortcut key respects the context in
TileSetAtlasSourceEditor
(GH-78920). - Fix
Camera2D.rotating
not being converted and reversed properly (GH-79264). - Streamline creating tile atlas sources (GH-79285).
- Rework modifying tile source ID (GH-79419).
- Allow using floating-point bone sizes and outline widths in the 2D editor (GH-79434).
- Add option to expand tile polygon editors (GH-79512).
- Add
is_conformal
method to Basis and Transform2D (GH-79523). - Improve message when no tile is selected to edit (GH-79562).
- Fix crash when deleting tileset terrains (GH-79618).
- Fix Camera2D crash when edited scene root is null (GH-79645).
- Auto create tile for multiple atlases (GH-79678).
- Fix
CanvasModulate
logic for modulating the canvas (GH-79747). - Fix
get_cursor_shape()
in tile atlas editor (GH-79837). - Fix crash when executing
TileMap.fix_invalid_tiles
(GH-79851). - Improve atlas tile size dragging (GH-79899).
- Add help label about creating multiple/big tiles (GH-79904).
- Properly clear scene tiles (GH-79941).
- Edit TileSet source on double click (GH-80037).
- Fix "a number is required" error when printing RID (GH-80122).
- Ignore null "id" in tile source proxy (GH-80135).
- Add per-tile flipping and transposing (GH-80144).
- Fix multiple usability issues in the texture region editor (GH-80435).
- Fix TileSet with TileMap handling (GH-80462).
- Fix TileSet not disappearing on deselecting TileMap (GH-80529).
- TileMap: Check for possible scenes to be erased (GH-80658).
- Pass missing arguments to
TileMap::get_used_cells_by_id
(GH-80729). - Improve scene tiles workflow (GH-80754).
- Simplify making texture nodes in 2D editor (GH-80771).
- Add
px
suffix for TileSetseparation
property (GH-80934). - Convert TileSet Atlas Merge input images to RGBA8 to match output, if needed (GH-80943).
- Call
add_child
afterset_rect
to fix size bug (GH-80968). - Added checks to remove meta arrays when creating and undoing guides (GH-81011).
- Improve TileMap performances by using quadrants only for rendering (GH-81070).
- Allow configuring primary line X/Ys separately (GH-81255).
- Fix
TileMap::get_used_rect
incorrectly handling empty layers (GH-81423). - Fix rotated 2D movement gizmo (GH-81735).
- Incorporate min and max zoom limits into the EditorZoomWidget (GH-81812).
- Fix TileMap editor so that pressing control deselects cells correctly (GH-81925).
- Don't allow transforming scene tiles (GH-81971).
- Fix animated tile time-slice calculation accumulating float errors (GH-82360).
- Fix transform calculations for drag-moving CanvasItems in editor (GH-82667).
- Prioritize points in polygon editor hover (GH-82853).
- Fixes undo/redo in tileset polygon editor (GH-83093).
- Warn users when TileMap is set as Y-sorted but no layer is (GH-83144).
- Fix tilemap live editing while game is running (GH-83146).
- Update
TileMap
layer draw index when it's dirty (GH-83151). - Swap TileMap and TileSet buttons (GH-83244).
- Allow disabling the built-in tilemap navigation (GH-83273).
- Fix cannot update remote after disabling
use_global_coordinates
inRemoteTransform2D
(GH-83323). - Fix screen center position returned for rotated Camera2D (GH-83427).
- Fix bug where TileMap wouldn't update material correctly on assignment (GH-83475).
- Allow normal maps on TileMaps that use texture padding (GH-83489).
- Fix Polygon2D undo on transforming vertices (GH-83659).
- Fix TileSet painting options appear out of screen (GH-83790).
- Fix normals in TileSet when using CanvasTextures (GH-83887).
- Fix TileMap layer reverts and defaults (GH-83888).
- Fix
get_used_rect
,get_used_cells
andget_used_cells_by_id
in TileMap after a call toclear()
(GH-83890). - Fix Y-sort origin not working when set in TileMap runtime updates (GH-84004).
- Fix 2D bone weight editor not accounting for offset (GH-84070).
- Prevent crash and error spam related to Sprite2D with a region (GH-84361).
- TileMap: Fix compatibility code for old
cell_quadrant_size
property name (GH-85463).
3D
- Re-add a Camera3D icon gizmo to the 3D editor (GH-53104).
- Implement numeric blender-style transforms (GH-58389).
- Wrap mouse for blender-style transforms (GH-59467).
- Improve editing of box collision shapes (GH-71092).
- Show visual-oriented 3D node gizmos only when selected (GH-75303).
- Fix Camera3D
project_*
methods not accounting for frustum offset (GH-75806). - Avoid reimporting lightmap textures every getter call (GH-77788).
- Fix 3D viewport grid disappearing on scene tab changes (GH-78694).
- Fix VoxelGI saving VoxelGIData as a built-in file, despite being prompted to save it to an external file (GH-78772).
- Expose
compute_convex_mesh_points
function to GDScript (GH-78871). - Change property hint range for camera attributes exposure multiplier (GH-79138).
- Make CSGShape follow curve's tilt in Path mode (GH-79355).
- Convert some Callables to
callable_mp()
(GH-79373). - Initialize View Frame Time estimates to match 120 FPS (GH-80124).
- Add helper for 3D gizmos and unify box (GH-80278).
- Add handles to control Curve3D tilt (GH-80329).
- Allow setting values greater than the maximum in TorusMesh inspector (GH-80441).
- Add
global_basis
property toNode3D
(GH-80512). - Cleanup MeshLibrary changed signals (GH-80782).
- Improve Path3D gizmo usability (GH-80802).
- GridMap: Ensure the visibility is updated when entering the tree (GH-81106).
- Fix some keys triggering their actions twice in GridMap (GH-81531).
- Add 3D editor gizmo icons for Decal, LightmapProbe and FogVolume (GH-81554).
- Fix local 3D translation editing (GH-81609).
- Fix Curve3D baking up vectors for nontrivial curves (GH-81885).
- Update mesh list UI immediately after setting mesh library in gridmap (GH-81914).
- Optimize and tweak some SVGs, improve consistency between icons, and fix broken masks in light mode (GH-82133).
- Fix grid snapping for box shape gizmos (GH-82381).
- Make 3D editor gizmos and debug shapes ignore fog (GH-82413).
- Tweak Camera3D
size
property hint to make dragging more useful (GH-82604). - Make gizmo plugin handle
SpriteBase3D
instead ofSprite3D
(GH-82901). - Enable UV2 on primitive meshes when using the MeshInstance3D context menu (GH-82937).
- Add an editor tool to automatically upgrade and re-save meshes (GH-83613).
- Fix some
Node3DEditor
snapping issues (GH-84049). - Fix PlaneMesh tangents for 'Face X' orientation (GH-84097).
- Hide CSGShape's
debug_collision_shape
when it is invisible (GH-84174).
Animation
- Skip keyframe creation dialog when holding Shift in the animation editor (GH-54524).
- Allow changing imported AnimationLibrary names in AnimationPlayer in the editor (GH-67965).
- Add animation playback preview to scene import settings (GH-76367).
- Additional cleanup of bone editors (GH-77096).
- Add
TileSetAtlasSource::TileAnimationMode
options and allow to shuffle tile animations (GH-77257). - Include animation frames in tile atlas merge (GH-77316).
- Fix infinite loop state check in
AnimationStateMachine
(GH-79141). - Add 3.x compatibility for animation loop mode (GH-79155).
- Fix
Animation::subtract_variant
for affine transforms (GH-79279). - Fix
AnimationNodeTransition
with negative time scale (GH-79403). - Fix
tween_property
onBasis
to properly update its value (GH-79426). - Fix the error when clicking AnimationTree in the editor (GH-79588).
- Make
AnimationNodeBlendTree
useRBMap
insteadHashMap
(GH-79595). - Fix rename animation in SpriteFramesEditor (GH-79600).
- SpriteFrames Editor: Fix FPS applied to two animations when switching animation (GH-79692).
- Make animation name list scroll to new animation in
SpriteEditor
(GH-79743). - SpriteFrames Editor: Fix Frame Duration applied to wrong frame when switching frame (GH-79872).
- Improve and clarify paused Tweens (GH-79879).
- Avoid emitting signals if the animation is not ready to be processed (GH-80367).
- Fix initial value with delay in PropertyTweener (GH-80702).
- Ensure methods skipped by
AnimationPlayer::seek
are not called (GH-80708). - Implement
AnimationMixer
as a base class ofAnimationPlayer
andAnimationTree
(GH-80813). - Revive onion skinning (GH-80939).
- Prevent errors if Tween callback's object is freed (GH-81127).
- Select node when clicked in AnimationPlayer timeline (GH-81188).
- Fix incorrect cast when animating
int
(GH-81296). - Fix animation keyframes being skipped when played backwards (GH-81452).
- Check if property exists before tweening (GH-81525).
- Ignore method track when drawing line between keys (GH-81563).
- Hide animation toolbar above the viewport correctly when switching scenes (GH-81606).
- Defer updating the animations Tree in SpriteFramesEditor to avoid crashes (GH-81643).
- SceneTreeDock: Remove animation tracks with correct indices (GH-81651).
- Fix BoneAttachment3D signal connection (GH-81695).
- Fix crash when clicking on "Interpolation Mode" with nonexistent node path (GH-81779).
- Improve retarget auto-mapping algorithm (GH-81843).
- Fix theme access and improve UX in AnimationTree editor (GH-82210).
- Fix
SkeletonIK3D
editor preview when changing active node (GH-82391). - Reimport bone attachment fixes (GH-82471).
- Fix "Some nodes are referenced by animation tracks" when deleting instance (GH-82486).
- Fix GroupedStateMachine reset (GH-82563).
- Fix crash when deleting the player in
AnimationPlayerEditorPlugin
(GH-82573). - Limit animation audio clip inspector offset sliders to clip length (GH-82627).
- Tweak AnimationPlayer speed scale property hint to make dragging more useful (GH-82641).
- Fix
AnimationPlayer::play()
process unwanted start between the same animations (GH-82898). - AnimationMixer: Fix non-numeric misc type (
Resource
,Dictionary
& etc.) values cannot be blended withUpdateMode.UPDATE_CONTINUOUS
(GH-83030). - Move animation slice processing to
_post_fix_animations
(GH-83036). - Set new SkeletonRestFixer tracks as imported (GH-83076).
- Fix editor crash when re-importing GLTF while animation is playing (GH-83104).
- Show AnimationMixer warning for non-numeric types only when relevant (GH-83417).
- Fix onion skinning internals activating audio/method/animation tracks (GH-83430).
- Remove AnimationMixer bindings only bound in the editor (GH-83440).
- Re-add close button for nodes in
AnimationNodeBlendTree
editor (GH-83507). - Automatic reconnection of nodes in blend tree (GH-83534).
- Add vertical scrolling to bézier track editor (GH-83776).
- Ensure AnimationPlayer evaluate animations when autoplay is enabled and node becomes ready (GH-83781).
- Fix animation track paths updated by scene dock (GH-83934).
- Unpress buttons in AnimationTree when switching to read-only mode (GH-84052).
- Fix invalid return from some more
_get/_set
(GH-84060). - Add descriptive warning for animation track hint fails (GH-84129).
- Fix AnimationTimeline time not updating when dragged (GH-84170).
- Avoid popping up dialogs excessively in the Animation editor (GH-84208).
- Fix perform_node_renames handling of AnimationMixers track paths (GH-84282).
- Unexpose internal data property of
AnimationLibrary
(GH-84376). - Add
PackedArray
to the list of enforcingDiscrete
forAnimationMixer
(GH-84390). - Fix RESET not effective when saving inactive scene (GH-84405).
- Change AnimationLibEditor's mixer to actual Mixer (GH-84551).
- Remove AnimatedSprite pointer when clearing editor (GH-84625).
- Rework blending method in
Variant
animation forInt
/Array
/String
(GH-84815). - Fix ValueTrack with Resource is leaking (GH-84942).
- Fix seeking bug in AnimationPlayerEditor (GH-85193).
- Clear seeked/started flag after seeking/advancing in AnimationPlayer (GH-85221).
- Bind
_reset
/_restore
in AnimationMixer (GH-85254). - Fix TrackCache memory crash (GH-85266).
- Perform safe copies in
AnimatedValuesBackup::get_cache_copy()
(GH-85302). - Fix a crash when trying to restore uncopyable animation tracks (GH-85308).
- Check the seeking if it is processed immediately after playback as a special case (GH-85366).
- Make AnimationPlaybackTrack keep state when stopping (GH-85411).
- AnimationMixer: Validate ObjectID before blend in case the object was freed (GH-85461).
Assetlib
- Fix long plugin names breaking the UI (GH-80555).
- Improve handling of archives when installing assets (GH-81358).
- Allow to specify target folder when installing assets (GH-81620).
Audio
- PulseAudio: Remove
get_latency()
caching (GH-45152). - Context aware MIDI event printing (GH-68820).
- Add build option to enable MP1 and MP2 support in minimp3 (GH-72729).
- Add a
--audio-output-latency
command-line argument (GH-78013). - Implement loading OGG files from buffer and file path (GH-78084).
- Simpler default values for AudioStreamRandomizer (GH-80171).
- Fix OGG audio loop offset pop (GH-80452).
- Add project settings for AVAudioSessionCategory on iOS (GH-81196).
- Remove some dead declarations in
audio_stream_player.h
(GH-81485). - Fix audio stream generators getting freed accidentally (GH-81508).
- Add a
bus_renamed
AudioServer signal (GH-81641). - Only warn once about OGG seeking issues (GH-81704).
- Tweak property order in the inspector for AudioStreamRandomizer (GH-82411).
- Fix
AudioStreamRandomizer.random_volume_offset_db
not working (GH-82478). - Fix pausing stream on entering tree (GH-83779).
- Fix OGG Vorbis infinite error spam with corrupt file (GH-84723).
Buildsystem
- SCons: Add
object_prefix
option (GH-62652). - Allow unbundling OpenXR (for Linux distros) (GH-73443).
- Add a Linux ThreadSanitizer job to CI (GH-73777).
- libpng: Enable intrinsics on x86/SSE2, ppc64/VSX, and all arm/NEON (GH-78325).
- Add static check for overzealous .gitignores and fix an example of such (GH-78908).
- SCons : Add
scu_limit
argument (GH-78959). - Linux: Fix build with
use_sowrap=no
and various warnings/errors (GH-79097). - Linux: Allow unbundling brotli to use system library (GH-79101).
- Linux: Link libsquish directly when unbundling, .pc file unreliable (GH-79105).
- Fix build options configuration for Visual Studio projects (GH-79238).
- CI: Allow skipping our GHA workflows with
DISABLE_GODOT_CI
variable (GH-79321). - Fix
doc_status.py
trying to get removedversion
tag from XML (GH-79406). - Have
core_bind.h
Thread type syntax matchcore_bind.cpp
(GH-79466). - Web: Use
fvisibility=hidden
for side module whendlink_enabled
(GH-79578). - Header formatting commits to
.git-blame-ignore-revs
(GH-79615). - Fix gcc builds failing on Windows (GH-79724).
- Windows: Try using objcopy and strip with prefix and without prefix (GH-79871).
- CI: Extract godot-cpp testing into its own job (GH-80091).
- CI: Free disk space on Linux runners (GH-80115).
- CI: Compare API compatibility against both 4.0 and 4.1 (GH-80354).
- Suppress NavigationServer race conditions (GH-80392).
- Fix API validation script on macOS (GH-80471).
- SCons: Disable misbehaving MSVC incremental linking (GH-80482).
- SCons: Carry over the
windows_subsystem
setting to the generated vsproj (GH-80547). - SCons: Disable C++ exception handling (GH-80612).
- Fix GCC
-Wmaybe-uninitialized
warnings (GH-80615). - SCons: Enable
/WX
on LINKFLAGS for MSVC withwerror=yes
(GH-80711). - SCons: Make ktx module require basis_universal (GH-80789).
- Windows: Add main executable to the console wrapper dependencies to prevent simultaneous linking (GH-80918).
- Assign extension validation files to the GDExtension and .NET teams in CODEOWNERS (GH-81116).
- Remove too greedy gcov/lcov ignores from
.gitignore
(GH-81120). - SCons: Add option for MSVC incremental linking (GH-81144).
- CI: Bump version for
actions/checkout@v4
andactions/setup-dotnet@v3
(GH-81302). - CI: Compat checks: Make fetching the reference API more robust (GH-81337).
- Web: Workaround Emscripten 3.1.42+ LTO regression (GH-81340).
- UWP: Remove platform port, needs to be redone from scratch for 4.x (GH-81416).
- Haiku: Remove remnants of past WIP platform port (GH-81420).
- Web: Fix version check for missing scalbnf LTO workaround (GH-81869).
- macOS: Workaround Xcode 15 linker bug (GH-81968).
- SCons: Fix Python 3.12 SyntaxError with regex escape sequences (GH-82290).
- Windows: Remove
MSVC
define redundant with_MSC_VER
(GH-82304). - Updated compiler version detection (GH-82325).
- Fix compiler detection (GH-82352).
- Fix build on MSVC 2017 (GH-82450).
- iOS: Fix build with Xcode 15 (GH-82458).
- Web: Fix
dlink_enabled
build (GH-82633). - SCons: Change
check_c_headers
from tuple array to dictionary (GH-82638). - Validate
code
tags for class and member references (GH-82691). - Fix building without GDScript (GH-82985).
- CI: Switch mesa PPA from kisak-mesa to turtle (GH-83147).
- CI: Workaround recently broken add-apt-repository on GHA (GH-83214).
- X11: Fix unused variables warning when
touch
is disabled (GH-83265). - Bump the java version to version 17 (GH-83515).
- SCons: Use CXXFLAGS to disable exceptions, it's only for C++ (GH-83618).
- Web: Fix closure compiler builds using BIGINT (GH-83720).
- SCons: Reduce and cleanup verbose output for SCU builds (GH-83996).
- Use colored output on CI for Doctest (GH-84100).
- Linux: Remove hardcoded lib path for x86 cross-compilation (GH-84307).
- Replace the use of the
ANDROID_SDK_ROOT
env variable withANDROID_HOME
(GH-84316). - CI: Pin Emscripten to 3.1.39 (GH-84717).
- Donors: Change tiers to match Dev Fund, sync latest data (GH-84884).
- makerst: Disallow user-contributed notes on the class index page (GH-85006).
- Use mingw-std-threads in MinGW builds (GH-85039).
- Avoid conflict between mingw-std-threads and Clang's own (GH-85208).
- Fix generating vsproj with SCons 4.6.0+ (GH-85357).
- Add unsigned char cast ifdef (GH-85500).
C#
- Allow readonly and writeonly C# properties to be accessed from GDScript (GH-67304).
- Support exporting for Android (GH-73257).
- Fix crash with
DisposablesTracker_OnGodotShuttingDown
(GH-78157). - Add
PropertyHint.Enum
support toArray<StringName>
(GH-78264). - Check if JetBrains Rider editor path is empty (GH-78516).
- Automatically generate version defines (GH-78722).
- Update the RiderPathLocator to support the JetBrains Toolbox 2.0 (GH-78832).
- Add platform name to the exported data directory (GH-78846).
- Fix deserialization of delegates that are 0-parameter overloads (GH-78877).
- Add a Roslyn analyzer for global classes (GH-79007).
- Add missing
useModelFront
parameter to GodotSharp Basis and Transform (GH-79082). - Compare symbol names without null flow state (GH-79094).
- Add null check before calling
UnregisterGodotObject
(GH-79151). - Fix command line exporting (GH-79173).
- Add a warning about C# differences to the class reference (GH-79206).
- Document generated members (GH-79239).
- Print error when MethodBind/Callable call fails (GH-79249).
- Improve
GD.PushError
andGD.PushWarning
(GH-79280). - Fix MSVC dotnet builds failing if running
dev_mode
(GH-79351). - Move build button to EditorRunBar (GH-79357).
- Fix line in OpenInExternalEditor (GH-79404).
- Generate instance types for singletons (GH-79470).
- Suppress NU5128 warning (GH-79501).
- Fix issues in C# documentation comments (GH-79748).
- Delegate opening files for Rider to the RiderPathLocator NuGet package (GH-79958).
- Mono: Avoid dictionary lookup for common colors (GH-80047).
- Show alert if .NET assemblies dir does not exist (GH-80212).
- Redesign MSBuild panel (GH-80260).
- Fix typo in parameter name in documentation (GH-80303).
- Improve diagnostic messages and add help link (GH-80489).
- Fix exporting for Android (GH-80521).
- Generate and use compat methods (GH-80527).
- Implement
proxy_name
for EnumInterface (GH-80628). - Include argument types in generated methods (GH-80629).
- paramref now properly tagged in documentation (GH-80630).
- Fixed delegate docstring logic (GH-80631).
- Dereference editor types in core documentation (GH-80632).
- CI: Propagate error code when glue generation fails (GH-80846).
- Updated C# example of AddPropertyInfo (GH-80851).
- Replace
StringNameCache
withSNAME
(GH-81073). - Add abstract class support (GH-81101).
- Replace usage of deprecated
project_settings_changed
signal (GH-81175). - Fix int's C# documentation (GH-81227).
- Expose
asinh
,acosh
andatanh
in Mathf (GH-81229). - Fix double unregistration on dispose of Array (GH-81230).
- Hide hostfxr not found error (GH-81690).
- Move
bindings_generator
warnings to.editorconfig
(GH-81703). - Make C# static methods accessible (GH-81783).
- Fixed VS 2022 Mac compatibility (GH-81802).
- Add Vector2/3/4i.MAX and MIN (GH-81819).
- Implemented
{project}
placeholder for external dotnet editor (GH-81847). - CS1591 from
NoWarn
tosuggestion
(GH-81934). - Use
HashCode.Combine()
for basic composite types instead of xor (GH-82240). - Remove compat method that is now generated (GH-82375).
- Fixed an error in
Vector3.BezierDerivative
in mono module (GH-82664). - Fix C# editor dialogs (GH-82683).
- Add C# iOS support (GH-82729).
- Add C# compat members for 4.2 changes (GH-82740).
- Add checks to Android export (GH-82762).
- Report diagnostic for Node exports in a type that doesn't derive from Node (GH-82918).
- Fix unresolved
inheritdoc
links inCompat.cs
(GH-83001). - Untyped to typed
ArgumentNullException
(GH-83051). - Fix MSVC dotnet
dev_mode
regression (GH-83114). - Fix lookup for singleton instance types (GH-83249).
- Fallback to the latest SDK (GH-83325).
- Fix converting default Callables to native (GH-83357).
- Allow exporting games without C# (GH-83422).
- Clarify C# docs for operators performing
xform_inv
(GH-83514). - Fix C# docs to use the proper XML (GH-83529).
- Fix generated nested class order (GH-83532).
- Add
NOTIFICATION_PREDELETE_CLEANUP
notification to fix C#Dispose()
(GH-83670). - Free dialogs when exiting the editor (GH-83809).
- Fix node names of submenu items across the editor (GH-84617).
- Rename
Vector2/3/4I.Min/Max
toMinValue/MaxValue
(GH-84663). - Fail
callp
silently if script is not valid (GH-84897). - iOS: Fix dotnet export (GH-84945).
Codestyle
- Made hidden ProjectSettings groups more explicit (GH-61818).
- Extract StyleBoxFlat, StyleBoxTexture and StyleBoxLine in their own file (GH-68396).
- Extract and reorganize texture resource classes (GH-68460).
- Add command-line option to run a
MainLoop
by its global class name (GH-78045). - Remove unnecessary value assignments throughout the codebase (GH-78538).
- Remove uses of
vformat()
with no placeholders (GH-78797). - Unify and streamline connecting to Resource changes (GH-78993).
- Remove unused struct from NavigationMesh (GH-79713).
- Update NavObstacle creation to new Mutex style (GH-79916).
- Use compile-time Unicode string conversion (GH-80362).
- Undefine
typed_array.h
templates after use (GH-80792). - Remove debug print (GH-81129).
- Extract
ScriptInstance
into its own file to simplify includes (GH-81388). - Don't use auto where not warranted (GH-81414).
- Core: Replace
ERR_FAIL_COND
withERR_FAIL_NULL
where applicable (GH-81487). - [Scene,Main] Replace
ERR_FAIL_COND
withERR_FAIL_NULL
where applicable (GH-81568). - [Drivers,Platform] Replace
ERR_FAIL_COND
withERR_FAIL_NULL
where applicable (GH-81583). - Editor: Replace
ERR_FAIL_COND
withERR_FAIL_NULL
where applicable (GH-81705). - Modules: Replace
ERR_FAIL_COND
withERR_FAIL_NULL
where applicable (GH-81760). - Fix typo in
heuristic_euclidian
helper in AStarGrid2D (GH-82297). - Servers: Replace
ERR_FAIL_COND
withERR_FAIL_NULL
where applicable (GH-82313). - Fix some typos in source (GH-82779).
- Replace
sanity
withsafety
for checks (GH-83002). - Replace
ERR_FAIL_COND
withERR_FAIL_NULL
where applicable (GH-83003). - Fix incorrect null check (GH-83068).
- Clean up some Editor, OpenXR, VideoStream code (GH-83683).
- Solve race condition between AThousandShips and Akien (GH-83740).
- Don't use TTR/RTR for ERR/WARN prints (GH-84774).
Core
- Check parameter validity in
Object::set_script
(GH-46125). - Add
settings_changed
signal to ProjectSettings (GH-62038). - Fix the behavior of the resource property of the sub-scene root node on instantiation (GH-65011).
- Disallow invalid escape sequences in
JSON.parse
(GH-66170). - Reimplement Resource.
_setup_local_to_scene
& deprecate signal (GH-67080). - Deprecate
Resource.setup_local_to_scene
(GH-67082). - Fix crash when saving resources with circular references (GH-68281).
- Add
type_string()
utility (GH-69624). - Add a type conversion method to Variant Utility and expose to scripting (GH-70080).
- Ensure
MainLoop
and its custom script is set right after it's resolved (GH-70771). - Ensure that SceneTree is initialized and finalized at correct time (GH-72248).
- Avoid sorting CallableCustomMethodPointers by their actual address values (GH-72346).
- Remove unused
threaded_array_processor.h
(GH-74012). - Expose and document
Image.get_mipmap_count()
(GH-74142). - Fix
Image.convert()
overwriting custom mipmaps (GH-74238). - Support numeric/binary hash comparison for floats derived from Variants (as well as existing semantic comparison) (GH-74588).
- Expose
_validate_property()
for scripting (GH-75778). - Add function
ZIPReader::file_exists
(GH-76860). - Add
Node.get_tree_string
andNode.get_tree_string_pretty
(GH-77072). - Add a
--max-fps
command-line argument to set a FPS limit (GH-78012). - Make a header for VariantUtilityFunctions (GH-78108).
- Added
Image::load_svg_from_(buffer|string)
(GH-78248). - Add inverse hyperbolic functions
asinh()
,acosh()
&atanh()
(GH-78404). - Add
String.reverse
method (GH-78529). - Refactor CallQueue flushing for clarity (GH-78612).
- Fix
Object::notification
order (GH-78634). - Allow renaming child nodes in
_ready
(GH-78706). - Support loading of translations on threads (GH-78747).
- Fix zero-sized WorkerThreadPool not processing group tasks (GH-78845).
- Fix
Node::add_sibling
parent check (GH-78847). - Fix error when non-ASCII characters in resource pack path (GH-78935).
- Reimplement scene change (GH-78988).
- Improve error message for
Node.set_owner
(GH-79000). - Fix range error for
Array.slice
(GH-79103). - TextServer: Remove excessive Dictionary checks (GH-79166).
- Fix erroneous
pad_zeros()
warning (GH-79202). - Fix
PackedScene::get_last_modified_time()
always returns0
(GH-79237). - Add vararg
call()
method to C++ Callable (GH-79341). - Fix byte to float color conversion in
DisplayServerWindows::screen_get_pixel
(GH-79350). - Fix recursion level check for array stringification (GH-79370).
- Fix script name of Hant and Hans (GH-79654).
- Mention expected resource type in ResourceLoader load error (GH-79737).
- Add determinant check for minimized windows (GH-79766).
- FastNoiseLite: Fix cellular jitter using incorrect default value (GH-79922).
- Disable error condition for accessing safe rect (GH-79937).
- Fix life cycle of ResourceImporterTexture not tracked properly (GH-79954).
- String: Fix Unicode parsing error message encoding and related JSON tests (GH-79980).
- Fix life cycle of ResourceImporterTexture better (GH-79981).
- Fix global transform validity for
Node2D
andControl
(GH-80105). - Fix typo in modulo error message (GH-80114).
- Actually store safe-rect in embedder (GH-80117).
- Usage notes for DEV_ASSERT macro (GH-80156).
- Avoid crash on exiting due to late prints (GH-80161).
- Add
rotate_toward
andangle_difference
methods (GH-80225). - Avoid retrieving the object ID of a stack variable if it is nil (GH-80256).
- Remove
CanvasItem::_invalidate_global_transform
(GH-80320). - Use StringName consistently to refer to the Master audio bus name (GH-80381).
- Deprecate
project_settings_changed
signal (GH-80450). - Remove
DDS_INDEXED
from DDSFormat (GH-80669). - Allow to get a list of visible embedded
Window
s (GH-80673). - Fix CanvasItem notification thread guard (GH-80752).
- Optimize
String.left()
andString.right()
(GH-80824). - Implement center window function (GH-81012).
- Fix
JavaScriptBridge.eval()
never returning PackedByteArray (GH-81015). - Add check to ensure registered classes are declared (GH-81020).
- Fix recursion level check for
VariantWriter::write()
with objects (GH-81123). - Fix comparison of
Callable
s with binds (GH-81131). - Fix consistency of GradientTexture changes (GH-81137).
- Fix for non-deterministic behavior in PCKPacker (GH-81280).
- String: Fix string conversion for -0.0 float values (GH-81328).
- Fix
SIGN(NAN)
returning 1 (GH-81464). - Use pass by reference in ZIPPacker & ZIPReader signatures (GH-81501).
- Add
Vector2/3/4i.MAX
andMIN
(GH-81741). - Crypto: Fix
generate_random_bytes
for large chunks (GH-81884). - Fix allocation size overflow check in
CowData
(GH-81917). - Remove unnecessary line from
Projection::get_z_far
(GH-81986). - Make all render driver project settings require restart (GH-82008).
- Add support for ImageTexture3D serialization (GH-82055).
- Made signal handling more uniform during crashes (GH-82163).
- Replace
radians
range hint withradians_as_degrees
(GH-82195). - Fix not being able to set Node process priority in certain cases (GH-82358).
- Fix axis getting mixed up when split leaf (GH-82436).
- Error handling for
FileAccess.get_file_as_*
(GH-82595). - Do not replace starting digit with underscore when making identifier (GH-82786).
- Fix
RBMap
's, iterator-based,remove()
(GH-82797). - Add missing double-precision flag for Vector4 & Projection in
encode_variant
(GH-83202). - Update
triangulate_delaunay()
to avoid needless reallocations (GH-83434). - Fix heap-use-after-free when resource loaded with
load_threaded_request
is never fetched (GH-83782). - Fix
FastNoiseLite.get_seamless_image
function crash with bad param (GH-83978). - Fix invalid return from some
_get/_set
(GH-84054). - Prevent
encode_variant
doingmemcpy
fromnullptr
(GH-84155). - Fix uninitialized variable in
Image::fix_alpha_edges()
(GH-84173). - Fix
FastNoiseLite.get_image
crashes with bad param (GH-84181). - Add comment why off-by-one error is hard to fix (GH-84297).
- Remove unused
NOTIFICATION_NODE_RECACHE_REQUESTED
notification (GH-84419). - Keep Variant type after
zero()
(GH-84597). - Make languages bookkeeping thread-safe (GH-84657).
- Fix crash when saving compressed image as JPG & WebP (GH-84758).
- Fix translation remapping check for imported resources (GH-84791).
- Let languages init & finish run without locks held (GH-84847).
- Fix
sizeof
usage for Variant pointers inalloca
(GH-84925). - Let scene replacement benefit from certain late pieces of frame logic (GH-85184).
- Prevent read-after-free in the queued CallableCustomStaticMethodPointer, fixes
slot >= slot_max
errors in release templates (GH-85280).
Documentation
- Document when to use
_unhandled_key_input
over_unhandled_input
(GH-42100). - Overhaul Rect2 & Rect2i Documentation (GH-69816).
- Improve documentation of
nearest_po2()
(GH-72091). - Improve the top docs sections of VFX classes (GH-78865).
- Fix a typo in the
String.to_float
description (GH-78989). - Fix a typo in the TLSOptions documentation (GH-79048).
- Doctool: Remove version attribute from XML header (GH-79092).
- Fix incorrect documentation for
Engine.get_architecture_name()
(GH-79174). - Fix various typos in documentation (GH-79223).
- Fix rigid body
contact_monitor
property description (GH-79250). - Add performance note for parsing source geometry (GH-79252).
- Clarify return value of
get_dependencies()
(GH-79306). - Clarify
EditorExportPlugin::add_file
only remaps in_export_file
(GH-79310). - Fix documentation for consistency (GH-79353).
- Add detail to NavigationAgent signal descriptions (GH-79401).
- Fill in descriptions for import options in the class reference (GH-79405).
- Clarify the purpose of RichTextLabel text highlight padding (GH-79571).
- Clarify when the
changed
signal is emitted forResource
andMaterial
(GH-79656). - Fix many typos in documentation (GH-79661).
- Add detail to emitting docs for particles (GH-79720).
- Clarify
set_multiplayer_authority
documentation regarding propagation (GH-79764). - Fix some mixups between 2D/3D in documentation (GH-79781).
- Update outdated C# code sample in
AStarGrid2D
documentation (GH-79794). - Document
linear_stiffness
in SoftBody3D (GH-79933). - Add note about mouse movement input events in
MouseFilter
constants (GH-79934). - Update C# example of
tween_method
with a parameter to the lambda method (GH-79962). - Avoid punning
[param enabled]
in documentation (GH-80066). - Fix invalid use of markdown syntax in classref (GH-80109).
- Overhaul bool documentation (GH-80141).
- Fix packet details of ENetConnection
EventType
EVENT_RECEIVE
documentation (GH-80182). - Document that
Input.is_action_*
should not be used during input-handling (GH-80185). - Revert incorrect
Rect2.expand
description (GH-80217). - Fix various typos in classref (GH-80243).
- Fix wrong example output of
float*Color
in classref (GH-80245). - Clarify relationship between
basis
andtransform
properties ofNode3D
(GH-80254). - Clarify
SceneTree.current_scene
functionality (GH-80264). - Consistency for NodePath doc code examples (GH-80443).
- Document
RenderingServer.get_video_adapter_name()
may report a fixed name (GH-80445). - Fixed tiny spelling error in NavigationAgent2D docs (GH-80474).
- Fix example for
Object._set
documentation (GH-80475). - Document behavior of the
application/config/version
project setting (GH-80511). - Clarify the behavior of CSGMesh using ArrayMesh (GH-80543).
- Change documentation spelling of macOS key 'Command' to match guidelines (GH-80567).
- docs: Fix link to two's complement wiki page (GH-80608).
- Add missing tutorials to documentation classes (GH-80653).
- Clarify existence of groups (GH-80677).
- Document
pick_random
for empty arrays (GH-80694). - Fix empty XML tag doc in XMLParser.xml (GH-80698).
- Add missing RenderingDevice method descriptions (GH-80716).
- Document mouse-picking limit of 64 objects (GH-80875).
- Fix various typos in classref (GH-80884).
- Clarify Array class methods that return error (GH-80936).
- Rephrase ConfigFile class methods error description (GH-80970).
- Improve XMLParser's documentation (GH-80997).
- Improve Line2D documentation (GH-81084).
- Add a note about
SceneTree.create_tween()
method (GH-81087). - Improve
MeshDataTool.get_face_vertex()
method description (GH-81088). - Improve
Object.get_property_list()
method description (GH-81093). - Some grammar and punctuation enhancements in the class reference (GH-81097).
- Grammatical improvements for the RayCast 2D and 3D class references (GH-81132).
- Fix typo in WebRTCPeerConnection documentation (GH-81157).
- Document integer scaling functionality and limitation (GH-81176).
- Fix typos in NavigationAgent3D documentation (GH-81190).
- Fix misleading description of
MeshDataTool.get_vertex()
method (GH-81212). - Use
[constant]
instead of[code]
when possible (GH-81228). - Fix typos in LineEdit documentation (GH-81232).
- docs: Update AABB
get_support
description (GH-81249). - Improve canvas layer index documentation (GH-81270).
- Fix unmatched brackets in the documentation (GH-81330).
- Fix description of dock slot usage in the documentation (GH-81445).
- Document ScrollContainer signals being emitted for touch events only (GH-81517).
- Doc: Reference String <-> PackedByteArray conversions from each other (GH-81564).
- Fix typos in EditorDebuggerPlugin and RDShaderSPIRV classref (GH-81565).
- Add an example for
Dictionary.merge()
, mention lack of recursion (GH-81622). - Add missing
is_deprecated
flag on theSurfaceTool.generate_lod
function (GH-81634). - Add note about format to splash image description (GH-81672).
- Add missing documentation for
Skeleton3D
methods (GH-81697). - Improve VisibleOnScreen classes' docs (GH-81774).
- Fix required parameter values for 2D textures in
RenderingDevice.texture_clear()
(GH-81936). - Fix example in gravity project settings doc (GH-81967).
- docs: Fix incorrect GL format code for 16 bit float formats (GH-82050).
- Fix documentation on how to get the keycode string from a
physical_keycode
(GH-82092). - Docs: Update and sync Window and DisplayServer window mode descriptions (GH-82179).
- Document that
resource_name
is not always supported (GH-82406). - Clarify difference between surface material and surface override material (GH-82499).
- Fix metadata name in MovieWriter.xml (GH-82541).
- Improve SeparationRayShape docs (GH-82544).
- Fix
RefCounted.unreference()
documentation providing wrong info (GH-82557). - Document
get_time_zone_from_system
will return a localized timezone name (GH-82609). - Improve
NavigationAgent3D.target_position
documentation readability (GH-82671). - Add docs for Node3DGizmo to clarify its link to EditorNode3DGizmo (GH-82681).
- Clarify
AStarGrid2D.is_in_bounds
functionality (GH-82724). - Fix typos in documentation:
than/then
andloose/lose
(GH-82748). - Add a recommendation to turn on type hints with untyped declaration warning (GH-82801).
- Clarify
change_dir()
and access scopes (GH-82849). - Specify the behavior of
get_tree()
when the node is not in the scene tree (GH-82863). - Added docs for DRAW_ORDER_REVERSE_LIFETIME constant and minor XR log improvement (GH-82866).
- Fixed a missing word (GH-82883).
- Add
sdf_collision
property description to LightOccluder2D (GH-82906). - Explain circular references and how to break them (GH-82942).
- Update
draw_polyline
documentation to clarify negative width behavior (GH-82991). - Add documentation on which buttons JOY_BUTTON_START corresponds to (GH-83013).
- Update SpinBox documentation to include resetting to min/max behavior (GH-83038).
- Add semicolon to OS documentation case statement (GH-83066).
- Cleanup various repository documentation files (GH-83095).
- Make error suggestion less ambiguous (GH-83327).
- Document UID behavior in ResourceSaver's save function (GH-83388).
- Docs: Fix link to Android Gradle build tutorial (GH-83433).
- Document
AudioStreamGeneratorPlayback.get_skips()
(GH-83435). - Fix description of
Animation::copy_track
(GH-83441). - Clarify docs for operators performing
xform_inv
(GH-83461). - Doc: Change return type of
_Set
method fromvoid
tobool
in C# code example (GH-83602). - Fix Object class C# syntax error (GH-83609).
- Clarify
NOTIFICATION_SCROLL_BEGIN/END
behavior (GH-83636). - Fill remaining global scope constant descriptions (GH-83652).
- ProjectSettings: Fix description of physics jitter (GH-83768).
- Add C# Example to ImmediateMesh.xml (GH-83839).
- Improve documentation related for particle subemitters, collision and attractors (GH-83916).
- Fill out Material documentation and clarify
render_priority
andnext_pass
sorting (GH-83931). - Fixed
window_width_override
description (GH-84101). - Fix typo in ConcavePolygonShape2D/3D description (GH-84111).
- Add missing word in
NOTIFICATION_POST_ENTER_TREE
documentation (GH-84224). - Fix documentation in MultiplayerAPIExtension (GH-84226).
- Add a description for the
velocity_pivot
parameter (GH-84276). - Update
add_submenu_item
doc to mention that submenu should already exist (GH-84283). - Clarify that
get_time_zone_from_system
will return a localized timezone name (GH-84301). - Fix sentence in RandomNumberGenerator.xml (GH-84322).
- Update the description for the
InputEventMagnifyGesture
andInputEventPanGesture
gestures (GH-84408). - Sync changes between ShapeCast and RayCast class references (GH-84567).
- Resolve collisions in reference anchors added for methods (GH-84618).
- Add C# example for the AudioStreamGenerator code snippet (GH-84648).
- Remove a redundant semicolon from
max_fps
documentation (GH-84667). - Clarify that
DisplayServer.window_set_*_callback
aren't supported on Window nodes (GH-84669). - Fix link in the docs about ResourceImporterTextureAtlas (GH-84698).
- Fix a property reference in
EditorSpinSlider
documentation (GH-84709). - Fix typo in
TextureServer.font_get_face_index()
description (GH-84784). - Link to runtime loading/saving tutorial and improve Image documentation (GH-84844).
- Mark
SubViewportContainer::_propagate_input_event
experimental (GH-84911). - Fix translation po file not found when
make rst LANGARG=zh_CN
(GH-85073). - Enhance
SceneTree.change_scene*()
methods' docs (GH-85279). - Add changelog for Godot 4.2 (GH-85510).
Editor
- Replace all flags with one value when holding Ctrl/Cmd in the layers editor (GH-39364).
- Improve
CodeEdit
's toggle comments behavior (GH-44557). - Document editor import options in the class reference (GH-49524).
- Reorganize buttons in the project manager (GH-50674).
- Streamline the project import workflow (GH-51478).
- Focus current node after connecting (GH-54071).
- Allow enter key to add properties to replication editor list (GH-65558).
- Add editor setting to toggle automatic code completion (GH-68140).
- Replace Ctrl in editor shortcuts with Cmd or Ctrl depending on platform (GH-71905).
- Overhaul the Gradient Editor (GH-71915).
- Don't save scripts when exiting editor (GH-73641).
- Fix Filter Files shortcut input is not properly handled (GH-73981).
- Fix conversion of hex color strings in project converter (GH-74026).
- Add coloring for completion of vector components (GH-74809).
- Expose 'Reimport' on right-click context menu in the FileSystem panel (GH-75137).
- Added
--gpu-index
toforwardable_cli_arguments
(GH-75198). - Enhance NodePath property editing (GH-75274).
- Ensure binds are duplicated with
Node
signals (GH-75382). - Make
EditorInterface
accessible as a singleton (GH-75694). - Apply new input validation method for Create Plugin dialog (GH-76778).
- Expose
save_all_scenes
method to EditorInterface (GH-77537). - Increase vertical size of
CurveEdit
whenInspector
widens (GH-77625). - Allow to pick which Resources will be made unique (GH-77855).
- Fix batch rename for unique name and empty name (GH-78292).
- Change light themes default contrast from -0.08 to -0.06 (GH-78297).
- Auto-update properties when replacing a node (GH-78300).
- Only display 15 nodes in the Recent section of the Create New Node dialog (GH-78309).
- Fix tooltip of enum value without description (GH-78524).
- Speed up closing multiple scripts (GH-78604).
- Re-enable docs cache with fixes (GH-78615).
- Use bullet points in shader editor creation dialog (GH-78631).
- Tweak documentation to use bold font when a class is referencing itself (GH-78649).
- Fix indentation in script templates (GH-78675).
- Standardize dialog input validation as a new class (GH-78744).
- Sort project tags before saving (GH-78775).
- Project converter: Use same rendering driver as Project Manager (GH-78795).
- Fix drag-dropping nodes to parent with internal nodes (GH-78816).
- Fix history mismatch (GH-78827).
- Improve material and mesh preview buttons (GH-78858).
- Add icons for 3D texture classes (GH-78903).
- Fix dropping files from
res://
tores://
(GH-78914). - Do not change a node unique name to the same name (GH-78925).
- Translate "No match" message in FindReplaceBar (GH-78938).
- Windows: Always double-quote path when launching explorer.exe to browse (GH-78963).
- [Terminal Output] Reset text properties after
print_rich
(GH-79017). - Fix missing arrows in integer vector properties (GH-79021).
- Optimize SVG icons and remove unused Transpose icon (GH-79062).
- Collapse bottom panel if there is no active tab (GH-79078).
- Fix
ui_cancel
action not closingFindReplaceBar
(GH-79079). - Add tooltip description wrapping in scene tree and plugin settings (GH-79090).
- Improve user-friendliness of project version mismatch message (GH-79118).
- Optimize Variant icons and a few others (GH-79161).
- Don't grab theme icons for scripts (GH-79203).
- Show only compatible nodes in 'Select a node' window (GH-79213).
- Assume root when dropping node to unassigned script (GH-79258).
- Keep
GraphNode
port icons crisp at high zoom levels and remove artifacts (GH-79262). - Hide/show
AcceptDialog
's button spacer on button visibility changed (GH-79274). - Change explicit 'Godot 4.0' references to 'Godot 4' (GH-79277).
- Fix dragged nodes icon size (GH-79283).
- Improve text in popup warning, remove "upgrade or downgrade" text (GH-79299).
- Allow adding a custom side menu to EditorFileDialog (GH-79313).
- Make indentation indicators translatable (GH-79358).
- Improve signal callback generation (GH-79366).
- Add missing word to text of the alert dialog (GH-79381).
- Disable irrelevant scene tab context menu items (GH-79382).
- Don't use splash minimum display time in editor (GH-79388).
- Include display server type in "Copy System Info" (GH-79396).
- Fix rendering driver in Copy System Info for the Compatibility rendering method (GH-79416).
- Add icons to some placeholder classes (GH-79431).
- Hide explicitly specified flag value in Inspector (GH-79457).
- Add a shortcut to paste nodes as sibling of the selected node (GH-79467).
- Emit
history_changed
on merged UndoRedo actions (GH-79484). - Show valid types in SceneTreeDialog (GH-79593).
- Fix wrong Curve connection (GH-79609).
- Add Ctrl+/ as a shortcut to toggle comment in addition to Ctrl+K (GH-79610).
- Make Help.svg not look disabled (GH-79613).
- Avoid duplicating the "Filters" section (GH-79650).
- Fix arg count checks in
SceneDebugger
(GH-79655). - Add placeholder items to TileSet layer list (GH-79676).
- Change the text for the flat button preview to follow pattern (GH-79734).
- Fix typo in ResourceImporterImageFont (GH-79736).
- In Create New Scene dialog derive the default root node name based on
editor/naming/node_name_casing
(GH-79756). - Make the single window mode check more strict (GH-79793).
- Make blend file importer warnings translatable (GH-79807).
- Fix undo methods for DELETE in EditorAutoloadSettings (GH-79832).
- Fix usability issues with scene tabs (GH-79852).
- Add tooltips to the plugin editor creation dialog (GH-79891).
- Fix spacing between icon and "Output" button (GH-79908).
- Fix crash when using "Close All Tabs" (GH-79917).
- Automatically add path to built-in scripts (GH-79920).
- Sort system font menu in Inspector (GH-79928).
- Fix out of bounds access when updating current scene (GH-79945).
- Uncollapse favorites by default in the editor FileSystem dock (GH-79971).
- Reverse condition for skipping directories (GH-79984).
- Fix escaping issues with POT generator (GH-80058).
- Fix API hash related crash in
EditorSettings
(GH-80089). - Add UndoRedo icon (GH-80102).
- Add FileAccess and DirAccess icons (GH-80103).
- Add path to missing import texture metadata to error message (GH-80107).
- Add an icon to the Performance object (GH-80113).
- Optimize and fix up some SVGs (GH-80119).
- Add ShaderInclude class icon (GH-80129).
- Use the gray color for all abstract classes (GH-80184).
- Horizontal split view for Filesystem Dock (GH-80241).
- Fix menu items that trigger secondary interface missing ellipsis (GH-80355).
- Improve Signal Dock for script classes (GH-80411).
- Add custom color support to project folders (GH-80440).
- [Editor Log] Clear rich print tags only after the last line (GH-80476).
- Extract editor scene tabs into their own component (GH-80490).
- Fixes Scene corruption when child scene is renamed in another directory (GH-80503).
- Avoid unnecessary inspector updates when loading or switching scenes (GH-80517).
- Add EditorStringNames singleton (GH-80573).
- Add CurveXYZTexture icon (GH-80598).
- Fix crash on exit where
TileSet
calls destroyedTileSetAtlasSourceEditor
(GH-80607). - Fix
TileMapEditorPlugin
crash by storing tilemap ID instead of pointer (GH-80610). - Add PortableCompressedTexture2D icon (GH-80659).
- Make the NavigationAgent3D icon more readable (GH-80661).
- Recurse into resources to check for changed node paths (GH-80721).
- Add a RegEx icon (GH-80724).
- Don't cache script signal descriptions (GH-80726).
- Disable translation of root name on scene creation (GH-80811).
- Avoid creating any useless undo action when dragging nodes in place (GH-80817).
- Unedit nodes early when closing scene tab (GH-80849).
- Save "Show Built-In Actions" state to project metadata (GH-80879).
- Differentiate between core and editor-only singletons (GH-80962).
- Cleanup some
GLOBAL_DEF
s (GH-80972). - Add a property hint range to Auto Refresh Interval editor setting (GH-80975).
- Display time of last save in the unsaved changes confirmation editor dialog (GH-80976).
- Fix paste value emptying an array on some right click location (GH-80977).
- Move the new RegEx icons into their respective module (GH-80998).
- FileSystemDock: Don't update current path on rename when file list has focus (GH-81007).
- Improve warnings when running scripts in the editor (GH-81022).
- Properly remember custom text color in scene tree (GH-81061).
- Fix Quick Open not opening binary resources (GH-81068).
- Refactor disabling scene tab context menu options (GH-81072).
- Prevent creating any type of file with a leading dot (GH-81075).
- Signal Connection Dock improvements (GH-81092).
- Fix a crash when built-in script is not saved and have syntax error (GH-81156).
- Use
ui_text_submit
instead ofui_accept
to confirm and close text prompts (GH-81189). - Inspector and Signal docks improvements (GH-81221).
- Fix
EditorFileDialog
clears the file name on changing directory (GH-81226). - Fix clamping logic in
EditorSpinSlider
(GH-81278). - Show doc tooltips when hovering properties in the theme editor (GH-81284).
- Change precedence in rules to make location after proper casing (GH-81304).
- Fix TextFile not reloading when changed from external editors (GH-81319).
- Check the native base of scripts when resolving icons (GH-81336).
- Fix saving editor folder colors (GH-81344).
- Avoid text substitution in EditorHelp messages (GH-81346).
- Update folder colors when moving or renaming (GH-81380).
- Rearrange "Main Menu > Help" items (GH-81399).
- Remove leftover debug print in
FileSystemDock
(GH-81407). - Fix property array tooltip shows wrong ID on later pages (GH-81408).
- Fix bugs of copying scene root node or pasting node as scene root (GH-81415).
- Expose
EditorInspector::get_edited_object
to GDScript (GH-81425). - Fix unexpected behaviors of using Duplicate To on folders (GH-81437).
- Fix FindReplaceBar losing focus too early (GH-81450).
- Ignore empty lines when uncommenting code (GH-81486).
- SceneTreeDock: Avoid changing the currently edited object when attaching a script (GH-81510).
- Allow contextual plugins to persist temporarily (GH-81523).
- Improve undo action names (GH-81569).
- Make editor support
--fullscreen
command-line argument (GH-81608). - Add XML files to default TextFile extensions in the editor (GH-81625).
- Avoid resetting the code completion popup excessively (GH-81633).
- Fix dependency handling on move or rename in the filesystem dock (GH-81657).
- Don't paste nodes as sibling of scene root (GH-81673).
- Clarify filtering by node type and group in the Scene tree dock (GH-81675).
- Create a field when Ctrl-dropping a resource into the code editor (GH-81708).
- Make LineEdit secret character easier to change and enter (GH-81724).
- Fix folder moving in file system dock (GH-81725).
- Fix internal
CONNECT_INHERITED
being saved in PackedScene & Make Local (GH-81737). - Fix Connection dock's popups always allowing disconnect (GH-81750).
- Change icon for position key (GH-81751).
- Add Ctrl+P as shortcut to quick open files in addition to Shift+Alt+O (GH-81770).
- Make editor camera speed indicator use
m/s
andm
(GH-81810). - Fix grayed out paint icons (GH-81813).
- Add CanvasTexture icon (GH-81834).
- Make UIDs clickable in the script editor (GH-81927).
- Improve the Torus icons (GH-81978).
- While dragging files don't move not selected cursor item in filesystem-dock (GH-82045).
- Revamp how documentation tooltips work (GH-82051).
- Fix several issues with renaming in FileSystem dock (GH-82075).
- Fix skeleton 3d editor's toolbar ui deleted from wrong container (GH-82131).
- Fix leak when calling
remove_control_from_menu_panel
(GH-82171). - Fix CurveEdit crash when dragging the curve if it is null (GH-82181).
- Add call validation to CommandPalette (GH-82194).
- Remove the separator from ItemList's thumbnails mode (GH-82236).
- Fix missing dependency warning popup (GH-82244).
- Fix can't unset exported typed array element when the type is set to Node (GH-82287).
- Fix ScriptCreateDialog not accepting on submit (GH-82328).
- Add error checks for DirAccess creation (GH-82347).
- Color match editor log toggles and flat pressed buttons (GH-82365).
- Fix submenus deleted accidentally (GH-82371).
- Fix leak when closing theme editor preview tabs (GH-82442).
- Make terrains peering bit property names translatable (GH-82509).
- Don't remove favorite files in EditorFileDialog (GH-82537).
- Use theme icon size when calculating category minimum size (GH-82540).
- Add more context to some
Window
errors (GH-82590). - "Whole Words" search can detect word boundaries inside the search term (GH-82694).
- Search terms are now highlighted when the bar opens with a selection (GH-82707).
- Fix node icons appearing too big in some cases (GH-82728).
- Fix loading floating dock layout (GH-82742).
- Removes extents to size conversion (GH-82754).
- Fix checking the visibility condition of selected file in the Godot editor's dock (GH-82806).
- Fix unsaved changes not getting discarded (GH-82847).
- Provide translation strings for folder colors (GH-82858).
- Fix debugger behavior with multi-session debugging (GH-82868).
- Disable disconnect button for inherited signals (GH-82875).
- Fix garbled text in editor toasters (GH-82913).
- Don't apply frame delay project setting to the editor (GH-82929).
- Tweak metadata property tooltip to avoid being misleading (GH-82940).
- Fix dependency menu not showing up if scene failed to load (GH-83024).
- Fix
EditorFileSystemDirectory::get_file_deps()
may return wrong result (GH-83081). - Fix some issues with
EditorHelpTooltip
(GH-83094). - Fix highlight rect in "Whole search" being slightly offset (GH-83101).
- Don't auto translate theme type list (GH-83177).
- Project Manager: Open project when "Enter" is pressed when the search box is focused (GH-83210).
- Disable port name auto translation in Visual Shader editor (GH-83233).
- Fix saving wrong edited scene state when switching scene tabs (GH-83251).
- Don't try updating wrong NodePaths in resources (GH-83263).
- Keep focus on floating window when showing ProgressDialog (GH-83290).
- Fix FindReplaceBar focus problems (GH-83335).
- Remove toggling of unique names in subscenes (GH-83370).
- Fix multiple comment delimiter break toggle comment shortcut (GH-83382).
- Disallow 'Make Local' command on inherited nodes (GH-83386).
- Disable "Edit Transitions..." item if no animations are present (GH-83402).
- Set
icon_max_width
in the ConnectionsDock tree (GH-83447). - Fix close button in FindReplaceBar (GH-83459).
- Prevent crash when creating custom file tooltip (GH-83487).
- Mesh instance UV2 unwrapping improvements (GH-83498).
- Fix StringName leaks in GDExtension, core, and editor themes (GH-83562).
- Enable new addon after hiding ProjectSettings (GH-83576).
- Fix ownership bugs in node copy and pasting (GH-83596).
- Support duplication of foreign nodes (GH-83597).
- Fix crash on recovered orphaned nodes (GH-83604).
- Fix StringName leaks in VariantParser (GH-83619).
- Improve threading in ClassDB and EditorHelp (GH-83695).
- Fix wrong shader rename in 3-to-4 project converter (GH-83708).
- Clamp the height of description text for property selectors (GH-83745).
- Fix "as" capitalization in editor strings (GH-83815).
- Remove margins from editor scrollbars (GH-83868).
- Fix potential crash on failed move (GH-83937).
- Use Hashset for dependency list when moving (GH-83941).
- Limit custom icons size in various editor widgets (GH-84011).
- Add read-only info to resource embedded in other scenes (GH-84048).
- Ignore path error for built-in scripts/shaders (GH-84077).
- Change dropdown type filter from Texture to Texture2D in certain nodes (GH-84113).
- Fix file rename crash after toggling split mode (GH-84217).
- Fix crash on rename collision in thumbnail grid (GH-84218).
- Make remote inspector groups not foldable (GH-84257).
- Automatically pick the Android SDK path using environment variables (GH-84285).
- Fix pressing save in Import Defaults not working (GH-84291).
- Disconnect
EditorNode
from file dialogs on destruction (GH-84302). - Fix CSGShape debug_collision_shape crash (GH-84338).
- Polish & fix editor help cache generation (GH-84354).
- Fix inverted condition when unwrapping lightmap (GH-84374).
- Fix engine configuration icons using old convention (GH-84404).
- Tweak FastNoiseLite property hints for better slider usability (GH-84494).
- Fix pressing Enter being ignored in "Create Shader" dialog (GH-84539).
- Fix for stopping the Undo History being desynchronized from actual Undo queue (GH-84557).
- Correctly set up shortcut context in the shader editor (GH-84614).
- Save scene when saving built-in resource (GH-84630).
- Abort threaded preview generators on exit (GH-84716).
- Fix texture region editor not selecting restored snap mode (GH-84762).
- Reduced output spam from rapid property changes (GH-84795).
- Remove EditorFileDialog warning when skipping project directories (GH-84797).
- macOS: Cleanup default GL driver setting (GH-84929).
- Make script/shader editor save shortcuts unique again (GH-84931).
- Provide more context when scene fails to load (GH-85083).
- Add Save As... option to EditorResourcePicker (GH-85150).
- Avoid saving scene while already saving the scene (GH-85154).
- Fix project name being overwritten every time
show_dialog
is called (GH-85169). - Rework the surface upgrade tool to inform users without blocking (GH-85222).
- Fix crash caused by conflicting menu option IDs (GH-85227).
- Suppress surface upgrade warnings when showing SurfaceUpgradeTool warning (GH-85249).
- Save and restore previous window mode when toggling full-screen (GH-85427).
- Disable a prohibitively slow code branch when reparenting nodes (GH-85517).
Export
- Add a "version" project setting and use it in new export presets (GH-35555).
- Implement iOS one-click deploy (GH-70662).
- Add options to show icon in Android TV and run app as Android launcher (GH-78164).
- Add a button in the export dialog to fix missing texture formats (GH-78457).
- iOS: Add
export_project_only
flag (GH-78641). - Re-architect how Android plugins are packaged and handled at export time (GH-78958).
- Fix export options of scripted
EditorExportPlugin
s (GH-79025). - Android: Add option to always use WiFi to connect to remote debug (GH-79504).
- Improve headings for the export mode in the Export dialog (GH-79725).
- [macOS Export] Disable unpacked .app bundle export on Windows (GH-79950).
- Fix Windows console wrapper and icon being swapped (GH-80357).
- Add export setting to control whether to show the Godot app in the app library (GH-80569).
- Fix redundant enter tree notification in project export texture format (GH-80967).
- [iOS export] Switch export target extension based on export type (GH-81365).
- Expose
EditorExportPlatform::get_os_name()
(GH-81430). - Fix
SubViewport
withUPDATE_WHEN_VISIBLE
not working properly in exported project (GH-81607). - [macOS export] Fix GDExtension framework
+x
flag errors, allow recursive signing on non macOS platform (GH-81969). - Fix TextServer data export (GH-82103).
- iOS: Fix build on Xcode 14 and older (GH-83088).
- macOS: Remove deprecated altool notarization support, disable rcodesign for C# version (GH-83482).
- Use "version" project setting as macOS/iOS "short_version" fallback (GH-83686).
- Improve app / file version validation (GH-84296).
- [macOS export] Improve icon generation (GH-84521).
- Preserve the output from the gradle build command (GH-84779).
- Prevent the surface upgrade tool from running during export (GH-85136).
- iOS: Check if Xcode is installed in one-click deploy code (GH-85168).
GDExtension
- Fix GDExtension classes derived from abstract GDExtension classes always being registered as abstract (GH-67512).
- Add GDExtension support for OpenXR extension wrappers (GH-68259).
- Allow GDExtension to register unexposed classes (GH-70329).
- Set vararg methods' ptrcall of builtin classes, and let them can be called without arguments (GH-76047).
- Add GDExtension function to construct StringName directly from
char*
(GH-78580). - Allow implementing
get_class_category
in GDExtension (GH-78995). - Allow CallableCustom objects to be created from GDExtensions (GH-79005).
- Allow resizing Strings from GDExtension (GH-79156).
- Prevent GDExtensions from trying to remove editor plugins at shutdown (GH-79492).
- Fix
_get_property_list
not working correctly in parent classes (GH-79683). - Add
_bind_compatibility_methods
to Object (GH-79702). - Fix incorrect virtual function in
VideoStream.set_paused
(GH-79710). - Add support for indexed properties in GDExtension (GH-79763).
- Add
get_script_instance
to GDExtension (GH-80040). PtrToArg::convert()
uses const-reference where possible (GH-80075).- Fix or workaround recent extension API compatibility issues (GH-80168).
- Copy DLL to a temp file before opening (GH-80188).
- CI: Make extension API compatibility check mandatory (GH-80220).
- Implement reloading of GDExtensions (GH-80284).
- Add compatibility notice after #78266 (GH-80374).
- Expose PlaceHolderScriptInstance to GDExtension (GH-80394).
- Fix version check for GDExtension (GH-80591).
- Use
String::resize()
andCharString
intext_server_adv
again (GH-80642). - Add functions for non-ptr style virtual calls in GDExtension (GH-80671).
- SCons: Fix ThorVG build option in TextServers with #80095 (GH-80713).
- Remove DLL copy if it fails to load (GH-80720).
- Godot Android plugin re-architecture (GH-80740).
- Exclude unexposed classes from the
extension_api.json
(GH-80852). - Fix overriding
_export_begin
,_export_file
and_export_end
from GDExtension (GH-80999). - Allocate
GDExtensionScriptInstanceInfo2
for compatibility on the heap to prevent crash (GH-81206). - Use godot-cpp 4.1 for the "Godot CPP" CI workflow to prevent circular dependency (GH-81238).
- fix
bool
unknown in C (GH-81247). - Allow implementing
ScriptInstance::validate_property()
from GDExtension (GH-81261). - Fix bindings of
PhysicsServer3DRenderingServerHandler
(GH-81298). - Add compatibility methods for RenderingDevice BarrierMask (GH-81356).
- Allow implementing
Object::_validate_property()
from GDExtension (GH-81515). - Fix method hashes with default arguments (GH-81521).
- Delete left-over DLL copy before making a new copy (GH-81576).
- Expose
texture_create_from_extension
to GDExtension (GH-82168). - Remove redundant method bind hash check (GH-82191).
- Optionally include documentation in GDExtension API dump (GH-82331).
- Fix type of
notification_func
(GH-82332). - Moved
face_index
field in 3DRayResult
to end of struct (GH-82403). - Fix inconsistent
last_modified_time
handling in GDExtension (GH-82603). - Don't deprecate old method of getting script category (GH-82682).
- Fixes to allow object-less callables throughout Godot (GH-82695).
- Web: Catch using GDExtensions in a non-dlink build (GH-82790).
- Convert
validated_call()
toptrcall()
(rather thancall()
) (GH-82794). - Expose
Object::free_instance_binding()
to GDExtension (GH-82799). - Resolve relative icon paths for GDExtensions (GH-82842).
- Fix extensions loading/initializing even when entry point fails (GH-82861).
- Remove I/O error popup when failing to load/unload extension (GH-82907).
- On Linux, favor local symbols when loading a shared library (GH-82973).
- Use correct return pointer for validated calls that return
Variant
(GH-83054). - Fix incorrect error message about vararg methods (GH-83107).
- Fix missing editor singletons when dumping extension api (GH-83239).
- Prevent issues with the editor trying to reload GDExtensions through its usual mechanism (GH-83285).
- Add brief description in GDExtension API dump with docs (GH-83318).
- Fix comment in
gdextension_interface.h
(GH-83415). - Allow coexistence of GDScript and GDExtension virtual methods in the same object (GH-83583).
- Add
path
option toScriptLanguageExtension::_validate
(GH-83588). - Fix
variant_iter_get()
actually callingiter_next()
(GH-83681). - Fixed error on loading extensions (GH-83734).
- Use
ObjectID
when creating custom callable (GH-83800). - Linux: Disable
RTLD_DEEPBIND
mode fordlopen()
in sanitizer builds (GH-84210). - Save and compare modification times separately for reload (GH-84315).
- [iOS, GDExtension] Fix loading and exporting static libraries and xcframeworks (GH-84493).
- Change
GDExtension
'slibrary_path
back to an absolute path (GH-84620). - Remove Android specific abis from the export preset feature list (GH-84720).
- Check that
GDExtensionCompatHashes
are valid when generatingextension_api.json
(GH-84973). - iOS: Fix GDExtension init callback array reallocation (GH-85216).
GDScript
- Highlight doc comments in a different color (GH-72751).
- Fix jumping to function definition using
Ctrl+LMB
or the "Lookup Symbol" button (GH-73196). - Improve GDScript identifier tokenization (GH-73226).
- Add code region folding to CodeEdit (GH-74843).
- Add raw string literals (r-strings) (GH-74995).
- Show script errors from depended scripts (GH-75216).
- Fix for not being able to ignore shadowing warnings on class scope (GH-75620).
- Add a script method to get its class icon (GH-75656).
- Improve call analysis (GH-75988).
- Support threads in the script debugger (GH-76582).
- Fix conflict between property and group names (GH-78254).
- Add error message when a GDScript resource fails to load (GH-78540).
- Check
get_node()
shorthand in static functions (GH-78552). - Editor: Remove unused Class Name field from Create Script dialog (GH-78573).
- Fix incorrect error message for utility functions (GH-78882).
- Add
@deprecated
and@experimental
doc comment tags (GH-78941). - Fix regression with GDScript enum descriptions now showing up in documentation (GH-78953).
- Add static analysis error reporting in
GDScriptCache::get_full_script()
(GH-79163). - Make onready variables created from dropping nodes include custom types (GH-79198).
- Solve
_populate_class_members()
cyclic dependency problem (GH-79205). - Properly track extents of constants (GH-79301).
- Load global classes when running debug tests (GH-79425).
- Fix subscript resolution for constant non-metatypes (GH-79510).
- Change GDScript tests to use InstancePlaceholder as the example abstract class (GH-79524).
- Highlight comment markers (
TODO
,FIXME
, etc.) (GH-79761). - Fix bug with identifier shadowed below in current scope (GH-79880).
- Replace ptrcalls on MethodBind to validated calls (GH-79893).
- Add validation for
@export_node_path
annotation arguments (GH-79935). - Optimize operators by assuming the types (GH-79990).
- Add constant string support for POT generator (GH-80020).
- Implement pattern guards for match statement (GH-80085).
- Fix regression with native signal not found (GH-80165).
- Add static typing for
for
loop variable (GH-80247). - Assign temporary path to preloaded resources (GH-80281).
- Fix completion option location not found (GH-80283).
- Allow mixed indentation on blank lines (GH-80365).
- Fix
get_method
from named lambda (GH-80506). - Fix "Identifier not found" error when accessing inner class from inside (GH-80510).
- Fix superfluous
"
in error message (GH-80568). - Check if any global script class is shadowed by a variable (GH-80587).
- Fixes LSP connection error when launched in a separate thread (GH-80686).
- Improve DocGen (GH-80745).
- Fix expected argument count for
Callable
call errors (GH-80844). - Fix lambda resolution with cyclic references (GH-80923).
- Allow using local constants as types (GH-80964).
- Language Server: Improve hovered symbol resolution, fix renaming bugs, implement reference lookup (GH-80973).
- Fix
_get_debug_tooltip
crash if tooltip string is too large (GH-81018). - Fix highlighting of hex numbers with separators (GH-81039).
- Fix
get_*_list()
methods return incorrect info (GH-81079). - Optimize GDScript VM codegen for MSVC (GH-81200).
- Fix subclass methods not inheriting RPC info (GH-81201).
- Fix an error when dragging nodes into built-in scripts because script does not inherit Node (GH-81299).
- Don't make array literal typed in weak type context (GH-81332).
- Add an optional
untyped_declaration
warning (GH-81355). - Remove
REDUNDANT_FOR_VARIABLE_TYPE
warning (GH-81440). - Fix compilation of expressions compiling other classes (GH-81577).
- Fix dumping of signal API parameters (GH-81599).
- Fix some lambda bugs (GH-81605).
- Fix lambda hot reloading (GH-81628).
- Fix POT generator crash on assignee with index (GH-81653).
- Fix and improve doc comment parsing (GH-81699).
- Add check for
super()
methods not being implemented (GH-81808). - LSP: Fix autocomplete quote handling (GH-81833).
- LSP: Add
--lsp-port
as a command line argument (GH-81844). - Rewrite a small comment in GDScript tokenizer code (GH-81881).
- Make array literal typed if
for
loop variable type is specified (GH-82030). - GDScript DocGen: Fix and improve appearance of metatypes and values (GH-82067).
- Prevent constructing and inheriting engine singletons (GH-82098).
- Fix
--gdscript-docs
tool failing when autoloads are used in the project (GH-82116). - Add
INFERRED_DECLARATION
warning (GH-82139). - Fix duplication of inherited script properties (GH-82186).
- Fix crash with
GDScriptNativeClass
(GH-82294). - Fix for GDScriptHighlighter dictionaries as function arguments (GH-82326).
- Add return type covariance and parameter type contravariance (GH-82477).
- Improve highlighting of types (GH-82516).
- Fix
UNSAFE_CALL_ARGUMENT
warning forVariant
constructors (GH-82547). - Core: Fix
Object::has_method()
for script static methods (GH-82767). - Fix
native_type
is empty for autoload without script (GH-82784). - Fix unresolved datatype for incomplete binary operator (GH-82789).
- Add error when exporting node in non
Node
-derived classes (GH-82843). - Fixes internal Script Editor crash with External Editor active (GH-82956).
- Fix external editor hot reload for GDScript (GH-82986).
- Fix GDScript cache assigning UID as scene path (GH-83039).
- GDScript DocGen: Fix regression with return metatypes (GH-83049).
- Deleting unnecessary include in GDScriptParser (GH-83050).
- Fix modifying base script exports not propagating to derived scripts (GH-83123).
- Add autocompletion for static variables accessed via class (GH-83150).
- Code Editor: Fix regression with using doc comments for code regions (GH-83216).
- Fix unresolved datatype for incomplete expressions (GH-83257).
- Fix grammar typo in GDScript error message (GH-83455).
- Fix non-static call is allowed in static var lambda body (GH-83486).
- Fix
GDScriptCache::get_full_script
eating parsing errors because of early exit (GH-83540). - Don't optimize division and modulo on debug (GH-83569).
- Fix comment typo in
gdscript_parser.h
(GH-83792). - SCons: Fix build with GDScript LSP disabled (GH-84191).
- Fix lambda cross-thread dynamics (take 2) (GH-85248).
- Fix GDScript thread-exit routine assuming thread-enter was called (GH-85432).
GUI
- Add option to allow echo events in menu shortcuts (GH-36493).
- Expose and rename ItemList's
_check_shape_changed
toforce_update_list_size
(GH-63634). - Add Duplicate Lines shortcut to CodeTextEditor (GH-66553).
- Refactor
mouse_entered
andmouse_exited
signals (GH-67791). - Fix cursor behavior for multiselect in Tree while holding CTRL (GH-71024).
- Fix code completion override of home and end keys (GH-71519).
- ItemList: Clarify distinction between disabled and selected in sending signals (GH-74250).
- Add
inner_item_margin_*
Theme constants to the Tree control (GH-75460). - Expose finding valid focus neighbors of a
Control
by side (GH-76027). - Fix RichTextLabel character line and paragraph index getters (GH-76759).
- Add a
[pulse]
built-in effect to RichTextLabel (GH-77117). - Fix unnecessary break when calculating the height of visible lines (GH-77280).
- Prevent disappearance of mouse when SpinBox is hidden while dragging (GH-77804).
- Make it possible to change character transform in RichTextEffect (GH-77819).
- Add
loop
property to VideoStreamPlayer (GH-77857). - Expose VideoStreamPlayer video length (GH-77858).
- Ensure that
_drop_physics_mouseover
only happens when necessary (GH-78078). - Use S, V in hue bar of ColorPicker (GH-78100).
- Move registration of
fallbacks
property in the base Font class (GH-78266). - Add ability to set the tooltip text of a
TreeItem
button (GH-78393). - Make GraphEdit's cpp virtuals equal to gdscript (GH-78426).
- Fix ColorPicker margin theme property (GH-78468).
- Embedded Popups store their safe_rect in their embedder (GH-78476).
- Fix text overlapping icon in
Tree
(GH-78756). - Enable
InputEvent
-filtering inSubViewportContainer
(GH-78762). - Fix disabled slider highlighting (GH-78776).
- Fix delay on tab resizing when (un)hovering tabs (GH-78777).
- Fix invalid minimum size for translated messages in option button (GH-78835).
- Fix incorrect property names in
FontFile::_get_property_list()
(GH-78907). - Add compatibility properties to
TouchScreenButton
(GH-78940). - RTL: Add
pop_all
,push_context
andpop_context
methods, and use it forprint_rich
to avoid unclosed tags (GH-79011). - Move cached values into
color_mode.cpp
and apply fixes to OKHSL (GH-79037). - Bind missing default value for
RichTextLabel
methods (GH-79053). - Rename
button_pressed
default signal binding to avoid shadowing (GH-79064). - Revert "Fix focusloss of non-exclusive
AcceptDialog
withclose_on_escape
" (GH-79084). - Allow to focus individual tabs in
TabBar
/TabContainer
(GH-79104). - Enabled missing Tree title button font and font size theme settings (GH-79165).
- Debug CanvasItem redraw (GH-79169).
- Deselect curve point with RMB on the empty space (GH-79175).
- Add
closed
property to Line2D (GH-79182). - Update FileDialog button activity when
file_mode
is changed (GH-79211). - Make
SubViewportContainer
event propagation aware of focused Control (GH-79248). - HarfBuzz: Update to version 8.0.0 (GH-79260).
- ICU4C: Update to version 73.2 (GH-79272).
- FreeType: Update to version 2.13.1 (GH-79273).
- Check
FLAG_POPUP
to close an AcceptDialog when parent is focused (GH-79293). - Remove GraphNode's comment property and related functionality (GH-79307).
- Clean up/refactor GraphEdit (GH-79308).
- Clean up/refactor GraphNode and make it more flexible (GH-79311).
- Fix
Tree
performance regression by using cache (GH-79325). - macOS: Add
about_to_open
andpopup_hide
callback for the global menus (GH-79361). - Add a default theme for unfocused Windows (GH-79393).
- Fix Button clipping when internal margins exist (GH-79455).
- Fix native popups auto-closing when interacting with non-client area (GH-79456).
- Make
OptionButton
resize when disabling "Fit to Longest Item" (GH-79494). - Add drag'n'drop text option for
LineEdit
andRichTextLabel
(GH-79563). - macOS: Fix uncapped frame rate for windows in the non-active workspaces (GH-79572).
- Fix
root_node_layout_direction
project setting being incorrectly exposed as a range (GH-79611). - Fix corner radius not scaling with theme scale in the default theme (GH-79640).
- Snap CharFX offset to nearest pixel when setting is enabled (GH-79705).
- Remove spaces from input of HTML color in color picker (GH-79782).
- Correctly display tooltips for buttons in Tree when they overlap cell content (GH-79792).
- Prevent SubViewportContainer overriding Subviewport's cursor with its own cursor (GH-79805).
- RichTextLabel: Ensure the
select_all
function selects all items (GH-79818). - [Text Server] Fix ellipsis outline drawing (GH-79844).
- Label: Remove extra line spacing from Label minimum size calculations (GH-79913).
- Fix Tree check propagation not unchecking parent items (GH-79946).
- Free submenu children when clearing PopupMenu (GH-79965).
- Expose
Window
's_get_contents_minimum_size()
to scripting (GH-80178). - Handle potential platform-specific
Window
mouse-enter/exit bugs gracefully (GH-80187). - Add shortcut handling to
OptionButton
(GH-80203). - Improve
Window._get_contents_minimum_size()
's code (GH-80219). - Expose the
TabBar
of aTabContainer
(GH-80227). - Fix scrolling
PopupMenu
on keyboard/controller input (GH-80271). - Further separate icon from text of buttons in both editor and default themes (GH-80285).
- Dismiss currently visible or upcoming tooltips when pressing Escape (GH-80364).
- Fix
OptionButton
minimum size when "Fit Longest Item" is enabled (GH-80366). - Fix
Button
text when the overrun behavior is other than "No Trimming" (GH-80402). - RTL: Add support for image dynamic updating, padding, tooltips and size in percent (GH-80410).
- Fix CodeEdit completion being very slow in certain cases (GH-80472).
- Support other input methods on Popup/Dialogs'
_input_from_window
(GH-80594). - [Bitmap fonts] Add support for scaling (GH-80605).
- RTL: Improve scroll bar responsiveness during updates (GH-80606).
- Add buttons to reorder inspector array items without dragging (GH-80617).
- Fix 2D/3D viewport context switching issues when script editor is floating (GH-80647).
- TextServer: Fix system font fallback and caret/selection behavior for composite characters (GH-80650).
- Allow comma as a decimal separator for SpinBox (GH-80699).
- TextServer: Fix issues with character breaks, add more tests (GH-80777).
- Fix crash when hiding subwindow during popup of new subwindow (GH-80780).
- Exit early in
TextEdit::_get_column_pos_of_word
to improve highlight performance (GH-80809). - Fix "Go to parent folder" in
EditorFileDialog
(GH-80821). - RTL: Fix
remove_paragraph
crashes (GH-80847). - RTL: Adds "lang" tag to allow overriding language specific text rendering without starting a new paragraph (GH-80848).
- RTL: Improve performance by using list iterators for item/paragraph removal (GH-80857).
- Fix ColorPicker deferred mode not working for sliders (GH-80916).
- TextServer: Store extra spacing of individual font variations (GH-80954).
- Deselect multi caret when alt clicking on it (GH-80956).
- FileDialog: Avoid selecting the first item automatically in Open Folder Mode (GH-81034).
- Fix setting TabContainer's
font_hovered_color
theme property (GH-81040). - RTL: Fix character line index for non-visual characters and characters on the line edge (GH-81064).
- Move default theme files to
scene/theme
(GH-81065). - Only allow finite numbers in
Range.value
(GH-81076). - Fix SpinBox not clearing text on improper input (GH-81094).
- TextServer: Fix SVG emoji placement (GH-81103).
- Fix a crash when plugin tries to call
make_mesh_previews
on enable (GH-81121). - Unfocus LineEdit when pressing Escape (GH-81128).
- Implement a system to contextualize global themes (GH-81130).
- ItemList: Draw separators before selected style boxes (GH-81155).
- Fix TreeItem range slider not working properly (GH-81174).
- Fix ItemList not updating when icon scale changes (GH-81268).
- Fix ThemeDB initialization in tests (GH-81305).
- Register theme properties with ThemeDB (GH-81312).
- Update and properly list versions of the built-in fonts (GH-81326).
- Fix
TextEdit.get_rect_at_line_column returning
negative pos even though cursor is in viewable area of the control (GH-81354). - TextServer: Use locale or first span language to select preferred direction for neutral text (GH-81361).
- Remove unnecessary validity checks from
Button
andTextureRect
(GH-81383). - Fix TextEdit placeholder with Inherited text direction (GH-81396).
- TextServer: Pass Dictionary properties by value and check property values instead of references (GH-81406).
- Fix subpixel layouts in text rendering (GH-81438).
- LineEdit: Update line edit offset on text delete (GH-81443).
- Correctly setup tooltip's style as theme variation (GH-81463).
- Fix submenu alignment with parent menu item (GH-81477).
- Fix accessing editor theme items throughout the UI (GH-81516).
- Hide the
dialog_text
property fromFileDialog
(GH-81546). - Bind remaining theme properties to their respective classes (GH-81551).
- Improve the looks of 2D/3D viewport contextual toolbars (GH-81557).
- Use bound theme properties for documentation (GH-81573).
- Make
GraphEdit
toolbar more customizable (GH-81582). - Fix GraphEdit port valid connections incorrectly checking sides (GH-81600).
- Expose
PopupMenu
activate_item_by_event
method (GH-81621). - Fix SpinBox will reset unsubmitted text when redrawing (GH-81638).
- Remove the equality check for
TabBar.set_tab_metadata
(GH-81648). - Enable transparent background for GUI tooltips (GH-81669).
- Connect
CodeHighlighter
withTextEdit
without friend-access (GH-81921). - Replace flat buttons with flat-styled buttons with a visible pressed state (GH-81939).
- Check for type variations in inherited themes (GH-82218).
- Fix tooltips behaving incorrectly on
Tree
nodes (GH-82226). - Add Font and Mesh icons that aren't grayed out (GH-82302).
- Rename close requests to delete requests in
GraphEdit
(GH-82370). - Make hovered tabs be drawn with the unselected's width at minimum (GH-82384).
- Document, cleanup and fix some theme properties (GH-82409).
- TextServer: Store font extra spacing variations without making a full copy of font (GH-82475).
- FileDialog: Make
set_visible
compatible with native dialogs (GH-82552). - Tweak the region folding icons (GH-82653).
- Fix storing invalid item height values in
ItemList
(GH-82660). - SystemFont: Check name when selecting the best matching face from a collection (GH-82712).
- [File Dialog] Do not open native file dialogs in the edited scene (GH-82743).
- Organize TextEdit's inspector (GH-82776).
- Place LineEdit secret in its own section (GH-82811).
- Accept cancel event when unfocusing LineEdit (GH-82914).
- Fix right-click menu position for the debugger breakpoint tree (GH-82924).
- RTL: Remove unnecessary glyph position rounding (GH-82970).
- Do not apply extra spacing twice (GH-83062).
- Allow clicking buttons of non-selectable TreeItems (GH-83065).
- Remove vertical scrollbar padding from line width calc (GH-83286).
- Fix phantom tab right button (GH-83296).
- Fix incorrect offset of
PopupMenu
separator icons (GH-83517). - Add bulk change guards to successive theme overrides in Editor and GUI (GH-83626).
- Fix
TabBar
andTabContainer
dragging issues (GH-83637). - Fix missing initial position modes for the main window (GH-83824).
- TextServerAdvanced: Keep dynamically loaded ICU data in memory (GH-83827).
- Increase precision of RAW mode in ColorPicker (GH-83851).
- Fix GraphNode slot index inconsistency (GH-83892).
- Save current tab in
TabBar
andTabContainer
(GH-83893). - Fix BaseButton
shortcut_feedback
's timer will raise error when the button is removed from the scene tree (GH-83925). - Translate TextEdit placeholder (GH-83946).
- Ensure input event is valid in
PopupMenu::activate_item_by_event
(GH-83952). - [Menu Bar] Update min. size when items are added/removed/changed (GH-83961).
- Fix disabled tabs being selected when removing the current one (GH-83963).
- Fix
TabContainer
drag to rearrange issue (GH-83966). - Fix TreeItem truncating node names too much when using a custom icon (GH-84001).
- Add foreign validation warning for rename actions (GH-84022).
- Include empty type variations in
Theme::get_type_list
(GH-84127). - [Text Mesh] Fix incorrectly cached glyph offsets (GH-84180).
- Fix
activate_item_by_event
infinite recursion crash (GH-84183). - TextServer: Fix glyph comparator ambiguous output (GH-84232).
- RTL: Fix underline/strikethrough line color changes (GH-84233).
- TextServer: Fix line breaks for dropcap and resizing embedded objects (GH-84287).
- Fix
ColorPicker
shape icon is invisible until shape is changed (GH-84535). - Make mouse enter/exit notifications match mouse events (GH-84547).
- RTL: Fix list bullet alignment (GH-84605).
- Warn about autowrapped labels in containers (GH-84662).
- Allow auto-generated node names in
PopupMenu::add_submenu_item
(GH-84668). - Add protection in
RichTextLabel.update_image
to prevent crash (GH-84833). - Make Tree's
set_selected
check if the TreeItem belongs to the tree (GH-84870). - Fix remapped font reloading on locale change (GH-84873).
- RTL: Fix excessive underline and table border draw calls (GH-84874).
- Add GraphEdit connection layer child as internal (GH-85009).
- Fix crash when hiding a Control during mouse-entering (GH-85284).
- Fix crash on late mouse enter/exit event arrival (GH-85418).
Import
- Fix ImageTextureLayered serialization issues (GH-71394).
- Add support for KTX image format so that we can use Basis Universal for GLTF (GH-76572).
- Add more physics options to the Scene importer (GH-77533).
- Fix reimporting files with non lowercase name extension (GH-78567).
- Add support for GLTF extension KHR_materials_emissive_strength (GH-78621).
- GLTF: Internal renames in material parsing code (GH-78622).
- Add layer, shadow and visibility range options to the Scene importer (GH-78803).
- Allow change import type without restarting editor (GH-78890).
- Fix property hint class name type string restriction and replace mode (GH-79139).
- Lossy WebP: Enable sharp RGB to YUV conversion (GH-79257).
- Add copyright to GLTFState (GH-79267).
- GLTF: Allow specifying export image format including from extensions (GH-79314).
- Add
KHR_materials_emissive_strength
extension support for exporting GLTFs (GH-79421). - GLTF: Preserve the original bytes when extracting a texture while importing (GH-79533).
- Add
export_preserialize
to the GLTF export process (GH-79623). - Set
base_path
andfilename
during GLTF export when writing to a file (GH-79636). - Improve overriding the root type or root name in the scene importer (GH-79774).
- Cosmetic changes in GLTF node generation code (GH-79775).
- Improve GLTF export logic for scene root nodes (GH-79801).
- Fix reimporting scene with default values selected (GH-79907).
- Update ThorVG to v0.10.0 (GH-80095).
- Fix error message when reimporting resources with an empty scene open (GH-80149).
- More cosmetic improvements in the GLTF code (GH-80205).
- Fix doubly-reserved unique names in GLTF scene name assignment (GH-80270).
- GLTF: Improve logic for keeping track of the real root node (GH-80272).
- Use image index instead of texture index for
source_images
(GH-80314). - Register and cleanup resource importer singletons in a predictable way (GH-80377).
- GLTF: Add center of mass property (GH-80463).
- Limit mesh complexity in LOD generation to prevent crashing (GH-80467).
- Fixed editor filesystem/import properties not being caught by the doctool (GH-80576).
- GLTF: Add a comment for skinned mesh tree placement (GH-80807).
- Fix skeletons when generating multiple Godot scenes from one GLTF (GH-80831).
- Make DDS loading code only check for R channel bitmask when loading grayscale images (GH-80862).
- Update Importing 3D scenes links to match splitting PR (GH-80872).
- Fix "Import Defaults" selector not being initialized incorrectly (GH-80914).
- Fix grayscale DDS loading (GH-81134).
- Update Blender export flags for 3.6 (GH-81194).
- GLTF: Change "Camera3D" generated node name to "Camera" (GH-81264).
- GLTF: Add root node export options and
GODOT_single_root
extension (GH-81851). - Fix ImporterMesh bone weight handling during lightmap unwrap (GH-81854).
- Disable bounding box shadows for advanced scene importer (GH-82190).
- Fix GLTF importer forcing vertex colors on all materials (GH-82272).
- Avoid crash when generating LODs on meshes with non-finite vertices (GH-82285).
- Fix Image import crash (GH-82408).
- Avoid import dock cleanup for non-loadable assets (GH-82490).
- Fix the Advanced Import Settings window's 3D camera (GH-82591).
- ThorVG: update to v0.11.1 (GH-83281).
- Make translation importer skip not-supported lang tag, make it more robust (GH-83600).
- Prevent crash from importing a certain kind of invalid GLTF (GH-83663).
- Fix infinite loop when importing 3D object named "-colonly" (GH-83764).
- Fix crash when reimporting with Skeleton3D selected (GH-83964).
- Add method check for
_notify_skeleton_bones_renamed
(GH-83986). - Enhance checks and user experience around tangent arrays in meshes (GH-84252).
- Implement glTF compatibility system for files imported in older Godot versions (GH-84271).
- Scan the filesystem in the first frame when using headless mode (GH-84570).
- Use the Blender file name instead of the generated GLTF file name (GH-84678).
- Fix Resource Importer use after free (GH-84872).
Input
- Check if input marked handled before processing additional CollisionObjects (GH-48800).
- Add Unit tests for viewport.cpp Physics 2D Picking (GH-73477).
- Fix code editor scrolling experience on track pads (GH-73502).
- Prevent double input events on gamepad when running through steam input (GH-76045).
- Implement
DisplayServer.keyboard_get_label_from_physical
method (GH-77993). - Fix Physics Picking captured Object initialization (GH-78383).
- Add the ability to get per-platform information for joypads (GH-78539).
- Mention Xbox menu button by name in Start button description (GH-78701).
- Android: Set
echo
property for the physical keyboard events (GH-79089). - Fix physics passive hovering with
MOUSE_FILTER_IGNORE
(GH-79443). - Make GridMap shortcuts editable and not conflict with other plugins (GH-79529).
- Separate input-handled-state for different events during physics-picking (GH-79546).
- Fix crash on Windows when closing
Window
(GH-80142). - Ensure TileMap editor shortcuts are handled (GH-80317).
- Fix nodes receiving mouse events in black bars of
Window
(GH-80334). - Properly load multiple action sets in XR (GH-80419).
- Ensure
joy_connection_changed
is emitted on the main thread (GH-80432). - Android Stylus pressure and tilt support (GH-80644).
- Fix GridMap shortcuts that should not be physical (GH-80774).
- Fix action state when multiple events are assigned (GH-80859).
- Fix Android input routing logic when using a hardware keyboard (GH-80932).
- Add missing YEN, SECTION and OPENURL names to keycode mappings (GH-81054).
- Prevent axis-based actions from getting stuck (GH-81170).
- Android: Fix joypad trigger value range (GH-81322).
- Fix
Input.is_action_just_pressed
flicker on joypad axes (GH-82056). - Make InputEventShortcut always pressed (GH-82203).
- Sync controller mappings DB with SDL2 community repo (GH-82245).
- Add XInput device ID for wireless Series 2 Elite controller (GH-82508).
- Fix the timeframe when the Android gestures properties are retrieved (GH-83173).
- Fix Android logic for deferred window input events being inverted (GH-83301).
- Fix shortcut input for
EditorSceneTabs
(GH-83501). - Sync controller mappings DB with SDL2 community repo (GH-83845).
- Add save shortcut for text shader editor to prevent it propagating to scene (GH-84064).
- Fix stuck cursor in Advanced Scene Importer (GH-84661).
- Rework input actions to be reliable (GH-84685).
Multiplayer
- Disallow nested custom multiplayers in
SceneTree
(GH-77829). - Prevent crash when accessing
Node
Multiplayer from thread (GH-79332). - Use
get/set_indexed
in MultiplayerSynchronizer (GH-79479). - [Net/ENet] Better handle truncated socket messages (GH-79699).
- ENet: Properly set transfer flags when using custom channels (GH-80293).
- Fix watch properties not being correctly removed (GH-81033).
- Improve SceneReplicationConfig editor UX + optimizations (GH-81136).
- Various performance optimizations (GH-82777).
- Copy network authority when instancing placeholders (GH-82846).
- Fix synchronizer init and reset (GH-83264).
- Fix "on change" indexed properties (GH-83279).
- Display multiplayer authority ID in remote debugger (GH-83437).
Navigation
- Add NavigationRegion function to change navigation map (GH-77191).
- Add ProjectSettings navigation map default up (GH-78365).
- Add more basic tests for
NavigationServer3D
(GH-78480). - Add advanced
NavigationServer3D
tests (GH-78667). - Fix closest possible navigation path position (GH-79004).
- Add NavigationServer API to enable regions and links (GH-79129).
- Mark NavigationServer3D.region_bake_navigation_mesh() as deprecated (GH-79137).
- Add
clear
function to NavigationMesh / NavigationPolygon (GH-79157). - Fix pathfinding funnel adding unwanted point (GH-79228).
- Fix NavigationObstacle2D debug position (GH-79392).
- Make NavigationRegion3D baking NavMesh on the main thread not finish deferred (GH-79465).
- Change 2D navigation ProjectSettings from integers to floats (GH-79483).
- Set default
cell_size
on new TileMap Layer navigation layer maps (GH-79485). - Add more hints to navigation map cell size errors (GH-79489).
- Add a
fill_region
method to theAStarGrid2D
(GH-79495). - Move navigation mesh baking to NavigationServer (GH-79643).
- Disable NavigationMesh
edge_max_length
property by default (GH-79786). - Add multi-threaded NavMesh baking to NavigationServer (GH-79972).
- Fix NavMesh
map_update_id
returning 0 results in errors (GH-80189). - Fix missing include for
NavigationMesh
(GH-80408). - Add 2D navigation mesh baking (GH-80796).
- Suppress expected errors in navigation-related unit tests (GH-80833).
- Fix compiling with 3D disabled due to unused navigation variable (GH-81295).
- Core: Some code style improvements to
AStarGrid2D
(GH-81900). - Fix typo in dev assert in NavMeshGenerator2D (GH-82368).
- Update TileMap to use new navigation polygon baking (GH-82465).
- Fix NavigationObstacle3D debug being affected by rotation and scale (GH-82593).
- Fix enabling NavigationRegion3D saved disabled (GH-83365).
- Fix "Navigation map synchronization error" when using NavigationRegion2D (GH-83568).
- Fix NavRegion sync error messages (GH-83574).
- Fix NavigationObstacle3D height (GH-83701).
- Fix NavigationAgent3D stored y-axis velocity and make it optional (GH-83705).
- Fix NavigationLink enabled toggle (GH-83709).
- Fix hole in heightmap navigation mesh baking (GH-83783).
- Fix potential crashes with TileMap navmesh baking (GH-83891).
- Fix NavigationObstacle3DEditor parenting error (GH-84055).
- Fix NavigationObstacle elevation (GH-84830).
- Fix NavigationObstacle height (GH-84857).
Network
- Fix
rpc
calls with binds (GH-78551). - Web: Fix WebSocket returning empty close-reason (GH-79407).
- Web: Always return -1 as body length in HTTPClientWeb (GH-79846).
Particles
- Add
finished
signal to CPUParticles (GH-76853). - Add
finished
signal to GPUParticles (GH-76859). - Initialize particles instance buffer in case it is used before being updated (GH-78852).
- Add option to center image when loading particle emission mask (GH-78944).
- Unify error condition for particles trail lifetime (GH-79270).
- Particle internal refactor and additions for more artistic control (GH-79527).
- Fix particle shader deterministic random values (GH-80638).
- Add motion vector support for GPU 3D Particles (GH-80688).
- Implement conversion from
CPUParticles
toGPUParticles
(3D/2D) (GH-80779). - Fix GPUParticles2D offset stutter (GH-80984).
- Fix z-billboard + y to velocity transform alignment to correctly respect non-uniform scale (GH-81315).
- Fix errors when freeing GPUParticles (GH-82431).
- Fixed multiple particle issues: division by zero, color ramp override, scale dependent on amount ratio (GH-83488).
- Fix typo in particles process material when using emission color texture (GH-83620).
- Fix massive performance hit due to enabling collision (GH-83749).
- Fix directed points not working, and fix friction formula (GH-83831).
- Fix
noise_direction
variable used before initialized in particle shader when using turbulence with collisions (GH-83881). - Fix invalid parameter ranges (GH-84006).
- Fix friction being in the correct if/else branch (GH-84028).
- Fix damp as friction not updating shader code (GH-84029).
- Fix wrong rotation matrix for orbit z velocity (GH-84056).
- Fix turbulence post rework (GH-84103).
- OpenGL: Fix uninitialized memory usage for GPUParticles
interp_to_end
(GH-84189). - Fix several Material texture parameter updates (GH-84303).
- Fix several ParticleProcessMaterial texture names (GH-84829).
- Fix radial inwards velocity clamping incorrectly (regression from #83488) (GH-85252).
Physics
- Add ability to get face index and barycentric coordinates from raycast (GH-71233).
- Add Mass Distribution, Deactivation, Solver inspector property groups (GH-77943).
- Correctly set mass for a rigid body with custom inertia and center of mass (GH-78757).
- Add
hit_back_faces
property toRayCast3D
(GH-79330). - Add state sync after call to
_integrate_forces
in_body_state_changed
(GH-79977). - Fix unit suffix for
HingeJoint3D
's target velocity (GH-80523). - Fix gizmo for
BoxShape3D
(GH-80689). - Expose the
get_rid
method of Joint2D and Joint3D (GH-80736). - Fix possible crash when Control overrides mouse input on Area2D (GH-81006).
- Update PinJoint2D API with angle limits and motor speed (GH-81610).
- Fix missing clear for some
set_exclude*
query parameter methods (GH-82043). - Fix performance regression in RigidBody2D/3D and PhysicalBone3D (GH-82393).
- Fix not refitting upward from leaf nodes (GH-82482).
- Tweak Gravity Scale property hints to make dragging more useful (GH-82634).
- Allow TileMap physics/navigation to still work when hidden (GH-83560).
- Fix unit suffixes for
Generic6DOFJoint
(GH-83672). - Ensure SoftBody3D does not use compressed mesh format (GH-84165).
- Fix rotated tile collision not working at runtime (GH-84261).
- Fix transform changes in
_integrate_forces
being overwritten (GH-84799). - Fix transform sync in
RigidBody*D::_body_state_changed
(GH-84924). - Update tilemap physics' World2D on reparenting (GH-84968).
Plugin
- Add
_get_unsaved_status()
method to EditorPlugin and implement it for script and shader editors (GH-67503). - Expose editor viewports in EditorInterface (GH-68696).
- Allow changing feature profile via
EditorInterface
(GH-74382). - Fix Camera2D is not working inside a MainScreenEditorPlugin (GH-79867).
- Keep
_export_begin()
'spath
argument always consistent (GH-81016). - Relax restriction on loading v1 Android plugins on Godot 4.2+ (GH-81368).
- Cleanups and improvements to the Godot Android library api (GH-82893).
- Editor: Fix
remove_control_from_dock
fails when dock is floating (GH-83512).
Porting
- [macOS, sandbox] Implement optional native file selection dialog support for sandboxed apps (GH-47499).
- Add
clipboard_has/get_image
methods to DisplayServer (GH-63826). - Refactor Godot Android architecture (GH-76821).
- Windows: Flash both the window caption and taskbar button on
request_attention
(GH-78263). - Add error checks and harmonize behavior of the
set_icon
method (GH-78437). - Fix formatting of dlopen error message on Windows (GH-78802).
- macOS: Fix
set_native_icon
crash with empty or invalid ICNS file (GH-79010). - Windows: Fix setting initial non-exclusive window mode (GH-79016).
- [macOS/iOS] Set MoltenVK logging level based on
--verbose
flag (GH-79061). - Fix the fallback logic of
OS::shell_show_in_file_manager
(GH-79087). - Avoid freeze when interacting with menus on Wayland by re-aquiring next swapchain image after updating swapchain (GH-79143).
- Fix Linux
move_to_trash
wrongly reporting files as not found (GH-79284). - Fix
ProjectSettings::localize_path
for Windows paths (GH-79342). - Windows: Implement native file selection dialog support (GH-79574).
- Fix NullPointerException when registering the sensors (GH-79681).
- Windows: Initialize COM as apartment-threaded (GH-79693).
- Add
proxy_to_pthread
option toplatform=web
(GH-79711). - Fix file permissions for the web platform (affects every Unix-like platform) (GH-79866).
- Use EWMH for
DisplayServerX11::_window_minimize_check()
implementation (GH-80036). - Web: Update npm packages (GH-80092).
- [Linux/Freedesktop] Implement native file selection dialog support (GH-80104).
- Windows: Do not force redraw window background on mouse pass-through region change (GH-80153).
- X11: Do not fail DisplayServer init if non-essential extensions are missing (GH-80240).
- Track hovered
Window
inDisplayServerX11
(GH-80279). - FileAccess: Add methods to get/set "hidden" and "read-only" attributes on macOS/BSD and Windows (GH-80404).
- DisplayServer: Add method to estimate window title bar size (GH-80409).
- macOS: Fix missing mouse exit events on window close (GH-80439).
- Android: Change the default "org.godotengine" package name to "com.example" (GH-80761).
- [Native File Dialogs] Refocus last focused window on close (GH-80952).
- Make Windows' safe save more resilient (GH-81001).
- Fix JavaScript callback memory leak issue (GH-81105).
- [Native File Dialogs] Improve filter list handling, add selected filter to the callback (GH-81218).
- macOS: Fix live resize with the latest MoltenVK version (GH-81339).
- Implement
clipboard_get
/has_image
for X11 (GH-81439). - Web: Disable raycast module by default (no occlusion culling) (GH-81716).
- Windows: Use clear color for non exclusive fullscreen border, fix maximize for borderless window switching to exclusive fs (GH-82031).
- macOS: Enforce non-zero window size (GH-82037).
- X11: Add support for using EGL/GLES instead of GLX (GH-82101).
- Support dark mode on Android and iOS (GH-82230).
- macOS: Fix borderless mode on macOS 13.6+ (GH-82357).
- macOS: Check all exclusive fullscreen windows before setting presentation mode (GH-82423).
- Web: Clarify that
OS.get_unique_id
is not supported (GH-82441). - Fix
godot_js_wrapper_create_cb
regression (GH-82736). - macOS: Fix ambiguous method call with older SDKs (GH-82876).
- Add method to check if filesystem is case sensitive (GH-82957).
- macOS: Use occlusionState instead of isOnActiveSpace to determine when window is drawable (GH-83096).
- Web: Improve Emscripten
locateFile
glue (GH-83165). - Add error messages to the native menu and file dialogs callback (GH-83181).
- macOS: Fix crash when using system default menu shortcuts (GH-83243).
- Linux: Implement
DirAccess.is_case_sensitive
for EXT4 and F2FS (GH-83266). - Improve X11
screen_get_refresh_rate
performance (GH-83902). - Add support for EGL 1.4 (GH-83930).
- Update the
launchMode
for theGodotApp
activity (GH-83954). - Fix freeze when requesting clipboard image from our own window (GH-83970).
- Fix macOS and Windows build with statically linked ANGLE/EGL (GH-83988).
- TTS_Linux: Fix size_t template issue on OpenBSD by using int consistently (GH-84017).
- Fix retrieving command line flags in Android (GH-84102).
- Fix Android editor crash issue when pressing Back (GH-84414).
- Fix Android disabling splash screen Show Image (GH-84491).
- Fix bug where maximized->fullscreen->windowed mode stays maximized (GH-84504).
- X11: Add fallback from desktop GL to GLES, suppress PRIME detector error spam (GH-84513).
- macOS: Fix fullscreen <-> exclusive fullscreen transition (GH-84649).
- macOS: Fix transparent and borderless flags interaction with full-screen mode (GH-84683).
- macOS: Process events before changing title style to update window frame (GH-84927).
- Fix issue causing Godot Android apps / games to freeze on close (GH-85454).
- Fix an issue causing the running project window to loop-restart when closed (GH-85457).
Rendering
- Fix directional LightmapGI being too dark with static lights (GH-61910).
- [macOS/Windows] Add optional ANGLE backed OpenGL renderer support (runtime backend selection) (GH-72831).
- Abort on startup with a visible alert if required Vulkan features are missing (GH-73999).
- Add content scale stretch modes, implement integer scaling (GH-75784).
- Draw frustum splices on top of direction shadow atlas for debug purposes (GH-77085).
- Split raster barrier into vertex and fragment barrier (GH-77420).
- Implement 3D shadows in the GL Compatibility renderer (GH-77496).
- Replace sampler arrays with constant sampler elements, simplify and reuse code for all shaders (GH-77740).
- Add support for GLSL source-level debugging with RenderDoc (GH-77975).
- Use Gaussian approximation for backbuffer mipmaps in GL Compatibility renderer (GH-78168).
- Clear specular buffer if sky mode is canvas and screen space effects are used (GH-78624).
- Fix threading bug in Vulkan rendering device (GH-78794).
- Fix sanitizers reports about octahedral tangents in RenderingServer (GH-78902).
- Take eye offset into account for depth in StandardMaterial3D (GH-79049).
- Expose RenderSceneBuffers(RD) through ClassDB (GH-79142).
- Clear the previously set state when configuring for a new scene root node (GH-79201).
- Add custom texture create function (GH-79288).
- Fix missing
_THREAD_SAFE_METHOD_
missing fromRenderingDeviceVulkan
submit
andsync
(GH-79526). - Fix crash when calling
get_video_adapter_*
in a thread (GH-79528). - GLES3: Reset anisotropic filtering when changing texture filtering mode (GH-79568).
- Fix bad LOD selection when Camera in Mesh AABB (GH-79590).
- Fix instance uniform data buffer update delay (GH-79603).
- ShaderRD compilation groups (GH-79606).
- Revert the change of the limit for interpolation of F0 for dielectrics and metals for Screen Space Reflections (GH-79624).
- Fix GLES3 multimesh rendering when using colors or custom data (GH-79660).
- GLES3: Don't call
glTexParameter*
for invalid filter and repeat modes (GH-79685). - Add ability to call code on rendering thread (GH-79696).
- Unbind the framebuffer when updating meshes (GH-79772).
- Mobile: Uncomment code required for fog rendering on clear color (GH-79776).
- Use defaults to initialize sky data in case of no sky (GH-79812).
- Fix Vulkan multithreaded compute list and GPU particle processing (GH-79849).
- Fix use of discard in shaders (GH-79865).
- Lazily allocate RIDs for PlaceholderTextures to avoid allocating GPU resources unless used (GH-79874).
- Fix transparent viewport backgrounds with custom clear color (GH-79876).
- Check if shader cache directory is available before using cache (GH-79883).
- Vulkan: Fix dangling pointers in
_clean_up_swap_chain
(GH-79884). - Add exceptions for breakage introduced in RD barriers (GH-79911).
- Make Fresnel darken SSR instead of blending with specular (GH-79921).
- Initialize MSDF parameters in BaseMaterial3D with default (GH-79983).
- Fix uninitialized variable ending up sent to Vulkan (GH-80034).
- Enable depth writes during shadow pass and depth pass. Disable during color pass (GH-80070).
- Fix validation layer warnings (GH-80071).
- Fix GLES3 changing 2D shadow atlas size is broken (GH-80151).
- Add option to enable HDR rendering in 2D (GH-80215).
- Initialize shader placeholders up front (GH-80222).
- Fix motion vectors being corrupted when using
precision=double
(GH-80257). - Vulkan: Fix sanitizers error with empty shader name (GH-80288).
- Enhance Vulkan PSO caching (GH-80296).
- Use fullscreen tri instead of quad (GH-80311).
- Fix validation error when enabling SSIL alone (GH-80315).
- Ensure
POINT_SIZE
takes effect in the canvas item shader (GH-80323). - Fix integer underflow when rounding up in VoxelGI (GH-80356).
- Fix issue with four subpasses always been requested in mobile renderer (GH-80368).
- Remove GPU readback from
NoiseTexture3D.get_format()
(GH-80407). - Improve handling of motion vectors for multimesh instances (GH-80414).
- Add
buffer_copy
method to RenderingDevice (GH-80424). - Clamp Volumetric Fog Length property to prevent rendering issues (GH-80485).
- Fix tonemapper, incorrect vertex count was specified (GH-80502).
- Fix critical regressions introduced in PR #80414 (GH-80552).
- Fix validation error when resizing window (GH-80571).
- Add motion vector support for animated surfaces (GH-80618).
- Fallback to linear color texture when using 2D HDR and MSDF font (GH-80651).
- Fix global shader uniform texture loading (GH-80654).
- Improve visual feedback when using the motion vectors debug view option (GH-80723).
- Fix Vulkan texture update (GH-80781).
- Fix memory access error for
MultiMesh
with GLES3 (GH-80788). - Fix Vulkan crash with many Omni/SpotLights, Decals or ReflectionProbes (GH-80845).
- Implement OpenXR Foveated rendering support (GH-80881).
- Clear SDFGI textures when created (GH-80889).
- Fix integer value for
GL_MAX_UNIFORM_BLOCK_SIZE
overflowing (GH-80909). - Fix missing decal mask in mobile renderer (GH-80911).
- Fix clear color on mobile renderer (GH-80933).
- Fix volumetric fog NaN values in textures from starting at a zero Vector2 (GH-80992).
- GLES3: Fix
glMapBufferRange
return null whenr_index + last_item_index > max_instance
(GH-81036). - Fix missing
EARLY_FRAGMENT_TESTS_BIT
barrier flags (GH-81059). - Fix VoxelGI CameraAttributes exposure normalization handling (GH-81067).
- Flip convention of motion vectors (GH-81074).
- Fixup special case of cluster render (GH-81081).
- Fix VoxelGI static light pairing (GH-81124).
- Vertex and attribute compression (GH-81138).
- Add render mode to use world coordinates in canvas item shader (GH-81160).
- Reset SDFGI when changing editor scene tabs (GH-81167).
- Add FidelityFX Super Resolution 2.2 (FSR 2.2.1) support (GH-81197).
- Add placeholder RID to GradientTexture1D (GH-81198).
- vulkan: Update all components to Vulkan SDK 1.3.261.1 (GH-81219).
- Windows: Fix not applying NVIDIA profile to new executables (GH-81251).
- Implement render mode
fog_disabled
and BaseMaterial3D setting Disable Fog (GH-81286). - Use 16-bit index buffers instead of 32 when unnecessary (GH-81288).
- Fix
RDPipelineColorBlendState.attachments
setter (GH-81333). - Fix mipmap bias behavior by refactoring how samplers are created by Material Storage (GH-81350).
- Fix clear color's alpha value will affects 2D editor in Compatibility mode (GH-81395).
- Propagate error correctly when max texture size for lightmaps is too small (GH-81543).
- Fix LightmapGI baking with GridMap (GH-81545).
- Fix GLES3 instanced rendering color and custom data defaults (GH-81575).
- Fix VoxelGI MultiMesh and CSG mesh baking (GH-81616).
- Improve GLES3 scene renderer compatibility with older devices (GH-81650).
- Replace OIDN denoiser in Lightmapper with a JNLM denoiser compute shader (GH-81659).
- Fix validation error when using pipeline cache control (GH-81771).
- Fix massive validation errors when enabling TAA + MSAA (GH-81775).
- Opt-in to Vulkan features we actually use (GH-81827).
- Add half-pixel offset to lightmapper rasterization (GH-81872).
- Polish a few things in Vulkan RD (GH-81912).
- Fix LightmapGI shading sometimes being unlit or black (GH-81951).
- Rewrite the GPU Lightmapper's indirect logic to match Godot 3.5's CPU Lightmapper (GH-82068).
- Fix ShaderGlobalsOverride property handling (GH-82100).
- Linux/OpenGL: Don't force vsync in the editor (GH-82221).
- Fix RaycastOcclusionCull World3D scenario memory leak (GH-82291).
- Optimizing glow behavior (GH-82353).
- Add device info to GLES3 shader cache key hash (GH-82359).
- ANGLE: Add fallback control options and defaults (GH-82364).
- Clamp ReflectionProbe Max Distance to 262,144 to fix rendering issues (GH-82415).
- Fix Decal clamping to positive values not being applied to RenderingServer (GH-82416).
- GLES3: Avoid freeing proxy textures clearing owner's data (GH-82430).
- Avoid trying to free null RIDs in FSR2 teardown (GH-82445).
- Fix mismatch between surface vertex array generation inside the function and the caller (GH-82451).
- Disable
lightmapper_rd
module in non-editor builds (and in Android editor) (GH-82521). - Make the lightmapper not dilate before denoising (GH-82533).
- Use internal texture at internal resolution for calculating luminance (FSR2) (GH-82534).
- Fix cluster artifacts and negative light (GH-82546).
- Workaround crash due to null shader when running XR project with
--xr-mode
off (GH-82679). - OpenXR: Properly skip frame render when the XR runtime is not yet ready (GH-82752).
- Forgot to add debanding to config object (GH-82766).
- Re-add optional OIDN denoise as an external executable (GH-82832).
- Fog shader: Fix undeclared identifier
global_variables
(GH-82877). - Avoid default fallback material when using
world_vertex_coords
(GH-82886). - Only perform modelview transform on tangent and binormal when vertex shader is in local space (GH-82892).
- Directional 2 Split Shadow stabilization fix (GH-82974).
- Fix VoxelGI bake memory leak (GH-83035).
- Fix
trace_ray()
function in the lightmapper missing hits with large triangles (GH-83040). - Fix incorrect check in
_dict_to_surf
(GH-83056). - Fix incorrect vertex data size calculation in
ImmediateMesh
(GH-83100). - Fix compatibility shadow size not being initialized (GH-83141).
- Disable update spinner when debug redraw is active (GH-83143).
- Fix BaseMaterial3D update with certain material settings (GH-83145).
- Fix a few cases where surface format is still 32 bits (GH-83169).
- Sanitize tangents when creating mesh surfaces to avoid triggering the compressed mesh path in the shader (GH-83179).
- Add an extra backbuffer color texture that can be used when an upscaler is in use (GH-83192).
- Fix
TextureStorage
not assigning default scale (GH-83199). - Cleanup instances of using uint32_t for mesh formats (GH-83211).
- Fix OpenGL directional shadow last split fading (GH-83252).
- Optimize lightmapper using triangle clusters on the acceleration structure (GH-83284).
- Fix disabling depth prepass break opaque materials (GH-83371).
- Fix Mobile renderer shader instance uniform access (GH-83400).
- Pass viewport size to shadow pass instead of using Vector2i(1,1) (GH-83491).
- Ensure that only visible paired lights are used (GH-83493).
- Bump version of Vulkan RD binary shader format (GH-83563).
- Fix shadow map debug visualization camera frustum index buffer size (GH-83639).
- Fixing incorrect normal map when using triplanar world mapping and mesh rotation (GH-83658).
- Some more fixes for compressed meshes (GH-83704).
- macOS: Fallback to native OpenGL renderer if ANGLE initialization failed (GH-83753).
- Fix
GPUParticles3D
on the Meta Quest 2 with OpenGL renderer (GH-83756). - Add property hint for 2D shadow size project setting (GH-83760).
- Ensure
r_aabb
is always used when creating surfaces through the RenderingServer (GH-83840). - Fix LightmapGI taking editor-only and sky-only lights into account (GH-83861).
- Add padding to normal attribute in Compatibility renderer to match the RD renderers (GH-83906).
- Fix reading shadow filter quality from project settings in compatibility (GH-83998).
- Fix crash when upgrading meshes from 3.x format (GH-84047).
- Fix multiple issues with UV compression (GH-84159).
- Parse OpenGL and Vulkan strings as UTF-8 (GH-84197).
- Overhaul the SurfaceUpgradeTool (GH-84200).
- Fix bug with alpha to coverage by enabling depth discard when using alpha to coverage (GH-84211).
- Fix cubemap downsampler logic (GH-84223).
- Fix WebXR on desktop emulator by resetting active texture unit (GH-84267).
- macOS: Improve ANGLE support detection (GH-84288).
- Use default samplers in base uniform set when rendering to reflection probes (GH-84317).
- Windows: Add some AMD GPUs to the OpenGL blocklist (GH-84568).
- Create tangent array if mesh created without tangents (GH-84576).
- Fix FogMaterial memory leak (GH-84702).
- GLES3: Protect against bogus
glGetShaderInfoLog
return values (GH-84741). - GLES3: Ensure all ShaderData is properly initialized in
set_code
(GH-84752). - Ensure optional CopyEffects variants are loaded last (GH-84883).
- Renderer Viewport correct
sizeof
usage (GH-84952). - GLES3: Fix iOS Simulator by removing incorrect
system_fbo
overwrite (GH-84955). - Ensure 2D MSAA resolve is performed when 3D content but no 2D content in scene (GH-84957).
- Prevent crash in
_nvapi_disable_threaded_optimization
when attached to renderdoc (GH-85121). - Avoid division by zero in the fix surface compatibility routine (GH-85138).
- Fix potential double-close of draw command label (GH-85147).
- Enable non-multiview advanced shader group whenever advanced shaders are requested (GH-85194).
Shaders
- Improve shader editor templates to be more descriptive (GH-51863).
- Add more useful Visual Shader nodes (GH-72664).
- Add DEPTH to the visual shader output (for spatial mode) (GH-73691).
- Support shader preprocessor concatenation symbol (GH-74737).
- Make the dragging connections more user-friendly in visual shaders (GH-78547).
- Fix invalid shader compilation when using
hint_normal_roughness_texture
in mobile backend (GH-78839). - Fix using uint suffix at the hex number declaration in shaders (GH-78906).
- Fix shader language float literal precision truncation (GH-78972).
- Fix "Create Shader Node" window position when visual shader editor is floating (GH-78996).
- Allow more hint types for uniform arrays (GH-79100).
- Make shader preprocessor keyword colors consistent (GH-79112).
- Fix comments and indentation in
.gdshaderinc
files (GH-79158). - Fix shader type detection (GH-79287).
- Add autocomplete for filter/repeat hints on uniform arrays (GH-79402).
- Add error for undefined function in shader (GH-79459).
- Remove debugging print from shader cache (GH-80125).
- Fix Shader and ShaderInclude resource loading (GH-80705).
- Fix empty shader resource loading (GH-81300).
- Fix shader language preprocessor include marker handling (GH-81381).
- Fix shader text editor include file reloading (GH-81410).
- Fix int to uint implicit cast error when use mat3 uniform in compatibility renderer (GH-81494).
- Re-allows constants in global space to be initialized with function call (GH-81619).
- Implement drop-down list properties to the custom visual shader nodes (GH-81688).
- Visual Shaders: Make output-ports for vector types expandable by default (GH-82088).
- Add preprocessor pass on visual shader when showing generated code (GH-82570).
- Fix typo in
shader_language.cpp
(GH-83004). - Close shader in Shader Editor tab when deleting shader file in FileSystem panel (GH-83137).
- Fix parameter shader node not declared when only connected to a VaryingSetter (GH-83189).
- Fix bool varying's generated code will be modified with flat (GH-83194).
- Fix visual shader crash when arranging (GH-83678).
- Prevent
_allocate_placeholders
crash ifp_version->variants
is null (GH-83780). - Fix inability to uncomment code in text shader editor (GH-83822).
- Fix assign with swizzle in shader not doing varying validation check (GH-83830).
- Properly rename
INSTANCE_ID
andVERTEX_ID
in canvas item shaders in the compatibility backend (GH-84585). - Don't store shader edit path in metadata (GH-84628).
- Fix VisualShader Texture2DParameter node filter bug (GH-84768).
- Fix VisualShader connection use after free (GH-84832).
- Make
AMOUNT_RATIO
constant in the shader language specification (GH-85086). - Set some dialogs in the VisualShader editor to be exclusive (GH-85205).
Tests
- Add unit tests for Variant for operator overloading (GH-76244).
- Add a test suite for TranslationServer (GH-79331).
- Add unit tests for PackedScene (GH-79440).
- Add a test suite to InputEvent (GH-79444).
- Remove use of
std::string
in test (GH-80422). - Improve PackedScene unit test for complex scene (GH-80423).
- Fix errors when testing
Resource
(GH-81456). - Adds additional tests for RegEx class (GH-82225).
- Simplify Geometry3D tests (GH-82288).
- Fix Variant assignment to Vec2 tests (GH-83959).
Thirdparty
- brotli: Sync with upstream 1.1.0 (GH-82580).
- freetype: Update to version 2.13.2 (GH-81110).
- harfbuzz: Update to version 8.2.2 (GH-84080).
- libpng: Update to upstream 1.6.40 (GH-80262).
- libwebp: Sync with upstream 1.3.2 (GH-81663).
- mbedtls: Fix MSVC ARM build after 2.28.3 enabled AES-NI intrinsics (GH-81405).
- mbedtls: Update to version 2.28.5 (GH-83721).
- mbedtls: Backport Windows fix to use bcrypt for entropy (GH-84042).
- miniupnpc: Update to version 2.2.5 (GH-80382).
- minizip: Fix
ZIPReader
failing to open empty zip files (GH-73310). - minizip: Backport patch to fix CVE-2023-45853 (GH-85509).
- openxr: Sync with upstream 1.0.31, don't build obsolete dispatch table (GH-83984).
- r128: Update to include latest fix for intrinsics being incorrect included (GH-84537).
- thorvg: Update to 0.11.2 (GH-83656).
- tinyexr: Sync with upstream 1.0.7 (GH-80384).
- zlib/minizip: Update to version 1.3 (GH-81111).
XR
- Expose OpenXR raw hand tracking data (GH-78032).
- Fix issue with accessing hand tracking without timing info (GH-78817).
- Change to new PICO interaction profiles (GH-79570).
- Compile OpenXR into MacOS build (GH-79614).
- Optimized the XRTracker by reusing XRPose objects to minimize garbage collection overhead in C# (GH-80198).
- Fix casts of XR handles in OpenXRExtensionWrapperExtension (GH-80656).
- Remove error print from
XRServer.find_interface
(GH-80730). - Ensure OpenXR classes are declared properly (GH-81037).
- Add XR tracking state-change signals (GH-81239).
- OpenXR: Fix missing add profile for Huawei (GH-81534).
- OpenXR: Fix error spam if session hasn't started yet (GH-81536).
- Fix issue with OpenXR environment blend mode not being applied properly (GH-81561).
- Add support for the OpenXR Eye gaze interaction extension (GH-82614).
- OpenXR - add access to hand joint validity flags (GH-82715).
- OpenXR: Fix small hand tracking issues (GH-82722).
- Skip 2D rendering if stereo enabled and fix couple of MSAA issues (GH-83649).
- Revert to
proxy_to_pthread=no
as default (GH-83837). - Fix OpenXR sample count (GH-84099).