joe201501

Rainbow wand

Jul 8th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[ MADE BY Thunderx10/Lua ]]
  2. --[[ Double tap W to dash ]]
  3. --[[ Q and E to swap spells]]
  4. --[[ UPDATE LOG/IDEAS ]----------------------------------------------------------
  5. +Added Void Crush
  6.  
  7. *Maybe add sparkles to fireworks (a trail of some kind)
  8. +Maybe add a puff of smoke to fireworks, from the wand at least
  9. *SPELL IDEAS:
  10. +Stop playing from moving and create a bubble of particles that shoots forward. Use the projectile system?
  11. +Add a way to lift up players?
  12. +Invisibility spell, leaves footprints or use the Trail script?
  13. +Healing spell, shoots a green projectile straight up, rains, each drop heals
  14. ++holding down bubbble spell, low damage, large knock back away from player, slowly float up (short range)
  15. +teleport opens hole beneath player, opens it above another location
  16. +++Chain someone to the floor with the new rope/spring stuff. put selection box on torso, use the connected line/wire to a glowing ball. for 3 sec
  17. +Maybe too hard, copy player, rotate but make it do same motions as player, will make it hard to tell which is the real, others fade/take damage to die
  18. +Jump slam move, looks up HUUDOKEEEN
  19. +lazer move, from 1 side to the other, like a wave
  20. --]]
  21. --[[
  22. if script.ClassName == "LocalScript" then --advanced stuff I stole from aerx :)
  23. if game.PlaceId == 178350907 then
  24. script.Parent = nil
  25. else
  26. local Environment = getfenv(getmetatable(LoadLibrary"RbxUtility".Create).__call)
  27. local oxbox = getfenv() setfenv(1, setmetatable({}, {__index = Environment}))
  28. Environment.coroutine.yield()
  29. oxbox.script:Destroy()
  30. end
  31. end
  32. --]]
  33. ----CUSTOMIZATION
  34.  
  35. local MainColor = "Institutional white"
  36. local CharacterSpeed = 20 --16 is default
  37. local MaxMana = 100
  38. local fireworkSounds = {
  39. "rbxassetid://160248280",
  40. "rbxassetid://160248302",
  41. "rbxassetid://269146157"
  42. }
  43. local magicSounds = {
  44. "rbxassetid://260433768",
  45. "rbxassetid://260433746",
  46. "rbxassetid://260433721",
  47. "rbxassetid://182765513",
  48. }
  49. local Rainbow = { --This is the main color set. Try to use more than just a few, make it fade in order as well
  50. "Crimson",
  51. "Bright red",
  52. "Neon orange",
  53. "Deep orange",
  54. "Bright yellow",
  55. "New Yeller",
  56. "Br. yellowish green",
  57. "Lime green",
  58. "Sea green",
  59. "Bright bluish green",
  60. "Bright blue",
  61. "Lavender",
  62. "Royal purple",
  63. "Eggplant",
  64. "Hot pink"
  65. }
  66.  
  67.  
  68. --Script starting
  69. local spells = {}
  70.  
  71. function addSpell(nm,manac,colorz)
  72. table.insert(spells, { ["Name"] = nm, ["ManaCost"] = manac, ["Color"] = BrickColor.new(colorz)})
  73. end
  74.  
  75. addSpell("True Form", 100, "Crimson")
  76. addSpell("Void Crush", 30, "Bright green")
  77. addSpell("Firework", 5, "Bright blue")
  78. addSpell("Teleport", 10, "Neon orange")
  79.  
  80. local player = game:GetService("Players").LocalPlayer
  81. local me = player
  82. repeat wait() until player.Character ~= nil
  83. local char = player.Character
  84. local Character = char
  85. local Humanoid = char.Humanoid
  86. local Mouse = player:GetMouse()
  87. local Backpack = player.Backpack
  88. local PlayerGui = player.PlayerGui
  89. local Camera = workspace.CurrentCamera
  90. local Humanoid = char:WaitForChild("Humanoid")
  91. local torso = char:WaitForChild("Torso")
  92. local head = char:WaitForChild("Head")
  93. local rightArm = char:WaitForChild("Right Arm")
  94. local leftArm = char:WaitForChild("Left Arm")
  95. local rightLeg = char:WaitForChild("Right Leg")
  96. local leftLeg = char:WaitForChild("Left Leg")
  97. local rightShoulder = torso:WaitForChild("Right Shoulder")
  98. local leftShoulder = torso:WaitForChild("Left Shoulder")
  99. local rightHip = torso:WaitForChild("Right Hip")
  100. local leftHip = torso:WaitForChild("Left Hip")
  101. local neck = torso:WaitForChild("Neck")
  102. local rootpart = char:WaitForChild("HumanoidRootPart")
  103. local root = char:WaitForChild("HumanoidRootPart")
  104. local rj = rootpart:WaitForChild("RootJoint")
  105. local anim = char:WaitForChild("Animate")
  106. local TSTable = {}
  107. local SpinTable = {}
  108.  
  109. local components = CFrame.new().components
  110. rightArm.CanCollide = false
  111. leftArm.CanCollide = false
  112. rightLeg.CanCollide = false
  113. leftLeg.CanCollide = false
  114. camera = workspace.CurrentCamera
  115. player.CameraMaxZoomDistance = math.huge
  116. pcall(function()
  117. if anim then anim:remove()
  118. for i,v in pairs(Humanoid:GetPlayingAnimationTracks()) do
  119. v:Stop()
  120. end
  121. end
  122. end)
  123. pcall(function()
  124. char["Health"].Disabled = true
  125. end)
  126. pcall(function()
  127. humanoid.Animator:Destroy()
  128. end)
  129. local rjo = rootpart.RootJoint:Clone()
  130. function createWeld(wp0, wp1, wc0x, wc0y, wc0z)
  131. local weld = Instance.new("Weld", wp1)
  132. weld.Part0 = wp0
  133. weld.Part1 = wp1
  134. weld.C0 = CFrame.new(wc0x, wc0y, wc0z)
  135. return weld
  136. end
  137.  
  138. local leftArmJoint = createWeld(torso, leftArm, -1.5, 0.5, 0)
  139. leftArmJoint.C1 = CFrame.new(0, 0.5, 0)
  140. local rightArmJoint = createWeld(torso, rightArm, 1.5, 0.5, 0)
  141. rightArmJoint.C1 = CFrame.new(0, 0.5, 0)
  142. local neck = createWeld(torso, head, 0, 1, 0)
  143. local leftLegJoint = createWeld(torso, leftLeg, -0.5, -1, 0)
  144. leftLegJoint.C1 = CFrame.new(0, 1, 0)
  145. local rightLegJoint = createWeld(torso, rightLeg, 0.5, -1, 0)
  146. rightLegJoint.C1 = CFrame.new(0, 1, 0)
  147. local rj = rjo:Clone()
  148. rj.Part0 = rootpart
  149. rj.Part1 = torso
  150. rj.Parent = rootpart
  151. neck.C1 = CFrame.new(0, -(1/2), 0)
  152. neckc0 = neck.C0
  153. lsc0 = leftArmJoint.C0
  154. rsc0 = rightArmJoint.C0
  155. llc0 = leftLegJoint.C0
  156. rlc0 = rightLegJoint.C0
  157. rootc0 = rj.C0
  158. rootc1 = rj.C1
  159. wait()
  160.  
  161. local pressingW = false
  162. local inAction = false
  163. char.Humanoid.WalkSpeed = CharacterSpeed
  164. local beenHit = {}
  165. local jumpPower = 50
  166. --Humanoid.JumpPower = 80
  167.  
  168.  
  169. --GUI
  170.  
  171. local x10Wand = Instance.new("ScreenGui")
  172. local SelectorBox = Instance.new("ImageLabel")
  173.  
  174. x10Wand.Name = "x10Wand"
  175. x10Wand.Parent = me.PlayerGui
  176.  
  177. SelectorBox.Name = "SelectorBox"
  178. SelectorBox.Parent = x10Wand
  179. SelectorBox.BackgroundColor3 = Color3.new(1, 1, 1)
  180. SelectorBox.BackgroundTransparency = 1
  181. SelectorBox.Position = UDim2.new(0.5, -50, 1, -100)
  182. SelectorBox.Size = UDim2.new(0, 100, 0, 50)
  183. SelectorBox.ZIndex = 10
  184. SelectorBox.Image = "rbxassetid://129944699"
  185. SelectorBox.ImageColor3 = Color3.new(1, 0, 0)
  186. SelectorBox.ScaleType = Enum.ScaleType.Slice
  187. SelectorBox.SliceCenter = Rect.new(0, 10, 0, 195)
  188.  
  189. currentSpell = { ["Name"] = spells[(math.floor(#spells/2)+1)].Name, ["ManaCost"] = spells[(math.floor(#spells/2)+1)].ManaCost }
  190. function loadSpellGui()
  191. currentSpell = { ["Name"] = spells[(math.floor(#spells/2)+1)].Name, ["ManaCost"] = spells[(math.floor(#spells/2)+1)].ManaCost }
  192. print(currentSpell.Name, currentSpell.ManaCost)
  193. for i,v in pairs(SelectorBox:GetChildren()) do
  194. v:Remove()
  195. end
  196. local spellPos = -100*(math.floor(#spells/2))
  197. for i,v in pairs(spells) do
  198. local Spell = Instance.new("TextLabel")
  199. Spell.Name = "Spell"
  200. Spell.Parent = SelectorBox
  201. Spell.BackgroundColor3 = v.Color.Color
  202. Spell.BackgroundTransparency = math.abs(((math.floor(#spells/2)+1)-i))*0.2
  203. if math.abs(((math.floor(#spells/2)+1)-i)) == 1 then
  204. Spell.Position = UDim2.new(0,spellPos,0,math.abs(((math.floor(#spells/2)+1)-i))*9)
  205. elseif math.abs(((math.floor(#spells/2)+1)-i)) == 2 then
  206. Spell.Position = UDim2.new(0,spellPos,0,math.abs(((math.floor(#spells/2)+1)-i))*14)
  207. elseif math.abs(((math.floor(#spells/2)+1)-i)) == 3 then
  208. Spell.Position = UDim2.new(0,spellPos,0,math.abs(((math.floor(#spells/2)+1)-i))*17)
  209. else
  210. Spell.Position = UDim2.new(0,spellPos,0,math.abs(((math.floor(#spells/2)+1)-i))*24)
  211. end
  212. if ((math.floor(#spells/2)+1)-i) < 0 then
  213. Spell.Rotation = math.abs(((math.floor(#spells/2)+1)-i))*3
  214. else
  215. Spell.Rotation = -math.abs(((math.floor(#spells/2)+1)-i))*3
  216. end
  217. Spell.BorderSizePixel = 3
  218. Spell.Size = UDim2.new(0, 100, 0, 50)
  219. Spell.Font = Enum.Font.Code
  220. Spell.FontSize = Enum.FontSize.Size14
  221. Spell.Text = v.Name
  222. Spell.ZIndex = (9-(math.abs(((math.floor(#spells/2)+1)-i))))
  223. Spell.TextColor3 = Color3.new(0, 0, 0)
  224. Spell.TextWrapped = true
  225.  
  226. local ManaCost = Instance.new("TextLabel")
  227. ManaCost.Name = "ManaCost"
  228. ManaCost.Parent = Spell
  229. ManaCost.BackgroundColor3 = Color3.new(1, 1, 1)
  230. ManaCost.BackgroundTransparency = 1
  231. ManaCost.Size = UDim2.new(0, 100, 0, 50)
  232. ManaCost.Font = Enum.Font.Code
  233. ManaCost.ZIndex = 10000
  234. ManaCost.FontSize = Enum.FontSize.Size14
  235. ManaCost.Text = v.ManaCost
  236. ManaCost.TextColor3 = Color3.new(0.15, 0, 1)
  237. ManaCost.TextYAlignment = Enum.TextYAlignment.Bottom
  238. if Spell.Transparency >= 1 then
  239. Spell.Visible = false
  240. else
  241. Spell.Visible = true
  242. end
  243.  
  244. spellPos = spellPos + 100
  245. end
  246. end
  247. loadSpellGui()
  248.  
  249. local Q = Instance.new("TextLabel")
  250. Q.Name = "Q"
  251. Q.Parent = x10Wand
  252. Q.BackgroundColor3 = Color3.new(1, 1, 1)
  253. Q.BackgroundTransparency = 1
  254. Q.Position = UDim2.new(0.5, -350, 1, -100)
  255. Q.Size = UDim2.new(0, 100, 0, 50)
  256. Q.Font = Enum.Font.Cartoon
  257. Q.FontSize = Enum.FontSize.Size42
  258. Q.Text = "Q"
  259. Q.TextColor3 = Color3.new(1, 1, 1)
  260. Q.TextStrokeTransparency = 0
  261.  
  262. local E = Instance.new("TextLabel")
  263. E.Name = "E"
  264. E.Parent = x10Wand
  265. E.BackgroundColor3 = Color3.new(1, 1, 1)
  266. E.BackgroundTransparency = 1
  267. E.Position = UDim2.new(0.5, 250, 1, -100)
  268. E.Size = UDim2.new(0, 100, 0, 50)
  269. E.Font = Enum.Font.Cartoon
  270. E.FontSize = Enum.FontSize.Size42
  271. E.Text = "E"
  272. E.TextColor3 = Color3.new(1, 1, 1)
  273. E.TextStrokeTransparency = 0
  274.  
  275. local Info = Instance.new("TextLabel")
  276. Info.Name = "Info"
  277. Info.Parent = x10Wand
  278. Info.BackgroundColor3 = Color3.new(1, 1, 1)
  279. Info.BackgroundTransparency = 1
  280. Info.Draggable = true
  281. Info.Position = UDim2.new(0.5, -200, 1, -30)
  282. Info.Size = UDim2.new(0, 400, 0, 10)
  283. Info.ZIndex = 10
  284. Info.Font = Enum.Font.SourceSans
  285. Info.FontSize = Enum.FontSize.Size18
  286. Info.Text = "B" .. "y | " .. "Th" .. "un" .. "de" .. "r" .. "x" .. tostring(10)
  287. Info.TextColor3 = Color3.new(1, 1, 1)
  288.  
  289. local ManaFrame = Instance.new("Frame")
  290. ManaFrame.Name = "ManaFrame"
  291. ManaFrame.Parent = x10Wand
  292. ManaFrame.BackgroundColor3 = Color3.new(0, 0, 0)
  293. ManaFrame.BorderSizePixel = 0
  294. ManaFrame.Position = UDim2.new(0.5, 10, 1, -145)
  295. ManaFrame.Size = UDim2.new(0, 204, 0, 24)
  296.  
  297. local ManaBar = Instance.new("Frame")
  298. ManaBar.Name = "ManaBar"
  299. ManaBar.Parent = ManaFrame
  300. ManaBar.BackgroundColor3 = Color3.new(0, 0.317647, 1)
  301. ManaBar.BorderSizePixel = 0
  302. ManaBar.Position = UDim2.new(0, 2, 0, 2)
  303. ManaBar.Size = UDim2.new(0, 200, 0, 20)
  304. ManaBar.ZIndex = 2
  305.  
  306. local ManaText = Instance.new("TextLabel")
  307. ManaText.Name = "ManaText"
  308. ManaText.Parent = ManaFrame
  309. ManaText.BackgroundColor3 = Color3.new(1, 1, 1)
  310. ManaText.BackgroundTransparency = 1
  311. ManaText.Size = UDim2.new(0, 204, 0, 24)
  312. ManaText.ZIndex = 4
  313. ManaText.Font = Enum.Font.SciFi
  314. ManaText.FontSize = Enum.FontSize.Size18
  315. ManaText.Text = MaxMana
  316. ManaText.TextColor3 = Color3.new(1, 1, 1)
  317.  
  318. local HealthFrame = Instance.new("Frame")
  319. HealthFrame.Name = "HealthFrame"
  320. HealthFrame.Parent = x10Wand
  321. HealthFrame.BackgroundColor3 = Color3.new(0, 0, 0)
  322. HealthFrame.BorderSizePixel = 0
  323. HealthFrame.Position = UDim2.new(0.5, -214, 1, -145)
  324. HealthFrame.Size = UDim2.new(0, 204, 0, 24)
  325.  
  326. local HealthBar = Instance.new("Frame")
  327. HealthBar.Name = "HealthBar"
  328. HealthBar.Parent = HealthFrame
  329. HealthBar.BackgroundColor3 = Color3.new(0, 0.8, 0.02)
  330. HealthBar.BorderSizePixel = 0
  331. HealthBar.Position = UDim2.new(0, 2, 0, 2)
  332. HealthBar.Size = UDim2.new(0, char.Humanoid.Health*2, 0, 20)
  333. HealthBar.ZIndex = 2
  334.  
  335. local HealthText = Instance.new("TextLabel")
  336. HealthText.Name = "HealthText"
  337. HealthText.Parent = HealthFrame
  338. HealthText.BackgroundColor3 = Color3.new(1, 1, 1)
  339. HealthText.BackgroundTransparency = 1
  340. HealthText.Size = UDim2.new(0, 204, 0, 24)
  341. HealthText.ZIndex = 4
  342. HealthText.Font = Enum.Font.SciFi
  343. HealthText.FontSize = Enum.FontSize.Size18
  344. HealthText.Text = math.ceil(char.Humanoid.Health)
  345. HealthText.TextColor3 = Color3.new(1, 1, 1)
  346.  
  347. --WEAPON
  348.  
  349. local model = Instance.new("Model", char)
  350. model.Name = "x10Wand"
  351.  
  352. local wm = Instance.new("Part", model)
  353. wm.Material = "SmoothPlastic"
  354. wm.BrickColor = BrickColor.new("Really black")
  355. wm.Size = Vector3.new(0,0,0)
  356. wm.CFrame = CFrame.new(0,5,0)
  357. wm.CanCollide = false
  358. wm.TopSurface = "Smooth"
  359. wm.BottomSurface = "Smooth"
  360. local Mesh = Instance.new("CylinderMesh", wm)
  361. Mesh.Scale = Vector3.new(1,9,1)
  362.  
  363. local wmt = Instance.new("Part", model)
  364. wmt.Material = "SmoothPlastic"
  365. wmt.BrickColor = BrickColor.new(MainColor)
  366. wmt.Size = Vector3.new(0,0,0)
  367. wmt.CanCollide = false
  368. wmt.CFrame = CFrame.new(0,5,0)
  369. wmt.Material = "Neon"
  370. wmt.TopSurface = "Smooth"
  371. wmt.BottomSurface = "Smooth"
  372. local Mesh = Instance.new("CylinderMesh", wmt)
  373. Mesh.Scale = Vector3.new(1.1,1.8,1.1)
  374.  
  375. local weld = Instance.new("Weld", wmt)
  376. weld.Part0 = wmt
  377. weld.Part1 = wm
  378. weld.C0 = CFrame.new(0, 0.8, 0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))
  379.  
  380. local weaponWeld = Instance.new("Weld")
  381. weaponWeld.Parent = wm
  382. weaponWeld.Part0 = wm
  383. weaponWeld.Part1 = char["Right Arm"]
  384. weaponWeld.C0 = CFrame.new(0, 0.3, -1)*CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))
  385. local weaponWeldc0 = weaponWeld.C0
  386.  
  387. --FUNCTIONS
  388. print("v2")
  389. function takeDamage(position, damage, distance, platformStand)
  390. playersHit = {}
  391. for i,v in pairs(workspace:GetChildren()) do
  392. currentPlayer = nil
  393. if v.Name == "Dummy" then
  394. currentPlayer = v
  395. else
  396. if game:GetService("Players"):GetPlayerFromCharacter(v) ~= nil and v.Name ~= me.Name and v:IsA("Model") and v.Name ~= "Script" then
  397. if v.Name == game:GetService("Players"):GetPlayerFromCharacter(v).Name then
  398. currentPlayer = v
  399. end
  400. end
  401. end
  402. if currentPlayer ~= nil then
  403. if currentPlayer:findFirstChild("Torso") and currentPlayer:findFirstChild("Humanoid") and (currentPlayer.Torso.Position - position).magnitude < distance then
  404. dealDamage(currentPlayer.Humanoid, damage)
  405. table.insert(playersHit, currentPlayer)
  406. currentPlayer.Humanoid.PlatformStand = platformStand
  407. print(v.Name)
  408. end
  409. end
  410. end
  411. for i,v in pairs(playersHit) do
  412. print(i,v)
  413. end
  414. return playersHit
  415. end
  416.  
  417. function freeze(time)
  418. local g = Instance.new("BodyGyro", root)
  419. g.Name = "BodyMovement"
  420. g.D = 0
  421. g.CFrame = root.CFrame
  422. g.MaxTorque = Vector3.new(1000000000, 1000000000, 1000000000)
  423. g.P = 10000000000
  424. if time ~= nil then
  425. game:GetService("Debris"):AddItem(g,time)
  426. end
  427. end
  428.  
  429. function unfreeze()
  430. for i,v in pairs(root:GetChildren()) do
  431. if v.Name == "BodyMovement" then
  432. v:Remove()
  433. end
  434. end
  435. end
  436.  
  437. function moveVelocity(direction, speed, time)
  438. local g = Instance.new("BodyGyro", root)
  439. g.D = 0
  440. g.CFrame = root.CFrame
  441. g.MaxTorque = Vector3.new(1000000000, 1000000000, 1000000000)
  442. g.P = 10000000000
  443. local e = Instance.new("BodyVelocity", root)
  444. e.Velocity = dir.unit * speed
  445. e.P = 10000
  446. e.MaxForce = Vector3.new(100000000, 100000000, 100000000)
  447. game:GetService("Debris"):AddItem(e,time)
  448. end
  449.  
  450. local SpikeCount = 0
  451. function createPath()
  452. SpikeCount = SpikeCount + 1
  453. if SpikeCount >= 10 then
  454. SpikeCount = 0
  455. local spike = Instance.new("Part", model)
  456. table.insert(TSTable, spike)
  457. spike.Size = Vector3.new(0,0,0)
  458. spike.Name = "Ring"
  459. spike.Material = "Neon"
  460. spike.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  461. spike.Anchored = true
  462. spike.Transparency = 0.3
  463. spike.CanCollide = false
  464. spike.CFrame = torso.CFrame*CFrame.new(0,0,3)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))
  465. local spikemesh = Instance.new("SpecialMesh", spike)
  466. spikemesh.Name = "SpikeMesh"
  467. spikemesh.Scale = Vector3.new(5,5,5)
  468. spikemesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
  469. end
  470.  
  471. local spike1 = Instance.new("Part", model)
  472. table.insert(TSTable, spike1)
  473. spike1.Size = Vector3.new(0,0,0)
  474. spike1.Material = "Neon"
  475. spike1.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  476. spike1.Anchored = true
  477. spike1.Transparency = 0
  478. spike1.CanCollide = false
  479. spike1.CFrame = torso.CFrame*CFrame.new(0,0,1.5)*CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
  480. local spikemesh1 = Instance.new("CylinderMesh", spike1)
  481. spikemesh1.Name = "SpikeMesh"
  482. spikemesh1.Scale = Vector3.new(6,10,6)
  483. end
  484.  
  485. local function CreateRegion3FromLocAndSize(Position, Size)
  486. local SizeOffset = Size/2
  487. local Point1 = Position - SizeOffset
  488. local Point2 = Position + SizeOffset
  489. return Region3.new(Point1, Point2)
  490. end
  491.  
  492. function dealDamage(targetHumanoid, damage)
  493. if targetHumanoid.Health > 100 then
  494. targetHumanoid.MaxHealth = 100
  495. targetHumanoid.Health = 100
  496. end
  497. targetHumanoid.Health = targetHumanoid.Health - damage
  498. end
  499.  
  500. function makeParticles()
  501. local p = Instance.new("Part", char)
  502. p.CanCollide = false
  503. p.BrickColor = BrickColor.new(Rainbow[math.random(1,#Rainbow)])
  504. p.Material = "Neon"
  505. p.Name = "Particle"
  506. p.Size = Vector3.new(0,0,0)
  507. p.CFrame = wmt.CFrame*CFrame.new(math.random(-1,1), math.random(-1,1), math.random(-1,1))*CFrame.Angles(math.rad(math.random(0,360)), math.rad(math.random(0,360)), math.rad(math.random(0,360)))
  508. game:GetService("Debris"):AddItem(p,3)
  509. table.insert(currentTable, p)
  510. local bbp = Instance.new("BodyPosition", p)
  511. bbp.Name = "forceinward"
  512. bbp.MaxForce = Vector3.new(math.random(1000, 2000), math.random(1000, 2000), math.random(1000, 2000))
  513. bbp.P = math.random(3000, 5000)
  514. if isCharging then
  515. bbp.Position = wmt.Position
  516. bbp.D = 1000
  517. else
  518. bbp.Position = p.Position + Vector3.new(math.random(-1,1), 1, math.random(-1,1))
  519. bbp.D = 2000
  520. end
  521. table.insert(allbps, bbp)
  522. end
  523.  
  524. function OriginalProjectile(loc)
  525. local proj = Instance.new("Part", model)
  526. proj.CanCollide = false
  527. proj.Name = "projectile"
  528. proj.CFrame = wmt.CFrame
  529. proj.Anchored = true
  530. proj.Material = "Neon"
  531. proj.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  532. proj.CFrame = CFrame.new(proj.Position, loc)
  533. proj.Size = Vector3.new(0.3, 0.3, 2)
  534. local s = Instance.new("Sound", wmt)
  535. s.SoundId = fireworkSounds[math.random(1,#fireworkSounds)]
  536. s.EmitterSize = 10
  537. s.Volume = math.random(80,100)/10
  538. s:Play()
  539. game:GetService("Debris"):AddItem(s,5)
  540. local s = Instance.new("Sound", proj)
  541. s.SoundId = "rbxassetid://84903136"
  542. s.EmitterSize = 10
  543. s.Volume = math.random(80,100)/10
  544. s:Play()
  545. game:GetService("Debris"):AddItem(s, 5)
  546. table.insert(projectiles, proj)
  547. end
  548.  
  549. function createHole(location, height)
  550. if (torso.Position - location).magnitude < 2000 then
  551. local hole = Instance.new("Part", model)
  552. hole.BrickColor = BrickColor.new("Really black")
  553. hole.Size = Vector3.new(0,0,0)
  554. hole.Anchored = true
  555. hole.CFrame = CFrame.new(location.X,location.Y,location.Z)*CFrame.new(0,height,0)
  556. hole.Material = "SmoothPlastic"
  557. local cm = Instance.new("CylinderMesh",hole)
  558. cm.Name = "HoleMesh"
  559. cm.Scale = Vector3.new(0,0,0)
  560. table.insert(holeTable, hole)
  561. local s = Instance.new("Sound", hole) --whole opening
  562. s.SoundId = magicSounds[math.random(1,#magicSounds)]
  563. s.EmitterSize = 50
  564. s.Volume = 100
  565. s:Play()
  566. game:GetService("Debris"):AddItem(s,5)
  567. end
  568. end
  569.  
  570. function freeze(who)
  571. for i,v in pairs(who:GetChildren()) do
  572. if v:IsA("Part") and v.Name ~= "HumanoidRootPart" then
  573. v.Anchored = true
  574. end
  575. end
  576. end
  577.  
  578. function unfreeze(who)
  579. for i,v in pairs(who:GetChildren()) do
  580. if v:IsA("Part") and v.Name ~= "HumanoidRootPart" then
  581. v.Anchored = false
  582. end
  583. end
  584. end
  585.  
  586. function castingStart(length)
  587. local s = Instance.new("Sound", wmt) --wavy noise
  588. s.SoundId = "rbxassetid://262327541"
  589. s.EmitterSize = 10
  590. s.Volume = 100
  591. s:Play()
  592. game:GetService("Debris"):AddItem(s,5)
  593. castRing = Instance.new("Part", model)
  594. castRing.Size = Vector3.new(0,0,0)
  595. castRing.Name = "CastingRing"
  596. castRing.Material = "Neon"
  597. castRing.BrickColor = BrickColor.new("Industrial white")
  598. castRing.Anchored = true
  599. castRing.Transparency = 0.5
  600. castRing.CanCollide = false
  601. castRing.CFrame = CFrame.new(Mouse.Hit.p.X,Mouse.Hit.p.Y+0.3,Mouse.Hit.p.Z)*CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
  602. local ringmesh = Instance.new("SpecialMesh", castRing)
  603. ringmesh.Name = "RingMesh"
  604. ringmesh.Scale = Vector3.new(2,2,2)
  605. ringmesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
  606. game:GetService("Debris"):AddItem(castRing, length) --casting time
  607. castCircle = Instance.new("Part", model)
  608. castCircle.Size = Vector3.new(0,0,0)
  609. castCircle.Name = "CastingCircle"
  610. castCircle.Material = "Neon"
  611. castCircle.Shape = "Cylinder"
  612. castCircle.BrickColor = BrickColor.new("Industrial white")
  613. castCircle.Anchored = true
  614. castCircle.Transparency = 0.2
  615. castCircle.CanCollide = false
  616. castCircle.CFrame = CFrame.new(Mouse.Hit.p.X,Mouse.Hit.p.Y+0.3,Mouse.Hit.p.Z)*CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))
  617. local ringmesh = Instance.new("CylinderMesh", castCircle)
  618. ringmesh.Name = "RingMesh"
  619. ringmesh.Scale = Vector3.new(4,0.2,4)
  620. game:GetService("Debris"):AddItem(castCircle, length) --casting time
  621. game:GetService("Debris"):AddItem(s, length) --casting time
  622. end
  623.  
  624. --
  625.  
  626. rainbowNumber = 1
  627. statRegenNumber = 0
  628. holdingw = false
  629. Mana = 100
  630. currentTable = {}
  631. walkingAnimationSpeed = 3.5
  632. allbps = {}
  633. projectiles = {}
  634. holeTable = {}
  635. rainbowMode = false
  636. int = 0
  637. bodyparts = {}
  638. holdingMouse1 = false
  639. local currentAnim = "walk"
  640. local actionWalking = true
  641. local isCharging = false
  642. local slowingDown = 1
  643. local Smooth = 1
  644. local t = tick()
  645. game:GetService("RunService").Stepped:connect(function()
  646. t = t+0.5*Smooth
  647. statRegenNumber = statRegenNumber + 1
  648. if statRegenNumber >= 10 then
  649. if currentAnim == "Dashing" then
  650. if Mana > 0 then
  651. Mana = Mana - 1
  652. else
  653. holdingw = false
  654. end
  655. else
  656. if Mana < MaxMana then
  657. Mana = Mana + 1
  658. end
  659. end
  660. if char.Humanoid.Health < char.Humanoid.MaxHealth then
  661. char.Humanoid.Health = char.Humanoid.Health + 1
  662. end
  663. statRegenNumber = 0
  664. end
  665. HealthText.Text = math.ceil(char.Humanoid.Health)
  666. if char.Humanoid.Health <= 100 then
  667. HealthBar.Size = UDim2.new(0, math.ceil(char.Humanoid.Health)*2, 0, 20)
  668. end
  669. ManaText.Text = Mana
  670. if Mana <= 100 then
  671. ManaBar.Size = UDim2.new(0, Mana*2, 0, 20)
  672. end
  673. if not inAction then
  674. weaponWeld.C0 = weaponWeld.C0:lerp(weaponWeldc0,0.05)
  675. if rootpart.Velocity.y > 1 and Humanoid:GetState() == Enum.HumanoidStateType.Freefall then
  676. currentAnim = "jump"
  677. elseif rootpart.Velocity.y < -1 then
  678. currentAnim = "freefall"
  679. elseif (math.abs(rootpart.Velocity.x) > 2 or math.abs(rootpart.Velocity.z) > 2) and Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall then
  680. currentAnim = "walk"
  681. elseif Vector3.new(rootpart.Velocity.x,0,rootpart.Velocity.y).magnitude < 1 and Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall then
  682. currentAnim = "idle"
  683. end
  684.  
  685. if currentAnim == "idle" then
  686. animationSpeed = 0.1
  687. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.Angles(math.rad(-1), math.rad(-1), -(math.sin(t/7)/20)+0.1), animationSpeed)
  688. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-1), math.rad(0), (math.sin(t/7)/20)-0.1), animationSpeed)
  689. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,math.sin(t/7)/30,0)*CFrame.Angles(math.rad(-2), math.rad(0), math.rad(1)), animationSpeed)
  690. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,math.sin(t/7)/30,0)*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-1), math.rad(0), math.rad(-1)), animationSpeed)
  691. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  692. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,-math.sin(t/7)/30)*CFrame.Angles(math.rad(-1), math.rad(0), math.rad(0)),animationSpeed)
  693. elseif currentAnim == "walk" then
  694. animationSpeed = 0.05
  695. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles((math.sin(t/5)/25)+math.rad(-30), math.rad(-42), math.rad(17)), animationSpeed)
  696. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles((math.sin(t/5)/25)+math.rad(-51), math.rad(42), math.rad(-11)), animationSpeed)
  697. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,math.sin(t/5)/25,0)*CFrame.Angles((-math.sin(t/walkingAnimationSpeed)/1)+math.rad(0), math.rad(0), math.rad(0)), 0.4)
  698. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,math.sin(t/5)/25,0)*CFrame.Angles((math.sin(t/walkingAnimationSpeed)/1)+math.rad(0), math.rad(0), math.rad(0)), 0.4)
  699. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  700. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,-math.sin(t/5)/25)*CFrame.Angles(math.rad(10), math.rad(0), math.rad(0)),0.4)
  701. elseif currentAnim == "jump" then
  702. animationSpeed = 0.2
  703. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-11), math.rad(-2), math.rad(12)), animationSpeed)
  704. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-8), math.rad(2), math.rad(-17)), animationSpeed)
  705. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-11), math.rad(0), math.rad(4)), animationSpeed)
  706. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-16), math.rad(1), math.rad(-4)), animationSpeed)
  707. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(8), math.rad(0), math.rad(0)),animationSpeed)
  708. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  709. elseif currentAnim == "freefall" then
  710. animationSpeed = 0.15
  711. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles(-(math.sin(t/4)/7)+math.rad(-15), math.rad(0), -(math.sin(t/5)/10)+math.rad(10)), animationSpeed)
  712. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles((math.sin(t/4)/7)+math.rad(-12), math.rad(4), (math.sin(t/5)/10)+math.rad(-10)), animationSpeed)
  713. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,0,0)*CFrame.Angles((math.sin(t/4)/7)+math.rad(-8), math.rad(0), (math.sin(t/5)/10)+math.rad(6)), animationSpeed)
  714. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,0,0)*CFrame.Angles(-(math.sin(t/4)/7)+math.rad(0), math.rad(1), (math.sin(t/5)/10)+math.rad(-6)), animationSpeed)
  715. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  716. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  717. end
  718. else --starting abilities
  719. if actionWalking then
  720. if (math.abs(rootpart.Velocity.x) > 2 or math.abs(rootpart.Velocity.z) > 2) and Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall then
  721. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,math.sin(t/5)/25,0)*CFrame.Angles((-math.sin(t/walkingAnimationSpeed)/1)+math.rad(0), math.rad(0), math.rad(0)), 0.4)
  722. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,math.sin(t/5)/25,0)*CFrame.Angles((math.sin(t/walkingAnimationSpeed)/1)+math.rad(0), math.rad(0), math.rad(0)), 0.4)
  723. else
  724. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)), 0.05)
  725. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)), 0.05)
  726. end
  727. end
  728. if currentAnim == "ArmUp" then
  729. animationSpeed = 0.3
  730. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(79), math.rad(-5), math.rad(1)), animationSpeed)
  731. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(62), math.rad(-3), math.rad(-3)), 0.07)
  732. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)),0.07)
  733. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.07)
  734. elseif currentAnim == "Slash1" then
  735. animationSpeed = 0.15
  736. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-150), math.rad(20), math.rad(40)), animationSpeed)
  737. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(62), math.rad(-3), math.rad(-3)), 0.07)
  738. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(10)),0.07)
  739. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),0.07)
  740. makeParticles()
  741. elseif currentAnim == "SlashMini" then
  742. animationSpeed = 0.3
  743. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(-0.3,0,-1)*CFrame.Angles(math.rad(23), math.rad(-20), math.rad(-62)), animationSpeed)
  744. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-49), math.rad(7), math.rad(-1)), animationSpeed)
  745. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  746. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  747. weaponWeld.C0 = weaponWeld.C0:lerp(weaponWeldc0*CFrame.new(0, 0, 0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)), animationSpeed)
  748. makeParticles()
  749. elseif currentAnim == "Slash2" then
  750. animationSpeed = 0.3
  751. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(70), math.rad(3), math.rad(-13)), animationSpeed)
  752. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-49), math.rad(7), math.rad(-1)), animationSpeed)
  753. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  754. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  755. weaponWeld.C0 = weaponWeld.C0:lerp(weaponWeldc0*CFrame.new(0, 0, 0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(-10)), animationSpeed)
  756. makeParticles()
  757. elseif currentAnim == "DashDown" then
  758. animationSpeed = 0.3
  759. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-88), math.rad(-47), math.rad(24)), animationSpeed)
  760. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,-0.5,0)*CFrame.Angles(math.rad(42), math.rad(-5), math.rad(-5)), animationSpeed)
  761. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,1.5,-0.5)*CFrame.Angles(math.rad(24), math.rad(3), math.rad(1)), animationSpeed)
  762. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-40), math.rad(1), math.rad(-3)), animationSpeed)
  763. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-11), math.rad(0), math.rad(0)),animationSpeed)
  764. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,-1.3)*CFrame.Angles(math.rad(30), math.rad(0), math.rad(0)),animationSpeed)
  765. local spike = Instance.new("Part", model)
  766. table.insert(SpinTable, spike)
  767. spike.Size = Vector3.new(0,0,0)
  768. spike.Name = "spinnything"
  769. spike.Material = "Neon"
  770. spike.BrickColor = BrickColor.new(MainColor)
  771. spike.Anchored = true
  772. spike.Transparency = 0.5
  773. spike.CanCollide = false
  774. spike.CFrame = CFrame.new(torso.Position.x,(torso.Position.y - 2.5),torso.Position.z)*CFrame.Angles(math.rad(0), math.rad(math.random(0,180)), math.rad(0))
  775. local spikemesh = Instance.new("BlockMesh", spike)
  776. spikemesh.Name = "SpikeMesh"
  777. spikemesh.Scale = Vector3.new(5,5,5)
  778. local ball = Instance.new("Part", model)
  779. ball.Size = Vector3.new(0,0,0)
  780. ball.Name = "ballthing"
  781. ball.Material = "Neon"
  782. ball.BrickColor = BrickColor.new(MainColor)
  783. ball.Anchored = true
  784. ball.Transparency = 0.5
  785. ball.CanCollide = false
  786. ball.CFrame = CFrame.new(torso.Position.x,(torso.Position.y - 2.5),torso.Position.z)
  787. local spikemesh = Instance.new("SpecialMesh", ball)
  788. spikemesh.Name = "SpikeMesh"
  789. spikemesh.MeshType = "Sphere"
  790. spikemesh.Scale = Vector3.new(5,5,5)
  791. table.insert(SpinTable,ball)
  792. makeParticles()
  793. elseif currentAnim == "Dashing" then
  794. animationSpeed = 0.3
  795. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles((math.sin(t/4)/7)+math.rad(-66), math.rad(-24), (math.sin(t/5)/10)+math.rad(25)), animationSpeed)
  796. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles(-(math.sin(t/4)/7)+math.rad(-64), math.rad(31), -(math.sin(t/5)/10)+math.rad(-25)), animationSpeed)
  797. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,0,0)*CFrame.Angles(-(math.sin(t/4)/7)+math.rad(-49), math.rad(-19), math.rad(20)), animationSpeed)
  798. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,0,0)*CFrame.Angles((math.sin(t/4)/7)+math.rad(-49), math.rad(13), math.rad(-12)), animationSpeed)
  799. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(5), math.rad(0), math.rad(0)),animationSpeed)
  800. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  801. rootpart.CFrame = rootpart.CFrame*CFrame.new(0,0,-2)
  802. createPath()
  803. elseif currentAnim == "DashSlowing" then
  804. animationSpeed = 0.2
  805. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(12), math.rad(0), math.rad(0)), animationSpeed)
  806. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(28), math.rad(0), math.rad(0)), animationSpeed)
  807. rightLegJoint.C0 = rightLegJoint.C0:lerp(rlc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(21), math.rad(0), math.rad(3)), animationSpeed)
  808. leftLegJoint.C0 = leftLegJoint.C0:lerp(llc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(23), math.rad(-1), math.rad(-2)), animationSpeed)
  809. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(-5), math.rad(0), math.rad(0)),animationSpeed)
  810. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  811. rootpart.CFrame = rootpart.CFrame*CFrame.new(0,0,-slowingDown)
  812. slowingDown = slowingDown - 0.05
  813. elseif currentAnim == "Casting" then
  814. animationSpeed = 0.3
  815. rightArmJoint.C0 = rightArmJoint.C0:lerp(rsc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(138), -(math.sin(t/4)/4)+math.rad(0), math.rad(13)), animationSpeed)
  816. leftArmJoint.C0 = leftArmJoint.C0:lerp(lsc0*CFrame.new(0,0,0)*CFrame.Angles((math.sin(t/5)/25)+math.rad(-21), math.rad(10), math.rad(-11)), animationSpeed)
  817. neck.C0 = neck.C0:lerp(neckc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  818. rj.C0 = rj.C0:lerp(rootc0*CFrame.new(0,0,0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)),animationSpeed)
  819. weaponWeld.C0 = weaponWeld.C0:lerp(weaponWeldc0*CFrame.new(0, 0, 0)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0)), animationSpeed)
  820. pcall(function()
  821. castRing.CFrame = CFrame.new(Mouse.Hit.p.X,Mouse.Hit.p.Y+0.3,Mouse.Hit.p.Z)*CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
  822. castRing.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  823. castCircle.CFrame = CFrame.new(Mouse.Hit.p.X,Mouse.Hit.p.Y+0.3,Mouse.Hit.p.Z)*CFrame.Angles(math.rad(0), math.rad(0), math.rad(0))
  824. end)
  825. makeParticles()
  826. end
  827. end
  828. if #TSTable > 0 then
  829. for i,v in pairs(TSTable) do
  830. if v.Transparency <= 1 then
  831. v.Transparency = v.Transparency + 0.02
  832. if v.Name == "Ring" then
  833. pcall(function()
  834. v.SpikeMesh.Scale = v.SpikeMesh.Scale - Vector3.new(0.2,0.2,0)
  835. end)
  836. elseif v.Name == "SlamRing" then
  837. v.Transparency = v.Transparency - 0.01
  838. pcall(function()
  839. v.SpikeMesh.Scale = v.SpikeMesh.Scale + Vector3.new(3,3,3)
  840. end)
  841. elseif v.Name == "GRASS" then
  842. v.Transparency = v.Transparency - 0.016
  843. if v.Transparency > 0.5 then
  844. v.CanCollide = false
  845. end
  846. elseif v.Name == "firework" then
  847. v.Transparency = v.Transparency - 0.01
  848. pcall(function()
  849. v.SpikeMesh.Scale = v.SpikeMesh.Scale - Vector3.new(0.05,0.05,0.05)
  850. end)
  851. else
  852. pcall(function()
  853. v.SpikeMesh.Scale = v.SpikeMesh.Scale - Vector3.new(0.2,0,0.2)
  854. end)
  855. end
  856. else
  857. table.remove(TSTable, i)
  858. v:Remove()
  859. end
  860. end
  861. end
  862. if #currentTable > 0 then
  863. for i,v in pairs(currentTable) do
  864. if isCharging then
  865. v.forceinward.Position = wmt.Position
  866. end
  867. v.Transparency = v.Transparency + 0.05
  868. if v.Transparency >= 1 then
  869. table.remove(currentTable, i)
  870. table.remove(allbps, i)
  871. v:Remove()
  872. end
  873. end
  874. end
  875. if #holeTable > 0 then
  876. for i,hole in pairs(holeTable) do
  877. if hole.HoleMesh.Scale.X < 100 and hole:findFirstChild("BLOCK") == nil then
  878. hole.HoleMesh.Scale = hole.HoleMesh.Scale + Vector3.new(10,0,10)
  879. else
  880. if hole:findFirstChild("BLOCK") == nil then
  881. local block = Instance.new("Part", hole)
  882. block.Name = "BLOCK"
  883. block.Size = Vector3.new(9,0,9)
  884. block.Anchored = true
  885. block.CFrame = hole.CFrame*CFrame.new(0,-0.25,0)
  886. block.Material = "SmoothPlastic"
  887. block.Reflectance = 0.5
  888. block.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  889. local bv = Instance.new("IntValue", block)
  890. bv.Name = "goingUp"
  891. bv.Value = 0
  892. else
  893. hole:findFirstChild("BLOCK").goingUp.Value = hole:findFirstChild("BLOCK").goingUp.Value + 1
  894. if hole:findFirstChild("BLOCK").goingUp.Value <= 6 then
  895. local currentC = hole:findFirstChild("BLOCK").CFrame
  896. hole:findFirstChild("BLOCK").Size = hole:findFirstChild("BLOCK").Size + Vector3.new(0,5,0)
  897. hole:findFirstChild("BLOCK").CFrame = currentC*CFrame.new(0,-2.5,0)
  898. elseif hole:findFirstChild("BLOCK").goingUp.Value >= 20 and hole:findFirstChild("BLOCK").Size.Y > 0.3 then
  899. local currentC = hole:findFirstChild("BLOCK").CFrame
  900. hole:findFirstChild("BLOCK").Size = hole:findFirstChild("BLOCK").Size + Vector3.new(0,-5,0)
  901. hole:findFirstChild("BLOCK").CFrame = currentC*CFrame.new(0,2.5,0)
  902. elseif hole:findFirstChild("BLOCK").goingUp.Value == 7 then
  903. takeDamage((hole.Position - Vector3.new(0,30,0)), 30, 14, false)
  904. local e = Instance.new("Explosion", hole)
  905. e.Position = (hole.Position - Vector3.new(0,30,0))
  906. e.BlastPressure = 100000
  907. e.BlastRadius = 6
  908. e.ExplosionType = "CratersAndDebris"
  909. e.Visible = false
  910. local spike = Instance.new("Part", model)
  911. table.insert(TSTable, spike)
  912. spike.Size = Vector3.new(0,0,0)
  913. spike.Name = "SlamRing"
  914. spike.Material = "Neon"
  915. spike.BrickColor = BrickColor.new("Industrial white")
  916. spike.Anchored = true
  917. spike.Transparency = 0.3
  918. spike.CanCollide = false
  919. spike.CFrame = hole.CFrame*CFrame.new(0,-30,0)*CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
  920. local spikemesh = Instance.new("SpecialMesh", spike)
  921. spikemesh.Name = "SpikeMesh"
  922. spikemesh.Scale = Vector3.new(10,10,10)
  923. spikemesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
  924. for ind = 1,8 do
  925. local pgrass = Instance.new("Part",model)
  926. pgrass.CanCollide = true
  927. pgrass.Name = "GRASS"
  928. pgrass.Anchored = true
  929. if workspace:findFirstChild("Base") ~= nil then
  930. pgrass.Material = workspace.Base.Material
  931. pgrass.BrickColor = workspace.Base.BrickColor
  932. else
  933. pgrass.Material = "Grass"
  934. pgrass.BrickColor = BrickColor.new("Bright green")
  935. end
  936. pgrass.Size = Vector3.new(math.random(8,10),math.random(1,2),math.random(8,10))
  937. pgrass.CFrame = hole.CFrame*CFrame.new(0,-30,0)*CFrame.Angles(math.rad(math.random(-40,40)),0,math.rad(math.random(-40,40)))
  938. pgrass.CFrame = CFrame.new(hole.CFrame.X, hole.CFrame.Y-30, hole.CFrame.Z) --Start at the center of the circle
  939. * CFrame.Angles(0, math.rad(ind*(360/8)), math.rad(0)) --Rotate the brick
  940. * CFrame.new(0, 0, 6) --Move it out by 10 units
  941. * CFrame.Angles(math.rad(math.random(-35,25)),math.rad(math.random(-10,10)),math.rad(math.random(-10,10)))
  942. table.insert(TSTable, pgrass)
  943. end
  944. local s = Instance.new("Sound", pgrass)
  945. s.SoundId = "rbxassetid://301184111"
  946. s.EmitterSize = 10
  947. s.Volume = 0.3
  948. s:Play()
  949. game:GetService("Debris"):AddItem(s, 5)
  950. elseif hole:findFirstChild("BLOCK").goingUp.Value >= 30 then
  951. hole:findFirstChild("BLOCK").Transparency = 1
  952. hole.HoleMesh.Scale = hole.HoleMesh.Scale - Vector3.new(10,0,10)
  953. if hole.HoleMesh.Scale.X < 0 then
  954. table.remove(holeTable, i)
  955. hole:Remove()
  956. end
  957. end
  958. end
  959. end
  960. end
  961. end
  962. if #SpinTable > 0 then
  963. for i,v in pairs(SpinTable) do
  964. if v.Transparency <= 1 then
  965. if v.Name == "spinnything" then
  966. v.Transparency = v.Transparency + 0.005
  967. v.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  968. pcall(function()
  969. v.SpikeMesh.Scale = v.SpikeMesh.Scale + Vector3.new(1,0,1)
  970. end)
  971. elseif v.Name == "firework" then
  972. v.Transparency = v.Transparency + 0.01
  973. v.BrickColor = BrickColor.new(Rainbow[math.random(1,#Rainbow)])
  974. local sizeup = 3
  975. pcall(function()
  976. v.SpikeMesh.Scale = v.SpikeMesh.Scale + Vector3.new(sizeup,sizeup,sizeup)
  977. end)
  978. elseif v.Name == "firework1" then
  979. v.Transparency = v.Transparency + math.random(7,10)/1000
  980. v.BrickColor = BrickColor.new(Rainbow[math.random(1,#Rainbow)])
  981. local sizeup = math.random(2,5)/10
  982. pcall(function()
  983. v.SpikeMesh.Scale = v.SpikeMesh.Scale + Vector3.new(sizeup,sizeup,sizeup)
  984. end)
  985. elseif v.Name == "teleball" then
  986. v.Transparency = v.Transparency - 0.1
  987. v.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  988. local sizeup = 4
  989. pcall(function()
  990. v.SpikeMesh.Scale = v.SpikeMesh.Scale + Vector3.new(sizeup,sizeup,sizeup)
  991. end)
  992. elseif v.Name == "teleballsmall" then
  993. v.Transparency = v.Transparency + 0.02
  994. v.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  995. local sizeup = -1
  996. pcall(function()
  997. v.SpikeMesh.Scale = v.SpikeMesh.Scale + Vector3.new(sizeup,sizeup,sizeup)
  998. end)
  999. elseif v.Name == "transRainbowPart" then
  1000. v.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  1001. v.Transparency = v.Transparency + 0.05
  1002. else
  1003. v.Transparency = v.Transparency + 0.005
  1004. v.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  1005. pcall(function()
  1006. v.SpikeMesh.Scale = v.SpikeMesh.Scale + Vector3.new(1,1,1)
  1007. end)
  1008. end
  1009. else
  1010. v:Remove()
  1011. table.remove(SpinTable, i)
  1012. end
  1013. end
  1014. end
  1015. if #projectiles > 0 then
  1016. for i,v in pairs(projectiles) do
  1017. if (v.Position - rootpart.Position).magnitude > 300 then
  1018. v:Remove()
  1019. table.remove(projectiles, i)
  1020. local ball1 = Instance.new("Part", model)
  1021. ball1.Size = Vector3.new(0,0,0)
  1022. ball1.Name = "firework"
  1023. ball1.Material = "Neon"
  1024. ball1.BrickColor = BrickColor.new(MainColor)
  1025. ball1.Anchored = true
  1026. ball1.Transparency = 0
  1027. ball1.CanCollide = false
  1028. ball1.CFrame = CFrame.new(v.Position.x,v.Position.y,v.Position.z)
  1029. local spikemesh = Instance.new("SpecialMesh", ball1)
  1030. spikemesh.Name = "SpikeMesh"
  1031. spikemesh.MeshType = "Sphere"
  1032. spikemesh.Scale = Vector3.new(5,5,5)
  1033. table.insert(SpinTable,ball1)
  1034. local s = Instance.new("Sound", ball1) --Crackle
  1035. s.SoundId = "rbxassetid://435195821"
  1036. s.EmitterSize = 100
  1037. s.Volume = 0.6
  1038. s:Play()
  1039. game:GetService("Debris"):AddItem(s, 2)
  1040. local s = Instance.new("Sound", ball1) --boom
  1041. s.SoundId = "rbxassetid://514867425"
  1042. s.EmitterSize = 100
  1043. s.Volume = 100
  1044. s:Play()
  1045. game:GetService("Debris"):AddItem(s, 2)
  1046. game:GetService("RunService").Stepped:wait()
  1047. for i = 1,12 do --THIS IS A GOOD POINT
  1048. local p = Instance.new("Part",ball1)
  1049. p.Name = "firework"
  1050. p.Size = Vector3.new(0,0,0)
  1051. p.Transparency = 0
  1052. p.CanCollide = true
  1053. p.CFrame = ball1.CFrame*CFrame.new(math.random(-4,4),i,math.random(-4,4))
  1054. p.Material = "Neon"
  1055. p.BrickColor = BrickColor.new(Rainbow[i])
  1056. local f = Instance.new("Fire",p)
  1057. f.Color = BrickColor.new(Rainbow[i]).Color
  1058. f.SecondaryColor = Color3.new(1,1,1)
  1059. local spikemesh = Instance.new("BlockMesh", p)
  1060. spikemesh.Name = "SpikeMesh"
  1061. spikemesh.Scale = Vector3.new(20,20,20)
  1062. table.insert(TSTable, p)
  1063. end
  1064. wait(0.1)
  1065. local e = Instance.new("Explosion", ball1)
  1066. e.Position = ball1.Position
  1067. e.BlastPressure = 100000
  1068. e.BlastRadius = 20
  1069. e.ExplosionType = "CratersAndDebris"
  1070. else
  1071. v.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  1072. local somethingWasHit = false
  1073. local Region = CreateRegion3FromLocAndSize(v.Position, Vector3.new(1,1,1))
  1074. for _,Part in pairs(workspace:FindPartsInRegion3WithIgnoreList(Region,{char},math.huge)) do
  1075. if not somethingWasHit and Part.Name ~= "firework" and Part.Name ~= "firework1" and Part.Name ~= "projectile" and Part.Name ~= "Particle" then
  1076. somethingWasHit = true
  1077. v:Remove()
  1078. table.remove(projectiles, i)
  1079. takeDamage(v.Position, math.random(10,20), 13, false)
  1080. for i = 1,6 do
  1081. local ball = Instance.new("Part", model)
  1082. ball.Size = Vector3.new(0,0,0)
  1083. ball.Name = "firework1"
  1084. ball.Material = "Neon"
  1085. ball.BrickColor = BrickColor.new(MainColor)
  1086. ball.Anchored = true
  1087. ball.Transparency = 0.5
  1088. ball.CanCollide = false
  1089. if i == 1 then
  1090. ball.CFrame = CFrame.new(v.Position.x,v.Position.y,v.Position.z)
  1091. ball.Transparency = 0
  1092. else
  1093. ball.CFrame = CFrame.new(v.Position.x+math.random(-3,3),(v.Position.y+math.random(-3,3)),v.Position.z+math.random(-3,3))
  1094. end
  1095. local spikemesh = Instance.new("SpecialMesh", ball)
  1096. spikemesh.Name = "SpikeMesh"
  1097. spikemesh.MeshType = "Sphere"
  1098. spikemesh.Scale = Vector3.new(1,1,1)
  1099. table.insert(SpinTable,ball)
  1100. if i == 1 then
  1101. local s = Instance.new("Sound", ball)
  1102. s.SoundId = "rbxassetid://435195821"
  1103. s.EmitterSize = 20
  1104. s.Volume = 0.5
  1105. s:Play()
  1106. game:GetService("Debris"):AddItem(s, 5)
  1107. local s = Instance.new("Sound", ball) --boom
  1108. s.SoundId = "rbxassetid://540926687"
  1109. s.EmitterSize = 50
  1110. s.Volume = 1
  1111. s:Play()
  1112. game:GetService("Debris"):AddItem(s, 3)
  1113. end
  1114. end
  1115. end
  1116. end
  1117. end
  1118. pcall(function()
  1119. v.CFrame = v.CFrame*CFrame.new(0,0,-3)
  1120. end)
  1121. end
  1122. end
  1123. if rainbowMode then
  1124. Mana = 100
  1125. ManaBar.BackgroundColor3 = BrickColor.new(Rainbow[rainbowNumber]).Color
  1126. HealthBar.BackgroundColor3 = BrickColor.new(Rainbow[rainbowNumber]).Color
  1127. Info.TextColor = BrickColor.new(Rainbow[rainbowNumber])
  1128. Q.TextColor = BrickColor.new(Rainbow[rainbowNumber])
  1129. E.TextColor = BrickColor.new(Rainbow[rainbowNumber])
  1130. for i,v in pairs(char:GetChildren()) do
  1131. if v:isA("Part") then
  1132. v.Transparency = 1
  1133. local cp = v:Clone()
  1134. cp.CanCollide = false
  1135. cp.Anchored = true
  1136. cp.Material = "SmoothPlastic"
  1137. cp.Transparency = 0
  1138. cp.BrickColor = BrickColor.new(Rainbow[rainbowNumber])
  1139. cp.CFrame = v.CFrame --*CFrame.new(0,0,0)*CFrame.Angles(math.rad(math.random(-20,20)),math.rad(math.random(-20,20)),math.rad(math.random(-20,20)))
  1140. for _,extra in pairs(cp:GetChildren()) do
  1141. if not extra:isA("SpecialMesh") then
  1142. extra:Remove()
  1143. end
  1144. end
  1145. if v.Name ~= "Head" then
  1146. local mesh = Instance.new("BlockMesh")
  1147. mesh.Parent = cp
  1148. mesh.Scale = Vector3.new(1,1,1)
  1149. end
  1150. cp.Parent = model
  1151. table.insert(bodyparts, cp)
  1152. end
  1153. end
  1154. end
  1155. if #bodyparts > 0 then
  1156. for i,v in pairs(bodyparts) do
  1157. if v.Transparency < 1 then
  1158. v.Transparency = v.Transparency + 0.05
  1159. --v.Mesh.Scale = v.Mesh.Scale-Vector3.new(0.05,0.05,0.05)
  1160. else
  1161. table.remove(bodyparts, i)
  1162. v:Remove()
  1163. end
  1164. end
  1165. end
  1166. if rainbowNumber >= #Rainbow then
  1167. rainbowNumber = 1
  1168. else
  1169. rainbowNumber = rainbowNumber + 1
  1170. end
  1171. end)
  1172.  
  1173. local wtap = false
  1174. Mouse.KeyDown:connect(function(key)
  1175. if key:lower() == "q" then
  1176. spellMover = spells[#spells]
  1177. table.remove(spells, #spells)
  1178. table.insert(spells, 1, spellMover)
  1179. loadSpellGui()
  1180. elseif key:lower() == "e" then
  1181. spellMover = spells[1]
  1182. table.remove(spells, 1)
  1183. table.insert(spells, #spells+1, spellMover)
  1184. loadSpellGui()
  1185. end
  1186. if not inAction then
  1187. if key:lower() == "w" then
  1188. if wtap then
  1189. if Mana > 0 then
  1190. holdingw = true
  1191. inAction = true
  1192. isCharging = true
  1193. char.Humanoid.WalkSpeed = 0
  1194. char.Humanoid.JumpPower = 0
  1195. actionWalking = false
  1196. currentAnim = "DashDown"
  1197. local dashs = Instance.new("Sound", torso) --whole opening
  1198. dashs.SoundId = "rbxassetid://551066808" --ADD DASHING SOUND
  1199. dashs.EmitterSize = 12
  1200. dashs.Volume = 100
  1201. dashs.Looped = true
  1202. dashs:Play()
  1203. wait(0.2)
  1204. isCharging = false
  1205. takeDamage(rootpart.Position, math.random(20,30), 10, false)
  1206. char.Humanoid.WalkSpeed = 1
  1207. currentAnim = "Dashing"
  1208. if holdingw then
  1209. repeat wait() until not holdingw
  1210. else
  1211. wait(0.3)
  1212. end
  1213. dashs:Remove()
  1214. currentAnim = "DashSlowing"
  1215. slowingDown = 1
  1216. wait(0.5)
  1217. char.Humanoid.JumpPower = jumpPower
  1218. wtap = false
  1219. actionWalking = true
  1220. inAction = false
  1221. char.Humanoid.WalkSpeed = CharacterSpeed
  1222. end
  1223. else
  1224. wtap = true
  1225. wait(0.2)
  1226. wtap = false
  1227. end
  1228. end
  1229. end
  1230. end)
  1231. Mouse.KeyUp:connect(function(key)
  1232. if key:lower() == "w" then
  1233. holdingw = false
  1234. end
  1235. end)
  1236. Mouse.Button1Down:connect(function()
  1237. holdingMouse1 = true
  1238. if not inAction then
  1239. if Mana >= currentSpell.ManaCost then
  1240. Mana = Mana - currentSpell.ManaCost
  1241. if currentSpell.Name == "Firework" then
  1242. inAction = true
  1243. currentAnim = "ArmUp"
  1244. wait(0.05)
  1245. currentAnim = "Slash1"
  1246. isCharging = true
  1247. wait(0.3)
  1248. currentAnim = "SlashMini"
  1249. wait(0.1)
  1250. currentAnim = "Slash2"
  1251. wait(0.08)
  1252. if holdingMouse1 then
  1253. repeat if Mana >= currentSpell.ManaCost then Mana = (Mana - currentSpell.ManaCost) else holdingMouse1 = false end OriginalProjectile(Mouse.Hit.p) wait(0.1) currentAnim = "SlashMini" wait(0.2) currentAnim = "Slash2" until not holdingMouse1
  1254. else
  1255. OriginalProjectile(Mouse.Hit.p)
  1256. end
  1257. isCharging = false
  1258. inAction = false
  1259. elseif currentSpell.Name == "Void Crush" then
  1260. inAction = true
  1261. currentAnim = "Casting"
  1262. char.Humanoid.WalkSpeed = CharacterSpeed/1.5
  1263. walkingAnimationSpeed = walkingAnimationSpeed*1.5
  1264. castingStart(1)
  1265. wait(1)
  1266. currentAnim = "SlashMini"
  1267. wait(0.1)
  1268. currentAnim = "Slash2"
  1269. wait(0.08)
  1270. createHole(Mouse.Hit.p, 30)
  1271. char.Humanoid.WalkSpeed = CharacterSpeed
  1272. walkingAnimationSpeed = walkingAnimationSpeed/1.5
  1273. isCharging = false
  1274. inAction = false
  1275. elseif currentSpell.Name == "Teleport" then
  1276. inAction = true
  1277. currentAnim = "Casting"
  1278. char.Humanoid.WalkSpeed = CharacterSpeed/1.5
  1279. walkingAnimationSpeed = walkingAnimationSpeed*1.5
  1280. castingStart(0.7)
  1281. wait(0.5)
  1282. if (torso.Position - Mouse.Hit.p).magnitude <= 3000 then
  1283. local tball1 = Instance.new("Part", model)
  1284. tball1.Size = Vector3.new(0,0,0)
  1285. tball1.Name = "teleball"
  1286. tball1.Material = "Neon"
  1287. tball1.BrickColor = BrickColor.new(MainColor)
  1288. tball1.Anchored = true
  1289. tball1.Transparency = 0.95
  1290. tball1.CanCollide = false
  1291. tball1.CFrame = CFrame.new(Mouse.Hit.p.X, Mouse.Hit.p.Y+3, Mouse.Hit.p.Z)
  1292. local spikemesh = Instance.new("SpecialMesh", tball1)
  1293. spikemesh.Name = "SpikeMesh"
  1294. spikemesh.MeshType = "Sphere"
  1295. spikemesh.Scale = Vector3.new(1,1,1)
  1296. table.insert(SpinTable,tball1)
  1297. local tball = Instance.new("Part", model)
  1298. tball.Size = Vector3.new(0,0,0)
  1299. tball.Name = "teleball"
  1300. tball.Material = "Neon"
  1301. tball.BrickColor = BrickColor.new(MainColor)
  1302. tball.Anchored = false
  1303. tball.Transparency = 0.95
  1304. tball.CanCollide = false
  1305. tball.CFrame = torso.CFrame
  1306. local spikemesh = Instance.new("SpecialMesh", tball)
  1307. spikemesh.Name = "SpikeMesh"
  1308. spikemesh.MeshType = "Sphere"
  1309. spikemesh.Scale = Vector3.new(1,1,1)
  1310. table.insert(SpinTable,tball)
  1311. local TWeld = Instance.new("Weld",tball)
  1312. TWeld.Part0 = tball
  1313. TWeld.Part1 = torso
  1314. TWeld.C0 = CFrame.new(0,0,0)
  1315. wait(0.1)
  1316. local s = Instance.new("Sound", torso)
  1317. s.SoundId = "rbxassetid://289556450"
  1318. s.EmitterSize = 5
  1319. s.Volume = 1
  1320. s:Play()
  1321. game:GetService("Debris"):AddItem(s, 3)
  1322. local laser2 = Instance.new("Part", model)
  1323. laser2.Color = BrickColor.White().Color
  1324. laser2.Transparency = 0.1
  1325. laser2.Name = "transRainbowPart"
  1326. laser2.Material = "Neon"
  1327. laser2.Anchored = true
  1328. laser2.CanCollide = false
  1329. laser2.CFrame = CFrame.new(((tball.Position.X + tball1.Position.X) / 2), ((tball.Position.Y + tball1.Position.Y) / 2), ((tball.Position.Z + tball1.Position.Z) / 2))
  1330. laser2.CFrame = CFrame.new(laser2.Position, tball1.Position)
  1331. laser2.Size = Vector3.new(0, 0, (tball.Position - tball1.Position).magnitude)
  1332. local bm = Instance.new("BlockMesh", laser2)
  1333. bm.Scale = Vector3.new(2, 2, 1)
  1334. table.insert(SpinTable,laser2)
  1335. wait(0.1)
  1336. TWeld:Remove()
  1337. tball.CFrame = torso.CFrame
  1338. tball.Anchored = true
  1339. tball.Name = "teleballsmall"
  1340. rootpart.CFrame = tball1.CFrame
  1341. tball1.Name = "teleballsmall"
  1342. end
  1343. char.Humanoid.WalkSpeed = CharacterSpeed
  1344. walkingAnimationSpeed = walkingAnimationSpeed/1.5
  1345. isCharging = false
  1346. inAction = false
  1347. elseif currentSpell.Name == "True Form" then
  1348. inAction = true
  1349. currentAnim = "Casting"
  1350. char.Humanoid.WalkSpeed = CharacterSpeed/1.5
  1351. walkingAnimationSpeed = walkingAnimationSpeed*1.5
  1352. wait(3)
  1353. if rainbowMode then
  1354. rainbowMode = false
  1355. pcall(function()
  1356. rainbows:Remove()
  1357. end)
  1358. for i,v in pairs(char:GetChildren()) do
  1359. if v:isA("Part") then
  1360. if v.Name ~= "HumanoidRootPart" then
  1361. v.Transparency = 0
  1362. end
  1363. elseif v:isA("Accessory") then
  1364. v.Handle.Transparency = 0
  1365. end
  1366. end
  1367. CharacterSpeed = CharacterSpeed/2
  1368. walkingAnimationSpeed = 3.5*1.5
  1369. model.face.Parent = char.Head
  1370. ManaBar.BackgroundColor3 = Color3.new(0, 0.317647, 1)
  1371. HealthBar.BackgroundColor3 = Color3.new(0, 0.8, 0.02)
  1372. Info.TextColor = BrickColor.new(MainColor)
  1373. Q.TextColor = BrickColor.new(MainColor)
  1374. E.TextColor = BrickColor.new(MainColor)
  1375. else
  1376. for i,v in pairs(char:GetChildren()) do
  1377. if v:isA("Part") then
  1378. if v.Name ~= "HumanoidRootPart" then
  1379. v.Transparency = 1
  1380. end
  1381. elseif v:isA("Accessory") then
  1382. v.Handle.Transparency = 1
  1383. end
  1384. end
  1385. CharacterSpeed = CharacterSpeed*2
  1386. walkingAnimationSpeed = 6*1.5
  1387. char.Humanoid.WalkSpeed = CharacterSpeed
  1388. char.Head.face.Parent = model
  1389. rainbowMode = true
  1390. rainbows = Instance.new("Sound", torso) --whole opening
  1391. rainbows.SoundId = "rbxassetid://1131624146"
  1392. rainbows.EmitterSize = 6
  1393. rainbows.Volume = 100
  1394. rainbows:Play()
  1395. rainbows.Looped = true
  1396. end
  1397. char.Humanoid.WalkSpeed = CharacterSpeed
  1398. walkingAnimationSpeed = walkingAnimationSpeed/1.5
  1399. isCharging = false
  1400. inAction = false
  1401. end
  1402. else
  1403. print("Not enough mana")
  1404. end
  1405. end
  1406. end)
  1407. Mouse.Button1Up:connect(function()
  1408. holdingMouse1 = false
  1409. end)
Add Comment
Please, Sign In to add comment