What to do (optimize) with such stats?

Do I assume right that the longest time is taken by the overlaps? If yes, how to optimize them? If no, what takes the longest time instead and how to optimize it?

Have you created an army of characters and given them the order to attack? :sweat_smile:

Sorry I don’t understand what does “the order to attack” mean. I have not “army” but several hundreds of enemies.

If it’s skeletal meshes + weapon blueprints = performance issues.
First of all, disable collision wherever possible. When I moved several thousand components, the collision was terrible.

Are you using Behavior Thee?
Route finding? Loop points every frame? Something (lots of things) are being done every tick.
You may be doing unnecessary calculations.

I have disabled unnecessary collisions in the enemies and their weapons, but this helped very weakly. I am not using Behavior Tree or route finding and do not understand what means “loop points”. It’s some different from the usual loops? Maybe the main problem is not the count of enemies but the total count of objects such as trees? I have near 10 thousand trees (although only small part of them is present every frame, this is total count all over the world and they are distributed plus-minus uniformly unlike the enemies which are mainly around the cities) but each of them has only one static mesh and nothing more, that mesh consists of several thousands of polygons. Is in such case disabling the complex collision useful? Also, I suspect that updating the effects every frame is wrong, how to do this instead?

Bump. The topic is actual.

Anything is bad to do every frame if it becomes too much. What do you mean by effects?

Try using Unreal Insights to determine the exact location of the problem.
To create a profile - use the commands Trace.Start / Trace.Stop

If it doesn’t help - the last option is to disable everything (step by step remove all actors from level).

Of course, make a backup before doing this.

Unfortunately this does not show the exact function which is braking. I tried this but I cannot understand its output.

Then all that’s left to do is create an actor that will remove the rest and see how the fps changes.
Let him let you know when the world delta seconds changes dramatically.

Suddenly I have tried this too. Removing the enemies significantly increases the FPS. But when I restore the specific types of enemies, there is no enemy type that makes all brakes. Everyone makes a comparable contribution.

:grimacing:
Next step: turn off the tick. Remove components one by one.

The problem is either in the blueprint logic (tick) or in the skeletal mesh (their number in the level).
To render a large number of characters, vertex animation and static meshes (HISM?) are used.

Sorry for the misinformation but somewhy I confused removing the enemies and turning off the tick. I have not tried removing the enemies but have actually tried turning off their ticks and that led to what described in the post 10. But how to remove skeletal mesh component from a character and not to remove CharacterMovement? Maybe I need to implement my own CharacterMovement? Or maybe there is a way to somehow “hibernate” the skeletal mesh component?

Bump. The topic is actual.

Double bump.

Simply remove the mesh and animation blueprint in the settings.

The last option is delete EVERYTHING one by one (you can divide it in half, then again, and again, this will be the fastest) and success will come to you.

At one time I had performance issues in one place on the level, if you look in one specific direction.
I was quite surprised when I still had problems on a practically empty level.
The reason was a fog somewhere far away, which was not even visible on the screen…
Finding it meaningfully was impossible, so just delete everything.