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