Rope owned by player does not replicate length changes to the server

Whenever you change the length of the rope that is networkowned by the player, the change does not replicate to the server and causes a lot of issues.

These issues are game breaking, as it causes other players who stand ontop of the part attached to the rope to get flung with an extreme speed and also causes buggy behaviour like this :



RopeBug Demo.rbxl (21.4 KB)
Steps to replicate this issue :

  1. Launch a test server with 2 players.
  2. Get player2 to stand ontop of the large part.
1 Like

This is a general problem, and working as intended for the moment.

We don’t do client-to-server replication of constraint properties, or Instance properties in general. “FilteringEnabled” network filtering blocks all client-server changes for security, minus a few weird character related exceptions for legacy character controller reasons that aren’t worth explaining.

Physics replication only replicates the positions and velocities of parts. We’d like to extend this in the future, but we don’t have a concrete plan yet and it’s not currently on our roadmap.

When the other player steps on the part it’s pulling that part into local simulation (using the server’s value of the constraint properties) but with the network owner’s position and velocity assuming longer ropes. Network interpolation visually resets the position to match the network owner’s view every frame, but the local simulation violently disagrees with the interpolated result, causing the issues you’re seeing.

To work around this you can manually replicate the constraint properties from the client through RemoteEvents so the server can update the values to replicate them to other clients.

5 Likes