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