Rope NetworkOwnerShip

I am trying to make a system that a Player can hold other players via a rope constraints. But it seems the rope constraints runs well on 1 client and badly on the other

It runs well on the client that has attachment0
https://gyazo.com/11a04f2176f6e9ec9604a4428066aca7

It’s laggy for one player^ How would I fix it

Not 100% sure since I don’t use RopeConstraints much, but I think it’s because the client with Attachment0 is handling the physics. Others just get messy network updates.
Try creating the rope on the server and attach it to server-controlled parts. Should sync better for everyone. If you want dragging, maybe use SetNetworkOwner() or fake it with visuals + AlignPosition.

I don’t think you can use Roblox’s Rope Constraint feature if you want both of the clients to experience no lag or buffer

The reason for this is Roblox’s Rope Constraint feature has to pick one of the attachments as the network owner for both clients which is why one of the clients doesn’t have any lag while the other does

You’ll have to create your custom Rope system which you can base the layout from the link below if you really need the Rope system to have no lag on both clients

1 Like

It always will be if you use one rope.

Instead, create no rope on the server, but every client creates a rope locally. Then the dragged player will simulate his own physics correctly and all other will see the rope but not simulate it.

The solution is actually to create an individual rope for each player on the server, where one end gets attached to the player it is intended for and their client manages positioning the other end of it. If you did it your way then it would break replication entirely for their character.

1 Like

There’s many ways to do it. But yes, it could be even easier just create one rope on the server, but not attach one end of it. And let the clients set the other end of the rope. That would give same effect.

Idk what you mean by break replication. The entire idea in both cases is to have a the rope only simulate locally, letting each character simulate their own physics leading to the smoothest results.

In my personal experience trying to create similar systems, the moment a completely locally created rope was attached between two player characters it would break replication (the characters would be completely desynced from the server’s position on every client) and the post I linked gives an explanation of why that happens.

Do you mean create 2 ropes and link the players or link both of them to a basepart in the middle?

Basically what I mean is, for each player you create 2 baseparts and link a rope between them. one of the baseparts will be welded to the player’s character and that player’s client will constantly move the other one to the location of the second player’s character.