Commit Graph

509 Commits

Author SHA1 Message Date
Clément Pasteau 302031e398 Prevent objects creating a dependency loop when added to another custom object 2026-06-12 10:21:11 +02:00
D8H bbb95deb44 Display and allow editing scene properties and variables in the side "properties" panel (#8387) 2026-06-08 15:01:36 +02:00
D8H c6d40449c8 Automatically add a return action in custom expressions (#8682)
* And ensure the type is right when the expression type is changed
2026-06-07 22:01:32 +02:00
D8H da2fec5085 Add missing help page links for 3D box, 3D model, text input and light obstacle (#8677) 2026-06-04 12:16:23 +02:00
Clément Pasteau 663edf81ec Improve a lot the time to launch previews (and other operations like modifying groups/renaming objects) when using very long expressions (#8662) 2026-06-01 14:40:33 +02:00
D8H 46a6a66552 Hide deprecated extensions in new projects (#8634) 2026-05-28 18:07:48 +02:00
Clément Pasteau 8b00514aff Fix path breaking webapp (#8635)
Do not show in changelog
2026-05-22 11:15:39 +02:00
opaldi 749a78650b Persist the preference "Start all previews from scene X" in the project file (#8622) 2026-05-20 16:49:23 +02:00
ViktorVovk f39d8bb080 Add experimental support for "canonical" serialization of events (#8552)
- 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` (already read
by the IDE on project open):

  ```yaml
  # gdevelop-settings.yaml
  preferences:
    canonicalEventSerialization: true
  ```

Only show in developer changelog
Co-authored-by: Viktor Vovk <vvovk@playtika.com>
2026-05-20 16:10:12 +02:00
D8H cea1410fb3 Add syntax highlighting for expressions in events (#8538)
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.
2026-05-18 18:10:00 +02:00
Clément Pasteau 0eb6014a93 Fix some visual glitches in the Events Sheet when opening and scrolling (#8571) 2026-05-11 10:52:30 +02:00
Florian Rival d52d42d3b4 Add integration test for objects created via a behavior action parameter (#8576)
Verify that a behavior's custom action whose events Create the object
passed as parameter (FireBullet-style) leads to the newly created
instances being picked in the calling scope, while a previously created
instance of the same object remains untouched.

Don't show in changelog
2026-05-07 19:00:52 +02:00
D8H 1480595463 Fix objects created by custom actions not being picked (#8575) 2026-05-07 17:48:22 +02:00
Clément Pasteau 3c80598d09 Revert "Fix some visual glitches in the Events Sheet (#8551)" (#8570)
This reverts commit 232443328d.
2026-05-06 16:48:11 +02:00
Clément Pasteau 232443328d Fix some visual glitches in the Events Sheet (#8551) 2026-05-05 18:29:21 +02:00
D8H 98e5184958 Fix missing error on expressions with unknown objects in the event sheet (#8566) 2026-05-05 16:06:31 +02:00
Florian Rival c293911c84 Fix missing space in documentation generation and update types 2026-05-04 15:52:51 +02:00
Florian Rival 5dd2b8ffd8 Add hints for some extensions, displayed in the documentation (#8564) 2026-05-04 15:11:56 +02:00
D8H 8e50ddefe4 Allow to configure object resources to be loaded independently from the scene (#8514)
- This is an advanced, experimental feature which is subject to changes. It's in most cases not useful, unless you have a large game or low end devices for which controlling memory usage is important. It's mostly useful to delay loading of large custom objects.
- Objects can be configured so that its resources are not loaded when the scene is loaded. Instead, you can use an action to manually load the resources used by it. When the loading is done (this can be checked using a condition), the object can then be created.
  Be careful: if an object assets are not loaded, it will be broken when displayed on screen.
2026-05-04 10:45:51 +02:00
D8H f7012ebfd6 Fix created child objects instances in custom objects being picked twice (#8559) 2026-05-04 09:37:51 +02:00
Clément Pasteau 920d0b86c1 Fix default variable string value being empty instead of 0 (#8473)
* Before, this was set as 0 even though displaying as empty in the
variablesList.
* Projects created before 5.6.267 will keep the same behavior (0 as default value for string variables) with an option to move to the new behavior (empty as default value) in the project properties dialog.
* Projects created from 5.6.267 will use the new default behavior (empty as default value)



https://github.com/user-attachments/assets/0d885c70-b68a-431f-8dcb-08e4e193b8a1
2026-04-27 09:37:45 +02:00
D8H 5f260352ce Fix scene properties not usable via the variable action and condition (#8504) 2026-04-13 09:12:32 +02:00
Florian Rival 5ab1ccd39a Improve logs in case of UseAfterFreeError
Only show in developer changelog
2026-04-05 20:56:29 +02:00
Florian Rival e07a8d8482 Fix more potential crashes (#8485) 2026-04-05 11:48:46 +02:00
D8H 92e449558b Allow extensions to set different icons for behaviors and objects (#8472) 2026-04-02 20:14:19 +02:00
Florian Rival a22a8f569d Fix various issues and crashes when reloading/editing resoures in or outside the editor (#8455) 2026-03-31 10:57:03 +02:00
Florian Rival 950ad0df4c Refactor extension validation scanning to use common events traversal methods (#8448)
Only show in developer changelog
2026-03-27 15:07:05 +01:00
Gleb Volkov 9f9a26017d Extend Diagnostic Report to cover extension function events (#8438)
- Diagnostic Report previously only scanned layout (scene) events and external events for validation errors. This PR extends the report to also scan events inside extension functions - including top-level ("free") functions, behavior functions, and object functions - detecting missing instructions and invalid parameters.
- Store-installed extensions are excluded from the scan
- Disabled ("commented out") events and their sub-events are skipped everywhere, not just in extensions.
2026-03-27 12:55:29 +01:00
D8H cc71af5433 Fix a crash when installing an asset with buttons if some behaviors are missing (#8439) 2026-03-26 13:54:08 +01:00
D8H 23908aad8e Save the scroll position of JS code events when closing and opening tabs (#8417) 2026-03-23 17:29:51 +01:00
D8H c5259b6962 Fix embedded resource links when importing a GDO (#8419) 2026-03-20 15:44:40 +01:00
Florian Rival fd6e778a54 Fix potential crashes of the Objects panel (#8413) 2026-03-19 16:37:16 +01:00
Florian Rival 264b5c3c5b Improve dead object detection for C++ objects (#8408) 2026-03-18 15:42:36 +01:00
Florian Rival 2b0b8b9b91 Improve context of UseAfterFreeError (#8406) 2026-03-17 16:00:41 +01:00
Florian Rival 63b8ffdb6f Fix crash when deleting a layer (#8403) 2026-03-17 11:09:20 +01:00
Florian Rival efa780179e Add memory tracking to additional container classes (#8392)
Only show in developer changelog
2026-03-16 11:44:23 +01:00
D8H 9d0d86e6fb Fix missing extension dependencies in GDO files (#8372)
Also fix an exception when importing a GDO file with an extension without a valid version number
2026-03-11 17:27:59 +01:00
D8H f473d116e5 Fix mapVector and Array declarations flow errors (#8364)
Only show in developer changelog
2026-03-09 15:50:56 +01:00
Florian Rival deba07f103 Add "MemoryTracked" classes and "UseAfterFreeError" (#8359)
- This will track alive/dead instances of some C++ classes and will throw a JS error in case of usage of a already destroyed object from JavaScript. This should avoid crashing/corrupting the wasm/C++ side by calling a method on an object already destroyed. Instead the exception stays on JS side, without reaching the C++ implementation.

Only show in developer changelog
2026-03-09 14:52:56 +01:00
D8H 0d3b3c3aca Add support for folders to organize functions in the extension editor (#8357) 2026-03-09 11:57:52 +01:00
ViktorVovk 68d87da97b Add "internal instruction name" search criterion in Events Sheet search panel (#8356)
Only show in developer changelog
2026-03-09 09:26:14 +01:00
Florian Rival 48ee325034 Persist properties panel scroll position for instances and objects (#8337) 2026-02-28 12:55:30 +01:00
D8H 50353ab676 Allow to import asset pack files (GDO) (#8296) 2026-02-26 17:16:47 +01:00
Florian Rival dc62aea8d8 Add support for ordering For Each by an expression, with optional limit (#8319)
- For advanced use cases where it's important to run events on each instance of an object with an ordering, the For Each can now have an ordering: an expression can be written and will be evaluated for each instance separately. The For Each will then execute for each instance in the order of the result of the expression.
- It's possible to change the direction (ascending or descending)
- It's also possible to give a limit (for example, 1 will allow to pick just the instance with the highest/lowest value for the expression).
- Examples are provided in the UI for common use cases (maximum value of a variable, health points, ammo, distance to another object...)
2026-02-25 10:37:59 +01:00
Florian Rival 9934457b39 Add a short description for all extensions and dimension field (2D, 3D, 2D/3D or n/a) (#8303)
Only show in developer changelog
2026-02-21 13:10:41 +01:00
Florian Rival abe44723ba Fix else events not working properly when after a disabled event or comment (#8293)
- Also fix generated code for events (and Else) not working with 'use strict' (only show in developer changelog)
- Also improve the UI to not show horizontal bars for disabled events and comments
2026-02-19 17:14:24 +01:00
Aurélien Vivet 13710a2dc9 Improve resource tab with shortcuts (#8115)
- Rename, Delete, navigate with arrows
- Also fix preview blinking with wrong dimensions for a frame
2026-02-19 17:12:41 +01:00
Florian Rival 34fd833121 Upgrade to Flow 0.299.0 (#8287)
- please run npm install in newIDE/app. Relaunch VSCode/Cursor/your IDE and make sure the latest Flow version (0.299.0) is used.
- While the new FlowFixMe can be annoying, in general it should be way more robust, way faster (2x faster on the CI for example compared to the old version) and crash way less.

Only show in developer changelog
2026-02-16 16:06:21 +01:00
Gleb Volkov a0d4bfbe72 Improve the Diagnostic Report (#8090)
- Add a shortcut (**F7** by default) and command in the command palette to open diagnostic report at any time
- The report now scans project for missing actions/conditions/expressions from extensions and reports invalid parameters (shown with red underline in Events Sheet)
- Click on error location to navigate directly to the event
2026-02-16 14:33:46 +01:00
Florian Rival 6bb56c6e5b Add support for local variables for loop events (While, Repeat, For Each, For Each Child Variable) and loop counter variable (#8273)
- "For Each Child Variable" now also properly support choosing local variables for the variable to iterate on, and for the variable where to store the child and the optional variable where to store the name.
- The loop counter starts from 0 and is automatically increased by 1 each time the event is repeated.
2026-02-15 16:14:04 +01:00