There are a couple ways in Scratch to continually check if a condition is met: Forever If blocks, Forever Wait Until and Forever If-Else blocks in theory should all behave the same. But do they? I wrote some tiny scripts to find out. I ran each script together at the same time and got the same number. This makes sense since Scratch basically goes down the list of scripts and makes sure every script gets a 'turn' before a script gets to go again. Where it gets interesting is if you only run each script individually and compare the results. I added a source of lag (The clones double every turn) and a shut-off timer (it takes a little bit of time for the clones to hit the 300 limit IME) If one of the numbers is higher, it means that scratch took more turns with that script then the others. More turns => More clones => More increments to the counter. I think Wait Until is slightly faster but my Macbook is getting toasty and invalidating further testing for a bit.
Use the scripts to test it out for yourself, see what you can find Scratch isn't just a sandbox you can play in, it's also a sandbox you can explore. Possible ideas: - Add an automatic testing tool that stops some scripts then runs other scripts -Use lists to record results -Play around with positioning of scripts. Does it make a difference? Let me know what you find out. Did I miss something?