If you handle weapon logic on the client, although the physical weapon itself will not replicate to other players, the client logic will still run for that player. So, yes, they can use it - others would not see the weapon but it would affect them.
What I mean is if that logic interacts with the server (via remote) then whatever happens on the server as a result of that will replicate to other clients. Anything done to their own character on the client will also replicate because they have network ownership of it.
Because like let’s say you kill the player’s humanoid from the client-side, it will replicate to other clients*. I know it’s sort of a weird explanation but yeah. Sometimes it just breaks through the boundaries I guess.
Really just depends, if the exploiter’s client can see an important RemoteEvent you should secure it.
Like if you have a server script that just listens and does this for the tool
Event.OnServerEvent:Connect(function(p)
p:Destroy() --> or any code here basically doing anything important
end)
thats where you’re in trouble.
The best practice would be to:
Make the tool & its localscripts inaccessible to the players unless they have it. They can decompile item’s that they don’t have and simulate their behaviour in some rare cases.
Check in your server scripts that the player actually owns the tool before doing any scary stuff.
Make sure the values provided in RemoteEvents are correct & the correct type on the server!
Thankfully all my remotes (such as the ones to legitimately get tools) have a serverside authentication process (and none of the tools use remotes in this case)