Network Ownership with parts connected with a UJoint lag

Reproduction Steps:
Studio - 574
HumanoidPhysicsControllerAndLag.rbxl (107.5 KB)

  • Open the place file provided.
  • Enter Play Solo
  • Notice the truss parts connected with a Universal Constraint are very laggy.

Expected Behavior:
I would expect that the universal constraints act more like ball socket constraints and not have as much lag:
ExampleBallSockets.rbxl (107.5 KB)
Video of ball sockets:
robloxapp-20230507-1437376.wmv (1.0 MB)

Actual Behavior:
Universal constraints have visible and frequent freezing on the client.
Video of universal constraints:
robloxapp-20230507-1432009.wmv (1.6 MB)

We’ve filed a ticket into our internal database for this issue, and will come back as soon as we have updates!

Thanks for the report1

2 Likes

Hi @SubtotalAnt8185 I just tried to reproduce this issue using Studio 597 and could not. Can you please try it with the latest version of studio and let us know if it’s still a problem.

Thanks

It appears that the new humanoid physics controllers have updated since and require an update to the repro place. Here’s the updated version:
HumanoidPhysicsControllerAndLag2.rbxl (81.0 KB)
The issues seem to have been slightly mitigated (no more freezing), but the humanoids seem to lag and jump up and down the ladder randomly at times.

While the new ClimbController system does allow for climbing on moving parts, the default behavior of the sensor assigned to ControllerManager.ClimbSensor may not be ideal for it.

Using a custom sensor is outlined at the bottom of this article:
https://create.roblox.com/docs/physics/character-controllers

But the summary is that you’ll want to write your own script that queries for your climbable parts (meaning you also wouldn’t be required to use truss parts here). You could use a blockcast for example that searches a good radius around the character for climbable parts. You just make sure that the ControllerManager.ClimbSensor.SensedPart is set and exists. As long as that is set you the ClimbController should remain active and the character will stay attached to the rope.

You also may want to set BalanceRigidityEnabled, or increase the MaxTorques/Forces on the ClimbController.

1 Like