How does TakeDamage() work with Blueprints?

A day ago TakeDamage() was working for me, correctly being called when the character took any damage. However, it broke recently during punch sequences for some reason I have not been able to solve. This is the place where it is called, and the string successfully prints every time a punch connects.

I’m not exactly sure where the damage is handled, but to the best of my knowledge it should go to the nearest Event Damage node or TakeDamage() function in C++. Since I do not have an event damage node, shouldn’t it go to the TakeDamage() function in the C++ class that the blueprint is parented from?

However, the punches do not call the TakeDamage() function, as the string does not print and the health does not decrease. The Apply point damage node is not calling the TakeDamage() function, and I am unable to figure out why, perhaps due to a faulty understanding of how Blueprints interact with C++ classes. The C++ class works fine when called from C++, shown when it is called when a gun is fired, but does not seem to work with blueprints.

You aren’t applying damage to anything. The Damaged Actor pin doesn’t have a connection.

Gah, I’m an idiot. Time to double check the rest of the code, thanks for the answer.