💝 Improvements
-
Add "syntax highlighting" for expressions in Events Sheet: complex expressions and formula will now be shown using multiple colors, like the rest of events. This allows to identify objects, numbers, strings in a long formula.
-
UI improvements:
- Add "Select All" in Events Sheet and ability to deselect an event when doing a multi-selection (Thanks @ViktorVovk!)
- Hide deprecated extensions in new projects
- Make the function extractor dialog more compact
- Allow to install extensions from the action or condition search
- Automatically choose a function name in the function extraction dialog
- Add help page links to some effects reference help pages
- Reduce dialog width for extension details, project properties and layer properties
- Persist the preference "Start all previews from scene X" in the project file (Thanks @opaldi!)
- Add a button in the extension editor to select behaviors with the dialog
- Allow to create variables from autocompletion in more cases. Also, in the extension editor:
- Focus and select new parameter names
- Allow to add a new parameter from the variable autocompletion
- Allow to add behaviors from the bottom of the instruction list
-
Extensions improvements:
- Allow custom objects to move layer cameras
- Add a "layer" property type for custom behaviors
-
Experimental resource loading improvements: allow to load and unload objects from other scenes.
-
Improve a lot the time to launch previews (and other operations like modifying groups/renaming objects) when using very long expressions
-
New icons for premium subscribers on the forum and Discord:
- A new role is now shown for Silver subscribers on Discord.
- A subscriber icon (Silver, Gold, Pro, Education) is now visible on your forum account, if you use the same email between your GDevelop and the forum.
-
Add argument for CLI command execution for CI pipelines (Thanks @malec-palec!)
- Add
--run-commandCLI flag that executes any Command Palette command after loading a project.
In CLI mode all blocking dialogs (autosave, changelog, confirmations) are auto-resolved, the window is hidden, and the process exits with a meaningful exit code. - This enables CI pipelines to run exports (e.g.
EXPORT_HTML5_EXTERNAL) using only the editor distribution - no installation or display required.
- Add
🐛 Bug fixes
- Fix huge loading time after modifying an object inside a custom object
- Fix missing collisions after changing tile map grid dimensions
- Fix a missing comma in shape scale actions
- Fix extracted functions being displayed as unknown actions
- Fix purchase with credits option wrongly shown if subscription doesn't allow it
- Fix decimal values not updating number fields
- Fix broken links to reference pages in the documentation
- Fix gravity not being taken into account for Physics3D
- Fix editor crashes after modifying custom object extensions
- Fix regression when dragging events on iOS touch devices
- Fix copied events to keep the same order when pasted
- Fix a regression on the displayed position of custom objects
- Fix and show the button to add parameters to "action with operator" functions as disabled
- Fix some visual glitches in the Events Sheet when opening and scrolling
- Remove a useless message wrongly displayed when updating an extension without any dependencies
- Fix manually loaded objects not being unload with their scene.
- Fix a crash when there is a trigger once in an external function used from a custom object
- Fix other various potential crashes
⚙️ Extensions
-
[Experimental] [3D foliage swaying] Sway foliage of 3D objects according to wind (thanks @baldieandbaldie-commits)
This extension adds wind swaying ability and optional GPU instancing to 3D objects (trees, grass, bushes) with frustum and distance culling. This is an advanced extension and while a lightweight example will be made later, you can for now try the full example by downloading it on the GitHub thread of the extension.
It comes with:
- Real-time foliage wind animation for 3D scenes
- Multiple sway types: Grass, Bush, Tree Trunk (dead tree), and Tree Leaves (more coming soon)
- Works with both regular meshes and GPU-instanced foliage for better performance
- Global wind controls: strength, speed, and wind direction
- Optional gust system with texture-driven gust masks
- Optional visual tuning: gradient tint, saturation/contrast, PBR tweaks
- Distance-based fading/culling for better performance
- Automatic foliage shader/material patching (including shadow materials)
- Runtime-safe live updates for wind/gust parameters
- Scene/object cleanup logic to reduce memory leaks and stale resources
-
[Reviewed] [Fire bullet] New behavior for firing bullets in 3D games.
-
[Array Tools] Prevent the same names of parameters and parameter names like global class names (thanks @ViktorVovk!)
-
[Reviewed] [Scrollable viewport] Move a camera by dragging or with the scroll wheel
🎨 Assets
- Add a new 3D pack: Cute Anime School Kids 3D by KokonutDev
- Add a new 2D pack: 380+ Road Signs US Textures by Bouh
🕹 Examples
- Updated most 3D starter to include skyboxes and lights
🕹 Premium Game Templates
- Add a new game template: Block Stack by SnowyRawrGamer
- Fix Roguelite game template: Fixed a bug were skill tree was broken.
- Add a new template: 2D Normal Map Example and Extension by @VegeTato
🛠 Internal changes (for developers)
- Fix SimplifiedProject tests crashing under debug-assertions builds
- Add extra CI checking an export using the CLI options of GDevelop
- Done daily and after every builds on master.
- Add experimental support for "canonical" serialization of events (Thanks @ViktorVovk!)
- When activated, the JSON of the project is saved with properties always in alphabetical order. Fields in events are also never omitted.
- The preference is controlled via
gdevelop-settings.yaml.
- Add new option "keepTerminalOpen" for toolbar npm scripts (Thanks @malec-palec!)
- Export classes in ResourceLoader for better TypeScript compatibility (Thanks @ViktorVovk!)
- Improve types for TypeScript 6
- And add GDCore tests with ASan/UBSan as a new CI job to catch any regression in the future

