Behavior Tree Cooldown Decorator doesn't work as expected

I have a very simple behavior tree where the AI picks a random location and then moves to it. My idea was to use the cooldown decorator on the sequence node to prevent the AI from doing this over and over without a break.

The problem with this simple setup is that the cooldown timer appears to start the moment the sequence node is first executed - not when the sequence it represents gets finished. This means that if it takes longer than 5 seconds to walk to the destination, the cooldown timer is already considered expired. The end result is the AI often not waiting at all between walks since it is randomly picking points far enough away to take more than 5 seconds to get there.

I expected that a sequence node would not be considered “finished” with execution until all of the tasks it represents are finished and therefore the cooldown timer would not start ticking until the sequence is finished. Maybe I’m missing something, but with the current behavior, this doesn’t seem very useful in the event of a multi-step behavior like this. If I put the cooldown on the Move To node, then the AI spends all of it’s time finding random spots while it waits for the cooldown on Move To to expire - that seems less than ideal - of course I may just not be thinking about this the correct way.

I’ll answer this not because you still need it (I hope you worked it out since March) but because it comes up on a google search. From your description, it sounds like the behavior you’re after can be achieved with Wait task. Simply add that as third action after Move To and it will lock the tree for that duration after all tasks complete.

Thank you!