Hello
I noticed that in a local script you can set the attribute CanCollide of parts to false and pass through them or even stay inside them, no matter that in the same time on the server the same CanCollide attribute is with value “true”?
Is this normal?
Yes, this is normal because the player controls it’s movement, meaning if they set something’s canCollide to false and “move” through a block, the server doesn’t sanity check it. You can easily fix this by introducing some anti-noclip scripts, which cast rays and see if the player is directly in a block.
But this means that the client can easily “ignore” all kind of walls and doors and pass through them?
And these anti-noclip scripts must run on the server?
Do you mean that the server must check every second (or even more often) the position of each player in comparison to the previous position of the same player? This would kill the performance…
Yes, clients can ignore all parts, and the security has to run on the server since otherwise it’d be useless. Luckily, raycasts are extremely cheap and won’t kill your performance.