Replication of character's position stops after adding a high amount of assembly mass on client

Replication of character’s position stops after adding a high amount of assembly mass for any of the character’s basepart descendants on client.

Reproduction Steps:

  1. Create a part on the client
  2. Set part’s density to 100 (using CustomPhysicalProperties)
  3. Set part’s size to 512, 512, 512
  4. Set part’s CanCollide to false
  5. Weld the part to HumanoidRootPart
  6. Parent the part to any descendant of the workspace/character

Reproduction File:
Reproduction.rbxl (53.3 KB)

7 Likes

You may be changing the assembly root on the client and causing a physics desync. The root is typically the most massive part in an assembly, unless weighted otherwise using the related basepart property. This is somewhat expected behavior.

2 Likes

Thanks for the report! We’ll follow up when we have an update for you!

Hi! @PeZsmistic is correct, the assembly root part changes when you weld the massive part. To see this, you can add the line

print(Root.AssemblyRootPart.Name)

to the end of your AddMass function in your repro. If the size of the part is small (e.g. 1), the root part of the assembly will remain HumanoidRootPart. Setting the size of the part to 512 will make the massive part the root part of the assembly, and Part will be printed instead.

See here for details about root part determination. Since the assembly root part is not the HumanoidRootPart, physics replication desyncs and produces what you observed.

1 Like