Trigger actions only when a variable changes (and not constantly)

I have a variable (‘state’) for my object which can be ‘idle’ (not moving), ‘falling’ (moving down), ‘traversing’ (moving sideways), etc. When the user clicks on an object instance, it starts moving. The user can’t click on other objects/instances while one is moving. This is achieved via a global ‘interactive’ variable. The idea is that when ‘interactive’ is TRUE, the user can click an object to start it moving. ‘interactive’ is then set to FALSE so no other objects can be clicked on. Once the object stops (i.e. the ‘idle’ state) I want to set ‘interactive’ to TRUE again so the user can click on the next object.

However in my ‘idle’ state event, setting the global ‘interactive’ variable to TRUE happens constantly (which means once you click on an object and it’s moving, ‘interactive’ is immediately set to TRUE again by the ‘idle’ objects, and so you can keep clicking on objects and have multiple ones moving at a time):

Or if I add the ‘Trigger once’ condition, ‘interactive’ is set to True the first time an object becomes ‘idle’, but once the 2nd object becomes idle’, ‘interactive’ isn’t set to TRUE anymore so no more objects can be clicked on:

How do I set ‘interactive’ to TRUE only when each instance of the object changes to ‘idle’? Not constantly, and not only once for all instances…

Maybe you could check if each object is NOT idle

For each object squibble
If the text variable state of squibble is not idle

Set boolean value of interactive to false