Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Welding script error?

Asked by
Exudo 13
10 years ago

When I equip it a few times, it decides to rotate my character. Anyone know why this won't work?

Heres the glitch: Video

local tool = script.Parent

function Weld(par)
    for _,v in pairs(par:GetChildren()) do
        Weld(v)
        if v:IsA("BasePart") and v.Name ~= "Handle" then
            local weld = Instance.new("Weld", tool)
            weld.Part0 = tool.Handle
            weld.Part1 = v
            weld.C0 = tool.Handle.CFrame:inverse() * tool.Handle.CFrame
            weld.C1 = v.CFrame:inverse() * tool.Handle.CFrame
            v.Anchored = false
        end
    end
end

function Unweld(par)
    for _,v in pairs(par:GetChildren()) do
        if v:IsA("BasePart") then
            v.Anchored = true
        end

        if v:IsA("Weld") then
            v:Destroy()
        end
    end
end

function equipped(mouse)
    Weld(tool)
    script.Parent.Handle.Anchored = false
end

function unequipped(mouse)
    Unweld(tool)
end

script.Parent.Equipped:connect(function(mouse)
    Spawn(function() equipped(mouse) end)
end)

script.Parent.Unequipped:connect(function(mouse)
    Spawn(function() unequipped(mouse) end)
end)

Answer this question