Hebablazin icon

wanda

Hebablazin | PRO | 05/30/16 09:17:21 PM UTC | 0 ⭐ | 748 👁️ | Never ⏰ | []
text |

94.97 KB

|

None

|

0 👍

/

0 👎

--[[
Script Version 1.4
 Wand generation A3000, A.K.A. Wanda, was used by novice warlocks and witches to practice/use magic.
It was developed by the UMTAWC (United Magical Theory And Wizardry Comittee, abbreviation pronounced "um-talk")
Wood carved and infused with magic properties by DarkShadow6
--]]
--http://www.roblox.com/Asset/?id=22968437
 if script == nil then return end
  Player = game.Players.LocalPlayer
Char = Player.Character
animate = Char:findFirstChild("Animate")
if animate then
animate:Destroy()
end
Name = "Wanda"
selected = false
Button1Down = false
canFire = true
spell = 0
spellHotkey1 = 0
spellHotkey2 = 0
spellHotkey3 = 0
spellHotkey1Delay = 0
spellHotkey2Delay = 0
spellHotkey3Delay = 0
spellText = "None"
power = 1000000
  spellGui = Instance.new("ScreenGui")
spellGui.Name = Name
local frame = Instance.new("Frame")
frame.Name = "Frame"
frame.Size = UDim2.new(0, 165, 0, 60)
frame.Position = UDim2.new(0, 0, 1, -60)
frame.BackgroundColor3 = Color3.new(1, 1, 1)
frame.BorderColor3 = Color3.new(0, 0, 0)
frame.Parent = spellGui
local label = Instance.new("TextLabel")
label.Name = "Weapon"
label.Text = "Weapon: " ..Name
label.Size = UDim2.new(1, 0, 0, 20)
label.Position = UDim2.new(0, 0, 0, 0)
label.BackgroundColor3 = Color3.new(1, 0, 0)
label.BorderColor3 = Color3.new(0, 0, 0)
label.Parent = frame
local label = Instance.new("TextLabel")
label.Name = "SpellPrefix"
label.Text = "    Spell:"
label.TextXAlignment = "Left"
label.Size = UDim2.new(1, 0, 0, 20)
label.Position = UDim2.new(0, 0, 0, 20)
label.BackgroundColor3 = Color3.new(1, 1, 1)
label.BorderColor3 = Color3.new(0, 0, 0)
label.Parent = frame
local label = Instance.new("TextLabel")
label.Name = "Spell"
label.Text = "None"
label.TextXAlignment = "Right"
label.Size = UDim2.new(1, 0, 0, 20)
label.Position = UDim2.new(0, -10, 0, 20)
label.BackgroundTransparency = 1
label.BorderSizePixel = 0
label.Parent = frame
local label = Instance.new("TextLabel")
label.Name = "PowerPrefix"
label.Text = "    Power:"
label.TextXAlignment = "Left"
label.Size = UDim2.new(1, 0, 0, 20)
label.Position = UDim2.new(0, 0, 0, 40)
label.BackgroundColor3 = Color3.new(1, 1, 1)
label.BorderColor3 = Color3.new(0, 0, 0)
label.Parent = frame
local label = Instance.new("TextLabel")
label.Name = "Power"
label.Text = "100"
label.TextXAlignment = "Right"
label.Size = UDim2.new(1, 0, 0, 20)
label.Position = UDim2.new(0, -10, 0, 40)
label.BackgroundTransparency = 1
label.BorderSizePixel = 0
label.Parent = frame
  function updateGui(format)
	if selected == false then return end
	if Player:FindFirstChild("PlayerGui") == nil then Instance.new("PlayerGui").Parent = Player end
	if Player.PlayerGui:FindFirstChild(Name) == nil then
		spellGui:Clone().Parent = Player.PlayerGui
	end
	Player.PlayerGui[Name].Frame.Spell.Text = spellText
	if power <= 0 then
		Player.PlayerGui[Name].Frame.Power.Text = "OVERHEAT (" ..math.abs(power).. ")"
	else
		Player.PlayerGui[Name].Frame.Power.Text = power
	end
end
  function updateSpellText()
	if spell == 1 then
		spellText = "Arefu Slash (1P)"
	elseif spell == 2 then
		spellText = "Arefu Metoria (50P)"
	elseif spell == 3 then
		spellText = "Eccrando Bolt (25P)"
	elseif spell == 4 then
		spellText = "Eccrando Strike (~60P)"
	elseif spell == 5 then
		spellText = "Thius Dae (1P/2ms)"
	elseif spell == 6 then
		spellText = "Thius Heed (1P/2ms)"
	elseif spell == 7 then
		spellText = "Combuscus Phore (75P)"
	elseif spell == 8 then
		spellText = "Combuscus Burn (10P)"
	elseif spell == 9 then
		spellText = "Combuscus Vortex (50P)"
	elseif spell == 10 then
		spellText = "C. Phore Nexus (100P)"
	elseif spell == 11 then
		spellText = "Kanamla Cysis (2P/1sec)"
	elseif spell == 12 then
		spellText = "Kanamla Tepidift (50P)"
	elseif spell == 13 then
		spellText = "Kanamla Jump (5P)"
	elseif spell == 14 then
		spellText = "Candora Hide (2P/1sec)"
	elseif spell == 15 then
		spellText = "Duraen Control (1P/?ms)"
	elseif spell == 16 then
		spellText = "Duraen Switch (?P)"
	else
		spellText = "None"
	end
end
  function makeParts(format)
	local model = Instance.new("Model")
	model.Name = Name
	model.Parent = Player.Character
	local pm = Instance.new("Part")
	pm.Name = "Handle"
	pm.FormFactor = "Custom"
	pm.Size = Vector3.new(1, 1, 1)
	pm.BrickColor = BrickColor.new("Reddish brown")
	pm.Locked = true
	pm.TopSurface = 0
	pm.BottomSurface = 0
	pm.Parent = model
	local m = Instance.new("SpecialMesh")
	m.MeshType = "Head"
	m.Scale = Vector3.new(0.3, 2, 0.3)
	m.Parent = pm
	if format ~= nil then
		local w = Instance.new("Weld")
		w.Part0 = pm
		if format == "hand" then
			w.Part1 = Player.Character:FindFirstChild("Right Arm")
			w.C0 = CFrame.new(0, -0.75, 0.9) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
			w.C1 = CFrame.new()
			w.Parent = pm
		elseif format == "holster" then
			w.Part1 = Player.Character:FindFirstChild("Right Leg")
			w.C0 = CFrame.new(0, 0.1, -0.55) * CFrame.fromEulerAnglesXYZ(0, 0, 0)
			w.C1 = CFrame.new()
			w.Parent = pm
			model.Name = Name.. " (Holstered)"
		else
			print("Error: Incorrect format string!")
		end
	end
	local s = Instance.new("Sound")
	s.Name = "Shine"
	s.SoundId = "http://www.roblox.com/Asset/?id=2101144"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Bolt"
	s.SoundId = "http://www.roblox.com/Asset/?id=2974000"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Impact1"
	s.SoundId = "http://www.roblox.com/Asset/?id=10209596"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Charge1"
	s.SoundId = "http://www.roblox.com/Asset/?id=1369158"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Charge2"
	s.SoundId = "http://www.roblox.com/Asset/?id=2101137"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Charge3"
	s.SoundId = "http://www.roblox.com/Asset/?id=2785493"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Charge4"
	s.SoundId = "http://www.roblox.com/Asset/?id=35275769"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Fire1"
	s.SoundId = "http://www.roblox.com/Asset/?id=10209268"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Fire2"
	s.SoundId = "http://www.roblox.com/Asset/?id=13775466"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Fire3"
	s.SoundId = "http://www.roblox.com/Asset/?id=2767090"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Fire4"
	s.SoundId = "http://www.roblox.com/Asset/?id=2800815"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local s = Instance.new("Sound")
	s.Name = "Fire5"
	s.SoundId = "http://www.roblox.com/Asset/?id=2974249"
	s.Volume = 1
	s.Pitch = 1
	s.Looped = false
	s.Parent = pm
	local p = Instance.new("Part")
	p.Name = "Source"
	p.FormFactor = "Custom"
	p.Size = Vector3.new(1, 1, 1)
	p.Transparency = 1
	p.BrickColor = BrickColor.new("Really black")
	p.CanCollide = false
	p.Locked = true
	p.TopSurface = 0
	p.BottomSurface = 0
	p.Parent = model
	local m = Instance.new("SpecialMesh")
	m.MeshType = "Sphere"
	m.Scale = Vector3.new(1, 1, 1)
	m.Parent = p
	local w = Instance.new("Weld")
	w.Part0 = p
	w.Part1 = pm
	w.C0 = CFrame.new()
	w.C1 = CFrame.new(0, 1, 0)
	w.Parent = p
	local f = Instance.new("Fire")
	f.Enabled = false
	f.Name = "Fire"
	f.Heat = 0
	f.Size = 1
	f.Parent = p
end
  function removeParts(format)
	if format == "hand" then
		if Player.Character:FindFirstChild(Name) ~= nil then
			Player.Character[Name]:Remove()
		end
	elseif format == "holster" then
		if Player.Character:FindFirstChild(Name.. " (Holstered)") ~= nil then
			Player.Character[Name.. " (Holstered)"]:Remove()
		end
	end
end
  function SetAngle(Joint, Angle, Character)
	if Character == nil then return false end
	local Joints = {
		Character.Torso:FindFirstChild("Right Shoulder 2"),
		Character.Torso:FindFirstChild("Left Shoulder 2"),
		Character.Torso:FindFirstChild("Right Hip 2"),
		Character.Torso:FindFirstChild("Left Hip 2")
	}
	if Joints[Joint] == nil then return false end
	if Joint == 1 or Joint == 3 then
		Joints[Joint].DesiredAngle = Angle
	end
	if Joint == 2 or Joint == 4 then
		Joints[Joint].DesiredAngle = -Angle
	end
end
  function ForceAngle(Joint, Angle, Character)
	if Character == nil then return false end
	local Joints = {
		Character.Torso:FindFirstChild("Right Shoulder 2"),
		Character.Torso:FindFirstChild("Left Shoulder 2"),
		Character.Torso:FindFirstChild("Right Hip 2"),
		Character.Torso:FindFirstChild("Left Hip 2")
	}
	if Joints[Joint] == nil then return false end
	if Joint == 1 or Joint == 3 then
		Joints[Joint].DesiredAngle = Angle
		Joints[Joint].CurrentAngle = Angle
	end
	if Joint == 2 or Joint == 4 then
		Joints[Joint].DesiredAngle = -Angle
		Joints[Joint].CurrentAngle = -Angle
	end
end
  function SetSpeed(Joint, Speed, Character)
	if Character == nil then return false end
	local Joints = {
		Character.Torso:FindFirstChild("Right Shoulder 2"),
		Character.Torso:FindFirstChild("Left Shoulder 2"),
		Character.Torso:FindFirstChild("Right Hip 2"),
		Character.Torso:FindFirstChild("Left Hip 2")
	}
	if Joints[Joint] == nil then return false end
	Joints[Joint].MaxVelocity = Speed
end
  function DisableLimb(Limb, Character)
	if Character == nil then return false end
	if Character:FindFirstChild("Torso") == nil then return false end
	local Joints = {
		Character.Torso:FindFirstChild("Right Shoulder"),
		Character.Torso:FindFirstChild("Left Shoulder"),
		Character.Torso:FindFirstChild("Right Hip"),
		Character.Torso:FindFirstChild("Left Hip")
	}
	local Limbs = {
		Character:FindFirstChild("Right Arm"),
		Character:FindFirstChild("Left Arm"),
		Character:FindFirstChild("Right Leg"),
		Character:FindFirstChild("Left Leg")
	}
	if Joints[Limb] == nil then return false end
	if Limbs[Limb] == nil then return false end
	local Joint = Instance.new("Motor")
	Joint.Parent = Character.Torso
	Joint.Part0 = Character.Torso
	Joint.Part1 = Limbs[Limb]
	if Limb == 1 then
		Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
		Joint.Name = "Right Shoulder 2"
	elseif Limb == 2 then
		Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
		Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
		Joint.Name = "Left Shoulder 2"
	elseif Limb == 3 then
		Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
		Joint.Name = "Right Hip 2"
	elseif Limb == 4 then
		Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
		Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
		Joint.Name = "Left Hip 2"
	end
	Joint.MaxVelocity = Joints[Limb].MaxVelocity
	Joint.CurrentAngle = Joints[Limb].CurrentAngle
	Joint.DesiredAngle = Joints[Limb].DesiredAngle
	Joints[Limb]:Remove()
end
  function ResetLimbCFrame(Limb, Character)
	if Character == nil then return false end
	if Character.Parent == nil then return false end
	if Character:FindFirstChild("Torso") == nil then return false end
	local Joints = {
		Character.Torso:FindFirstChild("Right Shoulder 2"),
		Character.Torso:FindFirstChild("Left Shoulder 2"),
		Character.Torso:FindFirstChild("Right Hip 2"),
		Character.Torso:FindFirstChild("Left Hip 2")
	}
	local Limbs = {
		Character:FindFirstChild("Right Arm"),
		Character:FindFirstChild("Left Arm"),
		Character:FindFirstChild("Right Leg"),
		Character:FindFirstChild("Left Leg")
	}
	if Joints[Limb] == nil then return false end
	if Limbs[Limb] == nil then return false end
	if Limb == 1 then
		Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
	elseif Limb == 2 then
		Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
		Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
	elseif Limb == 3 then
		Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
	elseif Limb == 4 then
		Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
		Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
	end
end
  function EnableLimb(Limb, Character)
	if Character == nil then return false end
	if Character:FindFirstChild("Torso") == nil then return false end
	local Joints = {
		Character.Torso:FindFirstChild("Right Shoulder 2"),
		Character.Torso:FindFirstChild("Left Shoulder 2"),
		Character.Torso:FindFirstChild("Right Hip 2"),
		Character.Torso:FindFirstChild("Left Hip 2")
	}
	local Limbs = {
		Character:FindFirstChild("Right Arm"),
		Character:FindFirstChild("Left Arm"),
		Character:FindFirstChild("Right Leg"),
		Character:FindFirstChild("Left Leg")
	}
	if Joints[Limb] == nil then return false end
	if Limbs[Limb] == nil then return false end
	if Limb == 1 then
		Joints[Limb].Name = "Right Shoulder"
	elseif Limb == 2 then
		Joints[Limb].Name = "Left Shoulder"
	elseif Limb == 3 then
		Joints[Limb].Name = "Right Hip"
	elseif Limb == 4 then
		Joints[Limb].Name = "Left Hip"
	end
	Animate = Character:FindFirstChild("Animate")
	if Animate == nil then return false end
	Animate = Animate:Clone()
	Character.Animate:Remove()
	Animate.Parent = Character
end
  function Weld(x, y)
	local weld = Instance.new("Weld")
	weld.Part0 = x
	weld.Part1 = y
	CJ = CFrame.new(x.Position)
	C0 = x.CFrame:inverse() * CJ
	C1 = y.CFrame:inverse() * CJ
	weld.C0 = C0
	weld.C1 = C1
	weld.Parent = x
end
  function tagHumanoid(humanoid)
	local tag = Instance.new("ObjectValue")
	tag.Name = "creator"
	tag.Value = Player
	tag.Parent = humanoid
	local tag = Instance.new("StringValue")
	tag.Name = "creatorType1"
	tag.Value = Name
	tag.Parent = humanoid
	local tag = Instance.new("StringValue")
	tag.Name = "creatorType2"
	tag.Value = "killed with magic"
	tag.Parent = humanoid
end
  function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:FindFirstChild("creator")
		if tag ~= nil then
			tag:Remove()
		end
		local tag = humanoid:FindFirstChild("creatorType1")
		if tag ~= nil then
			tag:Remove()
		end
		local tag = humanoid:FindFirstChild("creatorType2")
		if tag ~= nil then
			tag:Remove()
		end
	end
end
  function onButton1Down(mouse)
	if selected == false or canFire == false or power <= 0 then return end
	if Player.Character == nil then return end
	if Player.Character:FindFirstChild("Humanoid") == nil then return end
	if Player.Character.Humanoid.Health <= 0 then return end
	if Player.Character:FindFirstChild(Name) == nil then return end
	if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
	if Player.Character[Name]:FindFirstChild("Source") == nil then return end
	if mouse == nil then return end
	Button1Down = true
	if spell == 1 then
		--Arefu Slash, projectile class. Uses hardened air particles to create razor-sharp projectiles.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0.25
		Player.Character[Name].Source.BrickColor = BrickColor.new("Bright green")
		Player.Character[Name].Source.Fire.Enabled = true
		Player.Character[Name].Source.Fire.Heat = math.random(5, 10)
		Player.Character[Name].Source.Fire.Size = math.random(5, 10)
		Player.Character[Name].Source.Fire.Color = Color3.new(0, 1, 0)
		Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
		while Button1Down == true do
			if power <= 0 then break end
			coroutine.resume(coroutine.create(function()
				for i = 0, 1, 0.1 do
					Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) * 5) + Vector3.new(1, 1, 1)
					Player.Character[Name].Source.Transparency = i
					wait()
				end
				Player.Character[Name].Source.Transparency = 1
				Player.Character[Name].Source.Fire.Enabled = false
			end))
			Player.Character[Name].Handle.Fire2.Looped = false
			Player.Character[Name].Handle.Fire2.Volume = 1
			Player.Character[Name].Handle.Fire2.Pitch = 1
			Player.Character[Name].Handle.Fire2:Play()
			power = power - 1
			local air = Instance.new("Part")
			air.Name = "Air"
			air.FormFactor = "Custom"
			air.Size = Vector3.new(1, 1, 2)
			air.TopSurface = "Smooth"
			air.BottomSurface = "Smooth"
			air.BrickColor = BrickColor.new("Institutional white")
			air.CanCollide = false
			air.Anchored = true
			air.Transparency = math.random(0, 5) / 10
			air.CFrame = CFrame.new(mouse.Hit.p + Vector3.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100)), mouse.Hit.p)
			air.Parent = Workspace
			air:BreakJoints()
			local m = Instance.new("SpecialMesh")
			m.MeshType = "Sphere"
			m.Scale = Vector3.new(0.5, 0.5, 1)
			m.Parent = air
			coroutine.resume(coroutine.create(function()
				while air.Parent ~= nil do
					air.CFrame = CFrame.new(air.Position  + (air.CFrame.lookVector * 5)) * CFrame.fromEulerAnglesXYZ(air.CFrame:toEulerAnglesXYZ())
					for _, model in pairs(Workspace:GetChildren()) do
						if model.ClassName == "Part" then
							if (air.Position - model.Position).magnitude <= 5 and model.Anchored == false then
								model.Velocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10))
								if math.random(1, 10) == 1 then model:BreakJoints() end
								air:Remove()
								return
							end
						elseif model.ClassName == "Model" and model ~= Player.Character then
							for _, x in pairs(model:GetChildren()) do
								if x.ClassName == "Part" then
									if (air.Position - x.Position).magnitude <= 5 and x.Anchored == false then
										x.Velocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10))
										if math.random(1, 10) == 1 then x:BreakJoints() end
										if model:FindFirstChild("Humanoid") ~= nil then
											model.Humanoid:TakeDamage(5)
											model.Humanoid.Sit = true
										end
										air:Remove()
										return
									end
								end
							end
						end
					end
					local shock = Instance.new("Part")
					shock.FormFactor = "Custom"
					shock.Size = Vector3.new(1, 1, 1)
					shock.BrickColor = BrickColor.new("Institutional white")
					shock.Anchored = true
					shock.Name = "Shock Ring"
					shock.CanCollide = false
					shock.Parent = Workspace
					local mesh = Instance.new("SpecialMesh")
					mesh.MeshType = "FileMesh"
					mesh.MeshId = "http://www.roblox.com/Asset/?id=20329976"
					mesh.Scale = Vector3.new(1, 1, 1)
					mesh.Parent = shock
					shock.CFrame = CFrame.new(air.Position + (air.CFrame.lookVector * 10), air.Position + (air.CFrame.lookVector * 50)) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
					coroutine.resume(coroutine.create(function()
						for i = 0, 10 do
							shock.Mesh.Scale = Vector3.new(i / 5, i, i / 5)
							shock.Transparency = i / 10
							wait()
						end
						shock:Remove()
					end))
					wait()
				end
			end))
			coroutine.resume(coroutine.create(function(part)
				wait(10)
				part:Remove()
			end), air)
			wait()
		end
		canFire = true
	elseif spell == 2 then
		--Arefu Metoria, projectile class. Uses meteors.
		local position, target = mouse.Hit.p, mouse.Target
		if target == nil then return end
		if target.Parent == nil then return end
		canFire = false
		power = power - 50
		local offset = position - target.Position
		local size = math.random(10, 30)
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0
		Player.Character[Name].Source.BrickColor = BrickColor.new("Bright green")
		Player.Character[Name].Handle.Charge2.Looped = false
		Player.Character[Name].Handle.Charge2.Volume = 1
		Player.Character[Name].Handle.Charge2.Pitch = 0.35
		Player.Character[Name].Handle.Charge2:Play()
		local beam = Instance.new("Part")
		beam.BrickColor = BrickColor.new("Bright green")
		beam.TopSurface = 0
		beam.BottomSurface = 0
		beam.Size = Vector3.new(1, 1, 1)
		beam.Transparency = 0.5
		beam.Anchored = true
		beam.CanCollide = false
		beam.CFrame = CFrame.new(position)
		beam.Parent = Workspace
		local mesh = Instance.new("CylinderMesh")
		mesh.Parent = beam
		for i = 0, 60, 1 do
			local shine = Instance.new("Part")
			shine.Name = "Shine"
			shine.FormFactor = "Custom"
			shine.Shape = "Ball"
			shine.CanCollide = false
			shine.BrickColor = BrickColor.new("Bright green")
			shine.TopSurface = 0
			shine.BottomSurface = 0
			shine.Size = Vector3.new(1, 1, 1)
			shine.Transparency = 0.25
			shine.CFrame = CFrame.new(Player.Character[Name].Source.Position + Vector3.new(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)))
			shine.Parent = Workspace
			local force = Instance.new("BodyPosition")
			force.D = 7000
			force.P = 100000
			force.maxForce = Vector3.new(math.huge, math.huge, math.huge)
			force.position = Player.Character[Name].Source.Position
			force.Parent = shine
			coroutine.resume(coroutine.create(function(part1, part2) for i = 0, 10 do if part1 ~= nil and part2 ~= nil then part1.BodyPosition.position = part2.Position wait() end end part1:Remove() end), shine, Player.Character[Name].Source)
			mesh.Scale = Vector3.new(size * (i / 60), 10000, size * (i / 60))
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 10, i / 10, i / 10)
			Player.Character[Name].Source.Transparency = Player.Character[Name].Source.Transparency - 0.015
			wait()
		end
		for i = 0, 10 do
			beam.Transparency = beam.Transparency + 0.1
			Player.Character[Name].Source.Transparency = Player.Character[Name].Source.Transparency + 0.1
			wait()
		end
		if beam ~= nil then beam:Remove() end
		Player.Character[Name].Source.Transparency = 1
		canFire = true
		local meteor = Instance.new("Part")
		meteor.BrickColor = BrickColor.new("Bright red")
		meteor.Name = "Meteor"
		meteor.CanCollide = true
		meteor.Locked = true
		meteor.FormFactor = "Custom"
		meteor.Shape = "Ball"
		meteor.Size = Vector3.new(size, size, size)
		meteor.RotVelocity = Vector3.new(math.random(-1000, 1000), math.random(-1000, 1000), math.random(-1000, 1000))
		meteor.Parent = Workspace
		meteor:BreakJoints()
		local fire = Instance.new("Fire")
		fire.Heat = 0
		fire.Size = 50
		fire.Parent = meteor
		local smoke = Instance.new("Smoke")
		smoke.RiseVelocity = 0
		smoke.Size = size + 3
		smoke.Color = Color3.new(50 / 255, 50 / 255, 50 / 255)
		smoke.Opacity = 0.5
		smoke.Parent = meteor
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshType = "FileMesh"
		mesh.MeshId = "http://www.roblox.com/Asset/?id=1290033"
		mesh.TextureId = "http://www.roblox.com/Asset/?id=1290030"
		mesh.Scale = meteor.Size / 1.5
		mesh.VertexColor = Vector3.new(1, 0, 0)
		mesh.Parent = meteor
		for i = 5000, 0, -100 do
			meteor.CFrame = CFrame.new((target.Position + offset) + Vector3.new(0, i, 0))
			meteor.Velocity = Vector3.new(0, 0, 0)
			wait()
		end
		meteor.CFrame = CFrame.new((target.Position + offset) + Vector3.new(0, size / 2, 0))
		delay(0.1, function() Weld(target, meteor) meteor.Velocity = Vector3.new(0, 0, 0) end)
		meteor.Anchored = true
		local s = Instance.new("Sound")
		s.SoundId = "rbxasset://sounds\\Launching rocket.wav"
		s.Pitch = (30 - size) / 25
		s.Parent = Workspace
		s:Play()
		local shards = {}
		for i = 0, math.random(10, 30) do
			local shard = Instance.new("Part")
			shard.Name = "Ground Shard"
			shard.Anchored = true
			shard.Locked = true
			shard.BrickColor = target.BrickColor
			shard.Size = Vector3.new(size + 10, 2, size)
			shard.CFrame = CFrame.new(meteor.Position - Vector3.new(0, size / 2, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(0), math.rad(math.random(0, 360)), math.rad(math.random(0, 25)))
			shard.Parent = Workspace
			table.insert(shards, shard)
		end
		local new = Instance.new("Part")
		new.Name = "Meteor"
		new.Transparency = 1
		new.CanCollide = false
		new.Anchored = true
		new.CFrame = CFrame.new(meteor.Position)
		new.Parent = Workspace
		local fire = Instance.new("Fire")
		fire.Heat = 50
		fire.Size = 50
		fire.Parent = new
		meteor.Fire:Remove()
		local shock = Instance.new("Part")
		shock.FormFactor = "Custom"
		shock.Size = Vector3.new(1, 1, 1)
		shock.BrickColor = BrickColor.new("Institutional white")
		shock.Anchored = true
		shock.Name = "Shock Ring"
		shock.CanCollide = false
		shock.Parent = Workspace
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshType = "FileMesh"
		mesh.MeshId = "http://www.roblox.com/Asset/?id=3270017"
		mesh.Parent = shock
		local tilt1 = math.random(-10, 10)
		local tilt2 = math.random(-10, 10)
		local tiltChance = math.random(1, 3)
		for i = 0, 50 do
			shock.Mesh.Scale = Vector3.new(i, i, i)
			if tiltChance == 1 then
				shock.CFrame = CFrame.new(meteor.Position - Vector3.new(0, meteor.Size.y / 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + tilt1), 0, 0)
			elseif tiltChance == 2 then
				shock.CFrame = CFrame.new(meteor.Position - Vector3.new(0, meteor.Size.y / 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90), math.rad(tilt2), 0)
			elseif tiltChance == 3 then
				shock.CFrame = CFrame.new(meteor.Position - Vector3.new(0, meteor.Size.y / 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + tilt1), math.rad(tilt2), 0)
			end
			wait()
		end
		for i = 0, 1, 0.1 do
			shock.Transparency = i
			wait()
		end
		shock:Remove()
		wait(math.random(1, 10))
		if new ~= nil then new:Remove() end
		if meteor == nil then return end
		local e = Instance.new("Explosion")
		e.BlastPressure = 100000
		e.Position = meteor.Position
		e.BlastRadius = meteor.Size.y * 2
		e.Parent = Workspace
		local s = Instance.new("Sound")
		s.Name = "Explosion"
		s.Pitch = (30 - size) / 20
		s.SoundId = "http://www.roblox.com/Asset/?id=2101148"
		s.Parent = Workspace
		s:Play()
		for i = 0, math.random(2, 10) do
			local size = math.random(1, 5)
			local new = meteor:Clone()
			if new:FindFirstChild("Weld") ~= nil then new.Weld:Remove() end
			new.Size = Vector3.new(size, size, size)
			new.Mesh.Scale = Vector3.new(size, size, size)
			new.CanCollide = false
			new.Anchored = false
			new.CFrame = CFrame.new(meteor.Position + Vector3.new(math.random(-meteor.Size.x / 2, meteor.Size.x / 2), math.random(-meteor.Size.y / 2, meteor.Size.y / 2), math.random(-meteor.Size.z / 2, meteor.Size.z / 2))) * CFrame.fromEulerAnglesXYZ(math.random(0, 360), math.random(0, 360), math.random(0, 360))
			new.Velocity = Vector3.new(math.random(-100, 100), math.random(10, 250), math.random(-100, 100))
			new.RotVelocity = Vector3.new(math.random(-500, 500), math.random(-500, 500), math.random(-500, 500))
			new.Smoke:Remove()
			new.Parent = Workspace
		end
		for i = 1, #shards do
			if shards[i] ~= nil then
				if math.random(1, 2) == 1 then
					shards[i]:Remove()
				else
					shards[i].CanCollide = false
					shards[i].Anchored = false
					shards[i].RotVelocity = Vector3.new(math.random(-500, 500), math.random(-500, 500), math.random(-500, 500))
					shards[i].Velocity = Vector3.new(math.random(-100, 100), math.random(10, 250), math.random(-100, 100))
				end
			end
		end
		meteor:Remove()
	elseif spell == 3 then
		--Eccrando Bolt, energy class. Fires a charged bolt of energy gathered in your wand.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0
		Player.Character[Name].Source.BrickColor = BrickColor.new("New Yeller")
		Player.Character[Name].Handle.Charge1.Looped = false
		Player.Character[Name].Handle.Charge1.Volume = 1
		Player.Character[Name].Handle.Charge1.Pitch = 1
		Player.Character[Name].Handle.Charge1:Play()
		for i = 0, 10 do
			local shine = Instance.new("Part")
			shine.Name = "Shine"
			shine.FormFactor = "Custom"
			shine.Shape = "Ball"
			shine.CanCollide = false
			shine.BrickColor = BrickColor.new("New Yeller")
			shine.TopSurface = 0
			shine.BottomSurface = 0
			shine.Size = Vector3.new(1, 1, 1)
			shine.Transparency = 0.25
			shine.CFrame = CFrame.new(Player.Character[Name].Source.Position + Vector3.new(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)))
			shine.Parent = Workspace
			local force = Instance.new("BodyPosition")
			force.D = 7000
			force.P = 100000
			force.maxForce = Vector3.new(math.huge, math.huge, math.huge)
			force.position = Player.Character[Name].Source.Position
			force.Parent = shine
			coroutine.resume(coroutine.create(function(part1, part2) for i = 0, 10 do if part1 ~= nil and part2 ~= nil then part1.BodyPosition.position = part2.Position wait() end end part1:Remove() end), shine, Player.Character[Name].Source)
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 7.5, i / 7.5, i / 7.5)
			wait()
			power = power - 1
		end
		for i = 10, 20 do
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 7.5, i / 7.5, i / 7.5)
			power = power - 1
			wait()
		end
		local first = true
		while Button1Down == true or first == true do
			first = false
			if power < 0 then break end
			power = power - 5
			if Player.Character == nil then break end
			if Player.Character:FindFirstChild("Humanoid") == nil then break end
			if Player.Character.Humanoid.Health <= 0 then break end
			if Player.Character:FindFirstChild(Name) == nil then break end
			if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
			if Player.Character[Name]:FindFirstChild("Source") == nil then break end
			if selected == false then break end
			Player.Character[Name].Handle.Fire1.Looped = false
			Player.Character[Name].Handle.Fire1.Volume = 1
			Player.Character[Name].Handle.Fire1.Pitch = 1
			Player.Character[Name].Handle.Fire1:Play()
			local position = mouse.Hit.p
			local e = Instance.new("Explosion")
			e.BlastPressure = 500000
			e.BlastRadius = 10
			e.Position = position
			e.Parent = Workspace
			for i = 1, math.random(5, 25) do
				local shine = Instance.new("Part")
				shine.Name = "Shine"
				shine.FormFactor = "Custom"
				shine.Shape = "Block"
				shine.CanCollide = false
				shine.Anchored = true
				shine.BrickColor = BrickColor.new("New Yeller")
				shine.TopSurface = 0
				shine.BottomSurface = 0
				shine.Size = Vector3.new(1, 1, 1)
				shine.Transparency = 0.25
				shine.CFrame = CFrame.new(mouse.Hit.p)
				shine.Parent = Workspace
				local mesh = Instance.new("SpecialMesh")
				mesh.MeshType = "Brick"
				local random = math.random(3, 10) / 10
				mesh.Scale = Vector3.new(random, random, random)
				mesh.Parent = shine
				coroutine.resume(coroutine.create(function(part)
					for i = 0.25 * 25, 25 do
						part.Transparency = i / 25
						part.CFrame = CFrame.new(part.Position + Vector3.new(math.random(-10, 10) / 10, math.random(-10, 10) / 10, math.random(-10, 10) / 10)) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
						wait(math.random(1, 5) / 100)
					end
					part:Remove()
				end), shine)
			end
			for i = 1, math.random(2, 5) do
				local shine = Instance.new("Part")
				shine.Name = "Shine"
				shine.FormFactor = "Custom"
				shine.Shape = "Block"
				shine.CanCollide = false
				shine.Anchored = true
				shine.BrickColor = BrickColor.new("New Yeller")
				shine.TopSurface = 0
				shine.BottomSurface = 0
				shine.Size = Vector3.new(1, 1, 1)
				shine.Transparency = 0.25
				shine.CFrame = CFrame.new(mouse.Hit.p + Vector3.new(math.random(-10, 10) / 10, math.random(-10, 10) / 10, math.random(-10, 10) / 10))
				shine.Parent = Workspace
				local mesh = Instance.new("SpecialMesh")
				mesh.MeshType = "Sphere"
				local random = math.random(3, 10) / 10
				mesh.Scale = Vector3.new(random, random, random)
				mesh.Parent = shine
				coroutine.resume(coroutine.create(function(part)
					for i = 0.25, 1, 0.05 do
						part.Transparency = i
						part.Mesh.Scale = part.Mesh.Scale + Vector3.new(1, 1, 1)
						wait()
					end
					part:Remove()
				end), shine)
			end
			local trail = Instance.new("Part")
			trail.BrickColor = BrickColor.new("New Yeller")
			trail.TopSurface = 0
			trail.BottomSurface = 0
			trail.Size = Vector3.new(1, 1, 1)
			trail.Transparency = 0.4
			trail.Anchored = true
			trail.CanCollide = false
			trail.CFrame = CFrame.new((Player.Character[Name].Source.Position + position) / 2, position)
			trail.Parent = Workspace
			local mesh = Instance.new("SpecialMesh")
			mesh.MeshType = "Brick"
			mesh.Scale = Vector3.new(math.random(2, 5) / 10, math.random(2, 5) / 10, (position - Player.Character[Name].Source.Position).magnitude)
			mesh.Parent = trail
			coroutine.resume(coroutine.create(function(part) wait(0.1) for i = 1, 10 do part.Transparency = part.Transparency + 0.1 wait(0.1) end part:Remove() end), trail)
			coroutine.resume(coroutine.create(function()
				for i = 10, 0, -1 do
					Player.Character[Name].Source.Transparency = (10 - i) / 10
					Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 1.5, i / 1.5, i / 1.5)
					wait()
				end
			end))
			wait(0.3)
		end
		Player.Character[Name].Source.Transparency = 1
		canFire = true
	elseif spell == 4 then
		--Eccrando Strike, energy class. Use the clouds to your advantage and fire bolts of lightning at the ground.
		while Button1Down == true do
			if Player.Character == nil then break end
			if Player.Character:FindFirstChild("Humanoid") == nil then break end
			if Player.Character.Humanoid.Health <= 0 then break end
			if Player.Character:FindFirstChild(Name) == nil then break end
			if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
			if Player.Character[Name]:FindFirstChild("Source") == nil then break end
			if selected == false then break end
			while power <= 25 and Button1Down == true do
				wait()
			end
			if power <= 0 then break end
			canFire = false
			Player.Character[Name].Source.Mesh.MeshType = "Sphere"
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
			Player.Character[Name].Source.Transparency = 0
			Player.Character[Name].Source.BrickColor = BrickColor.new("New Yeller")
			Player.Character[Name].Handle.Charge1.Looped = false
			Player.Character[Name].Handle.Charge1.Volume = 1
			Player.Character[Name].Handle.Charge1.Pitch = 0.4
			Player.Character[Name].Handle.Charge1:Play()
			for i = 0, 50 do
				local shine = Instance.new("Part")
				shine.Name = "Shine"
				shine.FormFactor = "Custom"
				shine.Shape = "Ball"
				shine.CanCollide = false
				shine.BrickColor = BrickColor.new("New Yeller")
				shine.TopSurface = 0
				shine.BottomSurface = 0
				shine.Size = Vector3.new(1, 1, 1)
				shine.Transparency = 0.25
				shine.CFrame = CFrame.new(Player.Character[Name].Source.Position + Vector3.new(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)))
				shine.Parent = Workspace
				local force = Instance.new("BodyPosition")
				force.D = 7000
				force.P = 100000
				force.maxForce = Vector3.new(math.huge, math.huge, math.huge)
				force.position = Player.Character[Name].Source.Position
				force.Parent = shine
				coroutine.resume(coroutine.create(function(part1, part2) for i = 0, 10 do if part1 ~= nil and part2 ~= nil then part1.BodyPosition.position = part2.Position wait() end end part1:Remove() end), shine, Player.Character[Name].Source)
				Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 7.5, i / 7.5, i / 7.5)
				power = power - 1
				wait()
			end
			power = power - 10
			if math.random(1, 2) == 1 then id = "Thunder" else id = "Lightning" end
			local s = Instance.new("Sound")
			s.Volume = math.random(10, 50) / 10
			s.SoundId = "rbxasset://sounds\\Halloween" ..id.. ".wav"
			s.Pitch = math.random(9, 11) / 10
			s.Parent = Workspace
			s:Play()
			if math.random(1, 2) == 1 then id = "Thunder" else id = "Lightning" end
			local s = Instance.new("Sound")
			s.Volume = math.random(1, 10) / 10
			s.SoundId = "rbxasset://sounds\\Halloween" ..id.. ".wav"
			s.Pitch = math.random(1, 30) / 10
			s.Parent = Workspace
			s:Play()
			if selected == false then break end
			local e = Instance.new("Explosion")
			e.BlastPressure = 1000000
			e.BlastRadius = 25
			e.Position = mouse.Hit.p
			e.Parent = Workspace
			local pos = (mouse.Hit.p + Vector3.new(math.random(-100, 100), 1000, math.random(-100, 100)))
			local trail = Instance.new("Part")
			trail.BrickColor = BrickColor.new("New Yeller")
			trail.TopSurface = 0
			trail.BottomSurface = 0
			trail.Size = Vector3.new(1, 1, 1)
			trail.Transparency = 0.4
			trail.Anchored = true
			trail.CanCollide = false
			trail.CFrame = CFrame.new((pos + mouse.Hit.p) / 2, mouse.Hit.p)
			trail.Parent = Workspace
			local mesh = Instance.new("SpecialMesh")
			mesh.MeshType = "Brick"
			mesh.Scale = Vector3.new(math.random(40, 50) / 10, math.random(40, 50) / 10, (mouse.Hit.p - pos).magnitude + 10)
			mesh.Parent = trail
			coroutine.resume(coroutine.create(function(part) wait(0.1) for i = 1, 10 do part.Transparency = part.Transparency + 0.1 wait(0.1) end part:Remove() end), trail)
			for i = 10, 0, -1 do
				Player.Character[Name].Source.Transparency = Player.Character[Name].Source.Transparency + 0.1
				Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 1.5, i / 1.5, i / 1.5)
				wait()
			end
			Player.Character[Name].Source.Transparency = 1
			wait(0.1)
			canFire = true
		end
	elseif spell == 5 then
		--Thius Dae, health-based class. Seep life from your enemies to save yourself. Works as a general defense against multiple enemies.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Brick"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0.25
		Player.Character[Name].Source.BrickColor = BrickColor.new("Really black")
		Player.Character[Name].Handle.Charge4.Looped = true
		Player.Character[Name].Handle.Charge4.Volume = 1
		Player.Character[Name].Handle.Charge4.Pitch = 1
		Player.Character[Name].Handle.Charge4:Play()
		for i = 0, 10 do
			Player.Character[Name].Source.Mesh.Scale = Player.Character[Name].Source.Mesh.Scale * 1.11
			Player.Character[Name].Source.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
			wait()
		end
		for i = 0, math.huge, 0.1 do
			if Button1Down == false then break end
			if Player.Character == nil then break end
			if Player.Character:FindFirstChild("Humanoid") == nil then break end
			if Player.Character.Humanoid.Health <= 0 then break end
			if Player.Character:FindFirstChild(Name) == nil then break end
			if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
			if Player.Character[Name]:FindFirstChild("Source") == nil then break end
			if power <= 0 then break end
			local endstr = string.sub(tostring(i), string.len(tostring(i)), string.len(tostring(i)))
			if endstr == "0" or endstr == "2" or endstr == "4" or endstr == "6" or endstr == "8" then
				power = power - 1
			end
			Player.Character[Name].Source.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(math.sin(i) + 3, math.sin(i) + 3, math.sin(i) + 3)
			local shine = Instance.new("Part")
			shine.Name = "Shine"
			shine.FormFactor = "Custom"
			shine.Shape = "Block"
			shine.CanCollide = false
			shine.Anchored = true
			shine.BrickColor = BrickColor.new("Really black")
			shine.TopSurface = 0
			shine.BottomSurface = 0
			shine.Size = Vector3.new(1, 1, 1)
			shine.Transparency = 0.25
			shine.CFrame = CFrame.new(Player.Character[Name].Source.Position)
			shine.Parent = Workspace
			local mesh = Instance.new("SpecialMesh")
			mesh.MeshType = "Brick"
			local random = math.random(3, 10) / 10
			mesh.Scale = Vector3.new(random, random, random)
			mesh.Parent = shine
			coroutine.resume(coroutine.create(function(part)
				for i = 0.25 * 25, 25 do
					part.Transparency = i / 25
					part.CFrame = CFrame.new(part.Position + Vector3.new(math.random(-10, 10) / 10, math.random(-10, 10) / 10, math.random(-10, 10) / 10)) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
					wait(math.random(1, 5) / 100)
				end
				part:Remove()
			end), shine)
			for _, model in pairs(Workspace:GetChildren()) do
				if model ~= Player.Character then
					if model:FindFirstChild("Torso") ~= nil and model:FindFirstChild("Humanoid") ~= nil then
						if (Player.Character.Torso.Position - model.Torso.Position).magnitude <= 25 then
							local trail = Instance.new("Part")
							trail.BrickColor = BrickColor.new("Really black")
							trail.TopSurface = 0
							trail.BottomSurface = 0
							trail.Size = Vector3.new(1, 1, 1)
							trail.Transparency = 0.4
							trail.Anchored = true
							trail.CanCollide = false
							trail.CFrame = CFrame.new((Player.Character[Name].Source.Position + model.Torso.Position) / 2, model.Torso.Position)
							trail.Parent = Workspace
							local mesh = Instance.new("SpecialMesh")
							mesh.MeshType = "Brick"
							mesh.Scale = Vector3.new(math.random(2, 5) / 10, math.random(2, 5) / 10, (model.Torso.Position - Player.Character[Name].Source.Position).magnitude)
							mesh.Parent = trail
							coroutine.resume(coroutine.create(function(part) wait() part:Remove() end), trail)
							if model.Humanoid.Health > 0 then
								model.Humanoid:TakeDamage(1.25)
								Player.Character.Humanoid.Health = Player.Character.Humanoid.Health + (1.25 / 2)
							elseif model.Humanoid.Health <= 0 then
								model.Humanoid.Health = 0
								model.Humanoid.Name = "HumanoidAbsorbed"
								for _, part in pairs(model:GetChildren()) do
									if part.ClassName == "Part" then
										local position = Instance.new("BodyPosition")
										position.Name = "Thius Dae"
										position.maxForce = Vector3.new(math.huge, math.huge, math.huge)
										position.P = 1000
										position.D = 50
										position.Parent = part
										position.position = Player.Character[Name].Source.Position
										coroutine.resume(coroutine.create(function() while position.Parent ~= nil do position.position = Player.Character[Name].Source.Position part.CanCollide = false wait() end end))
										coroutine.resume(coroutine.create(function() wait(3.5) position:Remove() end))
									end
								end
								Player.Character.Humanoid.Health = Player.Character.Humanoid.Health + 5
								power = power + 25
								Player.Character[Name].Handle.Fire4.Looped = false
								Player.Character[Name].Handle.Fire4.Volume = 1
								Player.Character[Name].Handle.Fire4.Pitch = 1
								Player.Character[Name].Handle.Fire4:Play()
							end
						end
					end
				end
			end
			wait()
		end
		for i = 0, 25 do
			Player.Character[Name].Source.Mesh.Scale = Player.Character[Name].Source.Mesh.Scale / 1.15
			Player.Character[Name].Source.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
			Player.Character[Name].Handle.Charge4.Volume = (25 - i) / 25
			wait()
		end
		Player.Character[Name].Handle.Charge4:Stop()
		Player.Character[Name].Source.Transparency = 1
		Player.Character[Name].Source.Weld.C0 = CFrame.new()
		canFire = true
	elseif spell == 6 then
		--Thius Heed, health-based class. Heal people around you and sheild them.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0.25
		Player.Character[Name].Source.BrickColor = BrickColor.new("Institutional white")
		Player.Character[Name].Source.Fire.Enabled = true
		Player.Character[Name].Source.Fire.Heat = 10
		Player.Character[Name].Source.Fire.Size = 1
		Player.Character[Name].Source.Fire.Color = Color3.new(1, 1, 1)
		Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
		Player.Character[Name].Handle.Shine.Looped = true
		Player.Character[Name].Handle.Shine.Volume = 1
		Player.Character[Name].Handle.Shine.Pitch = 1
		Player.Character[Name].Handle.Shine:Play()
		for i = 0, 5 do
			Player.Character[Name].Source.Mesh.Scale = Player.Character[Name].Source.Mesh.Scale * 1.2
			Player.Character[Name].Source.Fire.Size = Player.Character[Name].Source.Fire.Size * 1.2
			wait()
		end
		local heed = Instance.new("ForceField")
		heed.Name = "HeedShield"
		for i = 0, math.huge, 0.1 do
			if Button1Down == false then break end
			if Player.Character == nil then break end
			if Player.Character:FindFirstChild("Humanoid") == nil then break end
			if Player.Character.Humanoid.Health <= 0 then break end
			if Player.Character:FindFirstChild(Name) == nil then break end
			if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
			if Player.Character[Name]:FindFirstChild("Source") == nil then break end
			if power <= 0 then break end
			local endstr = string.sub(tostring(i), string.len(tostring(i)), string.len(tostring(i)))
			if endstr == "0" or endstr == "2" or endstr == "4" or endstr == "6" or endstr == "8" then
				power = power - 1
			end
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(math.sin(i) + 3, math.sin(i) + 3, math.sin(i) + 3)
			Player.Character[Name].Source.Fire.Size = math.sin(i) + 10
			Player.Character[Name].Source.Fire.Heat = math.sin(i) + 10
			for _, model in pairs(Workspace:GetChildren()) do
				if model:FindFirstChild("Torso") ~= nil and model:FindFirstChild("Humanoid") ~= nil then
					if (Player.Character.Torso.Position - model.Torso.Position).magnitude <= 25 then
						local trail = Instance.new("Part")
						trail.BrickColor = BrickColor.new("Institutional white")
						trail.TopSurface = 0
						trail.BottomSurface = 0
						trail.Size = Vector3.new(1, 1, 1)
						trail.Transparency = 0.4
						trail.Anchored = true
						trail.CanCollide = false
						trail.CFrame = CFrame.new((Player.Character[Name].Source.Position + model.Torso.Position) / 2, model.Torso.Position)
						trail.Parent = Workspace
						local mesh = Instance.new("SpecialMesh")
						mesh.MeshType = "Brick"
						mesh.Scale = Vector3.new(math.random(2, 5) / 10, math.random(2, 5) / 10, (model.Torso.Position - Player.Character[Name].Source.Position).magnitude)
						mesh.Parent = trail
						coroutine.resume(coroutine.create(function(part) wait() part:Remove() end), trail)
						model.Humanoid.Health = model.Humanoid.Health + 1.25
						heed:Clone().Parent = model
						coroutine.resume(coroutine.create(function(part) wait() part:Remove() end), model.HeedShield)
					end
				end
			end
			wait()
		end
		for i = 0, 25 do
			Player.Character[Name].Source.Mesh.Scale = Player.Character[Name].Source.Mesh.Scale / 1.15
			Player.Character[Name].Source.Fire.Size = Player.Character[Name].Source.Fire.Size / 1.15
			Player.Character[Name].Source.Fire.Heat = Player.Character[Name].Source.Fire.Heat / 1.15
			Player.Character[Name].Handle.Shine.Volume = (25 - i) / 25
			wait()
		end
		Player.Character[Name].Handle.Shine:Stop()
		Player.Character[Name].Source.Transparency = 1
		Player.Character[Name].Source.Fire.Enabled = false
		canFire = true
	elseif spell == 7 then
		--Combuscus Phore, fire/explosives class. A small explosion with a bit of magic makes to be a spectacular performance.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0.25
		Player.Character[Name].Source.BrickColor = BrickColor.new("Really red")
		Player.Character[Name].Source.Fire.Enabled = true
		Player.Character[Name].Source.Fire.Heat = 10
		Player.Character[Name].Source.Fire.Size = 10
		Player.Character[Name].Source.Fire.Color = Color3.new(1, 0, 0)
		Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
		Player.Character[Name].Handle.Bolt.Looped = false
		Player.Character[Name].Handle.Bolt.Volume = 1
		Player.Character[Name].Handle.Bolt.Pitch = 1.5
		Player.Character[Name].Handle.Bolt:Play()
		power = power - 75
		local shock = Instance.new("Part")
		shock.FormFactor = "Custom"
		shock.Size = Vector3.new(1, 1, 1)
		shock.BrickColor = BrickColor.new("Really red")
		shock.Anchored = true
		shock.Name = "Shock Ring"
		shock.CanCollide = false
		shock.Parent = Workspace
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshType = "FileMesh"
		mesh.MeshId = "http://www.roblox.com/Asset/?id=3270017"
		mesh.Parent = shock
		local tilt1 = math.random(-10, 10)
		local tilt2 = math.random(-10, 10)
		local tiltChance = math.random(1, 3)
		for i = 0, 25 do
			Player.Character[Name].Handle.Bolt.Pitch = Player.Character[Name].Handle.Bolt.Pitch - 0.1
			shock.Mesh.Scale =  Vector3.new(i, i, i) * (25 - i)
			if tiltChance == 1 then
				shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + tilt1), 0, 0)
			elseif tiltChance == 2 then
				shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90), math.rad(tilt2), 0)
			elseif tiltChance == 3 then
				shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + tilt1), math.rad(tilt2), 0)
			end
			Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) / 5) * (25 - i)
			Player.Character[Name].Source.Fire.Size = (i / 5) * (25 - i)
			Player.Character[Name].Source.Fire.Heat = (i / 5) * (25 - i)
			for _, model in pairs(Workspace:GetChildren()) do
				if model.ClassName == "Part" then
					if (Player.Character.Torso.Position - model.Position).magnitude <= (i * (25 - i)) / 2 and model.Anchored == false then
						model.Velocity = ((model.Position - Player.Character.Torso.Position) * (math.sin(i / 4) * 10)) + Vector3.new(0, 25, 0)
						if math.random(1, 10) == 1 then model:BreakJoints() end
					end
				elseif model.ClassName == "Model" and model ~= Player.Character then
					for _, x in pairs(model:GetChildren()) do
						if x.ClassName == "Part" then
							if (Player.Character.Torso.Position - x.Position).magnitude <= (i * (25 - i)) / 2 and x.Anchored == false then
								x.Velocity = ((x.Position - Player.Character.Torso.Position) * (math.sin(i / 4) * 10)) + Vector3.new(0, 25, 0)
								if math.random(1, 10) == 1 then x:BreakJoints() end
								if model:FindFirstChild("Humanoid") ~= nil then
									model.Humanoid:TakeDamage(10)
									model.Humanoid.Sit = true
								end
							end
						end
					end
				end
			end
			wait(0.03)
		end
		shock:Remove()
		Player.Character[Name].Source.Transparency = 1
		Player.Character[Name].Source.Fire.Enabled = false
		canFire = true
	elseif spell == 8 then
		--Combuscus Burn, fire/explosives class. Basically, light things on fire.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.BrickColor = BrickColor.new("Really red")
		Player.Character[Name].Handle.Fire3.Looped = false
		Player.Character[Name].Handle.Fire3.Volume = 1
		Player.Character[Name].Handle.Fire3.Pitch = 1
		Player.Character[Name].Handle.Fire3:Play()
		Player.Character[Name].Handle.Fire4.Looped = false
		Player.Character[Name].Handle.Fire4.Volume = 1
		Player.Character[Name].Handle.Fire4.Pitch = 1
		Player.Character[Name].Handle.Fire4:Play()
		coroutine.resume(coroutine.create(function()
			for i = 0, 1, 0.1 do
				Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) * 5) + Vector3.new(1, 1, 1)
				Player.Character[Name].Source.Transparency = i
			wait()
			end
			Player.Character[Name].Source.Transparency = 1
		end))
		if mouse.Target == nil then return end
		if mouse.Target.Parent == nil then return end
		local function SetFire(target, offset)
			if target == nil then return end
			if offset == nil then offset = Vector3.new(0, 0, 0) end
			if target:GetMass() > 3500 then return end
			if target.Name == "CombuscusBurnFire" then return end
			if target:FindFirstChild("CombuscusBurnFire") ~= nil then return end
			if target:FindFirstChild("ForceField") ~= nil then return end
			if target.Parent == nil then return end
			if target.Parent:FindFirstChild("ForceField") ~= nil then return end
			if target.Parent:FindFirstChild("HeedShield") ~= nil then return end
			local check = Instance.new("Model")
			check.Name = "CombuscusBurnFire"
			check.Parent = target
			delay(math.random(0.1, 2), function() if target ~= nil then target.Touched:connect(function(hit) if target:FindFirstChild("CombuscusBurnFire") ~= nil then SetFire(hit) end end) end end)
			local part = Instance.new("Part")
			part.Name = "CombuscusBurnFire"
			part.CanCollide = false
			part.Anchored = true
			Part.FormFactor = "Custom"
			part.Size = Vector3.new(1, 1, 1)
			part.TopSurface = 0
			part.BottomSurface = 0
			part.Transparency = 1
			part.Parent = Workspace
			local fire = Instance.new("Fire")
			fire.Color = Color3.new(1, math.random(10, 30) / 100, 0)
			fire.SecondaryColor = Color3.new(1, 1, 1)
			fire.Size = math.random(4, 15)
			fire.Heat = fire.Size + 3
			fire.Parent = part
			local smoke = Instance.new("Smoke")
			smoke.Color = Color3.new(0.5, 0.5, 0.5)
			smoke.Size = fire.Size + 3
			smoke.RiseVelocity = fire.Heat / 5
			smoke.Opacity = math.random(1, 15) / 100
			smoke.Parent = part
			local sound = Instance.new("Sound")
			sound.SoundId = "http://www.roblox.com/Asset/?id=31760113"
			sound.Volume = 1
			sound.Pitch = 1
			sound.Looped = true
			sound.Parent = part
			sound:Play()
			coroutine.resume(coroutine.create(function()
				for i = 1, math.random(100, 1000) do
					if part.Parent == nil then break end
					if target.Parent == nil then break end
					if target.Parent.Parent == nil then break end
					if target:FindFirstChild("CombuscusBurnFire") == nil then break end
					if Player.Character == nil then break end
					if Player.Character:FindFirstChild("Humanoid") == nil then break end
					if Player.Character.Humanoid.Health <= 0 then break end
					part.CFrame = CFrame.new(target.Position + offset)
					if target.Parent:FindFirstChild("Humanoid") ~= nil then
						target.Parent.Humanoid:TakeDamage(0.25)
					end
					if math.random(1, 100) == 1 then target:BreakJoints() end
					if math.random(1, 25) == 1 and target.Anchored == false then target.BrickColor = BrickColor.new("Really black") end
					if math.random(1, 50) == 1 and target.Anchored == false then target.Velocity = target.Velocity + Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)) end
					wait()
				end
				for i = 1, 0, -0.05 do
					sound.Volume = i
					fire.Size = fire.Size / 1.025
					fire.Heat = fire.Heat / 1.01
					fire.Color = Color3.new(1 * i, 0.25 * i, 0)
					fire.SecondaryColor = Color3.new(1 * i, 1 * i, 1 * i)
					smoke.Size = smoke.Size / 1.05
					smoke.RiseVelocity = smoke.RiseVelocity / 1.05
					smoke.Opacity = smoke.Opacity / 1.05
					wait()
				end
				sound:Stop()
				fire.Enabled = false
				smoke.Enabled = false
				if target ~= nil then if target:FindFirstChild("CombuscusBurnFire") ~= nil then target.CombuscusBurnFire:Remove() end end
				wait(3)
				part:Remove()
			end))
		end
		pcall(function() SetFire(mouse.Target, mouse.Hit.p - mouse.Target.Position) end)
		canFire = true
	elseif spell == 9 then
		--Combuscus Vortex, fire/explosives class. A tornado in a can.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0.25
		Player.Character[Name].Source.BrickColor = BrickColor.new("Really red")
		Player.Character[Name].Source.Fire.Enabled = true
		Player.Character[Name].Source.Fire.Heat = 10
		Player.Character[Name].Source.Fire.Size = 10
		Player.Character[Name].Source.Fire.Color = Color3.new(1, 0, 0)
		Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
		Player.Character[Name].Handle.Charge2.Looped = false
		Player.Character[Name].Handle.Charge2.Volume = 1
		Player.Character[Name].Handle.Charge2.Pitch = 0.125
		Player.Character[Name].Handle.Charge2:Play()
		power = power - 50
		for i = 0, 75 do
			if math.random(1, 3) == 1 then
				local shock = Instance.new("Part")
				shock.FormFactor = "Custom"
				shock.Size = Vector3.new(1, 1, 1)
				shock.BrickColor = BrickColor.new("Really red")
				shock.Anchored = true
				shock.Name = "Shock Ring"
				shock.CanCollide = false
				shock.Parent = Workspace
				local mesh = Instance.new("SpecialMesh")
				mesh.MeshType = "FileMesh"
				mesh.MeshId = "http://www.roblox.com/Asset/?id=3270017"
				mesh.Parent = shock
				coroutine.resume(coroutine.create(function()
					local tilt1 = math.random(-10, 10)
					local tilt2 = math.random(-10, 10)
					local tiltChance = math.random(1, 3)
					local randomSize = math.random(-10, 10)
					for x = 1, 25 do
						shock.Mesh.Scale = Vector3.new(5 + x, 5 + x, 5 + (x / 5)) + Vector3.new(randomSize, randomSize, randomSize)
						if tiltChance == 1 then
							shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0) + Vector3.new(0, x, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + (tilt1 / (25 - x))), 0, 0)
						elseif tiltChance == 2 then
							shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0) + Vector3.new(0, x, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90), math.rad(tilt2 / (25 - x)), 0)
						elseif tiltChance == 3 then
							shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0) + Vector3.new(0, x, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + (tilt1 / (25 - x))), math.rad(tilt2 / (25 - x)), 0)
						end
						wait()
					end
				end))
			end
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(i, i, i) / 5
			Player.Character[Name].Source.Fire.Size = i / 5
			Player.Character[Name].Source.Fire.Heat = i / 5
			for _, model in pairs(Workspace:GetChildren()) do
				if model.ClassName == "Part" then
					if (Player.Character.Torso.Position - model.Position).magnitude <= 50 and model.Anchored == false then
						model.CanCollide = false
						model.Transparency = 0.5
						local Position = Instance.new("BodyPosition")
						Position.maxForce = Vector3.new(math.huge, math.huge, math.huge)
						Position.P = 100
						Position.D = 10
						Position.position = Player.Character.Torso.Position + Vector3.new(math.sin(i / (math.random(500, 750) / 100)) * (i / 2) + 4, (i / (math.random(800, 1200) / 100)) + 5, math.cos(i / (math.random(500, 750) / 100)) * (i / 2) + 4)
						Position.Parent = model
						coroutine.resume(coroutine.create(function() wait(0.1) Position:Remove() end))
						if math.random(1, 10) == 1 then model:BreakJoints() end
					end
				elseif model.ClassName == "Model" and model ~= Player.Character then
					for _, x in pairs(model:GetChildren()) do
						if x.ClassName == "Part" then
							if (Player.Character.Torso.Position - x.Position).magnitude <= 50 and x.Anchored == false then
								x.CanCollide = false
								local Position = Instance.new("BodyPosition")
								Position.maxForce = Vector3.new(math.huge, math.huge, math.huge)
								Position.P = 500
								Position.D = 10
								Position.position = Player.Character.Torso.Position + Vector3.new(math.sin(i / (math.random(500, 750) / 100)) * (i / 2) + 4, (i / (math.random(800, 1200) / 100)) + 7.5, math.cos(i / (math.random(500, 750) / 100)) * (i / 2) + 4)
								Position.Parent = x
								coroutine.resume(coroutine.create(function() wait(0.1) Position:Remove() end))
								if math.random(1, 10) == 1 then x:BreakJoints() end
								if model:FindFirstChild("Humanoid") ~= nil then
									model.Humanoid:TakeDamage(10)
									model.Humanoid.Sit = true
								end
							end
						end
					end
				end
			end
			wait(0.03)
		end
		Player.Character[Name].Handle.Fire2.Looped = false
		Player.Character[Name].Handle.Fire2.Volume = 1
		Player.Character[Name].Handle.Fire2.Pitch = 0.3
		Player.Character[Name].Handle.Fire2:Play()
		Player.Character[Name].Source.Fire.Enabled = false
		for i = 0.25, 1, 0.05 do
			Player.Character[Name].Source.Transparency = i
			wait()
		end
		Player.Character[Name].Source.Transparency = 1
		canFire = true
	elseif spell == 10 then
		--Combuscus Phore Nexus, fire/explosives class. Basically the outcome is similar to that of a nuclear warhead.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0.25
		Player.Character[Name].Source.BrickColor = BrickColor.new("Really red")
		Player.Character[Name].Source.Fire.Enabled = true
		Player.Character[Name].Source.Fire.Heat = 10
		Player.Character[Name].Source.Fire.Size = 10
		Player.Character[Name].Source.Fire.Color = Color3.new(1, 0, 0)
		Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
		Player.Character[Name].Handle.Fire1.Looped = false
		Player.Character[Name].Handle.Fire1.Volume = 1
		Player.Character[Name].Handle.Fire1.Pitch = math.random(3, 6) / 10
		local new = Player.Character[Name].Handle.Fire1:Clone()
		new.Parent = Workspace
		new:Play()
		Player.Character[Name].Handle.Charge3.Looped = false
		Player.Character[Name].Handle.Charge3.Volume = 1
		Player.Character[Name].Handle.Charge3.Pitch = math.random(15, 20) / 10
		local new = Player.Character[Name].Handle.Charge3:Clone()
		new.Parent = Workspace
		new:Play()
		Player.Character[Name].Handle.Fire4.Looped = false
		Player.Character[Name].Handle.Fire4.Volume = 1
		Player.Character[Name].Handle.Fire4.Pitch = math.random(2, 4) / 10
		local new = Player.Character[Name].Handle.Fire4:Clone()
		new.Parent = Workspace
		new:Play()
		power = power - 100
		local shock = Instance.new("Part")
		shock.FormFactor = "Custom"
		shock.Size = Vector3.new(1, 1, 1)
		shock.BrickColor = BrickColor.new("Really red")
		shock.Anchored = true
		shock.Name = "Shock Ring"
		shock.CanCollide = false
		shock.Parent = Workspace
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshType = "FileMesh"
		mesh.MeshId = "http://www.roblox.com/Asset/?id=3270017"
		mesh.Parent = shock
		local shock2 = shock:Clone()
		shock2.Parent = Workspace
		local shock3 = shock:Clone()
		shock3.Parent = Workspace
		local shockAngle = CFrame.fromEulerAnglesXYZ(math.rad(90 + math.random(-5, 5)), math.rad(math.random(-5, 5)), math.rad(math.random(-5, 5)))
		local shock2Angle = CFrame.fromEulerAnglesXYZ(math.rad(90 + math.random(-5, 5)), math.rad(math.random(-5, 5)), math.rad(math.random(-5, 5)))
		local shock3Angle = CFrame.fromEulerAnglesXYZ(math.rad(90 + math.random(-5, 5)), math.rad(math.random(-5, 5)), math.rad(math.random(-5, 5)))
		local shock2Size = math.random(2, 3)
		local shock3Size = math.random(4, 6)
		for i = 0, 500, 10 do
			if string.sub(tostring(i), string.len(tostring(i)), string.len(tostring(i))) == "0" then
				local shock4 = Instance.new("Part")
				shock4.FormFactor = "Custom"
				shock4.Size = Vector3.new(1, 1, 1)
				shock4.BrickColor = BrickColor.new("Really red")
				shock4.Anchored = true
				shock4.Name = "Shock Ring"
				shock4.CanCollide = false
				shock4.Parent = Workspace
				shock4.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 2, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(-25, 25)), math.rad(math.random(-25, 25)), math.rad(math.random(-25, 25)))
				local mesh = Instance.new("SpecialMesh")
				mesh.MeshType = "FileMesh"
				mesh.MeshId = "http://www.roblox.com/Asset/?id=20329976"
				mesh.Parent = shock4
				coroutine.resume(coroutine.create(function(part)
					for i = 0, 1, 0.05 do
						part.Transparency = i
						part.Mesh.Scale = Vector3.new(i * 25, i * 25, i * 25)
						wait()
					end
					part:Remove()
				end), shock4)
			end
			shock.Transparency = i / 500
			shock2.Transparency = i / 500
			shock3.Transparency = i / 500
			Player.Character[Name].Source.Transparency = i / 250
			shock.Mesh.Scale = Vector3.new(i, i, i)
			shock2.Mesh.Scale = Vector3.new(i, i, i) / shock2Size
			shock3.Mesh.Scale = Vector3.new(i, i, i) / shock3Size
			shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * shockAngle
			shock2.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * shock2Angle
			shock3.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * shock3Angle
			Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) / 15)
			Player.Character[Name].Source.Fire.Size = (i / 15)
			Player.Character[Name].Source.Fire.Heat = (i / 15)
			for _, model in pairs(Workspace:GetChildren()) do
				if model.ClassName == "Part" then
					if (Player.Character.Torso.Position - model.Position).magnitude <= i / 2 and model.Anchored == false then
						model.Velocity = (model.Position - Player.Character.Torso.Position) * 10 + Vector3.new(0, 25, 0)
						if math.random(1, 10) == 1 then model:BreakJoints() end
					end
				elseif model.ClassName == "Model" and model ~= Player.Character then
					for _, x in pairs(model:GetChildren()) do
						if x.ClassName == "Part" then
							if (Player.Character.Torso.Position - x.Position).magnitude <= i / 2 and x.Anchored == false then
								x.Velocity = (x.Position - Player.Character.Torso.Position) * 10 + Vector3.new(0, 25, 0)
								if math.random(1, 10) == 1 then x:BreakJoints() end
								if model:FindFirstChild("Humanoid") ~= nil then
									model.Humanoid:TakeDamage(10)
									model.Humanoid.Sit = true
								end
							end
						end
					end
				end
			end
			wait(0.03)
		end
		shock:Remove()
		shock2:Remove()
		shock3:Remove()
		Player.Character[Name].Source.Transparency = 1
		Player.Character[Name].Source.Fire.Enabled = false
		canFire = true
	elseif spell == 11 then
		--Kanamla Cysis, object manipulation class. The easiest spell in it's class allows you to lightly pick things up.
		local target = mouse.Target
		if target == nil then return end
		if target.Parent == nil then return end
		if target.Anchored == true then return end
		if (target.Position - Player.Character[Name].Source.Position).magnitude > 25 then return end
		if game:GetService("Players"):GetPlayerFromCharacter(target.Parent) ~= nil then
			if game:GetService("Players"):GetPlayerFromCharacter(target.Parent).Character:FindFirstChild("Torso") ~= nil then
				target = game:GetService("Players"):GetPlayerFromCharacter(target.Parent).Character.Torso
				if game:GetService("Players"):GetPlayerFromCharacter(target.Parent).Character:FindFirstChild("Humanoid") ~= nil then
					game:GetService("Players"):GetPlayerFromCharacter(target.Parent).Character.Humanoid.PlatformStand = true
				end
			end
		end
		local position = Instance.new("BodyPosition")
		position.Name = "Cysis"
		position.maxForce = Vector3.new(math.huge, math.huge, math.huge)
		position.P = 1000
		position.D = 50
		position.Parent = target
		position.position = Player.Character[Name].Source.Position + ((mouse.Hit.p - Player.Character[Name].Source.Position).unit * 10)
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.Transparency = 0.25
		Player.Character[Name].Source.BrickColor = BrickColor.new("Bright blue")
		Player.Character[Name].Source.Fire.Enabled = true
		Player.Character[Name].Source.Fire.Heat = 10
		Player.Character[Name].Source.Fire.Size = 2
		Player.Character[Name].Source.Fire.Color = Color3.new(0, 0, 1)
		Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(0.5, 0.5, 1)
		Player.Character[Name].Handle.Shine.Looped = false
		Player.Character[Name].Handle.Shine.Volume = 1
		Player.Character[Name].Handle.Shine.Pitch = 0.75
		Player.Character[Name].Handle.Shine:Play()
		for i = 0, math.huge do
			if Button1Down == false then break end
			if Player.Character == nil then break end
			if Player.Character:FindFirstChild("Humanoid") == nil then break end
			if Player.Character.Humanoid.Health <= 0 then break end
			if Player.Character:FindFirstChild(Name) == nil then break end
			if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
			if Player.Character[Name]:FindFirstChild("Source") == nil then break end
			if power <= 0 then break end
			if string.sub(tostring(i), string.len(tostring(i)), string.len(tostring(i))) == "0" then
				power = power - 1
			end
			if target ~= nil and position ~= nil then
				position.position = Player.Character[Name].Source.Position + ((mouse.Hit.p - Player.Character[Name].Source.Position).unit * 10)
			end
			wait()
		end
		if position ~= nil then position:Remove() end
		if target ~= nil then
			if target.Parent:FindFirstChild("Humanoid") ~= nil then
				target.Parent.Humanoid.PlatformStand = false
				target.Parent.Humanoid.Sit = true
			end
		end
		for i = 0.25, 1, 0.05 do
			Player.Character[Name].Source.Transparency = i
			wait()
		end
		Player.Character[Name].Source.Transparency = 1
		Player.Character[Name].Source.Fire.Enabled = false
		canFire = true
	elseif spell == 12 then
		--Kanamla Tepidift, object manipulation class. Allows you to teleport from one area to another.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.BrickColor = BrickColor.new("Bright blue")
		Player.Character[Name].Source.Fire.Enabled = true
		Player.Character[Name].Source.Fire.Heat = 0
		Player.Character[Name].Source.Fire.Color = Color3.new(0, 0, 1)
		Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
		Player.Character[Name].Handle.Shine.Looped = true
		Player.Character[Name].Handle.Shine.Pitch = 1.5
		Player.Character[Name].Handle.Shine.Volume = 1
		Player.Character[Name].Handle.Shine:Play()
		for i = 1, 0, -0.05 do
			Player.Character[Name].Source.Transparency = i
			Player.Character[Name].Source.Mesh.Scale = (Vector3.new(1 - i, 1 - i, 1 - i) * 15)
			Player.Character[Name].Source.Fire.Size = (1 - i) * 15
			wait()
		end
		local maxDistance = (Player.Character.Torso.Position - mouse.Hit.p).magnitude
		if maxDistance < 500 then 
			local pos1 = Player.Character.Torso.Position
			local pos2 = mouse.Hit.p + Vector3.new(0, 3, 0)
			local pos0 = pos1
			for distance = 1, maxDistance, 5 do
				pos0 = (CFrame.new(pos1, pos2) * CFrame.new(0, 0, -distance)).p
				Player.Character.Torso.CFrame = CFrame.new(pos0, pos2)
				Player.Character.Torso.Velocity = Vector3.new()
				power = power - 1
				wait()
			end
			Player.Character.Torso.CFrame = CFrame.new(pos2)
			for i = 0, 1, 0.05 do
				Player.Character[Name].Source.Transparency = i
				Player.Character[Name].Source.Mesh.Scale = (Vector3.new(1 - i, 1 - i, 1 - i) * 15)
				Player.Character[Name].Source.Fire.Size = (1 - i) * 15
				Player.Character[Name].Handle.Shine.Volume = (1 - i)
				wait()
			end
			Player.Character[Name].Handle.Shine:Stop()
		else
			for i = 0, 1, 0.05 do
				Player.Character[Name].Source.BrickColor = Player.Character[Name].Source.BrickColor == BrickColor.new("Bright blue") and BrickColor.new("Really red") or BrickColor.new("Bright blue")
				Player.Character[Name].Source.Transparency = i
				Player.Character[Name].Source.Mesh.Scale = (Vector3.new(1 - i, 1 - i, 1 - i) * 15)
				Player.Character[Name].Source.Fire.Size = (1 - i) * 15
				Player.Character[Name].Source.Fire.Color = Player.Character[Name].Source.Fire.Color == Color3.new(0, 0, 1) and Color3.new(1, 0, 0) or Color3.new(0, 0, 1)
				Player.Character[Name].Source.Fire.SecondaryColor = Player.Character[Name].Source.Fire.SecondaryColor == Color3.new(1, 1, 1) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1)
				Player.Character[Name].Handle.Shine.Pitch = (1 - i) + 0.5
				wait()
			end
			Player.Character[Name].Handle.Shine:Stop()
		end
		Player.Character[Name].Source.Transparency = 1
		Player.Character[Name].Source.Fire.Enabled = false
		canFire = true
	elseif spell == 13 then
		--Kanamla Jump, object manipulation class. Allows you to jump really high.
		canFire = false
		while Button1Down == true do
			if power <= 0 then break end
			Player.Character[Name].Handle.Fire3.Looped = false
			Player.Character[Name].Handle.Fire3.Pitch = 1
			Player.Character[Name].Handle.Fire3.Volume = 1
			for i = 1, 2 do Player.Character[Name].Handle.Fire3:Play() end
			Player.Character[Name].Source.BrickColor = BrickColor.new("Really blue")
			Player.Character.Humanoid.PlatformStand = true
			Player.Character.Torso.Velocity = Vector3.new(Player.Character.Torso.Velocity.x, (Player.Character.Torso.Velocity.y / 2) + 100, Player.Character.Torso.Velocity.z)
			power = power - 5
			local shock = Instance.new("Part")
			shock.FormFactor = "Custom"
			shock.Size = Vector3.new(1, 1, 1)
			shock.BrickColor = BrickColor.new("Really blue")
			shock.Anchored = true
			shock.Name = "Shock Ring"
			shock.CanCollide = false
			shock.Parent = Workspace
			local mesh = Instance.new("SpecialMesh")
			mesh.MeshType = "FileMesh"
			mesh.MeshId = "http://www.roblox.com/Asset/?id=20329976"
			mesh.Scale = Vector3.new(1, 1, 1)
			mesh.Parent = shock
			shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 2.5, 0))
			coroutine.resume(coroutine.create(function()
				for i = 0, 50 do
					mesh.Scale = Vector3.new(i, i / 5, i)
					shock.Transparency = i / 50
					wait()
				end
				shock:Remove()
			end))
			for i = 0, 1, 0.2 do
				Player.Character[Name].Source.Transparency = i
				Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) * 5)
				wait()
			end
			Player.Character[Name].Source.Transparency = 1
			Player.Character.Humanoid.PlatformStand = false
		end
		canFire = true
	elseif spell == 14 then
		--Candora Hide, light manipulation class. The Hide spell makes you and your wand seem invisible to the naked eye by bending light around your limbs.
		canFire = false
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.BrickColor = BrickColor.new("Royal purple")
		for i = 1, 0, -0.05 do
			Player.Character[Name].Source.Transparency = i
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(1 - i, 1 - i, 1 - i) * 2
			wait()
		end
		Player.Character[Name].Source.Transparency = 0
		if Player.Character:FindFirstChild("Head") ~= nil then
			if Player.Character.Head:FindFirstChild("face") ~= nil then
				Player.Character.Head.face.Face = "Bottom"
			end
		end
		Player.Character[Name].Handle.Shine.Looped = false
		Player.Character[Name].Handle.Shine.Volume = 1
		Player.Character[Name].Handle.Shine:Play()
		for i = 0, 1.1, 0.01 do
			Player.Character[Name].Handle.Shine.Pitch = math.sin(i)
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(math.sin(i), math.sin(i), math.sin(i)) + Vector3.new(2, 2, 2)
			for _, children in pairs(Player.Character:GetChildren()) do
				if children.ClassName == "Part" and children.Name ~= "" then
					children.Transparency = i
				end
				if children.Name == Name then
					for _, children2 in pairs(children:GetChildren()) do
						if children2.ClassName == "Part" then
							children2.Transparency = i
						end
					end
				end
			end
			wait()
		end
		while Button1Down == true do
			if Player.Character == nil then break end
			if Player.Character:FindFirstChild("Humanoid") == nil then break end
			if Player.Character.Humanoid.Health <= 0 then break end
			if Player.Character:FindFirstChild(Name) == nil then break end
			if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
			if Player.Character[Name]:FindFirstChild("Source") == nil then break end
			if power <= 0 then break end
			power = power - 1
			wait(0.5)
		end
		Player.Character[Name].Handle.Shine:Play()
		for i = 1, -0.1, -0.01 do
			Player.Character[Name].Handle.Shine.Pitch = math.sin(i)
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(math.sin(i), math.sin(i), math.sin(i)) + Vector3.new(2, 2, 2)
			for _, children in pairs(Player.Character:GetChildren()) do
				if children.ClassName == "Part" and children.Name ~= "" then
					children.Transparency = i
				end
				if children.Name == Name then
					for _, children2 in pairs(children:GetChildren()) do
						if children2.ClassName == "Part" then
							children2.Transparency = i
						end
					end
				end
			end
			wait()
		end
		Player.Character[Name].Handle.Shine:Stop()
		if Player.Character:FindFirstChild("Head") ~= nil then
			if Player.Character.Head:FindFirstChild("face") ~= nil then
				Player.Character.Head.face.Face = "Front"
			end
		end
		for i = 0, 1, 0.05 do
			Player.Character[Name].Source.Transparency = i
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(1 - i, 1 - i, 1 - i) * 2
			wait()
		end
		Player.Character[Name].Source.Transparency = 1
		canFire = true
	elseif spell == 15 then
		--Duraen Control, human manipulation class. Lets you control the movements of others.
		Controlling = Controlling == nil and false or Controlling
		ControlModel = ControlModel == nil and nil or ControlModel
		if Controlling ~= true then
			if mouse.Target == nil then return end
			if mouse.Target.Parent == nil then return end
			if mouse.Target.Parent:FindFirstChild("Humanoid") == nil then return end
			if mouse.Target.Parent:FindFirstChild("Torso") == nil then return end
			if mouse.Target.Parent:FindFirstChild("Head") == nil then return end
			canFire = false
			Controlling = true
			ControlModel = mouse.Target.Parent
			Player.Character[Name].Source.Mesh.MeshType = "Sphere"
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
			Player.Character[Name].Source.BrickColor = BrickColor.new("Neon orange")
			Player.Character[Name].Handle.Shine.Looped = false
			Player.Character[Name].Handle.Shine.Volume = 1
			Player.Character[Name].Handle.Shine.Pitch = 2
			Player.Character[Name].Handle.Shine:Play()
			for i = 1, 0, -0.025 do
				Player.Character[Name].Source.Transparency = i
				Player.Character[Name].Source.Mesh.Scale = Vector3.new(1 - i, 1 - i, 1 - i) * 2
				Player.Character[Name].Handle.Shine.Pitch = i * 2
				wait()
			end
			Player.Character[Name].Source.Transparency = 0
			Player.Character[Name].Handle.Shine:Stop()
			coroutine.resume(coroutine.create(function()
				for i = 0, 1, 0.05 do
					Player.Character[Name].Source.Transparency = i
					wait()
				end
				Player.Character[Name].Source.Transparency = 1
			end))
			Player.Character[Name].Handle.Fire2.Looped = false
			Player.Character[Name].Handle.Fire2.Volume = 1
			Player.Character[Name].Handle.Fire2.Pitch = 1
			Player.Character[Name].Handle.Fire2:Play()
			local Shot = Instance.new("Part", Workspace)
			Shot.FormFactor = "Custom"
			Shot.Shape = "Ball"
			Shot.Size = Vector3.new(1, 1, 1)
			Shot.CFrame = Player.Character[Name].Source.CFrame
			Shot.CanCollide = false
			Shot.BrickColor = BrickColor.new("Neon orange")
			Shot.Transparency = 0.5
			Shot.TopSurface = 0
			Shot.BottomSurface = 0
			local BodyVelocity = Instance.new("BodyVelocity", Shot)
			BodyVelocity.maxForce = Vector3.new(math.huge, math.huge, math.huge)
			local Camera = Workspace.CurrentCamera
			Camera.CameraSubject = Shot
			while true do
				if ControlModel == nil then break end
				if ControlModel.Parent == nil then break end
				if ControlModel:FindFirstChild("Humanoid") == nil then break end
				if ControlModel.Humanoid.Health <= 0 then break end
				if ControlModel:FindFirstChild("Torso") == nil then break end
				if ControlModel:FindFirstChild("Head") == nil then break end
				if Player.Character == nil then break end
				if Player.Character.Parent == nil then break end
				if Player.Character:FindFirstChild("Humanoid") == nil then break end
				if Player.Character.Humanoid.Health <= 0 then break end
				if Player.Character:FindFirstChild("Torso") == nil then break end
				if Player.Character:FindFirstChild("Head") == nil then break end
				if Shot.Parent == nil then break end
				if (ControlModel.Head.Position - Shot.Position).magnitude < 3 then break end
				BodyVelocity.velocity = (ControlModel.Head.Position - Shot.Position).unit * (ControlModel.Humanoid.WalkSpeed * 1.5)
				wait()
			end
			Shot:Remove()
			if ControlModel:FindFirstChild("Humanoid") == nil then return end
			if ControlModel:FindFirstChild("Torso") == nil then return end
			if ControlModel:FindFirstChild("Head") == nil then return end
			local ControlPlayer = nil
			local Explosion = Instance.new("Part", Workspace)
			Explosion.FormFactor = "Custom"
			Explosion.Shape = "Ball"
			Explosion.Size = Vector3.new(1, 1, 1)
			Explosion.CFrame = ControlModel.Head.CFrame
			Explosion.CanCollide = false
			Explosion.Anchored = true
			Explosion.BrickColor = BrickColor.new("Neon orange")
			Explosion.Transparency = 0.5
			Explosion.TopSurface = 0
			Explosion.BottomSurface = 0
			local Mesh = Instance.new("SpecialMesh")
			Mesh.MeshType = "Sphere"
			Mesh.Parent = Explosion
			coroutine.resume(coroutine.create(function(Part)
				for i = 0, 1, 0.05 do
					Mesh.Scale = Vector3.new(i * 7.5, i * 2, i * 7.5)
					Explosion.Transparency = i
					Explosion.CFrame = Part.CFrame
					wait()
				end
				Explosion:Remove()
			end), ControlModel.Head)
			local Camera = Workspace.CurrentCamera
			Camera.CameraSubject = ControlModel.Humanoid
			canFire = true
			while Controlling == true and ControlModel:FindFirstChild("Humanoid") ~= nil and ControlModel:FindFirstChild("Torso") ~= nil and ControlModel:FindFirstChild("Head") ~= nil and spell == 15 and selected == true do
				if Player.Character == nil then break end
				if Player.Character:FindFirstChild("Humanoid") == nil then break end
				if Player.Character.Humanoid.Health <= 0 then break end
				if Player.Character:FindFirstChild(Name) == nil then break end
				if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
				if Player.Character[Name]:FindFirstChild("Source") == nil then break end
				if ControlModel.Humanoid.Health <= 0 then break end
				if power <= 0 then break end
				if math.random(1, 2) == 1 then power = power - 1 end
				ControlModel.Humanoid:MoveTo(mouse.Hit.p, mouse.Target == nil and ControlModel.Torso or mouse.Target)
				if mouse.Hit.p.y > ControlModel.Torso.Position.y then
					ControlModel.Humanoid.Jump = true
				end
				wait()
			end
			if ControlModel.Parent ~= nil then
				if ControlModel:FindFirstChild("Head") ~= nil then
					local Explosion = Instance.new("Part", Workspace)
					Explosion.Name = "Magical Explosion"
					Explosion.FormFactor = "Custom"
					Explosion.Shape = "Ball"
					Explosion.Size = Vector3.new(1, 1, 1)
					Explosion.CFrame = ControlModel.Head.CFrame
					Explosion.CanCollide = false
					Explosion.Anchored = true
					Explosion.BrickColor = BrickColor.new("Neon orange")
					Explosion.TopSurface = 0
					Explosion.BottomSurface = 0
					local Mesh = Instance.new("SpecialMesh")
					Mesh.MeshType = "Sphere"
					Mesh.Parent = Explosion
					coroutine.resume(coroutine.create(function(Part)
						for i = 1, 0, -0.05 do
							Mesh.Scale = Vector3.new(i * 7.5, i * 2, i * 7.5)
							Explosion.Transparency = i
							Explosion.CFrame = Part.CFrame
							wait()
						end
						Explosion:Remove()
					end), ControlModel.Head)
				end
			end
			Controlling = false
			ControlModel = nil
			Camera.CameraSubject = Player.Character:FindFirstChild("Humanoid")
			canFire = false
			if selected == true then
				for i = 1, 0, -0.05 do
					Player.Character[Name].Source.Mesh.MeshType = "Sphere"
					Player.Character[Name].Source.Mesh.Scale = Vector3.new(2, 2, 2)
					Player.Character[Name].Source.BrickColor = BrickColor.new("Neon orange")
					Player.Character[Name].Source.Transparency = i
					wait()
				end
				Player.Character[Name].Handle.Shine.Looped = false
				Player.Character[Name].Handle.Shine.Volume = 1
				Player.Character[Name].Handle.Shine.Pitch = 0
				Player.Character[Name].Handle.Shine:Play()
				for i = 0, 1, 0.025 do
					Player.Character[Name].Source.Mesh.MeshType = "Sphere"
					Player.Character[Name].Source.Mesh.Scale = Vector3.new(1 - i, 1 - i, 1 - i) * 2
					Player.Character[Name].Source.BrickColor = BrickColor.new("Neon orange")
					Player.Character[Name].Source.Transparency = i
					Player.Character[Name].Handle.Shine.Pitch = i * 2
					wait()
				end
				Player.Character[Name].Source.Transparency = 1
			end
			canFire = true
		else
			Controlling = false
		end
	elseif spell == 16 then
		--Duraen Switch, human manipulation class. Dress up as the enemy... Or as a woman, you sicko.
		if mouse.Target == nil then return end
		if mouse.Target.Parent == nil then return end
		if mouse.Target.Parent:FindFirstChild("Humanoid") == nil then return end
		if mouse.Target.Parent:FindFirstChild("Torso") == nil then return end
		if mouse.Target.Parent:FindFirstChild("Head") == nil then return end
		canFire = false
		local CharacterOne = Player.Character
		local CharacterTwo = mouse.Target.Parent
		Player.Character[Name].Source.Mesh.MeshType = "Sphere"
		Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
		Player.Character[Name].Source.BrickColor = BrickColor.new("Neon orange")
		Player.Character[Name].Handle.Shine.Looped = false
		Player.Character[Name].Handle.Shine.Volume = 1
		Player.Character[Name].Handle.Shine.Pitch = 2
		Player.Character[Name].Handle.Shine:Play()
		for i = 1, 0, -0.025 do
			Player.Character[Name].Source.Transparency = i
			Player.Character[Name].Source.Mesh.Scale = Vector3.new(1 - i, 1 - i, 1 - i) * 2
			Player.Character[Name].Handle.Shine.Pitch = i * 2
			wait()
		end
		Player.Character[Name].Source.Transparency = 0
		Player.Character[Name].Handle.Shine:Stop()
		coroutine.resume(coroutine.create(function()
			for i = 0, 1, 0.05 do
				Player.Character[Name].Source.Transparency = i
				wait()
			end
			Player.Character[Name].Source.Transparency = 1
		end))
		coroutine.resume(coroutine.create(function()
			local Explosion = Instance.new("Part", Workspace)
			Explosion.Name = "Magical Explosion"
			Explosion.FormFactor = "Custom"
			Explosion.Shape = "Ball"
			Explosion.Size = Vector3.new(1, 1, 1)
			Explosion.CanCollide = false
			Explosion.Anchored = true
			Explosion.BrickColor = BrickColor.new("Neon orange")
			Explosion.TopSurface = 0
			Explosion.BottomSurface = 0
			local Mesh = Instance.new("SpecialMesh")
			Mesh.MeshType = "Sphere"
			Mesh.Parent = Explosion
			coroutine.resume(coroutine.create(function(Part)
				for i = 0, 7, 0.1 do
					Mesh.Scale = Vector3.new(i, i * 2, i)
					Explosion.CFrame = Part.CFrame
					wait()
				end
				for i = 7, 14, 0.1 do
					Mesh.Scale = Vector3.new(i, i * 2, i)
					Explosion.Transparency = (i - 7) / 7
					Explosion.CFrame = Part.CFrame
					wait()
				end
				Explosion:Remove()
			end), CharacterOne.Torso)
			local Explosion = Instance.new("Part", Workspace)
			Explosion.Name = "Magical Explosion"
			Explosion.FormFactor = "Custom"
			Explosion.Shape = "Ball"
			Explosion.Size = Vector3.new(1, 1, 1)
			Explosion.CanCollide = false
			Explosion.Anchored = true
			Explosion.BrickColor = BrickColor.new("Neon orange")
			Explosion.TopSurface = 0
			Explosion.BottomSurface = 0
			local Mesh = Instance.new("SpecialMesh")
			Mesh.MeshType = "Sphere"
			Mesh.Parent = Explosion
			coroutine.resume(coroutine.create(function(Part)
				for i = 0, 7, 0.1 do
					Mesh.Scale = Vector3.new(i, i * 2, i)
					Explosion.CFrame = Part.CFrame
					wait()
				end
				for i = 7, 14, 0.1 do
					Mesh.Scale = Vector3.new(i, i * 2, i)
					Explosion.Transparency = (i - 7) / 7
					Explosion.CFrame = Part.CFrame
					wait()
				end
				Explosion:Remove()
			end), CharacterTwo.Torso)
		end))
		wait(2)
		local CharacterOneParts = Instance.new("Model")
		local CharacterTwoParts = Instance.new("Model")
		if CharacterOne.Head:FindFirstChild("face") ~= nil then
			CharacterOne.Head.face.Parent = CharacterOneParts
		end
		if CharacterOne.Head:FindFirstChild("Mesh") ~= nil then
			CharacterOne.Head.Mesh.Parent = CharacterOneParts
		end
		if CharacterOne.Torso:FindFirstChild("roblox") ~= nil then
			CharacterOne.Torso.roblox.Parent = CharacterOneParts
		end
		for _, Part in pairs(CharacterOne:GetChildren()) do
			if Part.ClassName == "Shirt" or Part.ClassName == "Pants" or Part.ClassName == "CharacterMesh" or Part.ClassName == "ShirtGraphic" or Part.ClassName == "Hat" or Part.ClassName == "Accoutrement" or Part.ClassName == "BodyColors" then
				Part.Parent = CharacterOneParts
			end
		end
		if CharacterTwo.Head:FindFirstChild("face") ~= nil then
			CharacterTwo.Head.face.Parent = CharacterTwoParts
		end
		if CharacterTwo.Head:FindFirstChild("Mesh") ~= nil then
			CharacterTwo.Head.Mesh.Parent = CharacterTwoParts
		end
		if CharacterTwo.Torso:FindFirstChild("roblox") ~= nil then
			CharacterTwo.Torso.roblox.Parent = CharacterTwoParts
		end
		for _, Part in pairs(CharacterTwo:GetChildren()) do
			if Part.ClassName == "Shirt" or Part.ClassName == "Pants" or Part.ClassName == "CharacterMesh" or Part.ClassName == "ShirtGraphic" or Part.ClassName == "Hat" or Part.ClassName == "Accoutrement" or Part.ClassName == "BodyColors" then
				Part.Parent = CharacterTwoParts
			end
		end
		for _, Part in pairs(CharacterOneParts:GetChildren()) do
			if Part.Name == "face" or Part.Name == "Mesh" then
				Part.Parent = CharacterTwo.Head
			elseif Part.Name == "roblox" then
				Part.Parent = CharacterTwo.Torso
			else
				Part.Parent = CharacterTwo
			end
		end
		for _, Part in pairs(CharacterTwoParts:GetChildren()) do
			if Part.Name == "face" or Part.Name == "Mesh" then
				Part.Parent = CharacterOne.Head
			elseif Part.Name == "roblox" then
				Part.Parent = CharacterOne.Torso
			else
				Part.Parent = CharacterOne
			end
		end
		canFire = true
	end
end
  function onButton1Up(mouse)
	if selected == false then return end
	Button1Down = false
	while canFire == false do wait() end
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
end
  function onKeyDown(key, mouse)
	if selected == false or canFire == false or Button1Down == true then return end
	key = key:lower()
	if key == "q" then
		if mouse.Target == nil then return end
		if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
			onDeselected(mouse)
			removeParts("holster")
			script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
		end
	end
	if key == "e" then
		spell = spell - 1
		if spell < 0 then
			spell = 16
		end
	end
	if key == "r" then
		spell = spell + 1
		if spell > 16 then
			spell = 0
		end
	end
	if key == "t" then
		spellHotkey1Delay = time()
	end
	if key == "y" then
		spellHotkey2Delay = time()
	end
	if key == "u" then
		spellHotkey3Delay = time()
	end
	updateSpellText()
	updateGui()
end
  function onKeyUp(key, mouse)
	if selected == false or canFire == false or Button1Down == true then return end
	key = key:lower()
	if key == "t" then
		if time() - spellHotkey1Delay > 1 then
			spellHotkey1 = spell
			local HotkeyMessage = Instance.new("Message", Player)
			HotkeyMessage.Text = "Set hotkey 1."
			wait(2.5)
			HotkeyMessage:Remove()
		else
			spell = spellHotkey1
		end
	end
	if key == "y" then
		if time() - spellHotkey2Delay > 1 then
			spellHotkey2 = spell
			local HotkeyMessage = Instance.new("Message", Player)
			HotkeyMessage.Text = "Set hotkey 2."
			wait(2.5)
			HotkeyMessage:Remove()
		else
			spell = spellHotkey2
		end
	end
	if key == "u" then
		if time() - spellHotkey3Delay > 1 then
			spellHotkey3 = spell
			local HotkeyMessage = Instance.new("Message", Player)
			HotkeyMessage.Text = "Set hotkey 3."
			wait(2.5)
			HotkeyMessage:Remove()
		else
			spell = spellHotkey3
		end
	end
	updateSpellText()
	updateGui()
end
  function onSelected(mouse)
	if selected == true or dropped == true then return end
	selected = true
	mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
		if Player.Character.WeaponActivated.Value == nil then break end
		if Player.Character.WeaponActivated.Value.Parent == nil then break end
		wait()
	end
	mouse.Icon = "rbxasset://textures\\GunCursor.png"
	updateSpellText()
	updateGui()
	removeParts("holster")
	makeParts("hand")
	local weapon = Instance.new("ObjectValue")
	weapon.Name = "WeaponActivated"
	weapon.Value = script.Parent
	weapon.Parent = Player.Character
	DisableLimb(1, Player.Character)
	SetAngle(1, math.rad(90), Player.Character)
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
	mouse.Button1Up:connect(function() onButton1Up(mouse) end)
	mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
	mouse.KeyUp:connect(function(key) onKeyUp(key, mouse) end)
	while selected == true do
		if canFire == true then
			if power < 100 and power >= 0 then
				power = power + 1
				wait(0.05)
			elseif power < 0 then
				power = power + 1
				wait(0.3)
			elseif power > 100 then
				power = power - 1
				wait(1)
			else
				power = 100
			end
		end
		updateSpellText()
		updateGui()
		wait()
	end
end
  function onDeselected(mouse)
	if selected == false then return end
	selected = false
	Button1Down = false
	while canFire == false do
		wait()
	end
	if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
		if Player.Character.WeaponActivated.Value == script.Parent then
			Player.Character.WeaponActivated:Remove()
		end
	end
	while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
		if Player.Character.WeaponActivated.Value == nil then break end
		if pcall(function() if Player.Character.WeaponActivated.Value.Parent == nil then return true end end) then break end
		wait()
	end
	if Player.PlayerGui:FindFirstChild(Name) ~= nil then Player.PlayerGui[Name]:Remove() end
	removeParts("hand")
	makeParts("holster")
	SetAngle(1, 0, Player.Character)
	EnableLimb(1, Player.Character)
end
  if script.Parent.ClassName ~= "HopperBin" then
	if Player == nil then print("Error: Player not found!") return end
	Tool = Instance.new("HopperBin")
	Tool.Name = Name
	Tool.Parent = Player.Backpack
	script.Name = "Main"
	script.Parent = Tool
end wait() if script.Parent.ClassName == "HopperBin" then
	while script.Parent.Parent.ClassName ~= "Backpack" do
		wait()
	end
	Player = script.Parent.Parent.Parent
	makeParts("holster")
	script.Parent.Selected:connect(onSelected)
	script.Parent.Deselected:connect(onDeselected)
end

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  • Fixzsi icon
    04/02/26 03:12:31 PM UTC
    text |

    0 B

    |

    0 👍

    /

    0 👎

    Best t33n active cpx link daily updates!
     Copy and paste the link in a new browser tab and then hit enter!
     https://crazyporn.@xxx/members/157354/?asgtbndr=1&play=true&spon=adworld&zone=400
     Remove the @ 
  • Cuiznxcn icon
    05/16/26 06:44:51 PM UTC
    text |

    0 B

    |

    0 👍

    /

    0 👎

    Best t33n active cpx link daily updates!
     Copy and paste the link in a new browser tab and then hit enter!
     https://crazyporn.xxx/members/157354/?asgtbndr=1&play=true&spon=adworld&zone=400