If the client changes their WalkSpeed locally and the server tries to set it back to an appropriate value, that change is not replicated to the client if the current value on the server is the same as the value you are trying to set it to.
For example:
- Default WalkSpeed is 16
- Client changes WalkSpeed to 100
- Server changes WalkSpeed of that humanoid back to 16
- Change is not replicated to the client and the client continues to have a WalkSpeed of 100
Please see the attached test place and hit play in a test server with 1 or 2 players. There is a client script that changes the WalkSpeed to 100. 3 seconds after a character is added, a server script tries to change it back to the default value of 16 but that change is not replicated to the clients since the server already sees a WalkSpeed value of 16. 3 seconds later the server changes the value to 16.1 and only then is it properly replicated to the client, removing their 100 WalkSpeed.
I assume this is the case for almost any value that the client sets for themselves. My current workaround is to set the value twice on the server: first to some value other than the default, and then to the default, otherwise the change is not replicated to the client.
WalkSpeedTest.rbxl (56.0 KB)