Best way of handling animations in a combat game

I’m making a combat game, which uses animation markers to do hitboxing and other things. A main issue I have is I use a module script to do the animating.
For example lets say I wanna do an M1

-- check, if, blah
VFX:FireClient(Player, "ClientVFX", "Animate", Animation, Player.Character, "Play")

But I still need the track because I wanna use a getmarkerreached signal to handle the hitboxing.

What would be the optimal way of going about this. Or if I should simply just play it on the server.

Edit: For any future people having this issue, How I went about it was.

Server:
I allowed the server to handle major things like…

  1. Playing the track,
  2. Getting the marker.

The player will NOT see this animation, It is just a serverside prediction. If it’s delayed a bit idk what to say tbh It works perfectly for me.

Client:
The client simply handles minor things like,

  1. The playing of a duplicate animation (For responsiveness).

If you find an alternative, better way of going about this that fits your tastes. Feel free, I’m just here to get your mind working.

Use remote functions to send data to the client then the client can send you back information if a specific marker has been reached.

OR

Do hit detection on the client then send the product to the server. On the server you should validate this and check things like distances before doing anything with the detected characters.

Don’t use animation markers, simple as that.

No, really, don’t use them. It’s far simpler to use task.wait().