UE4 - Nav Mesh stops working after playing for long, why?

Hi, I´m testing my packaged project, after 1 hour of play, the game becomes a bit slower, from 60FPS to 40FPS, and sometimes it restores the original 60 FPS, but after 1 hour Nave Mesh stops working and AI´s cant move from point to point, so they just run the walk animation, and rotation, but they stay in place and can´t move; If… at this point I pause the game and load a “save” up to the same point, same AI’s are now able to walk again.

Is there a way to refresh a game, the same way a load of a save does, but In-game? or how may I avoid Nav Mesh the get so affected by long gameplays?


Are you using invokers?
is the game single-player? Server side?

There’s a billion reason you could be having the drop in FPS.
leading causes for this over time are bad GC and awful spawn systems.
implementing an object pool and managing it yourself will often corrects the issue.

To find out what your issue is, play for an hour on a dev build with stat unit visibile.
if your CPU is the reason, you know you have bad garbage collection and/or tick event powered blueprints that cause the cpu overload.

On the gfx end, similarly but unreal usually manages it for you, effects that spawn over time and do not get destroyed are the leading cause. Explosions that are left there with a fully transparent mesh and similar thing. However those are easy to spot since they increase the FPS locally/when on screen.

Another thing that could potentially bog down is the AI cycles. And the amount of live AI.
this is like I mentioned before often a result of bad spawn systems where things are created and never destroyed properly.

Another potential could be the number of active physics bodies present. Ragdolls and such…

You would really need to have another professional look at your finished product to get an idea if the stat unit method doesn’t point you in the correct direction.

Not sure about what an invoker is
Yes only single player
No spawn systems, just streaming levels, each level has an small amount of enemies like 5 to 8 per level, once outside, they “unload level” in order to never have to deal with too many active enemies in the game at once, wich means I have a lot of streaming levels, but as an extra precaution I also get all actors of those classes, for loop, and destroy, not at that momment but lets say, X time after, just in case.

How to make stat unit visible on dev builds?.. packaged shipping games, they do not have console command available, so, this testing step I usually do it while in the engine.
What is a bad garbage collection? I use pak files which only cook relevant BP’s to the build, or do you mean meshes with too many polys? this should not be a problem, my meshes are all low poly and use “smooth edges” wich doesn’t increase poly count.

All my BP’s have ticks OFF, unless it is required… this is kind of tricky, because for a reason unknown, UE4 always have all the new BP’s with tick enable by default so you have to be like checking manually, turingn them OFF, but i though that BP not using ticks should not have any hudge impact since they are not triggering anything, aldo I do uncheck ticks on each BP I create… aniway I wish there was a way to turn them OFF by default for new blueprints, to stop doing this manually since there is no reasson to have BP’s with ticks ON when you don’t need them… other BP’s that do use them, they are mostly branched.

I do have FX that spawn, like explosions… but those are all triggered by nodes with “autodestroy” which is always checked, but, most of my FX only trigger once, they are not constantly spawning particles, aldo this is an step, I haven´t double check… If an emiter is not spawning particles, they should not be a problem… because in Niagara for example, they have life time limits like 1 or 2 seconds and an option called “emitter life cycle” wich is set to “AutoComplete”, not sure about legacy do, but most of my FX are explosions, triggering 10-40 particles in 1 second and then they stop, but even if the node did not have “autodestroy” they should not cause an issue, I will verify this do, aldo I’m pretty sure these nodes do come with autodestroy checked by default… this is kind of interesting, and makes me wonder… why Niagara or legacy would keep particles availabe if you set them to 1 or 2 seconds? those should autodestroy when they reach those 2 seconds, but I’ll check it, maybe you can elaborate a bit more, if there is a way to really destroy them from the emiter first, because maybe the emiter gets “autodestroyed”, but particles are just invisible and stay in the game, wich… should be a bug in EU4… thanks

I don’t use ragdolls… they look funny and weird, also the only physical objects i have, they auto turn on-off, when my character is near or far “end overlap”

For now… as a quick fix, I’m restarting the levelmap at certain moments of my game, wich casuses everything to go back to normal, but I know it is not a solution, or at least my mind doesn´t feel proud… LOL, just a fast method to restore everything.

The weird part is that this issue with paths “navigation” doesn´t hapen all the time when FPS drops, because I had tested this befroe when obviously my FPS was not like 60FPS because of the development process and by playing while the engine was running, but now that I have a build and I play the whole game after 1 hour it does stops working sometimes… and it is pretty anoying.

Thanks a lot, your message it is very interesting, I learned a lot.