AI performance

Don’t run navigation on every tick. Split it so you only do 5% of each moving character per frame, so that at 60 Hz, each character does navigation 3 times per second.
Note that “do navigation” and “keep moving” are different things – just have them keep moving in the previously determined direction, and only turn when they run the navigation tick.
Also, you seem to be doing a lot of things in Blueprint? If so, try doing less complex logic or loops in blueprints, and move that kind of behavior to C++. (It’s hard to tell, because the “blueprint time” may include code that then runs natively, but is called from the blueprint.)

2 Likes