Help with client replication

I’m making a combat game, Spiderman is one of the characters. I have a move where he fires webs but I want to know if I should be replicating the animation or not. If I handle everything on the server, I can get collision, and make players take damage from it. It’s not smooth though. If I play the animations via the client, then the server won’t know when to fire the webs (its based on keyframes). How should I go about this in the most efficient way?

bump because nobody is helping me

I would say just time it using task.wait() and send remote events to the server when needed

Detect the damage and collision on the client? no, that’s prone to hacking. I need the collisions and damage and all the logic to be server side.