AI find nearest enemy

Think of the AI controller as the brain of the AI. The behaviour tree is the decision making component of the AI controller. So they need to feed information back and forth via the blackboard, decorators and tasks.

The blackboard is where you set data that both need to know about. Such as who is your target. The blackboard value can be updated by the AI controller, a task such as the EQS or a service (“hey brain, update this information every once in a while while I’m in this part of the tree”).

A decorator can be based on a blackboard - such as do I have a target. It can also be a call to the AI controller of “hey brain, can I do this thing?”

A task is an action. It can be action that does a thing like running the EQS to find a target or to move to the target. Or it can be telling the AI controller to attack this target - you can send the task the blackboard key with the target. It’s basically “hey brain, I’ve decided we should do this action.”

Epic has a good guide in how to create these things and communication back and forth: https://docs.unrealengine.com/latest/INT/Engine/AI/BehaviorTrees/QuickStart/index.html

I already knew about the AI controller, the tasks,services, and decorators of the behavior tree; however, I didn’t know how to properly implement them and make them work together. Your comment helped me understand that now though so thank you very much.

Update: I made a service to check if the minion was valid and if it wasn’t to make any child minion the minion blackboard key. It works great now. Thanks again!