@Thecheater887
Yes, there's some inconsistency, missed opportunities for logic coordination/creation/condensation and poorly communicated/expressed conventions/processes and other issues being ignored in the way "Behaviours" have their states changed and are utilised.
Listing things, for clarity:
Behaviour On should simply turn a Behaviour On, not execute it. This permits the subsequent executions of a branch of Behaviours to perform differently than in prior runs, and is an incredibly powerful feature. Oddly, this is the default way in which this works if there's Behaviours above the behaviour being turned on, but not if the Behaviour is parentless.
Parentless "on" state changes, without execution, require the use of Receive Message, which requires the use of a broadcast and further branching.
Behaviour On, ideally, should never execute a behaviour, simply change its state from off to on.
Execute Behaviour should only execute a behaviour, even if it's off, without otherwise changing its state to on. It's a function call, in this sense.
Ideally, then, both Execute Behaviour and "Behaviour State" are the two terms that should be used, and can be combined into a single block.
Behaviour Control
Within this, a behaviour can be chosen to be executed (activated or invoked) and/or have its state changed (from off to on and vice-versa).
Done with the ability to operate on more than one behaviour, and this becomes a gate and state tool of significance to the usage and capabilities of visual logic within hyperPad, and a meaningful gateway to understanding how to best structure visual code.
This opens the gate to considering the path to switches and a better branching system(s).