In c2 here is the flow
construct.net/en/forum/extending-construct-2/javascript-sdk-32/order-of-update-calls-91514
So as said above when a plugin/behavior runs depends how things are implimented.
However as a rule of thumb I go by a simplified flow:
1. Run plugins and behaviors
2. Run events
3. Run certain plugins and behaviors
4. Draw
5. Repeat
For the most part most plugins and behaviors run in 1, but a few (such as drag drop as well as part of the platform behavior) run in 3.
I guess over time I’ve created a mental list about the exceptions or I just recreate the behavior with events so I know exactly when it runs.
Guess I should also read your big report.
-cheers
Edit:
Read your bug report. That’s a bit different. Most actions are immediate in that they change things there and then. Some actions, probably for performance reasons, delay actually updating till that plugin is run or drawn.
Anyways with the tiledbackground offset being delayed I can’t say I’ll use it much. I do my best to avoid off by one frame things like that.