It appears that when a r15 user has a package equipped, during spawn, parts are added to their character only to be immediately removed and replaced again. This bug appears to only effect server scripts, and not client scripts.
This causes issues with people trying to do things to the character when they spawn, such as welding a part to the character.
Example:
This would simply fall to the ground rather than welding to the players torso. The part the weld was attached to gets removed immediately and replaced with a second one, so it’s connected to nothing.
This is a known issue with the current way of how packages load for characters. The solution is to add a small wait before you weld anything to the character
local function GiveBag(char, bagInfo)
wait(.4)
local bag = ServerStorage.Bags:FindFirstChild(bagInfo.Name):Clone()
bag.Parent = char
Weld(bag.PrimaryPart,char:WaitForChild("UpperTorso"))
end
This is not a bug – more so a side effect of how R15 characters are loaded. When creating your R15 character, Roblox inserts rbxasset://avatar/characterR15.rbxm as a baseline. Afterwards, it downloads your appearance from the site (similarly to Players:GetCharacterAppearanceAsync()) and replaces any body parts that aren’t using the default package. If your torso does not have a package applied, it will only be added once, but if the left arm has a package applied, the no-package arm will first be added and then again once replaced by the package arm.
You can wait for this to finish with Player.CharacterAppearanceLoaded. Example:
Whenever you need to do anything with character limbs (e.g. set collision group, weld something to them, reference them in a variable), you should use CharacterAppearanceLoaded to make sure you’re using the final part.
Do you know if this event waits for accessories as well?
I’ve had issues in the past with accessories loading seconds after I’ve done awful, nefarious things to the character. I tried CharacterAppearanceLoaded but it didn’t seem to wait for accessories. I ended up just disabling character appearances altogether.
I’d say it’s still a bug, something that’s intrusive and could likely be easily patched. It should at least get some documentation on the wiki, warning people about it.
Years later and this post was helpful to my problem. I think this is still an issue. I tried to parent ballsocketconstraints to each character part. And no matter what I do it won’t parent. Even if I print out the parents, it says they are correct. But they simply don’t appear in workspace without that wait timer.