CharacterRepro.rbxl (53.0 KB)
^ This repro file contains a ServerScript that will help show the behavior issues.
In short, when a character is first loaded, the server is unable to observe them in their true state for an arbitrary amount of time. As if it were streaming in, in a non-atomic way. Not only do their parts load in one by one quite slowly, they’re not in the correct location.
In my game I’m trying to scale players to the same scale. This is required because the new UGC avatar items make it so regardless of game settings, players can be any size. What I’m doing is when characters are loaded, I measure the height of the character by the distance from their feet to their head, then scale accordingly.
The issue is, sometimes the measurement is wrong, and characters become massive. This implies the server believes that their head and feet are right next to each other. Sure enough, I went looking on a baseplate using that repro file and found that when a character is added using CharacterAdded it can take multiple frames before the character’s parts exist, it’s parented to workspace, and it’s moved to the appropriate location. This timing seems completely arbitrary, and it makes it very hard to detect when a character is fully loaded in or not.