local function weldBetween(a, b)
--Make a new Weld and Parent it to a.
local weld = Instance.new("ManualWeld", a)
weld.Part0 = a
weld.Part1 = b
--Get the CFrame of b relative to a.
weld.C0 = a.CFrame:inverse() * b.CFrame
--Return the reference to the weld so that you can change it later.
return weld
end
local weld = weldBetween(script.Parent.Handle, script.Parent.Part1, script.Parent.Part2, script.Parent.Part3, script.Parent.Part4, script.Parent.Part5, script.Parent.Part6)
I'm making a tool with multiple parts, and this is my weld script, but it still does nothing. Only the Handle shows up. Help?

7 comments
Nope, when I use the gun it still only shows up as a handle
Is it because they're Unions? Do Welds not work on Unions?
No, it's because on line 7 you made it so all the unions move to the same position when they are welded
I managed to sorta get it working. Thanks for your help?
One more question: When I build the gun, there are parts of it that aren't always facing forward, and that effects the way its welded. Is there any way to fix it without having to change the way the gun is built?
These two functions are what I wrote to correct for rotation in CFrame encoding. Good luck http://hastebin.com/ewemukinaf.lua
That script doesn't do anything for whatever reason. I was messing around and got it working at some point. Without that script. I have no idea how or why, but it worked. I accidently closed out of that window........ I'm so close to giving up