Whenever I make weld my tool together, the weld DOES hold but when I equip the tool again, miniature parts are scattered EVERYWHERE. I observed it a bit and the welds break when the tool is unequipped, not when it is re-equipped. Only one weld survives and that's the weld that's welded to the parent of all welds (i.e All of the tool's welds are welded to the Handle and the surviving weld is the weld welded to the Handle) If you can help me with this I'll be ever grateful.
In case you want the weld script I used, here it is:
function weld(p,wt)
for i,v in pairs(p:GetChildren()) do
if v:IsA("BasePart") then
wtcf = wt.CFrame
vcf = v.CFrame
weld = Instance.new("Weld", wt)
weld.Part0 = wt
weld.Part1 = v
weld.C0 = wtcf:inverse()
weld.C1 = vcf:inverse()
v.Anchored = false
end
end
end
weld(script.Parent, script.Parent.Handle)

2 comments
I am no weld expert, does the parent need to be defined to work?
Are you calling this function (weld) every time the tool is equipped?