Commit Graph

201 Commits

Author SHA1 Message Date
Florian Rival 2d9d8c3a41 Fix scene variables "persistentUuid" field in JSON being regenerated or deleted on save (#8837)
Only show in developer changelog
2026-07-15 14:59:16 +02:00
Clément Pasteau 0cd03bbfa1 Make wasm test faster (#8829)
show in developer changelog
2026-07-15 09:29:13 +02:00
Clément Pasteau 97eccf98c3 Reduce possible crashes in the event sheet when undoing/redoing (#8820) 2026-07-09 08:53:29 +02:00
Clément Pasteau 5c573fb2c1 Fix variables being always created as numbers by the AI (#8818)
Do not show in changelog
2026-07-07 16:51:33 +02:00
Clément Pasteau 3358d5e2ba Fix showing default parameter values as errored in the event sheet (#8753)
Do not show in changelog
2026-06-23 12:00:34 +02:00
Clément Pasteau b5c44d9694 Fix possible crashes when serializing large projects (#8749) 2026-06-22 17:17:01 +02:00
Clément Pasteau 7860c22ecd Fix initial value displayed for optional Boolean parameters with default value (#8748) 2026-06-22 11:18:37 +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
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
D8H f7012ebfd6 Fix created child objects instances in custom objects being picked twice (#8559) 2026-05-04 09:37:51 +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 2b0b8b9b91 Improve context of UseAfterFreeError (#8406) 2026-03-17 16:00:41 +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
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 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 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
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
Gleb Volkov dd40a997d9 Add support for setting a custom help URL for extension actions/conditions/expressions (#8103)
Only show in developer changelog
2026-02-10 16:04:38 +01:00
D8H deb802cfec Allow to override behavior properties on object instances (#8171)
* For now, this is limited to instances inside custom objects. This will be made available in the future for all instances in scenes if this works well.
2026-02-09 16:21:24 +01:00
Florian Rival e884359511 Add integration test for Else event with local variables (#8225)
Don't show in changelog
2026-02-08 14:25:45 +01:00
Florian Rival 17443587b9 Add Else event (#8216)
* This is not finished yet:
  - Documentation needs to be written.
  - Menu item (and shortcut?) to quickly toggle between a standard event and a else event must be added so it's easy to switch from one to the other.
  - Design must be adapted to make it clearer that the else event is "linked" to the previous one and is not run if the previous event is run.
2026-02-07 17:15:01 +01:00
Florian Rival ca5bb93636 Speed up cloud project saves (#8083) 2025-12-23 16:47:49 +01:00
D8H 28cea4d94c Allow events to use resources parameters and properties (#7942) 2025-11-13 14:08:01 +01:00
Florian Rival 3846a1553b Experimental in-game editor (#7974)
Co-authored-by: Davy Hélard <davy.helard@gmail.com>

Don't show in changelog
2025-11-11 18:22:37 +01:00
Florian Rival 5eeb505807 Fix tests
Don't show in changelog
2025-08-08 11:36:33 +02:00
D8H 593465e2ec Optimize event-function calls (#7758) 2025-08-01 15:19:26 +02:00
Florian Rival 29ad7308c3 Introduce an experimental AI agent (#7659)
- This is an AI agent that takes a request and takes actions on a project: it can create scenes, find and create objects, add, remove behaviors, modify them, put instances on the scene, create or modify events, and more to come (layers, setup leaderboards, etc...).
- It's still in beta and there is room for improvement on many things, but is already useful for prototyping and learning - beginners notably are able to see what the AI can do and learn the concepts of GDevelop. For intermediate and power users, it's useful to try new things, or get things done while working on something else.
- Experiment with it and always make backup of your project before starting - in the future restoration points will be added to go back to a previous state if the result is not good or broken.
2025-06-17 16:25:03 +02:00
D8H a571445e0e Allow custom objects to self-destruct (#7605) 2025-05-12 14:03:21 +02:00
D8H c1dfa34f0d Deprecate internal actions and conditions to set and compare property values in extension events (#7405)
- The unified variable action and condition must be used instead.
2025-03-03 10:31:05 +01:00
D8H 5b325dd8ec Fix access to objects in variable expressions of "for each child variable" loops (#7435) 2025-02-28 11:06:51 +01:00
D8H d08bf97471 Fix conflict between variable or property and parameter in variable setters (#7329)
- Don't show in changelog
2025-01-21 19:16:43 +01:00
D8H 60e36f37b1 Remove EventsFunctionsExtension inheritance to EventsFunctionsContainer (#7326)
- developer changelog only
2025-01-20 11:29:55 +01:00
D8H d6c99b27af Allow to use parameters and properties in the variable action and condition (#7124) 2025-01-15 23:28:18 +01:00
Florian Rival e237fc4b21 Add experimental support for importing JS source files in extensions (#7278)
* See more about using [JavaScript on this page](https://wiki.gdevelop.io/gdevelop5/events/js-code/javascript-in-extensions/#experimental-new-option-javascript-files-in-your-project).

Only show in developer changelog
2025-01-06 11:02:28 +01:00
D8H e5d77da357 Add and fix tests on boolean variable conditions (#7227)
- Don't show in changelog
2024-12-13 15:10:51 +01:00
Florian Rival 2052db6a39 Fix test 2024-11-30 14:06:55 +01:00
Florian Rival a4f7aa6c43 Fix default behaviors not added properly to objects in functions (#7206) 2024-11-29 14:13:09 +01:00
D8H 8743f70aaf Disable the variable editor button for object parameters (#7202) 2024-11-28 16:05:49 +01:00
Florian Rival eae75bdc72 Fix potential crashes in events function edition (#7204)
* Also hide object groups tabs in functions (unless there are groups already) - it's not recommended to use them anymore
2024-11-28 14:00:01 +01:00
Aurélien Vivet 90004e3f83 Remove dead code regarding "alwaysLoaded" (#7175)
Only show in developer changelog
2024-11-20 21:32:00 +01:00
Florian Rival b34e802dcb Add a test with diagnostics that used to crash the app
Don't show in changelog
2024-10-14 09:39:07 +02:00
Florian Rival ab97258832 Fix more tests and uninitialized variable (#7049)
Only show in developer changelog
2024-10-13 21:15:52 +02:00
Florian Rival 2ece223737 Fix wrong argument passed in a test (#7048) 2024-10-13 18:06:22 +02:00
Florian Rival 8342873b6e Fix missing or wrong arguments in GDevelop.js tests (#7047)
* These were "silently succeeding" but would create issues when Emscipten is run with SAFE_HEAP=1.

Only show in developer changelog
2024-10-13 17:39:54 +02:00
D8H 2a2c930b74 Add vertical alignment property for text object (#6975)
- Fix proportional anchors on custom object children
2024-10-02 11:17:48 +02:00
Florian Rival 43f5bd1c0e Allow to edit object properties, behaviors, variables and effects directly from the properties panel (#6898)
* When an object is selected (or when "Edit object" button is clicked in the properties panel after choosing an instance), the properties panel will show the properties of the object.
* This allows for fast edition of most elements of an object: appearance, properties, but also behaviors, variables and effects. Most workflow and iterations on your game should be faster, from adapting the appearance of a text to tweaking behaviors and updating the preview to check the result in realtime.
2024-09-27 10:56:39 +02:00
D8H 011abaf808 Allow drag and drop in the extension function parameter editor (#6847) 2024-08-20 10:29:52 +02:00
Florian Rival 57371c3759 Add "Quick Customization" in the Get Started page (#6856)
* Choose a starter game and quickly replace objects and tweak their behaviors. The game is then automatically published so it can be shared: this is perfect for new users to get a taste of how a game works and make their own remix of a game before going further.
2024-08-18 18:04:53 +02:00
D8H b7a5122b07 Add a variable editor for object groups (#6781) 2024-07-25 17:21:05 +02:00