The damage system is pretty handy because it does 99% of what is generally needed in most cases. There’s damage, point damage (more data) and radial falloff damage (orwhatshername).
Alternatively, you can create your own data interface to streamline it. You already started, I see.
There are options how to handle things, too:
- when projectile hits, apply damage to hit actors - this is done inside the projectile. Target actors receive just damage.
- when projectile hits, it triggers onHit/Overlap event in the target actor who can than apply the damage to itself based on that hit info
The first option is usually more straightforward.
The native system also uses a separate damage class which adds a lot of granularity and flexibility.
Regarding Z - the movement comp keeps characters glued to the ground, it takes quite an impulse to send them flying. Tick the Velocity Change on the node to ignore mass. We’re talking about orders of magnitude in force applied.