Quick answer: Set Bounds Mode to Fixed and expand the bounds to cover the effect’s extent. GPU systems cull when bounds exit frustum, and default dynamic bounds are expensive. Alternatively assign an EffectType with generous distance culling.

Here is how to fix Unreal Niagara GPU simulation stops at distance. You have a waterfall effect using GPU-compute emitters. When you stand near it, it runs great. Walk a few meters away and the particles freeze mid-air — positions frozen, no new spawns. Approach again and the effect resumes. Niagara’s distance culling is aggressive for GPU systems.

The Symptom

Niagara GPU emitters visibly stop simulating when the camera moves away. Static frames of particles linger where they were. Sometimes the entire system becomes invisible at range. CPU emitters in the same system may behave differently (not culled).

What Causes This

Bounds too small. Niagara culls systems whose bounds are outside the view frustum. GPU systems especially use fixed bounds for efficiency. Small bounds cull readily.

Dynamic bounds expensive. If you set Dynamic Bounds, Niagara reads back particle positions every frame to compute bounds. For GPU systems this causes a GPU-to-CPU stall. Unreal may disable Dynamic Bounds at distance to save performance, leaving you with stale bounds.

EffectType distance scalability. EffectType assets control how far effects render. A low-quality EffectType may disable the system beyond 50 meters entirely. Unintentional when you inherited an EffectType from a template.

Significance-based culling. Niagara supports significance where low-priority systems cull first. If your effect has low significance, it culls even when visible.

The Fix

Step 1: Set Fixed Bounds. Open the Niagara System asset. In the System Overview panel, find Bounds section. Set:

Click Calculate Bounds with a representative play preview — Niagara auto-fits bounds to observed particle extent. Add 20-50% padding for safety.

Step 2: Use meaningful bounds per emitter if needed. Each emitter has its own bounds settings. For systems where some emitters have vastly different ranges (long trails vs tight core), set emitter-level bounds independently and let system bounds be the union.

Step 3: Check EffectType. In the System asset, under Scalability, see the assigned EffectType. Open the EffectType. Under Scalability Settings, check Distance Culling:

Scalability (Low, Medium, High, Epic):
  Spawn Count Scale: 1.0
  Cull Distance: 5000  // units
  Cull On Max Time Without Render: off

Set Cull Distance to what you need. 5000 units (50 m) works for most mid-range effects; increase for long-distance visibility.

Step 4: Disable significance culling for hero effects. For effects that must always run (main character VFX, key cutscene effects), set Significance to a high value (10+). Or disable significance-based culling entirely in the EffectType.

ForceSoloMode for Debug

For temporary debugging, enable Force Solo Mode in the Niagara component:

NiagaraComp->SetForceSolo(true);

Solo mode bypasses the culling system entirely. Use to confirm the effect itself works, then turn off and fix bounds/scalability properly.

Debugging with fx.Niagara Commands

In console:

Show Bounds is especially useful — you see exactly the bounding box Niagara uses for culling. If the box looks tiny around a large effect, Fixed Bounds needs expanding.

“Fixed Bounds at authoring time. EffectType scalability for range. Solo Mode only for debugging. Niagara runs far when told to.”

Related Issues

For Niagara packaging issues, see Niagara Not Spawning in Packaged Build. For AttachToComponent, AttachActorToComponent Wrong Transform.

Fixed Bounds generous. EffectType Cull Distance ample. Show Bounds to verify.