You can use Swordphin123’s Raycast Hitbox module for this. I use it and it’s great for my melees and easy to set up the hitbox.
This is mainly dependent on your scripting experience.
If you want several actions, you would have to script this in yourself for the weapon, likely using UserInputService (ex. holding Q to block).
For anti-exploit, you would have to script in checks on the server to make sure they aren’t (for example) trying to hit from impossible distances.
This is explained in the module obviously.
You’re able to use it on both client/server, but I think you’d prefer it to be on the client as there would be noticeable latency if it’s completely server sided. Once the client would detect a hit, you’d fire an event to some server script to handle it.