Issue when BodyPartDescription changes, Engine can Re-Weld Accessories to the wrong Character Aesthetic Part due to an Attachment's name

Description

What does it mean to the Roblox Engine, if a Character has a Model with a Handle that contains an Attachment named BodyBackAttachment ?

It looks like there’s something really special about this Attachment. The existance of that Attachment, causes an issue.

The Weld for the Shield on my Avatar, didn’t go to my UpperTorso instead it choose the Model with that said Handle as its new home. :thinking:

Then I delete it, which makes my Accessories fall off the character, because for some reason, the Accessories decided to Weld somewhere else, instead of the Character’s Aesthetic Parts.

 

In the Private Message there are videos which also explain this issue, along with a place file to re-produce the issue. Watch them all to the end, please, I guess.

 

 

More Videos!!

MORE VIDEOS


 

Re-production Steps

You can just run the test place file found in the Private Message and click the red button like in the video above.

  1. Open Roblox Studio.
  2. Read the Comments of the Script below and run it in Server Context
Script
-- You need the default Torso Package
-- And default Head
-- And some Accessories as Hat and for the Back.

local targetPly = game.Players:FindFirstChildOfClass("Player")

local function runTest1()
	local test = Instance.new("Model")
	Instance.new("Part", test).Name = "Handle"
	test.PrimaryPart = test.Handle
	
	Instance.new("Attachment", test.Handle).Name = "BodyBackAttachment"
	Instance.new("Attachment", test.Handle).Name = "HatAttachment"
	
	test.Handle.BodyBackAttachment.Position = Vector3.new(0,0,2)
        
	Instance.new("Weld", test) test.Weld.Part0 = test.Handle
	test.Weld.Part1 = targetPly.Character.UpperTorso
	
	test.Parent = targetPly.Character
	
	task.wait(4)
	test:Destroy()
end

task.spawn(function() runTest1() end)


task.wait()

targetPly.Character.Humanoid:ApplyDescription(
	game.Players:GetHumanoidDescriptionFromUserId(2)
)

task.wait()

targetPly.Character.Humanoid:ApplyDescription(
	game.Players:GetHumanoidDescriptionFromUserId(targetPly.UserId)
)  
  1. Observe

 

Expected Result

The Accessories Weld to the correct Character Aesthetic Part. Regardless if that Model with the said Handle and Attachment is present… It’s not a valid Character Aestehtic Part.

Actual Result

The Accessories all welded to this Model’s Handle, due to it having BodyBackAttachment. Deleting the BodyBackAttachment doesn’t cause this issue.

Which is asking us, why.

 

A private message is associated with this bug report