Player animations are replicated regardless of where they are ran. You can run an animation on a client and it will be replicated because of network ownership.
Hit detection will need to be done on server for security. Exploiters can manipulate the results of a raycast if its done on client. Sounds will also need to be done on server, this makes it easier.
Effects need to be registered on the client that fired and then sent out from server. We can fire all clients to show effects except for the client that did the attack, that makes the effect look cleaner.
No, this is still bad practice. Even with limits, an exploiter can make every attack do maximum and give themselves a huge advantage. There is no reasonable performance trade-off on the server that makes calculating damage on the client viable.
This isn’t necessarily correct either. I would still recommend handling things like visual effects and moving parts on the client: if you leave it to the server they will look choppy on the client’s end and will take up a lot of unnecessary processing on the server.
Have the client listen to a remote event. When it is fired from server-side, run the clash effect function. You can pass any necessary parameters like which block was it from the server.
Okay I’m reviving this real quick because I need help. So I’m going to make this whole system in the video (linked below) server sided. That way it can’t be exploited and everyone in the server can see everything. However I can’t use context action service in a server script, meaning I can’t bind these functions to input. Does anyone have a solution?