This is my script:
local prev --weld seat if(script.Parent.Parent:FindFirstChild("VehicleSeat"))then local weld = Instance.new("Weld") weld.Name = "dd" weld.Part0 = script.Parent.Handle weld.Part1 = script.Parent.Parent.VehicleSeat weld.C0 = script.Parent.Handle.CFrame:inverse() weld.C1 = script.Parent.Parent.VehicleSeat.CFrame:inverse() weld.Parent = script.Parent.Handle script.Parent.Parent.VehicleSeat.Anchored = false end --weld models for i,v in pairs (script.Parent:GetChildren())do if(v:IsA("Model"))then if(v.Name == "Hinge")then local part = Instance.new("Part") part.Size = Vector3.new(.1,.1,.1) part.Rotation = v.PrimaryPart.Rotation part.Position = v.Wheel.Position part.CanCollide = false part.Parent = script.Parent part.Transparency = 1 part.Name = "M" local weld = Instance.new("Motor6D") weld.Name = "motor" weld.MaxVelocity = 0.03 weld.Part0 = part weld.Part1 = v.PrimaryPart weld.Parent = v.PrimaryPart for l,m in pairs (v:GetChildren())do m.Anchored = false if(m.Name ~= "Wheel")then local weld = Instance.new("Weld") weld.Name = "dd" weld.Part0 = m weld.Part1 = m.Parent.PrimaryPart weld.C0 = m.CFrame:inverse() weld.C1 = m.Parent.PrimaryPart.CFrame:inverse() weld.Parent = m.Parent.PrimaryPart end end else local weld = Instance.new("Weld") weld.Part0 = v.PrimaryPart weld.Part1 = script.Parent.Handle weld.C0 = v.PrimaryPart.CFrame:inverse() weld.C1 = script.Parent.Handle.CFrame:inverse() weld.Parent = v.PrimaryPart for l,m in pairs (v:GetChildren())do m.Anchored = false if(m.Name ~= "Wheel")then local weld = Instance.new("Weld") weld.Name = "dd" weld.Part0 = m weld.Part1 = m.Parent.PrimaryPart weld.C0 = m.CFrame:inverse() weld.C1 = m.Parent.PrimaryPart.CFrame:inverse() weld.Parent = m.Parent.PrimaryPart end end end end end --weld parts local parts = script.Parent:GetChildren() for i = 1,#parts do if (parts[i].className == "Part" or parts[i].className == "UnionOperation" or parts[i].className == "WedgePart" or parts[i].className == "Seat" or parts[i].className == "VehicleSeat") then if (prev ~= nil and parts[i].Name ~= "Hinge" and parts[i].Name ~= "Hitch")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] end end --unanchor for i,v in pairs(script.Parent:GetChildren())do if(v.className == "Part" or v.className == "UnionOperation" or v.className == "WedgePart" or v.className == "Seat" or v.className == "VehicleSeat")then v.Anchored = false end end
But it welds weird and looks like it has been in a car accident. I don't think it is the script because the model welds fine in a map that is just about empty. But when it is in a map that has a lot of terrain, and takes awhile to load, then it welds weird. How can I make it load properly?