View difference between Paste ID: 1YuKfY4v and CLW4wT6Y
SHOW: | | - or go back to the newest paste.
1
--//====================================================\\--
2
--||               ONLY 90s KIDS REMEMBER
3
--||              ABYSS EYE BY SHACKLUSTER
4
--\\====================================================//--
5
-- This script has been converted to FE by iPxter
6
7
8-
Player = game:GetService("Players").LocalPlayer
8+
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
9
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
10
do
11
	print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
12
	script.Parent = Player.Character
13
14-
Mouse = Player:GetMouse()
14+
	--RemoteEvent for communicating
15
	local Event = Instance.new("RemoteEvent")
16
	Event.Name = "UserInput_Event"
17
18
	--Fake event to make stuff like Mouse.KeyDown work
19
	local function fakeEvent()
20
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
21
		t.connect = t.Connect
22
		return t
23
	end
24
25
	--Creating fake input objects with fake variables
26
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
27
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
28
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
29
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
30
	end}
31
	--Merged 2 functions into one by checking amount of arguments
32
	CAS.UnbindAction = CAS.BindAction
33
34
	--This function will trigger the events that have been :Connect()'ed
35
	local function te(self,ev,...)
36
		local t = m[ev]
37
		if t and t._fakeEvent and t.Function then
38
			t.Function(...)
39
		end
40
	end
41
	m.TrigEvent = te
42
	UIS.TrigEvent = te
43
44
	Event.OnServerEvent:Connect(function(plr,io)
45
	    if plr~=Player then return end
46
		if io.isMouse then
47
			m.Target = io.Target
48
			m.Hit = io.Hit
49
		else
50
			local b = io.UserInputState == Enum.UserInputState.Begin
51
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
52
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
53
			end
54
			for _,t in pairs(CAS.Actions) do
55
				for _,k in pairs(t.Keys) do
56
					if k==io.KeyCode then
57
						t.Function(t.Name,io.UserInputState,io)
58
					end
59
				end
60
			end
61
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
62
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
63
	    end
64
	end)
65
	Event.Parent = NLS([==[
66
	local Player = game:GetService("Players").LocalPlayer
67
	local Event = script:WaitForChild("UserInput_Event")
68
69
	local UIS = game:GetService("UserInputService")
70
	local input = function(io,a)
71
		if a then return end
72
		--Since InputObject is a client-side instance, we create and pass table instead
73
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
74
	end
75
	UIS.InputBegan:Connect(input)
76
	UIS.InputEnded:Connect(input)
77
78
	local Mouse = Player:GetMouse()
79
	local h,t
80
	--Give the server mouse data 30 times every second, but only if the values changed
81
	--If player is not moving their mouse, client won't fire events
82
	while wait(1/30) do
83
		if h~=Mouse.Hit or t~=Mouse.Target then
84
			h,t=Mouse.Hit,Mouse.Target
85
			Event:FireServer({isMouse=true,Target=t,Hit=h})
86
		end
87
	end]==],Player.Character)
88
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
89
end
90
91
92
wait(0.2)
93
94
Player = owner
95
PlayerGui = Player.PlayerGui
96
Cam = workspace.CurrentCamera
97
Backpack = Player.Backpack
98
Character = Player.Character
99
Humanoid = Character.Humanoid
100
RootPart = Character["HumanoidRootPart"]
101
Torso = Character["Torso"]
102
Head = Character["Head"]
103
RightArm = Character["Right Arm"]
104
LeftArm = Character["Left Arm"]
105
RightLeg = Character["Right Leg"]
106
LeftLeg = Character["Left Leg"]
107
RootJoint = RootPart["RootJoint"]
108
Neck = Torso["Neck"]
109
RightShoulder = Torso["Right Shoulder"]
110
LeftShoulder = Torso["Left Shoulder"]
111
RightHip = Torso["Right Hip"]
112
LeftHip = Torso["Left Hip"]
113
114
IT = Instance.new
115
CF = CFrame.new
116
VT = Vector3.new
117
RAD = math.rad
118
C3 = Color3.new
119
UD2 = UDim2.new
120
BRICKC = BrickColor.new
121
ANGLES = CFrame.Angles
122
EULER = CFrame.fromEulerAnglesXYZ
123
COS = math.cos
124
ACOS = math.acos
125
SIN = math.sin
126
ASIN = math.asin
127
ABS = math.abs
128
MRANDOM = math.random
129
FLOOR = math.floor
130
131
--//=================================\\
132
--|| 	      USEFUL VALUES
133
--\\=================================//
134
135
Animation_Speed = 3
136
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
137
local Speed = 25
138
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
139
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
140
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
141
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
142
local DAMAGEMULTIPLIER = 1
143
local ANIM = "Idle"
144
local ATTACK = false
145
local EQUIPPED = false
146
local HOLD = false
147
local COMBO = 1
148
local Rooted = false
149
local SINE = 0
150
local KEYHOLD = false
151
local CHANGE = 2 / Animation_Speed
152
local WALKINGANIM = false
153
local VALUE1 = false
154
local VALUE2 = false
155
local ROBLOXIDLEANIMATION = IT("Animation")
156
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
157
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
158
--ROBLOXIDLEANIMATION.Parent = Humanoid
159
local WEAPONGUI = IT("ScreenGui", PlayerGui)
160
WEAPONGUI.Name = "Weapon GUI"
161
local Effects = IT("Folder", Character)
162
Effects.Name = "Effects"
163
local ANIMATOR = Humanoid.Animator
164
local ANIMATE = Character.Animate
165
local UNANCHOR = true
166
local FADERS = true
167
168
--//=================================\\
169
--\\=================================//
170
171
172
--//=================================\\
173
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
174
--\\=================================//
175
176
ArtificialHB = Instance.new("BindableEvent", script)
177
ArtificialHB.Name = "ArtificialHB"
178
179
script:WaitForChild("ArtificialHB")
180
181
frame = Frame_Speed
182
tf = 0
183
allowframeloss = false
184
tossremainder = false
185
lastframe = tick()
186
script.ArtificialHB:Fire()
187
188
game:GetService("RunService").Heartbeat:connect(function(s, p)
189
	tf = tf + s
190
	if tf >= frame then
191
		if allowframeloss then
192
			ArtificialHB:Fire()
193
			lastframe = tick()
194
		else
195
			for i = 1, math.floor(tf / frame) do
196
				ArtificialHB:Fire()
197
			end
198
			lastframe = tick()
199
		end
200
		if tossremainder then
201
			tf = 0
202
		else
203
			tf = tf - frame * math.floor(tf / frame)
204
		end
205
	end
206
end)
207
208
--//=================================\\
209
--\\=================================//
210
211
--//=================================\\
212
--|| 	      SOME FUNCTIONS
213
--\\=================================//
214
215
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
216
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
217
end
218
219
function PositiveAngle(NUMBER)
220
	if NUMBER >= 0 then
221
		NUMBER = 0
222
	end
223
	return NUMBER
224
end
225
226
function NegativeAngle(NUMBER)
227
	if NUMBER <= 0 then
228
		NUMBER = 0
229
	end
230
	return NUMBER
231
end
232
233
function Swait(NUMBER)
234
	if NUMBER == 0 or NUMBER == nil then
235
		ArtificialHB.Event:wait()
236
	else
237
		for i = 1, NUMBER do
238
			ArtificialHB.Event:wait()
239
		end
240
	end
241
end
242
243
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
244
	local NEWMESH = IT(MESH)
245
	if MESH == "SpecialMesh" then
246
		NEWMESH.MeshType = MESHTYPE
247
		if MESHID ~= "nil" and MESHID ~= "" then
248
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
249
		end
250
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
251
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
252
		end
253
	end
254
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
255
	NEWMESH.Scale = SCALE
256
	NEWMESH.Parent = PARENT
257
	return NEWMESH
258
end
259
260
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
261
	local NEWPART = IT("Part")
262
	NEWPART.formFactor = FORMFACTOR
263
	NEWPART.Reflectance = REFLECTANCE
264
	NEWPART.Transparency = TRANSPARENCY
265
	NEWPART.CanCollide = false
266
	NEWPART.Locked = true
267
	NEWPART.Anchored = true
268
	if ANCHOR == false then
269
		NEWPART.Anchored = false
270
	end
271
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
272
	NEWPART.Name = NAME
273
	NEWPART.Size = SIZE
274
	NEWPART.Position = Torso.Position
275
	NEWPART.Material = MATERIAL
276
	NEWPART:BreakJoints()
277
	NEWPART.Parent = PARENT
278
	return NEWPART
279
end
280
281
	local function weldBetween(a, b)
282
	    local weldd = Instance.new("ManualWeld")
283
	    weldd.Part0 = a
284
	    weldd.Part1 = b
285
	    weldd.C0 = CFrame.new()
286
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
287
	    weldd.Parent = a
288
	    return weldd
289
	end
290
291
292
function QuaternionFromCFrame(cf)
293
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
294
	local trace = m00 + m11 + m22
295
	if trace > 0 then 
296
		local s = math.sqrt(1 + trace)
297
		local recip = 0.5 / s
298
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
299
	else
300
		local i = 0
301
		if m11 > m00 then
302
			i = 1
303
		end
304
		if m22 > (i == 0 and m00 or m11) then
305
			i = 2
306
		end
307
		if i == 0 then
308
			local s = math.sqrt(m00 - m11 - m22 + 1)
309
			local recip = 0.5 / s
310
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
311
		elseif i == 1 then
312
			local s = math.sqrt(m11 - m22 - m00 + 1)
313
			local recip = 0.5 / s
314
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
315
		elseif i == 2 then
316
			local s = math.sqrt(m22 - m00 - m11 + 1)
317
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
318
		end
319
	end
320
end
321
 
322
function QuaternionToCFrame(px, py, pz, x, y, z, w)
323
	local xs, ys, zs = x + x, y + y, z + z
324
	local wx, wy, wz = w * xs, w * ys, w * zs
325
	local xx = x * xs
326
	local xy = x * ys
327
	local xz = x * zs
328
	local yy = y * ys
329
	local yz = y * zs
330
	local zz = z * zs
331
	return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
332
end
333
 
334
function QuaternionSlerp(a, b, t)
335
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
336
	local startInterp, finishInterp;
337
	if cosTheta >= 0.0001 then
338
		if (1 - cosTheta) > 0.0001 then
339
			local theta = ACOS(cosTheta)
340
			local invSinTheta = 1 / SIN(theta)
341
			startInterp = SIN((1 - t) * theta) * invSinTheta
342
			finishInterp = SIN(t * theta) * invSinTheta
343
		else
344
			startInterp = 1 - t
345
			finishInterp = t
346
		end
347
	else
348
		if (1 + cosTheta) > 0.0001 then
349
			local theta = ACOS(-cosTheta)
350
			local invSinTheta = 1 / SIN(theta)
351
			startInterp = SIN((t - 1) * theta) * invSinTheta
352
			finishInterp = SIN(t * theta) * invSinTheta
353
		else
354
			startInterp = t - 1
355
			finishInterp = t
356
		end
357
	end
358
	return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
359
end
360
361
function Clerp(a, b, t)
362
	local qa = {QuaternionFromCFrame(a)}
363
	local qb = {QuaternionFromCFrame(b)}
364
	local ax, ay, az = a.x, a.y, a.z
365
	local bx, by, bz = b.x, b.y, b.z
366
	local _t = 1 - t
367
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
368
end
369
370
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
371
	local frame = IT("Frame")
372
	frame.BackgroundTransparency = TRANSPARENCY
373
	frame.BorderSizePixel = BORDERSIZEPIXEL
374
	frame.Position = POSITION
375
	frame.Size = SIZE
376
	frame.BackgroundColor3 = COLOR
377
	frame.BorderColor3 = BORDERCOLOR
378
	frame.Name = NAME
379
	frame.Parent = PARENT
380
	return frame
381
end
382
383
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
384
	local label = IT("TextLabel")
385
	label.BackgroundTransparency = 1
386
	label.Size = UD2(1, 0, 1, 0)
387
	label.Position = UD2(0, 0, 0, 0)
388
	label.TextColor3 = TEXTCOLOR
389
	label.TextStrokeTransparency = STROKETRANSPARENCY
390
	label.TextTransparency = TRANSPARENCY
391
	label.FontSize = TEXTFONTSIZE
392
	label.Font = TEXTFONT
393
	label.BorderSizePixel = BORDERSIZEPIXEL
394
	label.TextScaled = false
395
	label.Text = TEXT
396
	label.Name = NAME
397
	label.Parent = PARENT
398
	return label
399
end
400
401
function NoOutlines(PART)
402
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
403
end
404
405
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
406
	local NEWWELD = IT(TYPE)
407
	NEWWELD.Part0 = PART0
408
	NEWWELD.Part1 = PART1
409
	NEWWELD.C0 = C0
410
	NEWWELD.C1 = C1
411
	NEWWELD.Parent = PARENT
412
	return NEWWELD
413
end
414
415
local S = IT("Sound")
416
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
417
	local NEWSOUND = nil
418
	coroutine.resume(coroutine.create(function()
419
		NEWSOUND = S:Clone()
420
		NEWSOUND.Parent = PARENT
421
		NEWSOUND.Volume = VOLUME
422
		NEWSOUND.Pitch = PITCH
423
		NEWSOUND.SoundId = "rbxassetid://"..ID
424
		NEWSOUND:play()
425
		if DOESLOOP == true then
426
			NEWSOUND.Looped = true
427
		else
428
			repeat wait(1) until NEWSOUND.Playing == false
429
			NEWSOUND:remove()
430
		end
431
	end))
432
	return NEWSOUND
433
end
434
435
function CFrameFromTopBack(at, top, back)
436
	local right = top:Cross(back)
437
	return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
438
end
439
440
function R_RANDOM(CFRAME,DIST)
441
	return CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,-DIST)
442
end
443
444
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
445
function WACKYEFFECT(Table)
446
	local TYPE = (Table.EffectType or "Sphere")
447
	local SIZE = (Table.Size or VT(1,1,1))
448
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
449
	local TRANSPARENCY = (Table.Transparency or 0)
450
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
451
	local CFRAME = (Table.CFrame or Torso.CFrame)
452
	local MOVEDIRECTION = (Table.MoveToPos or nil)
453
	local ROTATION1 = (Table.RotationX or 0)
454
	local ROTATION2 = (Table.RotationY or 0)
455
	local ROTATION3 = (Table.RotationZ or 0)
456
	local MATERIAL = (Table.Material or "Neon")
457
	local COLOR = (Table.Color or C3(1,1,1))
458
	local TIME = (Table.Time or 45)
459
	local SOUNDID = (Table.SoundID or nil)
460
	local SOUNDPITCH = (Table.SoundPitch or nil)
461
	local SOUNDVOLUME = (Table.SoundVolume or nil)
462
	local USEBOOMERANGMATH = (Table.UseBoomerangMath or false)
463
	local BOOMERANG = (Table.Boomerang or 0)
464
	local SIZEBOOMERANG = (Table.SizeBoomerang or 0)
465
	coroutine.resume(coroutine.create(function()
466
		local PLAYSSOUND = false
467
		local SOUND = nil
468
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
469
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
470
			PLAYSSOUND = true
471
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
472
		end
473
		EFFECT.Color = COLOR
474
		local MSH = nil
475
		if TYPE == "Sphere" then
476
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
477
		elseif TYPE == "Block" or TYPE == "Box" then
478
			MSH = IT("BlockMesh",EFFECT)
479
			MSH.Scale = SIZE
480
		elseif TYPE == "Wave" then
481
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
482
		elseif TYPE == "Ring" then
483
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
484
		elseif TYPE == "Slash" then
485
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
486
		elseif TYPE == "Round Slash" then
487
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
488
		elseif TYPE == "Swirl" then
489
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "168892432", "", SIZE, VT(0,0,0))
490
		elseif TYPE == "Skull" then
491
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
492
		elseif TYPE == "Crystal" then
493
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
494
		end
495
		if MSH ~= nil then
496
			local BOOMR1 = 1+BOOMERANG/50
497
			local BOOMR2 = 1+SIZEBOOMERANG/50
498
			local MOVESPEED = nil
499
			if MOVEDIRECTION ~= nil then
500
				if USEBOOMERANGMATH == true then
501
					MOVESPEED = ((CFRAME.p - MOVEDIRECTION).Magnitude/TIME)*BOOMR1
502
				else
503
					MOVESPEED = ((CFRAME.p - MOVEDIRECTION).Magnitude/TIME)
504
				end
505
			end
506
			local GROWTH = nil
507
			if USEBOOMERANGMATH == true then
508
				GROWTH = (SIZE - ENDSIZE)*(BOOMR2+1)
509
			else
510
				GROWTH = (SIZE - ENDSIZE)
511
			end
512
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
513
			if TYPE == "Block" then
514
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
515
			else
516
				EFFECT.CFrame = CFRAME
517
			end
518
			if USEBOOMERANGMATH == true then
519
				for LOOP = 1, TIME+1 do
520
					Swait()
521
					MSH.Scale = MSH.Scale - (VT((GROWTH.X)*((1 - (LOOP/TIME)*BOOMR2)),(GROWTH.Y)*((1 - (LOOP/TIME)*BOOMR2)),(GROWTH.Z)*((1 - (LOOP/TIME)*BOOMR2)))*BOOMR2)/TIME
522
					if TYPE == "Wave" then
523
						MSH.Offset = VT(0,0,-MSH.Scale.Z/8)
524
					end
525
					EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
526
					if TYPE == "Block" then
527
						EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
528
					else
529
						EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
530
					end
531
					if MOVEDIRECTION ~= nil then
532
						local ORI = EFFECT.Orientation
533
						EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-(MOVESPEED)*((1 - (LOOP/TIME)*BOOMR1)))
534
						EFFECT.CFrame = CF(EFFECT.Position)*ANGLES(RAD(ORI.X),RAD(ORI.Y),RAD(ORI.Z))
535
					end
536
				end
537
			else
538
				for LOOP = 1, TIME+1 do
539
					Swait()
540
					MSH.Scale = MSH.Scale - GROWTH/TIME
541
					if TYPE == "Wave" then
542
						MSH.Offset = VT(0,0,-MSH.Scale.Z/8)
543
					end
544
					EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
545
					if TYPE == "Block" then
546
						EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
547
					else
548
						EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
549
					end
550
					if MOVEDIRECTION ~= nil then
551
						local ORI = EFFECT.Orientation
552
						EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
553
						EFFECT.CFrame = CF(EFFECT.Position)*ANGLES(RAD(ORI.X),RAD(ORI.Y),RAD(ORI.Z))
554
					end
555
				end
556
			end
557
			EFFECT.Transparency = 1
558
			if PLAYSSOUND == false then
559
				EFFECT:remove()
560
			else
561
				repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil
562
				EFFECT:remove()
563
			end
564
		else
565
			if PLAYSSOUND == false then
566
				EFFECT:remove()
567
			else
568
				repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil
569
				EFFECT:remove()
570
			end
571
		end
572
	end))
573
end
574
575
function MakeForm(PART,TYPE)
576
	if TYPE == "Cyl" then
577
		local MSH = IT("CylinderMesh",PART)
578
	elseif TYPE == "Ball" then
579
		local MSH = IT("SpecialMesh",PART)
580
		MSH.MeshType = "Sphere"
581
	elseif TYPE == "Wedge" then
582
		local MSH = IT("SpecialMesh",PART)
583
		MSH.MeshType = "Wedge"
584
	end
585
end
586
587
Debris = game:GetService("Debris")
588
589
function CastProperRay(StartPos, EndPos, Distance, Ignore)
590
	local DIRECTION = CF(StartPos,EndPos).lookVector
591
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
592
	return game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, DIRECTION * Distance), Ignore)
593
end
594
595
local DECAL = IT("Decal")
596
function MagicRing()
597
	local RING = CreatePart(3, Effects, "Granite", 0, 1, "Maroon", "MagicRing", VT(0,0,0),true)
598
	local MESH = IT("BlockMesh",RING)
599
	local BOTTOMTEXTURE = DECAL:Clone()
600
	BOTTOMTEXTURE.Parent = RING
601
	BOTTOMTEXTURE.Face = "Bottom"
602
	BOTTOMTEXTURE.Name = "BottomTexture"
603
	local TOPTEXTURE = DECAL:Clone()
604
	TOPTEXTURE.Parent = RING
605
	TOPTEXTURE.Face = "Top"
606
	TOPTEXTURE.Name = "TopTexture"
607
	BOTTOMTEXTURE.Texture = "http://www.roblox.com/asset/?id=1208118228"
608
	TOPTEXTURE.Texture = "http://www.roblox.com/asset/?id=1208118228"
609
	BOTTOMTEXTURE.Color3 = C3(0,0,0)
610
	TOPTEXTURE.Color3 = C3(0,0,0)
611
	return RING,MESH,TOPTEXTURE,BOTTOMTEXTURE
612
end
613
614
function CharacterFade(COLOR,TIMER,MOVEDIRECTION,PARENT)
615
	coroutine.resume(coroutine.create(function()
616
		local FADE = IT("Model",Effects)
617
		if PARENT ~= nil then
618
			FADE.Parent = PARENT
619
		end
620
		FADE.Name = "FadingEffect"
621
		for _, c in pairs(Character:GetChildren()) do
622
			if c.ClassName == "Part" then
623
				c.CanCollide = false
624
				local FADER = CreatePart(3, FADE, "Neon", 0, 0.75, BRICKC("Pearl"), c.Name, c.Size, true)
625
				FADER.CFrame = c.CFrame
626
				FADER.Color = COLOR
627
				if FADER.Name == "Head" then
628
					Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FADER
629
				elseif FADER.Name == "HumanoidRootPart" then
630
					FADE.PrimaryPart = FADER
631
					FADER.Transparency = 1
632
				end
633
			end
634
		end
635
		local TRANS = 0.25/TIMER
636
		local DIST = nil
637
		if MOVEDIRECTION ~= nil then
638
			DIST = (FADE.PrimaryPart.Position - MOVEDIRECTION).Magnitude
639
		end
640
		for i = 1, TIMER do
641
			Swait()
642
			for _, c in pairs(FADE:GetChildren()) do
643
				if c.ClassName == "Part" then
644
					c.Transparency = c.Transparency + TRANS
645
				end
646
			end
647
			if MOVEDIRECTION ~= nil then
648
				local ORI = FADE.PrimaryPart.Orientation
649
				FADE:SetPrimaryPartCFrame(CF(CF(FADE.PrimaryPart.Position,MOVEDIRECTION)*CF(0,0,-DIST/TIMER).p) * ANGLES(RAD(ORI.X), RAD(ORI.Y), RAD(ORI.Z)))
650
			end
651
		end
652
		FADE:remove()
653
	end))
654
end
655
656
--//=================================\\
657
--||	    GUIS AND MISC
658
--\\=================================//
659
660
local EYE = CreatePart(3, Character, "Neon", 0, 0, BRICKC("Really black"), "TheEye", VT(0.16,0.16,0.16), true)
661
MakeForm(EYE,"Ball")
662
CreateWeldOrSnapOrMotor("Weld", Head, Head, EYE, CF(-0.15, 0.2, -0.57) * ANGLES(RAD(0), RAD(15), RAD(0)) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
663
local BLADE = CreatePart(3, Effects, "Fabric", 0, 0, BRICKC("Really black"), "Abyssal_Sword", VT(1, 7.6, 1), true)
664
CreateMesh("SpecialMesh", BLADE, "FileMesh", "93117521", "1015990846", VT(1,1,1), VT(0,0,0))
665
BLADE.CFrame = RootPart.CFrame * CF(0.4,1,4) * ANGLES(RAD(195), RAD(15), RAD(15))
666
667
local SKILLTEXTCOLOR = C3(0,0,0)
668
local SKILLFONT = "Fantasy"
669
local SKILLTEXTSIZE = 4
670
local SKILLTEXTSIZE2 = 12
671
672
local ATTACKS = {"Abyssal Shriek - Z","Abyssal Dash - X","Shadow Cloak - C","Black Blast - V","Nightmare Fall - Q"}
673
674
for i = 1, #ATTACKS do
675
	local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.74, 0, 0.97-(0.04*i), 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill Frame")
676
	local SKILLTEXT = CreateLabel(SKILLFRAME, "["..ATTACKS[i].."]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 1, "Skill text")
677
	SKILLTEXT.TextXAlignment = "Right"
678
	SKILLTEXT.Rotation = i*3
679
end
680
681
local BMUSIC = IT("Sound",RootPart)
682
local VOLUME = 5
683
local PITCH = 1
684
local SONGID = 1074563286
685
local A = IT("Attachment",Torso)
686
687
coroutine.resume(coroutine.create(function()
688
	while wait(1) do
689
		if FADERS == true then
690
			coroutine.resume(coroutine.create(function()
691
				local R,M,T,B = MagicRing()
692
				R.Anchored = false
693
				CreateWeldOrSnapOrMotor("Weld", EYE, EYE, R, CF(0,0,0), CF(0, 0, 0))
694
				local R2,M2,T2,B2 = MagicRing()
695
				R2.Anchored = false
696
				CreateWeldOrSnapOrMotor("Weld", EYE, EYE, R2, CF(0,0,0), CF(0, 0, 0))
697
				for i = 1, 35 do
698
					Swait()
699
					M.Scale = M.Scale + VT(1,0,1)*1.2
700
					T.Transparency = i/35
701
					B.Transparency = i/35
702
					M2.Scale = M2.Scale + VT(1,0,1)*0.6
703
					T2.Transparency = i/35
704
					B2.Transparency = i/35
705
				end
706
				R:Remove()
707
				R2:Remove()
708
			end))
709
		end
710
	end
711
end))
712
713
--//=================================\\
714
--||			DAMAGING
715
--\\=================================//
716
717
function ApplyDamage(Humanoid,Damage)
718
	Damage = Damage * DAMAGEMULTIPLIER
719
	if Humanoid.Health < 2000 then
720
		if Humanoid.Health - Damage > 0 then
721
			Humanoid.Health = Humanoid.Health - Damage
722
		else
723
			Humanoid.Parent:BreakJoints()
724
		end
725
	else
726
		Humanoid.Parent:BreakJoints()
727
	end
728
end
729
730
function ApplyAoE(POSITION,RANGE,MINDMG,MAXDMG,FLING,INSTAKILL)
731
	for index, CHILD in pairs(workspace:GetDescendants()) do
732
		if CHILD.ClassName == "Model" and CHILD ~= Character then
733
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
734
			if HUM then
735
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
736
				if TORSO then
737
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
738
						if INSTAKILL == true then
739
							CHILD:BreakJoints()
740
						else
741
							local DMG = MRANDOM(MINDMG,MAXDMG)
742
							ApplyDamage(HUM,DMG)
743
						end
744
						if FLING > 0 then
745
							for _, c in pairs(CHILD:GetChildren()) do
746
								if c:IsA("BasePart") then
747
									local bv = Instance.new("BodyVelocity") 
748
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
749
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
750
									bv.Parent = c
751
									Debris:AddItem(bv,0.05)
752
								end
753
							end
754
						end
755
					end
756
				end
757
			end
758
		end
759
	end
760
end
761
762
--//=================================\\
763
--||	ATTACK FUNCTIONS AND STUFF
764
--\\=================================//
765
766
function Melee()
767
	ATTACK = true
768
	BLADE.CanCollide = true
769
	Rooted = false
770
	EQUIPPED = true
771
	local HIT = function()
772
		local HITS = {}
773
		local TOUCH = BLADE.Touched:Connect(function(hit)
774
			if hit.Parent:FindFirstChildOfClass("Humanoid") and hit.Parent ~= Character then
775
				local HUM = hit.Parent:FindFirstChildOfClass("Humanoid")
776
				local TORSO = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso")
777
				if TORSO and HUM.Health > 0 then
778
					local PASS = true
779
					for i = 1, #HITS do
780
						if HITS[i] == hit.Parent then
781
							PASS = false
782
						end
783
					end
784
					table.insert(HITS,hit.Parent)
785
						if PASS == true then
786
						ApplyDamage(HUM,MRANDOM(15,25))
787
					end
788
				end
789
			end
790
		end)
791
		return TOUCH
792
	end
793
	if COMBO == 1 then
794
		for i=0, 0.35, 0.1 / Animation_Speed do
795
			Swait()
796
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 1 / Animation_Speed)
797
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(15)), 1 / Animation_Speed)
798
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
799
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35, -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
800
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
801
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
802
			BLADE.CFrame = Clerp(BLADE.CFrame,RightArm.CFrame*CF(0,-8,0) * ANGLES(RAD(180), RAD(90), RAD(0)),0.4)
803
		end
804
		CreateSound(1489705211,BLADE,MRANDOM(7,8),MRANDOM(8,13)/12,false)
805
		local TOUCHED = HIT()
806
		for i=0, 0.5, 0.1 / Animation_Speed do
807
			Swait()
808
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), 1 / Animation_Speed)
809
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-35)), 0.9 / Animation_Speed)
810
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.8, 0.5, -0.7) * ANGLES(RAD(0), RAD(0), RAD(-90)) * ANGLES(RAD(15), RAD(180), RAD(0)) * RIGHTSHOULDERC0, 0.6 / Animation_Speed)
811
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35, -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
812
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
813
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
814
			BLADE.CFrame = Clerp(BLADE.CFrame,RightArm.CFrame*CF(0,-8,0) * ANGLES(RAD(180), RAD(90), RAD(0)),0.4)
815
		end
816
		TOUCHED:Disconnect()
817
		COMBO = 2
818
	elseif COMBO == 2 then
819
		for i=0, 0.35, 0.1 / Animation_Speed do
820
			Swait()
821
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
822
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
823
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75, 0) * ANGLES(RAD(160), RAD(0), RAD(-5)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
824
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35, -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
825
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
826
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
827
			BLADE.CFrame = Clerp(BLADE.CFrame,RightArm.CFrame*CF(0,-8,0) * ANGLES(RAD(180), RAD(90), RAD(0)),0.4)
828
		end
829
		CreateSound(1489705211,BLADE,MRANDOM(7,8),MRANDOM(8,13)/12,false)
830
		local TOUCHED = HIT()
831
		for i=0, 0.35, 0.1 / Animation_Speed do
832
			Swait()
833
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(15)), 1 / Animation_Speed)
834
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 0.8 / Animation_Speed)
835
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1, 0.25, -0.5) * ANGLES(RAD(85), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
836
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35, -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
837
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
838
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
839
			BLADE.CFrame = Clerp(BLADE.CFrame,RightArm.CFrame*CF(0,-8,0) * ANGLES(RAD(180), RAD(90), RAD(0)),0.4)
840
		end
841
		TOUCHED:Disconnect()
842
		for i=0, 0.2, 0.1 / Animation_Speed do
843
			Swait()
844
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(15)), 1 / Animation_Speed)
845
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 0.8 / Animation_Speed)
846
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1, 0.25, -0.5) * ANGLES(RAD(85), RAD(0), RAD(-5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
847
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35, -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
848
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
849
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
850
			BLADE.CFrame = Clerp(BLADE.CFrame,RootPart.CFrame*CF(4,0.3,0) * ANGLES(RAD(195), RAD(-25), RAD(15)),0.4)
851
		end
852
		COMBO = 1
853
	end
854
	coroutine.resume(coroutine.create(function()
855
		for i = 1, 50 do
856
			Swait()
857
			if ATTACK == true then
858
				break
859
			end
860
		end
861
		if ATTACK == false then
862
			COMBO = 1
863
		end
864
	end))
865
	BLADE.CanCollide = false
866
	ATTACK = false
867
	Rooted = false
868
	EQUIPPED = false
869
end
870
function AbyssalShriek()
871
	if ANIM ~= "Fall" and ANIM ~= "Jump" then
872
		ATTACK = true
873
		Rooted = true
874
		for i=0, 0.2, 0.1 / Animation_Speed do
875
			Swait()
876
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
877
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
878
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
879
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
880
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-15)), 1 / Animation_Speed)
881
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(15)), 1 / Animation_Speed)
882
		end
883
		coroutine.resume(coroutine.create(function()
884
			repeat
885
				Swait()
886
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
887
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35), RAD(MRANDOM(-5,5)), RAD(MRANDOM(-5,5))), 1 / Animation_Speed)
888
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25+MRANDOM(-5,5)), RAD(-15+MRANDOM(-5,5)), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
889
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25+MRANDOM(-5,5)), RAD(15+MRANDOM(-5,5)), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
890
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.1) * ANGLES(RAD(0), RAD(85), RAD(MRANDOM(-5,5))) * ANGLES(RAD(-1), RAD(0), RAD(-12)), 1 / Animation_Speed)
891
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.1) * ANGLES(RAD(0), RAD(-85), RAD(MRANDOM(-5,5))) * ANGLES(RAD(-1), RAD(0), RAD(12)), 1 / Animation_Speed)
892
			until ATTACK == false
893
		end))
894
		WACKYEFFECT({Time = 65, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(25,25,25), Transparency = 0, Transparency2 = 1, CFrame = CF(RootPart.Position+VT(0,1.5,0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 15})
895
		CreateSound(199978176,Head,5,1,false)
896
		for i = 1, 60 do
897
			Swait()
898
			ApplyAoE(RootPart.Position,17,1,1,0,false)
899
			local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4+Humanoid.HipHeight, Character)
900
			if HITFLOOR then
901
				WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(20,1,20), Size2 = VT(25+MRANDOM(0,8),7,25+MRANDOM(0,8)), Transparency = 0.95, Transparency2 = 1, CFrame = CF(HITPOS)*ANGLES(RAD(0),RAD(MRANDOM(0,360)),RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
902
			end
903
			local SIZE = VT(1,3,1)
904
			WACKYEFFECT({EffectType = "Sphere", Size = VT(0,0,0), Size2 = SIZE*MRANDOM(10,65)/10, Transparency = 0.5, Transparency2 = 1, CFrame = CF(RootPart.Position) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0))*CF(0,MRANDOM(1,17),MRANDOM(0,12)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 5})
905
		end
906
		wait(0.2)
907
		ATTACK = false
908
		Rooted = false
909
	end
910
end
911
function AbyssalDash()
912
	ATTACK = true
913
	Rooted = true
914
	UNANCHOR = false
915
	for i=0, 0.4, 0.1 / Animation_Speed do
916
		Swait()
917
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
918
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
919
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
920
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
921
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-15)), 1 / Animation_Speed)
922
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(15)), 1 / Animation_Speed)
923
	end
924
	CreateSound(1177785010,Torso,2,1,false)
925
	CreateSound(971125740,Torso,5,1,false)
926
	WACKYEFFECT({Time = 65, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(25,25,25), Transparency = 0, Transparency2 = 1, CFrame = CF(RootPart.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 331666014, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
927
	for index, CHILD in pairs(Character:GetChildren()) do
928
		if CHILD:IsA("BasePart") then
929
			CHILD.Transparency = CHILD.Transparency + 1
930
		elseif CHILD:IsA("Accessory") then
931
			CHILD.Handle.Transparency = CHILD.Handle.Transparency + 1
932
		end
933
	end
934
	local HITS = {}
935
	for i=0, 1, 0.1 / Animation_Speed do
936
		Swait()
937
		for index, CHILD in pairs(workspace:GetDescendants()) do
938
			if CHILD.ClassName == "Model" and CHILD ~= Character then
939
				local HUM = CHILD:FindFirstChildOfClass("Humanoid")
940
				if HUM then
941
					local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
942
					if TORSO then
943
						if (TORSO.Position - RootPart.Position).Magnitude <= 25 then
944
							local PASS = true
945
							for E = 1, #HITS do
946
								if HITS[E] == CHILD then
947
									PASS = false
948
								end
949
							end
950
							if PASS == true then
951
								local DMG = MRANDOM(25,45)
952
								ApplyDamage(HUM,DMG)
953
								table.insert(HITS,CHILD)
954
							end
955
						end
956
					end
957
				end
958
			end
959
		end	
960
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(25,0,25), Transparency = 0.8, Transparency2 = 1, CFrame = RootPart.CFrame*CF(0,0,-6) * ANGLES(RAD(-90), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 50})
961
		for i = 1, 2 do
962
			RootPart.CFrame = RootPart.CFrame*CF(0,0,-1)
963
			CharacterFade(C3(0,0,0),25,R_RANDOM(Torso.CFrame,1.25).p)
964
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(65), RAD(0), RAD(0)), 1 / Animation_Speed)
965
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
966
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(-25), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
967
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(-25), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
968
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
969
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
970
		end
971
	end
972
	for index, CHILD in pairs(Character:GetChildren()) do
973
		if CHILD:IsA("BasePart") then
974
			CHILD.Transparency = CHILD.Transparency - 1
975
		elseif CHILD:IsA("Accessory") then
976
			CHILD.Handle.Transparency = CHILD.Handle.Transparency - 1
977
		end
978
	end
979
	for i=1, 25 do
980
		Swait()
981
		RootPart.CFrame = RootPart.CFrame*CF(0,0,-((25-i)/25))
982
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
983
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
984
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-35), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
985
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-35), RAD(0), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
986
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-45)), 1 / Animation_Speed)
987
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-25), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
988
	end
989
	UNANCHOR = true
990
	ATTACK = false
991
	Rooted = false
992
end
993
function ShadowCloak()
994
	if ANIM ~= "Fall" and ANIM ~= "Jump" then
995
		ATTACK = true
996
		Rooted = false
997
		UNANCHOR = false
998
		FADERS = false
999
		coroutine.resume(coroutine.create(function()
1000
			coroutine.resume(coroutine.create(function()
1001
				for i=1, 25 do
1002
					Swait()
1003
					RootPart.CFrame = RootPart.CFrame*CF(0,(25-i)/25,0)
1004
				end
1005
			end))
1006
			repeat
1007
				Swait()
1008
				BLADE.Transparency = Torso.Transparency
1009
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
1010
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35), RAD(MRANDOM(-5,5)), RAD(MRANDOM(-5,5))), 1 / Animation_Speed)
1011
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25+MRANDOM(-5,5)), RAD(-15+MRANDOM(-5,5)), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1012
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25+MRANDOM(-5,5)), RAD(15+MRANDOM(-5,5)), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1013
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.1) * ANGLES(RAD(0), RAD(85), RAD(MRANDOM(-5,5))) * ANGLES(RAD(-1), RAD(0), RAD(-12)), 1 / Animation_Speed)
1014
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.1) * ANGLES(RAD(0), RAD(-85), RAD(MRANDOM(-5,5))) * ANGLES(RAD(-1), RAD(0), RAD(12)), 1 / Animation_Speed)
1015
			until ATTACK == false
1016
		end))
1017
		WACKYEFFECT({Time = 65, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(25,1,25), Transparency = 0, Transparency2 = 1, CFrame = CF(RootPart.Position-VT(0,3.5,0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 814168787, SoundPitch = 0.6, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 12})
1018
		WACKYEFFECT({Time = 65, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(25,1,25), Transparency = 0, Transparency2 = 1, CFrame = CF(RootPart.Position-VT(0,3.5,0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 814168787, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1019
		for i = 1, 50 do
1020
			Swait()
1021
			CharacterFade(C3(0,0,0),12,R_RANDOM(Torso.CFrame,1.25).p)
1022
			for index, CHILD in pairs(Character:GetChildren()) do
1023
				if CHILD:IsA("BasePart") then
1024
					CHILD.Transparency = CHILD.Transparency + 1/50
1025
				elseif CHILD:IsA("Accessory") then
1026
					CHILD.Handle.Transparency = CHILD.Handle.Transparency + 1/50
1027
				end
1028
			end
1029
		end
1030
		for i = 1, 25 do
1031
			Swait()
1032
			CharacterFade(C3(0,0,0),12,R_RANDOM(Torso.CFrame,1.25).p)
1033
		end
1034
		RootPart.CFrame = CF(Mouse.Hit.p+VT(0,12,0)) * ANGLES(RAD(0), RAD(RootPart.Orientation.Y), RAD(0))
1035
		for i = 1, 5 do
1036
			WACKYEFFECT({Time = 50, EffectType = "Round Slash", Size = VT(0,0,0), Size2 = VT(0.3,0,0.3), Transparency = 0, Transparency2 = 1, CFrame = CF(RootPart.Position) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 10})
1037
		end
1038
		ApplyAoE(Torso.Position,15,12,22,150,false)
1039
		CreateSound(331666014,Torso,5,1,false)
1040
		for i = 1, 12 do
1041
			Swait()
1042
			CharacterFade(C3(0,0,0),12,R_RANDOM(Torso.CFrame,1.25).p)
1043
		end
1044
		for i = 1, 50 do
1045
			Swait()
1046
			CharacterFade(C3(0,0,0),12,R_RANDOM(Torso.CFrame,1.25).p)
1047
			for index, CHILD in pairs(Character:GetChildren()) do
1048
				if CHILD:IsA("BasePart") then
1049
					CHILD.Transparency = CHILD.Transparency - 1/50
1050
				elseif CHILD:IsA("Accessory") then
1051
					CHILD.Handle.Transparency = CHILD.Handle.Transparency - 1/50
1052
				end
1053
			end
1054
		end
1055
		UNANCHOR = true
1056
		ATTACK = false
1057
		Rooted = false
1058
		FADERS = true
1059
	end
1060
end
1061
function BlackBlast()
1062
	if ANIM ~= "Fall" and ANIM ~= "Jump" then
1063
		ATTACK = true
1064
		Rooted = true
1065
		local GYRO = IT("BodyGyro",RootPart)
1066
		GYRO.D = 25
1067
		GYRO.P = 20000
1068
		GYRO.MaxTorque = VT(0,4000000,0)
1069
		GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1070
		CreateSound(429459101,Torso,5,1.5,false)
1071
		local GYROING = true
1072
		coroutine.resume(coroutine.create(function()
1073
			repeat
1074
				Swait()
1075
				GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1076
			until GYROING == false
1077
			GYRO:Remove()
1078
		end))
1079
		for i=0, 1, 0.1 / Animation_Speed do
1080
			Swait()
1081
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1082
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1083
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1084
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1085
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-15)), 1 / Animation_Speed)
1086
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(15)), 1 / Animation_Speed)
1087
		end
1088
		for i = 1, 13 do
1089
			WACKYEFFECT({Time = 55, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(i,0,i)*2, Transparency = 0.8, Transparency2 = 1, CFrame = RootPart.CFrame*CF(0,0,7.5-i) * ANGLES(RAD(-90), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 50})
1090
		end
1091
		CreateSound(1368637781,Torso,5,1.5,false)
1092
		WACKYEFFECT({Time = 65, EffectType = "Sphere", Size = VT(0,0,0), Size2 = VT(12,12,12), Transparency = 0, Transparency2 = 1, CFrame = CF(RootPart.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 331666014, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1093
		for index, CHILD in pairs(Character:GetChildren()) do
1094
			if CHILD:IsA("BasePart") then
1095
				CHILD.Transparency = CHILD.Transparency + 1
1096
			elseif CHILD:IsA("Accessory") then
1097
				CHILD.Handle.Transparency = CHILD.Handle.Transparency + 1
1098
			end
1099
		end
1100
		GYROING = false
1101
		coroutine.resume(coroutine.create(function()
1102
			coroutine.resume(coroutine.create(function()
1103
				for i=1, 25 do
1104
					Swait()
1105
					RootPart.CFrame = RootPart.CFrame*CF(0,0,(25-i)/25)
1106
				end
1107
			end))
1108
			repeat
1109
				Swait()
1110
				CharacterFade(C3(0,0,0),12,R_RANDOM(Torso.CFrame,1.25).p)
1111
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
1112
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35), RAD(MRANDOM(-5,5)), RAD(MRANDOM(-5,5))), 1 / Animation_Speed)
1113
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25+MRANDOM(-5,5)), RAD(-15+MRANDOM(-5,5)), RAD(35)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1114
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25+MRANDOM(-5,5)), RAD(15+MRANDOM(-5,5)), RAD(-35)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1115
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.1) * ANGLES(RAD(0), RAD(85), RAD(MRANDOM(-5,5))) * ANGLES(RAD(-1), RAD(0), RAD(-12)), 1 / Animation_Speed)
1116
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.1) * ANGLES(RAD(0), RAD(-85), RAD(MRANDOM(-5,5))) * ANGLES(RAD(-1), RAD(0), RAD(12)), 1 / Animation_Speed)
1117
			until ATTACK == false
1118
		end))
1119
		coroutine.resume(coroutine.create(function()
1120
			local BULLETCFRAME = RootPart.CFrame
1121
			local EXPLODED = false
1122
			coroutine.resume(coroutine.create(function()
1123
				repeat
1124
					Swait()
1125
					WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(15,15,15), Size2 = VT(10,10,10), Transparency = 0.3, Transparency2 = 1, CFrame = CF(BULLETCFRAME.p), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1126
					WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(15,15,15), Size2 = VT(25,25,25), Transparency = 0.8, Transparency2 = 1, CFrame = CF(BULLETCFRAME.p), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1127
				until EXPLODED == true
1128
			end))
1129
			for i=1, 50 do
1130
				Swait()
1131
				BULLETCFRAME = BULLETCFRAME*CF(0,0,-((50-i)/15))
1132
				local RAY,HIT,NORM = Raycast(BULLETCFRAME.p,BULLETCFRAME.lookVector,7,Character)
1133
				if RAY then
1134
					ApplyAoE(BULLETCFRAME.p,25,12,54,350,false)
1135
					WACKYEFFECT({Time = 45, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(160,0,160), Transparency = 0.6, Transparency2 = 1, CFrame = CF(HIT,HIT+NORM) * ANGLES(RAD(-90), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 765590102, SoundPitch = MRANDOM(9,11)/10, SoundVolume = 10})
1136
					break
1137
				end
1138
			end
1139
			wait(0.5)
1140
			WACKYEFFECT({Time = 85, EffectType = "Sphere", Size = VT(25,25,25), Size2 = VT(75,75,75), Transparency = 0, Transparency2 = 1, CFrame = CF(BULLETCFRAME.p), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 401056199, SoundPitch = 0.7, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1141
			WACKYEFFECT({Time = 85, EffectType = "Sphere", Size = VT(25,25,25), Size2 = VT(50,50,50), Transparency = 0, Transparency2 = 1, CFrame = CF(BULLETCFRAME.p), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 401056199, SoundPitch = 1, SoundVolume = 10, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1142
			for E = 1, 3 do
1143
				for i = 1, 5 do
1144
					WACKYEFFECT({Time = 50, EffectType = "Round Slash", Size = VT(0,0,0), Size2 = VT(E,0,E)/2, Transparency = 0, Transparency2 = 1, CFrame = CF(BULLETCFRAME.p) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 10})
1145
				end
1146
			end
1147
			ApplyAoE(BULLETCFRAME.p,125,25,75,250,false)
1148
			EXPLODED = true
1149
			for i = 1, 15 do
1150
				Swait()
1151
				WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(160,0,160), Transparency = 0.6, Transparency2 = 1, CFrame = BULLETCFRAME * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 1, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = MRANDOM(9,11)/10, SoundVolume = MRANDOM(9,11)/2})
1152
			end
1153
		end))
1154
		wait(0.5)
1155
		for index, CHILD in pairs(Character:GetChildren()) do
1156
			if CHILD:IsA("BasePart") then
1157
				CHILD.Transparency = CHILD.Transparency - 1
1158
			elseif CHILD:IsA("Accessory") then
1159
				CHILD.Handle.Transparency = CHILD.Handle.Transparency - 1
1160
			end
1161
		end
1162
		ATTACK = false
1163
		Rooted = false
1164
	end
1165
end
1166
function NightmareFall()
1167
	if ANIM ~= "Fall" and ANIM ~= "Jump" and DAMAGEMULTIPLIER == 1 then
1168
		ATTACK = true
1169
		Rooted = true
1170
		EQUIPPED = true
1171
		CreateSound(160740121,Head,10,1,false)
1172
		for i=0, 2, 0.1 / Animation_Speed do
1173
			Swait()
1174
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1175
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1176
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.4 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(120), RAD(0), RAD(0)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1177
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1178
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
1179
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
1180
			BLADE.CFrame = Clerp(BLADE.CFrame,RightArm.CFrame*CF(0,-8,0) * ANGLES(RAD(180), RAD(90), RAD(0)),0.4)
1181
		end
1182
		for i=0, 2, 0.1 / Animation_Speed do
1183
			Swait()
1184
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1185
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1186
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.15 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(140), RAD(0), RAD(0)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
1187
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1188
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
1189
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
1190
			BLADE.CFrame = Clerp(BLADE.CFrame,RightArm.CFrame*CF(0,-8,0) * ANGLES(RAD(180), RAD(90), RAD(0)),0.4)
1191
		end
1192
		local SIZE = 0
1193
		local POS = RootPart.Position+VT(0,150,0)
1194
		local BLOWN = false
1195
		coroutine.resume(coroutine.create(function()
1196
			coroutine.resume(coroutine.create(function()
1197
				repeat
1198
					Swait()
1199
					if SIZE > 0 then
1200
						WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(0,0,0), Size2 = VT(SIZE,SIZE,SIZE)*2.5, Transparency = 0.3, Transparency2 = 1, CFrame = CF(POS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1201
						WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(0,0,0), Size2 = VT(SIZE,SIZE,SIZE)*3, Transparency = 0.8, Transparency2 = 1, CFrame = CF(POS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1202
					end
1203
				until BLOWN == true
1204
			end))
1205
			repeat
1206
				Swait()
1207
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-5), RAD(12), RAD(25)), 1 / Animation_Speed)
1208
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35), RAD(0), RAD(-15)), 1 / Animation_Speed)
1209
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75, 0) * ANGLES(RAD(180), RAD(15), RAD(17)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1210
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35, -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1211
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
1212
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
1213
				BLADE.CFrame = Clerp(BLADE.CFrame,RightArm.CFrame*CF(0,-8,0) * ANGLES(RAD(180), RAD(90), RAD(0)),0.4)
1214
			until ATTACK == false
1215
		end))
1216
		wait(0.2)
1217
		for i = 1, 15 do
1218
			wait(MRANDOM(2,6)/45)
1219
			coroutine.resume(coroutine.create(function()
1220
				local CFRAME = CF(BLADE.Position,POS) * ANGLES(RAD(0), RAD(0), RAD(MRANDOM(-90,90)))
1221
				local HEIGHT = 45/5
1222
				local DISTANCE = (BLADE.Position - POS).Magnitude
1223
				for i = 1, 45 do
1224
					Swait()
1225
					CFRAME = CFRAME * CF(0,(HEIGHT-(i/2.575))/45,-DISTANCE/45)
1226
					WACKYEFFECT({Time = 15, EffectType = "Block", Size = VT(3,3,3), Size2 = VT(0,0,0), Transparency = 0.3, Transparency2 = 1, CFrame = CFRAME, MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 0})
1227
				end
1228
				SIZE = SIZE + 1
1229
			end))
1230
		end
1231
		wait(2.5)
1232
		BLOWN = true
1233
		WACKYEFFECT({Time = 85, EffectType = "Sphere", Size = VT(25,25,25), Size2 = VT(150,50,150), Transparency = 0, Transparency2 = 1, CFrame = CF(POS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 401056199, SoundPitch = 0.4, SoundVolume = 10, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1234
		for E = 1, 5 do
1235
			for i = 1, 5 do
1236
				WACKYEFFECT({Time = 50+(E*4), EffectType = "Round Slash", Size = VT(0,0,0), Size2 = VT(E,0,E)/2, Transparency = 0, Transparency2 = 1, CFrame = CF(POS) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 10})
1237
			end
1238
		end
1239
		CreateSound(288641686,Effects,5,1,false)
1240
		CreateSound(592877506,Effects,5,1,false)
1241
		local HITS = {}
1242
		for index, CHILD in pairs(workspace:GetDescendants()) do
1243
			if CHILD.ClassName == "Model" and CHILD ~= Character then
1244
				local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1245
				if HUM then
1246
					local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1247
					if TORSO then
1248
						if (TORSO.Position - RootPart.Position).Magnitude <= 175 then
1249
							local PASS = true
1250
							for E = 1, #HITS do
1251
								if HITS[E] == CHILD then
1252
									PASS = false
1253
								end
1254
							end
1255
							if PASS == true then
1256
								table.insert(HITS,CHILD)
1257
							end
1258
						end
1259
					end
1260
				end
1261
			end
1262
		end	
1263
		if #HITS > 0 then
1264
			local DONE = false
1265
			local HUMS = {}
1266
			coroutine.resume(coroutine.create(function()
1267
				for E = 1, #HITS do
1268
					local HUM = HITS[E]:FindFirstChildOfClass("Humanoid")
1269
					table.insert(HUMS,HUM)
1270
					local TORSO = HITS[E]:FindFirstChild("Torso") or HITS[E]:FindFirstChild("UpperTorso")
1271
					local grav = Instance.new("BodyPosition",TORSO)
1272
					grav.D = 850
1273
					grav.P = 4000
1274
					grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
1275
					grav.Position = TORSO.Position+VT(0,35,0)
1276
					CreateSound(592877506,TORSO,5,0.5,false)
1277
					if TORSO then
1278
						coroutine.resume(coroutine.create(function()
1279
							local B = IT("Attachment",TORSO)
1280
							local ChainLink = IT("Beam",Torso)
1281
							ChainLink.Texture = "rbxassetid://73042633"
1282
							ChainLink.Color = ColorSequence.new(C3(0,0,0))
1283
							ChainLink.TextureSpeed = -1
1284
							ChainLink.FaceCamera = true
1285
							ChainLink.Width0 = 3
1286
							ChainLink.Width1 = 3
1287
							ChainLink.TextureLength = 3
1288
							ChainLink.Attachment0 = A
1289
							ChainLink.Attachment1 = B
1290
							ChainLink.CurveSize0 = 0
1291
							ChainLink.CurveSize1 = 0
1292
							ChainLink.FaceCamera = true
1293
							ChainLink.TextureMode = "Static"
1294
							ChainLink.Transparency = NumberSequence.new(0)
1295
							repeat
1296
								Swait()
1297
								WACKYEFFECT({Time = 5, EffectType = "Block", Size = VT(2,2,2)*TORSO.Size.Z, Size2 = VT(0,0,0), Transparency = 0.6, Transparency2 = 1, CFrame = CF(TORSO.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 35})
1298
							until DONE == true or HUM.Health < 1
1299
							B:Remove()
1300
							ChainLink:Remove()
1301
							grav:Remove()
1302
							if HUM.Health < 1 then
1303
								for E = 1, 2 do
1304
									for i = 1, 3 do
1305
										WACKYEFFECT({Time = 15, EffectType = "Round Slash", Size = VT(0,0,0), Size2 = VT(E,0,E)/6, Transparency = 0, Transparency2 = 1, CFrame = CF(TORSO.Position) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 10})
1306
									end
1307
								end
1308
								WACKYEFFECT({Time = 5, EffectType = "Block", Size = VT(2,2,2)*TORSO.Size.Z, Size2 = VT(6,6,6)*TORSO.Size.Z, Transparency = 0.6, Transparency2 = 1, CFrame = CF(TORSO.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 160772554, SoundPitch = 1, SoundVolume = 6, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 35})
1309
								for _, c in pairs(HITS[E]:GetChildren()) do
1310
									if c:IsA("BasePart") or c:IsA("Accessory") then
1311
										c:remove()
1312
									end
1313
								end
1314
								local BONES = {
1315
								Skull = {MeshId = 36869983,Size = VT(0.7,0.7,0.7)},
1316
								Ribs = {MeshId = 546760032,Size = VT(2.18, 1.884, 1.105)}
1317
								}
1318
								local SELECTABLEBONES = {
1319
								{MeshId = 546760045,Size = VT(0.468, 1.12, 0.346)},
1320
								{MeshId = 546760042,Size = VT(0.366, 0.991, 0.365)},
1321
								{MeshId = 546760029,Size = VT(0.441, 0.799, 0.347)},
1322
								{MeshId = 546760030,Size = VT(0.605, 0.843, 0.4)}
1323
								}
1324
								for i = 1, 9 do
1325
									local CHOSENPIECE = nil
1326
									if i == 1 then
1327
										CHOSENPIECE = BONES.Skull
1328
									elseif i == 2 then
1329
										CHOSENPIECE = BONES.Ribs
1330
									else
1331
										CHOSENPIECE = SELECTABLEBONES[MRANDOM(1,#SELECTABLEBONES)]
1332
									end
1333
									local BONE = CreatePart(3, HITS[E], "Neon", 0, 0, BRICKC("Salmon"), "RIP", CHOSENPIECE.Size, false)
1334
									BONE.CanCollide = true
1335
									BONE.CFrame = TORSO.CFrame*CF(MRANDOM(-10,10)/30,MRANDOM(-10,10)/30,MRANDOM(-10,10)/30)
1336
									if CHOSENPIECE.MeshId == 36869983 then
1337
										CreateMesh("SpecialMesh", BONE, "FileMesh", CHOSENPIECE.MeshId, "", VT(1,1,1)/1.5, VT(0,0,0))
1338
									else
1339
										CreateMesh("SpecialMesh", BONE, "FileMesh", CHOSENPIECE.MeshId, "", VT(1,1,1), VT(0,0,0))
1340
									end
1341
								end
1342
							end
1343
						end))
1344
					end
1345
				end
1346
				wait(1)
1347
				for i = 1, 250 do
1348
					Swait()
1349
					for E = 1, #HUMS do
1350
						if HUMS[E] then
1351
							if HUMS[E].Health > 0 then
1352
								HUMS[E].Health = HUMS[E].Health - 0.3
1353
								DAMAGEMULTIPLIER = DAMAGEMULTIPLIER + 0.0025
1354
								WACKYEFFECT({Time = 10, EffectType = "Round Slash", Size = VT(0,0,0), Size2 = VT(1.5,0,1.5)/20, Transparency = 0.9, Transparency2 = 1, CFrame = CF(Torso.Position) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 10})
1355
							end
1356
						end
1357
					end
1358
				end
1359
				local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0, 0, 0, 0), UD2(1, 0, 1, 0), C3(0,0,0), C3(0, 0, 0), "OWEXTRADAMAGE")
1360
				local SKILLTEXT = CreateLabel(SKILLFRAME, "!You have increased damage!", SKILLTEXTCOLOR, SKILLTEXTSIZE2, SKILLFONT, 1, 2, 1, "AAAA")
1361
				coroutine.resume(coroutine.create(function()
1362
					CreateSound(743521450,Cam,5,0.6,false)
1363
					for E = 1, 75 do
1364
						Swait()
1365
						SKILLTEXT.TextTransparency = SKILLTEXT.TextTransparency - 1/75
1366
					end
1367
					wait(4)
1368
					for E = 1, 25 do
1369
						Swait()
1370
						SKILLTEXT.TextTransparency = SKILLTEXT.TextTransparency + 1/25
1371
					end
1372
					SKILLFRAME:Remove()
1373
				end))
1374
				DONE = true
1375
				for i = 1, 50 do
1376
					wait(0.5)
1377
					for i = 1, 3 do
1378
						WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(DAMAGEMULTIPLIER-1,0.1,DAMAGEMULTIPLIER-1)*1.5, Transparency = 0.6, Transparency2 = 1, CFrame = CF(RootPart.CFrame*CF(0,-3.25,0).p) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 1, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = MRANDOM(9,11)/10, SoundVolume = MRANDOM(9,11)/2, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 22})
1379
					end
1380
				end
1381
				DAMAGEMULTIPLIER = 1
1382
			end))
1383
			wait(0.2)
1384
		end
1385
		wait(0.4)
1386
		EQUIPPED = false
1387
		ATTACK = false
1388
		Rooted = false
1389
	end
1390
end
1391
function Laugh()
1392
	ATTACK = true
1393
	Rooted = true
1394
	CreateSound(160740121,Head,10,1,false)
1395
	for i=0, 0.5, 0.1 / Animation_Speed do
1396
		Swait()
1397
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1398
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.8 / Animation_Speed)
1399
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.6 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1400
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.45 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1401
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
1402
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
1403
	end
1404
	for i=1, 185 do
1405
		Swait()
1406
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1407
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1 + 0.05 * SIN(SINE/2)) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed)
1408
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.55 + 0.15 * SIN(SINE/2), -0.7) * ANGLES(RAD(3 + 3 * SIN(SINE/2)), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1409
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.4 + 0.15 * SIN(SINE/2), -0.6) * ANGLES(RAD(3 + 3 * SIN(SINE/2)), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1410
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
1411
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
1412
	end
1413
	ATTACK = false
1414
	Rooted = false
1415
end
1416
1417
--//=================================\\
1418
--||	  ASSIGN THINGS TO KEYS
1419
--\\=================================//
1420
1421
function MouseDown(Mouse)
1422
	if ATTACK == false then
1423
		Melee()
1424
	end
1425
end
1426
1427
function MouseUp(Mouse)
1428
HOLD = false
1429
end
1430
1431
function KeyDown(Key)
1432
	KEYHOLD = true
1433
	if Key == "z" and ATTACK == false then
1434
		AbyssalShriek()
1435
	end
1436
1437
	if Key == "x" and ATTACK == false then
1438
		AbyssalDash()
1439
	end
1440
1441
	if Key == "c" and ATTACK == false then
1442
		ShadowCloak()
1443
	end
1444
1445
	if Key == "v" and ATTACK == false then
1446
		BlackBlast()
1447
	end
1448
1449
	if Key == "q" and ATTACK == false then
1450
		NightmareFall()
1451
	end
1452
1453
	if Key == "t" and ATTACK == false then
1454
		Laugh()
1455
	end
1456
end
1457
1458
function KeyUp(Key)
1459
	KEYHOLD = false
1460
end
1461
1462
	Mouse.Button1Down:connect(function(NEWKEY)
1463
		MouseDown(NEWKEY)
1464
	end)
1465
	Mouse.Button1Up:connect(function(NEWKEY)
1466
		MouseUp(NEWKEY)
1467
	end)
1468
	Mouse.KeyDown:connect(function(NEWKEY)
1469
		KeyDown(NEWKEY)
1470
	end)
1471
	Mouse.KeyUp:connect(function(NEWKEY)
1472
		KeyUp(NEWKEY)
1473
	end)
1474
1475
--//=================================\\
1476
--\\=================================//
1477
1478
function unanchor()
1479
	for _, c in pairs(Character:GetChildren()) do
1480
		if c:IsA("BasePart") and c ~= RootPart then
1481
			c.Anchored = false
1482
		end
1483
	end
1484
	if UNANCHOR == true then
1485
		RootPart.Anchored = false
1486
	else
1487
		RootPart.Anchored = true
1488
	end
1489
end
1490
1491
--//=================================\\
1492
--||	WRAP THE WHOLE SCRIPT UP
1493
--\\=================================//
1494
1495
Humanoid.Changed:connect(function(Jump)
1496
	if Jump == "Jump" and (Disable_Jump == true) then
1497
		Humanoid.Jump = false
1498
	end
1499
end)
1500
1501
while true do
1502
	Swait()
1503
	script.Parent = WEAPONGUI
1504
	ANIMATE.Parent = nil
1505
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
1506
	    v:Stop();
1507
	end
1508
	SINE = SINE + CHANGE
1509
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1510
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1511
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4+Humanoid.HipHeight, Character)
1512
	local WALKSPEEDVALUE = 8 / (Humanoid.WalkSpeed / 16)
1513
	Humanoid.HipHeight = 1
1514
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
1515
		ANIM = "Jump"
1516
		if ATTACK == false then
1517
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed)
1518
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
1519
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(25 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1520
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-35), RAD(0), RAD(-25 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1521
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.4, -0.6) * ANGLES(RAD(1), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
1522
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
1523
		end
1524
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
1525
		ANIM = "Fall"
1526
		if ATTACK == false then
1527
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1528
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1529
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(35 - 4 * COS(SINE / 6)), RAD(0), RAD(45 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1530
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(35 - 4 * COS(SINE / 6)), RAD(0), RAD(-45 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1531
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.7) * ANGLES(RAD(-25 + 5 * SIN(SINE / 12)), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
1532
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8, -0.3) * ANGLES(RAD(-10), RAD(-80), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
1533
		end
1534
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1535
		ANIM = "Idle"
1536
		if ATTACK == false then
1537
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1538
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1539
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1540
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1541
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-25)), 1 / Animation_Speed)
1542
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
1543
		end
1544
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1545
		ANIM = "Walk"
1546
		if ATTACK == false then
1547
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(10), RAD(0), RAD(0)), 1 / Animation_Speed)
1548
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-10 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1549
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.75, 0.5 + 0.05 * SIN(SINE / 12), -0.7) * ANGLES(RAD(0), RAD(0), RAD(-95)) * ANGLES(RAD(5), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1550
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-0.75, 0.35 + 0.05 * SIN(SINE / 12), -0.6) * ANGLES(RAD(0), RAD(0), RAD(92)) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1551
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.6 - 0.05 * SIN(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-1), RAD(0), RAD(-35)), 1 / Animation_Speed)
1552
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * SIN(SINE / 12), 0) * ANGLES(RAD(-15), RAD(-70), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 1 / Animation_Speed)
1553
		end
1554
	end
1555
	if EQUIPPED == false then
1556
		if TORSOVELOCITY > 1 then
1557
			BLADE.CFrame = Clerp(BLADE.CFrame,RootPart.CFrame * CF(0.2,1.5 + 0.15 * SIN(SINE / 12),4) * ANGLES(RAD(195), RAD(15), RAD(15)),0.04)
1558
		else
1559
			BLADE.CFrame = Clerp(BLADE.CFrame,RootPart.CFrame * CF(1,1.5 + 0.15 * SIN(SINE / 12),4) * ANGLES(RAD(195), RAD(-25), RAD(15)),0.1)
1560
		end
1561
	end
1562
	if ANIM ~= "Walk" and FADERS == true then
1563
		if MRANDOM(1,7) == 1 then
1564
			CharacterFade(C3(0,0,0),65,R_RANDOM(Torso.CFrame,0.5).p)
1565
		end
1566
	end
1567
	unanchor()
1568
	if Rooted == false then
1569
		Disable_Jump = false
1570
		Humanoid.WalkSpeed = Speed+(DAMAGEMULTIPLIER/5)
1571
	elseif Rooted == true then
1572
		Disable_Jump = true
1573
		Humanoid.WalkSpeed = 0
1574
	end
1575
	BMUSIC.SoundId = "rbxassetid://"..SONGID
1576
	BMUSIC.Looped = true
1577
	BMUSIC.Pitch = PITCH
1578
	BMUSIC.Volume = VOLUME
1579
	BMUSIC.Playing = true
1580
	if BMUSIC.Parent ~= RootPart then
1581
		BMUSIC = IT("Sound",RootPart)
1582
	end
1583
	if Head:FindFirstChild("face") then
1584
		Head:FindFirstChild("face"):remove()
1585
	end
1586
	Humanoid.Name = "NONHUM"
1587
	Humanoid.MaxHealth = 1e3
1588
	Humanoid.Health = 1e3
1589
end
1590
1591
--//=================================\\
1592
--\\=================================//
1593
1594
1595
1596
1597
1598
--//====================================================\\--
1599
--||			  		 END OF SCRIPT
1600
--\\====================================================//--