How do I end a behavior tree's action early without evaluating the entire active branch? I'm reading about behavior trees, and one of the common recommendations I've seen is to maintain a reference to your running action so that you don't have to traverse the entire tree during every game loop. Without traversing the entire tree every time, how do I check if an action should end early? For example, suppose I have the following tree and the AI encounters an enemy that's closer than 10m, so he starts to aim his weapon. But then while he's aiming, his HP drops below 50 . I would want the agent to stop the aiming firing sequence and move to the "use medkit" action. The only way that I can think of to accomplish that sort of behavior is to evaluate every node in the active branch starting from the root node during every game loop. But based on what I've read, evaluating the entire active branch every game loop is discouraged. Is there a way to be able to abort an action if a higher level node is no longer valid, while not spending a lot of processing power evaluating the entire branch every game loop?