On the latest version.I would first update to the most recent version. With that said, the logic for conditional aborts hasn't changed in awhile.
I am not able to reproduce this - I have unit tests that cover about 35 different conditional abort scenarios and they all pass. I recommend making a small repro scene just to see if you can isolate the cause.
This seems to work fine, guess it's my BT.The attached scene uses an idle task and reevaluates correctly. Can you import this scene into a new project and try to reproduce the abort not reevaluating?
Ok, so I enabled logging & when I Remove Wander from the Selector at the top, everything works 100% as intended with no issues. When I add Wander back, as seen in the image, the Sequence is no longer evaluated and my logging just stops with "Push Task Wander" and nothing else gets logged and it just stays on Wander forever.I can't say without watching it but if you enable logging on the behavior tree component it should indicate what the problem is. My guess is that one of your tasks is returning a different status than what you're expecting.
Did some playing around, seems I have been able to stop the one you sent me from working.That sounds correct. To approach it another way, are you able to modify the tree that I uploaded in order to stop it from working?
Aha, I see. Sorry for the false-positiveI think that I understand more what you are seeing.
In your screenshot Bool Comparison A is being reevaluated. When you immediately flip the bool on the A comparison task it aborts the top right idle task and moves into the bottom subbranch where you have the B comparison. Because the A comparison returned success the conditional abort will only trigger again when A returns failure. However, if A returns failure then the top Sequence task won't run the children because of that failure. As a result you should have the A comparison task flip back to failure after it has left the top Sequence branch.
The trick to remember with conditional aborts is that they only abort the task when the status changes. If the status doesn't change (as is the case with the A comparison) then the abort won't trigger. In cases like this where you want more immediate control over aborts you can use the Interrupt/Perform Interruption tasks.