Hey. The problem with my script is that the sword is not going up into idle mode after I use it to slash. I'll save you the time reading the whole thing. The only real relative lines are 4-8, 10-14 and 137-141. Please take a few minutes to comb through that and see what I did wrong if you think you could be of any assistance.

Sword = script.Parent:GetChildren()
Tool = script.Parent

function SwordSlash()
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(0,-1,0)
	Tool.GripUp = Vector3.new(-1,0,0)
end

function SwordIdle()
	Tool.GripForward = Vector3.new(0, 0, -1)
	Tool.GripRight = Vector3.new(1, 0, 0)
	Tool.GripUp = Vector3.new(0, 1, 0)
end

Tool.BladePart.Touched:connect(function (hit)
	if not hit.Parent:FindFirstChild("Humanoid") then return end
	if hit.Parent.Name == script.Parent.Name then return end
	if not Tool.Active.Value == true then return end
	hit.Parent.Humanoid:TakeDamage(10)
end)

Tool.BladePart2.Touched:connect(function (hit)
	if not hit.Parent:FindFirstChild("Humanoid") then return end
	if hit.Parent.Name == script.Parent.Name then return end
	if not Tool.Active.Value == true then return end
	hit.Parent.Humanoid:TakeDamage(10)
end)

function FadeIn()
	for i = 1, #Sword do
		if Sword[i]:IsA("Part") then
			Sword[i].Transparency = 0.9
			wait(.05)
			Sword[i].Transparency = 0.8
			wait(.05)
			Sword[i].Transparency = 0.8
			wait(.05)
			Sword[i].Transparency = 0.7
			wait(.05)
			Sword[i].Transparency = 0.6
			wait(.05)
			Sword[i].Transparency = 0.5
			wait(.05)
			Sword[i].Transparency = 0.4
			wait(.05)
			Sword[i].Transparency = 0.3
			wait(.05)
			Sword[i].Transparency = 0.2
			wait(.05)
			Sword[i].Transparency = 0.1
			wait(.05)
			Sword[i].Transparency = 0
			Sword[i].CanCollide = true
		elseif Sword[i]:IsA("WedgePart") then
			Sword[i].Transparency = 0.9
			wait(.05)
			Sword[i].Transparency = 0.8
			wait(.05)
			Sword[i].Transparency = 0.7
			wait(.05)
			Sword[i].Transparency = 0.6
			wait(.05)
			Sword[i].Transparency = 0.5
			wait(.05)
			Sword[i].Transparency = 0.4
			wait(.05)
			Sword[i].Transparency = 0.3
			wait(.05)
			Sword[i].Transparency = 0.2
			wait(.05)
			Sword[i].Transparency = 0.1
			wait(.05)
			Sword[i].Transparency = 0
			wait(.05)
			Sword[i].CanCollide = true
		end
	end
end

function FadeOut()
	for i = 1, #Sword do
		if Sword[i]:IsA("Part") then
			Sword[i].Transparency = 0.1
			wait(.05)
			Sword[i].Transparency = 0.2
			wait(.05)
			Sword[i].Transparency = 0.3
			wait(.05)
			Sword[i].Transparency = 0.4
			wait(.05)
			Sword[i].Transparency = 0.5
			wait(.05)
			Sword[i].Transparency = 0.6
			wait(.05)
			Sword[i].Transparency = 0.7
			wait(.05)
			Sword[i].Transparency = 0.8
			wait(.05)
			Sword[i].Transparency = 0.9
			wait(.05)
			Sword[i].Transparency = 1
			Sword[i].CanCollide = false
		elseif Sword[i]:IsA("WedgePart") then
			Sword[i].Transparency = 0.1
			wait(.05)
			Sword[i].Transparency = 0.2
			wait(.05)
			Sword[i].Transparency = 0.3
			wait(.05)
			Sword[i].Transparency = 0.4
			wait(.05)
			Sword[i].Transparency = 0.5
			wait(.05)
			Sword[i].Transparency = 0.6
			wait(.05)
			Sword[i].Transparency = 0.7
			wait(.05)
			Sword[i].Transparency = 0.8
			wait(.05)
			Sword[i].Transparency = 0.9
			wait(.05)
			Sword[i].Transparency = 1
			Sword[i].CanCollide = true
		end
	end
end


script.Parent.Equipped:connect(function (m)
	m.KeyDown:connect(function (key)
		if key == "q" then
			if script.Parent.Active.Value == false then
				script.Parent.Active.Value = true
				FadeIn()
				m.KeyDown:connect(function (key)
					if key == "e" then
						SwordSlash()
						wait(1)
						SwordIdle()
					end
				end)
			elseif script.Parent.Active.Value == true then
				script.Parent.Active.Value = false
				FadeOut()
			end
		end	
	end)
end)

Thanks in advance.