Quick answer: Unreal Niagara particles passing through walls despite a Collision module? Trace channels must match, GPU sim collision uses depth buffer (less accurate), and World Collision is more reliable.

Debris particles fall through the floor. The Collision module is on but using the wrong trace mode for GPU sim.

GPU vs CPU Collision

CPU sim uses traces against the physics scene — accurate. GPU sim collides against the depth buffer — only sees what’s rendered. Surfaces off-screen don’t collide.

Switch to CPU for Accuracy

For gameplay-relevant collisions, set the emitter’s sim target to CPU and use the Collision (World) module. Costs more CPU per particle; pays off in correctness.

Trace Channel

The Collision module exposes Trace Channel — default WorldStatic. If your floor uses a custom channel, the trace ignores it.

Bounce vs Stop

The Resolve Method (Slide, Bounce, Stop) determines post-hit behavior. Bounce with restitution 0 looks like Stop with extra cost — pick the cheapest matching behavior.

Verifying

Particles land on floors, walls, slopes — visibly bouncing or stopping. No particles pass through static geometry.

“GPU collision sees the depth buffer; CPU collision sees the world. Pick based on accuracy needs.”

Profile both before committing — for ambient debris CPU collision at 200 particles is often fine; for huge bursts the depth-buffer path is necessary.