Quick answer: Unreal Niagara mesh particles z-fighting when overlapping? No sub-pixel offset by default - add a small per-particle Z offset or use sort priority.
Trail with 20 overlapping mesh particles. Where they overlap, the surface flickers.
Per-particle Z offset
Initialize Particle > Set Variable: Position.Z += random(-0.01, 0.01). Sub-pixel offset breaks the z-fight.
Or sort by age
Newer particles always behind/in-front by age. Deterministic ordering.
Use depth fade in shader
Per-pixel fade based on depth difference. Smooths the overlap visually.
“Z-fighting is a depth precision problem. Solutions are pixel-level.”
If your VFX overlap, plan for z-fight. The fix is small; the visual problem is large.