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?
