How to do conditional abort with events and in utility selectors


New member
I am trying to wrap my head around the conditional abort system. I have read the documentation, watched the YouTube video but I still have some questions.

So I have the below tree:
I have three conditional aborts that I want to achieve:
  1. What types of nodes are eligible to trigger a conditional abort? Are all conditional nodes okay? So in my comment (B), I use conditional evaluators with Has Received Event tasks. Does this mean Seen Actual Threat will override Seen Potential Threat when it changes to true?
  2. I would like to abort everything and restart again whenever Threat List Changed event is fired. But even if that is not fired, if there is an existing threat, the sequence should continue. Does this work like I did in the node at my comment (A)? Can I use events as conditional aborters?
  3. I have a utility selector to decide whether agent should flee or engage in combat. But I want it to reconsider and if utility of flee gets higher at some point in combat, agent should then flee. Can I use conditional abort in a utility selector?


Staff member
Conditional aborts should really only be used with Sequence tasks. The behavior is undefined with the Utility Selector. The Utility Selector reevaluates each branch every frame so there is no need to have both.

For number 2 I would use the Interrupt/Perform Interruption tasks instead of conditional aborts since they give you direct control over when the branch is aborted.