Frustrated with my behavior tree

I have a blackboard key and it’s being properly updated but the decorator that is set to “is not set” doesn’t take me out of the current sequence, selector or tasks or anything that are assigned to it.

+1 for amazing screenshot;))

hai, i think we had a same problem in here. before i was creating a task based on blueprint_base class. it had on blackboard value change event. (that event fired when the value in the blackboard or result ) is changed (pretty much same with "“blackboard” decorator). and doin a checkin in that function (OnBlackboardChange), what i found is if we set the abort to self, it had fired ExecuteAbort event. so i think it would be a way from there.

sorry english is not my first or even second languange :stuck_out_tongue:

i understand your frustration with the behavior tree.
The Blackboard based condition “is set” “not set” … never really worked like i wanted it to.

Now i am using the Behavior Tree kind of as a StateMachine

As you see, each Task gets his own State.
Each State is set in the Service.

You let the Blackboard Based Condition compare the States.
When the State Value changes the Tree changes to the selected State.
No more “is set” conditions or any other. Only the State matters.

You need a lot of States in your Blackboard.
I used Names.
IMPORTANT The Name is not the Value!
Don’t forget to set it!
It set all my States in my AI Controller when at the Start.

Hey Hitpawz,

Would you mind sharing more information, like which UE4 version you’re using, what that blackboard-based decorator is, if it’s blueprint or C++, etc. Any additional info might help.

BTW, we love that image here at Epic AI team - hope you’re not too frustrated about this issue :). Let me know if I can help.


First, thank you for the best screenshot on the answers forum.

Second: whenever I find a sequence getting stuck it’s usually because I forgot to set a finish execute to false;

It was entirely blueprint and running on 4.6

For the gamejam I decided to make my project heavily focused on AI and I learned so much during that time that it’s clear to me now why this didn’t work. I’ve since fixed it. I didn’t post earlier because I needed a day off after the 40 hour straight psycho run to finish on time.

My assumption was that the decorator was basically the “if/branch” that allowed the sequence to execute and that it was checking this per tick. While that’s somewhat true, the task itself didn’t have a way out. Basically there was no “finish execute”. So it wasn’t jumping back out to even bother checking if the value had changed. After adding a check on that get blackboard value at the end of the wander task itself, it now has an exit plan and it works just fine.

The OP was me being frustrated for just a few moments and was created about two hours after I had started learning about behavior trees for the first time ever. I was laughing while making the image, not angry. I don’t want to give the impression I don’t totally love the tool.

We all love your image and I’m pretty sure all get that it could not be created by an angry person :slight_smile:

Keep using our AI tools, please, and keep the feedback coming!

Is your rotate and move a custom node you wrote? If so, did you just extend move to and add a rotation restriction?