View difference between Paste ID: x0MQcnAX and URmKMmS6
SHOW: | | - or go back to the newest paste.
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://179794977"
1391+
					rainbows.SoundId = "rbxassetid://692875664"
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)