Applying radial damage

I’m trying to make an exploding barrel. When it’s destroyed, I fire a radial impulse to push other physics objects away from the blast. I would also like the blast to damage nearby actors.

The problem I’m facing is that the Apply Radial Damage graph node doesn’t seem to work, as in, the objects that are supposed to be affected never pick up the ReceiveRadialDamage event (and Apply Radial Damage returns false).

However, if I apply damage directly on a colliding actor (via Apply Damage), then that actor does fire the ReceiveAnyDamage event.

How do I get radial damage to work?


I was just about to submit this same issue. Everyone on the IRC chat also has not had any luck with apply radial damage.

Interesting. I just made a quick exploding barrel here and had no problems. Do you have any more details that might help with a repro? Maybe a screenshot of your Blueprint setup?


OK, I got it.

If you don’t specify a DamageType Class in the Apply Damage, then the “victims” won’t receive the radial damage event.

Maybe the blueprint compiler should at least give a warning if not an error?

Hmm, it should be acceptable to leave the DamageType pin empty. I didn’t supply a DamageType in my test either. The Engine will assume the base DamageType class by default if none is explicitly supplied.

Maybe an old bug that has been fixed since?

Perhaps. We’re investigating further. Thanks!

Upon investigating, what it sounds like may be happening is that depending on where you are setting your Origin for the Apply RadialDamage, your mesh may be blocking out the damage from hitting anything else. To eliminate the possibility of that happening, you can put a Reference to Self into the Damage Causer input of the Apply RadialDamage and that will ignore the blueprint/mesh that’s exploding.

Let us know if this isn’t a solution for your issue. Thanks!

I’m a bit confused. Now it’s working without specifying a damage type or a damage causer :s

The thing I’ve noticed though, is that I couldn’t get the event to fire when my actor was using Basic_Asset2 (even though that mesh does have collision), but it was fine using when the very same actor was using EditorCube…

It might be dependent on other factors. The code collects actors within the damage radius and then does traces to make sure the damage isn’t obstructed by something. So things like where you put the damage origin, collision settings, damage causer, etc can all influence the final outcome.

I appreciate the feedback on this! I’ve made a note to investigate better visualization and debugging tools for cases like this. I’ve also improved the comment on DamageCauser to reflect that that
Actor won’t block damage.