Conditional Aborts
Conditional aborts let a branch react when one of its conditions changes, even
after execution has moved to another task. Use them for decisions such as
switching from patrol to pursuit as soon as a target becomes visible.
How reevaluation works
A conditional normally runs only when traversal reaches it. An abort-enabled
Composite keeps eligible Conditional descendants under observation. When an
observed Conditional changes status, Behavior Designer stops the affected
running branch and reevaluates the tree from that decision point.
The small circular arrows around a Conditional’s status icon indicate that the
task is being reevaluated.
Choose an abort type
Select the Composite that owns the decision, then set Abort Type in the task
Inspector.
| Abort type | Reevaluated while | Typical use |
|---|---|---|
| None | Never outside normal traversal | A decision only matters when first reached. |
| Self | A task inside the same branch is running | Stop the branch when one of its own requirements becomes false. |
| Lower Priority | A branch to the right is running | Interrupt fallback work when a higher-priority option becomes available. |
| Both | Either of the preceding cases applies | A branch must both maintain its requirements and preempt lower-priority work. |
Sibling order matters: branches farther left have higher priority. A Lower
Priority abort therefore observes work to the right, not work to the left.
Build a responsive fallback
- Add a Selector with a sensing branch on the left and an Idle fallback
on the right. - Place Can See Object and Seek under a Sequence in the left branch.
- Set that Sequence’s Abort Type to Lower Priority.
- Configure the Conditional and its target variable.
- Enter Play Mode while the fallback is active, then make the target visible.
The tree should interrupt Idle, reevaluate Can See Object, and begin
Seek. This is the same priority layout used by the introductory tree:

Nested conditions
To react when either of several conditions becomes true, place those
Conditionals below a Selector and give that Selector Lower Priority or
Both. Its parent branch must also use an abort type that keeps the nested
decision eligible for reevaluation. If the inner Composite has None, its
children are not observed after traversal leaves that branch.
Troubleshooting
- The fallback never stops: check that the observing Composite has Lower
Priority or Both, and that the responsive branch is to the left. - A running branch stops itself unexpectedly: check for Self or Both
on one of its parent Composites. - The condition is reevaluated but keeps the same result: inspect its shared
variables and watched values; the abort system cannot correct stale input.
See Behavior Tree Flow for the
base traversal rules and Debugging for runtime status cues.