Niagara mesh surface location regardless of static or skeletal

Heya, we’re on unreal 5.4 and I need to make VFX that can spawn on any mesh’s surface.
I’m using the mesh location modules, sourcing the mesh from the attach parent, and spawning particles randomly across the triangles.

What I’m struggling with is that I want to use the same system for both skeletal and static meshes, though it seems like the two modules are mutually exclusive. The second overrides the first, meaning if the second doesn’t find a usable mesh on the parent, it’ll override the usable results of the first.

Is there any way I could do this in which they don’t override each other? Should I try to frankenstein myself a Mesh Location script out of the two existing modules? Or is there something simpler? My current implementation is two separate niagara systems: one for skeletal meshes, one for static meshes. Feels bad having near exact copies of the same thing though.

1 Like

wait for a video tutorial by this evening…

here is how you do it - https://youtu.be/3DGengPkuRU

Sorry for the late reply, was sick the entire time.

Thank you so much for the tutorial, it taught me a lot! I had no idea about the spawn groups.
However there is one thing I don’t understand. When I use Source as the source, it looks like it disables particle spawning for the mesh type that doesn’t have an actor assigned. However when I use attach parent, despite the parent not being the appropriate mesh type, it will still spawn the particles albeit not on the mesh surface.

I don’t need to use the same system for both a static and skeletal mesh simultaneously, so attach parent would be fine, if it wasn’t for that issue.