Behavior Tree's Decorator Not Aborting Self

I’ve been working on behavior trees for a few months and have done a fair share of BT-related stuff.
I still don’t get why it’s behaving in an unpredictable manner. I do hope someone can help me to correct me If
I’m assuming something wrong here.

The BT is set up as such. There are no enemies in the level. Hence
the BT is returning false at the HaveEnemy node. The Observer is set to abort self.

YET… the bottom nodes are being ran. ( Yellow flickering ) .

I believe I understood the basics of BT. But correct me if I’m wrong:

Sequence : The tree runs the child in sequence. each of them.
Selector : Behavior Tree selects from the highest priority a valid child.

Decorator : Determines validity of any node. If invalid it will abort based on the options.

Are those assumption correct? If so, why are the nodes still running when the ‘HaveEnemy’ decorator failed.

Your more or less right. And I’m afraid BT debugger might be broken :confused: Have you tried using visual log to confirm what’s going on? Just run vislog command, start recording and later look through given AI’s log. There’s a snapshot showing actual BT state at every frame that has been logged, and there should be pretty precise logging of BT transitions as well.

Hope it helps,

–mieszko