BT Service Ticks every frame 4.5 & 4.6

Even when setting the intervals to 5 seconds, the service is ticking every frame.
The ai controller is very simple (in fact, it does nothing but inherit from AAIController).

Any help is appreciated :slight_smile:

21748-btservice_tickseveryframe_2.png

Service use Tick event during task search, to allow initializing before processing branch of tree. This behavior is optional and can be eliminated by implementing dedicated event: ReceiveSearchStart.

Your tree doesn’t contain any task node. When run in looped mode (default), it will be constantly searching for task to execute, calling service’s Tick event as a result of that.

Either add a simple wait task to have a meaningful node and stop constant searches or implement ReceiveSearchStart event in your service.

Ah ok that clearly works, thank you kindly for the explanation.

How can this be done in C++?

I inherited from the UBTService_BlackboardBase class and I am using the

OnSearchStart(FBehaviorTreeSearchData& SearchData) 

function to update run the service .

How can I make it trigger only at certain intervals?

------------------Edit-----------------

It works perfectly in standalone game and even in editor. But when I open the behavior tree to check the decorator while the game runs, it triggers each tick. I am creating a separate question for this.

What’s your tree layout? I just tried a service with overridden OnSearchStart on sequence with single wait task, but everything worked as intended. Maybe you should be using TickNode function for notifies with constant interval, because search can happen at anytime.