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