Carrying a Physical Object with Two Players (Blueprint) – Replication Issues

Hi,

I’m working on a multiplayer setup in Unreal Engine (Blueprint) where two players carry the same physical object together.

With one player, everything works fine:

  • Physics behaves correctly

  • Server authority is respected

  • Replication is stable

As soon as two players grab the object at the same time, it breaks:

  • Strong jitter on clients

  • Conflicting movement / forces

  • Unstable replication, even with server-authoritative logic

So the core issue seems to be how to correctly drive a shared physics object with multiple players in multiplayer. The game Moving Out is a good reference in terms of carrying an object together.

So what would you do? How would you approach it?
Thanks!

this one could be tricky but i’d suggest disabling physics on the client otherwise collisions will cause server corrections. you could probably disable all collision on the client and just replicate the movement

I’d create an invisible ‘grabbable’ for each of the players which is separate from the object itself. Then if constraints are met (not too far away, appropriate angles, etc) the actual object aligns itself along the vector between the invisible things that the players are holding. This way the physics is only dealing with one target per object.

Thanks for your feedback! I have thought further about it, and to simplify the “behaviour”, I’m chosing to use the object as the driver and the players are simply providing inputs, now I need to see if I can make it work. If not, I’ll try the invisible grabbable. Cheers

your pivot is the right one. object as the driver with players as inputs is the pattern that actually ships, two constraints fighting over one body never converges, one sim owns the object and everyone else sends data.

concrete shape: server owns the carried object (one simulated body). each grabber sends their intent (grab point plus pull vector) to the server through their own controller RPC. server sums the inputs and drives the single body toward teh combined target each tick. clients just see the replicated transform. no constraint actors shared across authorities at all. the invisible-grabbable idea from InsanePete works as the per-player handle for computing those intent vectors locally.

this is the 2-way tether problem and it is built end to end here: Networked Physics - Gameplay Tutorial