Blueprint Collision events from Niagara

I’m trying to get hit events from a niagara particle system component.

I got the emitter to handle collisions internally (the particles bounce off hit actors), and i’m using the (horribly undocumented) “Generate Collision Event” module in my emitter (hoping that it would generate collision events), but neither onComponentHit on the system works nor can i find any other event for it…

I’m suspecting i need some kind of niagara script to actually forward the event back to my blueprint, but i can’t figure out how to do that.

in case anyone’s wondering, and there’s no solution yet: for now i’m approximating the collision by having a bunch of sphere traces with increasing radii (to approximate the cone in which my particles tend to fall), works so far, might be a hack that works for others.

2 Likes

Any update on this?

Bump

I was strugling with it aswell and I found a solution Particle Editor Extension by Cultrarius

1 Like

But can it detect pawn collision?

Seriously how is there no documentation about this ? This is such a basic use case.

2 Likes

Bumping this, I’m also looking for a solution!

Thanks in advance. :smiley:

This guy shows a very clear tutorial on how to detect Particle collision:

5 Likes

I have been running into this issue for a while needing to make particles do damage and or give me more info about what the particle is colliding with. If you are looking to give particles more information I have come up with a moderately easy solution.

Export particle data (as tut above shows) to a blue print which spawns the same number of actors to which you then assign the location of each particle to a coordinated actor on update

This might not be great with hundreds or more particles but you might be able to make some groups the represent large swarms or something. Anyway. Works awesome.

There are 2 solutions I can think of to obtain data on which actor a particle collided with.

1: The projectile is an actor (blueprint) with a niagara system and a collision shape, you can just make this behave like any BP based projectile, just gotta set the niagara emitter to local space so it follows it’s bp parent’s movements. In this case we’re just not using the export function at all (this is the normal way).
2: the projectile is a niagara particle, you export the particle data and on collision, from the blueprint that spawned the projectile you take the exported position data, do a small sphere trace to figure out which actor was hit and then use an interface to forward to them whatever information they need to react to.

I’m not sure which way is more efficient, but the latter is a bit more versatile because it can give you more accurate velocity and angle data if you want to do anything fancy with that.