[Feature Request] Behavior Tree Abort Symantics

Behavior trees are nifty but lack abort ability at two levels.

Firstly is an overall ‘abort (or interrupt) the tree and restart at the top’. This is useful if the AI gets shot at and wants to immediately stop what it was doing and defend.

Second (and better) is a modified version. It would be nifty to have a node type that is an abort stop point. If the sub-tree below the node aborts, the abort causes the AbortStop node to immediately return false. This could impliment the above first example. Then external blueprints could trigger a tree abort possibly with a depth enum such as All, ToAbortStop. In conjunction with this would be a TreeState memento that one could hold onto and restore the tree execution state back to where it was before the abort.

In effect this lets the environment poke the AI as opposed to the AI scanning for external events.

The current alternative is to have a check method that all Tasks call every tick to check for special external state changes and then return false from the Task and then propegate the effective abort up the tree, or use a Abort return from the task. But this is clumsy for a single idea, respond to external environment triggers.

This is all much easier in a State Machine because one can have a state stack and push the current state (and environment), respond to the interruption, and then pop the state back.

The Unreal Engine 4 Answer Hub is not for Feature Requests, it is for developers to post questions on issues they are having to get support on how to solve those issues.

This does not fit that description.

Epic has provided an appropriate Sub Forum to direct Feature Requests in the form of the Feedback Board.

Please redirect your Feature Request to the Feedback board in the form of a new topic.

Thank you.

Did you manage to forward your request onto the proper channels?

If so could you please mark this as correct to close this Ticket, it helps keep the AH board clear to make room for more questions.

Thank you.

Never mind on this one. I learned more about the BT semantics and aborts.
So the freature request is similar but a somewhat different architecture.
So lets just close this.

Can you please mark either my answer correct or your own to close the ticket please.