You did not specify engine, but any decent BT implementation should support some form of task abortion by a decorator, or at least re-running selection on demand. Make dedicated event handling node right under the root selector, highest priority. Attach a decorator that checks if there is any pending event(s). Allow it to abort lower priority tasks. Put all relevant event handlers under that node. [![enter image description here][1]][1] You probably want to add another decorator, that locks current event handler (ignores other events) for duration of the animation (e.g. dodge), but be aware of event priority (death > dodge) and relevance/expiration (e.g. chaining next dodge while current one runs). [1]: https://i.sstatic.net/1PscO.png