On which side should I call the method TakeDamage(), and why?
According to the API Reference, the Health
property of a Humanoid
is not replicated.
TakeDamage()
will work unless the character has a ForceField
on it.
It does not - call it from the server if you would like it to replicate.
On the Server because the Humanoid's health does not replicate between the client-server boundary.
Call it using a ServerScript
.