Well, you probably need a physics asset… But notifies aren’t what determine if contact is made. They just flag animation times as “if we overlap here, do this kind of damage” and “if we overlap here, do nothing.” It’s OnComponentOverlap messages that actually fire off hits.
You need some sort of assets to act as a “hitbox” or “hurtbox” for relevant characters that can perform these overlaps. PhysAssets work well for this. They don’t HAVE to be, though; you could just as easily manually place capsules in your BP Component list and set them as children of the skeletal mesh component. This is helpful if, like me, you have a scaled-up skeleton, since you can’t generate proper physics assets for them.
It also helps if you want to fine- tune your collision, as you can easily create hitboxes separate from your physics simulation (e.g. Maybe you have Ponytail bones to simulate physics on your player’s hair, but you don’t want him to take damage to the hair, only the skull. Maybe you only want melee attacks to register if they hit the torso, so that players don’t take damage if the very tail of the swing catches their foot). Plus you can easily view them in-game and fine-tune their position, which is tougher to do with physics assets.
Point is, melee occurs when one skeletal mesh or attached component (weapon, etc) crosses over another one thanks to animation. So you need to create components which can generate overlap events specific to each other, use the animations to determine how/whether those overlap events should have an effect, and then create logic which turns those events into damage and reactions.