SpringConstraint can desync physics, cause streaming replication lag, teleport arbitrary instances to (0,0,0) and break rendering

Repro Place Uncopylocked: Spring Repro - Roblox
To test enter the car’s driver seat and press any of the test buttons.

A video showcasing the repro where by walking into a spring a lot of replication lag is caused, which lags the server as well as the client. @Firebrand1 can be seen with his physics desynced after changing the stiffness of a constraint, on his screen he was standing but on my screen, I was able to push him over and he stayed fallen over: SpringConstraint bugs - YouTube

Terrain disappears after changing stiffness.
image

I was not able to consistently reproduce the teleport to (0,0,0) and couldn’t get a proper recording of the behaviour.

Samples

SpringConstraint.FreeLength = math.huge
SpringConstraint.Damping = math.huge
SpringConstraint.Stiffness = math.huge
5 Likes

Thanks for the report! We’ll follow up when we have an update for you.

Why are you setting math.huge for stiffness and damping?
It’s expected that the system will explode with these large values.

In our game the cars are owned by the client and exploiters would set these huge values which caused various issues for other players.

Our recommendation is for you to implement some server side validation of the motion of the cars, and take action on the player when bad things are detected.

On our side we are working implementing anti-tampering measures and in the far future having a server side validation of physics, but for short term fixes the dev needs to implement his own measures.