part:GetMass() on descendants of the character when
DescendantAdded fires. When it is called on the
Handle part in an
Accessory, it returns a positive number. Some arbitrary amount of time later (around .15 seconds), the mass becomes 0, seemingly without any detectable indication that it did. Now the mass calculations that already finished are wrong because the mass silently changed.
reproduction (LocalScript in StarterCharacterScripts):
script.Parent.DescendantAdded:Connect(function(part) if part:IsA("BasePart") and part.Parent:IsA("Accoutrement") then local path = part:GetFullName() print(path, part:GetMass()) part.Changed:Connect(function(property) print("(changed)", part:GetFullName(), property, part[property], part:GetMass()) end) wait(1) print("(new mass)", path, part:GetMass()) end end)
Workspace.1waffle1.Angel.Handle 25.199998855591 (changed) Workspace.1waffle1.Angel.Handle Parent Angel 25.199998855591 Workspace.1waffle1.DominusV2.Handle 5.5999999046326 (changed) Workspace.1waffle1.DominusV2.Handle Parent DominusV2 5.5999999046326 Workspace.1waffle1.AncalagonGreenBlack.Handle 11.648006439209 (changed) Workspace.1waffle1.AncalagonGreenBlack.Handle Parent AncalagonGreenBlack 11.648006439209 (new mass) Workspace.1waffle1.Angel.Handle 0 (new mass) Workspace.1waffle1.DominusV2.Handle 0 (new mass) Workspace.1waffle1.AncalagonGreenBlack.Handle 0
I included the connection to
Changed to show that there’s no indication that the mass changes.
The output here seems to also demonstrate another bug:
Changed fires because the
Parent changed, but it didn’t.