If a mechanism is networked to the server and the mechanism contains a Hinge Constraint, clients will always see that mechanism’s velocity as 0. If a mechanism is networked to the server and does NOT contain a hinge, clients are able to see the mechanism’s velocity.
I’m not sure if this is intentional behaviour, I cannot find any documentation or previous examples. My use case is I have a boat networked to the server, the boat contains a hinge constraint but now I cannot check the boat’s velocity on the client and also VehicleSeats display the boat speed as 0.
In the example below. The green object has no hinge, the red object is connected to another via a hinge. In the output you can see the Velocity for the green object is accurate for the client, the velocity for the red object remains at 0.
Changing the value of RootPriority for the main part of the boat fixed this issue.
Making the value of RootPriority higher for the red part as seen in the video also fixed the issue.
So, this was an intended change when we first introduced Mechanism Interpolation. There was a bug where the wheels of a car could have velocities set that aren’t compatible with the simulation of the chassis, so if you came close to the car and it started simulating on your machine a severe explosion/instability could happen.
Basically the root part will always have correct velocity, but non-roots will set to whatever was the last simulated value.
In hindsight, this was a tacky way to fix the problem and was not documented properly.
I have a fix for this + some other interpolation goodies out on production as of yesterday. Let me see if I can safely enable this fix, and will report here.
Just enabled it. Should be on for all servers in about ~5 minutes, and should be on for any new Players as long as they have the latest version (404) on relaunch.
Let me know if this resolves it. I’m going to monitor to make sure there are no issues with this being enabled.