You can write your topic however you want, but you need to answer these questions:
My goal:
To make the effect appear on the client so the moving projectile on the client so I can tween it and add particles with it being smooth, while having a accurate hitbox on the server so exploiters cant modify the size or if possible even use the projectile itself on the client as the hitbox but keep it secure.
The problem:
The problem is I want an accurate hitbox on the server but since the projectile moves on the client it’s going to be delayed example:
On the client the projectile hits a player, but on the server the hitbox reaches the player .2ms before the client.
For projectiles not being accurate, you can change the NetworkOwnership with SetNetworkOwner(nil)
For ping related issues, there’s not much you can do on an easy approach if you script movesets on the server, even then, it’s better than giving laggy players / exploiters an advantage with client sided hitboxes.
For communication between client and server movesets, you can still use connection with OnServerEvent and check if the firing player is the player using the move.
This is what I’m talking about, the move and the shooting sequence is done on the server, but the mouse is fetched from the client which then fires a RemoteEvent that connects to the running code on the server.