Event hit is hitting the wrong actor

So im making a pretty simple shooting game with multiple enemy types.

To apply damage they all have a tag (“Enemy”)

In the projectile blueprint its pretty simple "event hit’ > actor has tag “Enemy” > branch, if true > apply damage to actor with tag (enemy)
But when testing, sometimes when killing the enemies, a random different enemy would be destroyed rather than the one hit by the projectile

Can anyone help?

Can you post a screenshot?


after that it just branches off into apply damage

Hey @Spirits_Shade — sounds like you’re on the right track, and this is a super common issue when working with tags and projectiles.

The problem is likely that your “Apply Damage” node is using the wrong reference — instead of applying it to the actual hit actor, it might be mistakenly calling a global or cached reference to another enemy.

:wrench: Quick Fix:

Inside your Event Hit, make sure you’re using:

  • Other Actor → has tag “Enemy”
  • Then apply damage to Other Actor, not a generic reference

Like this:

vbnet

CopyEdit

Event Hit
→ Branch (Other Actor has tag "Enemy")
→ If true → Apply Damage to Other Actor

Double check that “Apply Damage” isn’t wired to something like a variable or actor array by mistake — that’s often the culprit.


If your project’s growing with lots of enemy types, bullet behaviors, and interactions, it can really help to track logic per asset — which is why we built a plugin called Asset Optics.

It lets you:

  • Add comments and checklists directly to your Blueprints or actors
  • Track issues like “wrong actor hit” right inside the Editor
  • Sync tasks to a web dashboard so you never lose context

It’s great when you’re debugging stuff like this across multiple enemy types or Blueprint variants. Worth checking out if you want to stay organized as your game grows!

Good luck with the shooter — sounds like it’s coming together!

Show the code where you apply damage to some actor.

Apply Damage has to be executed on the Server. Currently you do not have any flow logic that would exclude client/sims from executing.

Event Hit → IS Server [true] → Other Actor has tag [true] → Other Actor Apply Dmg