What is the better way to make spells? All on server or effects on client and damage on server?

So i started make spells i long time ago, on the begin i did all on server, the effects and the damage, but people told me that is better make the skills on client the damage should be on server, but i have a lot of problems like:

  1. Client and Server arent sync;
  2. I will still need create a part on Server to be the hitbox, and wont be accurate since take a time to remote reach server, and things like that Will happen (Blue client, Red Server);
  3. Iam worry about lag compensantion too.

So if Anyone is experienced with skills, please Tell me some tips

Damage should be on the server. Animations on the client.

When the client fires something, also fire a remote event to the server and call FireAllClients() on the server. Then the client receives it and plays the animation.