If you create a custom task using the MoveToLocationOrActor node, that node will not be aborted if a decorator result change occurs, regardless if the abort mode is “self” or “lower”.
The only way I could find to abort the task was to add a BBKey boolean to it and check it during “Tick”, using the “End Task” node on the output of the MoveTo node’s “Async Task Proxy” output pin.
In cases where a decorator is attached directly to the custom move node (“self” abort), workarounds using a service are somewhat feasible, but for “lower” or “both” cases the management of bools to be checked becomes extremely unwieldy.
Any ideas on how to work around this, or when a fix might be coming? I need that specific node, since other forms of movement apparently are unable to deal with partial paths.
Thanks Sean, that’s great to know. I was wondering already why my own decorators wouldn’t abort tasks properly.
In this specific case however, it is one of the pre-built decorators (the ‘Blackboard’ check one) that come with the engine. It aborts all standard tasks just fine, including most custom tasks, except for the one using the MoveToLocationOrActor node. Could you please look into that problem as well?
I’ve tested this, and have noticed similar behavior. In my original test, I was using MoveToLocationOrActor, so it’s likely that this is also stemming from that same bug report I mentioned above. UE-32077. The fix for this is scheduled for release in a later version, but when the fix is available, feel free to come back to this post and let me know if you’re still seeing it occur.