So I set up an extremely basic behavior tree modeled after the EQS tutorial. The logic of the tree works properly when it is running. However, it only runs once. When I add any number of wait nodes to the right in the sequence, the tree will run twice, but not more than twice. It was my understanding that if there was no next command, the AI would go back to the start of the tree and run it again.
Everything should be returning successfully (aside from the cooldowns for the trace test), so the tree should go back to start every time after wait? Extremely confused.
From what I see in your screenshots both ExecuteAttack and RapidMove do not handle all the cases, which can result in any of these tasks just hang in there indefinitely. Also, the EQS query can fail, or be on cooldown (the decorator you’ve added) both of which will result in breaking the Sequence parent node (which in this case is the actual root node of the tree, the other “ROOT” is just for editor purposes).
Have you tries using BT debugger? It will show you what’s going on at runtime (in PIE).
Wow, that was incredibly stupid of me. Of course it would hang on subsequent ExecuteAttacks, because I had already initialized the AI Controller the previous time attack was called. And as you said, there was no logic for that case.