I just made it clone the motor and reweld everything

I'm new to scripting so don't judge me So this is an animation (using cframe) when you press R problem is though, arm falls off after animation and doesn't go back to normal. Help please?

Player = game.Players.LocalPlayer
mouse = Player:GetMouse()

mouse.KeyDown:connect(function (key)
if script.value.Value == true then
if key == "r" then
script.Parent.attack.value.Value = false
script.value.Value = false
if Player.Character:FindFirstChild("Blades1") ~= nil and Player.Character:FindFirstChild("Blades2") ~= nil then
local b1 = Player.Character:FindFirstChild("Blades1")
local re1 = script.bladre:Clone()
re1.Parent = b1
Player.Character:FindFirstChild("Left Arm").Blades1:remove()
b1.Middle.Velocity = b1.Middle.CFrame.lookVector * 25
b1.Parent = game.Workspace
b1.blade.CanCollide = true
re1.Disabled = false
script.reload:Play()
local b2 = Player.Character:FindFirstChild("Blades2")
local re2 = script.bladre:Clone()
re2.Parent = b2
Player.Character:FindFirstChild("Right Arm").Blades1:remove()
b2.Middle.Velocity = b2.Middle.CFrame.lookVector * 25
b2.Parent = game.Workspace
b2.blade.CanCollide = true
re2.Disabled = false
end

if Player.Character:FindFirstChild("Blades1") == nil and Player.Character:FindFirstChild("Blades2") == nil then
 local torso = Player.Character:FindFirstChild("Torso")
	local arm1 = Player.Character:FindFirstChild("Left Arm")
    local arm2 = Player.Character:FindFirstChild("Right Arm")
    local weld1 = Instance.new("Weld" , Player.Character:FindFirstChild("Left Arm"))
	local weld2 = Instance.new("Weld" , Player.Character:FindFirstChild("Right Arm"))
    weld2.Part0 = torso
    weld2.Part1 = arm2
	weld1.Part0 = torso
    weld1.Part1 = arm1
	local ls = Player.Character:FindFirstChild("Torso"):FindFirstChild("Left Shoulder")
    local rs = Player.Character:FindFirstChild("Torso"):FindFirstChild("Right Shoulder")
ls.Part1 = nil
rs.Part1 = nil
weld1.C0 = CFrame.new(-1.5,0,0)
weld2.C0 = CFrame.new(1.5,0,0)
for i=1,12 do
weld1.C1 = weld1.C1 * CFrame.Angles(0.02,0.25,0.1)
weld1.C0 = weld1.C0 * CFrame.new(0.05,0,0)
weld2.C1 = weld2.C1 * CFrame.Angles(0.02,-0.25,-0.1)
weld2.C0 = weld2.C0 * CFrame.new(-0.05,0,0)
	wait(0.01)
end
getblades()
for i=1,10 do
weld1.C1 = weld1.C1 * CFrame.Angles(-0.1,0,0)
weld1.C0 = weld1.C0 * CFrame.new(0,0.1,-0.1)
weld2.C1 = weld2.C1 * CFrame.Angles(-0.1,0,0)
weld2.C0 = weld2.C0 * CFrame.new(0,0.1,-0.1)
	wait(0.01)
end
for i=1,10 do
weld1.C1 = weld1.C1 * CFrame.Angles(-0.1,0,0)
weld1.C0 = weld1.C0 * CFrame.new(0,0.1,0.1)
weld2.C1 = weld2.C1 * CFrame.Angles(-0.1,0,0)
weld2.C0 = weld2.C0 * CFrame.new(0,0.1,0.1)
	wait(0.01)
end
weld1.C0 = CFrame.new(1.5,0,0)
weld2.C0 = CFrame.new(-1.5,0,0)
weld1.C1 = CFrame.fromEulerAnglesXYZ(0,0,0)
weld2.C1 = CFrame.fromEulerAnglesXYZ(0,0,0)
ls.Part1 = arm1
rs.Part1 = arm2
wait(0.1)
weld1:remove()
weld2:remove()
script.value.Value = true
script.Parent.attack.value.Value = true
end


end

end
end)
	

function getblades()
      local g = game.StarterGui.Blades1:Clone()
        		g.Parent = Player.Character
		local C = g:GetChildren()
		for i=1, #C do
			if C[i].className == "Part" then
				local W = Instance.new("Weld")
				W.Part0 = g.Middle
				W.Part1 = C[i]
				local CJ = CFrame.new(g.Middle.Position)
				local C0 = g.Middle.CFrame:inverse()*CJ
				local C1 = C[i].CFrame:inverse()*CJ
				W.C0 = C0
				W.C1 = C1
				W.Parent = g.Middle
			end
				local Y = Instance.new("Weld")
				Y.Name = "Blades1"
				Y.Part0 = Player.Character["Left Arm"]
				Y.Part1 = g.Middle
				Y.C0 = CFrame.new(0, 0, 0)
				Y.Parent = Y.Part0
		end

		local h = g:GetChildren()
		for i = 1, # h do
			if h[i].className == "Part" then
				h[i].Anchored = false
				h[i].CanCollide = false
			end
end
  local g = game.StarterGui.Blades2:Clone()
        		g.Parent = Player.Character
		local C = g:GetChildren()
		for i=1, #C do
			if C[i].className == "Part" then
				local W = Instance.new("Weld")
				W.Part0 = g.Middle
				W.Part1 = C[i]
				local CJ = CFrame.new(g.Middle.Position)
				local C0 = g.Middle.CFrame:inverse()*CJ
				local C1 = C[i].CFrame:inverse()*CJ
				W.C0 = C0
				W.C1 = C1
				W.Parent = g.Middle
			end
				local Y = Instance.new("Weld")
				Y.Name = "Blades1"
				Y.Part0 = Player.Character["Right Arm"]
				Y.Part1 = g.Middle
				Y.C0 = CFrame.new(0, 0, 0)
				Y.Parent = Y.Part0
		end

		local h = g:GetChildren()
		for i = 1, # h do
			if h[i].className == "Part" then
				h[i].Anchored = false
				h[i].CanCollide = false
			end
end
end

1 comment

0

Definitely new to scripting... You wrote a 100+ line script