Decorator Ticking Regardless of "Check Condition Only Black Board Changes"

In the following Behavior tree, I’m trying to test the functionality of an abortable Decorator that is only evaluated when a Blackboard value is changed, rather than on every tick.

My expected behavior is that when the tree hits the left-hand leaf node, CheckBoolObservingBBKey will evaluate once, fail, and then not tick again until the 99999-second Wait Task finishes. You can see that in the implementation of CheckBoolObservingBBKey I have Check Condition only if Black Board Changes ticked to true, and that it has a public BlackBoardKeySelector parameter Arbitrary BB Key that’s hooked up to KeyThatNeverChanges – a blackboard bool which is set to false in the AIController’s BeginPlay function, and not ever changed again.

Unfortunately, the behavior I’m experiencing is that the decorator is being evaluated every tick (as evidenced by the breakpoint I have in there), regardless of the Only if Blackboard Changes flag.

For various performance reasons, I would like the ability to control when my decorators tick as much as possible. Is this an engine bug, or am I misunderstanding how this should work?

Hi I made the same observation in 4.19 did you find a solution?

This post seems to describe a related problem: Blackboard decorator node not aborting on result or value change - AI - Unreal Engine Forums

Hi BrendanLoBuglio,

A licensee just point me out to this thread as they were having similar problem and I was able to repro this problem with the latest code. I checked in the a fix in UE5\Main depot in cl 24930872 which I believe you can fetch our git depot!

Hope this isn’t too late! Better late than never :stuck_out_tongue:

Maxime