View difference between Paste ID: zWFnSQi7 and XVshUrT5
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Use h/ Buster ") end
2-
--||			   CREATED BY SHACKLUSTER
2+
warn(" credits goes to the real creator ")
3-
--\\====================================================//--
3+
warn(" Dont abuse pls ")
4
local Player,game,owner = owner,game
5
local RealPlayer = Player
6
do
7
    print("FE Compatibility code by Mokiros")
8
    local rp = RealPlayer
9
    script.Parent = rp.Character
10
   
11
    --RemoteEvent for communicating
12
    local Event = Instance.new("RemoteEvent")
13
    Event.Name = "UserInput_Event"
14
 
15
    --Fake event to make stuff like Mouse.KeyDown work
16
    local function fakeEvent()
17
        local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
18
        t.connect = t.Connect
19
        return t
20
    end
21
 
22
    --Creating fake input objects with fake variables
23
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
24
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
25
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
26
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
27
    end}
28
    --Merged 2 functions into one by checking amount of arguments
29
    CAS.UnbindAction = CAS.BindAction
30
 
31
    --This function will trigger the events that have been :Connect()'ed
32
    local function te(self,ev,...)
33
        local t = m[ev]
34
        if t and t._fakeEvent then
35
            for _,f in pairs(t.Functions) do
36
                f(...)
37
            end
38
        end
39
    end
40
    m.TrigEvent = te
41
    UIS.TrigEvent = te
42
 
43
    Event.OnServerEvent:Connect(function(plr,io)
44
        if plr~=rp then return end
45
        m.Target = io.Target
46
        m.Hit = io.Hit
47
        if not io.isMouse then
48
            local b = io.UserInputState == Enum.UserInputState.Begin
49
            if io.UserInputType == Enum.UserInputType.MouseButton1 then
50
                return m:TrigEvent(b and "Button1Down" or "Button1Up")
51
            end
52
            for _,t in pairs(CAS.Actions) do
53
                for _,k in pairs(t.Keys) do
54
                    if k==io.KeyCode then
55
                        t.Function(t.Name,io.UserInputState,io)
56
                    end
57
                end
58
            end
59
            m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
60
            UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
61
        end
62
    end)
63
    Event.Parent = NLS([==[
64
    local Player = game:GetService("Players").LocalPlayer
65
    local Event = script:WaitForChild("UserInput_Event")
66
 
67
    local Mouse = Player:GetMouse()
68
    local UIS = game:GetService("UserInputService")
69
    local input = function(io,a)
70
        if a then return end
71
        --Since InputObject is a client-side instance, we create and pass table instead
72
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
73
    end
74
    UIS.InputBegan:Connect(input)
75
    UIS.InputEnded:Connect(input)
76
 
77
    local h,t
78
    --Give the server mouse data 30 times every second, but only if the values changed
79
    --If player is not moving their mouse, client won't fire events
80
    while wait(1/30) do
81
        if h~=Mouse.Hit or t~=Mouse.Target then
82
            h,t=Mouse.Hit,Mouse.Target
83
            Event:FireServer({isMouse=true,Target=t,Hit=h})
84
        end
85
    end]==],Player.Character)
86
 
87
    ----Sandboxed game object that allows the usage of client-side methods and services
88
    --Real game object
89
    local _rg = game
90
 
91
    --Metatable for fake service
92
    local fsmt = {
93
        __index = function(self,k)
94
            local s = rawget(self,"_RealService")
95
            if s then return s[k] end
96
        end,
97
        __newindex = function(self,k,v)
98
            local s = rawget(self,"_RealService")
99
            if s then s[k]=v end
100
        end,
101
        __call = function(self,...)
102
            local s = rawget(self,"_RealService")
103
            if s then return s(...) end
104
        end
105
    }
106
    local function FakeService(t,RealService)
107
        t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
108
        return setmetatable(t,fsmt)
109
    end
110
 
111
    --Fake game object
112
    local g = {
113
        GetService = function(self,s)
114
            return self[s]
115
        end,
116
        Players = FakeService({
117
            LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
118
        },"Players"),
119
        UserInputService = FakeService(UIS,"UserInputService"),
120
        ContextActionService = FakeService(CAS,"ContextActionService"),
121
    }
122
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
123
    g.service = g.GetService
124
   
125
    g.RunService = FakeService({
126
        RenderStepped = _rg:GetService("RunService").Heartbeat,
127
        BindToRenderStep = function(self,name,_,fun)
128
 
129
        end,
130
        UnbindFromRenderStep = function(self,name)
131
            self._btrs[name]:Disconnect()
132
        end,
133
    },"RunService")
134
 
135
    setmetatable(g,{
136
        __index=function(self,s)
137
            return _rg:GetService(s) or typeof(_rg[s])=="function"
138
            and function(_,...)return _rg[s](_rg,...)end or _rg[s]
139
        end,
140
        __newindex = fsmt.__newindex,
141
        __call = fsmt.__call
142
    })
143
    --Changing owner to fake player object to support owner:GetMouse()
144
    game,owner = g,g.Players.LocalPlayer
145
end
146
147
148
149
wait(2)
150
151
152
153
Player = game:GetService("Players").LocalPlayer
154
PlayerGui = Player.PlayerGui
155
Cam = workspace.CurrentCamera
156
Backpack = Player.Backpack
157
Character = Player.Character
158
Humanoid = Character.Humanoid
159
Mouse = Player:GetMouse()
160
RootPart = Character["HumanoidRootPart"]
161
Torso = Character["Torso"]
162
Head = Character["Head"]
163
RightArm = Character["Right Arm"]
164
LeftArm = Character["Left Arm"]
165
RightLeg = Character["Right Leg"]
166
LeftLeg = Character["Left Leg"]
167
RootJoint = RootPart["RootJoint"]
168
Neck = Torso["Neck"]
169
RightShoulder = Torso["Right Shoulder"]
170
LeftShoulder = Torso["Left Shoulder"]
171
RightHip = Torso["Right Hip"]
172
LeftHip = Torso["Left Hip"]
173
if Character:FindFirstChild("Shirt") then
174
Character.Shirt:Destroy()
175
end
176
if Character:FindFirstChild("Pants") then
177
Character.Pants:Destroy()
178
end
179
local top = Instance.new("Shirt")
180
top.ShirtTemplate = "rbxassetid://764022882"
181
local bottom = Instance.new("Pants")
182
bottom.PantsTemplate = "rbxassetid://129459076"
183
top.Parent = Character
184
bottom.Parent = Character
185
q = Character:GetChildren()
186
for u = 1, #q do
187
if q[u].ClassName == "Accessory" then
188
q[u]:Destroy()
189
elseif q[u].ClassName == "CharacterMesh" then
190
q[u]:Destroy()
191
end
192
end
193
Head.face.Texture = "rbxassetid://1032441660"
194
195
IT = Instance.new
196
CF = CFrame.new
197
VT = Vector3.new
198
RAD = math.rad
199
C3 = Color3.new
200
UD2 = UDim2.new
201
BRICKC = BrickColor.new
202
ANGLES = CFrame.Angles
203
EULER = CFrame.fromEulerAnglesXYZ
204
COS = math.cos
205
ACOS = math.acos
206
SIN = math.sin
207
ASIN = math.asin
208
ABS = math.abs
209
MRANDOM = math.random
210
FLOOR = math.floor
211
212
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
213
	local NEWMESH = IT(MESH)
214
	if MESH == "SpecialMesh" then
215
		NEWMESH.MeshType = MESHTYPE
216
		if MESHID ~= "nil" and MESHID ~= "" then
217
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
218
		end
219
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
220
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
221
		end
222
	end
223
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
224
	NEWMESH.Scale = SCALE
225
	NEWMESH.Parent = PARENT
226
	return NEWMESH
227
end
228
229
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE)
230
	local NEWPART = IT("Part")
231
	NEWPART.formFactor = FORMFACTOR
232
	NEWPART.Reflectance = REFLECTANCE
233
	NEWPART.Transparency = TRANSPARENCY
234
	NEWPART.CanCollide = false
235
	NEWPART.Locked = true
236
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
237
	NEWPART.Name = NAME
238
	NEWPART.Size = SIZE
239
	NEWPART.Position = Torso.Position
240
	NEWPART.Material = MATERIAL
241
	NEWPART:BreakJoints()
242
	NEWPART.Parent = PARENT
243
	return NEWPART
244
end
245
246
247
--//=================================\\
248
--||		  CUSTOMIZATION
249
--\\=================================//
250
251
Class_Name = "Riho"
252
Weapon_Name = "Wreckage"
253
254
Custom_Colors = {
255
	Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
256
	Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
257
258
	Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
259
	Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
260
	Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
261
	Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
262
	Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
263
264
	Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
265
	Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
266
	Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
267
	Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
268
	Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
269
}
270
271
Mana_Bar_Background_Transparency = 0 --Transparency for the background of the mana bar.
272
Secondary_Mana_Bar_Background_Transparency = 0 --Transparency for the background of the secondary mana bar.
273
Health_Bar_Background_Transparency = 0 --Transparency for the background of the health bar.
274
Stun_Bar_Background_Transparency = 0 --Transparency for the background of the stun bar.
275
Ability_Background_Transparency = 0  --Transparency for the background of the abilities.
276
Stat_Background_Transparency = 0 --Transparency for the background of the stats.
277
278
Player_Size = 1 --Size of the player.
279
Animation_Speed = 4
280
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
281
282
Enable_Gui = false --Enables or disables the Weapon Gui. Also functions as hiding or showing the Gui.
283
Enable_Stats = false --Enables or disables stats.
284
Put_Stats_In_Character = false --Places stats in Character.
285
Enable_Stagger_Hit = false --Enables or disables staggering when hitting a hitbox of some sort.
286
Play_Hitbox_Hit_Sound = true --Plays a hit sound when hitting a hitbox of some sort.
287
Enable_Stagger = false --Enables or disables staggering.
288
Enable_Stun = false --Enables or disables the stun mechanic.
289
Enable_Abilities = false --Enables abilites with cooldowns and mana costs.
290
Enable_Secondary_Bar = false --Enables the secondary mana bar, if true.
291
292
Start_Equipped = true --Starts the player equipped with their weapon.
293
Start_Equipped_With_Equipped_Animation = false --Used in conjunction with the above option. Starts your equip animation.
294
Can_Equip_Or_Unequip = false --Enables or disables the ability to unequip or equip your weapon.
295
Disable_Animator = true --Disables the Animator in the humanoid.
296
Disable_Animate = true --Disables the Animate script in the character.
297
Disable_Moving_Arms = false --Keeps the arms from moving around.
298
Use_Motors_Instead_Of_Welds = false --Uses motors instead of welds to disable moving arms.
299
Walkspeed_Depends_On_Movement_Value = false --Walkspeed depends on movement value. Self-explanatory.
300
Disable_Jump = false --Disables jumping.
301
Use_HopperBin = false --Uses a hopperbin to do things.
302
303
Cooldown_1 = 0 --Cooldowns for abilites.
304
Cooldown_2 = 0
305
Cooldown_3 = 0
306
Cooldown_4 = 0
307
Skill_1_Mana_Cost = 0 --How much mana is required to use the skill.
308
Skill_2_Mana_Cost = 0
309
Skill_3_Mana_Cost = 0
310
Skill_4_Mana_Cost = 0
311
Max_Mana = 0 --Maximum amount of mana you can have.
312
Max_Secondary_Mana = 0 --Maximum amount of secondary mana you can have.
313
Mana_Name = "Mana" --Name for the mana bar.
314
Secondary_Mana_Name = "Block" --Name for the secondary mana bar.
315
Max_Stun = 1 --Maximum amount of stun you can have.
316
Recover_Mana = 0 --How much mana you gain.
317
Mana_Regen_Mode = "1" --Basically switches from one mana regen system to another.
318
Secondary_Mana_Regen_Mode = "1" --Basically switches from one secondary mana regen system to another.
319
Stun_Lose_Mode = "1" --Basically switches from one secondary stun loss system to another.
320
Recover_Secondary_Mana = 0 --How much secondary mana you gain.
321
Lose_Stun = 0 --How much stun you lose.
322
Stun_Wait = 0 --Delay between losing stun.
323
Mana_Wait = 0 --Delay between gaining mana.
324
Secondary_Mana_Wait = 0 --Delay between gaining secondary mana.
325
Menu_Update_Speed = 0 --How fast the Weapon Gui will update.
326
Constant_Update = false --Removes the delay between updating the Weapon GUI.
327
Show_Stats = false --Hides or shows stats.
328
Stat_Offset = 0.74 --For cosmetic purposes. {0.74, 0.78}
329
330
--//=================================\\
331
--|| 	  END OF CUSTOMIZATION
332
--\\=================================//
333
334
	local function weldBetween(a, b)
335
	    local weldd = Instance.new("ManualWeld")
336
	    weldd.Part0 = a
337
	    weldd.Part1 = b
338
	    weldd.C0 = CFrame.new()
339
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
340
	    weldd.Parent = a
341
	    return weldd
342
	end
343
344
function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
345
local acs = Instance.new("Part")
346
acs.CanCollide = false
347
acs.Anchored = false
348
acs.Size = Vector3.new(0,0,0)
349
acs.CFrame = attachmentpart.CFrame
350
acs.Parent = Character
351
acs.BrickColor = color
352
    local meshs = Instance.new("SpecialMesh")
353
    meshs.MeshId = mesh
354
    meshs.TextureId = texture
355
    meshs.Parent = acs
356
    meshs.Scale = scale
357
    meshs.Offset = offset
358
weldBetween(attachmentpart,acs)
359
end
360
361
function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
362
if TYPE == "Gem" then
363
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
364
	acs.Anchored = false
365
    acs.CanCollide = false
366
	acs.CFrame = PART.CFrame
367
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
368
weldBetween(PART,acs)
369
elseif TYPE == "Skull" then
370
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
371
	acs.Anchored = false
372
    acs.CanCollide = false
373
	acs.CFrame = PART.CFrame
374
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
375
weldBetween(PART,acs)
376
elseif TYPE == "Eye" then
377
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
378
	acs.Anchored = false
379
    acs.CanCollide = false
380
	acs.CFrame = PART.CFrame
381
	local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
382
weldBetween(PART,acs)
383
end
384
end
385
386
--//=================================\\
387
--|| 	      USEFUL VALUES
388
--\\=================================//
389
390
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
391
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
392
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
393
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
394
local CO1 = 0
395
local CO2 = 0
396
local CO3 = 0
397
local CO4 = 0
398
local CHANGEDEFENSE = 0
399
local CHANGEDAMAGE = 0
400
local CHANGEMOVEMENT = 0
401
local ANIM = "Idle"
402
local ATTACK = false
403
local EQUIPPED = false
404
local HOLD = false
405
local COMBO = 1
406
local LASTPOINT = nil
407
local BLCF = nil
408
local SCFR = nil
409
local STAGGERHITANIM = false
410
local STAGGERANIM = false
411
local STUNANIM = false
412
local CRITCHANCENUMBER = 0
413
local IDLENUMBER = 0
414
local DONUMBER = 0
415
local HANDIDLE = false
416
local SINE = 0
417
local CHANGE = 2 / Animation_Speed
418
local WALKINGANIM = false
419
local WALK = 0
420
local DISABLEJUMPING = false
421
local HASBEENBLOCKED = false
422
local STUNDELAYNUMBER = 0
423
local MANADELAYNUMBER = 0
424
local SECONDARYMANADELAYNUMBER = 0
425
local ROBLOXIDLEANIMATION = IT("Animation")
426
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
427
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
428
--ROBLOXIDLEANIMATION.Parent = Humanoid
429
local WEAPONGUI = IT("ScreenGui", nil)
430
WEAPONGUI.Name = "Weapon GUI"
431
local WEAPONTOOL = IT("HopperBin", nil)
432
WEAPONTOOL.Name = Weapon_Name
433
local Weapon = IT("Model")
434
Weapon.Name = Weapon_Name
435
local Effects = IT("Folder", Weapon)
436
Effects.Name = "Effects"
437
local ANIMATOR = Humanoid.Animator
438
local ANIMATE = Character.Animate
439
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
440
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
441
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
442
local HITBLOCKSOUNDS = {"199148933", "199148947"}
443
444
--//=================================\\
445
--\\=================================//
446
447
--//=================================\\
448
--||			  STATS
449
--\\=================================//
450
451
if Character:FindFirstChild("Stats") ~= nil then
452
Character:FindFirstChild("Stats").Parent = nil
453
end
454
455
local Stats = IT("Folder", nil)
456
Stats.Name = "Stats"
457
local ChangeStat = IT("Folder", Stats)
458
ChangeStat.Name = "ChangeStat"
459
local Defense = IT("NumberValue", Stats)
460
Defense.Name = "Defense"
461
Defense.Value = 1
462
local Movement = IT("NumberValue", Stats)
463
Movement.Name = "Movement"
464
Movement.Value = 1
465
local Damage = IT("NumberValue", Stats)
466
Damage.Name = "Damage"
467
Damage.Value = 1
468
local Mana = IT("NumberValue", Stats)
469
Mana.Name = "Mana"
470
Mana.Value = 0
471
local SecondaryMana = IT("NumberValue", Stats)
472
SecondaryMana.Name = "SecondaryMana"
473
SecondaryMana.Value = 0
474
local CanCrit = IT("BoolValue", Stats)
475
CanCrit.Name = "CanCrit"
476
CanCrit.Value = false
477
local CritChance = IT("NumberValue", Stats)
478
CritChance.Name = "CritChance"
479
CritChance.Value = 20
480
local CanPenetrateArmor = IT("BoolValue", Stats)
481
CanPenetrateArmor.Name = "CanPenetrateArmor"
482
CanPenetrateArmor.Value = false
483
local AntiTeamKill = IT("BoolValue", Stats)
484
AntiTeamKill.Name = "AntiTeamKill"
485
AntiTeamKill.Value = false
486
local Rooted = IT("BoolValue", Stats)
487
Rooted.Name = "Rooted"
488
Rooted.Value = false
489
local Block = IT("BoolValue", Stats)
490
Block.Name = "Block"
491
Block.Value = false
492
local RecentEnemy = IT("ObjectValue", Stats)
493
RecentEnemy.Name = "RecentEnemy"
494
RecentEnemy.Value = nil
495
local StaggerHit = IT("BoolValue", Stats)
496
StaggerHit.Name = "StaggerHit"
497
StaggerHit.Value = false
498
local Stagger = IT("BoolValue", Stats)
499
Stagger.Name = "Stagger"
500
Stagger.Value = false
501
local Stun = IT("BoolValue", Stats)
502
Stun.Name = "Stun"
503
Stun.Value = false
504
local StunValue = IT("NumberValue", Stats)
505
StunValue.Name = "StunValue"
506
StunValue.Value = 0
507
508
if Enable_Stats == true and Put_Stats_In_Character == true then
509
	Stats.Parent = Character
510
end
511
512
--//=================================\\
513
--\\=================================//
514
515
516
517
518
519
--//=================================\\
520
--|| 	     DEBUFFS / BUFFS
521
--\\=================================//
522
523
local DEFENSECHANGE1 = IT("NumberValue", ChangeStat)
524
DEFENSECHANGE1.Name = "ChangeDefense"
525
DEFENSECHANGE1.Value = 0
526
527
local MOVEMENTCHANGE1 = IT("NumberValue", nil)
528
MOVEMENTCHANGE1.Name = "ChangeMovement"
529
MOVEMENTCHANGE1.Value = 0
530
531
--//=================================\\
532
--\\=================================//
533
534
535
536
537
538
--//=================================\\
539
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
540
--\\=================================//
541
542
ArtificialHB = Instance.new("BindableEvent", script)
543
ArtificialHB.Name = "ArtificialHB"
544
545
script:WaitForChild("ArtificialHB")
546
547
frame = Frame_Speed
548
tf = 0
549
allowframeloss = false
550
tossremainder = false
551
lastframe = tick()
552
script.ArtificialHB:Fire()
553
554
game:GetService("RunService").Heartbeat:connect(function(s, p)
555
	tf = tf + s
556
	if tf >= frame then
557
		if allowframeloss then
558
			script.ArtificialHB:Fire()
559
			lastframe = tick()
560
		else
561
			for i = 1, math.floor(tf / frame) do
562
				script.ArtificialHB:Fire()
563
			end
564
		lastframe = tick()
565
		end
566
		if tossremainder then
567
			tf = 0
568
		else
569
			tf = tf - frame * math.floor(tf / frame)
570
		end
571
	end
572
end)
573
574
--//=================================\\
575
--\\=================================//
576
577
BC = BrickColor.new
578
createaccessory(Head,"http://www.roblox.com/asset/?id=13640868","http://www.roblox.com/asset/?id=13640869",Vector3.new(1,1,1),Vector3.new(0,0.5,0),BC(0,0,0))
579
580
581
--//=================================\\
582
--|| 	      SOME FUNCTIONS
583
--\\=================================//
584
585
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
586
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
587
end
588
589
function PositiveAngle(NUMBER)
590
	if NUMBER >= 0 then
591
		NUMBER = 0
592
	end
593
	return NUMBER
594
end
595
596
function NegativeAngle(NUMBER)
597
	if NUMBER <= 0 then
598
		NUMBER = 0
599
	end
600
	return NUMBER
601
end
602
603
function Swait(NUMBER)
604
	if NUMBER == 0 or NUMBER == nil then
605
		ArtificialHB.Event:wait()
606
	else
607
		for i = 1, NUMBER do
608
			ArtificialHB.Event:wait()
609
		end
610
	end
611
end
612
613
function QuaternionFromCFrame(cf)
614
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
615
	local trace = m00 + m11 + m22
616
	if trace > 0 then 
617
		local s = math.sqrt(1 + trace)
618
		local recip = 0.5 / s
619
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
620
	else
621
		local i = 0
622
		if m11 > m00 then
623
			i = 1
624
		end
625
		if m22 > (i == 0 and m00 or m11) then
626
			i = 2
627
		end
628
		if i == 0 then
629
			local s = math.sqrt(m00 - m11 - m22 + 1)
630
			local recip = 0.5 / s
631
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
632
		elseif i == 1 then
633
			local s = math.sqrt(m11 - m22 - m00 + 1)
634
			local recip = 0.5 / s
635
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
636
		elseif i == 2 then
637
			local s = math.sqrt(m22 - m00 - m11 + 1)
638
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
639
		end
640
	end
641
end
642
 
643
function QuaternionToCFrame(px, py, pz, x, y, z, w)
644
	local xs, ys, zs = x + x, y + y, z + z
645
	local wx, wy, wz = w * xs, w * ys, w * zs
646
	local xx = x * xs
647
	local xy = x * ys
648
	local xz = x * zs
649
	local yy = y * ys
650
	local yz = y * zs
651
	local zz = z * zs
652
	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))
653
end
654
 
655
function QuaternionSlerp(a, b, t)
656
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
657
	local startInterp, finishInterp;
658
	if cosTheta >= 0.0001 then
659
		if (1 - cosTheta) > 0.0001 then
660
			local theta = ACOS(cosTheta)
661
			local invSinTheta = 1 / SIN(theta)
662
			startInterp = SIN((1 - t) * theta) * invSinTheta
663
			finishInterp = SIN(t * theta) * invSinTheta
664
		else
665
			startInterp = 1 - t
666
			finishInterp = t
667
		end
668
	else
669
		if (1 + cosTheta) > 0.0001 then
670
			local theta = ACOS(-cosTheta)
671
			local invSinTheta = 1 / SIN(theta)
672
			startInterp = SIN((t - 1) * theta) * invSinTheta
673
			finishInterp = SIN(t * theta) * invSinTheta
674
		else
675
			startInterp = t - 1
676
			finishInterp = t
677
		end
678
	end
679
	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
680
end
681
682
function Clerp(a, b, t)
683
	local qa = {QuaternionFromCFrame(a)}
684
	local qb = {QuaternionFromCFrame(b)}
685
	local ax, ay, az = a.x, a.y, a.z
686
	local bx, by, bz = b.x, b.y, b.z
687
	local _t = 1 - t
688
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
689
end
690
691
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
692
	local frame = IT("Frame")
693
	frame.BackgroundTransparency = TRANSPARENCY
694
	frame.BorderSizePixel = BORDERSIZEPIXEL
695
	frame.Position = POSITION
696
	frame.Size = SIZE
697
	frame.BackgroundColor3 = COLOR
698
	frame.BorderColor3 = BORDERCOLOR
699
	frame.Name = NAME
700
	frame.Parent = PARENT
701
	return frame
702
end
703
704
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
705
	local label = IT("TextLabel")
706
	label.BackgroundTransparency = 1
707
	label.Size = UD2(1, 0, 1, 0)
708
	label.Position = UD2(0, 0, 0, 0)
709
	label.TextColor3 = C3(255, 255, 255)
710
	label.TextStrokeTransparency = STROKETRANSPARENCY
711
	label.TextTransparency = TRANSPARENCY
712
	label.FontSize = TEXTFONTSIZE
713
	label.Font = TEXTFONT
714
	label.BorderSizePixel = BORDERSIZEPIXEL
715
	label.TextScaled = true
716
	label.Text = TEXT
717
	label.Name = NAME
718
	label.Parent = PARENT
719
	return label
720
end
721
722
function NoOutlines(PART)
723
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
724
end
725
726
727
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
728
	local NEWWELD = IT(TYPE)
729
	NEWWELD.Part0 = PART0
730
	NEWWELD.Part1 = PART1
731
	NEWWELD.C0 = C0
732
	NEWWELD.C1 = C1
733
	NEWWELD.Parent = PARENT
734
	return NEWWELD
735
end
736
737
function CreateSound(ID, PARENT, VOLUME, PITCH)
738
	coroutine.resume(coroutine.create(function()
739
		local NEWSOUND = IT("Sound", PARENT)
740
		NEWSOUND.Volume = VOLUME
741
		NEWSOUND.Pitch = PITCH
742
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
743
		Swait()
744
		NEWSOUND:play()
745
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
746
	end))
747
end
748
749
function CFrameFromTopBack(at, top, back)
750
	local right = top:Cross(back)
751
	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)
752
end
753
754
function Lightning(POSITION1, POSITION2, MULTIPLIERTIME, LIGHTNINGDELAY, OFFSET, BRICKCOLOR, MATERIAL, SIZE, TRANSPARENCY, LASTINGTIME)
755
	local MAGNITUDE = (POSITION1 - POSITION2).magnitude 
756
	local CURRENTPOSITION = POSITION1
757
	local LIGHTNINGOFFSET = {-OFFSET, OFFSET}
758
	coroutine.resume(coroutine.create(function()
759
		for i = 1, MULTIPLIERTIME do 
760
			local LIGHTNINGPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR,"Effect", VT(SIZE * Player_Size, SIZE * Player_Size, MAGNITUDE / MULTIPLIERTIME))
761
			LIGHTNINGPART.Anchored = true
762
			local LIGHTNINGOFFSET2 = VT(LIGHTNINGOFFSET[MRANDOM(1, 2)], LIGHTNINGOFFSET[MRANDOM(1, 2)], LIGHTNINGOFFSET[MRANDOM(1, 2)]) 
763
			local LIGHTNINGPOSITION1 = CF(CURRENTPOSITION, POSITION2) * CF(0, 0, MAGNITUDE / MULTIPLIERTIME).p + LIGHTNINGOFFSET2
764
			if MULTIPLIERTIME == i then 
765
				local LIGHTNINGMAGNITUDE1 = (CURRENTPOSITION - POSITION2).magnitude
766
				LIGHTNINGPART.Size = VT(SIZE * Player_Size, SIZE * Player_Size, LIGHTNINGMAGNITUDE1)
767
				LIGHTNINGPART.CFrame = CF(CURRENTPOSITION, POSITION2) * CF(0, 0, -LIGHTNINGMAGNITUDE1 / 2)
768
			else
769
				LIGHTNINGPART.CFrame = CF(CURRENTPOSITION, LIGHTNINGPOSITION1) * CF(0, 0, MAGNITUDE / MULTIPLIERTIME / 2)
770
			end
771
			CURRENTPOSITION=LIGHTNINGPART.CFrame * CF(0, 0, MAGNITUDE / MULTIPLIERTIME / 2).p
772
			game.Debris:AddItem(LIGHTNINGPART, LASTINGTIME)
773
			coroutine.resume(coroutine.create(function()
774
				while LIGHTNINGPART.Transparency ~= 1 do
775
					--local StartTransparency = tra
776
					for i=0, 1, LASTINGTIME do
777
						Swait()
778
						LIGHTNINGPART.Transparency = LIGHTNINGPART.Transparency + (0.1 / LASTINGTIME)
779
					end
780
				end
781
			end))
782
		Swait(LIGHTNINGDELAY / Animation_Speed)
783
		end
784
	end))
785
end
786
787
function MagicBlock(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
788
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
789
	EFFECTPART.Anchored = true
790
	EFFECTPART.CFrame = CFRAME
791
	local EFFECTMESH = CreateMesh("BlockMesh", EFFECTPART, "", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
792
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
793
	coroutine.resume(coroutine.create(function(PART, MESH)
794
		for i = 0, 1, delay do
795
			Swait()
796
			PART.CFrame = PART.CFrame * ROTATION
797
			PART.Transparency = i
798
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
799
		end
800
		PART.Parent = nil
801
	end), EFFECTPART, EFFECTMESH)
802
end
803
804
function MagicSphere(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
805
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
806
	EFFECTPART.Anchored = true
807
	EFFECTPART.CFrame = CFRAME
808
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "Sphere", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
809
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
810
	coroutine.resume(coroutine.create(function(PART, MESH)
811
		for i = 0, 1, delay do
812
			Swait()
813
			PART.CFrame = PART.CFrame * ROTATION
814
			PART.Transparency = i
815
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
816
		end
817
		PART.Parent = nil
818
	end), EFFECTPART, EFFECTMESH)
819
end
820
821
function MagicCylinder(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
822
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
823
	EFFECTPART.Anchored = true
824
	EFFECTPART.CFrame = CFRAME
825
	local EFFECTMESH = CreateMesh("CylinderMesh", EFFECTPART, "", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
826
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
827
	coroutine.resume(coroutine.create(function(PART, MESH)
828
		for i = 0, 1, delay do
829
			Swait()
830
			PART.CFrame = PART.CFrame * ROTATION
831
			PART.Transparency = i
832
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
833
		end
834
		PART.Parent = nil
835
	end), EFFECTPART, EFFECTMESH)
836
end
837
838
function MagicHead(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
839
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
840
	EFFECTPART.Anchored = true
841
	EFFECTPART.CFrame = CFRAME
842
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "Head", "", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
843
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
844
	coroutine.resume(coroutine.create(function(PART, MESH)
845
		for i = 0, 1, delay do
846
			Swait()
847
			PART.CFrame = PART.CFrame * ROTATION
848
			PART.Transparency = i
849
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
850
		end
851
		PART.Parent = nil
852
	end), EFFECTPART, EFFECTMESH)
853
end
854
855
function MagicRing(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
856
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
857
	EFFECTPART.Anchored = true
858
	EFFECTPART.CFrame = CFRAME
859
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "3270017", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
860
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
861
	coroutine.resume(coroutine.create(function(PART, MESH)
862
		for i = 0, 1, delay do
863
			Swait()
864
			PART.CFrame = PART.CFrame * ROTATION
865
			PART.Transparency = i
866
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
867
		end
868
		PART.Parent = nil
869
	end), EFFECTPART, EFFECTMESH)
870
end
871
872
function MagicWave(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
873
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
874
	EFFECTPART.Anchored = true
875
	EFFECTPART.CFrame = CFRAME
876
	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))
877
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
878
	coroutine.resume(coroutine.create(function(PART, MESH)
879
		for i = 0, 1, delay do
880
			Swait()
881
			PART.CFrame = PART.CFrame * ROTATION
882
			PART.Transparency = i
883
			MESH.Offset = VT(0, 0, (-0.1 * MESH.Scale.Z))
884
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
885
		end
886
		PART.Parent = nil
887
	end), EFFECTPART, EFFECTMESH)
888
end
889
890
function MagicCrystal(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
891
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
892
	EFFECTPART.Anchored = true
893
	EFFECTPART.CFrame = CFRAME
894
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "9756362", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
895
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
896
	coroutine.resume(coroutine.create(function(PART, MESH)
897
		for i = 0, 1, delay do
898
			Swait()
899
			PART.CFrame = PART.CFrame * ROTATION
900
			PART.Transparency = i
901
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
902
		end
903
		PART.Parent = nil
904
	end), EFFECTPART, EFFECTMESH)
905
end
906
907
function MagicSwirl(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
908
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
909
	EFFECTPART.Anchored = true
910
	EFFECTPART.CFrame = CFRAME
911
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1051557", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
912
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
913
	coroutine.resume(coroutine.create(function(PART, MESH)
914
		for i = 0, 1, delay do
915
			Swait()
916
			PART.CFrame = PART.CFrame * ROTATION
917
			PART.Transparency = i
918
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
919
		end
920
		PART.Parent = nil
921
	end), EFFECTPART, EFFECTMESH)
922
end
923
924
function MagicSharpCone(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
925
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
926
	EFFECTPART.Anchored = true
927
	EFFECTPART.CFrame = CFRAME
928
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1778999", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
929
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
930
	coroutine.resume(coroutine.create(function(PART, MESH)
931
		for i = 0, 1, delay do
932
			Swait()
933
			PART.CFrame = PART.CFrame * ROTATION
934
			PART.Transparency = i
935
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
936
		end
937
		PART.Parent = nil
938
	end), EFFECTPART, EFFECTMESH)
939
end
940
941
function MagicFlatCone(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
942
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
943
	EFFECTPART.Anchored = true
944
	EFFECTPART.CFrame = CFRAME
945
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1033714", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
946
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
947
	coroutine.resume(coroutine.create(function(PART, MESH)
948
		for i = 0, 1, delay do
949
			Swait()
950
			PART.CFrame = PART.CFrame * ROTATION
951
			PART.Transparency = i
952
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
953
		end
954
		PART.Parent = nil
955
	end), EFFECTPART, EFFECTMESH)
956
end
957
958
function MagicSpikedCrown(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
959
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
960
	EFFECTPART.Anchored = true
961
	EFFECTPART.CFrame = CFRAME
962
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1323306", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
963
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
964
	coroutine.resume(coroutine.create(function(PART, MESH)
965
		for i = 0, 1, delay do
966
			Swait()
967
			PART.CFrame = PART.CFrame * ROTATION
968
			PART.Transparency = i
969
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
970
		end
971
		PART.Parent = nil
972
	end), EFFECTPART, EFFECTMESH)
973
end
974
975
function MagicFlatCrown(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
976
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
977
	EFFECTPART.Anchored = true
978
	EFFECTPART.CFrame = CFRAME
979
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "1078075", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
980
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
981
	coroutine.resume(coroutine.create(function(PART, MESH)
982
		for i = 0, 1, delay do
983
			Swait()
984
			PART.CFrame = PART.CFrame * ROTATION
985
			PART.Transparency = i
986
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
987
		end
988
		PART.Parent = nil
989
	end), EFFECTPART, EFFECTMESH)
990
end
991
992
function MagicSkull(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X1, Y1, Z1, X2, Y2, Z2, delay)
993
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
994
	EFFECTPART.Anchored = true
995
	EFFECTPART.CFrame = CFRAME
996
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "4770583", "", VT(X1 * Player_Size, Y1 * Player_Size, Z1 * Player_Size), OFFSET * Player_Size)
997
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
998
	coroutine.resume(coroutine.create(function(PART, MESH)
999
		for i = 0, 1, delay do
1000
			Swait()
1001
			PART.CFrame = PART.CFrame * ROTATION
1002
			PART.Transparency = i
1003
			MESH.Scale = MESH.Scale + VT(X2 * Player_Size, Y2 * Player_Size, Z2 * Player_Size)
1004
		end
1005
		PART.Parent = nil
1006
	end), EFFECTPART, EFFECTMESH)
1007
end
1008
1009
function ElectricEffect(BRICKCOLOR, MATERIAL, CFRAME, ROTATION, OFFSET, X, Y, Z, delay)
1010
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT())
1011
	EFFECTPART.Anchored = true
1012
	EFFECTPART.CFrame = CFRAME
1013
	local EFFECTMESH = CreateMesh("SpecialMesh", EFFECTPART, "FileMesh", "4770583", "", VT(X * Player_Size, Y * Player_Size, Z * Player_Size), OFFSET * Player_Size)
1014
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
1015
	local XVALUE = MRANDOM()
1016
	local YVALUE = MRANDOM()
1017
	local ZVALUE = MRANDOM()
1018
	coroutine.resume(coroutine.create(function(PART, MESH, THEXVALUE, THEYVALUE, THEZVALUE)
1019
		for i = 0, 1, delay do
1020
			Swait()
1021
			PART.CFrame = PART.CFrame * ROTATION
1022
			PART.Transparency = i
1023
			THEXVALUE = THEXVALUE - 0.1 * (delay * 10)
1024
			THEYVALUE = THEYVALUE - 0.1 * (delay * 10)
1025
			THEZVALUE = THEZVALUE - 0.1 * (delay * 10)
1026
			MESH.Scale = MESH.Scale + VT(THEXVALUE * Player_Size, THEYVALUE * Player_Size, THEZVALUE * Player_Size)
1027
		end
1028
		PART.Parent = nil
1029
	end), EFFECTPART, EFFECTMESH, XVALUE, YVALUE, ZVALUE)
1030
end
1031
1032
function TrailEffect(BRICKCOLOR, MATERIAL, CURRENTCFRAME, OLDCFRAME, MESHTYPE, REFLECTANCE, SIZE, ROTATION, X, Y, Z, delay)
1033
	local MAGNITUDECFRAME = (CURRENTCFRAME.p - OLDCFRAME.p).magnitude
1034
	if MAGNITUDECFRAME > (1 / 100) then
1035
		local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 0, BRICKCOLOR, "Effect", VT(1, MAGNITUDECFRAME, 1))
1036
		EFFECTPART.Anchored = true
1037
		EFFECTPART.CFrame = CF((CURRENTCFRAME.p + OLDCFRAME.p) / 2, OLDCFRAME.p) * ANGLES(RAD(90), 0, 0)
1038
		local THEMESHTYPE = "BlockMesh"
1039
		if MESHTYPE == "Cylinder" then
1040
			THEMESHTYPE = "CylinderMesh"
1041
		end
1042
		local EFFECTMESH = CreateMesh(THEMESHTYPE, EFFECTPART, "", "", "", VT(0 + SIZE * Player_Size, 1, 0 + SIZE * Player_Size), VT(0, 0, 0))
1043
		game:GetService("Debris"):AddItem(EFFECTPART, 10)
1044
		coroutine.resume(coroutine.create(function(PART, MESH)
1045
			for i = 0, 1, delay do
1046
				Swait()
1047
				PART.CFrame = PART.CFrame * ROTATION
1048
				PART.Transparency = i
1049
				MESH.Scale = MESH.Scale + VT(X * Player_Size, Y * Player_Size, Z * Player_Size)
1050
			end
1051
			PART.Parent = nil
1052
		end), EFFECTPART, EFFECTMESH)
1053
	end
1054
end
1055
1056
function ClangEffect(BRICKCOLOR, MATERIAL, CFRAME, ANGLE, DURATION, SIZE, POWER, REFLECTANCE, X, Y, Z, delay)
1057
	local EFFECTPART = CreatePart(3, Effects, MATERIAL, 0, 1, BRICKCOLOR, "Effect", VT())
1058
	EFFECTPART.Anchored = true
1059
	EFFECTPART.CFrame = CFRAME
1060
	local EFFECTMESH = CreateMesh("BlockMesh", EFFECTPART, "", "", "", VT(0, 0, 0), VT(0, 0, 0))
1061
	game:GetService("Debris"):AddItem(EFFECTPART, 10)
1062
	local THELASTPOINT = CFRAME
1063
	coroutine.resume(coroutine.create(function(PART)
1064
		for i = 1, DURATION do
1065
			Swait()
1066
			PART.CFrame = PART.CFrame * ANGLES(RAD(ANGLE), 0, 0) * CF(0, POWER * Player_Size, 0)
1067
			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)
1068
			THELASTPOINT = PART.CFrame
1069
		end
1070
		PART.Parent = nil
1071
	end), EFFECTPART)
1072
end
1073
1074
--local list={}
1075
function Triangle(Color, Material, a, b, c, delay)
1076
	local edge1 = (c - a):Dot((b - a).unit)
1077
	local edge2 = (a - b):Dot((c - b).unit)
1078
	local edge3 = (b - c):Dot((a - c).unit)
1079
	if edge1 <= (b - a).magnitude and edge1 >= 0 then
1080
		a, b, c=a, b, c
1081
	elseif edge2 <= (c - b).magnitude and edge2 >= 0 then
1082
		a, b, c=b, c, a
1083
	elseif edge3 <= (a - c).magnitude and edge3 >= 0 then
1084
		a, b, c=c, a, b
1085
	else
1086
		assert(false, "unreachable")
1087
	end
1088
	local len1 = (c - a):Dot((b - a).unit)
1089
	local len2 = (b - a).magnitude - len1
1090
	local width = (a + (b - a).unit * len1 - c).magnitude
1091
	local maincf = CFrameFromTopBack(a, (b - a):Cross(c - b).unit, - (b - a).unit)
1092
	if len1 > 1 / 100 then
1093
		local sz = VT(0.2, width, len1)
1094
		local w1 = CreatePart(3, Effects, Material, 0, 0.5, Color, "Trail", sz)
1095
		local sp = CreateMesh("SpecialMesh", w1, "Wedge", "", "", VT(0, 1, 1) * sz / w1.Size, VT(0, 0, 0))
1096
		w1.Anchored = true
1097
		w1.CFrame = maincf * ANGLES(math.pi, 0, math.pi / 2) * CF(0, width / 2, len1 / 2)
1098
		coroutine.resume(coroutine.create(function()
1099
			for i = 0.5, 1, delay * (2 / Animation_Speed) do
1100
				Swait()
1101
				w1.Transparency = i
1102
			end
1103
			w1.Parent = nil
1104
		end))
1105
		game:GetService("Debris"):AddItem(w1, 10)
1106
		--table.insert(list, w1)
1107
	end
1108
	if len2 > 1 / 100 then
1109
		local sz = VT(0.2, width, len2)
1110
		local w2 = CreatePart(3, Effects, Material, 0, 0.5, Color, "Trail", sz)
1111
		local sp = CreateMesh("SpecialMesh", w2, "Wedge", "", "", VT(0, 1, 1) * sz / w2.Size, VT(0, 0, 0))
1112
		w2.Anchored = true
1113
		w2.CFrame = maincf * ANGLES(math.pi, math.pi, -math.pi / 2) * CF(0, width / 2, -len1 - len2 / 2)
1114
		coroutine.resume(coroutine.create(function()
1115
			for i = 0.5, 1, delay * (2 / Animation_Speed) do
1116
				Swait()
1117
				w2.Transparency = i
1118
			end
1119
			w2.Parent = nil
1120
		end))
1121
		game:GetService("Debris"):AddItem(w2, 10)
1122
		--table.insert(list, w2)
1123
	end
1124
	--return unpack(list)
1125
end
1126
1127
--[[Usage:
1128
	local Pos = Part
1129
	local Offset = Part.CFrame * CF(0, 0, 0)
1130
	local Color = "Institutional white"
1131
	local Material = "Neon"
1132
	local TheDelay = 0.01
1133
	local Height = 4
1134
	BLCF = Offset
1135
	if SCFR and (Pos.Position - SCFR.p).magnitude > 0.1 then
1136
		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)
1137
		if a then game:GetService("Debris"):AddItem(a, 1) end
1138
		if b then game:GetService("Debris"):AddItem(b, 1) end
1139
		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)
1140
		if a then game:GetService("Debris"):AddItem(a, 1) end
1141
		if b then game:GetService("Debris"):AddItem(b, 1) end
1142
		SCFR = BLCF
1143
	elseif not SCFR then
1144
		SCFR = BLCF
1145
	end
1146
--
1147
BLCF = nil
1148
SCFR = nil
1149
--]]
1150
1151
--//=================================\\
1152
--\\=================================//
1153
1154
1155
1156
1157
1158
--//=================================\\
1159
--||	      RESIZE PLAYER
1160
--\\=================================//
1161
1162
if Player_Size ~= 1 then
1163
RootPart.Size = RootPart.Size * Player_Size
1164
Torso.Size = Torso.Size * Player_Size
1165
Head.Size = Head.Size * Player_Size
1166
RightArm.Size = RightArm.Size * Player_Size
1167
LeftArm.Size = LeftArm.Size * Player_Size
1168
RightLeg.Size = RightLeg.Size * Player_Size
1169
LeftLeg.Size = LeftLeg.Size * Player_Size
1170
RootJoint.Parent = RootPart
1171
Neck.Parent = Torso
1172
RightShoulder.Parent = Torso
1173
LeftShoulder.Parent = Torso
1174
RightHip.Parent = Torso
1175
LeftHip.Parent = Torso
1176
	
1177
RootJoint.C0 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
1178
	RootJoint.C1 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0))
1179
	Neck.C0 = NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0))
1180
	Neck.C1 = CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180))
1181
	RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0
1182
	LeftShoulder.C0 = CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0
1183
	if Disable_Moving_Arms == false then
1184
		RightShoulder.C1 = ANGLES(0, RAD(90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5)
1185
		LeftShoulder.C1 = ANGLES(0, RAD(-90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5)
1186
	else
1187
		RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
1188
		LeftShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
1189
	end
1190
	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))
1191
	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))
1192
	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))
1193
	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))
1194
--------------------
1195
end
1196
1197
1198
--//=================================\\
1199
--\\=================================//
1200
1201
1202
1203
1204
--//=================================\\
1205
--||	     WEAPON CREATION
1206
--\\=================================//
1207
1208
if Player_Size ~= 1 then
1209
	for _, v in pairs (Weapon:GetChildren()) do
1210
		if v.ClassName == "Motor" or v.ClassName == "Weld" or v.ClassName == "Snap" then
1211
			local p1 = v.Part1
1212
			v.Part1 = nil
1213
			local cf1, cf2, cf3, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12 = v.C1:components()
1214
			v.C1 = CF(cf1 * Player_Size, cf2 * Player_Size, cf3 * Player_Size, cf4, cf5, cf6, cf7, cf8, cf9, cf10, cf11, cf12)
1215
			v.Part1 = p1
1216
		elseif v.ClassName == "Part" then
1217
			for _, b in pairs (v:GetChildren()) do
1218
				if b.ClassName == "SpecialMesh" or b.ClassName == "BlockMesh" then
1219
					b.Scale = VT(b.Scale.x * Player_Size, b.Scale.y * Player_Size, b.Scale.z * Player_Size)
1220
				end
1221
			end
1222
		end
1223
	end
1224
end
1225
1226
for _, c in pairs(Weapon:GetChildren()) do
1227
	if c.ClassName == "Part" then
1228
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1229
	end
1230
end
1231
1232
Weapon.Parent = Character
1233
1234
Humanoid.Died:connect(function()
1235
	ATTACK = true
1236
end)
1237
1238
print(Class_Name.." loaded.")
1239
1240
--//=================================\\
1241
--\\=================================//
1242
1243
1244
1245
1246
1247
--//=================================\\
1248
--||	     DAMAGE FUNCTIONS
1249
--\\=================================//
1250
1251
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
1252
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
1253
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
1254
	local BODYGYRO = IT("BodyGyro", STATPART)
1255
	local BODYPOSITION = IT("BodyPosition", STATPART)
1256
	BODYPOSITION.P = 2000
1257
	BODYPOSITION.D = 100
1258
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
1259
	if LABELTYPE == "Normal" then
1260
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
1261
	elseif LABELTYPE == "Debuff" then
1262
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
1263
	elseif LABELTYPE == "Interruption" then
1264
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
1265
	end
1266
	game:GetService("Debris"):AddItem(STATPART ,5)
1267
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
1268
	BILLBOARDGUI.Adornee = STATPART
1269
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
1270
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
1271
	BILLBOARDGUI.AlwaysOnTop = false
1272
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
1273
	TEXTLABEL.BackgroundTransparency = 1
1274
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
1275
	TEXTLABEL.Text = TEXT
1276
	TEXTLABEL.Font = "SourceSans"
1277
	TEXTLABEL.FontSize="Size42"
1278
	TEXTLABEL.TextColor3 = COLOR
1279
	TEXTLABEL.TextStrokeTransparency = 0
1280
	TEXTLABEL.TextScaled = true
1281
	TEXTLABEL.TextWrapped = true
1282
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
1283
		wait(0.2)
1284
		for i=1, 5 do
1285
			wait()
1286
			THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
1287
		end
1288
		wait(1.2)
1289
		for i=1, 5 do
1290
			wait()
1291
			THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
1292
			THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
1293
			THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
1294
		end
1295
		THEPART.Parent = nil
1296
	end),STATPART, BODYPOSITION, TEXTLABEL)
1297
end
1298
1299
function IncreaseOrDecreaseStat(LOCATION, STAT, AMOUNT, DURATION, SHOWTHESTAT)
1300
	if LOCATION:FindFirstChild("Stats") ~= nil then
1301
		if LOCATION.Stats:FindFirstChild("Block") ~= nil then
1302
			if LOCATION.Stats:FindFirstChild("Block").Value == true then
1303
				return
1304
			end
1305
		end
1306
		if LOCATION.Stats:FindFirstChild("ChangeStat") ~= nil and LOCATION.Stats:FindFirstChild("Block").Value == false then
1307
			local NewStatChange = IT("NumberValue")
1308
			NewStatChange.Value = AMOUNT
1309
			if STAT == "Defense" then
1310
				NewStatChange.Name = "ChangeDefense"
1311
			elseif STAT == "Damage" then
1312
				NewStatChange.Name = "ChangeDamage"
1313
			elseif STAT == "Movement" then
1314
				NewStatChange.Name = "ChangeMovement"
1315
			end
1316
			if SHOWTHESTAT == true then
1317
				if AMOUNT < 0 then
1318
					StatLabel("Debuff", LOCATION.Head.CFrame * CF(0, 0 + (LOCATION.Head.Size.z - 1), 0), "-"..STAT, C3(1, 1, 1))
1319
				elseif AMOUNT > 0 then
1320
					StatLabel("Debuff", LOCATION.Head.CFrame * CF(0, 0 + (LOCATION.Head.Size.z - 1), 0), "+"..STAT, C3(1, 1, 1))
1321
				end
1322
			end
1323
			if DURATION ~= nil and DURATION ~= 0 then
1324
				local StatDuration = IT("NumberValue")
1325
				StatDuration.Name = "Duration"
1326
				StatDuration.Value = DURATION
1327
				StatDuration.Parent = NewStatChange
1328
			end
1329
			NewStatChange.Parent = LOCATION.Stats:FindFirstChild("ChangeStat")
1330
		end
1331
	end
1332
end
1333
1334
--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)
1335
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)
1336
	if HIT.Parent == nil then
1337
		return
1338
	end
1339
	local HITHUMANOID = HIT.Parent:FindFirstChild("Humanoid")
1340
	for _, v in pairs(HIT.Parent:GetChildren()) do
1341
		if v:IsA("Humanoid") then
1342
			HITHUMANOID = v
1343
		end
1344
	end
1345
	if HIT.Name == "Hitbox" and RANGED ~= true and HIT.Parent ~= Weapon and Enable_Stagger_Hit == true then
1346
		StaggerHit.Value = true
1347
		if Play_Hitbox_Hit_Sound == true then
1348
			if HITWEAPONSOUND ~= "" and HITWEAPONSOUND ~= "nil" then
1349
				CreateSound(HITWEAPONSOUND, HIT, 1, HITWEAPONSOUNDPITCH)
1350
			end
1351
		end
1352
		return
1353
	end
1354
	if HIT.Parent.Parent:FindFirstChild("Torso") ~= nil or HIT.Parent.Parent:FindFirstChild("UpperTorso") ~= nil then
1355
		HITHUMANOID = HIT.Parent.Parent:FindFirstChild("Humanoid")
1356
	end
1357
	if HIT.Parent.ClassName == "Hat" or HIT.ClassName == "Accessory" then
1358
		HIT = HIT.Parent.Parent:FindFirstChild("Head")
1359
	end
1360
	if HITHUMANOID ~= nil and HIT.Parent.Name ~= Character.Name and (HIT.Parent:FindFirstChild("Torso") ~= nil or HIT.Parent:FindFirstChild("UpperTorso") ~= nil) then
1361
		if HIT.Parent:FindFirstChild("DebounceHit") ~= nil then
1362
			if HIT.Parent.DebounceHit.Value == true then
1363
				return
1364
			end
1365
		end
1366
		if AntiTeamKill.Value == true then
1367
			if Player.Neutral == false and game.Players:GetPlayerFromCharacter(HIT.Parent) ~= nil then
1368
				if game.Players:GetPlayerFromCharacter(HIT.Parent).TeamColor == Player.TeamColor then
1369
					return
1370
				end
1371
			end
1372
		end
1373
		if HITEVENWHENDEAD == false then
1374
			if HIT.Parent:FindFirstChild("Humanoid") ~= nil then
1375
				if HIT.Parent:FindFirstChild("Humanoid").Health <= 0 then
1376
					return
1377
				end
1378
			end
1379
		end
1380
		if HIT.Parent:FindFirstChild("Stats") ~= nil then
1381
			if HIT.Parent.Stats:FindFirstChild("StunValue") ~= nil then
1382
				HIT.Parent.Stats:FindFirstChild("StunValue").Value = HIT.Parent.Stats:FindFirstChild("StunValue").Value + INCREASESTUN
1383
			end
1384
		end
1385
		if HIT.Parent:FindFirstChild("Stats") ~= nil then
1386
			if HIT.Parent.Stats:FindFirstChild("Stagger") ~= nil then
1387
				if STAGGER == true and Enable_Stagger == true then
1388
					HIT.Parent.Stats:FindFirstChild("Stagger").Value = true
1389
				end
1390
			end
1391
		end
1392
		if HIT.Parent:FindFirstChild("Stats") ~= nil then
1393
			if HIT.Parent.Stats:FindFirstChild("Block") ~= nil then
1394
				if HIT.Parent.Stats:FindFirstChild("Block").Value == true then
1395
					HASBEENBLOCKED = true
1396
					if HIT.Parent.Stats:FindFirstChild("Block"):FindFirstChild("BlockDebounce") == nil then
1397
						StatLabel("Interruption", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Blocked!", C3(0, 100 / 255, 255 / 255))
1398
						if RANGED ~= true then
1399
							if HITBLOCKSOUND ~= "" and HITBLOCKSOUND ~= "nil" then
1400
								CreateSound(HITBLOCKSOUND, HIT, 1, HITBLOCKSOUNDPITCH)
1401
							end
1402
						end
1403
						local BlockDebounce = IT("BoolValue", HIT.Parent.Stats:FindFirstChild("Block"))
1404
						BlockDebounce.Name = "BlockDebounce"
1405
						BlockDebounce.Value = true
1406
						if RANGED ~= true then
1407
							game:GetService("Debris"):AddItem(BlockDebounce, 0.5)
1408
						else
1409
							game:GetService("Debris"):AddItem(BlockDebounce, 0.1)
1410
						end
1411
					end
1412
					if RANGED ~= true and Enable_Stagger == true then
1413
						HIT.Parent.Stats:FindFirstChild("Block").Value = false
1414
						Stagger.Value = true
1415
					end
1416
					return
1417
				end
1418
			end
1419
		end
1420
		if DECREASETHESTAT ~= nil then
1421
			if HIT.Parent:FindFirstChild("Stats") ~= nil then
1422
				IncreaseOrDecreaseStat(HIT.Parent, DECREASETHESTAT, DECREASEAMOUNT, DECREASEDURATION, SHOWDECREASEDSTAT)
1423
			end
1424
		end
1425
		local DAMAGE = MRANDOM(MINIMUMDAMAGE,MAXIMUMDAMAGE) * Damage.Value
1426
		if HIT.Parent:FindFirstChild("Stats") ~= nil then
1427
			if HIT.Parent.Stats:FindFirstChild("Defense") ~= nil then
1428
				if CanPenetrateArmor.Value == true then
1429
					DAMAGE = DAMAGE
1430
				else
1431
					DAMAGE = DAMAGE / HIT.Parent.Stats:FindFirstChild("Defense").Value
1432
				end
1433
			elseif HIT.Parent.Stats:FindFirstChild("Defense") == nil then
1434
				DAMAGE = DAMAGE
1435
			end
1436
		end
1437
		if CanCrit.Value == true then
1438
			CRITCHANCENUMBER = MRANDOM(1, CritChance.Value)
1439
			if CRITCHANCENUMBER == 1 then
1440
				DAMAGE = DAMAGE * 2
1441
			end
1442
		end
1443
		DAMAGE = math.floor(DAMAGE)
1444
		if HASBEENBLOCKED == false then
1445
			HITHUMANOID.Health = HITHUMANOID.Health - DAMAGE
1446
		end
1447
		if DAMAGE <= 3 and HASBEENBLOCKED == false then
1448
			if STAGGERHIT == true and Enable_Stagger_Hit == true and RANGED ~= true then
1449
				StaggerHit.Value = true
1450
			end
1451
			if HITARMORSOUND ~= "" and HITARMORSOUND ~= "nil" then
1452
				CreateSound(HITARMORSOUND, HIT, 1, HITARMORSOUNDPITCH)
1453
			end
1454
		elseif DAMAGE > 3 and HASBEENBLOCKED == false then
1455
			if HITPLAYERSOUND ~= "" and HITPLAYERSOUND ~= "nil" then
1456
				CreateSound(HITPLAYERSOUND, HIT, 1, HITPLAYERSOUNDPITCH)
1457
			end
1458
		end
1459
		if DAMAGE > 3 and DAMAGE < 20 and HASBEENBLOCKED == false then
1460
			if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
1461
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
1462
				CreateSound("296102734", HIT, 1, 1)
1463
			else
1464
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(255/255, 220/255, 0))
1465
			end
1466
		elseif DAMAGE >= 20 and HASBEENBLOCKED == false then
1467
			if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
1468
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
1469
				CreateSound("296102734", HIT, 1, 1)
1470
			else
1471
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(255/255, 0, 0))
1472
			end
1473
		elseif DAMAGE <= 3 and HASBEENBLOCKED == false then
1474
			if CanCrit.Value == true and CRITCHANCENUMBER == 1 then
1475
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0))
1476
				CreateSound("296102734", HIT, 1, 1)
1477
			else
1478
				StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(225/255, 225/255, 225/255))
1479
			end
1480
		end
1481
		if TYPE == "Normal" then
1482
			local vp = IT("BodyVelocity")
1483
			vp.P=500
1484
			vp.maxForce = VT(math.huge, 0, math.huge)
1485
			if KNOCKBACKTYPE == 1 then
1486
				vp.Velocity = PROPERTY.CFrame.lookVector * KNOCKBACK + PROPERTY.Velocity / 1.05
1487
			elseif KNOCKBACKTYPE == 2 then
1488
				vp.Velocity = PROPERTY.CFrame.lookVector * KNOCKBACK
1489
			end
1490
			if KNOCKBACK > 0 and HASBEENBLOCKED == false then
1491
				vp.Parent = HIT--.Parent.Torso
1492
			end
1493
			game:GetService("Debris"):AddItem(vp, 0.5)
1494
		end
1495
		HASBEENBLOCKED = false
1496
		RecentEnemy.Value = HIT.Parent
1497
		local DebounceHit = IT("BoolValue", HIT.Parent)
1498
		DebounceHit.Name = "DebounceHit"
1499
		DebounceHit.Value = true
1500
		game:GetService("Debris"):AddItem(DebounceHit, DELAY)
1501
	end
1502
end
1503
1504
--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)
1505
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)
1506
	for _, c in pairs(workspace:GetChildren()) do
1507
		local HUMANOID = c:FindFirstChild("Humanoid")
1508
		local HEAD = nil
1509
		if HUMANOID ~= nil then
1510
			for _, d in pairs(c:GetChildren()) do
1511
				if d.ClassName == "Model" and RANGED ~= true then
1512
					HEAD = d:FindFirstChild("Hitbox")
1513
					if HEAD ~= nil then
1514
						local THEMAGNITUDE = (HEAD.Position - PART.Position).magnitude
1515
						if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
1516
							if Play_Hitbox_Hit_Sound == true then
1517
								local HitRefpart = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
1518
								HitRefpart.Anchored = true
1519
								HitRefpart.CFrame = CF(HEAD.Position)
1520
								CreateSound(HITWEAPONSOUND, HitRefpart, 1, HITWEAPONSOUNDPITCH)
1521
							end
1522
							if Enable_Stagger_Hit == true then
1523
								StaggerHit.Value = true
1524
							end
1525
						end
1526
					end
1527
				elseif d:IsA"BasePart" then
1528
					HEAD = d
1529
					if HEAD ~= nil then
1530
						local THEMAGNITUDE = (HEAD.Position - PART.Position).magnitude
1531
						if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
1532
							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)
1533
						end
1534
					end
1535
				end
1536
			end
1537
		end
1538
	end
1539
end
1540
1541
--Usage: MagnitudeBuffOrDebuff(Part, 5, "Defense", -0.1, 3, true, true)
1542
function MagnitudeBuffOrDebuff(PART, MAGNITUDE, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF, APPLYTOOTHERSINSTEAD)
1543
	if Player.Neutral == true then
1544
		IncreaseOrDecreaseStat(Character, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
1545
	end
1546
	for _, c in pairs(workspace:GetChildren()) do
1547
		local HUMANOID = c:FindFirstChild("Humanoid")
1548
		local THEHEAD = nil
1549
		if HUMANOID ~= nil then
1550
			if c:FindFirstChild("Torso") ~= nil then
1551
				THEHEAD = c:FindFirstChild("Torso")
1552
			elseif c:FindFirstChild("UpperTorso") ~= nil then
1553
				THEHEAD = c:FindFirstChild("UpperTorso")
1554
			end
1555
			if THEHEAD ~= nil then
1556
				local THEMAGNITUDE = (THEHEAD.Position - PART.Position).magnitude
1557
				print("yes 1")
1558
				if APPLYTOOTHERSINSTEAD == true then
1559
					if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then
1560
						if Player.Neutral == false and game.Players:GetPlayerFromCharacter(THEHEAD.Parent) ~= nil then
1561
							if game.Players:GetPlayerFromCharacter(THEHEAD.Parent).TeamColor == Player.TeamColor then
1562
								IncreaseOrDecreaseStat(THEHEAD.Parent, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
1563
							end
1564
						end
1565
					end
1566
				elseif APPLYTOOTHERSINSTEAD == false then
1567
					if THEMAGNITUDE <= (MAGNITUDE * Player_Size) then
1568
						if Player.Neutral == false and game.Players:GetPlayerFromCharacter(THEHEAD.Parent) ~= nil then
1569
							if game.Players:GetPlayerFromCharacter(THEHEAD.Parent).TeamColor == Player.TeamColor then
1570
								IncreaseOrDecreaseStat(THEHEAD.Parent, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF)
1571
							end
1572
						end
1573
					end
1574
				end
1575
			end
1576
		end
1577
	end
1578
end
1579
1580
--//=================================\\
1581
--\\=================================//
1582
1583
1584
1585
1586
1587
--//=================================\\
1588
--||			WEAPON GUI
1589
--\\=================================//
1590
1591
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") 
1592
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")
1593
local MANATEXT = CreateLabel(MANABAR, Mana_Name.." ["..FLOOR(Mana.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Mana Text")
1594
1595
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")
1596
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")
1597
local HEALTHTEXT = CreateLabel(HEALTHBAR, "Health ["..FLOOR(Humanoid.Health).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Health Text")
1598
1599
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")
1600
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")
1601
local STUNTEXT = CreateLabel(STUNFRAME, "Stun ["..FLOOR(StunValue.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Stun Text")
1602
1603
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") 
1604
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")
1605
local SECONDARYMANATEXT = CreateLabel(SECONDARYMANABAR, Secondary_Mana_Name.." ["..FLOOR(SecondaryMana.Value).."]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Secondary Mana Text")
1606
1607
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")
1608
local DEFENSETEXT = CreateLabel(DEFENSEFRAME, "Defense ["..(Defense.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Defense Text")
1609
1610
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")
1611
local DAMAGETEXT = CreateLabel(DAMAGEFRAME, "Damage ["..(Damage.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Damage Text")
1612
1613
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")
1614
local MOVEMENTTEXT = CreateLabel(MOVEMENTFRAME, "Movement ["..(Movement.Value * 100).."%]", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Movement Text")
1615
1616
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")
1617
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")
1618
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")
1619
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")
1620
1621
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")
1622
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")
1623
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")
1624
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")
1625
1626
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Ability 1", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 1")
1627
local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[X] Ability 2", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 2")
1628
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 3")
1629
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", C3(1, 1, 1), "Size32", "Legacy", 1, 2, 1, "Text 4")
1630
1631
local Gun = CreatePart(3, Weapon, "SmoothPlastic", 0, 0, "Really black", "Handle", VT(0, 0, 0))
1632
local HandleMesh = CreateMesh("SpecialMesh", Gun, "FileMesh", "72012879", "72012859", VT(2,2,2), VT(0,0, 0))
1633
local Weld = CreateWeldOrSnapOrMotor("Weld", Gun, RightArm, Gun, CF(0 * Player_Size, -1.6 * Player_Size, -0.2 * Player_Size) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
1634
1635
local GunPoint = CreatePart(3, Weapon, "SmoothPlastic", 0, 1, "Really black", "Handle", VT(0, 0, 0))
1636
local HandleWeld = CreateWeldOrSnapOrMotor("Weld", GunPoint, RightArm, GunPoint, CF(0 * Player_Size, -2.6 * Player_Size, -0.6 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(135)), CF(0, 0, 0))
1637
1638
if Enable_Gui == true then
1639
	WEAPONGUI.Parent = PlayerGui
1640
end
1641
1642
if Enable_Stats == true and Show_Stats == true then
1643
	DEFENSEFRAME.Parent = WEAPONGUI
1644
	DAMAGEFRAME.Parent = WEAPONGUI
1645
	MOVEMENTFRAME.Parent = WEAPONGUI
1646
end
1647
1648
if Enable_Secondary_Bar == true then
1649
	SECONDARYMANABAR.Parent = WEAPONGUI
1650
end
1651
1652
if Enable_Abilities == true then
1653
	SKILL1FRAME.Parent = WEAPONGUI
1654
	SKILL2FRAME.Parent = WEAPONGUI
1655
	SKILL3FRAME.Parent = WEAPONGUI
1656
	SKILL4FRAME.Parent = WEAPONGUI
1657
end
1658
1659
if Enable_Stun == true then
1660
	STUNFRAME.Parent = WEAPONGUI
1661
end
1662
1663
function UpdateGUI()
1664
	MANABAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1665
	MANACOVER:TweenSize(UD2(1 * (Mana.Value / Max_Mana), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1666
	MANATEXT.Text = Mana_Name.." ["..FLOOR(Mana.Value).."]"
1667
	HEALTHBAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1668
	HEALTHCOVER:TweenSize(UD2(1 * (Humanoid.Health / Humanoid.MaxHealth), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1669
	HEALTHTEXT.Text = "Health ["..FLOOR(Humanoid.Health).."]"
1670
	if Enable_Abilities == true then
1671
		SKILL1FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1672
		SKILL2FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1673
		SKILL3FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1674
		SKILL4FRAME:TweenSize(UD2(0.26, 0, 0.06, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1675
		SKILL1BAR:TweenSize(UD2(1 * (CO1 / Cooldown_1), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1676
		SKILL2BAR:TweenSize(UD2(1 * (CO2 / Cooldown_2), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1677
		SKILL3BAR:TweenSize(UD2(1 * (CO3 / Cooldown_3), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1678
		SKILL4BAR:TweenSize(UD2(1 * (CO4 / Cooldown_4), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1679
	end
1680
	if Enable_Stats == true and Show_Stats == true then
1681
		DEFENSEFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1682
		DEFENSETEXT.Text = "Defense ["..(Defense.Value * 100).."%]"
1683
		DAMAGEFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1684
		DAMAGETEXT.Text = "Damage ["..(Damage.Value * 100).."%]"
1685
		MOVEMENTFRAME:TweenSize(UD2(0.075, 0, 0.03), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1686
		MOVEMENTTEXT.Text = "Movement ["..(Movement.Value * 100).."%]"
1687
	end
1688
	if Enable_Stun == true then
1689
		STUNFRAME:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1690
		STUNBAR:TweenSize(UD2(1 * (StunValue.Value / Max_Stun), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1691
		STUNTEXT.Text = "Stun ["..FLOOR(StunValue.Value).."]"
1692
	end
1693
	if Enable_Secondary_Bar == true then
1694
		SECONDARYMANABAR:TweenSize(UD2(0.26, 0, 0.03, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1695
		SECONDARYMANACOVER:TweenSize(UD2(1 * (SecondaryMana.Value / Max_Secondary_Mana), 0, 1, 0), "Out", "Quad", Menu_Update_Speed, Constant_Update)
1696
		SECONDARYMANATEXT.Text = Secondary_Mana_Name.." ["..FLOOR(SecondaryMana.Value).."]"
1697
	end
1698
end
1699
1700
if Enable_Gui == true then
1701
	UpdateGUI()
1702
	for _, v in pairs (WEAPONGUI:GetChildren()) do
1703
		if v.ClassName == "Frame" then
1704
			for _, b in pairs (v:GetChildren()) do
1705
				if b.ClassName == "TextLabel" then
1706
					coroutine.resume(coroutine.create(function(THETEXTLABEL)
1707
						wait(Menu_Update_Speed)
1708
						for i = 1, 0, -0.1 do
1709
							Swait()
1710
							THETEXTLABEL.TextTransparency = i
1711
							THETEXTLABEL.TextStrokeTransparency = i
1712
							end
1713
						THETEXTLABEL.TextTransparency = 0
1714
						THETEXTLABEL.TextStrokeTransparency = 0
1715
					end), b)
1716
				end
1717
			end
1718
		end
1719
	end
1720
end
1721
1722
--//=================================\\
1723
--\\=================================//
1724
1725
1726
1727
1728
1729
--//=================================\\
1730
--||	     SKILL FUNCTIONS
1731
--\\=================================//
1732
1733
function UpdateSkillsAndStuff()
1734
	if Mana_Regen_Mode == "1" then
1735
		if Mana.Value >= Max_Mana then
1736
			Mana.Value = Max_Mana
1737
		elseif Mana.Value < 0 then
1738
			Mana.Value = 0
1739
		else
1740
			if MANADELAYNUMBER <= Mana_Wait then
1741
				MANADELAYNUMBER = MANADELAYNUMBER + 1
1742
			else
1743
				MANADELAYNUMBER = 0
1744
				Mana.Value = Mana.Value + Recover_Mana
1745
			end
1746
		end
1747
	elseif Mana_Regen_Mode == "2" then
1748
		if Mana.Value <= Max_Mana then
1749
			Mana.Value = Mana.Value + (Recover_Mana / 30) / Animation_Speed
1750
		elseif Mana.Value >= Max_Mana then
1751
			Mana.Value = Max_Mana
1752
		elseif Mana.Value < 0 then
1753
			Mana.Value = 0
1754
		end
1755
	end
1756
	if Enable_Secondary_Bar == true then
1757
		if Secondary_Mana_Regen_Mode == "1" then
1758
			if SecondaryMana.Value >= Max_Secondary_Mana then
1759
				SecondaryMana.Value = Max_Secondary_Mana
1760
			elseif SecondaryMana.Value < 0 then
1761
				SecondaryMana.Value = 0
1762
			else
1763
				if SECONDARYMANADELAYNUMBER <= Secondary_Mana_Wait then
1764
					SECONDARYMANADELAYNUMBER = SECONDARYMANADELAYNUMBER + 1
1765
				else
1766
					SECONDARYMANADELAYNUMBER = 0
1767
					SecondaryMana.Value = SecondaryMana.Value + Recover_Secondary_Mana
1768
				end
1769
			end
1770
		elseif Secondary_Mana_Regen_Mode == "2" then
1771
			if SecondaryMana.Value <= Max_Secondary_Mana then
1772
				SecondaryMana.Value = SecondaryMana.Value + (Recover_Secondary_Mana / 30) / Animation_Speed
1773
			elseif SecondaryMana.Value >= Max_Secondary_Mana then
1774
				SecondaryMana.Value = Max_Secondary_Mana
1775
			elseif SecondaryMana.Value < 0 then
1776
				SecondaryMana.Value = 0
1777
			end
1778
		end
1779
	else
1780
		SecondaryMana.Value = 0
1781
	end
1782
	if Enable_Stun == true then
1783
		if Stun_Lose_Mode == "1" then
1784
			if StunValue.Value > Max_Stun then
1785
				StunValue.Value = Max_Stun
1786
			elseif StunValue.Value <= 0 then
1787
				StunValue.Value = 0
1788
			else
1789
				if STUNDELAYNUMBER <= Stun_Wait then
1790
					STUNDELAYNUMBER = STUNDELAYNUMBER + 1
1791
				else
1792
					STUNDELAYNUMBER = 0
1793
					StunValue.Value = StunValue.Value - Lose_Stun
1794
				end
1795
			end
1796
		elseif Stun_Lose_Mode == "2" then
1797
			if StunValue.Value <= Max_Stun and StunValue.Value > 0 then
1798
				StunValue.Value = StunValue.Value - (Lose_Stun / 30) / Animation_Speed
1799
			elseif StunValue.Value > Max_Stun then
1800
				StunValue.Value = Max_Stun
1801
			elseif StunValue.Value <= 0 then
1802
				StunValue.Value = 0
1803
			end
1804
		end
1805
	else
1806
		StunValue.Value = 0
1807
	end
1808
	if Enable_Abilities == true then
1809
		if CO1 <= Cooldown_1 then
1810
			CO1 = CO1 + (1 / 30) / Animation_Speed
1811
		elseif CO1 >= Cooldown_1 then
1812
			CO1 = Cooldown_1
1813
		end
1814
		if CO2 <= Cooldown_2 then
1815
			CO2 = CO2 + (1 / 30) / Animation_Speed
1816
		elseif CO2 >= Cooldown_2 then
1817
			CO2 = Cooldown_2
1818
		end
1819
		if CO3 <= Cooldown_3 then
1820
			CO3 = CO3 + (1 / 30) / Animation_Speed
1821
		elseif CO3 >= Cooldown_3 then
1822
			CO3 = Cooldown_3
1823
		end
1824
		if CO4 <= Cooldown_4 then
1825
			CO4 = CO4 + (1 / 30) / Animation_Speed
1826
		elseif CO4 >= Cooldown_4 then
1827
			CO4 = Cooldown_4
1828
		end
1829
	end
1830
end
1831
1832
--//=================================\\
1833
--\\=================================//
1834
1835
1836
1837
1838
1839
--//=================================\\
1840
--||	ATTACK FUNCTIONS AND STUFF
1841
--\\=================================//
1842
1843
function StaggerHitAnimation()
1844
	ATTACK = true
1845
	if Weapon:FindFirstChild("Hitbox") ~= nil then
1846
		for i = 1, MRANDOM(2, 4) do
1847
			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)
1848
		end
1849
	end
1850
	for i = 0, 1, 0.1 / Animation_Speed do
1851
		Swait()
1852
		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)
1853
		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)
1854
		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)
1855
		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)
1856
		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)
1857
		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)
1858
		if Stagger.Value == true or Stun.Value == true then
1859
			break
1860
		end
1861
	end
1862
	ATTACK = false
1863
end
1864
1865
function StaggerAnimation()
1866
	ATTACK = true
1867
	if Weapon:FindFirstChild("Hitbox") ~= nil then
1868
		for i = 1, MRANDOM(2, 4) do
1869
			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)
1870
		end
1871
	end
1872
	DISABLEJUMPING = true
1873
	COMBO = 1
1874
	StatLabel("Interruption", Head.CFrame * CF(0, 0 + (Head.Size.z - 1), 0), "Staggered!", C3(255 / 255, 255 / 255, 0))
1875
	local STAGGERVELOCITY = Instance.new("BodyVelocity",Torso)
1876
	STAGGERVELOCITY.P = 500
1877
	STAGGERVELOCITY.maxForce = VT(math.huge, 0, math.huge)
1878
	if Rooted.Value == false then
1879
		STAGGERVELOCITY.Velocity = RootPart.CFrame.lookVector * -40
1880
	end
1881
	for i = 0, 1, 0.35 / Animation_Speed do
1882
		Swait()
1883
		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)
1884
		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)
1885
		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)
1886
		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)
1887
		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)
1888
		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)
1889
	end
1890
	for i = 0, 1, 0.2 / Animation_Speed do
1891
		Swait()
1892
		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)
1893
		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)
1894
		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)
1895
		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)
1896
		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)
1897
		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)
1898
	end
1899
	STAGGERVELOCITY.Parent = nil
1900
	for i = 1, 50 * Animation_Speed do
1901
		Swait()
1902
		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)
1903
		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)
1904
		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)
1905
		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)
1906
		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)
1907
		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)
1908
	end
1909
	DISABLEJUMPING = false
1910
	ATTACK = false
1911
end
1912
1913
function StunAnimation()
1914
	ATTACK = true
1915
	DISABLEJUMPING = true
1916
	COMBO = 1
1917
	StatLabel("Interruption", Head.CFrame * CF(0, 0 + (Head.Size.z - 1), 0), "Stunned!", C3(255 / 255, 255 / 255, 0))
1918
	for i = 0, 1, 0.3 / Animation_Speed do
1919
		Swait()
1920
		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)
1921
		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)
1922
		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)
1923
		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)
1924
		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)
1925
		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)
1926
	end
1927
	for i = 0, 1, 0.3 / Animation_Speed do
1928
		Swait()
1929
		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)
1930
		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)
1931
		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)
1932
		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)
1933
		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)
1934
		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)
1935
	end
1936
	for i = 0, 1, 0.3 / Animation_Speed do
1937
		Swait()
1938
		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)
1939
		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)
1940
		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)
1941
		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)
1942
		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)
1943
		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)
1944
	end
1945
	for i = 1, 70 * Animation_Speed do
1946
		Swait()
1947
		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)
1948
		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)
1949
		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)
1950
		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)
1951
		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)
1952
		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)
1953
	end
1954
	for i = 0, 1, 0.2 / Animation_Speed do
1955
		Swait()
1956
		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)
1957
		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)
1958
		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)
1959
		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)
1960
		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)
1961
		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)
1962
	end
1963
	DISABLEJUMPING = false
1964
	ATTACK = false
1965
end
1966
1967
function EAbility()
1968
	ATTACK = true
1969
	ATTACK = false
1970
end
1971
1972
function Attack1()
1973
	ATTACK = true
1974
	for i=0, 1, 0.1 / Animation_Speed do
1975
		Swait()
1976
            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)
1977
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
1978
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
1979
		    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)
1980
		    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
1981
			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.2 / Animation_Speed)
1982
			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.2 / Animation_Speed)
1983
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
1984
			break
1985
		end
1986
	end
1987
    while true do
1988
    wait(0.01)
1989
    if HOLD == true then
1990
    shoot()
1991
    elseif HOLD == false then
1992
    break
1993
    end
1994
    end
1995
    ATTACK = false
1996
end
1997
1998
function shoot()
1999
    ATTACK = true
2000
	for i=0, 1, 0.1 / Animation_Speed do
2001
		Swait()
2002
            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)
2003
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
2004
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2005
		    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2006
		    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2007
			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.2 / Animation_Speed)
2008
			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.2 / Animation_Speed)
2009
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2010
			break
2011
		end
2012
	end
2013
	CreateSound("930650202", GunPoint, 1.2, MRANDOM(8, 9) / 10)
2014
    ShootFireball(GunPoint.CFrame.p, Mouse.hit.p, 15, 5, 100, 25, 45)
2015
    Disable_Jump = true
2016
    Humanoid.WalkSpeed = 0
2017
    for i = 1, 3 do
2018
    MagicBlock("White", "Neon", GunPoint.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(0, 0, 0), VT(0, 0, 0), 3, 3, 3, 1, 1, 1, 0.1)
2019
    end
2020
	for i=0, 1, 0.1 / Animation_Speed do
2021
		Swait()
2022
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
2023
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2024
		    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2025
		    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(15), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2026
			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.2 / Animation_Speed)
2027
			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.2 / Animation_Speed)
2028
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2029
			break
2030
		end
2031
	end
2032
    Disable_Jump = false
2033
    Humanoid.WalkSpeed = 16
2034
    ATTACK = false
2035
end
2036
2037
function PointBlank()
2038
	ATTACK = true
2039
	for i=0, 1, 0.1 / Animation_Speed do
2040
		Swait()
2041
            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)
2042
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
2043
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2044
		    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)
2045
		    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2046
			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.2 / Animation_Speed)
2047
			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.2 / Animation_Speed)
2048
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2049
			break
2050
		end
2051
	end
2052
	for i=0, 1, 0.1 / Animation_Speed/2 do
2053
		Swait()
2054
            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)
2055
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
2056
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2057
		    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(0), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2058
		    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(-25)) * 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(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2060
			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.2 / Animation_Speed)
2061
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2062
			break
2063
		end
2064
	end
2065
    MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, GunPoint, 12, false, 85, 135, MRANDOM(5, 10), "Normal", RootPart, 0.5, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false)
2066
	CreateSound("213603013", GunPoint, 5, MRANDOM(8, 9) / 10)
2067
    Disable_Jump = true
2068
    Humanoid.WalkSpeed = 0
2069
    for i = 1, 15 do
2070
    SIZE = MRANDOM(70,200)
2071
    MagicBlock("White", "Neon", GunPoint.CFrame * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), ANGLES(0, 0, 0), VT(0, 0, 0), SIZE, SIZE, SIZE, 1, 1, 1, 0.1)
2072
    end
2073
	for i=0, 1, 0.1 / Animation_Speed do
2074
		Swait()
2075
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(35)), 0.2 / Animation_Speed)
2076
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2077
		    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(90), RAD(25), RAD(30)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2078
		    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.2 * Player_Size, 0.4 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(15), RAD(-25)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2079
			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.2 / Animation_Speed)
2080
			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.2 / Animation_Speed)
2081
		if StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true then
2082
			break
2083
		end
2084
	end
2085
    Disable_Jump = false
2086
    Humanoid.WalkSpeed = 16
2087
    ATTACK = false
2088
end
2089
2090
function ShootFireball(POSITION1, POSITION2, SPEED, SIZE, DURATION, LOWDAMAGE, HIGHDAMAGE)
2091
	local POS1 = POSITION1
2092
	local POS2 = POSITION2
2093
	local MOUSELOOK = CF((POS1 + POS2) / 2, POS2)
2094
	local FIREBALLSPEED = SPEED * Player_Size
2095
	local FIREBALLDURATION = DURATION
2096
	local FIREBALLCOLORS = {"White", "Pearl", "Magenta"}
2097
	local FIREBALLHITSOUNDS = {"522282998", "527535379", "304448425"}
2098
	coroutine.resume(coroutine.create(function()
2099
		repeat
2100
			Swait()
2101
			local FIREBALLHIT, FIREBALLPOS = Raycast(POS1, MOUSELOOK.lookVector, FIREBALLSPEED, Character)
2102
			POS1 = POS1 + (MOUSELOOK.lookVector * FIREBALLSPEED)
2103
			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)
2104
			if FIREBALLHIT ~= nil or FIREBALLDURATION <= 0.1 then
2105
				FIREBALLDURATION = 0
2106
				local FireballHitRefpart = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
2107
				FireballHitRefpart.Anchored = true
2108
				FireballHitRefpart.CFrame = CF(FIREBALLPOS)
2109
				game:GetService("Debris"):AddItem(FireballHitRefpart, 5)
2110
				CreateSound(FIREBALLHITSOUNDS[MRANDOM(1, #FIREBALLHITSOUNDS)], FireballHitRefpart, 1.4, MRANDOM(14, 16) / 10)
2111
				for i = 1, MRANDOM(4, 8) do
2112
					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)
2113
				end
2114
				MagicBlock("White", "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)
2115
				MagicSphere("Magenta", "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)
2116
				MagicBlock("White", "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)
2117
				MagnitudeDamage("", "", "", "", 1, 1, 1, 1, FireballHitRefpart, SIZE / 2, false, LOWDAMAGE, HIGHDAMAGE, 0, "Normal", RootPart, 0, 1, MRANDOM(10, 15), nil, false, true, nil, 0, 0, false)
2118
			else
2119
				FIREBALLDURATION = FIREBALLDURATION - (1 / 30) / Animation_Speed
2120
			end
2121
		until FIREBALLHIT ~= nil or FIREBALLDURATION <= 0
2122
	end))
2123
end
2124
2125
2126
--//=================================\\
2127
--\\=================================//
2128
2129
2130
2131
2132
2133
--//=================================\\
2134
--||	      SET THINGS UP
2135
--\\=================================//
2136
2137
if Start_Equipped == true then
2138
	ATTACK = true
2139
	EQUIPPED = true
2140
	if Disable_Animate == true then
2141
		ANIMATE.Parent = nil
2142
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
2143
		IDLEANIMATION:Play()
2144
	end
2145
	if Disable_Animator == true then
2146
		ANIMATOR.Parent = nil
2147
	end
2148
	if Disable_Moving_Arms == true then
2149
		RSH = Torso["Right Shoulder"]
2150
		LSH = Torso["Left Shoulder"]
2151
		RSH.Parent = nil
2152
		LSH.Parent = nil
2153
		if Use_Motors_Instead_Of_Welds == true then
2154
			RightShoulder = IT("Motor")
2155
			LeftShoulder = IT("Motor")
2156
		else
2157
			RightShoulder = IT("Weld")
2158
			LeftShoulder = IT("Weld")
2159
		end
2160
		RightShoulder.Name = "Right Shoulder"
2161
		RightShoulder.Part0 = Torso
2162
		RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
2163
		RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) 
2164
		RightShoulder.Part1 = Character["Right Arm"]
2165
		RightShoulder.Parent = Torso
2166
		LeftShoulder.Name = "Left Shoulder"
2167
		LeftShoulder.Part0 = Torso
2168
		LeftShoulder.C0=CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
2169
		LeftShoulder.C1=CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
2170
		LeftShoulder.Part1 = Character["Left Arm"]
2171
		LeftShoulder.Parent = Torso
2172
		RIGHTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
2173
		LEFTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
2174
	end
2175
	if Start_Equipped_With_Equipped_Animation == true then
2176
		Swait()
2177
	end
2178
	ATTACK = false
2179
end
2180
2181
--//=================================\\
2182
--\\=================================//
2183
2184
2185
2186
2187
2188
--//=================================\\
2189
--||	  ASSIGN THINGS TO KEYS
2190
--\\=================================//
2191
2192
Humanoid.Changed:connect(function(Jump)
2193
	if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
2194
		Humanoid.Jump = false
2195
	end
2196
end)
2197
2198
function MouseDown(Mouse)
2199
	if ATTACK == true or EQUIPPED == false then
2200
		return
2201
	end
2202
	HOLD = true
2203
		Attack1()
2204
	coroutine.resume(coroutine.create(function()
2205
		for i=1, 50 do
2206
			if ATTACK == false then
2207
				Swait()
2208
			end
2209
		end
2210
		if ATTACK == false then
2211
			COMBO = 1
2212
		end
2213
	end))
2214
end
2215
2216
function MouseUp(Mouse)
2217
HOLD = false
2218
end
2219
2220
function KeyDown(Key)
2221
	if Key == "f" and Can_Equip_Or_Unequip == true and ATTACK == false then
2222
		ATTACK = true
2223
		COMBO = 1
2224
		if EQUIPPED == false then
2225
			EQUIPPED = true
2226
			if Disable_Animate == true then
2227
				ANIMATE.Parent = nil
2228
				local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
2229
				IDLEANIMATION:Play()
2230
			end
2231
			if Disable_Animator == true then
2232
				ANIMATOR.Parent = nil
2233
			end
2234
			if Disable_Moving_Arms == true then
2235
				RSH = Torso["Right Shoulder"]
2236
				LSH = Torso["Left Shoulder"]
2237
				RSH.Parent = nil
2238
				LSH.Parent = nil
2239
				if Use_Motors_Instead_Of_Welds == true then
2240
					RightShoulder = IT("Motor")
2241
					LeftShoulder = IT("Motor")
2242
				else
2243
					RightShoulder = IT("Weld")
2244
					LeftShoulder = IT("Weld")
2245
				end
2246
				RightShoulder.Name = "Right Shoulder"
2247
				RightShoulder.Part0 = Torso
2248
				RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
2249
				RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) 
2250
				RightShoulder.Part1 = Character["Right Arm"]
2251
				RightShoulder.Parent = Torso
2252
				LeftShoulder.Name = "Left Shoulder"
2253
				LeftShoulder.Part0 = Torso
2254
				LeftShoulder.C0=CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
2255
				LeftShoulder.C1=CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size)
2256
				LeftShoulder.Part1 = Character["Left Arm"]
2257
				LeftShoulder.Parent = Torso
2258
				RIGHTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
2259
				LEFTSHOULDERC0 = CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0))
2260
			end
2261
			Swait()
2262
		elseif EQUIPPED == true then
2263
		end
2264
		ATTACK = false
2265
	end
2266
	if Key == "e" and EQUIPPED == true and ATTACK == false then
2267
		PointBlank()
2268
	end
2269
end
2270
2271
function KeyUp(Key)
2272
end
2273
2274
if Use_HopperBin == false then
2275
2276
	Mouse.Button1Down:connect(function(NEWKEY)
2277
		MouseDown(NEWKEY)
2278
	end)
2279
	Mouse.Button1Up:connect(function(NEWKEY)
2280
		MouseUp(NEWKEY)
2281
	end)
2282
	Mouse.KeyDown:connect(function(NEWKEY)
2283
		KeyDown(NEWKEY)
2284
	end)
2285
	Mouse.KeyUp:connect(function(NEWKEY)
2286
		KeyUp(NEWKEY)
2287
	end)
2288
2289
elseif Use_HopperBin == true then
2290
	WEAPONTOOL.Parent = Backpack
2291
	script.Parent = WEAPONTOOL
2292
	function SelectTool(Mouse)
2293
		Mouse.Button1Down:connect(function()
2294
			MouseDown(Mouse)
2295
		end)
2296
		Mouse.Button1Up:connect(function()
2297
			MouseUp(Mouse)
2298
		end)
2299
		Mouse.KeyDown:connect(KeyDown)
2300
		Mouse.KeyUp:connect(KeyUp)
2301
	end
2302
	function DeselectTool(Mouse)
2303
	end
2304
	WEAPONTOOL.Selected:connect(SelectTool)
2305
	WEAPONTOOL.Deselected:connect(DeselectTool)
2306
end
2307
2308
--//=================================\\
2309
--\\=================================//
2310
2311
2312
2313
2314
2315
--//=================================\\
2316
--||	WRAP THE WHOLE SCRIPT UP
2317
--\\=================================//
2318
2319
while true do
2320
	Swait()
2321
	if Enable_Gui == true then
2322
		UpdateGUI()
2323
	end
2324
	UpdateSkillsAndStuff()
2325
	if Walkspeed_Depends_On_Movement_Value == true then
2326
		if Movement.Value < 0 or StaggerHit.Value == true or Stagger.Value == true or Stun.Value == true or Rooted.Value == true then
2327
			Humanoid.WalkSpeed = 0
2328
		else
2329
			Humanoid.WalkSpeed = 16 * Movement.Value * Player_Size
2330
		end
2331
	end
2332
	if Enable_Stun == true and StunValue.Value >= Max_Stun then
2333
		StunValue.Value = 0
2334
		Stun.Value = true
2335
	end
2336
	if Enable_Stagger_Hit == true then
2337
		if StaggerHit.Value == true and STAGGERHITANIM == false then
2338
			coroutine.resume(coroutine.create(function()
2339
				STAGGERHITANIM = true
2340
				while ATTACK == true do
2341
					Swait()
2342
				end
2343
				StaggerHitAnimation()
2344
				StaggerHit.Value = false
2345
				STAGGERHITANIM = false
2346
			end))
2347
		end
2348
	else
2349
		StaggerHit.Value = false
2350
	end
2351
	if Enable_Stagger == true then
2352
		if Stagger.Value == true and STAGGERANIM == false then
2353
			coroutine.resume(coroutine.create(function()
2354
				STAGGERANIM = true
2355
				while ATTACK == true do
2356
					Swait()
2357
				end
2358
				StaggerAnimation()
2359
				Stagger.Value = false
2360
				STAGGERANIM = false
2361
			end))
2362
		end
2363
	else
2364
		Stagger.Value = false
2365
	end
2366
	if Enable_Stun == true then
2367
		if Stun.Value == true and STUNANIM == false then
2368
			coroutine.resume(coroutine.create(function()
2369
				StunValue.Value = 0
2370
				STUNANIM = true
2371
				while ATTACK == true do
2372
					Swait()
2373
				end
2374
				StunAnimation()
2375
				Stun.Value = false
2376
				STUNANIM = false
2377
			end))
2378
		end
2379
	else
2380
		StunValue.Value = 0
2381
		Stun.Value = false
2382
	end
2383
	if DONUMBER >= .5 then
2384
		HANDIDLE = true
2385
	elseif DONUMBER <= 0 then
2386
		HANDIDLE = false
2387
	end
2388
	if HANDIDLE == false then
2389
		DONUMBER = DONUMBER + 0.003 / Animation_Speed
2390
	else
2391
		DONUMBER = DONUMBER - 0.003 / Animation_Speed
2392
	end
2393
	if ATTACK == false then
2394
		IDLENUMBER = IDLENUMBER + 1
2395
	else
2396
		IDLENUMBER = 0
2397
	end
2398
	if Enable_Stats == true then
2399
		for _, v in pairs (ChangeStat:GetChildren()) do
2400
			if v:FindFirstChild("Duration") ~= nil then
2401
				v:FindFirstChild("Duration").Value = v:FindFirstChild("Duration").Value - (1 / 30) / Animation_Speed
2402
				if v:FindFirstChild("Duration").Value <= 0 then
2403
					v.Parent = nil
2404
				end
2405
			end
2406
			if v.Name == "ChangeDefense" then
2407
				CHANGEDEFENSE = CHANGEDEFENSE + v.Value
2408
			elseif v.Name == "ChangeDamage" then
2409
				CHANGEDAMAGE = CHANGEDAMAGE + v.Value
2410
			elseif v.Name == "ChangeMovement" then
2411
				CHANGEMOVEMENT = CHANGEMOVEMENT + v.Value
2412
			end
2413
		end
2414
		Defense.Value = 1 + (CHANGEDEFENSE)
2415
		if Defense.Value <= 0.01 then
2416
			Defense.Value = 0.01
2417
		end
2418
		Damage.Value = 1 + (CHANGEDAMAGE)
2419
		if Damage.Value <= 0 then
2420
			Damage.Value = 0
2421
		end
2422
		Movement.Value = 1 + (CHANGEMOVEMENT)
2423
		if Movement.Value <= 0 then
2424
			Movement.Value = 0
2425
		end
2426
	CHANGEDEFENSE = 0
2427
	CHANGEDAMAGE = 0
2428
	CHANGEMOVEMENT = 0
2429
	end
2430
	SINE = SINE + CHANGE
2431
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
2432
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
2433
	local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position)
2434
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character)
2435
	local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
2436
	if ANIM == "Walk" and EQUIPPED == true and TORSOVELOCITY > 1 then
2437
		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)
2438
		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)
2439
		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)
2440
		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)
2441
	elseif (ANIM ~= "Walk" and EQUIPPED == true) or (TORSOVELOCITY < 1) then
2442
		RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2443
		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)
2444
		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)
2445
		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)
2446
	end
2447
	if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
2448
		ANIM = "Jump"
2449
		if EQUIPPED == true and ATTACK == false then
2450
			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)
2451
			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)
2452
			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)
2453
			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)
2454
			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)
2455
			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)
2456
        end
2457
	elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
2458
		ANIM = "Fall"
2459
		if EQUIPPED == true and ATTACK == false then
2460
			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)
2461
			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)
2462
			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)
2463
			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)
2464
			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)
2465
			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)
2466
		end
2467
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
2468
		ANIM = "Idle"
2469
		if EQUIPPED == true and ATTACK == false then
2470
			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)
2471
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2472
		    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.45 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(25), RAD(-15)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2473
		    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1 * Player_Size, 0.2 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(25), RAD(0), RAD(55)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2474
			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.2 / Animation_Speed)
2475
			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.2 / Animation_Speed)
2476
		end
2477
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
2478
		ANIM = "Walk"
2479
		WALK = WALK + 1 / Animation_Speed
2480
		if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then
2481
			WALK = 0
2482
			if WALKINGANIM == true then
2483
				WALKINGANIM = false
2484
			elseif WALKINGANIM == false then
2485
				WALKINGANIM = true
2486
			end
2487
		end
2488
		if EQUIPPED == true and ATTACK == false then
2489
			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)
2490
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 0.2 / Animation_Speed)
2491
		    RightShoulder.C0 = Clerp(RightShoulder.C0, CF(0.45 * Player_Size, 0.5 * Player_Size, -1 * Player_Size) * ANGLES(RAD(70), RAD(0), RAD(-70)) * ANGLES(RAD(20), RAD(25), RAD(-15)) * RIGHTSHOULDERC0, 0.4 / Animation_Speed)
2492
		    LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1 * Player_Size, 0.2 * Player_Size, -0.5 * Player_Size) * ANGLES(RAD(25), RAD(0), RAD(55)) * LEFTSHOULDERC0, 0.4 / Animation_Speed)
2493
			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.2 / Animation_Speed)
2494
			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.2 / Animation_Speed)
2495
	    end
2496
    end
2497
2498
end
2499
2500
--//=================================\\
2501
--\\=================================//
2502
2503
2504
2505
2506
2507
--//====================================================\\--
2508
--||			  		 END OF SCRIPT
2509
--\\====================================================//--