Weapon shell-eject VFX ignore Niagara scalability settings

Summary

Weapon shell-eject VFX ignore the Niagara system’s own scalability settings: a creator-assigned shells system never spawns on the Low graphics preset, even when its effect type and quality masks allow Low.

Please select what you are reporting on:

Unreal Editor for Fortnite

What Type of Bug are you experiencing?

Scene Graph

Steps to Reproduce

  1. In UEFN, make an Armory weapon from sub_machine_gun_template (any template shows it).
  2. Assign a custom Niagara system to the weapon’s shell-ejection slot: fort_trace_weapon_component.SetBulletShells(option{MySystem}) from Verse, or the weapon’s Bullet Shells option.
  3. In that system, set the effect type to NET_Gameplay_Burst_Critical and leave every emitter’s quality-level mask on all levels (Low included). Add a visible mesh or sprite emitter and a CPU emitter with a Play Audio module.
  4. For comparison, assign the same system to the weapon’s muzzle-flash slot (SetMuzzleFlash).
  5. Launch a session. On the client set Settings > Graphics > Quality Presets to Medium, equip the weapon and fire.
  6. Set the preset to Low and fire again.

Expected Result

The shells-slot system spawns at every preset its own scalability settings allow. With all quality levels enabled, it plays on Low exactly as it does on Medium, like the muzzle-flash copy.

Observed Result

• Medium: both copies play, the shells one and the muzzle-flash one.
• Low: the muzzle-flash copy plays. The shells copy never appears, and its audio emitter is silent too, so the system is never created; this is not a renderer or GPU-simulation limit.
The weapon seems to skip shell FX on Low world detail (and possibly for low-significance pawns or at distance) before Niagara is asked. None of the asset’s scalability settings change that: effect type, emitter quality masks, scalability overrides.

Platform(s)

Tested on: Windows PC, Mobile, Switch

Additional Notes

• Ruled out on our side: Nanite off on the meshes, material usage flags for Niagara meshes, non-Nanite meshes, CPU vs GPU emitters (the CPU audio emitter is also silent).

• Suggested fix: when a creator assigns a custom VFX to a weapon slot (SetBulletShells, or the Bullet Shells option), switch that weapon to a path that always respects the custom system’s own Niagara scalability settings, instead of the weapon’s built-in Low-detail check. No toggle is needed: the change only applies when a custom VFX is assigned, so stock weapons, stock brass casings and every existing template behave exactly as today. The muzzle-flash slot already seems to work this way.