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