View difference between Paste ID: DPqZgVcC and VvaU5YH1
SHOW: | | - or go back to the newest paste.
1
-- FE template created by MintyLatios (V3rm) aka Drahazar (ROBLOX)
2-
local username = "Drahazar"
2+
local username = "TameDoNotClick"
3
4
if(script:FindFirstChild'Owner')then
5
	repeat wait() until script.Owner.Value
6
end
7
function GetPlr(user)
8
	for _,v in next, game:service'Players':players() do
9
		if(v.Name==user)then
10
			return v
11
		end
12
	end	
13
	return nil
14
end
15
16
local Player = (script:FindFirstChild'Owner' and script:FindFirstChild'Owner'.Value or GetPlr(username))
17-
pcall(game.Destroy,script:FindFirstChild'Owner')
17+
18-
local FakeMouse = script.FakeMouse:Clone();
18+
19-
FakeMouse.Parent = Player.Character;
19+
20-
script.FakeMouse:Destroy()
20+
21-
do
21+
22-
	local GUID = {}
22+
23-
	do
23+
24-
	    GUID.IDs = {};
24+
25-
	    function GUID:new(len)
25+
26-
	        local id;
26+
27-
	        if(not len)then
27+
28-
	            id = (tostring(function() end))
28+
29-
	            id = id:gsub("function: ","")
29+
30-
	        else
30+
31-
	            local function genID(len)
31+
32-
	                local newID = ""
32+
33-
	                for i = 1,len do
33+
34-
	                    newID = newID..string.char(math.random(48,90))
34+
35-
	                end
35+
36-
	                return newID
36+
37-
	            end
37+
38-
	            repeat id = genID(len) until not GUID.IDs[id]
38+
39-
				local oid = id;
39+
40-
				id = {Trash=function() GUID.IDs[oid]=nil; end;Get=function() return oid; end}
40+
41-
	            GUID.IDs[oid]=true;
41+
42
		t.Connect = function(self,f)
43-
	        return id
43+
44
			ft={Disconnected=false;disconnect=function(s) if(self.Function==ft)then self.Function=nil end s.Disconnected=true end}
45
			ft.Disconnect=ft.disconnect
46
				
47-
	local AHB = Instance.new("BindableEvent")
47+
48
				for id,_ in next, t.Waited do 
49-
	local FPS = 30
49+
50
				end 
51-
	local TimeFrame = 0
51+
52
			end; 
53-
	local LastFrame = tick()
53+
54-
	local Frame = 1/FPS
54+
55
			return ft;
56-
	game:service'RunService'.Heartbeat:connect(function(s,p)
56+
57-
		TimeFrame = TimeFrame + s
57+
58-
		if(TimeFrame >= Frame)then
58+
59-
			for i = 1,math.floor(TimeFrame/Frame) do
59+
60-
				AHB:Fire()
60+
61
			t.Waited[waitingId]=false
62-
			LastFrame=tick()
62+
63-
			TimeFrame=TimeFrame-Frame*math.floor(TimeFrame/Frame)
63+
64
			guid:Trash()
65
		end
66
		t.wait = t.Wait
67
		return t
68
	end
69
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
70
	local UsIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
71
	local Run = {RenderStepped=fakeEvent()}
72
	
73
	function CoAS:BindAction(name,fun,touch,...)
74
		CoAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
75
	end
76
	function CoAS:UnbindAction(name)
77
		CoAS.Actions[name] = nil
78
	end
79
	local function te(self,ev,...)
80
		local t = self[ev]
81
		if t and t._fakeEvent and t.Connected then
82
			for i,v in next, t.Connected do
83
				if(v.Func and not v.Disconnected)then
84
					v.Func(...)
85
				else
86
					t.Connected[i]=nil
87
				end
88
			end
89
		end
90
	end
91
	m.TrigEvent = te
92
	UsIS.TrigEvent = te
93
	Run.TrigEvent = te
94
	Event.OnServerEvent:Connect(function(plr,io)
95
	    if plr~=Player then return end
96
		--[[table.foreach(io,print)
97
		print'---']]
98
		if io.Mouse then
99
			m.Target = io.Target
100
			m.Hit = io.Hit
101
		elseif io.KeyEvent then
102
			m:TrigEvent('Key'..io.KeyEvent,io.Key)
103
		elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
104
	        if io.UserInputState == Enum.UserInputState.Begin then
105
				m:TrigEvent("Button1Down")
106
			else
107
				m:TrigEvent("Button1Up")
108
			end
109
		end
110
		if(not io.KeyEvent and not io.Mouse)then
111
			
112
			for n,t in pairs(CoAS.Actions) do
113
				for _,k in pairs(t.Keys) do
114
					if k==io.KeyCode then
115
						t.Function(t.Name,io.UserInputState,io)
116
					end
117
				end
118
			end
119
	        if io.UserInputState == Enum.UserInputState.Begin then
120
				UsIS:TrigEvent("InputBegan",io,false)
121
			else
122
				UsIS:TrigEvent("InputEnded",io,false)
123
	        end
124
	    end
125
	end)
126
		
127
	Func.OnServerInvoke = function(plr,inst,play)
128
		if plr~=Player then return end
129
		if(inst and typeof(inst) == 'Instance' and inst:IsA'Sound')then
130
			loudnesses[inst]=play	
131
		end
132
	end
133
	
134
	function GetClientProperty(inst,prop)
135
		if(prop == 'PlaybackLoudness' and loudnesses[inst])then 
136
			return loudnesses[inst] 
137
		elseif(prop == 'PlaybackLoudness')then
138
			return Func:InvokeClient(Player,'RegSound',inst)
139
		end
140
		return Func:InvokeClient(Player,inst,prop)
141
	end
142
	local oldGame = game;
143
	function GetFakePlayer()
144
							local oldPlayer = Player;
145
	local fakePlayer = newproxy(true)
146
	getmetatable(fakePlayer).__index = function(s,i)
147
		if(i == 'GetMouse')then
148
			return function() return m; end
149
		end
150
		return Player[i]
151
	end
152
	getmetatable(fakePlayer).__newindex = function(s,i,v)
153
		Player[i]=v
154
	end
155
	getmetatable(fakePlayer).__call=function(self,...)
156
		if(self == fakePlayer)then self = Player end
157
		local wh = {...}
158
		local name = table.remove(wh,1)
159
		for i,v in next, wh do
160
			wh[i]=v
161
		end
162
		if(name == 'GetMouse')then
163
			return m;
164
		end
165
		return self(name,unpack(wh))
166
	end
167
	getmetatable(fakePlayer).__namecall=function(self,...)
168
		if(self == fakePlayer)then self = Player end
169
		local tuple={...}
170
		local name = table.remove(tuple,#tuple)
171
	
172
		if(name == 'GetMouse')then
173
			return m;
174
		else
175
			return self[name](self,unpack(tuple))
176
		end
177
	end
178
	
179
	return fakePlayer
180
	end
181
	local oll = LoadLibrary;
182
	function LoadLibrary(libtard)
183
		local libtarddestroyed=oll(libtard)
184
		if(libtard=='RbxUtility')then
185
			local library={Create=function(obj)
186
				local inst = Instance.new(obj)
187
				return function(props)
188
					for prop,valu in next, props do
189
						inst[prop]=valu
190
					end
191
					return inst
192
				end	
193
			end}
194
			setmetatable(library,{__index=libtarddestroyed,__newindex=function(s,i,v) libtarddestroyed[i]=v end})
195
			
196
			return library
197
		else
198
			return libtarddestroyed
199
		end
200
	end
201
	 fakePlayer = GetFakePlayer()
202
	local function GetService(s,i)
203
		local service = s:GetService(i)
204
		if(i == 'Players')then
205
			local oldService = service;
206
			local fakeService = newproxy(true)
207
			getmetatable(fakeService).__index = function(s,i)
208
				if(s == fakeService)then s=oldService end
209
				if(i == 'LocalPlayer' or i == 'localPlayer')then
210
					return fakePlayer
211
				elseif(i == 'oPlayer')then
212
					return oPlayer
213
				else
214
					return s[i]	
215
				end
216
			end
217
			getmetatable(fakeService).__newindex = function(s,i,v)
218
				if(s == fakeService)then s=oldService end				
219
				s[i]=v
220
			end
221
			getmetatable(fakeService).__call=function(self,...)
222
				if(self == fakeService)then self = oldService end
223
				local wh = {...}
224
				local name = table.remove(wh,1)
225
				for i,v in next, wh do
226
					wh[i]=v
227
				end
228
				return self(name,unpack(wh))
229
			end
230
			getmetatable(fakeService).__namecall=function(self,...)
231
				if(self == fakeService)then self = oldService end
232
				local tuple={...}
233
				local name = table.remove(tuple,#tuple)
234
235
				return self[name](self,unpack(tuple))
236
				end
237
			getmetatable(fakeService).__metatable = 'gay'
238
			return fakeService
239
		elseif(i == 'RunService')then
240
			local oldService = service;
241
			local fakeService = newproxy(true)
242
			getmetatable(fakeService).__index = function(s,i)
243
				if(s == fakeService)then s=oldService end
244
				return Run[i] or s[i]	
245
			end
246
			getmetatable(fakeService).__newindex = function(s,i,v)
247
				if(s == fakeService)then s=oldService end				
248
				s[i]=v
249
			end
250
			getmetatable(fakeService).__call=function(self,...)
251
				if(self == fakeService)then self = oldService end
252
				local wh = {...}
253
				local name = table.remove(wh,1)
254
				for i,v in next, wh do
255
					wh[i]=v
256
				end
257
				return self(name,unpack(wh))
258
			end
259
			getmetatable(fakeService).__namecall=function(self,...)
260
				if(self == fakeService)then self = oldService end
261
				local tuple={...}
262
				local name = table.remove(tuple,#tuple)
263
264
				return self[name](self,unpack(tuple))
265
				end
266
			getmetatable(fakeService).__metatable = 'gay'
267
			return fakeService	
268
		elseif(i == 'UserInputService')then
269
			return UsIS
270
		elseif(i == 'ContextActionService')then
271
			return CoAS;
272
		else
273
			return service
274
		end
275
	end
276
	
277
	local new = Instance.new;
278
	Instance = {}
279
	Instance.new = function(inst,obje)
280
		local lp = GetService(oldGame,'Players').localPlayer
281
		local instance = new(inst)
282
		if(inst=='ObjectValue')then
283
			local fake = newproxy(true)
284
			getmetatable(fake).__index=function(self,index)
285
				if(self==fake)then self=instance end
286
				return self[index]
287
			end
288
			getmetatable(fake).__newindex=function(self,index,value)
289
				if(self==fake)then self=instance end
290
				if(index=='Value' and typeof(value)~='Instance' and value==fakePlayer)then
291
					self[index]=oPlayer
292
				else
293
					self[index]=value
294
				end
295
			end
296
			getmetatable(fake).__call=function(self,...)
297
				if(self == fake)then self = instance end
298
				local wh = {...}
299
				local name = table.remove(wh,1)
300
				for i,v in next, wh do
301
					if(v == fake)then v = instance end
302
					wh[i]=v
303
				end
304
				return self(name,unpack(wh))
305
			end
306
			getmetatable(fake).	__namecall=function(self,...)
307
				if(self == fake)then self = instance end
308
				local tuple={...}
309
				local name = table.remove(tuple,#tuple)
310
				return self[name](self,unpack(tuple))
311
			end
312
			return fake
313
		else
314
			instance.Parent = obje
315
			return instance;
316
		end
317
318
	end
319
	local serviceFunctions={
320
		service=true,
321
		GetService=true,
322
	}
323
	local fakeGame = newproxy(true)
324
	getmetatable(fakeGame).__index = function(s,i)
325
		if(s == fakeGame)then s=oldGame end
326
		local serv = GetService(oldGame,i)
327
		if serviceFunctions[i] then
328
			return GetService
329
		elseif(serv)then
330
			return serv
331
		else
332
			return s[i]
333
		end		
334
	end
335
	getmetatable(fakeGame).__newindex = function(s,i,v)
336
		if(s == fakeGame)then s=oldGame end
337
		s[i]=v
338
	end
339
	getmetatable(fakeGame).__call=function(self,...)
340
		if(self == fakeGame)then self = oldGame end
341
		local wh = {...}
342
		local name = table.remove(wh,1)
343
		for i,v in next, wh do
344
			if(v == fakeGame)then v = oldGame end
345
			wh[i]=v
346
		end
347
		if serviceFunctions[name] then
348
			return GetService(self,unpack(wh))
349
		else
350
			return self(name,unpack(wh))
351
		end	
352
	end
353
	getmetatable(fakeGame).	__namecall=function(self,...)
354
		if(self == fakeGame)then self = oldGame end
355
		local tuple={...}
356
		local name = table.remove(tuple,#tuple)
357
		
358
		local funcToCall=self[name]
359
		
360
		if serviceFunctions[name] then
361
			return GetService(self,unpack(tuple))
362
		else
363
			return self[name](self,unpack(tuple))
364
		end
365
	end
366
	getmetatable(fakeGame).__metatable = 'gay'
367
368
	coroutine.wrap(function()
369
		while true do
370
			Run:TrigEvent('RenderStepped')
371
			swait()
372
		end
373
	end)()
374
	game=fakeGame
375
	UserInputService,ContextActionService = UsIS,CoAS
376
end
377
	
378
-- converter by Drahazar
379
-- converted using Drahazar's Void SB Script Converter
380
381
--//====================================================\\--
382
--||			   CREATED BY SHACKLUSTER
383
--\\====================================================//--
384
385
wait(0.2)
386
387
Player = game:GetService("Players").LocalPlayer
388
PlayerGui = Player.PlayerGui
389
Cam = workspace.CurrentCamera
390
Backpack = Player.Backpack
391
Character = Player.Character
392
Humanoid = Character.Humanoid
393
Mouse = Player:GetMouse()
394
RootPart = Character["HumanoidRootPart"]
395
Torso = Character["Torso"]
396
Head = Character["Head"]
397
RightArm = Character["Right Arm"]
398
LeftArm = Character["Left Arm"]
399
RightLeg = Character["Right Leg"]
400
LeftLeg = Character["Left Leg"]
401
RootJoint = RootPart["RootJoint"]
402
Neck = Torso["Neck"]
403
RightShoulder = Torso["Right Shoulder"]
404
LeftShoulder = Torso["Left Shoulder"]
405
RightHip = Torso["Right Hip"]
406
LeftHip = Torso["Left Hip"]
407
local sick = Instance.new("Sound",RootPart)
408
409
IT = Instance.new
410
CF = CFrame.new
411
VT = Vector3.new
412
RAD = math.rad
413
C3 = Color3.new
414
UD2 = UDim2.new
415
BRICKC = BrickColor.new
416
ANGLES = CFrame.Angles
417
EULER = CFrame.fromEulerAnglesXYZ
418
COS = math.cos
419
ACOS = math.acos
420
SIN = math.sin
421
ASIN = math.asin
422
ABS = math.abs
423
MRANDOM = math.random
424
FLOOR = math.floor
425
426
--//=================================\\
427
--|| 	      USEFUL VALUES
428
--\\=================================//
429
430
Animation_Speed = 3
431
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
432
local Speed = 35
433
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
434
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
435
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
436
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
437
local DAMAGEMULTIPLIER = 1
438
local ANIM = "Idle"
439
local ATTACK = false
440
local EQUIPPED = false
441
local HOLD = false
442
local COMBO = 1
443
local Rooted = false
444
local SINE = 0
445
local KEYHOLD = false
446
local CHANGE = 2 / Animation_Speed
447
local WALKINGANIM = false
448
local VALUE1 = false
449
local VALUE2 = false
450
local ROBLOXIDLEANIMATION = IT("Animation")
451
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
452
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
453
--ROBLOXIDLEANIMATION.Parent = Humanoid
454
local WEAPONGUI = IT("ScreenGui", PlayerGui)
455
WEAPONGUI.Name = "Weapon GUI"
456
local Effects = IT("Folder", Character)
457
Effects.Name = "Effects"
458
local ANIMATOR = Humanoid.Animator
459
local ANIMATE = Character.Animate
460
local UNANCHOR = true
461
local SPECIALITEMS = IT("Folder",Character)
462
SPECIALITEMS.Name = "Special Items"
463
local SPINSPEED = 1
464
465
--//=================================\\
466
--\\=================================//
467
468
469
--//=================================\\
470
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
471
--\\=================================//
472
473
ArtificialHB = Instance.new("BindableEvent", script)
474
ArtificialHB.Name = "ArtificialHB"
475
476
script:WaitForChild("ArtificialHB")
477
478
frame = Frame_Speed
479
tf = 0
480
allowframeloss = false
481
tossremainder = false
482
lastframe = tick()
483
script.ArtificialHB:Fire()
484
485
game:GetService("RunService").Heartbeat:connect(function(s, p)
486
	tf = tf + s
487
	if tf >= frame then
488
		if allowframeloss then
489
			script.ArtificialHB:Fire()
490
			lastframe = tick()
491
		else
492
			for i = 1, math.floor(tf / frame) do
493
				script.ArtificialHB:Fire()
494
			end
495
		lastframe = tick()
496
		end
497
		if tossremainder then
498
			tf = 0
499
		else
500
			tf = tf - frame * math.floor(tf / frame)
501
		end
502
	end
503
end)
504
505
--//=================================\\
506
--\\=================================//
507
508
--//=================================\\
509
--|| 	      SOME FUNCTIONS
510
--\\=================================//
511
512
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
513
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
514
end
515
516
function PositiveAngle(NUMBER)
517
	if NUMBER >= 0 then
518
		NUMBER = 0
519
	end
520
	return NUMBER
521
end
522
523
function NegativeAngle(NUMBER)
524
	if NUMBER <= 0 then
525
		NUMBER = 0
526
	end
527
	return NUMBER
528
end
529
530
function Swait(NUMBER)
531
	if NUMBER == 0 or NUMBER == nil then
532
		ArtificialHB.Event:wait()
533
	else
534
		for i = 1, NUMBER do
535
			ArtificialHB.Event:wait()
536
		end
537
	end
538
end
539
540
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
541
	local NEWMESH = IT(MESH)
542
	if MESH == "SpecialMesh" then
543
		NEWMESH.MeshType = MESHTYPE
544
		if MESHID ~= "nil" and MESHID ~= "" then
545
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
546
		end
547
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
548
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
549
		end
550
	end
551
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
552
	NEWMESH.Scale = SCALE
553
	NEWMESH.Parent = PARENT
554
	return NEWMESH
555
end
556
557
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
558
	local NEWPART = IT("Part")
559
	NEWPART.formFactor = FORMFACTOR
560
	NEWPART.Reflectance = REFLECTANCE
561
	NEWPART.Transparency = TRANSPARENCY
562
	NEWPART.CanCollide = false
563
	NEWPART.Locked = true
564
	NEWPART.Anchored = true
565
	if ANCHOR == false then
566
		NEWPART.Anchored = false
567
	end
568
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
569
	NEWPART.Name = NAME
570
	NEWPART.Size = SIZE
571
	NEWPART.Position = Torso.Position
572
	NEWPART.Material = MATERIAL
573
	NEWPART:BreakJoints()
574
	NEWPART.Parent = PARENT
575
	return NEWPART
576
end
577
578
	local function weldBetween(a, b)
579
	    local weldd = Instance.new("ManualWeld")
580
	    weldd.Part0 = a
581
	    weldd.Part1 = b
582
	    weldd.C0 = CFrame.new()
583
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
584
	    weldd.Parent = a
585
	    return weldd
586
	end
587
588
589
function QuaternionFromCFrame(cf)
590
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
591
	local trace = m00 + m11 + m22
592
	if trace > 0 then 
593
		local s = math.sqrt(1 + trace)
594
		local recip = 0.5 / s
595
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
596
	else
597
		local i = 0
598
		if m11 > m00 then
599
			i = 1
600
		end
601
		if m22 > (i == 0 and m00 or m11) then
602
			i = 2
603
		end
604
		if i == 0 then
605
			local s = math.sqrt(m00 - m11 - m22 + 1)
606
			local recip = 0.5 / s
607
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
608
		elseif i == 1 then
609
			local s = math.sqrt(m11 - m22 - m00 + 1)
610
			local recip = 0.5 / s
611
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
612
		elseif i == 2 then
613
			local s = math.sqrt(m22 - m00 - m11 + 1)
614
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
615
		end
616
	end
617
end
618
 
619
function QuaternionToCFrame(px, py, pz, x, y, z, w)
620
	local xs, ys, zs = x + x, y + y, z + z
621
	local wx, wy, wz = w * xs, w * ys, w * zs
622
	local xx = x * xs
623
	local xy = x * ys
624
	local xz = x * zs
625
	local yy = y * ys
626
	local yz = y * zs
627
	local zz = z * zs
628
	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))
629
end
630
 
631
function QuaternionSlerp(a, b, t)
632
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
633
	local startInterp, finishInterp;
634
	if cosTheta >= 0.0001 then
635
		if (1 - cosTheta) > 0.0001 then
636
			local theta = ACOS(cosTheta)
637
			local invSinTheta = 1 / SIN(theta)
638
			startInterp = SIN((1 - t) * theta) * invSinTheta
639
			finishInterp = SIN(t * theta) * invSinTheta
640
		else
641
			startInterp = 1 - t
642
			finishInterp = t
643
		end
644
	else
645
		if (1 + cosTheta) > 0.0001 then
646
			local theta = ACOS(-cosTheta)
647
			local invSinTheta = 1 / SIN(theta)
648
			startInterp = SIN((t - 1) * theta) * invSinTheta
649
			finishInterp = SIN(t * theta) * invSinTheta
650
		else
651
			startInterp = t - 1
652
			finishInterp = t
653
		end
654
	end
655
	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
656
end
657
658
function Clerp(a, b, t)
659
	local qa = {QuaternionFromCFrame(a)}
660
	local qb = {QuaternionFromCFrame(b)}
661
	local ax, ay, az = a.x, a.y, a.z
662
	local bx, by, bz = b.x, b.y, b.z
663
	local _t = 1 - t
664
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
665
end
666
667
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
668
	local frame = IT("Frame")
669
	frame.BackgroundTransparency = TRANSPARENCY
670
	frame.BorderSizePixel = BORDERSIZEPIXEL
671
	frame.Position = POSITION
672
	frame.Size = SIZE
673
	frame.BackgroundColor3 = COLOR
674
	frame.BorderColor3 = BORDERCOLOR
675
	frame.Name = NAME
676
	frame.Parent = PARENT
677
	return frame
678
end
679
680
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
681
	local label = IT("TextLabel")
682
	label.BackgroundTransparency = 1
683
	label.Size = UD2(1, 0, 1, 0)
684
	label.Position = UD2(0, 0, 0, 0)
685
	label.TextColor3 = TEXTCOLOR
686
	label.TextStrokeTransparency = STROKETRANSPARENCY
687
	label.TextTransparency = TRANSPARENCY
688
	label.FontSize = TEXTFONTSIZE
689
	label.Font = TEXTFONT
690
	label.BorderSizePixel = BORDERSIZEPIXEL
691
	label.TextScaled = false
692
	label.Text = TEXT
693
	label.Name = NAME
694
	label.Parent = PARENT
695
	return label
696
end
697
698
function NoOutlines(PART)
699
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
700
end
701
702
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
703
	local NEWWELD = IT(TYPE)
704
	NEWWELD.Part0 = PART0
705
	NEWWELD.Part1 = PART1
706
	NEWWELD.C0 = C0
707
	NEWWELD.C1 = C1
708
	NEWWELD.Parent = PARENT
709
	return NEWWELD
710
end
711
712
local S = IT("Sound")
713
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
714
	local NEWSOUND = nil
715
	coroutine.resume(coroutine.create(function()
716
		NEWSOUND = S:Clone()
717
		NEWSOUND.EmitterSize = VOLUME*5
718
		NEWSOUND.Parent = PARENT
719
		NEWSOUND.Volume = VOLUME
720
		NEWSOUND.Pitch = PITCH
721
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
722
		NEWSOUND:play()
723
		if DOESLOOP == true then
724
			NEWSOUND.Looped = true
725
		else
726
			repeat wait(1) until NEWSOUND.Playing == false
727
			NEWSOUND:remove()
728
		end
729
	end))
730
	return NEWSOUND
731
end
732
733
function CFrameFromTopBack(at, top, back)
734
	local right = top:Cross(back)
735
	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)
736
end
737
738
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
739
function WACKYEFFECT(Table)
740
	local TYPE = (Table.EffectType or "Sphere")
741
	local SIZE = (Table.Size or VT(1,1,1))
742
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
743
	local TRANSPARENCY = (Table.Transparency or 0)
744
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
745
	local CFRAME = (Table.CFrame or Torso.CFrame)
746
	local MOVEDIRECTION = (Table.MoveToPos or nil)
747
	local ROTATION1 = (Table.RotationX or 0)
748
	local ROTATION2 = (Table.RotationY or 0)
749
	local ROTATION3 = (Table.RotationZ or 0)
750
	local MATERIAL = (Table.Material or "Neon")
751
	local COLOR = (Table.Color or C3(1,1,1))
752
	local TIME = (Table.Time or 45)
753
	local SOUNDID = (Table.SoundID or nil)
754
	local SOUNDPITCH = (Table.SoundPitch or nil)
755
	local SOUNDVOLUME = (Table.SoundVolume or nil)
756
	coroutine.resume(coroutine.create(function()
757
		local PLAYSSOUND = false
758
		local SOUND = nil
759
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
760
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
761
			PLAYSSOUND = true
762
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
763
		end
764
		EFFECT.Color = COLOR
765
		local MSH = nil
766
		if TYPE == "Sphere" then
767
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
768
		elseif TYPE == "Block" or TYPE == "Box" then
769
			MSH = IT("BlockMesh",EFFECT)
770
			MSH.Scale = SIZE
771
		elseif TYPE == "Wave" then
772
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
773
		elseif TYPE == "Ring" then
774
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
775
		elseif TYPE == "Slash" then
776
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
777
		elseif TYPE == "Round Slash" then
778
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
779
		elseif TYPE == "Swirl" then
780
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
781
		elseif TYPE == "Skull" then
782
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
783
		elseif TYPE == "Crystal" then
784
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
785
		end
786
		if MSH ~= nil then
787
			local MOVESPEED = nil
788
			if MOVEDIRECTION ~= nil then
789
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
790
			end
791
			local GROWTH = SIZE - ENDSIZE
792
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
793
			if TYPE == "Block" then
794
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
795
			else
796
				EFFECT.CFrame = CFRAME
797
			end
798
			for LOOP = 1, TIME+1 do
799
				Swait()
800
				MSH.Scale = MSH.Scale - GROWTH/TIME
801
				if TYPE == "Wave" then
802
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
803
				end
804
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
805
				if TYPE == "Block" then
806
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
807
				else
808
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
809
				end
810
				if MOVEDIRECTION ~= nil then
811
					local ORI = EFFECT.Orientation
812
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
813
					EFFECT.Orientation = ORI
814
				end
815
			end
816
			if PLAYSSOUND == false then
817
				EFFECT:remove()
818
			else
819
				repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil
820
				EFFECT:remove()
821
			end
822
		else
823
			if PLAYSSOUND == false then
824
				EFFECT:remove()
825
			else
826
				repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil
827
				EFFECT:remove()
828
			end
829
		end
830
	end))
831
end
832
833
function MakeForm(PART,TYPE)
834
	if TYPE == "Cyl" then
835
		local MSH = IT("CylinderMesh",PART)
836
	elseif TYPE == "Ball" then
837
		local MSH = IT("SpecialMesh",PART)
838
		MSH.MeshType = "Sphere"
839
	elseif TYPE == "Wedge" then
840
		local MSH = IT("SpecialMesh",PART)
841
		MSH.MeshType = "Wedge"
842
	end
843
end
844
845
Debris = game:GetService("Debris")
846
847
function CastProperRay(StartPos, EndPos, Distance, Ignore)
848
	local DIRECTION = CF(StartPos,EndPos).lookVector
849
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
850
end
851
852
function CreateNeonCircle(ATTACHPART,POSITION,SIZE,COLOR,MATERIAL,THICKNESS,WIDTH,ORBED,ORBPART)
853
	local PART = CreatePart(3, SPECIALITEMS, MATERIAL, 0, 1, COLOR, "CirclePart", VT(0,0,0),false)
854
	local ORB = nil
855
	for i = 1, 20 do
856
		local RingPiece = CreatePart(3, SPECIALITEMS, MATERIAL, 0, 0, COLOR, "CirclePart", VT(THICKNESS,WIDTH,SIZE*(2.6/2)),false)
857
		local RingWeld = CreateWeldOrSnapOrMotor("Weld", RingPiece, PART, RingPiece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/20)*i), RAD(0)), CF(0, 0, 0) * CF(SIZE*4, 0, 0))
858
		if i == ORBPART and ORBED == true then
859
			ORB = CreatePart(3, SPECIALITEMS, MATERIAL, 0, 0, COLOR, "Orb", VT(0.8+WIDTH,0.8+WIDTH,0.8+WIDTH),false)
860
			MakeForm(ORB,"Ball")
861
			CreateWeldOrSnapOrMotor("Weld", RingPiece, RingPiece, ORB, CF(0,0,0) * ANGLES(RAD(0), RAD(0), RAD(0)),CF(0, 0, 0))
862
		end
863
	end
864
	local PartWeld = CreateWeldOrSnapOrMotor("Weld", ATTACHPART, PART, ATTACHPART, POSITION * ANGLES(RAD(0), RAD(0), RAD(0)),CF(0, 0, 0))
865
	return PartWeld, ORB
866
end
867
868
function CharacterFade(COLOR,TIMER)
869
	coroutine.resume(coroutine.create(function()
870
		local FADE = IT("Model",Effects)
871
		FADE.Name = "FadingEffect"
872
		for _, c in pairs(Character:GetChildren()) do
873
			if c.ClassName == "Part" and c ~= RootPart then
874
				local FADER = c:Clone()
875
				FADER.Color = COLOR
876
				FADER.CFrame = c.CFrame
877
				FADER.Parent = FADE
878
				FADER.Anchored = true
879
				FADER.Transparency = 0.25+c.Transparency
880
				FADER:BreakJoints()
881
				FADER.Material = "Neon"
882
				if FADER.Name == "Head" then
883
					FADER:ClearAllChildren()
884
					FADER.Size = VT(1,1,1)
885
				end
886
				FADER.CanCollide = false
887
			end
888
		end
889
		local TRANS = 0.75/TIMER
890
		for i = 1, TIMER do
891
			Swait()
892
			for _, c in pairs(FADE:GetChildren()) do
893
				if c.ClassName == "Part" then
894
					c.Transparency = c.Transparency + TRANS
895
				end
896
			end
897
		end
898
		FADE:remove()
899
	end))
900
end
901
902
function ProjectileMovement(PROJECTILE,AIM,TIME)
903
	local HIT,POS = CastProperRay(PROJECTILE.Position,AIM,2000,Character)
904
	PROJECTILE.CFrame = CF(PROJECTILE.Position,POS) * ANGLES(RAD(0), RAD(0), RAD(MRANDOM(-90,90)))
905
	local HEIGHT = TIME/5
906
	local DISTANCE = (PROJECTILE.Position - POS).Magnitude
907
	for i = 1, TIME do
908
		Swait()
909
		PROJECTILE.CFrame = PROJECTILE.CFrame * CF(0,(HEIGHT-(i/2.575))/100,-DISTANCE/TIME)
910
	end
911
end
912
913
function GetSphereArea(POS,DISTANCE)
914
	return CF(POS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,-DISTANCE).p
915
end
916
917
function SHAKECAM(POSITION,RANGE,INTENSITY,TIME)
918
	local CHILDREN = workspace:GetDescendants()
919
	for index, CHILD in pairs(CHILDREN) do
920
		if CHILD.ClassName == "Model" then
921
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
922
			if HUM then
923
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
924
				if TORSO then
925
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
926
						local CAMSHAKER = script.CamShake:Clone()
927
						CAMSHAKER.Shake.Value = INTENSITY
928
						CAMSHAKER.Timer.Value = TIME
929
						CAMSHAKER.Parent = CHILD
930
						CAMSHAKER.Disabled = false
931
					end
932
				end
933
			end
934
		end
935
	end
936
end
937
938
function GetRoot(MODEL,ROOT)
939
	if ROOT == true then
940
		return MODEL:FindFirstChild("HumanoidRootPart") or MODEL:FindFirstChild("Torso") or MODEL:FindFirstChild("UpperTorso")
941
	else
942
		return MODEL:FindFirstChild("Torso") or MODEL:FindFirstChild("UpperTorso")
943
	end
944
end
945
946
function Chatter(Text,Timer)
947
	local chat = coroutine.wrap(function()
948
		if Character:FindFirstChild("SpeechBoard")~= nil then
949
			Character:FindFirstChild("SpeechBoard"):destroy()
950
		end
951
		local naeeym2 = IT("BillboardGui",Character)
952
		naeeym2.Size = UD2(0,100,0,40)
953
		naeeym2.StudsOffset = VT(0,2,0)
954
		naeeym2.Adornee = Character.Head
955
		naeeym2.Name = "SpeechBoard"
956
		naeeym2.AlwaysOnTop = true
957
		local tecks2 = IT("TextLabel",naeeym2)
958
		tecks2.BackgroundTransparency = 1
959
		tecks2.BorderSizePixel = 0
960
		tecks2.Text = ""
961
		tecks2.Font = "Legacy"
962
		tecks2.TextSize = 15
963
		tecks2.TextStrokeTransparency = 0
964
		tecks2.TextColor3 = C3(1,1,1)
965
		tecks2.TextStrokeColor3 = C3(0,0,0)
966
		tecks2.Size = UDim2.new(1,0,0.5,0)
967
		local FINISHED = false
968
		coroutine.resume(coroutine.create(function()
969
			for i = 1,string.len(Text),1 do
970
				if naeeym2.Parent ~= Character then
971
					FINISHED = true
972
				end
973
				CreateSound(418252437, Head, 7, MRANDOM(8,12)/15, false)
974
				tecks2.Text = string.sub(Text,1,i)
975
				Swait(Timer)
976
			end
977
			FINISHED = true
978
		end))
979
		repeat wait() until FINISHED == true
980
		wait(1)
981
		naeeym2.Name = "FadingDialogue"
982
		for i = 1, 45 do
983
			Swait()
984
			naeeym2.StudsOffset = naeeym2.StudsOffset + VT(0,(2-((2/45)*i))/45,0)
985
			tecks2.TextTransparency = tecks2.TextTransparency + 1/45
986
			tecks2.TextStrokeTransparency = tecks2.TextTransparency
987
		end
988
		naeeym2:Destroy()
989
	end)
990
	chat()
991
end
992
993
function POSITION(PARENT)
994
	local grav = Instance.new("BodyPosition",PARENT)
995
	grav.D = 15
996
	grav.P = 2000
997
	grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
998
	return grav
999
end
1000
1001
--//=================================\\
1002
--||	     WEAPON CREATION
1003
--\\=================================//
1004
1005
for _, c in pairs(Character:GetChildren()) do
1006
	if c and c.Parent then
1007
		if c.ClassName == "Accessory" then
1008
			local ACCESSORY = c
1009
			local HANDLE = c.Handle
1010
			HANDLE.Parent = Character
1011
			if c then
1012
				if HANDLE:FindFirstChild("HatAttachment") or HANDLE:FindFirstChild("HairAttachment") then
1013
					local WLD = weldBetween(Head,HANDLE)
1014
				elseif HANDLE:FindFirstChild("FaceFrontAttachment") then
1015
					HANDLE:remove()
1016
				else
1017
					local WLD = weldBetween(Torso,HANDLE)
1018
				end
1019
			end
1020
			ACCESSORY:remove()
1021
		end
1022
	end
1023
end
1024
wait(0.1)
1025
local CUSTOMTAG = IT("BillboardGui",Character)
1026
CUSTOMTAG.AlwaysOnTop = true
1027
CUSTOMTAG.Size = UD2(2,15,2,15)
1028
CUSTOMTAG.StudsOffset = VT(0,1.2,0)
1029
CUSTOMTAG.MaxDistance = 75
1030
CUSTOMTAG.Adornee = Character.Head
1031
CUSTOMTAG.Name = "Name"
1032
local TAGETXT = IT("TextLabel",CUSTOMTAG)
1033
TAGETXT.BackgroundTransparency = 1
1034
TAGETXT.TextScaled = true
1035
TAGETXT.BorderSizePixel = 0
1036
TAGETXT.Text = "Calamity"
1037
TAGETXT.Font = "Fantasy"
1038
TAGETXT.TextSize = 30
1039
TAGETXT.TextStrokeTransparency = 0.5
1040
TAGETXT.TextColor3 = C3(0,0,0)
1041
TAGETXT.TextStrokeColor3 = C3(1,1,1)
1042
TAGETXT.Size = UD2(1,0,0.5,0)
1043
TAGETXT.Parent = CUSTOMTAG
1044
local PARTICLES = {}
1045
local RINGS = {}
1046
local ORBS = {}
1047
local SPIN = true
1048
for _, c in pairs(script.Torso:GetChildren()) do
1049
	c.Parent = Torso
1050
	c.Enabled = true
1051
	table.insert(PARTICLES,{c,c.Speed})
1052
end
1053
script.Torso:remove()
1054
for i = 1, 4 do
1055
	local WELD,ORB = CreateNeonCircle(RootPart,CF(0,0,0),(4+(i/1.3))/6,C3(1,1,1),"Neon",0,0,true,1)
1056
	table.insert(RINGS,WELD)
1057
	table.insert(ORBS,ORB)
1058
end
1059
local MASK = script.Mask
1060
MASK.Parent = SPECIALITEMS
1061
MASK:SetPrimaryPartCFrame(Head.CFrame*CF(-0.025,-0.08,-0.6)*ANGLES(RAD(-90),RAD(0),RAD(0)))
1062
MASK.Wood.Anchored = false
1063
local MASKP = MASK.Wood
1064
local EYE = MASK.Neon.Attachment.Flame
1065
local NEON = MASK.Neon
1066
weldBetween(Head,MASK.Wood)
1067
1068
local SKILLTEXTCOLOR = C3(1,1,1)
1069
local SKILLFONT = "Legacy"
1070
local SKILLTEXTSIZE = 3
1071
1072
local ATTACKS = {"Mouse - Calamity Bomb","C - Singularity Beam","V - Catastrophic Ravage","B - Raw, Unfiltered Catastrophe","X - Supreme Cataclysm"}
1073
1074
for i = 1, #ATTACKS do
1075
	local SKILLFRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.74, 0, 0.97-(0.02*i), 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill Frame")
1076
	local SKILLTEXT = CreateLabel(SKILLFRAME, "["..ATTACKS[i].."]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Skill text")
1077
	SKILLTEXT.TextXAlignment = "Right"
1078
end
1079
local BOOMSOUNDS = {1606719431,1606720250,1606720814}
1080
1081
--//=================================\\
1082
--||			DAMAGING
1083
--\\=================================//
1084
1085
function ONESHOT(MODEL)
1086
	MODEL:BreakJoints()
1087
	for index, CHILD in pairs(MODEL:GetChildren()) do
1088
		if CHILD:IsA("BasePart") and CHILD.Name ~= "HumanoidRootPart" then
1089
			if CHILD.Name == "Head" then
1090
				WACKYEFFECT({Time = MRANDOM(10,30)*5, EffectType = "Skull", Size = VT(CHILD.Size.Z,CHILD.Size.Y,CHILD.Size.Z)*3, Size2 = (VT(CHILD.Size.Z,CHILD.Size.Y,CHILD.Size.Z)*3)*MRANDOM(7,14)/10, Transparency = CHILD.Transparency, Transparency2 = 1, CFrame = CHILD.CFrame, MoveToPos = CHILD.Position+VT(0,MRANDOM(5,8)/1.5,0), RotationX = MRANDOM(-25,25)/35, RotationY = MRANDOM(-25,25)/35, RotationZ = MRANDOM(-25,25)/35, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1091
			else
1092
				WACKYEFFECT({Time = MRANDOM(10,30)*5, EffectType = "Box", Size = CHILD.Size, Size2 = CHILD.Size*MRANDOM(7,14)/10, Transparency = CHILD.Transparency, Transparency2 = 1, CFrame = CHILD.CFrame, MoveToPos = CHILD.Position+VT(0,MRANDOM(5,8)/1.5,0), MRANDOM(-25,25)/35, RotationY = MRANDOM(-25,25)/35, RotationZ = MRANDOM(-25,25)/35, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1093
			end
1094
			CHILD:remove()
1095
		end
1096
	end
1097
	Debris:AddItem(MODEL,6)
1098
end
1099
1100
function Scan(OBJECT,TABLE)
1101
	for index, CHILD in pairs(OBJECT:GetChildren()) do
1102
		if CHILD ~= Character then
1103
			if CHILD.ClassName == "Model" or CHILD.ClassName == "Folder" then
1104
				table.insert(TABLE,CHILD)
1105
				Scan(CHILD,TABLE)
1106
			end
1107
		end
1108
	end
1109
	return TABLE
1110
end
1111
1112
function ApplyAoE(POSITION,RANGE)
1113
	local TABLE = {}
1114
	local SCANNED = Scan(workspace,TABLE)
1115
	for E = 1, #SCANNED do
1116
		if SCANNED[E]:FindFirstChildOfClass("Humanoid") then
1117
			local TORSO = GetRoot(SCANNED[E],false)
1118
			if TORSO then
1119
				if (TORSO.Position - POSITION).Magnitude <= RANGE then
1120
					ONESHOT(SCANNED[E])
1121
				end
1122
			end
1123
		end
1124
	end
1125
end
1126
1127
--//=================================\\
1128
--||	ATTACK FUNCTIONS AND STUFF
1129
--\\=================================//
1130
1131
	--[[coroutine.resume(coroutine.create(function()
1132
	end))]]
1133
function CalamityBomb()
1134
	ATTACK = true
1135
	Rooted = false
1136
	local FIRED = false
1137
	repeat
1138
		coroutine.resume(coroutine.create(function()
1139
			local BOMB = ORBS[MRANDOM(1,#ORBS)]:Clone()
1140
			BOMB.Parent = Effects
1141
			BOMB.Anchored = true
1142
			WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = BOMB.Size, Size2 = BOMB.Size*2, Transparency = 0.7, Transparency2 = 1, CFrame = CF(BOMB.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 8})
1143
			local POS = CF(BOMB.Position) + VT(0,15,0)
1144
			repeat
1145
				Swait()
1146
				BOMB.CFrame = Clerp(BOMB.CFrame,POS,0.1)
1147
			until FIRED == true
1148
			local CORE = IT("Attachment",BOMB)
1149
			for index, PR in pairs(script.Effects.Bullet:GetChildren()) do
1150
				local P = PR:Clone()
1151
				P.Parent = CORE
1152
				P.Enabled = true
1153
			end
1154
			ProjectileMovement(BOMB,Mouse.Hit.p,25)
1155
			for i = 1, 15 do
1156
				local ANGLE = CF(BOMB.Position) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)))
1157
				WACKYEFFECT({Time = 60, EffectType = "Crystal", Size = VT(6,6,6), Size2 = VT(0,25,0), Transparency = 0, Transparency2 = 1, CFrame = ANGLE, MoveToPos = ANGLE*CF(0,40,0).p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1158
			end
1159
			ApplyAoE(BOMB.Position,15)
1160
			SHAKECAM(BOMB.Position,50,6,13)
1161
			WACKYEFFECT({EffectType = "Sphere", Size = VT(7,7,7), Size2 = VT(26,26,26), Transparency = 0.7, Transparency2 = 1, CFrame = CF(BOMB.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = 182765513, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 8})
1162
			WACKYEFFECT({EffectType = "Sphere", Size = VT(8,8,8), Size2 = VT(27,27,27), Transparency = 0, Transparency2 = 1, CFrame = CF(BOMB.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = 174580476, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 7})
1163
			BOMB:remove()
1164
		end))
1165
		for i=0, 0.1, 0.1 / Animation_Speed do
1166
			Swait()
1167
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-25)), 1 / Animation_Speed)
1168
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(25)), 1 / Animation_Speed)
1169
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(160), RAD(-25), RAD(25 + 8 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1170
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1171
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1172
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-60), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1173
		end
1174
		FIRED = true
1175
		for i=0, 0.2, 0.1 / Animation_Speed do
1176
			Swait()
1177
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(40)), 1 / Animation_Speed)
1178
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(-40)), 1 / Animation_Speed)
1179
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(90), RAD(-25), RAD(40 + 8 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1180
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1181
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(60), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1182
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1183
		end
1184
	until HOLD == false
1185
	for i=0, 0.2, 0.1 / Animation_Speed do
1186
		Swait()
1187
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(40)), 1 / Animation_Speed)
1188
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(-40)), 1 / Animation_Speed)
1189
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(90), RAD(-25), RAD(40 + 8 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1190
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1191
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(60), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1192
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1193
	end
1194
	ATTACK = false
1195
	Rooted = false
1196
end
1197
function SingularityBeam()
1198
	ATTACK = true
1199
	Rooted = false
1200
	SPIN = false
1201
	local CHARGING = true
1202
	local FIRING = true
1203
	local GYRO = IT("BodyGyro",RootPart)
1204
	GYRO.D = 2
1205
	GYRO.P = 20000
1206
	GYRO.MaxTorque = VT(0,4000000,0)
1207
	local TEXTS = {"I'll make you dissapear!","Vanish before my eyes, mortal!","You are nothing!"}
1208
	Chatter(TEXTS[MRANDOM(1,#TEXTS)],0)
1209
	coroutine.resume(coroutine.create(function()
1210
		repeat
1211
			Swait()
1212
			GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1213
		until ATTACK == false
1214
		GYRO:Remove()
1215
	end))
1216
	local CHARGE = CreatePart(3, Effects, "Neon", 0, 0, C3(0,0,0), "Singularity", VT(2,2,2),true)
1217
	MakeForm(CHARGE,"Ball")
1218
	local CORE = IT("Attachment",CHARGE)
1219
	local P = script.Charge:Clone()
1220
	P.Parent = CORE
1221
	P.Enabled = true
1222
	local BEAM = nil
1223
	local NOSE = nil
1224
	local DAMAGE = false
1225
	CreateSound(342793847, CHARGE, 10, 1, false)
1226
	CHARGE.Color = C3(0,0,0)
1227
	coroutine.resume(coroutine.create(function()
1228
		coroutine.resume(coroutine.create(function()
1229
			repeat
1230
				Swait()
1231
				CHARGE.CFrame = CF(RootPart.CFrame*CF(0,0,-8).p,Mouse.Hit.p)
1232
				if BEAM ~= nil then
1233
					local HIT,POS = CastProperRay(CHARGE.Position,Mouse.Hit.p,1000,Character)
1234
					local DISTANCE = (POS - CHARGE.Position).Magnitude
1235
					BEAM.CFrame = CHARGE.CFrame*CF(0,0,-((DISTANCE/2)+15)) * ANGLES(RAD(-90), RAD(0), RAD(0))
1236
					BEAM.Size = VT(BEAM.Size.X,DISTANCE+15,BEAM.Size.Z)
1237
					if BEAM.Size.X > 3 then
1238
						for i = 1, 2 do
1239
							local ANGLE = CF(BEAM.CFrame*CF(0,BEAM.Size.Y/2,0).p) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)))
1240
							WACKYEFFECT({Time = 5, EffectType = "Crystal", Size = VT(6,2,6), Size2 = VT(0,25,0), Transparency = 0, Transparency2 = 1, CFrame = ANGLE, MoveToPos = ANGLE*CF(0,40,0).p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1241
						end
1242
						local ANGLE = BEAM.CFrame*CF(0,-BEAM.Size.Y/2,0) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)) * CF(0,0,BEAM.Size.X/1.7)
1243
						WACKYEFFECT({Time = 15, EffectType = "Sphere", Size = VT(1,1,1), Size2 = VT(0,45,0), Transparency = 0, Transparency2 = 1, CFrame = ANGLE, MoveToPos = ANGLE*CF(0,40,0).p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1244
						WACKYEFFECT({Time = 10, EffectType = "Wave", Size = VT(BEAM.Size.X,0,BEAM.Size.Z), Size2 = VT(BEAM.Size.X*3,6,BEAM.Size.Z*3), Transparency = 0.8, Transparency2 = 1, CFrame = BEAM.CFrame*CF(0,-BEAM.Size.Y/2,0) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1245
					end
1246
					if DAMAGE == true then
1247
						ApplyAoE(POS,BEAM.Size.X/1.5)
1248
						ApplyAoE(BEAM.CFrame*CF(0,BEAM.Size.Y/2,0).p,BEAM.Size.X/1.5)
1249
					end
1250
				end
1251
				if NOSE ~= nil then
1252
					NOSE.CFrame = BEAM.CFrame*CF(0,BEAM.Size.Y/2,0)
1253
				end
1254
			until ATTACK == false
1255
			for i = 1, 50 do
1256
				Swait()
1257
				CHARGE.Size = CHARGE.Size - VT(2,2,2)/50
1258
			end
1259
			CHARGE:remove()
1260
		end))
1261
		local LOOP = 0
1262
		repeat
1263
			Swait()
1264
			LOOP = LOOP + 10
1265
			for E = 1, #RINGS do
1266
				RINGS[E].C0 = Clerp(RINGS[E].C0, CF(0,-(3+E),0) * ANGLES(RAD(90), RAD(0), RAD(LOOP+(E*15))),0.1)
1267
			end
1268
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(70)), 1 / Animation_Speed)
1269
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(-70)), 1 / Animation_Speed)
1270
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(90), RAD(0), RAD(70)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1271
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1272
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1273
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1274
		until CHARGING == false or ATTACK == false
1275
		repeat
1276
			Swait()
1277
			LOOP = LOOP + 10
1278
			for E = 1, #RINGS do
1279
				RINGS[E].C0 = Clerp(RINGS[E].C0, CF(0,-(3+E),0) * ANGLES(RAD(90), RAD(0), RAD(LOOP+(E*15))),0.1)
1280
			end
1281
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(10), RAD(70)), 1 / Animation_Speed)
1282
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(-70)), 1 / Animation_Speed)
1283
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(80), RAD(0), RAD(70)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1284
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1285
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1286
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1287
		until FIRING == false or ATTACK == false
1288
	end))
1289
	wait(3)
1290
	P.Enabled = false
1291
	BEAM = CreatePart(3, Effects, "Neon", 0, 0, C3(0,0,0), "Singularity", VT(0,600,0),true)
1292
	BEAM.Color = C3(0,0,0)
1293
	MakeForm(BEAM,"Cyl")
1294
	NOSE = CreatePart(3, Effects, "Neon", 0, 0, C3(0,0,0), "Singularity", VT(0,0,0),true)
1295
	NOSE.Color = C3(0,0,0)
1296
	MakeForm(NOSE,"Ball")
1297
	wait(1)
1298
	CreateSound(138677306, Effects, 10, 1, false)
1299
	CreateSound(415700134, Effects, 10, 1, false)
1300
	for i = 1, 20 do
1301
		Swait()
1302
		BEAM.Size = BEAM.Size + VT(1,0,1)
1303
		NOSE.Size = NOSE.Size + VT(1,1,1)
1304
	end
1305
	DAMAGE = true
1306
	local TOUCH = BEAM.Touched:Connect(function(HIT)
1307
		if HIT.Parent ~= Character and HIT.Parent:FindFirstChildOfClass("Humanoid") then
1308
			ONESHOT(HIT.Parent)
1309
		end
1310
	end)
1311
	wait(4)
1312
	DAMAGE = false
1313
	TOUCH:Disconnect()
1314
	for i = 1, 20 do
1315
		Swait()
1316
		BEAM.Size = BEAM.Size - VT(1,0,1)
1317
		NOSE.Size = NOSE.Size - VT(1,1,1)
1318
	end
1319
	BEAM:Remove()
1320
	NOSE:Remove()
1321
	SPIN = true
1322
	ATTACK = false
1323
	Rooted = false
1324
end
1325
function CatastrophicRavage()
1326
	ATTACK = true
1327
	Rooted = false
1328
	for i=0, 1, 0.1 / Animation_Speed do
1329
		Swait()
1330
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1331
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1332
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(-25), RAD(25 + 8 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1333
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1334
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1335
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1336
	end
1337
	ATTACK = false
1338
	Rooted = false
1339
end
1340
function RawUnfilteredCatastrophe()
1341
	ATTACK = true
1342
	Rooted = false
1343
	for i=0, 1, 0.1 / Animation_Speed do
1344
		Swait()
1345
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1346
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1347
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(-25), RAD(25 + 8 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1348
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1349
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1350
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1351
	end
1352
	ATTACK = false
1353
	Rooted = false
1354
end
1355
function SupremeCataclysm()
1356
	ATTACK = true
1357
	Rooted = true
1358
	local POSE = "Back"
1359
	local LOC = POSITION(RootPart)
1360
	CreateSound(874376217, Effects, 10, 1, false)
1361
	LOC.Position = RootPart.Position+VT(0,35,0)
1362
	local BLACKHOLE = false
1363
	for i=0, 1.5, 0.1 / Animation_Speed do
1364
		Swait()
1365
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1366
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1367
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(-25), RAD(25 + 8 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1368
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1369
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1370
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1371
	end
1372
	local POS = RootPart.Position + VT(0,40,0)
1373
	local GYRO = IT("BodyGyro",RootPart)
1374
	GYRO.D = 2
1375
	GYRO.P = 20000
1376
	GYRO.MaxTorque = VT(0,4000000,0)
1377
	coroutine.resume(coroutine.create(function()
1378
		repeat
1379
			Swait()
1380
			GYRO.CFrame = CF(RootPart.Position,Mouse.Hit.p)
1381
		until ATTACK == false
1382
		GYRO:Remove()
1383
	end))
1384
	coroutine.resume(coroutine.create(function()
1385
		repeat
1386
			Swait()
1387
			if BLACKHOLE == true then
1388
				WACKYEFFECT({Time = 10, EffectType = "Sphere", Size = VT(10 + 3 * COS(SINE / 12),10 + 3 * COS(SINE / 12),10 + 3 * COS(SINE / 12))*2, Size2 = VT(0,0,0), Transparency = 1, Transparency2 = 0, CFrame = CF(POS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 7})
1389
				local HITFLOOR,HITPOS,NORMAL = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 150, Character)
1390
				if HITFLOOR then
1391
					WACKYEFFECT({Time = 10, EffectType = "Wave", Size = VT(10,2,10), Size2 = VT(160,25,160), Transparency = 0.3, Transparency2 = 1, CFrame = CF(HITPOS) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1392
					local MATERIAL = CreatePart(3, Effects, HITFLOOR.Material, 0, 0, HITFLOOR.BrickColor, "BLACKHOLE'D", VT(2,2,2)*MRANDOM(5,15)/10)
1393
					MATERIAL.CFrame = CF(HITPOS-VT(0,5,0)) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)) * CF(0,0,MRANDOM(0,45))
1394
					if MRANDOM(1,5) == 1 then
1395
						CreateSound(765590102, MATERIAL, 2, MRANDOM(8,12)/8, false)
1396
					end
1397
					coroutine.resume(coroutine.create(function()
1398
						local Direction = CF(MATERIAL.Position,POS)
1399
						local Distance = (MATERIAL.Position - POS).magnitude
1400
						for i = 1, 45 do
1401
							Swait()
1402
							MATERIAL.CFrame = Direction*CF(0,(45/200)+((45/45)-((i*2)/45)),-Distance/45)
1403
							Direction = MATERIAL.CFrame
1404
						end
1405
						MATERIAL:remove()
1406
					end))
1407
				end
1408
			end
1409
			--WACKYEFFECT({Time = 55, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(150 + 15 * COS(SINE / 12),0.1,150 + 15 * COS(SINE / 12)), Transparency = 0.9, Transparency2 = 1, CFrame = CF(Torso.Position) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1410
			SPINSPEED = SPINSPEED + 5/400
1411
			if POSE == "Back" then
1412
				RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(4), RAD(0), RAD(15)), 1 / Animation_Speed)
1413
				Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-25), RAD(25), RAD(-15)), 1 / Animation_Speed)
1414
				RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 1.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(170), RAD(0), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1415
				LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1416
				RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1417
				LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1418
			end
1419
		until ATTACK == false
1420
	end))
1421
	wait(2)
1422
	BLACKHOLE = true
1423
	for i = 1, 15 do
1424
		wait((2-((i/30)*2))/15)
1425
		CreateSound(182765513, Effects, 10, 1, false)
1426
		WACKYEFFECT({Time = 70, EffectType = "Sphere", Size = VT(45,45,45), Size2 = VT(0,0,0), Transparency = 1, Transparency2 = 0, CFrame = CF(POS), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = MRANDOM(8,12)/10, SoundVolume = 7})
1427
		for i = 1, 5 do
1428
			local ANGLE = CF(POS) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)))
1429
			WACKYEFFECT({Time = 60, EffectType = "Crystal", Size = VT(6,6,6), Size2 = VT(0,25,0), Transparency = 0, Transparency2 = 1, CFrame = ANGLE, MoveToPos = ANGLE*CF(0,40,0).p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1430
		end
1431
	end
1432
	Chatter("...Dissapear!",0)
1433
	local DESTROYER = CreatePart(3, Effects, "Neon", 0, 0, C3(0,0,0), "Singularity", VT(0,0,0),true)
1434
	DESTROYER.CFrame = CF(POS)
1435
	MakeForm(DESTROYER,"Ball")
1436
	DESTROYER.Color = C3(0,0,0)
1437
	CreateSound(341301115, DESTROYER, 10, 1.5, false)
1438
	coroutine.resume(coroutine.create(function()
1439
		repeat
1440
			Swait()
1441
			ApplyAoE(DESTROYER.Position,DESTROYER.Size.X/1.5)
1442
			local ANGLE = CF(DESTROYER.Position) * ANGLES(RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)), RAD(MRANDOM(0,360)))
1443
			WACKYEFFECT({Time = 30, EffectType = "Sphere", Size = VT(5,1,5), Size2 = VT(0,DESTROYER.Size.X/3,0), Transparency = 0, Transparency2 = 1, CFrame = ANGLE, MoveToPos = ANGLE*CF(0,DESTROYER.Size.X,0).p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1444
			WACKYEFFECT({Time = 30, EffectType = "Sphere", Size = VT(4,1,4), Size2 = VT(0,DESTROYER.Size.X/3.1,0), Transparency = 0, Transparency2 = 1, CFrame = ANGLE, MoveToPos = ANGLE*CF(0,DESTROYER.Size.X,0).p, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1445
		until DESTROYER.Parent ~= Effects
1446
	end))
1447
	for i = 1, 100 do
1448
		Swait()
1449
		DESTROYER.Size = DESTROYER.Size + VT(0.5,0.5,0.5)
1450
		DESTROYER.Size = DESTROYER.Size + VT(0.15,0.15,0.15) * COS(SINE / 3)
1451
	end
1452
	POSE = "Manual"
1453
	for i=0, 1, 0.1 / Animation_Speed do
1454
		Swait()
1455
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-14), RAD(0), RAD(15)), 1 / Animation_Speed)
1456
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35), RAD(25), RAD(-15)), 1 / Animation_Speed)
1457
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 1.35 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-150), RAD(0), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1458
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1459
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1460
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1461
	end
1462
	for i=0, 0.2, 0.1 / Animation_Speed do
1463
		Swait()
1464
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(14), RAD(0), RAD(15)), 1 / Animation_Speed)
1465
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-10), RAD(25), RAD(-15)), 1 / Animation_Speed)
1466
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(80), RAD(0), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1467
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1468
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1469
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1470
	end
1471
	coroutine.resume(coroutine.create(function()
1472
		local IMPACT = false
1473
		DESTROYER.CFrame = CF(DESTROYER.Position,Mouse.Hit.p)
1474
		for i = 1, 800 do
1475
			Swait()
1476
			DESTROYER.CFrame = DESTROYER.CFrame * CF(0,0,-0.5)
1477
			local HIT,POS = Raycast(DESTROYER.CFrame.p,DESTROYER.CFrame.lookVector,DESTROYER.Size.X/2,Character)
1478
			if HIT then
1479
				IMPACT = true
1480
				break
1481
			end
1482
		end
1483
		if IMPACT == false then
1484
			DESTROYER.Parent = SPECIALITEMS
1485
			local SIZE = DESTROYER.Size
1486
			CreateSound(3264923, Effects, 10, 1, false)
1487
			for i = 1, 25 do
1488
				Swait()
1489
				DESTROYER.Size = DESTROYER.Size - SIZE/25
1490
			end
1491
			DESTROYER:remove()
1492
		else
1493
			local SIZE = DESTROYER.Size
1494
			for i = 1, 15 do
1495
				Swait()
1496
				DESTROYER.Size = DESTROYER.Size - SIZE/35
1497
			end
1498
			SHAKECAM(DESTROYER.Position,9999999999999999999999999999999,8,160)
1499
			DESTROYER.Size = SIZE * 7
1500
			CreateSound(174580476, Effects, 10, 0.4, false)
1501
			CreateSound(288641686, Effects, 10, 0.5, false)
1502
			for index, CHILD in pairs(workspace:GetDescendants()) do
1503
				if CHILD.ClassName ~= "Terrain" then
1504
					if CHILD:IsA("BasePart") and CHILD:FindFirstAncestor(Player.Name) == nil then
1505
						if (CHILD.Position - DESTROYER.Position).Magnitude <= DESTROYER.Size.X/2 and CHILD.Size.Magnitude < DESTROYER.Size.Magnitude/7 then
1506
							CHILD:Destroy()
1507
						end
1508
					end
1509
				end
1510
			end
1511
			for i = 1, 200 do
1512
				Swait()
1513
				DESTROYER.Size = DESTROYER.Size + VT(0.5,0.5,0.5)/5
1514
				DESTROYER.Color = C3(i/10,i/10,i/10)
1515
				local HITFLOOR,HITPOS,NORMAL = Raycast(DESTROYER.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 150, Character)
1516
				WACKYEFFECT({Time = 50, EffectType = "Wave", Size = VT(50,2,50), Size2 = VT(260,65,260), Transparency = 0.3, Transparency2 = 1, CFrame = CF(HITPOS) * ANGLES(RAD(0), RAD(MRANDOM(0,360)), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1517
			end
1518
			DESTROYER.Parent = SPECIALITEMS
1519
			local SIZE = DESTROYER.Size
1520
			CreateSound(3264923, Effects, 10, 1, false)
1521
			for i = 1, 25 do
1522
				Swait()
1523
				DESTROYER.Size = DESTROYER.Size - SIZE/25
1524
			end
1525
			DESTROYER:remove()
1526
		end
1527
	end))
1528
	BLACKHOLE = false
1529
	for i=0, 1, 0.1 / Animation_Speed do
1530
		Swait()
1531
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(14), RAD(0), RAD(15)), 1 / Animation_Speed)
1532
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-10), RAD(25), RAD(-15)), 1 / Animation_Speed)
1533
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(80), RAD(0), RAD(-12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1534
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1535
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1536
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1537
	end
1538
	SPINSPEED = 1
1539
	LOC:Remove()
1540
	ATTACK = false
1541
	Rooted = false
1542
end
1543
function Groan()
1544
	ATTACK = true
1545
	Rooted = true
1546
	local SOUND = CreateSound(1544355717, Head, 10, 1, false)
1547
	SOUND.EmitterSize = 500
1548
	repeat
1549
		Swait()
1550
		SOUND.Parent = Head
1551
		local COLOR = (SOUND.PlaybackLoudness*4)/255
1552
		NEON.Color = C3(COLOR,COLOR,COLOR)
1553
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1554
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-(COLOR*20) - 2.5 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1555
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1, 0.5 + 0.1 * COS(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(-25), RAD(-90)) * ANGLES(RAD(0), RAD(90), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1556
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1, 0 + 0.1 * COS(SINE / 12), -0.5) * ANGLES(RAD(0), RAD(25), RAD(70)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1557
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1558
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1559
	until SOUND.Playing == false
1560
	SOUND:remove()
1561
	ATTACK = false
1562
	Rooted = false
1563
end
1564
function Laugh()
1565
	ATTACK = true
1566
	Rooted = true
1567
	local SOUND = CreateSound(1359796082, Head, 10, 1, false)
1568
	SOUND.EmitterSize = 250
1569
	repeat
1570
		Swait()
1571
		SOUND.Parent = Head
1572
		local COLOR = (SOUND.PlaybackLoudness*4)/255
1573
		NEON.Color = C3(COLOR/6,COLOR/6,COLOR/6)
1574
		if SOUND.TimePosition < 7 then
1575
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-COLOR/2), RAD(0), RAD(-25)), 1 / Animation_Speed)
1576
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 - 2.5 * COS(SINE / 12)), RAD(0), RAD(-5)), 1 / Animation_Speed)
1577
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.35, -0.5) * ANGLES(RAD(150), RAD(3), RAD(-15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1578
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1579
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-(25+COLOR/2) + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1580
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-(5+COLOR/2) + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1581
		elseif (SOUND.TimePosition < 9 and SOUND.TimePosition >= 7) or SOUND.TimePosition > 18 then
1582
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-COLOR/2), RAD(0), RAD(0)), 1 / Animation_Speed)
1583
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1584
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(-25), RAD(25 + 8 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1585
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1586
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-(25+COLOR/2) + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1587
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-(5+COLOR/2) + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1588
		else
1589
			if COLOR < 4 then
1590
				COLOR = 4
1591
			end
1592
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(-COLOR*4), RAD(0), RAD(0)), 1 / Animation_Speed)
1593
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-COLOR*6 - 2.5 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1594
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(45-COLOR*2), RAD(-25), RAD(COLOR*15)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1595
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(45-COLOR*2), RAD(25), RAD(-COLOR*15)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1596
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-(25+COLOR*4) + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1597
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-(5+COLOR*4) + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1598
		end
1599
	until SOUND.Playing == false
1600
	SOUND:remove()
1601
	ATTACK = false
1602
	Rooted = false
1603
end
1604
1605
--//=================================\\
1606
--||	  ASSIGN THINGS TO KEYS
1607
--\\=================================//
1608
1609
function MouseDown(Mouse)
1610
	HOLD = true
1611
	if ATTACK == false then
1612
		CalamityBomb()
1613
	end
1614
end
1615
1616
function MouseUp(Mouse)
1617
HOLD = false
1618
end
1619
1620
function KeyDown(Key)
1621
	KEYHOLD = true
1622
	if Key == "c" and ATTACK == false then
1623
		SingularityBeam()
1624
	end
1625
1626
	if Key == "v" and ATTACK == false then
1627
		CatastrophicRavage()
1628
	end
1629
1630
	if Key == "b" and ATTACK == false then
1631
		RawUnfilteredCatastrophe()
1632
	end
1633
1634
	if Key == "x" and ATTACK == false then
1635
		SupremeCataclysm()
1636
	end
1637
1638
	if Key == "y" and ATTACK == false then
1639
		Groan()
1640
	end
1641
	if Key == "t" and ATTACK == false then
1642
		Laugh()
1643
	end
1644
end
1645
1646
function KeyUp(Key)
1647
	KEYHOLD = false
1648
end
1649
1650
	Mouse.Button1Down:connect(function(NEWKEY)
1651
		MouseDown(NEWKEY)
1652
	end)
1653
	Mouse.Button1Up:connect(function(NEWKEY)
1654
		MouseUp(NEWKEY)
1655
	end)
1656
	Mouse.KeyDown:connect(function(NEWKEY)
1657
		KeyDown(NEWKEY)
1658
	end)
1659
	Mouse.KeyUp:connect(function(NEWKEY)
1660
		KeyUp(NEWKEY)
1661
	end)
1662
1663
--//=================================\\
1664
--\\=================================//
1665
1666
function unanchor()
1667
	for _, c in pairs(Character:GetChildren()) do
1668
		if c:IsA("BasePart") and c ~= RootPart then
1669
			c.Anchored = false
1670
		end
1671
	end
1672
	if UNANCHOR == true then
1673
		RootPart.Anchored = false
1674
	else
1675
		RootPart.Anchored = true
1676
	end
1677
end
1678
1679
--//=================================\\
1680
--||	WRAP THE WHOLE SCRIPT UP
1681
--\\=================================//
1682
1683
Humanoid.Changed:connect(function(Jump)
1684
	if Jump == "Jump" and (Disable_Jump == true) then
1685
		Humanoid.Jump = false
1686
	end
1687
end)
1688
1689
while true do
1690
	Swait()
1691
	script.Parent = WEAPONGUI
1692
	ANIMATE.Parent = nil
1693
	for _,v in next, Humanoid:GetPlayingAnimationTracks() do
1694
	    v:Stop();
1695
	end
1696
	SINE = SINE + CHANGE/2
1697
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1698
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1699
	Humanoid.HipHeight = 2.2
1700
	local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4+Humanoid.HipHeight, Character)
1701
	if HITFLOOR == nil then
1702
		ANIM = "Midair"
1703
		if ATTACK == false then
1704
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(-25), RAD(0), RAD(0)), 1 / Animation_Speed)
1705
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1706
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-35 - 4 * COS(SINE / 6)), RAD(0), RAD(45 + 10 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1707
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-35 - 4 * COS(SINE / 6)), RAD(0), RAD(-45 - 10 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1708
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.3, -0.7) * ANGLES(RAD(-25 + 5 * SIN(SINE / 12)), RAD(90), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
1709
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8, -0.3) * ANGLES(RAD(10), RAD(-80), RAD(0)) * ANGLES(RAD(-1 * SIN(SINE / 6)), RAD(0), RAD(0)), 1 / Animation_Speed)
1710
		end
1711
	elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
1712
		ANIM = "Idle"
1713
		if ATTACK == false then
1714
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1715
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1716
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(-25), RAD(25 + 8 * COS(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1717
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5 + 0.1 * COS(SINE / 12), 0.2) * ANGLES(RAD(0), RAD(25), RAD(-25 - 8 * COS(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1718
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25 + 6 * COS(SINE / 12)), RAD(80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1719
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5 + 2 * COS(SINE / 12)), RAD(-80), RAD(0)) * ANGLES(RAD(2 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1720
		end
1721
	elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
1722
		ANIM = "Walk"
1723
		if ATTACK == false then
1724
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.1 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1725
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 2.5 * COS(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1726
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.5 + 0.1 * COS(SINE / 12), 0.4) * ANGLES(RAD(-37), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1727
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.5 + 0.1 * COS(SINE / 12), 0.4) * ANGLES(RAD(-35), RAD(0), RAD(45)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1728
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.65 - 0.2 * COS(SINE / 12), -0.35) * ANGLES(RAD(-25), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1729
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), 0) * ANGLES(RAD(-5), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1730
		end
1731
	end
1732
	if SPIN == true then
1733
		for E = 1, #RINGS do
1734
			RINGS[E].C0 = Clerp(RINGS[E].C0,CF(0,0,0) * ANGLES(RAD((SINE*5)+(E*7)*SPINSPEED), RAD(15 * COS(SINE / 12)), RAD((SINE*15))-(E*15)*SPINSPEED),0.6)
1735
		end
1736
	end
1737
	unanchor()
1738
	Humanoid.MaxHealth = "inf"
1739
	Humanoid.Health = "inf"
1740
	if Rooted == false then
1741
		Disable_Jump = false
1742
		Humanoid.WalkSpeed = Speed
1743
	elseif Rooted == true then
1744
		Disable_Jump = true
1745
		Humanoid.WalkSpeed = 0
1746
	end
1747
	if sick.Parent ~= RootPart then
1748
		sick = IT("Sound",RootPart)
1749
	end
1750
	Humanoid.DisplayDistanceType = "None"
1751
	Humanoid.Name = "NONHUM"
1752
	sick.SoundId = "rbxassetid://608726256"
1753
	sick.Looped = true
1754
	sick.Pitch = 1.2
1755
	sick.Volume = 4
1756
	sick.Playing = true
1757
	TAGETXT.Rotation = MRANDOM(-10,10)/5
1758
end
1759
1760
--//=================================\\
1761
--\\=================================//
1762
1763
1764
1765
1766
1767
--//====================================================\\--
1768
--||			  		 END OF SCRIPT
1769
--\\====================================================//--