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
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.
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!