Quick answer: Assign distant entities a low-fidelity LOD that still runs a cheap processor advancing their state, instead of an off LOD that halts processing completely.
An Unreal city built on Mass where citizens freeze the instant they leave view has its LOD set to fully stop distant entities. They should keep living at low fidelity, not pause. Keep a cheap processor running for them. Here is how.
How to fix it
1. Use a low LOD, not off
Configure the LOD so distant entities fall into a low-fidelity tier that still executes a lightweight processor, rather than an off tier that skips their processors entirely.
2. Advance coarse state cheaply
In the low-fidelity processor, advance needs and goals by elapsed time and move along routes without fine collision, so off-screen citizens keep progressing at a fraction of the cost.
3. Reconcile on LOD promotion
When an entity returns to a high LOD, sync its detailed representation from the coarse state so it resumes seamlessly instead of snapping or restarting its task.
Catching the ones you can't reproduce
The hardest version of this to fix is the one you can't reproduce — it only happens on a player's hardware, OS, driver, or save state, under conditions that simply aren't present on your machine. A report that says “it crashed” or “it froze” gives you nothing to act on, so the bug survives release after release while quietly costing you players.
Automatic error capture closes that gap. Each failure arrives with its full stack trace, the device and OS, the build number, and a breadcrumb trail of what the player did right before it broke, so even a failure you have never seen becomes a specific, reproducible issue. Fold identical failures into one signature ranked by how many players each hits, and your worklist sorts itself worst-first instead of arriving as a stream of vague complaints.
This is where a tool like Bugnet earns its place. Its SDK captures every Unreal Engine error automatically with the full stack trace plus device, OS, memory, build, and game-state context, folds duplicates into one grouped issue with an occurrence count, and ties each to the build it first appeared on — so you fix the problem that hurts the most players first and confirm it is gone when its signature disappears from the next release.
The bug you can't reproduce isn't gone — it's just invisible until you capture it from the player's device.