Decorator set to Lower Priority, but still aborts self when conditions are false

I have a Behavior tree that looks like this:

My problem is that when I set my Sequence observer on “Lower priority”, it deactivates as soon as the PerfomConditionCheckAI in my custom decorator returns false, even if it is not complete.

When I set the Observer to abort on “None”, the sequence properly plays completely once activated, even if the condition becomes false mid-way.

How can I set my branch to activate once the condition is met, but not deactivate until the sequence is finished? I still need it to abort lower priority branches, so I cannot put it on “None”.

Hi, if you set abort to “Lower Priority”, then it should only abort your Wait node on the right, but not the Sequence. The Sequence should run through (until it finishes or fails).

How can I set my branch to activate once the condition is met, but not deactivate until the sequence is finished?

That is exactly what abort “Lower Priority” should/will do.


Maybe try a minimalistic example, like (works as expected for me, only aborts the Wait node on the right, but the sequence runs through)

2 Likes

I also understand that this is how “LowerPriority” should work. The fact that the Sequence completes when I put it on “None” tells me that the problem is not in what the sequence does…

Is there anything else that could cause the branch to abort when the Decorator’s PerfomConditionCheckAI returns false?

I don’t know why, but the issue was happening because my custom Decorator had a “Set Blackboard value as Int” in the PerformConditionCheckAI override.

I removed it and now it works…