Hello, I have a problem with a tool, what i want to make is a sword that can put the blade in and out the in a blade protector(i'm not sure if its called blade protector) but after doing it, it removes an important part of the tool after few time after taking the blade out then putting it back in, rarely it doesn't, or takes longer than usual.
These are the scripts that i'm using(No errors until the blade is gone and the only error is that the blade is misisng)
Script to weld the tool:
tool = script.Parent tool.Equipped:Connect(function() local weld = Instance.new("Weld") weld.Name = "weld1" weld.Parent = script.Parent.Handle2 weld.Part0 = script.Parent.Handle2 weld.Part1 = script.Parent.Parent:FindFirstChild("LeftHand") local weld2 = Instance.new("Weld") weld2.Name = "weld1" weld2.Parent = script.Parent.BladeProtectorPart weld2.Part0 = script.Parent.BladeProtectorPart weld2.Part1 = script.Parent.BladePart end) tool.Unequipped:Connect(function() local weldha1 = script.Parent.HandlePart:FindFirstChild("weld1") if weldha1 ~= nil then weldha1:Destroy() end local weldha2 = script.Parent.Handle2:FindFirstChild("weld1") if weldha2 ~= nil then weldha2:Destroy() end local weldbpp = script.Parent.BladeProtectorPart:FindFirstChild("weld1") if weldbpp ~= nil then weldbpp:Destroy() end end)
Local Script to be able to put the blade in and out
local tool = script.Parent local uis = game:GetService("UserInputService") local out = false local enabled = true tool.Equipped:Connect(function() uis.InputBegan:Connect(function(input, gameprocess) if not enabled then return end enabled = false if input.KeyCode == Enum.KeyCode.E then local weldbpp = script.Parent.BladeProtectorPart:FindFirstChild("weld1") local weldha1 = script.Parent.HandlePart:FindFirstChild("weld1") local weldha2 = script.Parent.Handle2:FindFirstChild("weld1") if out == true then out = false if weldha1 ~= nil then weldha1:Destroy() end local weld01 = Instance.new("Weld") weld01.Name = "weld1" weld01.Parent = script.Parent.BladeProtectorPart weld01.Part0 = script.Parent.BladeProtectorPart weld01.Part1 = script.Parent.BladePart elseif out == false then out = true if weldbpp ~= nil then weldbpp:Destroy() end local weld0 = Instance.new("Weld") weld0.Name = "weld1" weld0.Parent = script.Parent.HandlePart weld0.Part0 = script.Parent.HandlePart weld0.Part1 = script.Parent.Parent:FindFirstChild("RightHand") end end wait(0.2) enabled = true end) end)
Pictures: https://imgur.com/a/Vy2w3vd