I’ve been curious about this one for a while now. I created a FPS system a while back and had the serversided bullets being created where the tool’s barrel part was located (to be more specific, the barrel was a part connected by a Weld/WeldConstraint to the handle)
I’m wondering if exploiters are able to somehow move around the barrel of the gun in a way that would replicate to the server and possibly cause issues (such as shooting from an angle they shouldn’t be at).
I also tried searching for similar topics, but most were related to other forms of sanity checks. Please let me know if I missed anything!
I believe that when a tool is equipped the player will naturally have networkOwnership over the parts on the tool. I tried moving around the handle and other parts and it didn’t end up replicating though
Not necessarily. Exploiters can change their character’s position as well as a few humanoid properties
BodyMovers used on the client also can affect the client’s character and replicate, but I guess the same won’t apply for tools
Okay then that means the clients actions will replicate to themselves and not to the server. Also im not sure if they have auto network ownership when they equip a tool
Edit: Be cautious of what you choose to let the client dictate
I checked using :GetNetworkOwner and the client does have network ownership over the part. From what i remembermy gun system does not allow the client to dictate anything other than the mouse position to fire the gun at
I dont think theres any way to move tool parts and have it replicate through normal means but what im curious about is if theres some odd way exploiters can get it to happen
From my tests, it looks as though any welded parts do not propagate position changes despite being under the ownership of a client. I have yet to confirm whether or not BasePart.Touched is unaffected in the same way
Yeah, that’s about what I’ve found. I know that exploiters have ways to fake .Touched events, but fortunately the barrel/other parts of the gun don’t need .Touched, and I used FastCast for the bullets.
Did the same thing hold true for WeldConstraints? The system I used involved welds and I had trouble changing it to use WeldConstraints since im unfamiliar with them but I’m a bit curious
I tested both Welds and WeldConstraints, yes. I also tested the difference between automatic network ownership assignment and explicit network ownership assignment