Delay node never finishes after Finish Execute

Hello guys, i am experiencing this problem were calling a delay node after a finish execute node in an AI tree never finishes. I can see the Delay getting triggered in Debug mode but after waiting 3 seconds nothing happens, when i am expecting in this case for it to print “Delay Completed”.

Note: I tried removing the DoOnce node and that made no difference.

Any idea what could be causing this? Help greatly appreciated!

Duration is set to 2. It doesn’t appear anywhere. the node is never reached

Check that the print string duration is not set to 0.0.

Does it appear in the output log?

Calling the FinishExecute literally stops the blueprint and the Behavior tree goes to the next one.

Anything you want to execute must be BEFORE the FinishExecute node.

If you want logic to run AFTER it, then it has to be a different blueprint in the behavior tree.

If i remove the Delay node, all other nodes after the FinishExecute node has no problem executing though. Like if the delay is removed and i am just printing after the FinishExecute node it prints fine. (the print node before the delay works for example)

This is a Task node, right?

I guess once you finish the Node, it will execute all the way to the end, for that tick, before the Behavior Tree moves to the next node and the Task get’s reset and the tree iterates from the start again.

The Task node “exists” until you finish it. Your delay node can’t run because by the time the delay task completes, there’s nowhere to run on.

You can have a delay node inside the Task, but it has to complete before you Finish the Node.

Like I said before, if you want to have logic run AFTER you finish the Task, it has to be on a different Node in the Behavior Tree.

Same reason a Function can’t hold data from one call to the next.

Gotcha. yea that makes sense. Thanks a lot. that was insightful