I have a local script that accesses different hotkeys so it can tell what you have pressed then fires a serverscript which does damage but in this server script I have it fireallclients to play the animation.
You wouldn’t need to tell all the clients to render the animation for a character separately unless you want each of the clients to see a different animation.
Each client has network ownership over its own character, meaning that it controls the physics and movement of the character while its changes replicate to the server. That means you can play the animation locally on the character and it will automatically replicate to all clients, playing on them.
For special effects with ParticleEmitters and BaseParts that don’t exist on the server that the client doesn’t have network ownership over, it’s necessary to have it done on the server or on each client separately. As for the animation, it’s not. You can separate the animation and special effects by running the animation locally and special effects on the server or on all clients. You could also choose to have the animation run with the special effects, too. Either way, it will work fine. At most, you would only have to be worried about some latency on the client the animation is running for if you choose to tell the server to tell the clients to run the animation.