Behavior tree issue (Switching from tick to receive start)

I seem to be having an issue in my behavior tree. If i leave it back to how it was before i changed it from receive tick, everything works as it should but there’s a lot of ticks that i don’t want or need. If i change the receive tick to receive search start instead, it half way works but its getting stuck where my AI chooses its walk to location and then walks to it, then waits for 9 seconds, THEN it finally detects that its attacktarget has been set so do the other side of logic. This is wrong though as it should immediately detect the ai has an attack target and abort out of the moveing/wait 9 secs and now go through the logic again so it then has an attack target set and do its other side of tree.
Hopefully that makes sense.

Im using receive search start for the first time to improve my behavior tree for better optimization. Imagine having 50 AI on screen spamming through loads of ticks and thats just for 1 player. 10 players fighting across the map? not good lol. I was noticing fps drops when fighting an AI and i start moving around and they give chase, instant loss of 5-10 fps, i stop moving and the ai settle in on me and the fps comes back. I tracked it down to too many ticks as the culprit.

Here are some screenshots of the code itself. I have tried every single mix/match of the settings for these tasks so they abort both on result change or value change for attack target notset, etc but nothing changes. The only thing i can think of is either things work differently with the receive search start, so maybe i need some sort of new logic? I’m clueless here haha. Any help would be greatly appreciated!


i can see the issue now, its the fact that ‘InCombat’ is only running once now and thats where its updating weather or not the attack target is valid or not. If its a constant tick then it gets updated but since im trying to change to so it only ticks when called to, thats the problem. If i change the InCombat to an event tick, that fixes it but then im just right back to square 1 where its inefficient with constant ticks. I’ll have to figure out a way to call to the blackboard and set the attack target key anytime the AI has updated its target, or atleast i think that’ll help me get further.

I dont understand why the service interval doesnt even work -.- why have an option there that just doesnt work? if i could have it tick there but only run every half a second, that would work just fine but it just doesnt use that number in there period.