View difference between Paste ID: E40pniuP and 4nVuenq4
SHOW: | | - or go back to the newest paste.
1
--//====================================================\\--
2
--||			   CREATED BY SHACKLUSTER
3
--\\====================================================//--
4
-- This script has been converted to FE by TameDoNotClick :)
5
6
7
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
8
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
9
do
10
	print("Translated to FE by me, TameDoNotClick. Enjoy ;)")
11
	script.Parent = Player.Character
12
13
	--RemoteEvent for communicating
14-
Player = game:GetService("Players").LocalPlayer
14+
	local Event = Instance.new("RemoteEvent")
15
	Event.Name = "UserInput_Event"
16
17
	--Fake event to make stuff like Mouse.KeyDown work
18
	local function fakeEvent()
19
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
20-
Mouse = Player:GetMouse()
20+
		t.connect = t.Connect
21
		return t
22
	end
23
24
	--Creating fake input objects with fake variables
25
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
26
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
27
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
28
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
29
	end}
30
	--Merged 2 functions into one by checking amount of arguments
31
	CAS.UnbindAction = CAS.BindAction
32
33
	--This function will trigger the events that have been :Connect()'ed
34
	local function te(self,ev,...)
35
		local t = m[ev]
36
		if t and t._fakeEvent and t.Function then
37
			t.Function(...)
38
		end
39
	end
40
	m.TrigEvent = te
41
	UIS.TrigEvent = te
42
43
	Event.OnServerEvent:Connect(function(plr,io)
44
	    if plr~=Player then return end
45
		if io.isMouse then
46
			m.Target = io.Target
47
			m.Hit = io.Hit
48
		else
49
			local b = io.UserInputState == Enum.UserInputState.Begin
50
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
51
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
52
			end
53
			for _,t in pairs(CAS.Actions) do
54
				for _,k in pairs(t.Keys) do
55
					if k==io.KeyCode then
56
						t.Function(t.Name,io.UserInputState,io)
57
					end
58
				end
59
			end
60
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
61
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
62
	    end
63
	end)
64
	Event.Parent = NLS([==[
65
	local Player = game:GetService("Players").LocalPlayer
66
	local Event = script:WaitForChild("UserInput_Event")
67
68
	local UIS = game:GetService("UserInputService")
69
	local input = function(io,a)
70
		if a then return end
71
		--Since InputObject is a client-side instance, we create and pass table instead
72
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
73
	end
74
	UIS.InputBegan:Connect(input)
75
	UIS.InputEnded:Connect(input)
76
77
	local Mouse = Player:GetMouse()
78
	local h,t
79
	--Give the server mouse data 30 times every second, but only if the values changed
80
	--If player is not moving their mouse, client won't fire events
81
	while wait(1/30) do
82
		if h~=Mouse.Hit or t~=Mouse.Target then
83
			h,t=Mouse.Hit,Mouse.Target
84
			Event:FireServer({isMouse=true,Target=t,Hit=h})
85
		end
86
	end]==],Player.Character)
87
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
88
end
89
90
91
wait(1 / 60)
92
93
wait(1)
94
jump = false
95
local Effects2 = {}
96
basicmusic = "rbxassetid://699991043"
97
abyssmusic = "rbxassetid://700037500"
98
Player = owner
99
PlayerGui = Player.PlayerGui
100
Cam = workspace.CurrentCamera
101
Backpack = Player.Backpack
102
Character = Player.Character
103
Humanoid = Character.Humanoid
104
RootPart = Character["HumanoidRootPart"]
105
Torso = Character["Torso"]
106
Head = Character["Head"]
107
RightArm = Character["Right Arm"]
108
LeftArm = Character["Left Arm"]
109
RightLeg = Character["Right Leg"]
110
LeftLeg = Character["Left Leg"]
111
RootJoint = RootPart["RootJoint"]
112
Neck = Torso["Neck"]
113
RightShoulder = Torso["Right Shoulder"]
114
LeftShoulder = Torso["Left Shoulder"]
115
RightHip = Torso["Right Hip"]
116
LeftHip = Torso["Left Hip"]
117
local sick = Instance.new("Sound",Character)
118
sick.SoundId = basicmusic
119
sick.Looped = true
120
sick.Pitch = 1
121
sick.Volume = 1
122
sick:Play()
123
Humanoid.MaxHealth = 5000
124
Humanoid.Health = 5000
125
local wingholder = Instance.new("Model")
126
wingholder.Parent = Character
127
ABYSSFORM = false
128
Face = Head.face
129
FaceID = Face.Texture
130
AFaceID = "http://www.roblox.com/asset/?id=1015774318"
131
char = Character
132
root = RootPart
133
HeadColor = Head.BrickColor
134
TorsoColor = Torso.BrickColor
135
RLColor = RightLeg.BrickColor
136
RAColor = RightArm.BrickColor
137
LLColor = LeftLeg.BrickColor
138
LAColor = LeftArm.BrickColor
139
if Character:FindFirstChildOfClass("Shirt") then
140
shirtclone = Character.Shirt:Clone()
141
end
142
if Character:FindFirstChildOfClass("Pants") then
143
pantsclone = Character.Shirt:Clone()
144
end
145
Character:FindFirstChild("Body Colors"):remove()
146
Taunts = {907332997,907332856,907330011,907332525,907333406}
147
local attacksound1 = Instance.new("Sound",Head)
148
attacksound1.SoundId = "rbxassetid://159972643"
149
attacksound1.Pitch = 1
150
attacksound1.Volume = 3
151
local attacksound2 = Instance.new("Sound",Head)
152
attacksound2.SoundId = "rbxassetid://159972627"
153
attacksound2.Pitch = 1
154
attacksound2.Volume = 3
155
local attacksound3 = Instance.new("Sound",Head)
156
attacksound3.SoundId = "rbxassetid://159882477"
157
attacksound3.Pitch = 1
158
attacksound3.Volume = 3
159
local attacksound4 = Instance.new("Sound",Head)
160
attacksound4.SoundId = "rbxassetid://159882584"
161
attacksound4.Pitch = 1
162
attacksound4.Volume = 3
163
local shriek = Instance.new("Sound",Head)
164
shriek.SoundId = "rbxassetid://199978176"
165
shriek.Pitch = 1.5
166
shriek.Volume = 3
167
local laugh = Instance.new("Sound",Character)
168
laugh.SoundId = "rbxassetid://861942173"
169
laugh.Pitch = 1
170
laugh.Volume = 10
171
local fade = Instance.new("Sound",Character)
172
fade.SoundId = "rbxassetid://3264923"
173
fade.Pitch = 1
174
fade.Volume = 3
175
Abysstimer = 700
176
wait(0.01)
177
    Humanoid.MaxHealth = 5000
178
    Humanoid.Health = 5000
179
180
181
	function part(formfactor,parent,material,reflectance,transparency,brickcolor,name,size)
182
		local fp=Instance.new("Part")
183
		fp.formFactor=formfactor
184
		fp.Parent=parent
185
		fp.Reflectance=reflectance
186
		fp.Transparency=transparency
187
		fp.CanCollide=false
188
		fp.Locked=true
189
		fp.BrickColor=BrickColor.new(tostring(brickcolor))
190
		fp.Name=name
191
		fp.Size=size
192
		fp.Position=Character.Torso.Position
193
		fp.Material=material
194
		fp:BreakJoints()
195
		return fp
196
	end
197
198
function particles(art,enabled)
199
local EyeSizes={
200
	NumberSequenceKeypoint.new(0,.8,0),
201
	NumberSequenceKeypoint.new(1,0,0)
202
}
203
local EyeTrans={
204
	NumberSequenceKeypoint.new(0,0,0),
205
	NumberSequenceKeypoint.new(1,1,0)
206
}
207
local PE=Instance.new("ParticleEmitter",art)
208
PE.LightEmission=.4
209
PE.Size=NumberSequence.new(EyeSizes)
210
PE.Transparency=NumberSequence.new(EyeTrans)
211
PE.Lifetime=NumberRange.new(0.5,0.5,0.5)
212
PE.Rate=360
213
PE.Speed = NumberRange.new(0,0,0)
214
PE.Texture="rbxassetid://24419398"
215
PE.ZOffset = 0
216
PE.Name = "PE"
217
PE.Enabled = enabled
218
end
219
220
particles(RightArm,false)
221
particles(LeftArm,false)
222
particles(RightLeg,false)
223
particles(LeftLeg,false)
224
particles(Torso,false)
225
particles(Head,false)
226
227
228
IT = Instance.new
229
CF = CFrame.new
230
VT = Vector3.new
231
RAD = math.rad
232
C3 = Color3.new
233
UD2 = UDim2.new
234
BRICKC = BrickColor.new
235
ANGLES = CFrame.Angles
236
EULER = CFrame.fromEulerAnglesXYZ
237
COS = math.cos
238
ACOS = math.acos
239
SIN = math.sin
240
ASIN = math.asin
241
ABS = math.abs
242
MRANDOM = math.random
243
FLOOR = math.floor
244
245
246
247
248
--//=================================\\
249
--||		  CUSTOMIZATION
250
--\\=================================//
251
252
Class_Name = "ABYSS"
253
Weapon_Name = "Abyssal sword"
254
255
Custom_Colors = {
256
	Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
257
	Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
258
259
	Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
260
	Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
261
	Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
262
	Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
263
	Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
264
265
	Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
266
	Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
267
	Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
268
	Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
269
	Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
270
}
271
272
Mana_Bar_Background_Transparency = 0 --Transparency for the background of the mana bar.
273
Secondary_Mana_Bar_Background_Transparency = 0 --Transparency for the background of the secondary mana bar.
274
Health_Bar_Background_Transparency = 0 --Transparency for the background of the health bar.
275
Stun_Bar_Background_Transparency = 0 --Transparency for the background of the stun bar.
276
Ability_Background_Transparency = 0  --Transparency for the background of the abilities.
277
Stat_Background_Transparency = 0 --Transparency for the background of the stats.
278
279
Player_Size = 1 --Size of the player.
280
Animation_Speed = 2
281
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
282
283
Enable_Gui = false --Enables or disables the Weapon Gui. Also functions as hiding or showing the Gui.
284
Enable_Stats = false --Enables or disables stats.
285
Put_Stats_In_Character = false --Places stats in Character.
286
Enable_Stagger_Hit = false --Enables or disables staggering when hitting a hitbox of some sort.
287
Play_Hitbox_Hit_Sound = true --Plays a hit sound when hitting a hitbox of some sort.
288
Enable_Stagger = false --Enables or disables staggering.
289
Enable_Stun = false --Enables or disables the stun mechanic.
290
Enable_Abilities = false --Enables abilites with cooldowns and mana costs.
291
Enable_Secondary_Bar = false --Enables the secondary mana bar, if true.
292
293
Start_Equipped = false --Starts the player equipped with their weapon.
294
Start_Equipped_With_Equipped_Animation = false --Used in conjunction with the above option. Starts your equip animation.
295
Can_Equip_Or_Unequip = true --Enables or disables the ability to unequip or equip your weapon.
296
Disable_Animator = true --Disables the Animator in the humanoid.
297
Disable_Animate = true --Disables the Animate script in the character.
298
Disable_Moving_Arms = false --Keeps the arms from moving around.
299
Use_Motors_Instead_Of_Welds = false --Uses motors instead of welds to disable moving arms.
300
Walkspeed_Depends_On_Movement_Value = false --Walkspeed depends on movement value. Self-explanatory.
301
Disable_Jump = false --Disables jumping.
302
Use_HopperBin = true --Uses a hopperbin to do things.
303
304
Cooldown_1 = 0 --Cooldowns for abilites.
305
Cooldown_2 = 0
306
Cooldown_3 = 0
307
Cooldown_4 = 0
308
HOLDCHARGE = false
309
Skill_1_Mana_Cost = 0 --How much mana is required to use the skill.
310
Skill_2_Mana_Cost = 0
311
Skill_3_Mana_Cost = 0
312
Skill_4_Mana_Cost = 0
313
Max_Mana = 0 --Maximum amount of mana you can have.
314
Max_Secondary_Mana = 0 --Maximum amount of secondary mana you can have.
315
Mana_Name = "Mana" --Name for the mana bar.
316
Secondary_Mana_Name = "Block" --Name for the secondary mana bar.
317
Max_Stun = 1 --Maximum amount of stun you can have.
318
Recover_Mana = 0 --How much mana you gain.
319
Mana_Regen_Mode = "1" --Basically switches from one mana regen system to another.
320
Secondary_Mana_Regen_Mode = "1" --Basically switches from one secondary mana regen system to another.
321
Stun_Lose_Mode = "1" --Basically switches from one secondary stun loss system to another.
322
Recover_Secondary_Mana = 0 --How much secondary mana you gain.
323
Lose_Stun = 0 --How much stun you lose.
324
Stun_Wait = 0 --Delay between losing stun.
325
Mana_Wait = 0 --Delay between gaining mana.
326
Secondary_Mana_Wait = 0 --Delay between gaining secondary mana.
327
Menu_Update_Speed = 0 --How fast the Weapon Gui will update.
328
Constant_Update = false --Removes the delay between updating the Weapon GUI.
329
Show_Stats = false --Hides or shows stats.
330
Stat_Offset = 0.74 --For cosmetic purposes. {0.74, 0.78}
331
332
--//=================================\\
333
--|| 	  END OF CUSTOMIZATION
334
--\\=================================//
335
336
337
338
339
340
--//=================================\\
341
--|| 	      USEFUL VALUES
342
--\\=================================//
343
344
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
345
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
346
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
347
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
348
local CO1 = 0
349
local CO2 = 0
350
local CO3 = 0
351
local CO4 = 0
352
local CHANGEDEFENSE = 0
353
local CHANGEDAMAGE = 0
354
local CHANGEMOVEMENT = 0
355
local ANIM = "Idle"
356
local ATTACK = false
357
local EQUIPPED = false
358
local HOLD = false
359
local COMBO = 1
360
local LASTPOINT = nil
361
local BLCF = nil
362
local SCFR = nil
363
local STAGGERHITANIM = false
364
local STAGGERANIM = false
365
local STUNANIM = false
366
local CRITCHANCENUMBER = 0
367
local IDLENUMBER = 0
368
local DONUMBER = 0
369
local HANDIDLE = false
370
local SINE = 0
371
local CHANGE = 2 / Animation_Speed
372
local WALKINGANIM = false
373
local WALK = 0
374
local DISABLEJUMPING = false
375
local HASBEENBLOCKED = false
376
local STUNDELAYNUMBER = 0
377
local MANADELAYNUMBER = 0
378
local SECONDARYMANADELAYNUMBER = 0
379
local ROBLOXIDLEANIMATION = IT("Animation")
380
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
381
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
382
--ROBLOXIDLEANIMATION.Parent = Humanoid
383
local WEAPONGUI = IT("ScreenGui", nil)
384
WEAPONGUI.Name = "Weapon GUI"
385
local WEAPONTOOL = IT("HopperBin", nil)
386
WEAPONTOOL.Name = Weapon_Name
387
local Weapon = IT("Model")
388
Weapon.Name = Weapon_Name
389
local Effects = IT("Folder", Weapon)
390
Effects.Name = "Effects"
391
local ANIMATOR = Humanoid.Animator
392
local ANIMATE = Character.Animate
393
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
394
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
395
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
396
local HITBLOCKSOUNDS = {"199148933", "199148947"}
397
398
--//=================================\\
399
--\\=================================//
400
401
402
403
404
405
--//=================================\\
406
--||			  STATS
407
--\\=================================//
408
409
if Character:FindFirstChild("Stats") ~= nil then
410
Character:FindFirstChild("Stats").Parent = nil
411
end
412
413
local Stats = IT("Folder", nil)
414
Stats.Name = "Stats"
415
local ChangeStat = IT("Folder", Stats)
416
ChangeStat.Name = "ChangeStat"
417
local Defense = IT("NumberValue", Stats)
418
Defense.Name = "Defense"
419
Defense.Value = 1
420
local Movement = IT("NumberValue", Stats)
421
Movement.Name = "Movement"
422
Movement.Value = 1
423
local Damage = IT("NumberValue", Stats)
424
Damage.Name = "Damage"
425
Damage.Value = 1
426
local Mana = IT("NumberValue", Stats)
427
Mana.Name = "Mana"
428
Mana.Value = 0
429
local SecondaryMana = IT("NumberValue", Stats)
430
SecondaryMana.Name = "SecondaryMana"
431
SecondaryMana.Value = 0
432
local CanCrit = IT("BoolValue", Stats)
433
CanCrit.Name = "CanCrit"
434
CanCrit.Value = false
435
local CritChance = IT("NumberValue", Stats)
436
CritChance.Name = "CritChance"
437
CritChance.Value = 20
438
local CanPenetrateArmor = IT("BoolValue", Stats)
439
CanPenetrateArmor.Name = "CanPenetrateArmor"
440
CanPenetrateArmor.Value = false
441
local AntiTeamKill = IT("BoolValue", Stats)
442
AntiTeamKill.Name = "AntiTeamKill"
443
AntiTeamKill.Value = false
444
local Rooted = IT("BoolValue", Stats)
445
Rooted.Name = "Rooted"
446
Rooted.Value = false
447
local Block = IT("BoolValue", Stats)
448
Block.Name = "Block"
449
Block.Value = false
450
local RecentEnemy = IT("ObjectValue", Stats)
451
RecentEnemy.Name = "RecentEnemy"
452
RecentEnemy.Value = nil
453
local StaggerHit = IT("BoolValue", Stats)
454
StaggerHit.Name = "StaggerHit"
455
StaggerHit.Value = false
456
local Stagger = IT("BoolValue", Stats)
457
Stagger.Name = "Stagger"
458
Stagger.Value = false
459
local Stun = IT("BoolValue", Stats)
460
Stun.Name = "Stun"
461
Stun.Value = false
462
local StunValue = IT("NumberValue", Stats)
463
StunValue.Name = "StunValue"
464
StunValue.Value = 0
465
466
if Enable_Stats == true and Put_Stats_In_Character == true then
467
	Stats.Parent = Character
468
end
469
470
--//=================================\\
471
--\\=================================//
472
473
474
475
476
477
--//=================================\\
478
--|| 	     DEBUFFS / BUFFS
479
--\\=================================//
480
481
local DEFENSECHANGE1 = IT("NumberValue", ChangeStat)
482
DEFENSECHANGE1.Name = "ChangeDefense"
483
DEFENSECHANGE1.Value = 0
484
485
local MOVEMENTCHANGE1 = IT("NumberValue", nil)
486
MOVEMENTCHANGE1.Name = "ChangeMovement"
487
MOVEMENTCHANGE1.Value = 0
488
489
--//=================================\\
490
--\\=================================//
491
492
493
494
495
496
--//=================================\\
497
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
498
--\\=================================//
499
500
ArtificialHB = Instance.new("BindableEvent", script)
501
ArtificialHB.Name = "ArtificialHB"
502
503
script:WaitForChild("ArtificialHB")
504
505
frame = Frame_Speed
506
tf = 0
507
allowframeloss = false
508
tossremainder = false
509
lastframe = tick()
510
script.ArtificialHB:Fire()
511
512
game:GetService("RunService").Heartbeat:connect(function(s, p)
513
	tf = tf + s
514
	if tf >= frame then
515
		if allowframeloss then
516
			script.ArtificialHB:Fire()
517
			lastframe = tick()
518
		else
519
			for i = 1, math.floor(tf / frame) do
520
				script.ArtificialHB:Fire()
521
			end
522
		lastframe = tick()
523
		end
524
		if tossremainder then
525
			tf = 0
526
		else
527
			tf = tf - frame * math.floor(tf / frame)
528
		end
529
	end
530
end)
531
532
--//=================================\\
533
--\\=================================//
534
535
536
537
538
539
--//=================================\\
540
--|| 	      SOME FUNCTIONS
541
--\\=================================//
542
543
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
544
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
545
end
546
547
function PositiveAngle(NUMBER)
548
	if NUMBER >= 0 then
549
		NUMBER = 0
550
	end
551
	return NUMBER
552
end
553
554
function NegativeAngle(NUMBER)
555
	if NUMBER <= 0 then
556
		NUMBER = 0
557
	end
558
	return NUMBER
559
end
560
561
function Swait(NUMBER)
562
	if NUMBER == 0 or NUMBER == nil then
563
		ArtificialHB.Event:wait()
564
	else
565
		for i = 1, NUMBER do
566
			ArtificialHB.Event:wait()
567
		end
568
	end
569
end
570
571
function QuaternionFromCFrame(cf)
572
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
573
	local trace = m00 + m11 + m22
574
	if trace > 0 then 
575
		local s = math.sqrt(1 + trace)
576
		local recip = 0.5 / s
577
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
578
	else
579
		local i = 0
580
		if m11 > m00 then
581
			i = 1
582
		end
583
		if m22 > (i == 0 and m00 or m11) then
584
			i = 2
585
		end
586
		if i == 0 then
587
			local s = math.sqrt(m00 - m11 - m22 + 1)
588
			local recip = 0.5 / s
589
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
590
		elseif i == 1 then
591
			local s = math.sqrt(m11 - m22 - m00 + 1)
592
			local recip = 0.5 / s
593
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
594
		elseif i == 2 then
595
			local s = math.sqrt(m22 - m00 - m11 + 1)
596
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
597
		end
598
	end
599
end
600
 
601
function QuaternionToCFrame(px, py, pz, x, y, z, w)
602
	local xs, ys, zs = x + x, y + y, z + z
603
	local wx, wy, wz = w * xs, w * ys, w * zs
604
	local xx = x * xs
605
	local xy = x * ys
606
	local xz = x * zs
607
	local yy = y * ys
608
	local yz = y * zs
609
	local zz = z * zs
610
	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))
611
end
612
 
613
function QuaternionSlerp(a, b, t)
614
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
615
	local startInterp, finishInterp;
616
	if cosTheta >= 0.0001 then
617
		if (1 - cosTheta) > 0.0001 then
618
			local theta = ACOS(cosTheta)
619
			local invSinTheta = 1 / SIN(theta)
620
			startInterp = SIN((1 - t) * theta) * invSinTheta
621
			finishInterp = SIN(t * theta) * invSinTheta
622
		else
623
			startInterp = 1 - t
624
			finishInterp = t
625
		end
626
	else
627
		if (1 + cosTheta) > 0.0001 then
628
			local theta = ACOS(-cosTheta)
629
			local invSinTheta = 1 / SIN(theta)
630
			startInterp = SIN((t - 1) * theta) * invSinTheta
631
			finishInterp = SIN(t * theta) * invSinTheta
632
		else
633
			startInterp = t - 1
634
			finishInterp = t
635
		end
636
	end
637
	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
638
end
639
640
function Clerp(a, b, t)
641
	local qa = {QuaternionFromCFrame(a)}
642
	local qb = {QuaternionFromCFrame(b)}
643
	local ax, ay, az = a.x, a.y, a.z
644
	local bx, by, bz = b.x, b.y, b.z
645
	local _t = 1 - t
646
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
647
end
648
649
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
650
	local frame = IT("Frame")
651
	frame.BackgroundTransparency = TRANSPARENCY
652
	frame.BorderSizePixel = BORDERSIZEPIXEL
653
	frame.Position = POSITION
654
	frame.Size = SIZE
655
	frame.BackgroundColor3 = COLOR
656
	frame.BorderColor3 = BORDERCOLOR
657
	frame.Name = NAME
658
	frame.Parent = PARENT
659
	return frame
660
end
661
662
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
663
	local label = IT("TextLabel")
664
	label.BackgroundTransparency = 1
665
	label.Size = UD2(1, 0, 1, 0)
666
	label.Position = UD2(0, 0, 0, 0)
667
	label.TextColor3 = C3(255, 255, 255)
668
	label.TextStrokeTransparency = STROKETRANSPARENCY
669
	label.TextTransparency = TRANSPARENCY
670
	label.FontSize = TEXTFONTSIZE
671
	label.Font = TEXTFONT
672
	label.BorderSizePixel = BORDERSIZEPIXEL
673
	label.TextScaled = true
674
	label.Text = TEXT
675
	label.Name = NAME
676
	label.Parent = PARENT
677
	return label
678
end
679
680
function NoOutlines(PART)
681
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
682
end
683
684
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
685
	local NEWPART = IT("Part")
686
	NEWPART.formFactor = FORMFACTOR
687
	NEWPART.Reflectance = REFLECTANCE
688
	NEWPART.Transparency = TRANSPARENCY
689
	NEWPART.CanCollide = false
690
	NEWPART.Locked = true
691
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
692
	NEWPART.Name = NAME
693
	NEWPART.Size = SIZE
694
	NEWPART.Position = Torso.Position
695
	NoOutlines(NEWPART)
696
	NEWPART.Material = MATERIAL
697
	NEWPART:BreakJoints()
698
	NEWPART.Parent = PARENT
699
	return NEWPART
700
end
701
702
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
703
	local NEWMESH = IT(MESH)
704
	if MESH == "SpecialMesh" then
705
		NEWMESH.MeshType = MESHTYPE
706
		if MESHID ~= "nil" and MESHID ~= "" then
707
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
708
		end
709
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
710
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
711
		end
712
	end
713
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
714
	NEWMESH.Scale = SCALE
715
	NEWMESH.Parent = PARENT
716
	return NEWMESH
717
end
718
719
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
720
	local NEWWELD = IT(TYPE)
721
	NEWWELD.Part0 = PART0
722
	NEWWELD.Part1 = PART1
723
	NEWWELD.C0 = C0
724
	NEWWELD.C1 = C1
725
	NEWWELD.Parent = PARENT
726
	return NEWWELD
727
end
728
729
function CreateSound(ID, PARENT, VOLUME, PITCH)
730
	coroutine.resume(coroutine.create(function()
731
		local NEWSOUND = IT("Sound", PARENT)
732
		NEWSOUND.Volume = VOLUME
733
		NEWSOUND.Pitch = PITCH
734
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
735
		Swait()
736
		NEWSOUND:play()
737
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
738
	end))
739
end
740
741
function CFrameFromTopBack(at, top, back)
742
	local right = top:Cross(back)
743
	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)
744
end
745
746
function Lightning(POSITION1, POSITION2, MULTIPLIERTIME, LIGHTNINGDELAY, OFFSET, BRICKCOLOR, MATERIAL, SIZE, TRANSPARENCY, LASTINGTIME)
747
	local MAGNITUDE = (POSITION1 - POSITION2).magnitude 
748
	local CURRENTPOSITION = POSITION1
749
	local LIGHTNINGOFFSET = {-OFFSET, OFFSET}
750
	coroutine.resume(coroutine.create(function()
751
		for i = 1, MULTIPLIERTIME do 
752
			local LIGHTNINGPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR,"Effect", VT(SIZE * Player_Size, SIZE * Player_Size, MAGNITUDE / MULTIPLIERTIME))
753
			LIGHTNINGPART.Anchored = true
754
			local LIGHTNINGOFFSET2 = VT(LIGHTNINGOFFSET[MRANDOM(1, 2)], LIGHTNINGOFFSET[MRANDOM(1, 2)], LIGHTNINGOFFSET[MRANDOM(1, 2)]) 
755
			local LIGHTNINGPOSITION1 = CF(CURRENTPOSITION, POSITION2) * CF(0, 0, MAGNITUDE / MULTIPLIERTIME).p + LIGHTNINGOFFSET2
756
			if MULTIPLIERTIME == i then 
757
				local LIGHTNINGMAGNITUDE1 = (CURRENTPOSITION - POSITION2).magnitude
758
				LIGHTNINGPART.Size = VT(SIZE * Player_Size, SIZE * Player_Size, LIGHTNINGMAGNITUDE1)
759
				LIGHTNINGPART.CFrame = CF(CURRENTPOSITION, POSITION2) * CF(0, 0, -LIGHTNINGMAGNITUDE1 / 2)
760
			else
761
				LIGHTNINGPART.CFrame = CF(CURRENTPOSITION, LIGHTNINGPOSITION1) * CF(0, 0, MAGNITUDE / MULTIPLIERTIME / 2)
762
			end
763
			CURRENTPOSITION=LIGHTNINGPART.CFrame * CF(0, 0, MAGNITUDE / MULTIPLIERTIME / 2).p
764
			game.Debris:AddItem(LIGHTNINGPART, LASTINGTIME)
765
			coroutine.resume(coroutine.create(function()
766
				while LIGHTNINGPART.Transparency ~= 1 do
767
					--local StartTransparency = tra
768
					for i=0, 1, LASTINGTIME do
769
						Swait()
770
						LIGHTNINGPART.Transparency = LIGHTNINGPART.Transparency + (0.1 / LASTINGTIME)
771
					end
772
				end
773
			end))
774
		Swait(LIGHTNINGDELAY / Animation_Speed)
775
		end
776
	end))
777
end
778
779
function MagicBlock(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
780
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
781
	EFFECTPART.Anchored = true
782
	EFFECTPART.CFrame = CFRAME
783
	local EFFECTMESH = CreateMesh("BlockMesh", EFFECTPART, "", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
784
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
785
	coroutine.resume(coroutine.create(function(PART, MESH)
786
		for i = 0, 1, delay do
787
			Swait()
788
			PART.CFrame = PART.CFrame * ROTATION
789
			PART.Transparency = i
790
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
791
		end
792
		PART.Parent = nil
793
	end), EFFECTPART, EFFECTMESH)
794
end
795
796
function MagicSphere(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
797
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
798
	EFFECTPART.Anchored = true
799
	EFFECTPART.CFrame = CFRAME
800
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "Sphere", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
801
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
802
	coroutine.resume(coroutine.create(function(PART, MESH)
803
		for i = 0, 1, delay do
804
			Swait()
805
			PART.CFrame = PART.CFrame * ROTATION
806
			PART.Transparency = i
807
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
808
		end
809
		PART.Parent = nil
810
	end), EFFECTPART, EFFECTMESH)
811
end
812
813
function MagicCylinder(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
814
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
815
	EFFECTPART.Anchored = true
816
	EFFECTPART.CFrame = CFRAME
817
	local EFFECTMESH = CreateMesh("CylinderMesh", EFFECTPART, "", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
818
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
819
	coroutine.resume(coroutine.create(function(PART, MESH)
820
		for i = 0, 1, delay do
821
			Swait()
822
			PART.CFrame = PART.CFrame * ROTATION
823
			PART.Transparency = i
824
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
825
		end
826
		PART.Parent = nil
827
	end), EFFECTPART, EFFECTMESH)
828
end
829
830
function MagicHead(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
831
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
832
	EFFECTPART.Anchored = true
833
	EFFECTPART.CFrame = CFRAME
834
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "Head", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
835
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
836
	coroutine.resume(coroutine.create(function(PART, MESH)
837
		for i = 0, 1, delay do
838
			Swait()
839
			PART.CFrame = PART.CFrame * ROTATION
840
			PART.Transparency = i
841
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
842
		end
843
		PART.Parent = nil
844
	end), EFFECTPART, EFFECTMESH)
845
end
846
847
function MagicRing(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
848
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
849
	EFFECTPART.Anchored = true
850
	EFFECTPART.CFrame = CFRAME
851
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "3270017", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
852
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
853
	coroutine.resume(coroutine.create(function(PART, MESH)
854
		for i = 0, 1, delay do
855
			Swait()
856
			PART.CFrame = PART.CFrame * ROTATION
857
			PART.Transparency = i
858
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
859
		end
860
		PART.Parent = nil
861
	end), EFFECTPART, EFFECTMESH)
862
end
863
864
function MagicWave(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
865
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
866
	EFFECTPART.Anchored = true
867
	EFFECTPART.CFrame = CFRAME
868
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "20329976", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), VT(0, 0, (-0.1 * Z1)) + (OFFSET * Player_Size))
869
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
870
	coroutine.resume(coroutine.create(function(PART, MESH)
871
		for i = 0, 1, delay do
872
			Swait()
873
			PART.CFrame = PART.CFrame * ROTATION
874
			PART.Transparency = i
875
			MESH.Offset = VT(0, 0, (-0.1 * MESH.Scale.Z))
876
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
877
		end
878
		PART.Parent = nil
879
	end), EFFECTPART, EFFECTMESH)
880
end
881
882
function MagicCrystal(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
883
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
884
	EFFECTPART.Anchored = true
885
	EFFECTPART.CFrame = CFRAME
886
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "9756362", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
887
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
888
	coroutine.resume(coroutine.create(function(PART, MESH)
889
		for i = 0, 1, delay do
890
			Swait()
891
			PART.CFrame = PART.CFrame * ROTATION
892
			PART.Transparency = i
893
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
894
		end
895
		PART.Parent = nil
896
	end), EFFECTPART, EFFECTMESH)
897
end
898
899
function MagicSwirl(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
900
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
901
	EFFECTPART.Anchored = true
902
	EFFECTPART.CFrame = CFRAME
903
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1051557", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
904
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
905
	coroutine.resume(coroutine.create(function(PART, MESH)
906
		for i = 0, 1, delay do
907
			Swait()
908
			PART.CFrame = PART.CFrame * ROTATION
909
			PART.Transparency = i
910
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
911
		end
912
		PART.Parent = nil
913
	end), EFFECTPART, EFFECTMESH)
914
end
915
916
function MagicSharpCone(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
917
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
918
	EFFECTPART.Anchored = true
919
	EFFECTPART.CFrame = CFRAME
920
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1778999", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
921
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
922
	coroutine.resume(coroutine.create(function(PART, MESH)
923
		for i = 0, 1, delay do
924
			Swait()
925
			PART.CFrame = PART.CFrame * ROTATION
926
			PART.Transparency = i
927
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
928
		end
929
		PART.Parent = nil
930
	end), EFFECTPART, EFFECTMESH)
931
end
932
933
function MagicFlatCone(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
934
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
935
	EFFECTPART.Anchored = true
936
	EFFECTPART.CFrame = CFRAME
937
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1033714", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
938
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
939
	coroutine.resume(coroutine.create(function(PART, MESH)
940
		for i = 0, 1, delay do
941
			Swait()
942
			PART.CFrame = PART.CFrame * ROTATION
943
			PART.Transparency = i
944
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
945
		end
946
		PART.Parent = nil
947
	end), EFFECTPART, EFFECTMESH)
948
end
949
950
function MagicSpikedCrown(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
951
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
952
	EFFECTPART.Anchored = true
953
	EFFECTPART.CFrame = CFRAME
954
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1323306", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
955
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
956
	coroutine.resume(coroutine.create(function(PART, MESH)
957
		for i = 0, 1, delay do
958
			Swait()
959
			PART.CFrame = PART.CFrame * ROTATION
960
			PART.Transparency = i
961
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
962
		end
963
		PART.Parent = nil
964
	end), EFFECTPART, EFFECTMESH)
965
end
966
967
function MagicFlatCrown(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
968
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
969
	EFFECTPART.Anchored = true
970
	EFFECTPART.CFrame = CFRAME
971
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1078075", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
972
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
973
	coroutine.resume(coroutine.create(function(PART, MESH)
974
		for i = 0, 1, delay do
975
			Swait()
976
			PART.CFrame = PART.CFrame * ROTATION
977
			PART.Transparency = i
978
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
979
		end
980
		PART.Parent = nil
981
	end), EFFECTPART, EFFECTMESH)
982
end
983
984
function MagicSkull(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
985
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
986
	EFFECTPART.Anchored = true
987
	EFFECTPART.CFrame = CFRAME
988
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "4770583", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
989
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
990
	coroutine.resume(coroutine.create(function(PART, MESH)
991
		for i = 0, 1, delay do
992
			Swait()
993
			PART.CFrame = PART.CFrame * ROTATION
994
			PART.Transparency = i
995
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
996
		end
997
		PART.Parent = nil
998
	end), EFFECTPART, EFFECTMESH)
999
end
1000
1001
function ElectricEffect(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X, Y, Z, delay)
1002
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
1003
	EFFECTPART.Anchored = true
1004
	EFFECTPART.CFrame = CFRAME
1005
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "4770583", "", VT(X * Player_Size, Y * Player_Size, Z * Player_Size), OFFSET * Player_Size)
1006
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
1007
	local XVALUE = MRANDOM()
1008
	local YVALUE = MRANDOM()
1009
	local ZVALUE = MRANDOM()
1010
	coroutine.resume(coroutine.create(function(PART, MESH, THEXVALUE, THEYVALUE, THEZVALUE)
1011
		for i = 0, 1, delay do
1012
			Swait()
1013
			PART.CFrame = PART.CFrame * ROTATION
1014
			PART.Transparency = i
1015
			THEXVALUE = THEXVALUE - 0.1 * (delay * 10)
1016
			THEYVALUE = THEYVALUE - 0.1 * (delay * 10)
1017
			THEZVALUE = THEZVALUE - 0.1 * (delay * 10)
1018
			MESH.Scale = MESH.Scale + VT(THEXVALUE * Player_Size, THEYVALUE * Player_Size, THEZVALUE * Player_Size)
1019
		end
1020
		PART.Parent = nil
1021
	end), EFFECTPART, EFFECTMESH, XVALUE, YVALUE, ZVALUE)
1022
end
1023
1024
function TrailEffect(BRICKCOLOR, MATERIAL, CURRENTCFRAME, OLDCFRAME, MESHTYPE, REFLECTANCE, SIZE, ROTATION, X, Y, Z, delay)
1025
	local MAGNITUDECFRAME = (CURRENTCFRAME.p - OLDCFRAME.p).magnitude
1026
	if MAGNITUDECFRAME > (1 / 100) then
1027
		local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT(1, MAGNITUDECFRAME, 1))
1028
		EFFECTPART.Anchored = true
1029
		EFFECTPART.CFrame = CF((CURRENTCFRAME.p + OLDCFRAME.p) / 2, OLDCFRAME.p) * ANGLES(RAD(90), 0, 0)
1030
		local THEMESHTYPE = "BlockMesh"
1031
		if MESHTYPE == "Cylinder" then
1032
			THEMESHTYPE = "CylinderMesh"
1033
		end
1034
		local EFFECTMESH = CreateMesh(THEMESHTYPE, EFFECTPART, "", "", "", VT(0 + SIZE * Player_Size, 1, 0 + SIZE * Player_Size), VT(0, 0, 0))
1035
		game:GetService("Debris"):AddItem(EFFECTPART, 10)
1036
		coroutine.resume(coroutine.create(function(PART, MESH)
1037
			for i = 0, 1, delay do
1038
				Swait()
1039
				PART.CFrame = PART.CFrame * ROTATION
1040
				PART.Transparency = i
1041
				MESH.Scale = MESH.Scale + VT(X * Player_Size, Y * Player_Size, Z * Player_Size)
1042
			end
1043
			PART.Parent = nil
1044
		end), EFFECTPART, EFFECTMESH)
1045
	end
1046
end
1047
1048
function ClangEffect(BRICKCOLOR, MATERIAL, CFRAME, ANGLE, DURATION, SIZE, POWER, REFLECTANCE, X, Y, Z, delay)
1049
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 1, BRICKCOLOR, "Effect", VT())
1050
	EFFECTPART.Anchored = true
1051
	EFFECTPART.CFrame = CFRAME
1052
	local EFFECTMESH = CreateMesh("BlockMesh", EFFECTPART, "", "", "", VT(0, 0, 0), VT(0, 0, 0))
1053
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
1054
	local THELASTPOINT = CFRAME
1055
	coroutine.resume(coroutine.create(function(PART)
1056
		for i = 1, DURATION do
1057
			Swait()
1058
			PART.CFrame = PART.CFrame * ANGLES(RAD(ANGLE), 0, 0) * CF(0, POWER * Player_Size, 0)
1059
			TrailEffect(BRICKCOLOR, MATERIAL, PART.CFrame, THELASTPOINT, "Cylinder", REFLECTANCE, SIZE * Player_Size, ANGLES(0, 0, 0), X * Player_Size, Y * Player_Size, Z * Player_Size, delay)
1060
			THELASTPOINT = PART.CFrame
1061
		end
1062
		PART.Parent = nil
1063
	end), EFFECTPART)
1064
end
1065
1066
--local list={}
1067
function Triangle(Color, Material, a, b, c, delay)
1068
	local edge1 = (c - a):Dot((b - a).unit)
1069
	local edge2 = (a - b):Dot((c - b).unit)
1070
	local edge3 = (b - c):Dot((a - c).unit)
1071
	if edge1 <= (b - a).magnitude and edge1 >= 0 then
1072
		a, b, c=a, b, c
1073
	elseif edge2 <= (c - b).magnitude and edge2 >= 0 then
1074
		a, b, c=b, c, a
1075
	elseif edge3 <= (a - c).magnitude and edge3 >= 0 then
1076
		a, b, c=c, a, b
1077
	else
1078
		assert(false, "unreachable")
1079
	end
1080
	local len1 = (c - a):Dot((b - a).unit)
1081
	local len2 = (b - a).magnitude - len1
1082
	local width = (a + (b - a).unit * len1 - c).magnitude
1083
	local maincf = CFrameFromTopBack(a, (b - a):Cross(c - b).unit, - (b - a).unit)
1084
	if len1 > 1 / 100 then
1085
		local sz = VT(0.2, width, len1)
1086
		local w1 = CreatePart(3, Effects, Material, 0, 0.5, Color, "Trail", sz)
1087
		local sp = CreateMesh("SpecialMesh", w1, "Wedge", "", "", VT(0, 1, 1) * sz / w1.Size, VT(0, 0, 0))
1088
		w1.Anchored = true
1089
		w1.CFrame = maincf * ANGLES(math.pi, 0, math.pi / 2) * CF(0, width / 2, len1 / 2)
1090
		coroutine.resume(coroutine.create(function()
1091
			for i = 0.5, 1, delay * (2 / Animation_Speed) do
1092
				Swait()
1093
				w1.Transparency = i
1094
			end
1095
			w1.Parent = nil
1096
		end))
1097
		game:GetService("Debris"):AddItem(w1, 10)
1098
		--table.insert(list, w1)
1099
	end
1100
	if len2 > 1 / 100 then
1101
		local sz = VT(0.2, width, len2)
1102
		local w2 = CreatePart(3, Effects, Material, 0, 0.5, Color, "Trail", sz)
1103
		local sp = CreateMesh("SpecialMesh", w2, "Wedge", "", "", VT(0, 1, 1) * sz / w2.Size, VT(0, 0, 0))
1104
		w2.Anchored = true
1105
		w2.CFrame = maincf * ANGLES(math.pi, math.pi, -math.pi / 2) * CF(0, width / 2, -len1 - len2 / 2)
1106
		coroutine.resume(coroutine.create(function()
1107
			for i = 0.5, 1, delay * (2 / Animation_Speed) do
1108
				Swait()
1109
				w2.Transparency = i
1110
			end
1111
			w2.Parent = nil
1112
		end))
1113
		game:GetService("Debris"):AddItem(w2, 10)
1114
		--table.insert(list, w2)
1115
	end
1116
	--return unpack(list)
1117
end
1118
1119
--[[Usage:
1120
	local Pos = Part
1121
	local Offset = Part.CFrame * CF(0, 0, 0)
1122
	local Color = "Institutional white"
1123
	local Material = "Neon"
1124
	local TheDelay = 0.01
1125
	local Height = 4
1126
	BLCF = Offset
1127
	if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
1128
		local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
1129
		if a then game:GetService("Debris"):AddItem(a, 1) end
1130
		if b then game:GetService("Debris"):AddItem(b, 1) end
1131
		local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
1132
		if a then game:GetService("Debris"):AddItem(a, 1) end
1133
		if b then game:GetService("Debris"):AddItem(b, 1) end
1134
		SCFR = BLCF
1135
	elseif not SCFR then
1136
		SCFR = BLCF
1137
	end
1138
--
1139
BLCF = nil
1140
SCFR = nil
1141
--]]
1142
1143
--//=================================\\
1144
--\\=================================//
1145
1146
1147
1148
1149
1150
--//=================================\\
1151
--||	      RESIZE PLAYER
1152
--\\=================================//
1153
1154
if Player_Size ~= 1 then
1155
RootPart.Size = RootPart.Size * Player_Size
1156
Torso.Size = Torso.Size * Player_Size
1157
Head.Size = Head.Size * Player_Size
1158
RightArm.Size = RightArm.Size * Player_Size
1159
LeftArm.Size = LeftArm.Size * Player_Size
1160
RightLeg.Size = RightLeg.Size * Player_Size
1161
LeftLeg.Size = LeftLeg.Size * Player_Size
1162
RootJoint.Parent = RootPart
1163
Neck.Parent = Torso
1164
RightShoulder.Parent = Torso
1165
LeftShoulder.Parent = Torso
1166
RightHip.Parent = Torso
1167
LeftHip.Parent = Torso
1168
	
1169
RootJoint.C0 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
1170
	RootJoint.C1 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
1171
	Neck.C0 = NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0))
1172
	Neck.C1 = CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180))
1173
	RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0
1174
	LeftShoulder.C0 = CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0
1175
	if Disable_Moving_Arms == false then
1176
		RightShoulder.C1 = ANGLES(0, RAD(90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5)
1177
		LeftShoulder.C1 = ANGLES(0, RAD(-90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5)
1178
	else
1179
		RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
1180
		LeftShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
1181
	end
1182
	RightHip.C0 = CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
1183
	LeftHip.C0 = CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
1184
	RightHip.C1 = CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
1185
	LeftHip.C1 = CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
1186
end
1187
1188
1189
--//=================================\\
1190
--\\=================================//
1191
1192
1193
1194
1195
1196
--//=================================\\
1197
--||	     WEAPON CREATION
1198
--\\=================================//
1199
1200
local HandlePart = CreatePart(3, Weapon, "SmoothPlastic", 0, 0, "Really black", "Handle", VT(0, 0, 0))
1201
local HandleMesh = CreateMesh("SpecialMesh", HandlePart, "FileMesh", "93117521", "1015990846", VT(0.7,0.8,0.7), VT(0, 3.1 * Player_Size, 0))
1202
local HandleWeld = CreateWeldOrSnapOrMotor("Weld", HandlePart, Torso, HandlePart, CF(2 * Player_Size, 2 * Player_Size, 0.6 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(135)), CF(0, 0, 0))
1203
1204
local HitboxPart = CreatePart(3, Weapon, "SmoothPlastic", 0, 1, "Really black", "Hitbox", VT(0, 0, 0))
1205
local HitboxWeld = CreateWeldOrSnapOrMotor("Weld", HitboxPart, HandlePart, HitboxPart, CF(0 * Player_Size, 4 * Player_Size, 0 * Player_Size), CF(0, 0, 0))
1206
1207
local EffectPart = CreatePart(3, Weapon, "SmoothPlastic", 0, 1, "Really black", "Effect Part", VT(0, 0, 0))
1208
local EffectWeld = CreateWeldOrSnapOrMotor("Weld", EffectPart, HandlePart, EffectPart, CF(0 * Player_Size, 7 * Player_Size, 0 * Player_Size), CF(0, 0, 0))
1209
1210
if Player_Size ~= 1 then
1211
	for _, v in pairs (Weapon:GetChildren()) do
1212
		if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
1213
			local p1 = v.Part1
1214
			v.Part1 = nil
1215
			local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
1216
			v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
1217
			v.Part1 = p1
1218
		elseif v.ClassName == "Part" then
1219
			for _, b in pairs (v:GetChildren()) do
1220
				if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
1221
					b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
1222
				end
1223
			end
1224
		end
1225
	end
1226
end
1227
1228
for _, c in pairs(Weapon:GetChildren()) do
1229
	if c.ClassName == "Part" then
1230
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1231
	end
1232
end
1233
1234
if Start_Equipped == true and Start_Equipped_With_Equipped_Animation == false then
1235
	HandleWeld.Part0 = RightArm
1236
	HandleWeld.C0 = CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
1237
end
1238
1239
Weapon.Parent = Character
1240
1241
Humanoid.Died:connect(function()
1242
	ATTACK = true
1243
end)
1244
1245
print(Class_Name.." loaded.")
1246
1247
--//=================================\\
1248
--\\=================================//
1249
1250
1251
1252
1253
1254
--//=================================\\
1255
--||	     DAMAGE FUNCTIONS
1256
--\\=================================//
1257
1258
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
1259
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
1260
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
1261
	local BODYGYRO = IT("BodyGyro", STATPART)
1262
	local BODYPOSITION = IT("BodyPosition", STATPART)
1263
	BODYPOSITION.P = 2000
1264
	BODYPOSITION.D = 100
1265
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
1266
	if LABELTYPE == "Normal" then
1267
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
1268
	elseif LABELTYPE == "Debuff" then
1269
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
1270
	elseif LABELTYPE == "Interruption" then
1271
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
1272
	end
1273
	game:GetService("Debris"):AddItem(STATPART ,5)
1274
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
1275
	BILLBOARDGUI.Adornee = STATPART
1276
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
1277
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
1278
	BILLBOARDGUI.AlwaysOnTop = false
1279
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
1280
	TEXTLABEL.BackgroundTransparency = 1
1281
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
1282
	TEXTLABEL.Text = TEXT
1283
	TEXTLABEL.Font = "SourceSans"
1284
	TEXTLABEL.FontSize="Size42"
1285
	TEXTLABEL.TextColor3 = COLOR
1286
	TEXTLABEL.TextStrokeTransparency = 0
1287
	TEXTLABEL.TextScaled = true
1288
	TEXTLABEL.TextWrapped = true
1289
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
1290
		wait(0.2)
1291
		for i=1, 5 do
1292
			wait()
1293
			THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
1294
		end
1295
		wait(1.2)
1296
		for i=1, 5 do
1297
			wait()
1298
			THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
1299
			THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
1300
			THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
1301
		end
1302
		THEPART.Parent = nil
1303
	end),STATPART, BODYPOSITION, TEXTLABEL)
1304
end
1305
1306
function IncreaseOrDecreaseStat(LOCATION, STAT, AMOUNT, DURATION, SHOWTHESTAT)
1307
	if LOCATION:FindFirstChild("Stats") ~= nil then
1308
		if LOCATION.Stats:FindFirstChild("Block") ~= nil then
1309
			if LOCATION.Stats:FindFirstChild("Block").Value == true then
1310
				return
1311
			end
1312
		end
1313
		if LOCATION.Stats:FindFirstChild("ChangeStat") ~= nil and LOCATION.Stats:FindFirstChild("Block").Value == false then
1314
			local NewStatChange = IT("NumberValue")
1315
			NewStatChange.Value = AMOUNT
1316
			if STAT == "Defense" then
1317
				NewStatChange.Name = "ChangeDefense"
1318
			elseif STAT == "Damage" then
1319
				NewStatChange.Name = "ChangeDamage"
1320
			elseif STAT == "Movement" then
1321
				NewStatChange.Name = "ChangeMovement"
1322
			end
1323
			if SHOWTHESTAT == true then
1324
				if AMOUNT < 0 then
1325
					StatLabel("Debuff", LOCATION.Head.CFrame * CF(0, 0 + (LOCATION.Head.Size.z - 1), 0), "-"..STAT, C3(1, 1, 1))
1326
				elseif AMOUNT > 0 then
1327
					StatLabel("Debuff", LOCATION.Head.CFrame * CF(0, 0 + (LOCATION.Head.Size.z - 1), 0), "+"..STAT, C3(1, 1, 1))
1328
				end
1329
			end
1330
			if DURATION ~= nil and DURATION ~= 0 then
1331
				local StatDuration = IT("NumberValue")
1332
				StatDuration.Name = "Duration"
1333
				StatDuration.Value = DURATION
1334
				StatDuration.Parent = NewStatChange
1335
			end
1336
			NewStatChange.Parent = LOCATION.Stats:FindFirstChild("ChangeStat")
1337
		end
1338
	end
1339
end
1340
1341
--Usage: DamageFunction(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, hit, false, 5, 10, MRANDOM(5, 10), "Normal", Part, 0.5, false, true, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
1342
function DamageFunction(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, HIT, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, DECREASETHESTAT, DECREASEAMOUNT, DECREASEDURATION, SHOWDECREASEDSTAT)
1343
	if HIT.Parent == nil then
1344
		return
1345
	end
1346
	local HITHUMANOID = HIT.Parent:FindFirstChild("Humanoid")
1347
	for _, v in pairs(HIT.Parent:GetChildren()) do
1348
		if v:IsA("Humanoid") then
1349
			HITHUMANOID = v
1350
            HITHUMANOID.MaxHealth = 100
1351
            if HITHUMANOID.Health > 100 then
1352
            HITHUMANOID.Health = 100
1353
            end
1354
		end
1355
	end
1356
	if HIT.Name == "Hitbox" and RANGED ~= true and HIT.Parent ~= Weapon and Enable_Stagger_Hit == true then
1357
		StaggerHit.Value = true
1358
		if Play_Hitbox_Hit_Sound == true then
1359
			if HITWEAPONSOUND ~= "" and HITWEAPONSOUND ~= "nil" then
1360
				CreateSound(HITWEAPONSOUND, HIT, 1, HITWEAPONSOUNDPITCH)
1361
			end
1362
		end
1363
		return
1364
	end
1365
	if HIT.Parent.Parent:FindFirstChild("Torso") ~= nil or HIT.Parent.Parent:FindFirstChild("UpperTorso") ~= nil then
1366
		HITHUMANOID = HIT.Parent.Parent:FindFirstChild("Humanoid")
1367
	end
1368
	if HIT.Parent.ClassName == "Hat" or HIT.ClassName == "Accessory" then
1369
		HIT = HIT.Parent.Parent:FindFirstChild("Head")
1370
	end
1371
	if HITHUMANOID ~= nil and HIT.Parent.Name ~= Character.Name and (HIT.Parent:FindFirstChild("Torso") ~= nil or HIT.Parent:FindFirstChild("UpperTorso") ~= nil) then
1372
		if HIT.Parent:FindFirstChild("DebounceHit") ~= nil then
1373
			if HIT.Parent.DebounceHit.Value == true then
1374
				return
1375
			end
1376
		end
1377
		if AntiTeamKill.Value == true then
1378
			if Player.Neutral == false and game.Players:GetPlayerFromCharacter(HIT.Parent) ~= nil then
1379
				if game.Players:GetPlayerFromCharacter(HIT.Parent).TeamColor == Player.TeamColor then
1380
					return
1381
				end
1382
			end
1383
		end
1384
		if HITEVENWHENDEAD == false then
1385
			if HIT.Parent:FindFirstChild("Humanoid") ~= nil then
1386
				if HIT.Parent:FindFirstChild("Humanoid").Health <= 0 then
1387
					return
1388
				end
1389
			end
1390
		end
1391
		if HIT.Parent:FindFirstChild("Stats") ~= nil then
1392
			if HIT.Parent.Stats:FindFirstChild("StunValue") ~= nil then
1393
				HIT.Parent.Stats:FindFirstChild("StunValue").Value = HIT.Parent.Stats:FindFirstChild("StunValue").Value + INCREASESTUN
1394
			end
1395
		end
1396
		if HIT.Parent:FindFirstChild("Stats") ~= nil then
1397
			if HIT.Parent.Stats:FindFirstChild("Stagger") ~= nil then
1398
				if STAGGER == true and Enable_Stagger == true then
1399
					HIT.Parent.Stats:FindFirstChild("Stagger").Value = true
1400
				end
1401
			end
1402
		end
1403
		if HIT.Parent:FindFirstChild("Stats") ~= nil then
1404
			if HIT.Parent.Stats:FindFirstChild("Block") ~= nil then
1405
				if HIT.Parent.Stats:FindFirstChild("Block").Value == true then
1406
					HASBEENBLOCKED = true
1407
					if HIT.Parent.Stats:FindFirstChild("Block"):FindFirstChild("BlockDebounce") == nil then
1408
						StatLabel("Interruption", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Blocked!", C3(0, 100 / 255, 255 / 255))
1409
						if RANGED ~= true then
1410
							if HITBLOCKSOUND ~= "" and HITBLOCKSOUND ~= "nil" then
1411
								CreateSound(HITBLOCKSOUND, HIT, 1, HITBLOCKSOUNDPITCH)
1412
							end
1413
						end
1414
						local BlockDebounce = IT("BoolValue", HIT.Parent.Stats:FindFirstChild("Block"))
1415
						BlockDebounce.Name = "BlockDebounce"
1416
						BlockDebounce.Value = true
1417
						if RANGED ~= true then
1418
							game:GetService("Debris"):AddItem(BlockDebounce, 0.5)
1419
						else
1420
							game:GetService("Debris"):AddItem(BlockDebounce, 0.1)
1421
						end
1422
					end
1423
					if RANGED ~= true and Enable_Stagger == true then
1424
						HIT.Parent.Stats:FindFirstChild("Block").Value = false
1425
						Stagger.Value = true
1426
					end
1427
					return
1428
				end
1429
			end
1430
		end
1431
		if DECREASETHESTAT ~= nil then
1432
			if HIT.Parent:FindFirstChild("Stats") ~= nil then
1433
				IncreaseOrDecreaseStat(HIT.Parent, DECREASETHESTAT, DECREASEAMOUNT, DECREASEDURATION, SHOWDECREASEDSTAT)
1434
			end
1435
		end
1436
		local DAMAGE = MRANDOM(MINIMUMDAMAGE,MAXIMUMDAMAGE) * Damage.Value
1437
		if HIT.Parent:FindFirstChild("Stats") ~= nil then
1438
			if HIT.Parent.Stats:FindFirstChild("Defense") ~= nil then
1439
				if CanPenetrateArmor.Value == true then
1440
					DAMAGE = DAMAGE
1441
				else
1442
					DAMAGE = DAMAGE / HIT.Parent.Stats:FindFirstChild("Defense").Value
1443
				end
1444
			elseif HIT.Parent.Stats:FindFirstChild("Defense") == nil then
1445
				DAMAGE = DAMAGE
1446
			end
1447
		end
1448
		if CanCrit.Value == true then
1449
			CRITCHANCENUMBER = MRANDOM(1, CritChance.Value)
1450
			if CRITCHANCENUMBER == 1 then
1451
				DAMAGE = DAMAGE * 2
1452
			end
1453
		end
1454
		DAMAGE = math.floor(DAMAGE)
1455
		if HASBEENBLOCKED == false then
1456
		end
1457
		if DAMAGE <= 3 and HASBEENBLOCKED == false then
1458
			if STAGGERHIT == true and Enable_Stagger_Hit == true and RANGED ~= true then
1459
				StaggerHit.Value = true
1460
			end
1461
			if HITARMORSOUND ~= "" and HITARMORSOUND ~= "nil" then
1462
				CreateSound(HITARMORSOUND, HIT, 1, HITARMORSOUNDPITCH)
1463
			end
1464
		elseif DAMAGE == 100 then
1465
               HITHUMANOID.Health = 0
1466
               HIT.Parent.Torso.Anchored = false
1467
		elseif DAMAGE == 101 then
1468
               HIT.Parent.Torso.Anchored = true
1469
		elseif DAMAGE > 3 then
1470
			HITHUMANOID.Health = HITHUMANOID.Health - DAMAGE
1471
			if HITPLAYERSOUND ~= "" and HITPLAYERSOUND ~= "nil" then
1472
				CreateSound(HITPLAYERSOUND, HIT, 1, HITPLAYERSOUNDPITCH)
1473
			end
1474
		end
1475
		if DAMAGE > 3 and DAMAGE < 20 and HASBEENBLOCKED == false then
1476
			if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
1477
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
1478
				CreateSound("296102734", HIT, 1, 1)
1479
			else
1480
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(255/255, 220/255, 0))
1481
			end
1482
		elseif DAMAGE >= 20 and HASBEENBLOCKED == false and DAMAGE < 100 then
1483
			HITHUMANOID.Health = HITHUMANOID.Health - DAMAGE
1484
			if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
1485
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
1486
				CreateSound("296102734", HIT, 1, 1)
1487
			else
1488
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(255/255, 0, 0))
1489
			end
1490
		elseif DAMAGE <= 3 and HASBEENBLOCKED == false then
1491
			HITHUMANOID.Health = HITHUMANOID.Health - DAMAGE
1492
			if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
1493
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
1494
				CreateSound("296102734", HIT, 1, 1)
1495
			else
1496
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(225/255, 225/255, 225/255))
1497
			end
1498
		end
1499
		if TYPE == "Normal" then
1500
			local vp = IT("BodyVelocity")
1501
			vp.P=500
1502
			vp.maxForce = VT(math.huge, 0, math.huge)
1503
			if KNOCKBACKTYPE == 1 then
1504
				vp.Velocity = PROPERTY.CFrame.lookVector * KNOCKBACK + PROPERTY.Velocity / 1.05
1505
			elseif KNOCKBACKTYPE == 2 then
1506
				vp.Velocity = PROPERTY.CFrame.lookVector * KNOCKBACK
1507
			end
1508
			if KNOCKBACK > 0 and HASBEENBLOCKED == false then
1509
				vp.Parent = HIT--.Parent.Torso
1510
			end
1511
			game:GetService("Debris"):AddItem(vp, 0.5)
1512
		end
1513
		HASBEENBLOCKED = false
1514
		RecentEnemy.Value = HIT.Parent
1515
		local DebounceHit = IT("BoolValue", HIT.Parent)
1516
		DebounceHit.Name = "DebounceHit"
1517
		DebounceHit.Value = true
1518
		game:GetService("Debris"):AddItem(DebounceHit, DELAY)
1519
	end
1520
end
1521
1522
--Usage: MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Part, 5, true, 5, 10, MRANDOM(5, 10), "Normal", Part, 0.5, false, true, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
1523
function MagnitudeDamage(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, PART, MAGNITUDE, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, MAGNITUDEDECREASETHESTAT, MAGNITUDEDECREASEAMOUNT, MAGNITUDEDECREASEDURATION, MAGNITUDESHOWDECREASEDSTAT)
1524
	for _, c in pairs(workspace:GetChildren()) do
1525
		local HUMANOID = c:FindFirstChild("Humanoid")
1526
		local HEAD = nil
1527
		if HUMANOID ~= nil then
1528
			for _, d in pairs(c:GetChildren()) do
1529
				if d.ClassName == "Model" and RANGED ~= true then
1530
					HEAD = d:FindFirstChild("Hitbox")
1531
					if HEAD ~= nil then
1532
						local THEMAGNITUDE = (HEAD.Position - PART.Position).magnitude
1533
						if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
1534
							if Play_Hitbox_Hit_Sound == true then
1535
								local HitRefpart = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
1536
								HitRefpart.Anchored = true
1537
								HitRefpart.CFrame = CF(HEAD.Position)
1538
								CreateSound(HITWEAPONSOUND, HitRefpart, 1, HITWEAPONSOUNDPITCH)
1539
							end
1540
							if Enable_Stagger_Hit == true then
1541
								StaggerHit.Value = true
1542
							end
1543
						end
1544
					end
1545
				elseif d:IsA"BasePart" then
1546
					HEAD = d
1547
					if HEAD ~= nil then
1548
						local THEMAGNITUDE = (HEAD.Position - PART.Position).magnitude
1549
						if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
1550
							DamageFunction(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, HEAD, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, MAGNITUDEDECREASETHESTAT, MAGNITUDEDECREASEAMOUNT, MAGNITUDEDECREASEDURATION, MAGNITUDESHOWDECREASEDSTAT)
1551
						end
1552
					end
1553
				end
1554
			end
1555
		end
1556
	end
1557
end
1558
1559
--Usage: MagnitudeBuffOrDebuff(Part, 5, "Defense", -0.1, 3, true, true)
1560
function MagnitudeBuffOrDebuff(PART, MAGNITUDE, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF, APPLYTOOTHERSINSTEAD)
1561
	if Player.Neutral == true then
1562
		IncreaseOrDecreaseStat(Character, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
1563
	end
1564
	for _, c in pairs(workspace:GetChildren()) do
1565
		local HUMANOID = c:FindFirstChild("Humanoid")
1566
		local THEHEAD = nil
1567
		if HUMANOID ~= nil then
1568
			if c:FindFirstChild("Torso") ~= nil then
1569
				THEHEAD = c:FindFirstChild("Torso")
1570
			elseif c:FindFirstChild("UpperTorso") ~= nil then
1571
				THEHEAD = c:FindFirstChild("UpperTorso")
1572
			end
1573
			if THEHEAD ~= nil then
1574
				local THEMAGNITUDE = (THEHEAD.Position - PART.Position).magnitude
1575
				print("yes 1")
1576
				if APPLYTOOTHERSINSTEAD == true then
1577
					if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
1578
						if Player.Neutral == false and game.Players:GetPlayerFromCharacter(THEHEAD.Parent) ~= nil then
1579
							if game.Players:GetPlayerFromCharacter(THEHEAD.Parent).TeamColor == Player.TeamColor then
1580
								IncreaseOrDecreaseStat(THEHEAD.Parent, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
1581
							end
1582
						end
1583
					end
1584
				elseif APPLYTOOTHERSINSTEAD == false then
1585
					if THEMAGNITUDE <= (MAGNITUDE * Player_Size) then
1586
						if Player.Neutral == false and game.Players:GetPlayerFromCharacter(THEHEAD.Parent) ~= nil then
1587
							if game.Players:GetPlayerFromCharacter(THEHEAD.Parent).TeamColor == Player.TeamColor then
1588
								IncreaseOrDecreaseStat(THEHEAD.Parent, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
1589
							end
1590
						end
1591
					end
1592
				end
1593
			end
1594
		end
1595
	end
1596
end
1597
1598
--//=================================\\
1599
--\\=================================//
1600
1601
1602
1603
1604
1605
--//=================================\\
1606
--||			WEAPON GUI
1607
--\\=================================//
1608
1609
local MANABAR = CreateFrame(WEAPONGUI, Mana_Bar_Background_Transparency, 2, UD2(0.23, 0, 0.82, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_8.r, Custom_Colors.Custom_Color_8.g, Custom_Colors.Custom_Color_8.b), C3(0, 0, 0),"Mana Bar") 
1610
local MANACOVER = CreateFrame(MANABAR, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_5.r, Custom_Colors.Custom_Color_5.g, Custom_Colors.Custom_Color_5.b), C3(0, 0, 0),"Mana Cover")
1611
local MANATEXT = CreateLabel(MANABAR, Mana_Name.." ["..FLOOR(Mana.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Mana Text")
1612
1613
local HEALTHBAR = CreateFrame(WEAPONGUI, Health_Bar_Background_Transparency, 2, UD2(0.5, 0, 0.82, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_11.r, Custom_Colors.Custom_Color_11.g, Custom_Colors.Custom_Color_11.b), C3(0, 0, 0), "Health Bar")
1614
local HEALTHCOVER = CreateFrame(HEALTHBAR, 0, 2,UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_6.r, Custom_Colors.Custom_Color_6.g, Custom_Colors.Custom_Color_6.b), C3(0, 0, 0), "Health Cover")
1615
local HEALTHTEXT = CreateLabel(HEALTHBAR, "Health ["..FLOOR(Humanoid.Health).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Health Text")
1616
1617
local STUNFRAME = CreateFrame(nil, Stun_Bar_Background_Transparency, 2, UD2(0.5, 0, 0.78, 0),UD2(0.26, 0, 0, 0),C3(Custom_Colors.Custom_Color_10.r, Custom_Colors.Custom_Color_10.g, Custom_Colors.Custom_Color_10.b), C3(0, 0, 0), "Stun Frame")
1618
local STUNBAR = CreateFrame(STUNFRAME, 0, 2, UD2(0, 0, 0, 0),UD2(0, 0, 1, 0),C3(Custom_Colors.Custom_Color_7.r, Custom_Colors.Custom_Color_7.g, Custom_Colors.Custom_Color_7.b), C3(0, 0, 0), "Stun Bar")
1619
local STUNTEXT = CreateLabel(STUNFRAME, "Stun ["..FLOOR(StunValue.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Stun Text")
1620
1621
local SECONDARYMANABAR = CreateFrame(nil, Secondary_Mana_Bar_Background_Transparency, 2, UD2(0.23, 0, 0.78, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_9.r, Custom_Colors.Custom_Color_9.g, Custom_Colors.Custom_Color_9.b), C3(0, 0, 0),"Secondary Mana Bar") 
1622
local SECONDARYMANACOVER = CreateFrame(SECONDARYMANABAR, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_4.r, Custom_Colors.Custom_Color_4.g, Custom_Colors.Custom_Color_4.b), C3(0, 0, 0),"Secondary Mana Cover")
1623
local SECONDARYMANATEXT = CreateLabel(SECONDARYMANABAR, Secondary_Mana_Name.." ["..FLOOR(SecondaryMana.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Secondary Mana Text")
1624
1625
local DEFENSEFRAME = CreateFrame(nil, Stat_Background_Transparency, 2, UD2(0.23, 0, Stat_Offset, 0), UD2(0.075, 0, 0, 0), C3(100 / 255, 100 / 255, 255 / 255), C3(0, 0, 0),"Defense Frame")
1626
local DEFENSETEXT = CreateLabel(DEFENSEFRAME, "Defense ["..(Defense.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Defense Text")
1627
1628
local DAMAGEFRAME = CreateFrame(nil, Stat_Background_Transparency, 2, UD2(0.456, 0, Stat_Offset, 0), UD2(0.075, 0, 0, 0), C3(255 / 255, 100 / 255, 100 / 255), C3(0, 0, 0),"Damage Frame")
1629
local DAMAGETEXT = CreateLabel(DAMAGEFRAME, "Damage ["..(Damage.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Damage Text")
1630
1631
local MOVEMENTFRAME = CreateFrame(nil, Stat_Background_Transparency, 2, UD2(0.685, 0, Stat_Offset, 0), UD2(0.075, 0, 0, 0), C3(100 / 255, 255 / 255, 100 / 255), C3(0, 0, 0),"Movement Frame")
1632
local MOVEMENTTEXT = CreateLabel(MOVEMENTFRAME, "Movement ["..(Movement.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Movement Text")
1633
1634
local SKILL1FRAME = CreateFrame(nil, Ability_Background_Transparency, 2, UD2(0.23, 0, 0.86, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_12.r, Custom_Colors.Custom_Color_12.g, Custom_Colors.Custom_Color_12.b), C3(0, 0, 0), "Skill 1 Frame")
1635
local SKILL2FRAME = CreateFrame(nil, Ability_Background_Transparency, 2, UD2(0.50, 0, 0.86, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_12.r, Custom_Colors.Custom_Color_12.g, Custom_Colors.Custom_Color_12.b), C3(0, 0, 0), "Skill 2 Frame")
1636
local SKILL3FRAME = CreateFrame(nil, Ability_Background_Transparency, 2, UD2(0.23, 0, 0.93, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_12.r, Custom_Colors.Custom_Color_12.g, Custom_Colors.Custom_Color_12.b), C3(0, 0, 0), "Skill 3 Frame")
1637
local SKILL4FRAME = CreateFrame(nil, Ability_Background_Transparency, 2, UD2(0.50, 0, 0.93, 0), UD2(0.26, 0, 0, 0), C3(Custom_Colors.Custom_Color_12.r, Custom_Colors.Custom_Color_12.g, Custom_Colors.Custom_Color_12.b), C3(0, 0, 0), "Skill 4 Frame")
1638
1639
local SKILL1BAR = CreateFrame(SKILL1FRAME, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_3.r, Custom_Colors.Custom_Color_3.g, Custom_Colors.Custom_Color_3.b), C3(0, 0, 0), "Skill 1 Bar")
1640
local SKILL2BAR = CreateFrame(SKILL2FRAME, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_3.r, Custom_Colors.Custom_Color_3.g, Custom_Colors.Custom_Color_3.b), C3(0, 0, 0), "Skill 2 Bar")
1641
local SKILL3BAR = CreateFrame(SKILL3FRAME, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_3.r, Custom_Colors.Custom_Color_3.g, Custom_Colors.Custom_Color_3.b), C3(0, 0, 0), "Skill 3 Bar")
1642
local SKILL4BAR = CreateFrame(SKILL4FRAME, 0, 2, UD2(0, 0, 0, 0), UD2(0, 0, 1, 0), C3(Custom_Colors.Custom_Color_3.r, Custom_Colors.Custom_Color_3.g, Custom_Colors.Custom_Color_3.b), C3(0, 0, 0), "Skill 4 Bar")
1643
1644
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Ability 1", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 1")
1645
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[X] Ability 2", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 2")
1646
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 3")
1647
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 4")
1648
1649
if Enable_Gui == true then
1650
	WEAPONGUI.Parent = PlayerGui
1651
end
1652
1653
if Enable_Stats == true and Show_Stats == true then
1654
	DEFENSEFRAME.Parent = WEAPONGUI
1655
	DAMAGEFRAME.Parent = WEAPONGUI
1656
	MOVEMENTFRAME.Parent = WEAPONGUI
1657
end
1658
1659
if Enable_Secondary_Bar == true then
1660
	SECONDARYMANABAR.Parent = WEAPONGUI
1661
end
1662
1663
if Enable_Abilities == true then
1664
	SKILL1FRAME.Parent = WEAPONGUI
1665
	SKILL2FRAME.Parent = WEAPONGUI
1666
	SKILL3FRAME.Parent = WEAPONGUI
1667
	SKILL4FRAME.Parent = WEAPONGUI
1668
end
1669
1670
if Enable_Stun == true then
1671
	STUNFRAME.Parent = WEAPONGUI
1672
end
1673
1674
function UpdateGUI()
1675
	MANABAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1676
	MANACOVER:TweenSize(UD2(1 * (Mana.Value / Max_Mana), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1677
	MANATEXT.Text = Mana_Name.." ["..FLOOR(Mana.Value).."]"
1678
	HEALTHBAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1679
	HEALTHCOVER:TweenSize(UD2(1 * (Humanoid.Health / Humanoid.MaxHealth), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1680
	HEALTHTEXT.Text = "Health ["..FLOOR(Humanoid.Health).."]"
1681
	if Enable_Abilities == true then
1682
		SKILL1FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1683
		SKILL2FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1684
		SKILL3FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1685
		SKILL4FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1686
		SKILL1BAR:TweenSize(UD2(1 * (CO1 / Cooldown_1), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1687
		SKILL2BAR:TweenSize(UD2(1 * (CO2 / Cooldown_2), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1688
		SKILL3BAR:TweenSize(UD2(1 * (CO3 / Cooldown_3), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1689
		SKILL4BAR:TweenSize(UD2(1 * (CO4 / Cooldown_4), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1690
	end
1691
	if Enable_Stats == true and Show_Stats == true then
1692
		DEFENSEFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1693
		DEFENSETEXT.Text = "Defense ["..(Defense.Value * 100).."%]"
1694
		DAMAGEFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1695
		DAMAGETEXT.Text = "Damage ["..(Damage.Value * 100).."%]"
1696
		MOVEMENTFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1697
		MOVEMENTTEXT.Text = "Movement ["..(Movement.Value * 100).."%]"
1698
	end
1699
	if Enable_Stun == true then
1700
		STUNFRAME:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1701
		STUNBAR:TweenSize(UD2(1 * (StunValue.Value / Max_Stun), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1702
		STUNTEXT.Text = "Stun ["..FLOOR(StunValue.Value).."]"
1703
	end
1704
	if Enable_Secondary_Bar == true then
1705
		SECONDARYMANABAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1706
		SECONDARYMANACOVER:TweenSize(UD2(1 * (SecondaryMana.Value / Max_Secondary_Mana), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1707
		SECONDARYMANATEXT.Text = Secondary_Mana_Name.." ["..FLOOR(SecondaryMana.Value).."]"
1708
	end
1709
end
1710
1711
if Enable_Gui == true then
1712
	UpdateGUI()
1713
	for _, v in pairs (WEAPONGUI:GetChildren()) do
1714
		if v.ClassName == "Frame" then
1715
			for _, b in pairs (v:GetChildren()) do
1716
				if b.ClassName == "TextLabel" then
1717
					coroutine.resume(coroutine.create(function(THETEXTLABEL)
1718
						wait(Menu_Update_Speed)
1719
						for i = 1, 0, -0.1 do
1720
							Swait()
1721
							THETEXTLABEL.TextTransparency = i
1722
							THETEXTLABEL.TextStrokeTransparency = i
1723
							end
1724
						THETEXTLABEL.TextTransparency = 0
1725
						THETEXTLABEL.TextStrokeTransparency = 0
1726
					end), b)
1727
				end
1728
			end
1729
		end
1730
	end
1731
end
1732
1733
--//=================================\\
1734
--||        ABYSSAL FUNCTIONS
1735
--\\=================================//
1736
1737
function accessblack()
1738
m = Character:GetChildren()
1739
for i = 1, #m do
1740
if m[i].ClassName == "Accessory" then
1741
m[i].Handle.Transparency = 1
1742
end
1743
end
1744
end
1745
1746
function accessnormal()
1747
m = Character:GetChildren()
1748
for i = 1, #m do
1749
if m[i].ClassName == "Accessory" then
1750
m[i].Handle.Transparency = 0
1751
end
1752
end
1753
end
1754
1755
function cloak()
1756
Face.Texture = AFaceID
1757
accessblack()
1758
m = Character:GetChildren()
1759
for i = 1, #m do
1760
if m[i].ClassName == "Part" then
1761
if m[i]:FindFirstChildOfClass("ParticleEmitter") then
1762
m[i].PE.Enabled = true
1763
m[i].Transparency = 1
1764
end
1765
end
1766
end
1767
end
1768
1769
function decloak()
1770
Face.Texture = FaceID
1771
accessnormal()
1772
m = Character:GetChildren()
1773
for i = 1, #m do
1774
if m[i].ClassName == "Part" then
1775
if m[i]:FindFirstChildOfClass("ParticleEmitter") then
1776
m[i].PE.Enabled = false
1777
m[i].Transparency = 0
1778
end
1779
end
1780
end
1781
end
1782
1783
function warpdecloak()
1784
Face.Texture = ""
1785
HandlePart.Transparency = 1
1786
HitboxPart.Transparency = 1
1787
m = Character:GetChildren()
1788
for i = 1, #m do
1789
if m[i].ClassName == "Part" then
1790
if m[i]:FindFirstChildOfClass("ParticleEmitter") then
1791
m[i].PE.Enabled = false
1792
end
1793
end
1794
end
1795
end
1796
1797
--//=================================\\
1798
--||	     SKILL FUNCTIONS
1799
--\\=================================//
1800
1801
function UpdateSkillsAndStuff()
1802
	if Mana_Regen_Mode == "1" then
1803
		if Mana.Value >= Max_Mana then
1804
			Mana.Value = Max_Mana
1805
		elseif Mana.Value < 0 then
1806
			Mana.Value = 0
1807
		else
1808
			if MANADELAYNUMBER <= Mana_Wait then
1809
				MANADELAYNUMBER = MANADELAYNUMBER + 1
1810
			else
1811
				MANADELAYNUMBER = 0
1812
				Mana.Value = Mana.Value + Recover_Mana
1813
			end
1814
		end
1815
	elseif Mana_Regen_Mode == "2" then
1816
		if Mana.Value <= Max_Mana then
1817
			Mana.Value = Mana.Value + (Recover_Mana / 30) / Animation_Speed
1818
		elseif Mana.Value >= Max_Mana then
1819
			Mana.Value = Max_Mana
1820
		elseif Mana.Value < 0 then
1821
			Mana.Value = 0
1822
		end
1823
	end
1824
	if Enable_Secondary_Bar == true then
1825
		if Secondary_Mana_Regen_Mode == "1" then
1826
			if SecondaryMana.Value >= Max_Secondary_Mana then
1827
				SecondaryMana.Value = Max_Secondary_Mana
1828
			elseif SecondaryMana.Value < 0 then
1829
				SecondaryMana.Value = 0
1830
			else
1831
				if SECONDARYMANADELAYNUMBER <= Secondary_Mana_Wait then
1832
					SECONDARYMANADELAYNUMBER = SECONDARYMANADELAYNUMBER + 1
1833
				else
1834
					SECONDARYMANADELAYNUMBER = 0
1835
					SecondaryMana.Value = SecondaryMana.Value + Recover_Secondary_Mana
1836
				end
1837
			end
1838
		elseif Secondary_Mana_Regen_Mode == "2" then
1839
			if SecondaryMana.Value <= Max_Secondary_Mana then
1840
				SecondaryMana.Value = SecondaryMana.Value + (Recover_Secondary_Mana / 30) / Animation_Speed
1841
			elseif SecondaryMana.Value >= Max_Secondary_Mana then
1842
				SecondaryMana.Value = Max_Secondary_Mana
1843
			elseif SecondaryMana.Value < 0 then
1844
				SecondaryMana.Value = 0
1845
			end
1846
		end
1847
	else
1848
		SecondaryMana.Value = 0
1849
	end
1850
	if Enable_Stun == true then
1851
		if Stun_Lose_Mode == "1" then
1852
			if StunValue.Value > Max_Stun then
1853
				StunValue.Value = Max_Stun
1854
			elseif StunValue.Value <= 0 then
1855
				StunValue.Value = 0
1856
			else
1857
				if STUNDELAYNUMBER <= Stun_Wait then
1858
					STUNDELAYNUMBER = STUNDELAYNUMBER + 1
1859
				else
1860
					STUNDELAYNUMBER = 0
1861
					StunValue.Value = StunValue.Value - Lose_Stun
1862
				end
1863
			end
1864
		elseif Stun_Lose_Mode == "2" then
1865
			if StunValue.Value <= Max_Stun and StunValue.Value > 0 then
1866
				StunValue.Value = StunValue.Value - (Lose_Stun / 30) / Animation_Speed
1867
			elseif StunValue.Value > Max_Stun then
1868
				StunValue.Value = Max_Stun
1869
			elseif StunValue.Value <= 0 then
1870
				StunValue.Value = 0
1871
			end
1872
		end
1873
	else
1874
		StunValue.Value = 0
1875
	end
1876
	if Enable_Abilities == true then
1877
		if CO1 <= Cooldown_1 then
1878
			CO1 = CO1 + (1 / 30) / Animation_Speed
1879
		elseif CO1 >= Cooldown_1 then
1880
			CO1 = Cooldown_1
1881
		end
1882
		if CO2 <= Cooldown_2 then
1883
			CO2 = CO2 + (1 / 30) / Animation_Speed
1884
		elseif CO2 >= Cooldown_2 then
1885
			CO2 = Cooldown_2
1886
		end
1887
		if CO3 <= Cooldown_3 then
1888
			CO3 = CO3 + (1 / 30) / Animation_Speed
1889
		elseif CO3 >= Cooldown_3 then
1890
			CO3 = Cooldown_3
1891
		end
1892
		if CO4 <= Cooldown_4 then
1893
			CO4 = CO4 + (1 / 30) / Animation_Speed
1894
		elseif CO4 >= Cooldown_4 then
1895
			CO4 = Cooldown_4
1896
		end
1897
	end
1898
end
1899
1900
--//=================================\\
1901
--\\=================================//
1902
1903
1904
1905
1906
1907
--//=================================\\
1908
--||	ATTACK FUNCTIONS AND STUFF
1909
--\\=================================//
1910
1911
function EquipWeapon()
1912
	--ATTACK = true
1913
	DEFENSECHANGE1.Parent = nil
1914
	MOVEMENTCHANGE1.Parent = ChangeStat
1915
	for i=0, 1, 0.5 / Animation_Speed do
1916
		Swait()
1917
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.3 / Animation_Speed)
1918
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
1919
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.75 * Player_Size, 0 * Player_Size) * ANGLES(RAD(140), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
1920
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
1921
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-7.5)), 0.3 / Animation_Speed)
1922
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.3 / Animation_Speed)
1923
	end
1924
	for i=0, 1, 0.08 / Animation_Speed do
1925
		Swait()
1926
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.3 / Animation_Speed)
1927
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
1928
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.75 * Player_Size, 0 * Player_Size) * ANGLES(RAD(210), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
1929
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
1930
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-7.5)), 0.3 / Animation_Speed)
1931
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.3 / Animation_Speed)
1932
	end
1933
	HandleWeld.Part0 = RightArm
1934
	HandleWeld.C0 = CF(-0.05 * Player_Size, -1 * Player_Size, -0.05 * Player_Size) * ANGLES(RAD(-27), RAD(0), RAD(-19)) * ANGLES(RAD(0), RAD(110), RAD(0))
1935
	CreateSound("174884033", HitboxPart, 1, 1.5)
1936
	for i=0, 1, 0.5 / Animation_Speed do
1937
		Swait()
1938
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.3 / Animation_Speed)
1939
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-2.5), RAD(0), RAD(30)), 0.3 / Animation_Speed)
1940
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(80)) * ANGLES(RAD(20), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
1941
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
1942
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-7.5)), 0.3 / Animation_Speed)
1943
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.3 / Animation_Speed)
1944
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-70), RAD(90), RAD(0)), 0.3 / Animation_Speed)
1945
	end
1946
	LASTPOINT = EffectPart.CFrame
1947
	for i=0, 1, 0.08 / Animation_Speed do
1948
		Swait()
1949
		TrailEffect("Institutional white", "Neon", EffectPart.CFrame, LASTPOINT, "Block", 0, 0.2, ANGLES(0, 0, 0), -0.01, 0, -0.01, 0.1)
1950
		LASTPOINT = EffectPart.CFrame
1951
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
1952
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-2.5), RAD(0), RAD(30)), 0.4 / Animation_Speed)
1953
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(80)) * ANGLES(RAD(-60), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
1954
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
1955
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-7.5)), 0.4 / Animation_Speed)
1956
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
1957
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-140), RAD(90), RAD(0)), 0.3 / Animation_Speed)
1958
	end
1959
	LASTPOINT = nil
1960
	--ATTACK = false
1961
end
1962
1963
function UnequipWeapon()
1964
	--ATTACK = true
1965
	for i=0, 1, 0.5 / Animation_Speed do
1966
		Swait()
1967
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.3 / Animation_Speed)
1968
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
1969
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.75 * Player_Size, 0 * Player_Size) * ANGLES(RAD(140), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
1970
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
1971
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-7.5)), 0.3 / Animation_Speed)
1972
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.3 / Animation_Speed)
1973
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(-0.05 * Player_Size, -1 * Player_Size, -0.05 * Player_Size) * ANGLES(RAD(-27), RAD(0), RAD(-19)) * ANGLES(RAD(0), RAD(110), RAD(0)), 0.3 / Animation_Speed)
1974
	end
1975
	CreateSound("245542809", HitboxPart, 1, 1.2)
1976
	for i=0, 1, 0.08 / Animation_Speed do
1977
		Swait()
1978
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.3 / Animation_Speed)
1979
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
1980
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.75 * Player_Size, 0 * Player_Size) * ANGLES(RAD(210), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
1981
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
1982
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-7.5)), 0.3 / Animation_Speed)
1983
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.3 / Animation_Speed)
1984
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(-0.05 * Player_Size, -1 * Player_Size, -0.05 * Player_Size) * ANGLES(RAD(-27), RAD(0), RAD(-19)) * ANGLES(RAD(0), RAD(110), RAD(0)), 0.3 / Animation_Speed)
1985
	end
1986
	HandleWeld.Part0 = Torso
1987
	HandleWeld.C0 = CF(2 * Player_Size, 2 * Player_Size, 0.6 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(135))
1988
	for i=0, 1, 0.5 / Animation_Speed do
1989
		Swait()
1990
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-30)), 0.3 / Animation_Speed)
1991
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-2.5), RAD(0), RAD(30)), 0.3 / Animation_Speed)
1992
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.75 * Player_Size, 0 * Player_Size) * ANGLES(RAD(140), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
1993
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
1994
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(95), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-7.5)), 0.3 / Animation_Speed)
1995
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-55), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.3 / Animation_Speed)
1996
	end
1997
	for i=0, 1, 0.08 / Animation_Speed do
1998
		Swait()
1999
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2000
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2001
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2002
		Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)), 0.3 / Animation_Speed)
2003
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
2004
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
2005
		if Disable_Moving_Arms == false then
2006
			RightShoulder.C1 = Clerp(RightShoulder.C1, ANGLES(0, RAD(90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5), 0.3 / Animation_Speed)
2007
			LeftShoulder.C1 = Clerp(LeftShoulder.C1, ANGLES(0, RAD(-90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5), 0.3 / Animation_Speed)
2008
		else
2009
			RightShoulder.C1 = Clerp(RightShoulder.C1, CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size), 0.3 / Animation_Speed)
2010
			LeftShoulder.C1 = Clerp(LeftShoulder.C1, CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size), 0.3 / Animation_Speed)
2011
		end
2012
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2013
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2014
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2015
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2016
	end
2017
	RootJoint.C0 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
2018
	RootJoint.C1 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
2019
	Neck.C0 = NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0))
2020
	Neck.C1 = CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180))
2021
	RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0
2022
	LeftShoulder.C0 = CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0
2023
	if Disable_Moving_Arms == false then
2024
		RightShoulder.C1 = ANGLES(0, RAD(90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5)
2025
		LeftShoulder.C1 = ANGLES(0, RAD(-90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5)
2026
	else
2027
		RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
2028
		LeftShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
2029
	end
2030
	RightHip.C0 = CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
2031
	LeftHip.C0 = CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
2032
	RightHip.C1 = CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
2033
	LeftHip.C1 = CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0))
2034
	--ATTACK = false
2035
	DEFENSECHANGE1.Parent = ChangeStat
2036
	MOVEMENTCHANGE1.Parent = nil
2037
end
2038
2039
function StaggerHitAnimation()
2040
	ATTACK = true
2041
	if Weapon:FindFirstChild("Hitbox") ~= nil then
2042
		for i = 1, MRANDOM(2, 4) do
2043
			ClangEffect("Bright yellow", "Neon", CF(Weapon:FindFirstChild("Hitbox").Position) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 20, 5, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1)
2044
		end
2045
	end
2046
	for i = 0, 1, 0.1 / Animation_Speed do
2047
		Swait()
2048
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-10), RAD(0), RAD(-30)), 0.3 / Animation_Speed)
2049
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(30)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2050
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-30), RAD(0), RAD(60)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
2051
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-20)) * ANGLES(RAD(0), RAD(20), RAD(0)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
2052
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.9 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
2053
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1.1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(10)), 0.3 / Animation_Speed)
2054
		if Stagger.Value == true or Stun.Value == true then
2055
			break
2056
		end
2057
	end
2058
	ATTACK = false
2059
end
2060
2061
function StaggerAnimation()
2062
	ATTACK = true
2063
	if Weapon:FindFirstChild("Hitbox") ~= nil then
2064
		for i = 1, MRANDOM(2, 4) do
2065
			ClangEffect("Bright yellow", "Neon", CF(Weapon:FindFirstChild("Hitbox").Position) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 20, 5, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1)
2066
		end
2067
	end
2068
	DISABLEJUMPING = true
2069
	COMBO = 1
2070
	StatLabel("Interruption", Head.CFrame * CF(0, 0 + (Head.Size.z - 1), 0), "Staggered!", C3(255 / 255, 255 / 255, 0))
2071
	local STAGGERVELOCITY = Instance.new("BodyVelocity",Torso)
2072
	STAGGERVELOCITY.P = 500
2073
	STAGGERVELOCITY.maxForce = VT(math.huge, 0, math.huge)
2074
	if Rooted.Value == false then
2075
		STAGGERVELOCITY.Velocity = RootPart.CFrame.lookVector * -40
2076
	end
2077
	for i = 0, 1, 0.35 / Animation_Speed do
2078
		Swait()
2079
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
2080
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(2.5), RAD(0), RAD(20)), 0.3 / Animation_Speed)
2081
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size,0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(30)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
2082
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size,0 * Player_Size) * ANGLES(RAD(-7.5), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
2083
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size,0 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(30)), 0.3 / Animation_Speed)
2084
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size,0 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(5)), 0.3 / Animation_Speed)
2085
	end
2086
	for i = 0, 1, 0.2 / Animation_Speed do
2087
		Swait()
2088
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.25 * Player_Size) * ANGLES(RAD(-25), RAD(0), RAD(-20)), 0.4 / Animation_Speed)
2089
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.4 / Animation_Speed)
2090
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2091
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-7.5), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2092
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(50)), 0.4 / Animation_Speed)
2093
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(25)), 0.4 / Animation_Speed)
2094
	end
2095
	STAGGERVELOCITY.Parent = nil
2096
	for i = 1, 50 * Animation_Speed do
2097
		Swait()
2098
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -1.8 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-20)) * ANGLES(RAD(-5), RAD(-5), RAD(0)), 0.3 / Animation_Speed)
2099
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(20), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(5), RAD(0)), 0.3 / Animation_Speed)
2100
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(20)) * ANGLES(RAD(0), RAD(-20), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
2101
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(-10)) * ANGLES(RAD(0), RAD(15), RAD(0)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
2102
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.4 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(70)) * ANGLES(RAD(0), RAD(30), RAD(0)), 0.3 / Animation_Speed)
2103
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, 0.5 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-10)), 0.3 / Animation_Speed)
2104
	end
2105
	DISABLEJUMPING = false
2106
	ATTACK = false
2107
end
2108
2109
function StunAnimation()
2110
	ATTACK = true
2111
	DISABLEJUMPING = true
2112
	COMBO = 1
2113
	StatLabel("Interruption", Head.CFrame * CF(0, 0 + (Head.Size.z - 1), 0), "Stunned!", C3(255 / 255, 255 / 255, 0))
2114
	for i = 0, 1, 0.3 / Animation_Speed do
2115
		Swait()
2116
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.05 * Player_Size) * ANGLES(RAD(15), RAD(0), RAD(-150)), 0.3 / Animation_Speed)
2117
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-10), RAD(0), RAD(-20)), 0.3 / Animation_Speed)
2118
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(30), RAD(0), RAD(40)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
2119
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-50)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
2120
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(30)), 0.3 / Animation_Speed)
2121
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(20)), 0.3 / Animation_Speed)
2122
	end
2123
	for i = 0, 1, 0.3 / Animation_Speed do
2124
		Swait()
2125
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.05 * Player_Size) * ANGLES(RAD(45), RAD(0), RAD(-180)), 0.4 / Animation_Speed)
2126
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
2127
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(30), RAD(0), RAD(40)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2128
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-50)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2129
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(15)), 0.4 / Animation_Speed)
2130
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(50)), 0.4 / Animation_Speed)
2131
	end
2132
	for i = 0, 1, 0.3 / Animation_Speed do
2133
		Swait()
2134
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(75), RAD(0), RAD(-180)), 0.4 / Animation_Speed)
2135
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-15), RAD(0), RAD(-60)), 0.4 / Animation_Speed)
2136
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20), RAD(0), RAD(70)) * ANGLES(RAD(0), RAD(30), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2137
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-10), RAD(0), RAD(-80)) * ANGLES(RAD(0), RAD(-40), RAD(0)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2138
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(10)), 0.4 / Animation_Speed)
2139
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(80)), 0.4 / Animation_Speed)
2140
	end
2141
	for i = 1, 70 * Animation_Speed do
2142
		Swait()
2143
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -2.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-180)), 0.3 / Animation_Speed)
2144
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.3 / Animation_Speed)
2145
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(-10), RAD(90)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed)
2146
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.3 / Animation_Speed)
2147
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0.2 * Player_Size) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2148
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 0.3 / Animation_Speed)
2149
	end
2150
	for i = 0, 1, 0.2 / Animation_Speed do
2151
		Swait()
2152
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -1.5 * Player_Size) * ANGLES(RAD(20), RAD(0), RAD(100)), 0.4 / Animation_Speed)
2153
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
2154
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(-10), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2155
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(80), RAD(0), RAD(20)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2156
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(60), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(70)), 0.4 / Animation_Speed)
2157
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.25 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(20)), 0.4 / Animation_Speed)
2158
	end
2159
	DISABLEJUMPING = false
2160
	ATTACK = false
2161
end
2162
2163
function EAbility()
2164
	ATTACK = true
2165
	ATTACK = false
2166
end
2167
2168
function AbyssAttack1()
2169
	ATTACK = true
2170
	for i=0, 1, 0.1 / Animation_Speed do
2171
		Swait()
2172
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(20)), 0.4 / Animation_Speed)
2173
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2174
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.25 * Player_Size, 0.5 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2175
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-25), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2176
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 0.4 / Animation_Speed)
2177
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2178
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-110), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2179
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2180
			break
2181
		end
2182
	end
2183
	CreateSound("553461718", HitboxPart, 1.2, MRANDOM(7, 9) / 10)
2184
    attacksound1.Volume = 3
2185
	attacksound1:Play()
2186
	for i=0, 1, 0.1 / Animation_Speed do
2187
		Swait()
2188
		local Pos = HitboxPart
2189
		local Offset = HitboxPart.CFrame * CF(0, 0.1 * Player_Size, 0)
2190
		local Color = "Really black"
2191
		local Material = "Neon"
2192
		local TheDelay = 0.01
2193
		local Height = 6.2 * Player_Size
2194
		BLCF = Offset
2195
		if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
2196
			local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
2197
			if a then game:GetService("Debris"):AddItem(a, 1) end
2198
			if b then game:GetService("Debris"):AddItem(b, 1) end
2199
			local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
2200
			if a then game:GetService("Debris"):AddItem(a, 1) end
2201
			if b then game:GetService("Debris"):AddItem(b, 1) end
2202
			SCFR = BLCF
2203
		elseif not SCFR then
2204
			SCFR = BLCF
2205
		end
2206
		MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 4, false, 10, 20, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2207
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
2208
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(2.5), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2209
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(100)) * ANGLES(RAD(-30), RAD(80), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2210
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(-55)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2211
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2212
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2213
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-130), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2214
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2215
			break
2216
		end
2217
	end
2218
	BLCF = nil
2219
	SCFR = nil
2220
	ATTACK = false
2221
end
2222
2223
function AbyssAttack2()
2224
	ATTACK = true
2225
	for i=0, 1, 0.1 / Animation_Speed do
2226
		Swait()
2227
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
2228
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(35)), 0.4 / Animation_Speed)
2229
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(150), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2230
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2231
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2232
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-80), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2233
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2234
			break
2235
		end
2236
	end
2237
	CreateSound("553461842", HitboxPart, 1.2, MRANDOM(8, 9) / 10)
2238
    attacksound2.Volume = 3
2239
	attacksound2:Play()
2240
	local HASHITFLOOR = false
2241
	for i=0, 1, 0.1 / Animation_Speed do
2242
		Swait()
2243
		local Pos = HitboxPart
2244
		local Offset = HitboxPart.CFrame * CF(0, 0.1 * Player_Size, 0)
2245
		local Color = "Really black"
2246
		local Material = "Neon"
2247
		local TheDelay = 0.01
2248
		local Height = 6.2 * Player_Size
2249
		BLCF = Offset
2250
		if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
2251
			local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
2252
			if a then game:GetService("Debris"):AddItem(a, 1) end
2253
			if b then game:GetService("Debris"):AddItem(b, 1) end
2254
			local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
2255
			if a then game:GetService("Debris"):AddItem(a, 1) end
2256
			if b then game:GetService("Debris"):AddItem(b, 1) end
2257
			SCFR = BLCF
2258
		elseif not SCFR then
2259
			SCFR = BLCF
2260
		end
2261
		local SWORDHIT, SWORDPOS = Raycast(EffectPart.Position, (CF(EffectPart.Position, EffectPart.Position + VT(0, -1, 0))).lookVector, 1 * Player_Size, Character)
2262
		if SWORDHIT ~= nil and HASHITFLOOR == false and SWORDHIT.Parent:FindFirstChild("Humanoid") == nil then
2263
			HASHITFLOOR = true
2264
			--print(SWORDHIT.Material)
2265
			if SWORDHIT.Material == Enum.Material.Grass or SWORDHIT.Material == Enum.Material.Ice or SWORDHIT.Material == Enum.Material.Fabric or SWORDHIT.Material == Enum.Material.SmoothPlastic or SWORDHIT.Material == Enum.Material.Sand or SWORDHIT.Material == Enum.Material.Plastic or SWORDHIT.Material == Enum.Material.Neon or SWORDHIT.Material == Enum.Material.Foil then
2266
				CreateSound("525717773", EffectPart, 1.2 , MRANDOM(8, 12) / 10)
2267
			elseif SWORDHIT.Material == Enum.Material.Metal or SWORDHIT.Material == Enum.Material.Concrete or SWORDHIT.Material == Enum.Material.Brick or SWORDHIT.Material == Enum.Material.CorrodedMetal or SWORDHIT.Material == Enum.Material.Slate or SWORDHIT.Material == Enum.Material.Marble or SWORDHIT.Material == Enum.Material.Granite or SWORDHIT.Material == Enum.Material.DiamondPlate or SWORDHIT.Material == Enum.Material.Pebble or SWORDHIT.Material == Enum.Material.Cobblestone then
2268
				CreateSound("470790670", EffectPart, 1 , MRANDOM(8, 12) / 10)
2269
				for i = 1, MRANDOM(2, 4) do
2270
					ClangEffect("Bright yellow", "Neon", CF(SWORDPOS) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 10, 3, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1)
2271
				end
2272
			elseif SWORDHIT.Material == Enum.Material.Wood or SWORDHIT.Material == Enum.Material.WoodPlanks then
2273
				CreateSound("514586161", EffectPart, 1 , MRANDOM(8, 12) / 10)
2274
			end
2275
		end
2276
		MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 4, false, 20, 40, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2277
		if HASHITFLOOR == true then
2278
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2279
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-20)), 0.4 / Animation_Speed)
2280
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(40), RAD(0), RAD(5)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2281
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(17.5)), 0.4 / Animation_Speed)
2282
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2283
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-132.5), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2284
		else
2285
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2286
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-20)), 0.4 / Animation_Speed)
2287
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(30), RAD(0), RAD(5)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2288
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(17.5)), 0.4 / Animation_Speed)
2289
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2290
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-150), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2291
		end
2292
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2293
			break
2294
		end
2295
	end
2296
	BLCF = nil
2297
	SCFR = nil
2298
	ATTACK = false
2299
end
2300
2301
function AbyssAttack3()
2302
	ATTACK = true
2303
	for i=0, 1, 0.1 / Animation_Speed do
2304
		Swait()
2305
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
2306
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(2.5), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2307
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(100)) * ANGLES(RAD(-30), RAD(80), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2308
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(-55)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2309
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2310
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2311
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-130), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2312
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2313
			break
2314
		end
2315
	end
2316
	CreateSound("553461718", HitboxPart, 1.2, MRANDOM(7, 9) / 10)
2317
    attacksound3.Volume = 3
2318
	attacksound3:Play()
2319
	for i=0, 1, 0.1 / Animation_Speed do
2320
		Swait()
2321
		local Pos = HitboxPart
2322
		local Offset = HitboxPart.CFrame * CF(0, 0.1 * Player_Size, 0)
2323
		local Color = "Really black"
2324
		local Material = "Neon"
2325
		local TheDelay = 0.01
2326
		local Height = 6.2 * Player_Size
2327
		BLCF = Offset
2328
		if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
2329
			local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
2330
			if a then game:GetService("Debris"):AddItem(a, 1) end
2331
			if b then game:GetService("Debris"):AddItem(b, 1) end
2332
			local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
2333
			if a then game:GetService("Debris"):AddItem(a, 1) end
2334
			if b then game:GetService("Debris"):AddItem(b, 1) end
2335
			SCFR = BLCF
2336
		elseif not SCFR then
2337
			SCFR = BLCF
2338
		end
2339
		MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 4, false, 30, 60, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2340
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(20)), 0.4 / Animation_Speed)
2341
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2342
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.25 * Player_Size, 0.5 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2343
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-25), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2344
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 0.4 / Animation_Speed)
2345
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2346
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-110), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2347
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2348
			break
2349
		end
2350
	end
2351
	BLCF = nil
2352
	SCFR = nil
2353
	ATTACK = false
2354
end
2355
2356
function AbyssAttack4()
2357
	ATTACK = true
2358
	for i=0, 1, 0.1 / Animation_Speed do
2359
		Swait()
2360
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2361
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-20)), 0.4 / Animation_Speed)
2362
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(30), RAD(0), RAD(5)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2363
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(17.5)), 0.4 / Animation_Speed)
2364
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2365
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-100), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2366
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2367
			break
2368
		end
2369
	end
2370
	CreateSound("553461842", HitboxPart, 1.2, MRANDOM(8, 9) / 10)
2371
    attacksound4.Volume = 3
2372
	attacksound4:Play()
2373
	local HASHITFLOOR = false
2374
	for i=0, 1, 0.1 / Animation_Speed do
2375
		Swait()
2376
		local Pos = HitboxPart
2377
		local Offset = HitboxPart.CFrame * CF(0, 0.1 * Player_Size, 0)
2378
		local Color = "Really black"
2379
		local Material = "Neon"
2380
		local TheDelay = 0.01
2381
		local Height = 6.2 * Player_Size
2382
		BLCF = Offset
2383
		if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
2384
			local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
2385
			if a then game:GetService("Debris"):AddItem(a, 1) end
2386
			if b then game:GetService("Debris"):AddItem(b, 1) end
2387
			local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
2388
			if a then game:GetService("Debris"):AddItem(a, 1) end
2389
			if b then game:GetService("Debris"):AddItem(b, 1) end
2390
			SCFR = BLCF
2391
		elseif not SCFR then
2392
			SCFR = BLCF
2393
		end
2394
		local SWORDHIT, SWORDPOS = Raycast(EffectPart.Position, (CF(EffectPart.Position, EffectPart.Position + VT(0, -1, 0))).lookVector, 1 * Player_Size, Character)
2395
		if SWORDHIT ~= nil and HASHITFLOOR == false and SWORDHIT.Parent:FindFirstChild("Humanoid") == nil then
2396
			HASHITFLOOR = true
2397
			--print(SWORDHIT.Material)
2398
			if SWORDHIT.Material == Enum.Material.Grass or SWORDHIT.Material == Enum.Material.Ice or SWORDHIT.Material == Enum.Material.Fabric or SWORDHIT.Material == Enum.Material.SmoothPlastic or SWORDHIT.Material == Enum.Material.Sand or SWORDHIT.Material == Enum.Material.Plastic or SWORDHIT.Material == Enum.Material.Neon or SWORDHIT.Material == Enum.Material.Foil then
2399
				CreateSound("525717773", EffectPart, 1.2 , MRANDOM(8, 12) / 10)
2400
			elseif SWORDHIT.Material == Enum.Material.Metal or SWORDHIT.Material == Enum.Material.Concrete or SWORDHIT.Material == Enum.Material.Brick or SWORDHIT.Material == Enum.Material.CorrodedMetal or SWORDHIT.Material == Enum.Material.Slate or SWORDHIT.Material == Enum.Material.Marble or SWORDHIT.Material == Enum.Material.Granite or SWORDHIT.Material == Enum.Material.DiamondPlate or SWORDHIT.Material == Enum.Material.Pebble or SWORDHIT.Material == Enum.Material.Cobblestone then
2401
				CreateSound("470790670", EffectPart, 1 , MRANDOM(8, 12) / 10)
2402
				for i = 1, MRANDOM(2, 4) do
2403
					ClangEffect("Bright yellow", "Neon", CF(SWORDPOS) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 10, 3, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1)
2404
				end
2405
			elseif SWORDHIT.Material == Enum.Material.Wood or SWORDHIT.Material == Enum.Material.WoodPlanks then
2406
				CreateSound("514586161", EffectPart, 1 , MRANDOM(8, 12) / 10)
2407
			end
2408
		end
2409
		MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 4, false, 50, 80, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2410
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
2411
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(35)), 0.4 / Animation_Speed)
2412
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(150), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2413
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2414
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2415
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-80), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2416
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2417
			break
2418
		end
2419
	end
2420
	BLCF = nil
2421
	SCFR = nil
2422
	ATTACK = false
2423
end
2424
2425
function Attack1()
2426
	ATTACK = true
2427
	for i=0, 1, 0.1 / Animation_Speed do
2428
		Swait()
2429
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(20)), 0.4 / Animation_Speed)
2430
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2431
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.25 * Player_Size, 0.5 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2432
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-25), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2433
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 0.4 / Animation_Speed)
2434
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2435
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-110), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2436
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2437
			break
2438
		end
2439
	end
2440
	CreateSound("553461718", HitboxPart, 1.2, MRANDOM(7, 9) / 10)
2441
    attacksound1.Volume = 3
2442
	attacksound1:Play()
2443
	for i=0, 1, 0.1 / Animation_Speed do
2444
		Swait()
2445
		local Pos = HitboxPart
2446
		local Offset = HitboxPart.CFrame * CF(0, 0.1 * Player_Size, 0)
2447
		local Color = "Institutional white"
2448
		local Material = "Neon"
2449
		local TheDelay = 0.01
2450
		local Height = 6.2 * Player_Size
2451
		BLCF = Offset
2452
		if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
2453
			local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
2454
			if a then game:GetService("Debris"):AddItem(a, 1) end
2455
			if b then game:GetService("Debris"):AddItem(b, 1) end
2456
			local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
2457
			if a then game:GetService("Debris"):AddItem(a, 1) end
2458
			if b then game:GetService("Debris"):AddItem(b, 1) end
2459
			SCFR = BLCF
2460
		elseif not SCFR then
2461
			SCFR = BLCF
2462
		end
2463
		MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 4, false, 5, 10, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2464
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
2465
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(2.5), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2466
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(100)) * ANGLES(RAD(-30), RAD(80), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2467
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(-55)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2468
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2469
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2470
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-130), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2471
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2472
			break
2473
		end
2474
	end
2475
	BLCF = nil
2476
	SCFR = nil
2477
	ATTACK = false
2478
end
2479
2480
function Attack2()
2481
	ATTACK = true
2482
	for i=0, 1, 0.1 / Animation_Speed do
2483
		Swait()
2484
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
2485
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(35)), 0.4 / Animation_Speed)
2486
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(150), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2487
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2488
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2489
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-80), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2490
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2491
			break
2492
		end
2493
	end
2494
	CreateSound("553461842", HitboxPart, 1.2, MRANDOM(8, 9) / 10)
2495
    attacksound2.Volume = 3
2496
	attacksound2:Play()
2497
	local HASHITFLOOR = false
2498
	for i=0, 1, 0.1 / Animation_Speed do
2499
		Swait()
2500
		local Pos = HitboxPart
2501
		local Offset = HitboxPart.CFrame * CF(0, 0.1 * Player_Size, 0)
2502
		local Color = "Institutional white"
2503
		local Material = "Neon"
2504
		local TheDelay = 0.01
2505
		local Height = 6.2 * Player_Size
2506
		BLCF = Offset
2507
		if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
2508
			local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
2509
			if a then game:GetService("Debris"):AddItem(a, 1) end
2510
			if b then game:GetService("Debris"):AddItem(b, 1) end
2511
			local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
2512
			if a then game:GetService("Debris"):AddItem(a, 1) end
2513
			if b then game:GetService("Debris"):AddItem(b, 1) end
2514
			SCFR = BLCF
2515
		elseif not SCFR then
2516
			SCFR = BLCF
2517
		end
2518
		local SWORDHIT, SWORDPOS = Raycast(EffectPart.Position, (CF(EffectPart.Position, EffectPart.Position + VT(0, -1, 0))).lookVector, 1 * Player_Size, Character)
2519
		if SWORDHIT ~= nil and HASHITFLOOR == false and SWORDHIT.Parent:FindFirstChild("Humanoid") == nil then
2520
			HASHITFLOOR = true
2521
			--print(SWORDHIT.Material)
2522
			if SWORDHIT.Material == Enum.Material.Grass or SWORDHIT.Material == Enum.Material.Ice or SWORDHIT.Material == Enum.Material.Fabric or SWORDHIT.Material == Enum.Material.SmoothPlastic or SWORDHIT.Material == Enum.Material.Sand or SWORDHIT.Material == Enum.Material.Plastic or SWORDHIT.Material == Enum.Material.Neon or SWORDHIT.Material == Enum.Material.Foil then
2523
				CreateSound("525717773", EffectPart, 1.2 , MRANDOM(8, 12) / 10)
2524
			elseif SWORDHIT.Material == Enum.Material.Metal or SWORDHIT.Material == Enum.Material.Concrete or SWORDHIT.Material == Enum.Material.Brick or SWORDHIT.Material == Enum.Material.CorrodedMetal or SWORDHIT.Material == Enum.Material.Slate or SWORDHIT.Material == Enum.Material.Marble or SWORDHIT.Material == Enum.Material.Granite or SWORDHIT.Material == Enum.Material.DiamondPlate or SWORDHIT.Material == Enum.Material.Pebble or SWORDHIT.Material == Enum.Material.Cobblestone then
2525
				CreateSound("470790670", EffectPart, 1 , MRANDOM(8, 12) / 10)
2526
				for i = 1, MRANDOM(2, 4) do
2527
					ClangEffect("Bright yellow", "Neon", CF(SWORDPOS) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 10, 3, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1)
2528
				end
2529
			elseif SWORDHIT.Material == Enum.Material.Wood or SWORDHIT.Material == Enum.Material.WoodPlanks then
2530
				CreateSound("514586161", EffectPart, 1 , MRANDOM(8, 12) / 10)
2531
			end
2532
		end
2533
		MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 4, false, 10, 20, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2534
		if HASHITFLOOR == true then
2535
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2536
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-20)), 0.4 / Animation_Speed)
2537
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(40), RAD(0), RAD(5)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2538
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(17.5)), 0.4 / Animation_Speed)
2539
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2540
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-132.5), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2541
		else
2542
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2543
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-20)), 0.4 / Animation_Speed)
2544
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(30), RAD(0), RAD(5)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2545
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(17.5)), 0.4 / Animation_Speed)
2546
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2547
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-150), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2548
		end
2549
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2550
			break
2551
		end
2552
	end
2553
	BLCF = nil
2554
	SCFR = nil
2555
	ATTACK = false
2556
end
2557
2558
function Attack3()
2559
	ATTACK = true
2560
	for i=0, 1, 0.1 / Animation_Speed do
2561
		Swait()
2562
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-30)), 0.4 / Animation_Speed)
2563
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(2.5), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2564
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(100)) * ANGLES(RAD(-30), RAD(80), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2565
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-15), RAD(0), RAD(-55)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2566
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2567
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2568
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-130), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2569
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2570
			break
2571
		end
2572
	end
2573
	CreateSound("553461718", HitboxPart, 1.2, MRANDOM(7, 9) / 10)
2574
    attacksound3.Volume = 3
2575
	attacksound3:Play()
2576
	for i=0, 1, 0.1 / Animation_Speed do
2577
		Swait()
2578
		local Pos = HitboxPart
2579
		local Offset = HitboxPart.CFrame * CF(0, 0.1 * Player_Size, 0)
2580
		local Color = "Institutional white"
2581
		local Material = "Neon"
2582
		local TheDelay = 0.01
2583
		local Height = 6.2 * Player_Size
2584
		BLCF = Offset
2585
		if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
2586
			local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
2587
			if a then game:GetService("Debris"):AddItem(a, 1) end
2588
			if b then game:GetService("Debris"):AddItem(b, 1) end
2589
			local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
2590
			if a then game:GetService("Debris"):AddItem(a, 1) end
2591
			if b then game:GetService("Debris"):AddItem(b, 1) end
2592
			SCFR = BLCF
2593
		elseif not SCFR then
2594
			SCFR = BLCF
2595
		end
2596
		MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 4, false, 15, 30, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2597
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(20)), 0.4 / Animation_Speed)
2598
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2599
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.25 * Player_Size, 0.5 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2600
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-25), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2601
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 0.4 / Animation_Speed)
2602
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2603
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-110), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2604
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2605
			break
2606
		end
2607
	end
2608
	BLCF = nil
2609
	SCFR = nil
2610
	ATTACK = false
2611
end
2612
2613
function Attack4()
2614
	ATTACK = true
2615
	for i=0, 1, 0.1 / Animation_Speed do
2616
		Swait()
2617
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(30)), 0.4 / Animation_Speed)
2618
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(-20)), 0.4 / Animation_Speed)
2619
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(30), RAD(0), RAD(5)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2620
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(50), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(17.5)), 0.4 / Animation_Speed)
2621
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(5)), 0.4 / Animation_Speed)
2622
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-100), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2623
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2624
			break
2625
		end
2626
	end
2627
	CreateSound("553461842", HitboxPart, 1.2, MRANDOM(8, 9) / 10)
2628
    attacksound4.Volume = 3
2629
	attacksound4:Play()
2630
	local HASHITFLOOR = false
2631
	for i=0, 1, 0.1 / Animation_Speed do
2632
		Swait()
2633
		local Pos = HitboxPart
2634
		local Offset = HitboxPart.CFrame * CF(0, 0.1 * Player_Size, 0)
2635
		local Color = "Institutional white"
2636
		local Material = "Neon"
2637
		local TheDelay = 0.01
2638
		local Height = 6.2 * Player_Size
2639
		BLCF = Offset
2640
		if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
2641
			local a, b = Triangle(Color, Material, (SCFR * CF(0, Height / 2,0)).p, (SCFR * CF(0, -Height / 2, 0)).p, (BLCF * CF(0, Height / 2,0)).p, TheDelay)
2642
			if a then game:GetService("Debris"):AddItem(a, 1) end
2643
			if b then game:GetService("Debris"):AddItem(b, 1) end
2644
			local a, b = Triangle(Color, Material, (BLCF * CF(0, Height / 2, 0)).p, (BLCF * CF(0, -Height / 2, 0)).p, (SCFR * CF(0, -Height / 2, 0)).p, TheDelay)
2645
			if a then game:GetService("Debris"):AddItem(a, 1) end
2646
			if b then game:GetService("Debris"):AddItem(b, 1) end
2647
			SCFR = BLCF
2648
		elseif not SCFR then
2649
			SCFR = BLCF
2650
		end
2651
		local SWORDHIT, SWORDPOS = Raycast(EffectPart.Position, (CF(EffectPart.Position, EffectPart.Position + VT(0, -1, 0))).lookVector, 1 * Player_Size, Character)
2652
		if SWORDHIT ~= nil and HASHITFLOOR == false and SWORDHIT.Parent:FindFirstChild("Humanoid") == nil then
2653
			HASHITFLOOR = true
2654
			--print(SWORDHIT.Material)
2655
			if SWORDHIT.Material == Enum.Material.Grass or SWORDHIT.Material == Enum.Material.Ice or SWORDHIT.Material == Enum.Material.Fabric or SWORDHIT.Material == Enum.Material.SmoothPlastic or SWORDHIT.Material == Enum.Material.Sand or SWORDHIT.Material == Enum.Material.Plastic or SWORDHIT.Material == Enum.Material.Neon or SWORDHIT.Material == Enum.Material.Foil then
2656
				CreateSound("525717773", EffectPart, 1.2 , MRANDOM(8, 12) / 10)
2657
			elseif SWORDHIT.Material == Enum.Material.Metal or SWORDHIT.Material == Enum.Material.Concrete or SWORDHIT.Material == Enum.Material.Brick or SWORDHIT.Material == Enum.Material.CorrodedMetal or SWORDHIT.Material == Enum.Material.Slate or SWORDHIT.Material == Enum.Material.Marble or SWORDHIT.Material == Enum.Material.Granite or SWORDHIT.Material == Enum.Material.DiamondPlate or SWORDHIT.Material == Enum.Material.Pebble or SWORDHIT.Material == Enum.Material.Cobblestone then
2658
				CreateSound("470790670", EffectPart, 1 , MRANDOM(8, 12) / 10)
2659
				for i = 1, MRANDOM(2, 4) do
2660
					ClangEffect("Bright yellow", "Neon", CF(SWORDPOS) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 10, 3, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1)
2661
				end
2662
			elseif SWORDHIT.Material == Enum.Material.Wood or SWORDHIT.Material == Enum.Material.WoodPlanks then
2663
				CreateSound("514586161", EffectPart, 1 , MRANDOM(8, 12) / 10)
2664
			end
2665
		end
2666
		MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 4, false, 25, 40, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2667
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
2668
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(35)), 0.4 / Animation_Speed)
2669
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(150), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2670
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2671
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2672
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-80), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2673
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2674
			break
2675
		end
2676
	end
2677
	BLCF = nil
2678
	SCFR = nil
2679
	ATTACK = false
2680
end
2681
2682
function part2(formfactor,parent,reflectance,transparency,brickcolor,name,size)
2683
local fp=Instance.new("Part")
2684
fp.formFactor=formfactor 
2685
fp.Parent=Effects
2686
fp.Reflectance=reflectance
2687
fp.Transparency=transparency
2688
fp.CanCollide=false 
2689
fp.Locked=true
2690
fp.BrickColor=brickcolor
2691
fp.Name=name
2692
fp.Size=size
2693
fp.Position=Torso.Position 
2694
fp.Material="SmoothPlastic"
2695
fp:BreakJoints()
2696
return fp 
2697
end 
2698
2699
function rayCast(Pos, Dir, Max, Ignore)  -- Origin Position , Direction, MaxDistance , IgnoreDescendants
2700
return game:service("Workspace"):FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999.999)), Ignore) 
2701
end 
2702
2703
euler=CFrame.fromEulerAnglesXYZ
2704
vt=Vector3.new
2705
2706
	function mesh(Mesh,part,meshtype,meshid,offset,scale)
2707
		local mesh=Instance.new(Mesh)
2708
		mesh.Parent=part
2709
		if Mesh=="SpecialMesh" then
2710
			mesh.MeshType=meshtype
2711
			mesh.MeshId=meshid
2712
		end
2713
		mesh.Offset=offset
2714
		mesh.Scale=scale
2715
		return mesh
2716
	end
2717
2718
function MagicBlock3(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
2719
local prt=part2(3,char,0,0,brickcolor,"Effect",vt(0.5,0.5,0.5))
2720
prt.Anchored=true
2721
prt.Material = "Neon"
2722
prt.CFrame=cframe
2723
prt.CFrame=prt.CFrame*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
2724
msh=mesh("BlockMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
2725
game:GetService("Debris"):AddItem(prt,5)
2726
coroutine.resume(coroutine.create(function(Part,Mesh) 
2727
for i=0,1,delay do
2728
Swait()
2729
Part.CFrame=Part.CFrame*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
2730
Part.Transparency=i
2731
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
2732
end
2733
Part.Parent=nil
2734
end),prt,msh)
2735
end
2736
2737
angles=CFrame.Angles
2738
2739
function Quickslashes()
2740
	ATTACK = true
2741
    Humanoid.WalkSpeed = 0
2742
	for i=0, 1, 0.1 / Animation_Speed do
2743
		Swait()
2744
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
2745
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(35)), 0.4 / Animation_Speed)
2746
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(150), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2747
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2748
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2749
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-80), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2750
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2751
			break
2752
		end
2753
	end
2754
	for i=0, 1, 0.1 / Animation_Speed do
2755
		Swait()
2756
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
2757
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(35)), 0.4 / Animation_Speed)
2758
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2759
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2760
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2761
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-170), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2762
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2763
			break
2764
		end
2765
	end
2766
    Humanoid.WalkSpeed = 16
2767
    RightArm.Transparency = 1
2768
    HandlePart.Transparency = 1
2769
    for i = 1, 15 do
2770
local spread=vt((math.random(-1,0)+math.random())*16,(math.random(-1,0)+math.random())*16,(math.random(-1,0)+math.random())*16)*(HitboxPart.Position-(HitboxPart.Position+vt(0,-1,0))).magnitude/100
2771
local TheHit=HitboxPart.Position+vt(0,-1,0)
2772
local MouseLook=cf((HitboxPart.Position+TheHit)/2,TheHit+spread)
2773
local hit,pos = rayCast(HitboxPart.Position,MouseLook.lookVector,999,Character)
2774
local mag=(HitboxPart.Position-pos).magnitude 
2775
MagicCylinder2(BrickColor.new("Institutional white"),CFrame.new((HitboxPart.Position+pos)/2,pos)*angles(1.57,0,0) ,1,mag*1,1,0.5,0,0.5,0.05)
2776
    mat = math.random(1,3)
2777
    if mat ~= 2 then
2778
	CreateSound("553461718", HitboxPart, 1.2, MRANDOM(7, 9) / 10)
2779
    end
2780
	for i= 1, 5 do
2781
		Swait()
2782
    end
2783
		MagnitudeDamage("", "", "", HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 7, false, 4, 5, MRANDOM(5, 10), "Normal", RootPart, 0.01, 0.1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2784
    Swait(1)
2785
    end
2786
    RightArm.Transparency = 0
2787
    HandlePart.Transparency = 0
2788
	BLCF = nil
2789
	SCFR = nil
2790
	ATTACK = false
2791
end
2792
2793
function Abyssslashes()
2794
	ATTACK = true
2795
    Humanoid.WalkSpeed = 0
2796
	for i=0, 1, 0.1 / Animation_Speed do
2797
		Swait()
2798
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
2799
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(35)), 0.4 / Animation_Speed)
2800
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(150), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2801
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2802
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2803
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-80), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2804
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2805
			break
2806
		end
2807
	end
2808
	for i=0, 1, 0.1 / Animation_Speed do
2809
		Swait()
2810
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.4 / Animation_Speed)
2811
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5), RAD(0), RAD(35)), 0.4 / Animation_Speed)
2812
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-20)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2813
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
2814
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, -0.075 * Player_Size) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-2.5), RAD(0), RAD(-15)), 0.4 / Animation_Speed)
2815
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-170), RAD(90), RAD(0)), 0.4 / Animation_Speed)
2816
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2817
			break
2818
		end
2819
	end
2820
    Humanoid.WalkSpeed = 25
2821
    RightArm.PE.Enabled = false
2822
    HandlePart.Transparency = 1
2823
    for i = 1, 15 do
2824
local spread=vt((math.random(-1,0)+math.random())*16,(math.random(-1,0)+math.random())*16,(math.random(-1,0)+math.random())*16)*(HitboxPart.Position-(HitboxPart.Position+vt(0,-1,0))).magnitude/100
2825
local TheHit=HitboxPart.Position+vt(0,-1,0)
2826
local MouseLook=cf((HitboxPart.Position+TheHit)/2,TheHit+spread)
2827
local hit,pos = rayCast(HitboxPart.Position,MouseLook.lookVector,999,Character)
2828
local mag=(HitboxPart.Position-pos).magnitude 
2829
MagicCylinder2(BrickColor.new("Really black"),CFrame.new((HitboxPart.Position+pos)/2,pos)*angles(1.57,0,0) ,1,mag*1,1,0.5,0,0.5,0.05)
2830
    mat = math.random(1,3)
2831
    if mat ~= 2 then
2832
	CreateSound("553461718", HitboxPart, 1.2, MRANDOM(7, 9) / 10)
2833
    end
2834
	for i= 1, 5 do
2835
		Swait()
2836
    end
2837
		MagnitudeDamage("", "", "", HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, HitboxPart, 7, false, 10, 12, MRANDOM(5, 10), "Normal", RootPart, 0.02, 0.1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2838
    Swait(1)
2839
    end
2840
    RightArm.PE.Enabled = true
2841
    HandlePart.Transparency = 0
2842
	BLCF = nil
2843
	SCFR = nil
2844
	ATTACK = false
2845
end
2846
2847
function dash()
2848
    Humanoid.WalkSpeed = 0
2849
	ATTACK = true
2850
    cloak()
2851
	for i=0, 1, 0.1 / Animation_Speed do
2852
		Swait()
2853
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(35), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2854
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2855
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
2856
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
2857
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
2858
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
2859
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
2860
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2861
			break
2862
		end
2863
	end
2864
	CreateSound("444667824", root, 1, 1)
2865
	MagicBlock3(BrickColor.new("Really black"),root.CFrame,2,2,2,0.2,0.2,0.2,0.015)
2866
MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 20, false, 20, 60, 0, "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2867
	Humanoid.WalkSpeed = 0
2868
	local bv = Instance.new("BodyVelocity")
2869
  bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
2870
  bv.velocity = RootPart.CFrame.lookVector*250
2871
  bv.Parent = RootPart
2872
game:GetService("Debris"):AddItem(bv, 1)
2873
local rng = Instance.new("Part", char)
2874
        rng.Anchored = true
2875
        rng.BrickColor = BrickColor.new("Really black")
2876
        rng.CanCollide = false
2877
        rng.FormFactor = 3
2878
        rng.Name = "Ring"
2879
        rng.Size = Vector3.new(1, 1, 1)
2880
        rng.Transparency = 0
2881
        rng.TopSurface = 0
2882
        rng.BottomSurface = 0
2883
        rng.CFrame = Torso.CFrame
2884
        local rngm = Instance.new("SpecialMesh", rng)
2885
        rngm.MeshId = "http://www.roblox.com/asset/?id=3270017"
2886
local rng2 = rng:Clone()
2887
rng2.Parent = char
2888
rng2.CFrame = root.CFrame + root.CFrame.lookVector*10
2889
local rng2m = rng2.Mesh
2890
local rng3 = rng:Clone()
2891
rng3.Parent = char
2892
rng3.CFrame = root.CFrame + root.CFrame.lookVector*20
2893
local rng3m = rng3.Mesh
2894
local rng4 = rng:Clone()
2895
rng4.Parent = char
2896
rng4.CFrame = root.CFrame + root.CFrame.lookVector*30
2897
local rng4m = rng4.Mesh
2898
local rng5 = rng:Clone()
2899
rng5.Parent = char
2900
rng5.CFrame = root.CFrame + root.CFrame.lookVector*40
2901
local rng5m = rng5.Mesh
2902
	wait()
2903
	local scaler = 5/5
2904
	local scaler2 = 5/5
2905
	local hit = Torso.Touched:connect(function(hit) 
2906
if bv then
2907
bv:remove()
2908
end
2909
MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 6,true, 60, 70, 25, "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2910
end)
2911
	for i = 0,10,0.1 do
2912
		Swait()
2913
		rng.Transparency = rng.Transparency + 0.01
2914
		rng2.Transparency = rng2.Transparency + 0.01
2915
		rng3.Transparency = rng3.Transparency + 0.01
2916
		rng4.Transparency = rng4.Transparency + 0.01
2917
		rng5.Transparency = rng5.Transparency + 0.01
2918
		scaler = scaler - 0.125/5
2919
		scaler2 = scaler2 - 0.1/5
2920
		rng2m.Scale = rng2m.Scale + Vector3.new(scaler2/1.25, scaler2/1.25, 0)
2921
		rng3m.Scale = rng3m.Scale + Vector3.new(scaler2/1.5, scaler2/1.5, 0)
2922
		rng4m.Scale = rng4m.Scale + Vector3.new(scaler2/1.75, scaler2/1.75, 0)
2923
		rng5m.Scale = rng5m.Scale + Vector3.new(scaler2/2, scaler2/2, 0)
2924
		 rngm.Scale = rngm.Scale + Vector3.new(scaler2, scaler2, 0)
2925
	end
2926
	game:GetService("Debris"):AddItem(rng, 0.1)
2927
	game:GetService("Debris"):AddItem(rng2, 0.1)
2928
	game:GetService("Debris"):AddItem(rng3, 0.1)
2929
	game:GetService("Debris"):AddItem(rng4, 0.1)
2930
	game:GetService("Debris"):AddItem(rng5, 0.1)
2931
	hit:disconnect()
2932
	ATTACK = false
2933
    Humanoid.WalkSpeed = 16
2934
    decloak()
2935
end
2936
2937
function abyssdash()
2938
    Humanoid.WalkSpeed = 0
2939
	ATTACK = true
2940
	for i=0, 1, 0.1 / Animation_Speed do
2941
		Swait()
2942
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(35), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2943
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2944
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
2945
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
2946
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
2947
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
2948
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
2949
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2950
			break
2951
		end
2952
	end
2953
	CreateSound("444667824", root, 1, 1)
2954
	MagicBlock3(BrickColor.new("Really black"),root.CFrame,2,2,2,0.2,0.2,0.2,0.015)
2955
	MagicBlock3(BrickColor.new("Really black"),root.CFrame,2,2,2,1,1,1,0.015)
2956
MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 20, false, 40, 80, 0, "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2957
	Humanoid.WalkSpeed = 0
2958
	local bv = Instance.new("BodyVelocity")
2959
  bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
2960
  bv.velocity = RootPart.CFrame.lookVector*350
2961
  bv.Parent = RootPart
2962
game:GetService("Debris"):AddItem(bv, 1)
2963
local rng = Instance.new("Part", char)
2964
        rng.Anchored = true
2965
        rng.BrickColor = BrickColor.new("Really black")
2966
        rng.CanCollide = false
2967
        rng.FormFactor = 3
2968
        rng.Name = "Ring"
2969
        rng.Size = Vector3.new(1, 1, 1)
2970
        rng.Transparency = 0
2971
        rng.TopSurface = 0
2972
        rng.BottomSurface = 0
2973
        rng.CFrame = Torso.CFrame
2974
        local rngm = Instance.new("SpecialMesh", rng)
2975
        rngm.MeshId = "http://www.roblox.com/asset/?id=3270017"
2976
local rng2 = rng:Clone()
2977
rng2.Parent = char
2978
rng2.CFrame = root.CFrame + root.CFrame.lookVector*10
2979
local rng2m = rng2.Mesh
2980
local rng3 = rng:Clone()
2981
rng3.Parent = char
2982
rng3.CFrame = root.CFrame + root.CFrame.lookVector*20
2983
local rng3m = rng3.Mesh
2984
local rng4 = rng:Clone()
2985
rng4.Parent = char
2986
rng4.CFrame = root.CFrame + root.CFrame.lookVector*30
2987
local rng4m = rng4.Mesh
2988
local rng5 = rng:Clone()
2989
rng5.Parent = char
2990
rng5.CFrame = root.CFrame + root.CFrame.lookVector*40
2991
local rng5m = rng5.Mesh
2992
	wait()
2993
	local scaler = 10/5
2994
	local scaler2 = 10/5
2995
	local hit = Torso.Touched:connect(function(hit) 
2996
if bv then
2997
bv:remove()
2998
end
2999
MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 10,true, 60, 70, 25, "Normal", RootPart, 0, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
3000
end)
3001
	for i = 0,10,0.1 do
3002
		Swait()
3003
		rng.Transparency = rng.Transparency + 0.01
3004
		rng2.Transparency = rng2.Transparency + 0.01
3005
		rng3.Transparency = rng3.Transparency + 0.01
3006
		rng4.Transparency = rng4.Transparency + 0.01
3007
		rng5.Transparency = rng5.Transparency + 0.01
3008
		scaler = scaler - 0.125/5
3009
		scaler2 = scaler2 - 0.1/5
3010
		rng2m.Scale = rng2m.Scale + Vector3.new(scaler2/1.25, scaler2/1.25, 0)
3011
		rng3m.Scale = rng3m.Scale + Vector3.new(scaler2/1.5, scaler2/1.5, 0)
3012
		rng4m.Scale = rng4m.Scale + Vector3.new(scaler2/1.75, scaler2/1.75, 0)
3013
		rng5m.Scale = rng5m.Scale + Vector3.new(scaler2/2, scaler2/2, 0)
3014
		 rngm.Scale = rngm.Scale + Vector3.new(scaler2, scaler2, 0)
3015
MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 10, false, 10, 10, 0, "Normal", RootPart, 0.01, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
3016
	end
3017
	game:GetService("Debris"):AddItem(rng, 0.1)
3018
	game:GetService("Debris"):AddItem(rng2, 0.1)
3019
	game:GetService("Debris"):AddItem(rng3, 0.1)
3020
	game:GetService("Debris"):AddItem(rng4, 0.1)
3021
	game:GetService("Debris"):AddItem(rng5, 0.1)
3022
	hit:disconnect()
3023
	ATTACK = false
3024
    Humanoid.WalkSpeed = 25
3025
end
3026
3027
3028
function MagicWave(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
3029
local prt=part(3,workspace,"Neon",0,0,brickcolor,"Effect",vt())
3030
prt.Anchored=true
3031
prt.CFrame=cframe
3032
local msh=mesh("SpecialMesh",prt,"FileMesh","http://www.roblox.com/asset/?id=20329976",vt(0,0,0),vt(x1,y1,z1))
3033
game:GetService("Debris"):AddItem(prt,5)
3034
table.insert(Effects2,{prt,"Cylinder",delay,x3,y3,z3,msh})
3035
end
3036
3037
function MagicBlock2(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
3038
local prt=part(3,workspace,"Neon",0,0,brickcolor,"Effect",vt())
3039
prt.Anchored=true
3040
prt.CFrame=cframe
3041
msh=mesh("BlockMesh",prt,"","",vt(0,0,0),vt(x1,y1,z1))
3042
game:GetService("Debris"):AddItem(prt,2)
3043
coroutine.resume(coroutine.create(function(Part,Mesh) 
3044
for i=0,1,delay do
3045
wait()
3046
Part.CFrame=Part.CFrame*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
3047
Part.Transparency=i
3048
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
3049
end
3050
Part.Parent=nil
3051
end),prt,msh)
3052
end 
3053
3054
function MagicCylinder2(brickcolor,cframe,x1,y1,z1,x3,y3,z3,delay)
3055
local prt=part(3,workspace,"Neon",0,0,brickcolor,"Effect",vt(2.5,2.5,2.5))
3056
prt.Anchored=true
3057
prt.CFrame=cframe
3058
msh=mesh("SpecialMesh",prt,"Head","",vt(0,0,0),vt(x1,y1,z1))
3059
game:GetService("Debris"):AddItem(prt,5)
3060
coroutine.resume(coroutine.create(function(Part,Mesh) 
3061
for i=0,1,delay do
3062
wait()
3063
Part.CFrame=Part.CFrame
3064
Part.Transparency=i
3065
Mesh.Scale=Mesh.Scale+vt(x3,y3,z3)
3066
end
3067
Part.Parent=nil
3068
end),prt,msh)
3069
end 
3070
3071
cf=CFrame.new
3072
3073
function Shriek()
3074
    Humanoid.WalkSpeed = 0
3075
	ATTACK = true
3076
    cloak()
3077
	for i=0, 1, 0.1 / Animation_Speed do
3078
		Swait()
3079
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 1 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3080
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-65), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3081
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3082
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3083
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3084
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3085
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3086
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3087
			break
3088
		end
3089
	end
3090
    shriek.Volume = 3
3091
	shriek:Play()
3092
    siz = 0.06
3093
    for i = 1, 6 do
3094
    siz2 = siz*2
3095
    MagicCylinder2(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X + math.random(-5,5),Torso.Position.Y + math.random(10,12),Torso.Position.Z + math.random(-5,5))),0,0,0,siz,siz2,siz,0.05)
3096
    siz = siz + 0.06
3097
    end
3098
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,0.3,0.2,.025)
3099
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,2,5,2,0,2,.025)
3100
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,1,0.2,.025)
3101
    for i = 1, 10 do
3102
		MagnitudeDamage("", "", "", "", 1, 1, 1, 1, Torso, 25, false, 8, 18, MRANDOM(5, 10), "Normal", RootPart, 0.1, 0.1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
3103
        wait(0.1)
3104
    end
3105
    decloak()
3106
    ATTACK = false
3107
    Humanoid.WalkSpeed = 16
3108
end
3109
3110
function AbyssShriek()
3111
    Humanoid.WalkSpeed = 0
3112
	ATTACK = true
3113
	for i=0, 1, 0.1 / Animation_Speed do
3114
		Swait()
3115
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 1 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3116
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-65), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3117
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3118
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3119
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3120
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3121
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3122
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3123
			break
3124
		end
3125
	end
3126
    shriek.Volume = 4
3127
	shriek:Play()
3128
    siz = 0.08
3129
    for i = 1, 10 do
3130
    siz2 = siz*2
3131
    MagicCylinder2(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X + math.random(-5,5),Torso.Position.Y + math.random(10,12),Torso.Position.Z + math.random(-5,5))),0,0,0,siz,siz2,siz,0.05)
3132
    siz = siz + 0.06
3133
    end
3134
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,0.3,0.2,.025)
3135
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,2,5,2,0,2,.025)
3136
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,1,0.2,.025)
3137
    for i = 1, 10 do
3138
		MagnitudeDamage("", "", "", "", 1, 1, 1, 1, Torso, 35, false, 12, 22, MRANDOM(5, 10), "Normal", RootPart, 0.1, 0.1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
3139
        wait(0.1)
3140
    end
3141
    ATTACK = false
3142
    Humanoid.WalkSpeed = 25
3143
end
3144
3145
function AbyssBullet(POSITION1, POSITION2, SPEED, SIZE, DURATION, LOWDAMAGE, HIGHDAMAGE)
3146
	local POS1 = POSITION1
3147
	local POS2 = POSITION2
3148
	local MOUSELOOK = CF((POS1 + POS2) / 2, POS2)
3149
	local FIREBALLSPEED = SPEED * Player_Size
3150
	local FIREBALLDURATION = DURATION
3151
	local FIREBALLCOLORS = {"Really black", "Black"}
3152
	local FIREBALLHITSOUNDS = {"971126018", "971125740"}
3153
	coroutine.resume(coroutine.create(function()
3154
		repeat
3155
			Swait()
3156
			local FIREBALLHIT, FIREBALLPOS = Raycast(POS1, MOUSELOOK.lookVector, FIREBALLSPEED, Character)
3157
			POS1 = POS1 + (MOUSELOOK.lookVector * FIREBALLSPEED)
3158
			MagicBlock(FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)], "Neon", CF(POS1) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(0, 0, 0), VT(0, 0, 0), SIZE, SIZE, SIZE, SIZE / -10, SIZE / -10, SIZE / -10, 0.1)
3159
			if FIREBALLHIT ~= nil or FIREBALLDURATION <= 0.1 then
3160
				FIREBALLDURATION = 0
3161
				local FireballHitRefpart = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
3162
				FireballHitRefpart.Anchored = true
3163
				FireballHitRefpart.CFrame = CF(FIREBALLPOS)
3164
				game:GetService("Debris"):AddItem(FireballHitRefpart, 5)
3165
				CreateSound(FIREBALLHITSOUNDS[MRANDOM(1, #FIREBALLHITSOUNDS)], FireballHitRefpart, 1.4, MRANDOM(14, 16) / 10)
3166
				for i = 1, MRANDOM(4, 8) do
3167
					MagicBlock(FIREBALLCOLORS[MRANDOM(1, #FIREBALLCOLORS)], "Neon", FireballHitRefpart.CFrame * ANGLES(RAD(MRANDOM(-360, 360)), RAD(MRANDOM(-360, 360)), RAD(MRANDOM(-360, 360))), CF(0, MRANDOM(5, 7) / 10 * Player_Size, 0), VT(0, 0, 0), 5, 5, 5, 0, 0, 0, MRANDOM(3, 5) / 100)
3168
				end
3169
				MagicBlock("Really black", "Neon", FireballHitRefpart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), SIZE, SIZE, SIZE, SIZE / 3, SIZE / 3, SIZE / 3, 0.05)
3170
				MagicBlock("Really black", "Neon", FireballHitRefpart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), SIZE * 0.5, SIZE * 0.5, SIZE * 0.5, SIZE / 4, SIZE / 4, SIZE / 4, 0.05)
3171
				MagicBlock("Black", "Neon", FireballHitRefpart.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5)), RAD(MRANDOM(-5, 5))), VT(0, 0, 0), SIZE * 0.25, SIZE * 0.25, SIZE * 0.25, SIZE / 5, SIZE / 5, SIZE / 5, 0.05)
3172
				MagnitudeDamage("", "", "", "", 1, 1, 1, 1, FireballHitRefpart, SIZE / 2, false, 25, 30, 15, "Normal", RootPart, 0, 1, MRANDOM(10, 15), nil, false, true, nil, 0, 0, false)
3173
			else
3174
				FIREBALLDURATION = FIREBALLDURATION - (1 / 30) / Animation_Speed
3175
			end
3176
		until FIREBALLHIT ~= nil or FIREBALLDURATION <= 0
3177
	end))
3178
end
3179
3180
function AbyssRain()
3181
    Humanoid.WalkSpeed = 0
3182
    Humanoid.JumpPower = 0
3183
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,0.3,0.2,.025)
3184
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,2,5,2,0,2,.025)
3185
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,1,0.2,.025)
3186
	ATTACK = true
3187
	CreateSound("160773067", root, 1, 1)
3188
	for i=0, 1, 0.1 / Animation_Speed do
3189
		wait()
3190
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 35 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3191
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-65), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3192
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3193
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3194
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3195
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3196
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3197
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3198
			break
3199
		end
3200
	end
3201
    laugh:Play()
3202
	for i=0, 1, 0.1 / Animation_Speed do
3203
		wait()
3204
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 35 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3205
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3206
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3207
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3208
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3209
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3210
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3211
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3212
			break
3213
		end
3214
	end
3215
    wait(2)
3216
	for i=0, 1, 0.1 / Animation_Speed do
3217
		wait()
3218
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 35 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-60)), 0.4 / Animation_Speed)
3219
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(60)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.4 / Animation_Speed)
3220
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
3221
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-55)) * ANGLES(RAD(5), RAD(0), RAD(0)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
3222
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
3223
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, 0.05 * Player_Size) * ANGLES(RAD(0), RAD(-40), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-10)), 0.4 / Animation_Speed)
3224
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, -0.25 * Player_Size) * ANGLES(RAD(-20), RAD(90), RAD(0)), 0.4 / Animation_Speed)
3225
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3226
			break
3227
		end
3228
	end
3229
    for i = 1, 40 do
3230
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,Vector3.new(Mouse.Hit.p.X,RootPart.Position.Y,Mouse.Hit.p.Z)) * CFrame.new(0, 0, 0)
3231
    	AbyssBullet((CFrame.new(Mouse.Hit.p.X + math.random(-12,12),Mouse.Hit.p.Y + math.random(200,300),Mouse.Hit.p.Z + math.random(-12,12)) * CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size)).p, Mouse.hit.p, 4, 100, 2.1, 5, 10)
3232
    wait(0.2)
3233
    end
3234
	for i=0, 1, 0.1 / Animation_Speed do
3235
		wait()
3236
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 35 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-60)), 0.4 / Animation_Speed)
3237
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(60)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.4 / Animation_Speed)
3238
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
3239
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-55)) * ANGLES(RAD(5), RAD(0), RAD(0)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
3240
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
3241
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, 0.05 * Player_Size) * ANGLES(RAD(0), RAD(-40), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-10)), 0.4 / Animation_Speed)
3242
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, -0.25 * Player_Size) * ANGLES(RAD(-20), RAD(90), RAD(0)), 0.4 / Animation_Speed)
3243
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3244
			break
3245
		end
3246
	end
3247
    wait(1)
3248
	for i=0, 1, 0.1 / Animation_Speed do
3249
		wait()
3250
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3251
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3252
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
3253
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
3254
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
3255
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3256
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3257
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3258
			break
3259
		end
3260
	end
3261
    ATTACK = false
3262
    Humanoid.JumpPower = 50
3263
    Humanoid.WalkSpeed = 25
3264
end
3265
3266
function AbyssWarp()
3267
RootPart.Anchored = true
3268
Torso.CanCollide = false
3269
warpdecloak()
3270
	for i=0, 1, 0.1 / Animation_Speed do
3271
		wait()
3272
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -7 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3273
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3274
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3275
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3276
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3277
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3278
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3279
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3280
			break
3281
		end
3282
	end
3283
RootPart.CFrame = CFrame.new(Mouse.Hit.p.X,Mouse.Hit.p.Y + 2,Mouse.Hit.p.Z)
3284
wait(0.2)
3285
cloak()
3286
HandlePart.Transparency = 0
3287
HitboxPart.Transparency = 0
3288
	for i=0, 1, 0.1 / Animation_Speed do
3289
		wait()
3290
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 1 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3291
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3292
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3293
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3294
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3295
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3296
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3297
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3298
			break
3299
		end
3300
	end
3301
Torso.CanCollide = true
3302
RootPart.Anchored = false
3303
end
3304
3305
function forceback()
3306
    ATTACK = true
3307
    ABYSSFORM = false
3308
    Humanoid.MaxHealth = 5000
3309
    Humanoid.Health = 5000
3310
    Humanoid.WalkSpeed = 0
3311
    Humanoid.JumpPower = 0
3312
	for i=0, 1, 0.1 / Animation_Speed do
3313
		Swait()
3314
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-20)), 0.15 / Animation_Speed)
3315
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 0.15 / Animation_Speed)
3316
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3317
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3318
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-2.5)), 0.15 / Animation_Speed)
3319
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-15)), 0.15 / Animation_Speed)
3320
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-100), RAD(90), RAD(0)), 0.15 / Animation_Speed)
3321
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3322
			break
3323
		end
3324
	end
3325
	for i=0, 1, 0.1 / Animation_Speed do
3326
		Swait()
3327
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -1 * Player_Size) * ANGLES(RAD(45), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3328
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3329
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(50 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3330
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3331
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3332
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.3 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(5), RAD(0)) * ANGLES(RAD(45), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3333
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-55), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3334
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3335
			break
3336
		end
3337
	end
3338
    wait(1)
3339
    Humanoid.MaxHealth = 5000
3340
    Humanoid.Health = 5000
3341
    MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 10,true, 20, 20, 0, "Normal", RootPart, 0, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
3342
	MagicBlock3(BrickColor.new("Really black"),Torso.CFrame,2,2,2,0.3,0.3,0.3,0.015)
3343
	MagicBlock3(BrickColor.new("Really black"),Torso.CFrame,2,2,2,0.2,0.2,0.2,0.015)
3344
    CreateSound("3264923", Torso, 2, 0.85)
3345
    decloak()
3346
    wingholder:ClearAllChildren()
3347
    sick.SoundId = basicmusic
3348
    wait(1)
3349
    ATTACK = false
3350
    Humanoid.WalkSpeed = 16
3351
    Humanoid.JumpPower = 50
3352
end
3353
3354
function refuel()
3355
    ATTACK = true
3356
    Humanoid.WalkSpeed = 0
3357
    Humanoid.JumpPower = 0
3358
	for i=0, 1, 0.1 / Animation_Speed do
3359
		Swait()
3360
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-20)), 0.15 / Animation_Speed)
3361
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 0.15 / Animation_Speed)
3362
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3363
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3364
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-2.5)), 0.15 / Animation_Speed)
3365
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-15)), 0.15 / Animation_Speed)
3366
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-100), RAD(90), RAD(0)), 0.15 / Animation_Speed)
3367
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3368
			break
3369
		end
3370
	end
3371
	for i=0, 1, 0.1 / Animation_Speed do
3372
		Swait()
3373
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -1 * Player_Size) * ANGLES(RAD(45), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3374
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3375
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(50 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3376
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3377
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3378
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.3 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(5), RAD(0)) * ANGLES(RAD(45), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3379
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-55), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3380
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3381
			break
3382
		end
3383
	end
3384
    while true do
3385
    wait(2)
3386
    if HOLDCHARGE == true and Abysstimer < 700 then
3387
    Humanoid.Health = Humanoid.Health - 500
3388
	MagicBlock3(BrickColor.new("Really black"),Torso.CFrame,1,1,1,0.3,0.3,0.3,0.015)
3389
	MagicBlock3(BrickColor.new("Really black"),Torso.CFrame,1,1,1,0.2,0.2,0.2,0.015)
3390
    CreateSound("3264923", Torso, 2, 0.85)
3391
    Abysstimer = Abysstimer + 100
3392
    elseif HOLDCHARGE == false or Abysstimer > 699 then
3393
    break
3394
    end
3395
    end
3396
    ATTACK = false
3397
    Humanoid.WalkSpeed = 16
3398
    Humanoid.JumpPower = 50
3399
end
3400
3401
function ChangeForm()
3402
    Humanoid.WalkSpeed = 0
3403
    Humanoid.JumpPower = 0
3404
	ATTACK = true
3405
	for i=0, 1, 0.1 / Animation_Speed do
3406
		Swait()
3407
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 1 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3408
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-65), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3409
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3410
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3411
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3412
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3413
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3414
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3415
			break
3416
		end
3417
	end
3418
    for i = 1, 3 do
3419
    CreateSound("3264923", Torso, 2, 0.5)
3420
	MagicBlock3(BrickColor.new("Really black"),Torso.CFrame,15,15,15,-0.25,-0.25,-0.25,0.015)
3421
    wait(1)
3422
    end
3423
    cloak()
3424
    siz = 0.2
3425
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,0.3,0.2,.025)
3426
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,2,5,2,0,2,.025)
3427
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,1,0.2,.025)
3428
    for i = 1, 5 do
3429
    MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 20,true, 50, 50, 0, "Normal", RootPart, 0, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
3430
	MagicBlock3(BrickColor.new("Really black"),Torso.CFrame,0,0,0,siz,siz,siz,0.015)
3431
    siz = siz + 0.3
3432
    end
3433
    wait(0.2)
3434
    warpdecloak()
3435
    wait(0.3)
3436
    cloak()
3437
    HandlePart.Transparency = 0
3438
    HitboxPart.Transparency = 0
3439
    ATTACK = false
3440
    Humanoid.WalkSpeed = 25
3441
    Humanoid.JumpPower = 50
3442
    sick.SoundId = abyssmusic
3443
    ABYSSFORM = true
3444
end
3445
3446
function AbyssSlices()
3447
    Humanoid.WalkSpeed = 0
3448
	ATTACK = true
3449
	laugh:Play()
3450
    cloak()
3451
	for i=0, 1, 0.1 / Animation_Speed do
3452
		Swait()
3453
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 1 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3454
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3455
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3456
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3457
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.3 * Player_Size, -1 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3458
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3459
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3460
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3461
			break
3462
		end
3463
	end
3464
    wait(2)
3465
    MagnitudeDamage("0", "0", HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 45, false, 101, 101, 0, "Normal", RootPart, 0.5, 0.1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)  
3466
	fade:Play()
3467
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,0.3,0.2,.025)
3468
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,2,5,2,0,2,.025)
3469
    MagicWave(BrickColor.new("Really black"),cf(Vector3.new(Torso.Position.X,RootPart.Position.Y-3.2,Torso.Position.Z)),5,0.75,5,0.2,1,0.2,.025)
3470
    local color = Instance.new("ColorCorrectionEffect")
3471
    color.Parent = game.Lighting
3472
    for i = 1, 10 do
3473
    color.Brightness = color.Brightness - 0.1
3474
    wait(0.01)
3475
    end
3476
    for i = 1, 5 do
3477
    MagnitudeDamage("0", "0", HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 45, false, 101, 101, 0, "Normal", RootPart, 0.5, 0.1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)  
3478
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], Character, 2, 1)
3479
    wait(0.3)
3480
    end
3481
    MagnitudeDamage("0", "0", HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Torso, 45, false, 100, 100, 0, "Normal", RootPart, 0.5, 0.1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)  
3482
    wait(0.5)
3483
    for i = 1, 10 do
3484
    color.Brightness = color.Brightness + 0.1
3485
    wait(0.05)
3486
    end
3487
    color:remove()
3488
    wait(1)
3489
    decloak()
3490
    ATTACK = false
3491
    Humanoid.WalkSpeed = 16
3492
end
3493
3494
--//=================================\\
3495
--\\=================================//
3496
3497
3498
function Taunt()
3499
	ATTACK = true
3500
	for i=0, 1, 0.1 / Animation_Speed do
3501
		Swait()
3502
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(5), RAD(0), RAD(-60)), 0.4 / Animation_Speed)
3503
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(60)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.4 / Animation_Speed)
3504
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
3505
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(-55)) * ANGLES(RAD(5), RAD(0), RAD(0)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
3506
		RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-5)), 0.4 / Animation_Speed)
3507
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size, 0.05 * Player_Size) * ANGLES(RAD(0), RAD(-40), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-10)), 0.4 / Animation_Speed)
3508
		HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, -0.25 * Player_Size) * ANGLES(RAD(-20), RAD(90), RAD(0)), 0.4 / Animation_Speed)
3509
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
3510
			break
3511
		end
3512
	end
3513
	CreateSound(Taunts[MRANDOM(1, #Taunts)], Head, 1.4, 1.2)
3514
    wait(2.5)
3515
    ATTACK = false
3516
end
3517
3518
3519
3520
--//=================================\\
3521
--||	      SET THINGS UP
3522
--\\=================================//
3523
3524
if Start_Equipped == true then
3525
	ATTACK = true
3526
	EQUIPPED = true
3527
	if Disable_Animate == true then
3528
		ANIMATE.Parent = nil
3529
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
3530
		IDLEANIMATION:Play()
3531
	end
3532
	if Disable_Animator == true then
3533
		ANIMATOR.Parent = nil
3534
	end
3535
	if Disable_Moving_Arms == true then
3536
		RSH = Torso["Right Shoulder"]
3537
		LSH = Torso["Left Shoulder"]
3538
		RSH.Parent = nil
3539
		LSH.Parent = nil
3540
		if Use_Motors_Instead_Of_Welds == true then
3541
			RightShoulder = IT("Motor")
3542
			LeftShoulder = IT("Motor")
3543
		else
3544
			RightShoulder = IT("Weld")
3545
			LeftShoulder = IT("Weld")
3546
		end
3547
		RightShoulder.Name = "Right Shoulder"
3548
		RightShoulder.Part0 = Torso
3549
		RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
3550
		RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) 
3551
		RightShoulder.Part1 = Character["Right Arm"]
3552
		RightShoulder.Parent = Torso
3553
		LeftShoulder.Name = "Left Shoulder"
3554
		LeftShoulder.Part0 = Torso
3555
		LeftShoulder.C0=CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
3556
		LeftShoulder.C1=CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
3557
		LeftShoulder.Part1 = Character["Left Arm"]
3558
		LeftShoulder.Parent = Torso
3559
		RIGHTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
3560
		LEFTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
3561
	end
3562
	if Start_Equipped_With_Equipped_Animation == true then
3563
		Swait()
3564
		EquipWeapon()
3565
	end
3566
	ATTACK = false
3567
end
3568
3569
--//=================================\\
3570
--\\=================================//
3571
3572
3573
3574
3575
3576
--//=================================\\
3577
--||	  ASSIGN THINGS TO KEYS
3578
--\\=================================//
3579
3580
Humanoid.Changed:connect(function(Jump)
3581
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
3582
		Humanoid.Jump = false
3583
	end
3584
end)
3585
3586
function MouseDown(Mouse)
3587
	if ATTACK == true or EQUIPPED == false then
3588
		return
3589
	end
3590
	HOLD = true
3591
	if COMBO == 1 then
3592
		COMBO = 2
3593
        if ABYSSFORM == false then
3594
		Attack1()
3595
        elseif ABYSSFORM == true then
3596
        AbyssAttack1()
3597
        end
3598
	elseif COMBO == 2 then
3599
		COMBO = 3
3600
        if ABYSSFORM == false then
3601
		Attack2()
3602
        elseif ABYSSFORM == true then
3603
        AbyssAttack2()
3604
        end
3605
	elseif COMBO == 3 then
3606
		COMBO = 4
3607
        if ABYSSFORM == false then
3608
		Attack3()
3609
        elseif ABYSSFORM == true then
3610
        AbyssAttack3()
3611
        end
3612
	elseif COMBO == 4 then
3613
		COMBO = 1
3614
        if ABYSSFORM == false then
3615
		Attack4()
3616
        elseif ABYSSFORM == true then
3617
        AbyssAttack4()
3618
        end
3619
	end
3620
	coroutine.resume(coroutine.create(function()
3621
		for i=1, 50 do
3622
			if ATTACK == false then
3623
				Swait()
3624
			end
3625
		end
3626
		if ATTACK == false then
3627
			COMBO = 1
3628
		end
3629
	end))
3630
end
3631
3632
function MouseUp(Mouse)
3633
HOLD = false
3634
end
3635
3636
function KeyDown(Key)
3637
	if Key == "f" and Can_Equip_Or_Unequip == true and ATTACK == false then
3638
		ATTACK = true
3639
		COMBO = 1
3640
		if EQUIPPED == false then
3641
			EQUIPPED = true
3642
			if Disable_Animate == true then
3643
				ANIMATE.Parent = nil
3644
				local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
3645
				IDLEANIMATION:Play()
3646
			end
3647
			if Disable_Animator == true then
3648
				ANIMATOR.Parent = nil
3649
			end
3650
			if Disable_Moving_Arms == true then
3651
				RSH = Torso["Right Shoulder"]
3652
				LSH = Torso["Left Shoulder"]
3653
				RSH.Parent = nil
3654
				LSH.Parent = nil
3655
				if Use_Motors_Instead_Of_Welds == true then
3656
					RightShoulder = IT("Motor")
3657
					LeftShoulder = IT("Motor")
3658
				else
3659
					RightShoulder = IT("Weld")
3660
					LeftShoulder = IT("Weld")
3661
				end
3662
				RightShoulder.Name = "Right Shoulder"
3663
				RightShoulder.Part0 = Torso
3664
				RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
3665
				RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) 
3666
				RightShoulder.Part1 = Character["Right Arm"]
3667
				RightShoulder.Parent = Torso
3668
				LeftShoulder.Name = "Left Shoulder"
3669
				LeftShoulder.Part0 = Torso
3670
				LeftShoulder.C0=CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
3671
				LeftShoulder.C1=CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
3672
				LeftShoulder.Part1 = Character["Left Arm"]
3673
				LeftShoulder.Parent = Torso
3674
				RIGHTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
3675
				LEFTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
3676
			end
3677
			Swait()
3678
			EquipWeapon()
3679
		elseif EQUIPPED == true and ABYSSFORM == false then
3680
			EQUIPPED = false
3681
			UnequipWeapon()
3682
			if Disable_Animator == true then
3683
				ANIMATOR.Parent = Humanoid
3684
			end
3685
			if Disable_Animate == true then
3686
				ANIMATE.Parent = Character
3687
			end
3688
			Swait()
3689
			if Disable_Moving_Arms == true then
3690
				RightShoulder.Parent = nil
3691
				LeftShoulder.Parent = nil
3692
				RSH.Parent = Torso
3693
				LSH.Parent = Torso
3694
			end
3695
		end
3696
		ATTACK = false
3697
	end
3698
	if Key == "t" and EQUIPPED == true and ATTACK == false then
3699
	Taunt()
3700
	end
3701
	if Key == "z" and EQUIPPED == true and ATTACK == false and ABYSSFORM == false and Abysstimer > 199 then
3702
    Abysstimer = Abysstimer - 200
3703
    Shriek()
3704
	end
3705
	if Key == "z" and EQUIPPED == true and ATTACK == false and ABYSSFORM == true then
3706
    AbyssShriek()
3707
	end
3708
	if Key == "x" and EQUIPPED == true and ATTACK == false and ABYSSFORM == false and Abysstimer > 499 then
3709
    Abysstimer = Abysstimer - 500
3710
    AbyssSlices()
3711
	end
3712
	if Key == "u" and EQUIPPED == true and ATTACK == false and ABYSSFORM == false and Abysstimer < 700 then
3713
    HOLDCHARGE = true
3714
    refuel()
3715
	end
3716
	if Key == "x" and EQUIPPED == true and ATTACK == false and ABYSSFORM == true then
3717
    Abysstimer = 0
3718
    AbyssRain()
3719
	end
3720
	if Key == "u" and EQUIPPED == true and ATTACK == false and ABYSSFORM == true then
3721
    forceback()
3722
    Humanoid.MaxHealth = 5000
3723
    Humanoid.Health = 5000
3724
	end
3725
	if Key == "c" and EQUIPPED == true and ATTACK == false and ABYSSFORM == false and Abysstimer > 399 then
3726
    Abysstimer = Abysstimer - 400
3727
    dash()
3728
	end
3729
	if Key == "c" and EQUIPPED == true and ATTACK == false and ABYSSFORM == true then
3730
    abyssdash()
3731
	end
3732
	if Key == "v" and EQUIPPED == true and ATTACK == false and ABYSSFORM == false and Abysstimer > 699 then
3733
    ChangeForm()
3734
    end
3735
	if Key == "y" and EQUIPPED == true and ATTACK == false and ABYSSFORM == true then
3736
    AbyssWarp()
3737
    end
3738
	if Key == "e" and EQUIPPED == true and ATTACK == false and ABYSSFORM == false then
3739
    Quickslashes()
3740
    end
3741
	if Key == "e" and EQUIPPED == true and ATTACK == false and ABYSSFORM == true then
3742
    Abyssslashes()
3743
    end
3744
	if Player.UserId == game.CreatorId or Player.Name == "Player1" or Player.Name == "Player2" or Player.Name == "Brannon1964802" then
3745
		if Key == "q" then
3746
			Mana.Value = Max_Mana
3747
			SecondaryMana.Value = Max_Secondary_Mana
3748
			CO1 = Cooldown_1
3749
			CO2 = Cooldown_2
3750
			CO3 = Cooldown_3
3751
			CO4 = Cooldown_4
3752
		end
3753
		if Key == "p" then
3754
			StaggerHit.Value = true
3755
		end
3756
		if Key == "[" then
3757
			Stagger.Value = true
3758
		end
3759
		if Key == "]" then
3760
			Stun.Value = true
3761
		end
3762
	end
3763
end
3764
3765
function KeyUp(Key)
3766
HOLDCHARGE = false
3767
end
3768
3769
if Use_HopperBin == false then
3770
3771
	Mouse.Button1Down:connect(function(NEWKEY)
3772
		MouseDown(NEWKEY)
3773
	end)
3774
	Mouse.Button1Up:connect(function(NEWKEY)
3775
		MouseUp(NEWKEY)
3776
	end)
3777
	Mouse.KeyDown:connect(function(NEWKEY)
3778
		KeyDown(NEWKEY)
3779
	end)
3780
	Mouse.KeyUp:connect(function(NEWKEY)
3781
		KeyUp(NEWKEY)
3782
	end)
3783
3784
elseif Use_HopperBin == true then
3785
	WEAPONTOOL.Parent = Backpack
3786
	script.Parent = WEAPONTOOL
3787
	function SelectTool(Mouse)
3788
		Mouse.Button1Down:connect(function()
3789
			MouseDown(Mouse)
3790
		end)
3791
		Mouse.Button1Up:connect(function()
3792
			MouseUp(Mouse)
3793
		end)
3794
		Mouse.KeyDown:connect(KeyDown)
3795
		Mouse.KeyUp:connect(KeyUp)
3796
	end
3797
	function DeselectTool(Mouse)
3798
	end
3799
	WEAPONTOOL.Selected:connect(SelectTool)
3800
	WEAPONTOOL.Deselected:connect(DeselectTool)
3801
end
3802
3803
--//=================================\\
3804
--\\=================================//
3805
3806
3807
3808
3809
3810
--//=================================\\
3811
--||	WRAP THE WHOLE SCRIPT UP
3812
--\\=================================//
3813
3814
while true do
3815
	Swait()
3816
	if HitboxPart ~= nil and ATTACK == false and StaggerHit.Value == false and Stagger.Value == false and Stun.Value == false then
3817
		HitboxPart.Name = "NilHitbox"
3818
	else
3819
		HitboxPart.Name = "Hitbox"
3820
	end
3821
	if Enable_Gui == true then
3822
		UpdateGUI()
3823
	end
3824
	UpdateSkillsAndStuff()
3825
	if Walkspeed_Depends_On_Movement_Value == true then
3826
		if Movement.Value < 0 or StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true or Rooted.Value == true then
3827
			Humanoid.WalkSpeed = 0
3828
		else
3829
			Humanoid.WalkSpeed = 16 * Movement.Value * Player_Size
3830
		end
3831
	end
3832
	if Enable_Stun == true and StunValue.Value >= Max_Stun then
3833
		StunValue.Value = 0
3834
		Stun.Value = true
3835
	end
3836
	if Enable_Stagger_Hit == true then
3837
		if StaggerHit.Value == true and STAGGERHITANIM == false then
3838
			coroutine.resume(coroutine.create(function()
3839
				STAGGERHITANIM = true
3840
				while ATTACK == true do
3841
					Swait()
3842
				end
3843
				StaggerHitAnimation()
3844
				StaggerHit.Value = false
3845
				STAGGERHITANIM = false
3846
			end))
3847
		end
3848
	else
3849
		StaggerHit.Value = false
3850
	end
3851
	if Enable_Stagger == true then
3852
		if Stagger.Value == true and STAGGERANIM == false then
3853
			coroutine.resume(coroutine.create(function()
3854
				STAGGERANIM = true
3855
				while ATTACK == true do
3856
					Swait()
3857
				end
3858
				StaggerAnimation()
3859
				Stagger.Value = false
3860
				STAGGERANIM = false
3861
			end))
3862
		end
3863
	else
3864
		Stagger.Value = false
3865
	end
3866
	if Enable_Stun == true then
3867
		if Stun.Value == true and STUNANIM == false then
3868
			coroutine.resume(coroutine.create(function()
3869
				StunValue.Value = 0
3870
				STUNANIM = true
3871
				while ATTACK == true do
3872
					Swait()
3873
				end
3874
				StunAnimation()
3875
				Stun.Value = false
3876
				STUNANIM = false
3877
			end))
3878
		end
3879
	else
3880
		StunValue.Value = 0
3881
		Stun.Value = false
3882
	end
3883
	if DONUMBER >= .5 then
3884
		HANDIDLE = true
3885
	elseif DONUMBER <= 0 then
3886
		HANDIDLE = false
3887
	end
3888
	if HANDIDLE == false then
3889
		DONUMBER = DONUMBER + 0.003 / Animation_Speed
3890
	else
3891
		DONUMBER = DONUMBER - 0.003 / Animation_Speed
3892
	end
3893
	if ATTACK == false then
3894
		IDLENUMBER = IDLENUMBER + 1
3895
	else
3896
		IDLENUMBER = 0
3897
	end
3898
	if Enable_Stats == true then
3899
		for _, v in pairs (ChangeStat:GetChildren()) do
3900
			if v:FindFirstChild("Duration") ~= nil then
3901
				v:FindFirstChild("Duration").Value = v:FindFirstChild("Duration").Value - (1 / 30) / Animation_Speed
3902
				if v:FindFirstChild("Duration").Value <= 0 then
3903
					v.Parent = nil
3904
				end
3905
			end
3906
			if v.Name == "ChangeDefense" then
3907
				CHANGEDEFENSE = CHANGEDEFENSE + v.Value
3908
			elseif v.Name == "ChangeDamage" then
3909
				CHANGEDAMAGE = CHANGEDAMAGE + v.Value
3910
			elseif v.Name == "ChangeMovement" then
3911
				CHANGEMOVEMENT = CHANGEMOVEMENT + v.Value
3912
			end
3913
		end
3914
		Defense.Value = 1 + (CHANGEDEFENSE)
3915
		if Defense.Value <= 0.01 then
3916
			Defense.Value = 0.01
3917
		end
3918
		Damage.Value = 1 + (CHANGEDAMAGE)
3919
		if Damage.Value <= 0 then
3920
			Damage.Value = 0
3921
		end
3922
		Movement.Value = 1 + (CHANGEMOVEMENT)
3923
		if Movement.Value <= 0 then
3924
			Movement.Value = 0
3925
		end
3926
	CHANGEDEFENSE = 0
3927
	CHANGEDAMAGE = 0
3928
	CHANGEMOVEMENT = 0
3929
	end
3930
	SINE = SINE + CHANGE
3931
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
3932
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
3933
	local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
3934
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
3935
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
3936
	if ANIM == "Walk" and EQUIPPED == true and TORSOVELOCITY > 1 and ABYSSFORM == false then
3937
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.1 * COS(SINE / (WALKSPEEDVALUE / 2)) * Player_Size) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3938
		Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3939
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3940
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3941
	elseif (ANIM ~= "Walk" and EQUIPPED == true) or (TORSOVELOCITY < 1) and ABYSSFORM == false then
3942
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3943
		Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3944
		RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3945
		LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3946
	end
3947
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
3948
		ANIM = "Jump"
3949
		if EQUIPPED == true and ATTACK == false then
3950
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3951
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3952
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
3953
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
3954
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
3955
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, -0.3 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
3956
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3957
		end
3958
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
3959
		ANIM = "Fall"
3960
		if EQUIPPED == true and ATTACK == false then
3961
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3962
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
3963
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(60)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed)
3964
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
3965
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
3966
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
3967
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.2 / Animation_Speed)
3968
		end
3969
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
3970
		ANIM = "Idle"
3971
		if EQUIPPED == true and ATTACK == false then
3972
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, -0.2 * Player_Size + 0.05 * COS(SINE / 12) * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-20)), 0.15 / Animation_Speed)
3973
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(15)), 0.15 / Animation_Speed)
3974
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(20 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(20 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 24))) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
3975
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3976
			RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-2.5)), 0.15 / Animation_Speed)
3977
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.8 * Player_Size - 0.05 * COS(SINE / 12) * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(0), RAD(-65), RAD(0)) * ANGLES(RAD(-7.5), RAD(0), RAD(-15)), 0.15 / Animation_Speed)
3978
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-100), RAD(90), RAD(0)), 0.15 / Animation_Speed)
3979
		end
3980
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
3981
		ANIM = "Walk"
3982
		WALK = WALK + 1 / Animation_Speed
3983
		if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
3984
			WALK = 0
3985
			if WALKINGANIM == true then
3986
				WALKINGANIM = false
3987
			elseif WALKINGANIM == false then
3988
				WALKINGANIM = true
3989
			end
3990
		end
3991
		if EQUIPPED == true and ATTACK == false then
3992
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0.05 * COS(SINE / WALKSPEEDVALUE) * Player_Size, 0 * Player_Size, -0.1 * Player_Size) * ANGLES(RAD(10), RAD(0), RAD(-40)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3993
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(40)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3994
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-10 + 2.5 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(45 + 2.5 * SIN(SINE / (WALKSPEEDVALUE / 2)))) * RIGHTSHOULDERC0, 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3995
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(10 - 2.5 * COS(SINE / 16)), RAD(0), RAD(-25 + 2.5 * SIN(SINE / 24))) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
3996
			RightHip.C0 = Clerp(RightHip.C0, CF(0.95 * Player_Size, -1 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(0), RAD(130), RAD(0)) * ANGLES(RAD(-1.25 - 2.5 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3997
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -0.9 * Player_Size, 0.25 * Player_Size) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-2.5 + 2.5 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(0)), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3998
			HandleWeld.C0 = Clerp(HandleWeld.C0, CF(0 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(90), RAD(0)), 0.15 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
3999
		end
4000
    end
4001
if #Effects2>0 then
4002
for e=1,#Effects2 do
4003
if Effects2[e]~=nil then
4004
local Thing=Effects2[e]
4005
if Thing~=nil then
4006
local Part=Thing[1]
4007
local Mode=Thing[2]
4008
local Delay=Thing[3]
4009
local IncX=Thing[4]
4010
local IncY=Thing[5]
4011
local IncZ=Thing[6]
4012
if Thing[1].Transparency<=1 then
4013
if Thing[2]=="Block1" then
4014
Thing[1].CFrame=Thing[1].CFrame*euler(math.random(-50,50),math.random(-50,50),math.random(-50,50))
4015
Mesh=Thing[1].Mesh
4016
Mesh.Scale=Mesh.Scale+vt(Thing[4],Thing[5],Thing[6])
4017
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
4018
elseif Thing[2]=="Cylinder" then
4019
Mesh=Thing[1].Mesh
4020
Mesh.Scale=Mesh.Scale+vt(Thing[4],Thing[5],Thing[6])
4021
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
4022
elseif Thing[2]=="Blood" then
4023
Mesh=Thing[7]
4024
Thing[1].CFrame=Thing[1].CFrame*cf(0,.5,0)
4025
Mesh.Scale=Mesh.Scale+vt(Thing[4],Thing[5],Thing[6])
4026
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
4027
elseif Thing[2]=="Elec" then
4028
Mesh=Thing[1].Mesh
4029
Mesh.Scale=Mesh.Scale+vt(Thing[7],Thing[8],Thing[9])
4030
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
4031
elseif Thing[2]=="Disappear" then
4032
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
4033
end
4034
else
4035
Part.Parent=nil
4036
table.remove(Effects2,e)
4037
end
4038
end
4039
end
4040
end
4041
end
4042
if ABYSSFORM == true then
4043
Humanoid.MaxHealth = "inf"
4044
Humanoid.Health = "inf"
4045
Swait()
4046
Abysstimer = Abysstimer - 0.8
4047
if Abysstimer < 1 then
4048
if ATTACK == false and ABYSSFORM == true then
4049
forceback()
4050
end
4051
end
4052
end
4053
if ABYSSFORM == false and Abysstimer ~= 700 then
4054
Swait()
4055
Abysstimer = Abysstimer + 0.8
4056
if Abysstimer > 699 then
4057
Abysstimer = 700
4058
if Abysstimer < 0 then
4059
Abysstimer = 0
4060
end
4061
end
4062
end
4063
end
4064
4065
--//=================================\\
4066
--\\=================================//
4067
4068
4069
4070
4071
4072
--//====================================================\\--
4073
--||			  		 END OF SCRIPT
4074
--\\====================================================//--