How does this script work, I'm trying to learn from it but I need to know how it works to move the Player's body.

--Animation script by OblivionTU RS = nil Rarm = nil

weld = nil

torso = nil

holder = nil holderweld = nil

connection = nil glitchConnection = nil

animating = false

--Anim animate = script.Parent.Animate --Anim

Tool = script.Parent if script.Parent.className ~= "Tool" then print("The script must be placed in a tool!") end

function Animate() --Animations by OblivionTU if weld == nil or animating then return end animating = true weld.C1 = CFrame.new(weld.C1.p) * CFrame.fromEulerAnglesXYZ(-math.pi/2,0,0) holderweld.C1 = CFrame.new(holderweld.C1.p) * CFrame.fromEulerAnglesXYZ(math.pi/2, math.pi/2, 0)

if animate.Value == "Slash1" then
	for i=1, 5 do
		weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ((0.15 * 5)/5, (-0.1 * 5)/5, 0)
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((0.15 * 5)/5,0,0)
		wait()
	end
	for i=1, 5 do
		weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ((0.15 * 5)/5 * -1, (-0.1 * 5)/5 * -1, 0)
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((0.15 * 5)/5 * -1,0,0)
		wait()
	end
	weld.C1 = CFrame.new(weld.C1.p) * CFrame.fromEulerAnglesXYZ(-math.pi/2,0,0)
end

if animate.Value == "SlashLeft" then
	weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ(0,-math.pi/4,0)
	for i=1, 5 do
		weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ((0.2 * 5)/5,0,0)
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((0.2 * 5)/5,0,0)
		wait()
	end
	for i=1, 5 do
		weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ((0.2 * 5)/5 * -1,0,0)
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((0.2 * 5)/5 * -1,0,0)
		wait()
	end
	weld.C1 = CFrame.new(weld.C1.p) * CFrame.fromEulerAnglesXYZ(-math.pi/2,0,0)
end

if animate.Value == "SlashRight" then
	weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ(-0.5,-0.35,0)
	for i=1, 5 do
		weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ((0.2 * 5)/5, (0.2 * 5)/5, 0)
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((0.15 * 5)/5,0,0)
		wait()
	end
	for i=1, 5 do
		weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ((0.2 * 5)/5 * -1, (0.2 * 5)/5 * -1, 0)
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((0.15 * 5 * -1)/5,0,0)
		wait()
	end
	weld.C1 = CFrame.new(weld.C1.p) * CFrame.fromEulerAnglesXYZ(-math.pi/2,0,0)
end

if animate.Value == "Stab" then
	for i=1,3 do
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((math.pi/2)/3, 0, 0)
		wait()
	end
	for i=1,3 do
		weld.C1 = weld.C1 * CFrame.new(0,0,1/3)
		wait()
	end
	for i=1,3 do
		weld.C1 = weld.C1 * CFrame.new(0,0,-1/3)
		wait()
	end
	for i=1,3 do
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((math.pi/2)/-3, 0, 0)
		wait()
	end
end

if animate.Value == "Lunge" then
	for i=1, 3 do
		weld.C0 = CFrame.new(weld.C0.p) * CFrame.fromEulerAnglesXYZ(0,((math.pi/4)/3) * i,((math.pi/2)/3) * i)
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ(((math.pi/5)/3) * i,0,0)
		wait()
	end
	for i=1, 6 do
		weld.C0 = CFrame.new(weld.C0.p) * CFrame.fromEulerAnglesXYZ(0,math.pi/4,math.pi/2) * CFrame.fromEulerAnglesXYZ(((-math.pi/4)/6) * i, 0, 0)		
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ(((math.pi/5)/2)/6,0,0)
		wait()
	end
	for i=1, 3 do
		weld.C0 = CFrame.new(weld.C0.p) * CFrame.fromEulerAnglesXYZ(0,0,math.pi/2) * CFrame.fromEulerAnglesXYZ(0,0,((-math.pi/2)/3) * i)
		holderweld.C1 = holderweld.C1 * CFrame.fromEulerAnglesXYZ((-math.pi/2)/3,0,0)
		wait()
	end
end
animate.Value = "none"
animating = false

end

animate.Changed:connect(Animate)

function onEquipped(mouse) -- OnEquipped function by OblivionTU if mouse == nil then wait() end

torso = Tool.Parent.Torso

Rarm = Tool.Parent["Right Arm"]

if mouse ~= nil then
	RS = torso["Right Shoulder"]
	RS.Parent = nil
end

holderweld = Rarm.RightGrip

weld = Instance.new("Weld")
weld.Part0 = torso
weld.Part1 = Rarm
weld.C0 = CFrame.new(1.5,0.5,0)
weld.C1 = CFrame.new(0,0.5,0)
weld.Parent = Tool.Parent["Head"]

animating = true
for i=1, 10 do
	weld.C1 = weld.C1 * CFrame.fromEulerAnglesXYZ((-math.pi/2)/10,0,0)
	wait()
end
animating = false

--glitchConnection = Tool.Parent.ChildAdded:connect(function() onEquipped(nil) end)

end

Tool.Equipped:connect(onEquipped)

function onUnequipped() -- Unequipped function by OblivionTU if connection ~= nil then connection:disconnect() end if glitchConnection ~= nil then glitchConnection:disconnect() end if RS ~= nil and torso ~= nil then RS.Parent = torso RS = nil end if weld ~= nil and torso ~= nil and Rarm ~= nil and holder ~= nil then weld.Parent = nil weld = nil Rarm = nil holder:remove() end end

Tool.Unequipped:connect(onUnequipped)

--Everything by OblivionTU in this script.