I just got this to work today for a fighting game, I have one character VS a copy of itself for testing right now.
I have two custom collision IDs, one for Red Spheres = Attack volume, and Another ID for Blue spheres = Vulnerable area.
When a dummy throws a punch, there is a red sphere on his hand that has collision enabled when being used, and disabled when not.
When the Red collision Spheres enter the Blue Collision Spheres, you get an overlap event.
In the Character’s BP, I have an Event Actor Begin Overlap, that links to a “Branch”, which is preventing the players from hitting themselves.
The condition for that Branch, is a != test to check the Display name from the other actor against the Display name of Self.
If the Display names are not equal, then it’s okay to move ahead and do the hit reaction.
To get the specific reaction to different attacks, I made an Int Variable to work as an ID system.
When different moves are being performed, a different move ID is set.
Move ID for Punch = 1
Move ID for Kick = 2
etc.
I use that for a Switch Case.
The Branch links to the Switch, and that links to the different get hit functions.
This is how I got it to work after a lot of stumbling around, so I don’t know if this is a good way to do it, I haven’t been able to find a clear answer either.