Accessories do not replicate when changing parents from non-replicating containers when Streaming is enabled

When Streaming is enabled, if I change the parent of an accessory from a non-replicating container to a normal character, the parts in the accessory won’t replicate to clients other than the character’s own client. For example, if players A, B, and C are in the game and I parent an accessory from nil or ServerStorage to CharacterA, either by manually setting the parent or using AddAccessory, PlayerA will see the whole accessory, but Players B and C will only see the accessory instance – not the parts inside. If PlayerD joins the game afterwards, they will see the accessory parts on CharacterA.

Repro.rbxl (16.9 KB)

Repro steps:

  • Load repro file
  • Start test server with 2 players
  • If the two test players start up roughly at the same time, the other character will not have an accessory
  • If one test player starts up after the first, the first test player will not see the accessory on the second, but the second will see accessories on both characters

Alternate:

  • Load repro file
  • Disable script
  • Run test server with 2 players
  • Copy and paste accessory in ReplicatedStorage to ServerStorage twice
  • Drag one accessory onto each character’s model
  • The owning client will see the accessory, but no one else

Note that this only happens if there is not a part at Y < 129. The bug will not occur if the baseplate is:

  • Position = <0,128,0>; Size=Any
  • Position = <0,-129,0>; Size=Any
  • Position = <1mil, 128, 1mil>; Size=Any

Streaming is disabled, accessory is parented to a replicating container before equipping, or a part exists at Y < 129:

Streaming is enabled, accessory is parented to a non-replicating container before equipping, AND a part doesn’t exist at Y < 129:

6 Likes

Hi, so Echo found this from my work-in-progress game Assassination Tower. He wants me to talk about the developer impact.

Why this bug matters:

  • I spent a good five-six hours trying to debug this, to no avail, had I not gone to Echo, I would be using some funky detection method right now to replicate accessories locally.

  • While nobody was effected immediately, since the game has yet to release, had I released without noticing this bug, players would be spending their money on essentially nothing. If someone were to be unaware of this bug’s existance, they would be completely in the dark on why their code was not executing properly, like I was.