Repository navigation
Redot 26.3 Changes and Enhancements
GDScript Enhancements
- Simplify
ScriptServer::get_global_class_listby @YYF233333 & Cherry picked by @Arctis-Fireblight - Core: Fix ClassDB class list sorting regression- #115923 by @GusatuDamianAlexandru & Cherry picked by @Arctis-Fireblight
- Introduced Traits to GDScript by @SeremTitus & @Arctis-Fireblight
- Add nullable static types to GDScript by @mcdubhghlas
- Introduced structs to GDScript by @mcdubhghlas & @decryptedchaos
- Improve GDScript keyword errors and dependency error navigation by @Arctis-Fireblight
UI Changes
- "create new node" description panel is now resizable by @joey-wheeler99
- add margin to file thumbnails in file explorer window by @joey-wheeler99
- Move script name to top by KoBeWi & ported by @joey-wheeler99
- Make ProjectList visually consistent with the ProjectManager by @DaveTheEggman
Editor Enhancements
- Cherry pick: Path3d snap to collider by @GustJc Cherry picked by @Tekkitslime
- Add custom folder coloring by @JoltedJon
- Cherry pick [Add game speed controls to the embedded game window] by DexterFstone & cherrypicked by @JoltedJon
- Animation selection in sprite or sprite frames editor are now undo-able by @GeneralProtectionFault
2D Enhancements
Parallax2DExpose manual scroll for manual control of infinite scrolling by @GeneralProtectionFault- Add Mode7Sprite2D Node - Replicate Super Nintendo Mode 7 graphics by @GeneralProtectionFault
3D Enhancements
- Introduce 3D Terrain Editor - World Scape 3D by @OldDev78 - Port based on Terrain 3D by @TokisanGames
Performance Enhancements
- Improved clustered rendering efficiency by reducing unnecessary buffer updates by @mcdubhghlas
- Added Math::sin_cos() and strategically replaced trigonometric calls to increase performance by @mcdubhghlas
- Enhanced performance of Vector3::slerp() by @mcdubhghlas
- Increased struct performance by 19% and reduced memory footprint by 33% by @mcdubhghlas
Networking Enhancements
General Enhancements
- Enable C++20 standard by @OldDev78
- Add option to save default project path on project creation by @GeneralProtectionFault
- Refactored, cleaned up, and optimized theming system internals by @GeneralProtectionFault
- Misc enhancements to MCP server implementation by @MichaelFisher1997
- Add function OS::get_real_path() by @samuelvenable
- Engine now respects end user’s power settings by default by @addmix
- Move server files into their subfolders by @aaronfranke cherrypicked by @JoltedJon
Rendering Enhancements
Shaders
Physics
- Add ray and segment intersection methods to MeshInstance3D by @JamesK89
- Optimize Physics2D constraint scheduling + convex polygon normal transforms by @mcdubhghlas
Movie Maker Mode
Bugs Squashed
- Fixed incorrect app_id in Wayland config by @JoltedJon
- Fixed edge case where invalid casts were allowed in GDScript, such as int → string by @mcdubhghlas
- Fixed subviewport renderer flicker by @GeneralProtectionFault
- Fixed import error in EmbeddedGodotGame.kt during Android editor build by @Daniyal09
- Replacement text in the find-and-replace tool now correctly interprets C-style escape sequences before applying replacements by @JoltedJon
- Render targets now initialize newly created color textures to transparent black, preventing undefined visual results on first use by @GeneralProtectionFault
- Fix sky shader
SCREEN_UVbuiltin in Compatibility renderer by @DaveTheEggman - Fix window wrapper disabling prematurely on close request by @DaveTheEggman
- Fix AO Light Affect in Compatibility renderer by @DaveTheEggman
- Fixed missing icon for monotonic cubic interpolation by @VictorSohier
- Fix
SpotLight3D/OmniLight3Dlight_projectordoesn't render whenshadow_enabledisfalseby @DaveTheEggman - Revert fposmod implementation code to match Godot more closely by @OldDev78
- Revert broken is_normalized checks by @OldDev78
- Fixed GH-1354 Modern Godot Animations not importing Properly by @JoltedJon & @mcdubhghlas
- Fix AtlasTexture not appearing until restart GH-1307 by @JoltedJon
- Fixed Typed Arrays cannot erase pairs with null/invalid keys by @JoltedJon
- Fix incorrectly mapped move & drag icons on Linux by @GeneralProtectionFault
- Fix trait type constraint validation in GDScript by @Arctis-Fireblight
- Fix MCP host and game process shutdown by @dominicbytes
- Rename the about dialog's tooltip text by @DaveTheEggman
- Fix decreasing
ReflectionProbe's intensity property below1.0not reducing the strength of its ambient light condition by @DaveTheEggman - Fix OpenXR failing to initialize rendering device by @JoltedJon
- Fix MCP scene_action connect persistence and callback stubs by @MichaelFisher1997
- Fix Cannot access inner struct of a trait or assign struct as a type alias by @Arctis-Fireblight
- Fix nullable struct fields defaulting to zero instead of null by @mcdubhghlas
- Fix spacing in REDOT_AUTHORS.md & clean up core_builders.py- #1385 by @GeneralProtectionFault
- Fix
EditorSpinSlider::get_minimum_size()&EditorSpinSlider::_draw_spin_slider()by @DaveTheEggman - Fix WorldScape3D - Undoing addition of node breaks viewport interaction by @OldDev78
- Fix support for
trait supercalls in GDScript by @Arctis-Fireblight - Fixed error output in FP16 Unit Tests by @mcdubhghlas
- Fix FP16 networking unit test by @mcdubhghlas
- CanvasLayer dialogue UI renders black in Compatibility when a spatial shader uses hint_depth_texture by @Kaleb-Reid & cherry picked by @JoltedJon
- Make GDScript structs local-scoped by default and introduce
struct_namekeyword by @mcdubhghlas - Fix Handling of
@export_groupin GDScript traits by @Arctis-Fireblight - Fix Compiler bug: unresolved assign for trait-typed conversion assigns. by @mcdubhghlas
- Fixed several Mode 7 issues affecting saved state, materials, and target-following behavior. by @GeneralProtectionFault
- Fixed crash in headless mode by preventing objects from getting gueued for deletion twice by @OldDev78
- Fix
memnew_placementwithchar *arguments by @Ivorforce and Cherry Picked by @morgothaufheroin88 - Enforce WorldScape3D tools ranges by @OldDev78
- Fixed WorldScape3DGradientOperationBuilder by @OldDev78
- Reduced WorldScape3D log spam by @OldDev78
- Fix WorldScape3D support for region size 4096x4096 by @OldDev78
- Fided Structs not showing in the inspector when exported by @mcdubhghlas
- Fix polygon trying to solve center with fewer than 3 vertices by @GeneralProtectionFault
- Fix count bug in _get_polygon_count by @GeneralProtectionFault
- Fixed structs not showing in the inspector when exported by @mcdubhghlas
- Fixed missing syntax highlights for structs by @mcdubhghlas
- Fixed code completion support for local structs in GDScript by @Arctis-Fireblight
- Fixed Inspector does not update when traits add/remove @export fields by @Arctis-Fireblight
- Fixed trait-typed exported arrays losing node references by @Arctis-Fireblight
- Fixed script and trait types in GDScript struct fields by @Arctis-Fireblight
- Fixed exported GDScript struct array editing in the Inspector by @Arctis-Fireblight
- Fix false nullable warnings after null checks by @Arctis-Fireblight
- Fixed "Terrain Assets" dock opens by default when creating a new project instead of "Output" by @OldDev78
- Fix trait symbol lookup by Arctis-Fireblight
- Fixed data loss on parse error by @mcdubhghlas
- Fixed inability to close paused games on Linux under Wayland by @Arctis-Fireblight
- Fix editor crash when completing nullable assignments by @Arctis-Fireblight
- Fix GDScript highlighting for static variables, traits, and structs by @Arctis-Fireblight
- Fix nullable narrowing for GDScript struct fields by @Arctis-Fireblight
- Improved WorldScape3D dock behavior when interacting with the editor window, including focus changes and minimized states by @OldDev78
- Fix set_prop not assigning resources and ignoring failed sets by @tyrannyme
- MCP: Fix trigger_action blocking the game instead of holding the action by @tyrannyme
- MCP: Fix inspect_live ignoring node_path by @tyrannyme
- MCP: Send initialized notification in verify_workflow.py by @tyrannyme
Documentation
- Fix WebXR documentation errors by @dominicbytes
- Fix dead "Compiling from source" URL in README by @BLOKBUSTR
- Update documentation feedback link to correct repository URL by @Arctis-Fireblight
Chores & Buildsystem
- Update default CI permissions to read only by @dominicbytes
- Preserve
dotnet formatreturn code in static checks by @dominicbytes - Update workflows to use the latest actions by @DaveTheEggman
New Contributors
- @OldDev78 made their first contribution in #1285
- @Daniyal09 made their first contribution in #1312
- @addmix made their first contribution in #1313
- @joey-wheeler99 made their first contribution in #1331
- @DaveTheEggman made their first contribution in #1359
- @dominicbytes made their first contribution in #1358
- @JamesK89 made their first contribution in #1386
- @morgothaufheroin88 made their first contribution in #1417
- @BLOKBUSTR made their first contribution in #1493
- @tyrannyme made their first contribution in #1513
Full Changelog: redot-26.2-stable...redot-26.3-stable