Hello all! (Incoming wall of text, but an important read)
There’s been some confusion around the timer change that went live with 5.0.126. We wanted to provide this announcement to help clear up some of the specifics.
What changed?
Starting with 5.0.126, all timers must be manually started via the “Start (or reset) the scene timer” or “Start (or reset) an object timer” before any timer conditions will be be able to see and use those timers. The old timer conditions have also been deprecated and replaced by new conditions that allow you to check if a timer is less than AND greater than a certain amount (rather than just greater than as before).
Note: Your existing games will continue to work as before. You must still understand these changes to use the new timer conditions (see the end of this announcement)
Why was this changed?
Short answer:
This change will help reduce confusion around timers longterm, and brings GDevelop closer to how most other game engines work.
Long answer:
The way timers worked previously was misunderstood by a large portion of users (myself included) AND was moderately unpredictable. Most users thought scene timers started at the beginning of the scene, and object timers started as soon as the object was created in the scene. These assumptions were both incorrect.
Both scene and object timers were created the first time a timer condition or action for that specific timer was called in the event sheet. This led to situations where it appeared that timers weren’t starting when users expected, or were starting “late”, and drove confusion and numerous github issues, forum threads, and discord questions where the users didn’t feel as if they found a full solution.
Additionally, this method of starting timers made identifying when a timer first started very unpredictable from just looking at the event sheet.
Why was this change so sudden?
The devs and contributors agree that there wasn’t enough notice for this change before it went into effect. Going forward there will be a concerted effort to ensure notice is given before any actions or conditions are deprecated, or if a change is occurring that modifies existing functionality of actions/conditions.
There may also be some changes to keep deprecated actions visible for a few releases before they’re hidden/removed from view.
What does this mean for me?
If you have a completed project with the old conditions/actions, no changes are needed. You’ll be able to open and export that project without any changes.
If you have a new project, or are making changes to an existing project, any NEW timer conditions or actions will have to use the new methodology. You will need to explicitly start any scene or object timers before they can be seen/used by timer conditions.
You can read more about the timer processes on the updated wiki page, here: Timers [GDevelop wiki]