this script is supposed to weld all the children inside the model, which it does weld. But the problem is, sometime it welds weird, such as welding the left leg to the head or welding a part inside of the model where it supposed to be it welds it somewhere else. If you have other ways to approach this, please share

local prev 
local parts = script.Parent:GetChildren() 

for i = 1,#parts do 
	if (parts[i].className == "Part") or (parts[i].className == "WedgePart") or (parts[i].className == "UnionOperation") or (parts[i].className == "MeshPart") or (parts[i].className == "CornerWedgePart") then 
		if (prev ~= nil)then 
			local weld = Instance.new("Weld") 
			weld.Part0 = prev 
			weld.Part1 = parts[i] 
			weld.C0 = prev.CFrame:inverse() 
			weld.C1 = parts[i].CFrame:inverse() 
			weld.Parent = prev
		end 
		prev = parts[i]
		parts[i].Anchored = false
	end
end

2 comments

0

:GetChildren( ) will return a table of children in random order. This explain why your script act weird. I don't have any solution right now, but hope it help you solve your problem.

0

how can I fix that?