I feel like I'm staring right in the face of the answer but yet I can't see it. I've read these Roblox wikis,
http://wiki.roblox.com/index.php?title=CFrame
http://wiki.roblox.com/index.php?title=Weld#Welding_together_two_existing_bricks
and I've tried this Script in a Model with the parts I want to weld together as childs of the Model,
local function weldBetween(a, b)
local weld = Instance.new("ManualWeld", a)
weld.Part0 = a
weld.Part1 = b
weld.C0 = a.CFrame:inverse() * b.CFrame
return weld
end
local weld = weldBetween(game.Workspace.BoatModel.a, game.Workspace.BoatModel.b)
but I can't figure anything out. I'm making a boat--I need the parts to stay in their relative positions to each other but be able to move around the game like a real boat.
I found a free model in the Toolbox called MasterWeld that apparently would weld all the pieces in a Model together using a weldAll statement...but that didn't work. The code in MasterWeld is as follows:
-- MasterWeld by Zephyred
-- Works for all types of parts, unions etc.
local exclude = {"Wheel"} -- Any object whose name is in this list will not be welded, for example wheels.
function WeldPair(x, y)
local weld = Instance.new("Weld",x)
weld.Part0 = x
weld.Part1 = y
weld.C1 = y.CFrame:toObjectSpace(x.CFrame);
end
function WeldAll(model, main) -- model can be anything
for i,v in pairs(exclude) do if (model.Name == v) then return end end
if model:IsA("BasePart") then WeldPair(main, model) end
for _,v in pairs(model:GetChildren()) do WeldAll(v, main) end
end
function UnanchorAll(model) -- model can be anything
if (model:IsA("BasePart")) then model.Anchored = false end
for _,v in pairs(model:GetChildren()) do UnanchorAll(v) end
end
WeldAll(script.Parent, script.Parent.Part)
UnanchorAll(script.Parent)
script:Destroy() -- Done, clean script up.
I don't have a lot of background knowledge in scripting but I'm pretty sure I meet the prerequisites in the Welds ROBLOX wiki page. :V
I really just need to stick this thing together and move on with making my game. Please please help.
