While I agree it is most likely behaving as intended (as was proven with the wait loopindex), it is unnecessarily complex way to handle it. In almost any engine/language you can do a normal yield/sleep with time in any point off a loop to add delay. The case is normal here too, except you can't directly type in time, but have to use set variable and adjust from there.
Clear, simple, something user can randomly conjure up, follows logic Construct 2 uses everywhere:
For loop 1 to 9
---- System Wait (1.0)
---- Do stuff
Same (mostly), but less intuitive for user:
For loop 1 to 9
---- System Wait (loopindex)
---- Do stuff
Thank you for solving my issue though
Edit: Ah! But it should also work as:
For loop 1 to 9
---- Do stuff
---- System Wait (time)
The reason why it should work is because it should run loops from top to down and a loop at a time. So it should first "Do stuff" then pause (loop index 1), after the pause it should run next index. It definitely should not run all indexes first and then pause the current loop indexes.
In the current system if I do:
For loop 1 to 10000000 (10 million)
---- System Wait (loopindex)
---- Do stuff
It runs the loop cycle 10 million times and just sets different wait times per cycle? To me, it sounds extremely inefficient VS running each loop separately with Wait (1.0) and continuing to next index once last one is completed.
p.s. I'm not a real coder. Just Unity game designer who discovered Construct 2 and forgot what I did before, so my explanations might not follow any real code logics