Quick answer: Niagara emitters can be culled by Effects Quality scalability settings. PIE often runs at Low quality, which disables emitters whose Min Quality Level is Medium or higher. Either lower the emitter’s Min Quality Level or run r.NiagaraQualityLevel 4 in the console.

Here is how to fix Unreal Niagara emitters that render perfectly in the asset preview, look fine in the level editor viewport, but vanish completely the moment you press Play. No errors. The component is visible. The transform is correct. But no particles ever spawn. The most common cause is Effects Quality scalability dropping the system below its minimum quality level.

The Symptom

Drop a NiagaraSystem into the level. The viewport shows a beautiful particle effect. Press Play, the effect disappears. Frame Debugger / RenderDoc shows no Niagara draw calls. The component shows bIsActive = true but particle counts are zero.

What Causes This

Effects Quality scalability. Each Niagara emitter has a Scalability override that lets you disable it at lower quality settings. PIE typically runs at the project default, often Low or Medium. If your emitter requires High, it is silently skipped.

Distance culling. Niagara has a Cull Distance property. If the camera is beyond it, the system stops simulating. The default in some templates is surprisingly small (1500 units).

bAutoActivate disabled. NiagaraComponent has a checkbox that determines whether the system spawns at BeginPlay. If unchecked, you must call Activate manually.

One-shot system already finished. If the system finished its single loop before you noticed, it sits in the Inactive state until reactivated.

The Fix

Step 1: Override Effects Quality in PIE. Open Edit → Editor Preferences → Play → Play in Editor → Use Experimental Game Viewport Settings, or simply run scalability EffectsQuality 3 in the console after PIE starts.

// Console commands during PIE
scalability EffectsQuality 3     // 0=Low ... 3=Epic
fx.Niagara.QualityLevel 3
stat NiagaraSystems            // see active count

Step 2: Lower the emitter’s Min Quality Level. Open the Niagara System asset, select an emitter, and in Scalability, find the platform/quality entry. Set Min Quality to Low if you want it to render in all PIE conditions.

Step 3: Verify component setup in Blueprint.

// In your actor's BeginPlay
void AMyActor::BeginPlay()
{
    Super::BeginPlay();

    if (NiagaraComp)
    {
        NiagaraComp->SetVisibility(true);
        NiagaraComp->Activate(true);  // reset = true

        // Optional: ignore quality scaling entirely
        NiagaraComp->SetForceSolo(true);
    }
}

Step 4: Check cull distance. Open the system in Niagara editor. In the System Properties, look at Performance → Cull Distance. If your camera is 5000 units away and Cull Distance is 1500, the system stops. Either move the camera closer for testing or raise the cull distance.

Step 5: Confirm visibility flags propagate. If the actor has bHidden true (perhaps from a stream level not yet loaded), Niagara components inside also hide. Run showflag.particles 1 in the console to ensure the show flag is on.

Effects Quality In Packaged Builds

Packaged builds default to Low quality unless your project sets a higher default. Open Project Settings → Engine → Scalability and set the device profile defaults explicitly. Or use UGameUserSettings at runtime:

void UMyGameInstance::Init()
{
    if (UGameUserSettings* s = UGameUserSettings::GetGameUserSettings())
    {
        s->SetVisualEffectQuality(3);  // Epic
        s->ApplySettings(false);
    }
}

Solo Mode For Hero Effects

For hero effects (boss attacks, story moments) that must always play, enable Force Solo on the NiagaraComponent. Solo mode bypasses quality scaling and pooling, guaranteeing the effect renders. Reserve it for low-frequency effects — solo mode is more expensive than pooled.

“PIE Effects Quality is often Low. Niagara emitters with high min quality vanish silently. Override quality, then debug.”

Related Issues

For other Unreal rendering issues, see Procedural Mesh Missing Collision. For Gameplay Cue replication, see GameplayCue Not Firing On Client.

Run scalability EffectsQuality 3. Then debug what is left.