View difference between Paste ID: Vs8wrG2j and VRwT0rTq
SHOW: | | - or go back to the newest paste.
1-
--fixed by allahuahkbar
1+
--https://github.com/Mokiros/roblox-FE-compatibility
2
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
3
local Player,game,owner = owner,game
4
local RealPlayer = Player
5
do
6
	print("FE Compatibility code V2 by Mokiros")
7
	local RealPlayer = RealPlayer
8
	script.Parent = RealPlayer.Character
9
10
	--Fake event to make stuff like Mouse.KeyDown work
11
	local Disconnect_Function = function(this)
12
		this[1].Functions[this[2]] = nil
13
	end
14
	local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
15
	local FakeEvent_Metatable = {__index={
16
		Connect = function(this,f)
17
			local i = tostring(math.random(0,10000))
18
			while this.Functions[i] do
19
				i = tostring(math.random(0,10000))
20
			end
21
			this.Functions[i] = f
22
			return setmetatable({this,i},Disconnect_Metatable)
23
		end
24
	}}
25
	FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
26
	local function fakeEvent()
27
		return setmetatable({Functions={}},FakeEvent_Metatable)
28
	end
29
30
	--Creating fake input objects with fake variables
31
    local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
32
    FakeMouse.keyUp = FakeMouse.KeyUp
33
    FakeMouse.keyDown = FakeMouse.KeyDown
34
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
35
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
36
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
37
	end}
38
	--Merged 2 functions into one by checking amount of arguments
39
	CAS.UnbindAction = CAS.BindAction
40
41
	--This function will trigger the events that have been :Connect()'ed
42
	local function TriggerEvent(self,ev,...)
43
		for _,f in pairs(self[ev].Functions) do
44
			f(...)
45
		end
46
	end
47
	FakeMouse.TriggerEvent = TriggerEvent
48
	UIS.TriggerEvent = TriggerEvent
49
50
	--Client communication
51
	local Event = Instance.new("RemoteEvent")
52
	Event.Name = "UserInput_Event"
53
	Event.OnServerEvent:Connect(function(plr,io)
54
	    if plr~=RealPlayer then return end
55
		FakeMouse.Target = io.Target
56
		FakeMouse.Hit = io.Hit
57
		if not io.isMouse then
58
			local b = io.UserInputState == Enum.UserInputState.Begin
59
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
60
				return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
61
			end
62
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
63
				return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
64
			end
65
			for _,t in pairs(CAS.Actions) do
66
				for _,k in pairs(t.Keys) do
67
					if k==io.KeyCode then
68
						t.Function(t.Name,io.UserInputState,io)
69
					end
70
				end
71
			end
72
			FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
73
			UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
74
	    end
75
	end)
76
	Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
77
	local Mouse = owner:GetMouse()
78
	local UIS = game:GetService("UserInputService")
79
	local input = function(io,RobloxHandled)
80
		if RobloxHandled then return end
81
		--Since InputObject is a client-side instance, we create and pass table instead
82
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
83
	end
84
	UIS.InputBegan:Connect(input)
85
	UIS.InputEnded:Connect(input)
86
	local h,t
87
	--Give the server mouse data every second frame, but only if the values changed
88
	--If player is not moving their mouse, client won't fire events
89
	local HB = game:GetService("RunService").Heartbeat
90
	while true do
91
		if h~=Mouse.Hit or t~=Mouse.Target then
92
			h,t=Mouse.Hit,Mouse.Target
93
			Event:FireServer({isMouse=true,Target=t,Hit=h})
94
		end
95
		--Wait 2 frames
96
		for i=1,2 do
97
			HB:Wait()
98
		end
99
	end]==],script)
100
101
	----Sandboxed game object that allows the usage of client-side methods and services
102
	--Real game object
103
	local RealGame = game
104
105
	--Metatable for fake service
106
	local FakeService_Metatable = {
107
		__index = function(self,k)
108
			local s = rawget(self,"_RealService")
109
			if s then
110
				return typeof(s[k])=="function"
111
				and function(_,...)return s[k](s,...)end or s[k]
112
			end
113
		end,
114
		__newindex = function(self,k,v)
115
			local s = rawget(self,"_RealService")
116
			if s then s[k]=v end
117
		end
118
	}
119
	local function FakeService(t,RealService)
120
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
121
		return setmetatable(t,FakeService_Metatable)
122
	end
123
124
	--Fake game object
125
	local FakeGame = {
126
		GetService = function(self,s)
127
			return rawget(self,s) or RealGame:GetService(s)
128
		end,
129
		Players = FakeService({
130
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
131
		},"Players"),
132
		UserInputService = FakeService(UIS,"UserInputService"),
133
		ContextActionService = FakeService(CAS,"ContextActionService"),
134
		RunService = FakeService({
135
			_btrs = {},
136
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
137
			BindToRenderStep = function(self,name,_,fun)
138
				self._btrs[name] = self.Heartbeat:Connect(fun)
139
			end,
140
			UnbindFromRenderStep = function(self,name)
141
				self._btrs[name]:Disconnect()
142
			end,
143
		},"RunService")
144
	}
145
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
146
	FakeGame.service = FakeGame.GetService
147
	FakeService(FakeGame,game)
148
	--Changing owner to fake player object to support owner:GetMouse()
149
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
150
end --fixed by allahuahkbar
151
--made by shackluster
152
153
--//                     			\\--
154
--||            MADE BY SHACKLUSTER        ||--
155
--||            FIXED BY ALLAHUAHKBAR      ||--
156
--||            ARCHANGEL    		       ||--
157
--\\                     			//--
158
159
--Converted with ttyyuu12345's model to script plugin v4
160
function sandbox(var,func)
161
	local env = getfenv(func)
162
	local newenv = setmetatable({},{
163
		__index = function(self,k)
164
			if k=="script" then
165
				return var
166
			else
167
				return env[k]
168
			end
169
		end,
170
	})
171
	setfenv(func,newenv)
172
	return func
173
end
174
function NS(...)
175
	local tab = {...}
176
	local fat = {}
177
	for i = 1, #tab do
178
		local v = tab[i]
179
		table.insert(fat,NumberSequenceKeypoint.new(v[1],v[2]))
180
	end
181
	return NumberSequence.new(fat);	
182
end
183
184
cors = {}
185
mas = Instance.new("Model",game:GetService("Lighting"))
186
ParticleEmitter0 = Instance.new("ParticleEmitter")
187
ParticleEmitter1 = Instance.new("ParticleEmitter")
188
ParticleEmitter2 = Instance.new("ParticleEmitter")
189
ParticleEmitter0.Name = "Flames"
190
ParticleEmitter0.Parent = mas
191
ParticleEmitter0.Speed = NumberRange.new(0, 15)
192
ParticleEmitter0.Rotation = NumberRange.new(0, 360)
193
ParticleEmitter0.Enabled = false
194
ParticleEmitter0.LightEmission = 1
195
ParticleEmitter0.LightInfluence = 1
196
ParticleEmitter0.Transparency = NumberSequence.new(1,0)
197
ParticleEmitter0.ZOffset = 1
198
ParticleEmitter0.Size = NumberSequence.new(10,0)
199
ParticleEmitter0.EmissionDirection = Enum.NormalId.Back
200
ParticleEmitter0.Lifetime = NumberRange.new(0, 2)
201
ParticleEmitter0.Rate = 9999
202
ParticleEmitter0.RotSpeed = NumberRange.new(-25, 25)
203
ParticleEmitter0.SpreadAngle = Vector2.new(25, 25)
204
ParticleEmitter0.VelocitySpread = 25
205
ParticleEmitter0.Texture = "rbxasset://textures/particles/sparkles_main.dds"
206
ParticleEmitter1.Name = "Death"
207
ParticleEmitter1.Parent = mas
208
ParticleEmitter1.Rotation = NumberRange.new(0, 360)
209
ParticleEmitter1.Enabled = false
210
ParticleEmitter1.LightEmission = 0.75
211
ParticleEmitter1.Texture = "rbxasset://textures/particles/sparkles_main.dds"
212
ParticleEmitter1.Transparency = NS({0,0.47540986537933},{.168,0.37704920768738},{.457,0.25683063268661},{.803,0.4426229596138},{.948,0.62841534614563},{1,1})
213
ParticleEmitter1.ZOffset = 0.5
214
ParticleEmitter1.Size = NS({0,1},{.656,1.8032789230347},{.843,1.4207655191422},{1,0})
215
ParticleEmitter1.Acceleration = Vector3.new(0, 35, 0)
216
ParticleEmitter1.Drag = 5
217
ParticleEmitter1.EmissionDirection = Enum.NormalId.Right
218
ParticleEmitter1.Lifetime = NumberRange.new(0, 1)
219
ParticleEmitter1.Rate = 999
220
ParticleEmitter1.RotSpeed = NumberRange.new(-56, 56)
221
ParticleEmitter1.SpreadAngle = Vector2.new(360, 360)
222
ParticleEmitter1.VelocitySpread = 360
223
ParticleEmitter2.Name = "Wing"
224
ParticleEmitter2.Parent = mas
225
ParticleEmitter2.Rotation = NumberRange.new(0, 360)
226
ParticleEmitter2.Enabled = false
227
ParticleEmitter2.LightEmission = 1
228
ParticleEmitter2.Texture = "rbxasset://textures/particles/explosion01_implosion_main.dds"
229
ParticleEmitter2.Size = NS({0,0.05464494228363},{.193,1.0382515192032},{.352,1.3661205768585},{1,0})
230
ParticleEmitter2.Acceleration = Vector3.new(0, -7, 15)
231
ParticleEmitter2.Lifetime = NumberRange.new(0.80000001192093, 0.80000001192093)
232
ParticleEmitter2.LockedToPart = true
233
ParticleEmitter2.Rate = 300
234
235
for i,v in pairs(mas:GetChildren()) do
236
	v.Parent = script
237
	pcall(function() v:MakeJoints() end)
238
end
239
mas:Destroy()
240
for i,v in pairs(cors) do
241
	spawn(function()
242
		pcall(v)
243
	end)
244
end
245
246
247
New = function(Object, Parent, Name, Data)
248
	local Object = Instance.new(Object)
249
	for Index, Value in pairs(Data or {}) do
250
		Object[Index] = Value
251
	end
252
	Object.Parent = Parent
253
	Object.Name = Name
254
	return Object
255
end
256
257
258
259
260
wait(0.2)
261
Player = game:GetService("Players").LocalPlayer
262
PlayerGui = Player.PlayerGui
263
Cam = workspace.CurrentCamera
264
Backpack = Player.Backpack
265
Character = Player.Character
266
Humanoid = Character.Humanoid
267
for _, v in next, Humanoid:GetPlayingAnimationTracks() do
268
	v:Stop()
269
end
270
Mouse = Player:GetMouse()
271
RootPart = Character.HumanoidRootPart
272
Torso = Character.Torso
273
Head = Character.Head
274
RightArm = Character["Right Arm"]
275
LeftArm = Character["Left Arm"]
276
RightLeg = Character["Right Leg"]
277
LeftLeg = Character["Left Leg"]
278
RootJoint = RootPart.RootJoint
279
Neck = Torso.Neck
280
RightShoulder = Torso["Right Shoulder"]
281
LeftShoulder = Torso["Left Shoulder"]
282
RightHip = Torso["Right Hip"]
283
LeftHip = Torso["Left Hip"]
284
local sick = Instance.new("Sound", Character)
285
wait(1)
286
IT = Instance.new
287
CF = CFrame.new
288
VT = Vector3.new
289
RAD = math.rad
290
C3 = Color3.new
291
UD2 = UDim2.new
292
BRICKC = BrickColor.new
293
ANGLES = CFrame.Angles
294
EULER = CFrame.fromEulerAnglesXYZ
295
COS = math.cos
296
ACOS = math.acos
297
SIN = math.sin
298
ASIN = math.asin
299
ABS = math.abs
300
MRANDOM = math.random
301
FLOOR = math.floor
302
Animation_Speed = 3
303
Frame_Speed = 0.016666666666666666
304
local Speed = 70
305
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
306
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
307
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
308
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
309
local DAMAGEMULTIPLIER = 1
310
local ANIM = "Idle"
311
local ATTACK = false
312
local EQUIPPED = false
313
local HOLD = false
314
local COMBO = 1
315
local Rooted = false
316
local SINE = 0
317
local KEYHOLD = false
318
local CHANGE = 2 / Animation_Speed
319
local WALKINGANIM = false
320
local VALUE1 = false
321
local VALUE2 = false
322
local ROBLOXIDLEANIMATION = IT("Animation")
323
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
324
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
325
local WEAPONGUI = IT("ScreenGui", PlayerGui)
326
WEAPONGUI.Name = "Weapon GUI"
327
local Effects = IT("Folder", Character)
328
Effects.Name = "Effects"
329
local ANIMATOR = Humanoid.Animator
330
local ANIMATE = Character.Animate
331
local UNANCHOR = true
332
ArtificialHB = Instance.new("BindableEvent", script)
333
ArtificialHB.Name = "ArtificialHB"
334
script:WaitForChild("ArtificialHB")
335
frame = Frame_Speed
336
tf = 0
337
allowframeloss = false
338
tossremainder = false
339
lastframe = tick()
340
script.ArtificialHB:Fire()
341
game:GetService("RunService").Heartbeat:connect(function(s, p)
342
	tf = tf + s
343
	if tf >= frame then
344
		if allowframeloss then
345
			script.ArtificialHB:Fire()
346
			lastframe = tick()
347
		else
348
			for i = 1, math.floor(tf / frame) do
349
				script.ArtificialHB:Fire()
350
			end
351
			lastframe = tick()
352
		end
353
		if tossremainder then
354
			tf = 0
355
		else
356
			tf = tf - frame * math.floor(tf / frame)
357
		end
358
	end
359
end)
360
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
361
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
362
end
363
function PositiveAngle(NUMBER)
364
	if NUMBER >= 0 then
365
		NUMBER = 0
366
	end
367
	return NUMBER
368
end
369
function NegativeAngle(NUMBER)
370
	if NUMBER <= 0 then
371
		NUMBER = 0
372
	end
373
	return NUMBER
374
end
375
function Swait(NUMBER)
376
	if NUMBER == 0 or NUMBER == nil then
377
		ArtificialHB.Event:wait()
378
	else
379
		for i = 1, NUMBER do
380
			ArtificialHB.Event:wait()
381
		end
382
	end
383
end
384
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
385
	local NEWMESH = IT(MESH)
386
	if MESH == "SpecialMesh" then
387
		NEWMESH.MeshType = MESHTYPE
388
		if MESHID ~= "nil" and MESHID ~= "" then
389
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id=" .. MESHID
390
		end
391
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
392
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id=" .. TEXTUREID
393
		end
394
	end
395
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
396
	NEWMESH.Scale = SCALE
397
	NEWMESH.Parent = PARENT
398
	return NEWMESH
399
end
400
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
401
	local NEWPART = IT("Part")
402
	NEWPART.formFactor = FORMFACTOR
403
	NEWPART.Reflectance = REFLECTANCE
404
	NEWPART.Transparency = TRANSPARENCY
405
	NEWPART.CanCollide = false
406
	NEWPART.Locked = true
407
	NEWPART.Anchored = true
408
	if ANCHOR == false then
409
		NEWPART.Anchored = false
410
	end
411
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
412
	NEWPART.Name = NAME
413
	NEWPART.Size = SIZE
414
	NEWPART.Position = Torso.Position
415
	NEWPART.Material = MATERIAL
416
	NEWPART:BreakJoints()
417
	NEWPART.Parent = PARENT
418
	return NEWPART
419
end
420
local weldBetween = function(a, b)
421
	local weldd = Instance.new("ManualWeld")
422
	weldd.Part0 = a
423
	weldd.Part1 = b
424
	weldd.C0 = CFrame.new()
425
	weldd.C1 = b.CFrame:inverse() * a.CFrame
426
	weldd.Parent = a
427
	return weldd
428
end
429
function QuaternionFromCFrame(cf)
430
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
431
	local trace = m00 + m11 + m22
432
	if trace > 0 then
433
		local s = math.sqrt(1 + trace)
434
		local recip = 0.5 / s
435
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
436
	else
437
		local i = 0
438
		if m00 < m11 then
439
			i = 1
440
		end
441
		if m22 > (i == 0 and m00 or m11) then
442
			i = 2
443
		end
444
		if i == 0 then
445
			local s = math.sqrt(m00 - m11 - m22 + 1)
446
			local recip = 0.5 / s
447
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
448
		elseif i == 1 then
449
			local s = math.sqrt(m11 - m22 - m00 + 1)
450
			local recip = 0.5 / s
451
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
452
		elseif i == 2 then
453
			local s = math.sqrt(m22 - m00 - m11 + 1)
454
			local recip = 0.5 / s
455
			return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
456
		end
457
	end
458
end
459
function QuaternionToCFrame(px, py, pz, x, y, z, w)
460
	local xs, ys, zs = x + x, y + y, z + z
461
	local wx, wy, wz = w * xs, w * ys, w * zs
462
	local xx = x * xs
463
	local xy = x * ys
464
	local xz = x * zs
465
	local yy = y * ys
466
	local yz = y * zs
467
	local zz = z * zs
468
	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))
469
end
470
function QuaternionSlerp(a, b, t)
471
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
472
	local startInterp, finishInterp
473
	if cosTheta >= 1.0E-4 then
474
		if 1 - cosTheta > 1.0E-4 then
475
			local theta = ACOS(cosTheta)
476
			local invSinTheta = 1 / SIN(theta)
477
			startInterp = SIN((1 - t) * theta) * invSinTheta
478
			finishInterp = SIN(t * theta) * invSinTheta
479
		else
480
			startInterp = 1 - t
481
			finishInterp = t
482
		end
483
	elseif 1 + cosTheta > 1.0E-4 then
484
		local theta = ACOS(-cosTheta)
485
		local invSinTheta = 1 / SIN(theta)
486
		startInterp = SIN((t - 1) * theta) * invSinTheta
487
		finishInterp = SIN(t * theta) * invSinTheta
488
	else
489
		startInterp = t - 1
490
		finishInterp = t
491
	end
492
	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
493
end
494
function Clerp(a, b, t)
495
	local qa = {
496
		QuaternionFromCFrame(a)
497
	}
498
	local qb = {
499
		QuaternionFromCFrame(b)
500
	}
501
	local ax, ay, az = a.x, a.y, a.z
502
	local bx, by, bz = b.x, b.y, b.z
503
	local _t = 1 - t
504
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
505
end
506
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
507
	local frame = IT("Frame")
508
	frame.BackgroundTransparency = TRANSPARENCY
509
	frame.BorderSizePixel = BORDERSIZEPIXEL
510
	frame.Position = POSITION
511
	frame.Size = SIZE
512
	frame.BackgroundColor3 = COLOR
513
	frame.BorderColor3 = BORDERCOLOR
514
	frame.Name = NAME
515
	frame.Parent = PARENT
516
	return frame
517
end
518
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
519
	local label = IT("TextLabel")
520
	label.BackgroundTransparency = 1
521
	label.Size = UD2(1, 0, 1, 0)
522
	label.Position = UD2(0, 0, 0, 0)
523
	label.TextColor3 = TEXTCOLOR
524
	label.TextStrokeTransparency = STROKETRANSPARENCY
525
	label.TextTransparency = TRANSPARENCY
526
	label.FontSize = TEXTFONTSIZE
527
	label.Font = TEXTFONT
528
	label.BorderSizePixel = BORDERSIZEPIXEL
529
	label.TextScaled = false
530
	label.Text = TEXT
531
	label.Name = NAME
532
	label.Parent = PARENT
533
	return label
534
end
535
function NoOutlines(PART)
536
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
537
end
538
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
539
	local NEWWELD = IT(TYPE)
540
	NEWWELD.Part0 = PART0
541
	NEWWELD.Part1 = PART1
542
	NEWWELD.C0 = C0
543
	NEWWELD.C1 = C1
544
	NEWWELD.Parent = PARENT
545
	return NEWWELD
546
end
547
local S = IT("Sound")
548
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
549
	local NEWSOUND
550
	coroutine.resume(coroutine.create(function()
551
		NEWSOUND = S:Clone()
552
		NEWSOUND.Parent = PARENT
553
		NEWSOUND.EmitterSize = VOLUME * 3
554
		NEWSOUND.Volume = VOLUME
555
		NEWSOUND.Pitch = PITCH
556
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id=" .. ID
557
		NEWSOUND:play()
558
		if DOESLOOP == true then
559
			NEWSOUND.Looped = true
560
		else
561
			repeat
562
				wait(1)
563
			until NEWSOUND.Playing == false
564
			NEWSOUND:remove()
565
		end
566
	end))
567
	return NEWSOUND
568
end
569
function CFrameFromTopBack(at, top, back)
570
	local right = top:Cross(back)
571
	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)
572
end
573
function WACKYEFFECT(Table)
574
	local TYPE = Table.EffectType or "Sphere"
575
	local SIZE = Table.Size or VT(1, 1, 1)
576
	local ENDSIZE = Table.Size2 or VT(0, 0, 0)
577
	local TRANSPARENCY = Table.Transparency or 0
578
	local ENDTRANSPARENCY = Table.Transparency2 or 1
579
	local CFRAME = Table.CFrame or Torso.CFrame
580
	local MOVEDIRECTION = Table.MoveToPos or nil
581
	local ROTATION1 = Table.RotationX or 0
582
	local ROTATION2 = Table.RotationY or 0
583
	local ROTATION3 = Table.RotationZ or 0
584
	local MATERIAL = Table.Material or "Neon"
585
	local COLOR = Table.Color or C3(1, 1, 1)
586
	local TIME = Table.Time or 45
587
	local SOUNDID = Table.SoundID or nil
588
	local SOUNDPITCH = Table.SoundPitch or nil
589
	local SOUNDVOLUME = Table.SoundVolume or nil
590
	coroutine.resume(coroutine.create(function()
591
		local PLAYSSOUND = false
592
		local SOUND
593
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1, 1, 1), true)
594
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
595
			PLAYSSOUND = true
596
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
597
		end
598
		EFFECT.Color = COLOR
599
		local MSH
600
		if TYPE == "Sphere" then
601
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0, 0, 0))
602
		elseif TYPE == "Block" then
603
			MSH = IT("BlockMesh", EFFECT)
604
			MSH.Scale = VT(SIZE.X, SIZE.X, SIZE.X)
605
		elseif TYPE == "Wave" then
606
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0, 0, -SIZE.X / 8))
607
		elseif TYPE == "Ring" then
608
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X, SIZE.X, 0.1), VT(0, 0, 0))
609
		elseif TYPE == "Slash" then
610
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X / 10, 0, SIZE.X / 10), VT(0, 0, 0))
611
		elseif TYPE == "Round Slash" then
612
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X / 10, 0, SIZE.X / 10), VT(0, 0, 0))
613
		elseif TYPE == "Swirl" then
614
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0, 0, 0))
615
		elseif TYPE == "Skull" then
616
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0, 0, 0))
617
		elseif TYPE == "Crystal" then
618
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0, 0, 0))
619
		end
620
		if MSH ~= nil then
621
			local MOVESPEED
622
			if MOVEDIRECTION ~= nil then
623
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude / TIME
624
			end
625
			local GROWTH = SIZE - ENDSIZE
626
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
627
			if TYPE == "Block" then
628
				EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
629
			else
630
				EFFECT.CFrame = CFRAME
631
			end
632
			for LOOP = 1, TIME + 1 do
633
				Swait()
634
				MSH.Scale = MSH.Scale - GROWTH / TIME
635
				if TYPE == "Wave" then
636
					MSH.Offset = VT(0, 0, -MSH.Scale.X / 8)
637
				end
638
				EFFECT.Transparency = EFFECT.Transparency - TRANS / TIME
639
				if TYPE == "Block" then
640
					EFFECT.CFrame = CFRAME * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)))
641
				else
642
					EFFECT.CFrame = EFFECT.CFrame * ANGLES(RAD(ROTATION1), RAD(ROTATION2), RAD(ROTATION3))
643
				end
644
				if MOVEDIRECTION ~= nil then
645
					local ORI = EFFECT.Orientation
646
					EFFECT.CFrame = CF(EFFECT.Position, MOVEDIRECTION) * CF(0, 0, -MOVESPEED)
647
					EFFECT.Orientation = ORI
648
				end
649
			end
650
			if PLAYSSOUND == false then
651
				EFFECT:remove()
652
			else
653
				repeat
654
					Swait()
655
				until SOUND.Playing == false
656
				EFFECT:remove()
657
			end
658
		elseif PLAYSSOUND == false then
659
			EFFECT:remove()
660
		else
661
			repeat
662
				Swait()
663
			until SOUND.Playing == false
664
			EFFECT:remove()
665
		end
666
	end))
667
end
668
function MakeForm(PART, TYPE)
669
	if TYPE == "Cyl" then
670
		local MSH = IT("CylinderMesh", PART)
671
	elseif TYPE == "Ball" then
672
		local MSH = IT("SpecialMesh", PART)
673
		MSH.MeshType = "Sphere"
674
	elseif TYPE == "Wedge" then
675
		local MSH = IT("SpecialMesh", PART)
676
		MSH.MeshType = "Wedge"
677
	end
678
end
679
Debris = game:GetService("Debris")
680
function CastProperRay(StartPos, EndPos, Distance, Ignore)
681
	local DIRECTION = CF(StartPos, EndPos).lookVector
682
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
683
end
684
function turnto(position)
685
	RootPart.CFrame = CFrame.new(RootPart.CFrame.p, VT(position.X, RootPart.Position.Y, position.Z)) * CFrame.new(0, 0, 0)
686
end
687
local DECAL = IT("Decal")
688
function MakeRing()
689
	local RING = CreatePart(3, Effects, "Neon", 0, 1, BRICKC("Pearl"), "MagicRing", VT(0, 0, 0), true)
690
	local MSH = IT("BlockMesh", RING)
691
	local TOP = DECAL:Clone()
692
	local BOTTOM = DECAL:Clone()
693
	TOP.Parent = RING
694
	BOTTOM.Parent = RING
695
	TOP.Face = "Top"
696
	BOTTOM.Face = "Bottom"
697
	TOP.Texture = "http://www.roblox.com/asset/?id=127817121"
698
	BOTTOM.Texture = "http://www.roblox.com/asset/?id=127817121"
699
	local function REMOVE()
700
		coroutine.resume(coroutine.create(function()
701
			local SIZE = MSH.Scale.X
702
			for i = 1, 35 do
703
				Swait()
704
				MSH.Scale = MSH.Scale - VT(SIZE, 0, SIZE) / 60
705
				TOP.Transparency = TOP.Transparency + 0.02857142857142857
706
				BOTTOM.Transparency = BOTTOM.Transparency + 0.02857142857142857
707
				RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(-5), RAD(0))
708
			end
709
			RING:remove()
710
		end))
711
	end
712
	return RING, MSH, REMOVE
713
end
714
function SHAKECAM(POSITION, RANGE, INTENSITY, TIME)
715
	local TORSO = Torso
716
	local HUM = Humanoid
717
	if TORSO and RANGE >= (TORSO.Position - POSITION).Magnitude then
718
		coroutine.wrap(function()
719
			VT = Vector3.new
720
			MRANDOM = math.random
721
			local A = TIME
722
			local B = INTENSITY
723
			local C = true
724
			local HUMANOID = Humanoid
725
			local TIMER = A or 35
726
			local SHAKE = B or 5
727
			local FADE = C or true
728
			if HUMANOID then
729
				local FADER = SHAKE / TIMER
730
				for i = 1, TIMER do
731
					wait()
732
					HUMANOID.CameraOffset = VT(MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10)
733
				end
734
				HUMANOID.CameraOffset = VT(0, 0, 0)
735
			end
736
737
		end)()
738
	end
739
end
740
741
local SKILLTEXTCOLOR = C3(0, 0, 0)
742
local SKILLFONT = "SciFi"
743
local SKILLTEXTSIZE = 7
744
local WING = Instance.new("Attachment")
745
local WING1 = WING:Clone()
746
local WING2 = WING:Clone()
747
WING1.Parent = Torso
748
WING2.Parent = Torso
749
WING1.Position = VT(-1, 0.6, 1)
750
WING2.Position = VT(1, 0.6, 1)
751
WING1.Orientation = VT(0, 0, 0)
752
WING2.Orientation = VT(0, 0, 0)
753
local WINGS = {}
754
for i = 1, 5 do
755
	local PARTICLES = script.Wing:Clone()
756
	PARTICLES.Parent = WING1
757
	PARTICLES.Enabled = true
758
	PARTICLES.Acceleration = VT(-i * 10, -5 - i * 1.5, 15)
759
	table.insert(WINGS, {
760
		PARTICLES,
761
		VT(-i * 30, 0, 25)
762
	})
763
end
764
for i = 1, 5 do
765
	local PARTICLES = script.Wing:Clone()
766
	PARTICLES.Parent = WING2
767
	PARTICLES.Enabled = true
768
	PARTICLES.Acceleration = VT(i * 10, -5 - i * 1.5, 15)
769
	table.insert(WINGS, {
770
		PARTICLES,
771
		VT(i * 30, 0, 25)
772
	})
773
end
774
775
Base = New("Part",Head,"Base",{BrickColor = BrickColor.new("Institutional white"),Material = Enum.Material.SmoothPlastic,Transparency = 1,Transparency = 1,Size = Vector3.new(2, 1, 1),CFrame = CFrame.new(4.56395578, 30.9732971, 96.5572357, -1, 0, -3.7252903e-09, 0, 1, 0, -3.7252903e-09, 0, -1.00000012),CanCollide = false,BottomSurface = Enum.SurfaceType.Smooth,TopSurface = Enum.SurfaceType.Smooth,Color = Color3.new(0,0,0),})
776
Mesh = New("SpecialMesh",Base,"Mesh",{Scale = Vector3.new(1,1,1),})
777
Hood = New("Part",Head,"Hood",{Size = Vector3.new(2.04900002, 2.18899989, 1.97500002),CFrame = CFrame.new(4.59299994, 31.1469994, 96.4520035, -0.99907124, -0.00109502568, 0.043075189, -0.00244226633, 0.999509037, -0.0312363114, -0.0430198386, -0.0313125029, -0.998583436),BottomSurface = Enum.SurfaceType.Smooth,TopSurface = Enum.SurfaceType.Smooth,})
778
Mesh = New("SpecialMesh",Hood,"Mesh",{MeshId = "rbxassetid://93129244",TextureId = "rbxassetid://94020325",MeshType = Enum.MeshType.FileMesh,})
779
mot = New("Motor",Hood,"mot",{Part0 = Hood,Part1 = Base,C0 = CFrame.new(0, 0, 0, -0.99907124, -0.00244226633, -0.0430198386, -0.00109502568, 0.999509037, -0.0313125029, 0.043075189, -0.0312363114, -0.998583436),C1 = CFrame.new(-0.0290441513, 0.17370224, 0.105232239, -1, 0, 0, 0, 1, 0, 0, 0, -1),})
780
781
CreateWeldOrSnapOrMotor('Weld', Head, Head, Base, CF(), CF())
782
783
Head.Color = C3(0,0,0)
784
785
local DParticles = script.Death
786
DParticles:remove()
787
DParticles.Name = "ArchangelDeathParticles"
788
local BODY = {}
789
for _, c in pairs(Character:GetDescendants()) do
790
	if c:IsA("BasePart") and c.Name ~= "Handle" then
791
		if c ~= RootPart and c ~= Torso and c ~= Head and c ~= RightArm and c ~= LeftArm and c ~= RightLeg and c ~= LeftLeg then
792
			c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
793
		end
794
		table.insert(BODY, {
795
			c,
796
			c.Parent,
797
			c.Material,
798
			c.Color,
799
			c.Transparency
800
		})
801
	elseif c:IsA("JointInstance") then
802
		table.insert(BODY, {
803
			c,
804
			c.Parent,
805
			nil,
806
			nil,
807
			nil
808
		})
809
	end
810
end
811
for e = 1, #BODY do
812
	if BODY[e] ~= nil then
813
		do
814
			local STUFF = BODY[e]
815
			local PART = STUFF[1]
816
			local PARENT = STUFF[2]
817
			local MATERIAL = STUFF[3]
818
			local COLOR = STUFF[4]
819
			local TRANSPARENCY = STUFF[5]
820
			if PART.ClassName == "Part" and PART ~= RootPart then
821
				PART.Material = MATERIAL
822
				PART.Color = COLOR
823
				PART.Transparency = TRANSPARENCY
824
			end
825
			PART.AncestryChanged:Connect(function()
826
				PART.Parent = PARENT
827
			end)
828
		end
829
	end
830
end
831
function refit()
832
	Character.Parent = workspace
833
	for e = 1, #BODY do
834
		if BODY[e] ~= nil then
835
			local STUFF = BODY[e]
836
			local PART = STUFF[1]
837
			local PARENT = STUFF[2]
838
			local MATERIAL = STUFF[3]
839
			local COLOR = STUFF[4]
840
			local TRANSPARENCY = STUFF[5]
841
			if PART:IsA("BasePart") and PART ~= RootPart then
842
				PART.Material = MATERIAL
843
				PART.Color = COLOR
844
				PART.Transparency = TRANSPARENCY
845
			end
846
			if PART.Parent ~= PARENT then
847
				Humanoid:remove()
848
				PART.Parent = PARENT
849
				Humanoid = IT("Humanoid", Character)
850
			end
851
		end
852
	end
853
end
854
Humanoid.Died:connect(function()
855
	refit()
856
end)
857
858
859
local SKILLTEXTCOLOR = C3(1, 1, 1)
860
local SKILLFONT = "Fantasy"
861
local SKILLTEXTSIZE = 3
862
local ATTACKS = {
863
	"Z - Holy Smite",
864
	"B - Divine Ravage",
865
	"C - Divine Earthquake",
866
	"V - Beam of Light",
867
	"X - Divine Nova"
868
}
869
for i = 1, #ATTACKS do
870
	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")
871
	local SKILLTEXT = CreateLabel(SKILLFRAME, "[" .. ATTACKS[i] .. "]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0, "Skill text")
872
	SKILLTEXT.TextXAlignment = "Right"
873
end
874
875
function ApplyAoE(POSITION, RANGE)
876
	local PARTS = {}
877
	for index, CHILD in pairs(workspace:GetDescendants()) do
878
		if CHILD.ClassName == "Model" and CHILD ~= Character then
879
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
880
			if HUM then
881
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
882
				if TORSO and HUM.Health > 0 and RANGE >= (TORSO.Position - POSITION).Magnitude then
883
					CHILD:BreakJoints()
884
					for index, PART in pairs(CHILD:GetChildren()) do
885
						if PART:IsA("BasePart") and PART.Name ~= "HumanoidRootPart" then
886
							local P = DParticles:Clone()
887
							P.Parent = PART
888
							P.Enabled = true
889
							P.Color = ColorSequence.new(PART.Color, C3(1, 1, 1))
890
							PART.Anchored = true
891
							table.insert(PARTS, {PART, P})
892
						end
893
					end
894
				end
895
			end
896
		elseif CHILD:IsA("BasePart") and CHILD.Parent.Parent ~= Character and CHILD.Parent:FindFirstChildOfClass("Humanoid") == nil and CHILD:FindFirstChild("ewdfrfgrwefd") == nil and CHILD.Size.Magnitude < RANGE * 2 and CHILD.Size.Magnitude < 200 and RANGE > (CHILD.Position - POSITION).Magnitude then
897
			local FOLDER = IT("Folder", CHILD)
898
			FOLDER.Name = "ewdfrfgrwefd"
899
			local P = DParticles:Clone()
900
			P.Parent = CHILD
901
			P.Enabled = true
902
			CHILD:BreakJoints()
903
			CHILD.CanCollide = false
904
			CHILD.Anchored = true
905
			P.Rate = math.ceil(CHILD.Size.Magnitude / 2)
906
			P.Color = ColorSequence.new(CHILD.Color, C3(1, 1, 1))
907
			table.insert(PARTS, {CHILD, P})
908
		end
909
	end
910
	coroutine.resume(coroutine.create(function()
911
		if #PARTS > 0 then
912
			for i = 1, 85 do
913
				Swait()
914
				for E = 1, #PARTS do
915
					local F = PARTS[E]
916
					local A = F[1]
917
					local B = F[2]
918
					A.Transparency = A.Transparency + 0.011764705882352941
919
					B.Rate = math.ceil(B.Rate * 1.2)
920
					for index, E in pairs(A:GetChildren()) do
921
						if E:IsA("Decal") or E:IsA("Texture") then
922
							E.Transparency = E.Transparency + 0.011764705882352941
923
						elseif E:IsA("JointInstance") then
924
							E:remove()
925
						elseif E:IsA("Light") or E:IsA("ParticleEmitter") and E ~= B and E.Name ~= "ArchangelDeathParticles" or E:IsA("Fire") or E:IsA("Sparkles") or E:IsA("Smoke") then
926
							E.Enabled = false
927
						end
928
					end
929
				end
930
			end
931
			for E = 1, #PARTS do
932
				local F = PARTS[E]
933
				local A = F[1]
934
				local B = F[2]
935
				B.Enabled = false
936
				Debris:AddItem(A, 3)
937
			end
938
		end
939
	end))
940
end
941
function Smite()
942
	local RING, MESH, DELET = MakeRing()
943
	local POS = Mouse.Hit.p
944
	RING.CFrame = CF(Mouse.Hit.p + VT(MRANDOM(-25, 25), 200, MRANDOM(-25, 25)), Mouse.Hit.p) * ANGLES(RAD(90), RAD(0), RAD(0))
945
	for i = 1, 45 do
946
		Swait()
947
		MESH.Scale = MESH.Scale + VT(12, 0, 12)
948
		RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
949
	end
950
	local HITFLOOR, HITPOS = Raycast(RING.Position, CF(RING.Position, RING.CFrame * CF(0, -1, 0).p).lookVector, 500, Character)
951
	if HITFLOOR then
952
		local BEAM = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Pearl"), "Beam", VT(0, 0, 0), true)
953
		MakeForm(BEAM, "Cyl")
954
		local DIST = (RING.Position - HITPOS).Magnitude
955
		BEAM.Size = VT(0, DIST, 0)
956
		BEAM.CFrame = CF(RING.Position, HITPOS) * CF(0, 0, -DIST / 2) * ANGLES(RAD(90), RAD(0), RAD(0))
957
		for i = 1, 5 do
958
			WACKYEFFECT({
959
				EffectType = "Wave",
960
				Size = VT(25, 0, 25),
961
				Size2 = VT(40, 0, 40) + VT(i * 6, i / 5, i * 6),
962
				Transparency = 0,
963
				Transparency2 = 1,
964
				CFrame = CF(HITPOS) * ANGLES(RAD(0), RAD(72 * i), RAD(0)),
965
				MoveToPos = nil,
966
				RotationX = 0,
967
				RotationY = 3,
968
				RotationZ = 0,
969
				Material = "Neon",
970
				Color = C3(1, 1, 1),
971
				SoundID = nil,
972
				SoundPitch = nil,
973
				SoundVolume = nil
974
			})
975
			WACKYEFFECT({
976
				EffectType = "Round Slash",
977
				Size = VT(3, 0, 3) / 13,
978
				Size2 = (VT(3, 0, 3) + VT(i, 0, i)) / 5,
979
				Transparency = 0,
980
				Transparency2 = 1,
981
				CFrame = CF(HITPOS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-35, 35)), RAD(0), RAD(MRANDOM(-35, 35))),
982
				MoveToPos = nil,
983
				RotationX = 0,
984
				RotationY = 0,
985
				RotationZ = 0,
986
				Material = "Neon",
987
				Color = C3(1, 1, 1),
988
				SoundID = nil,
989
				SoundPitch = nil,
990
				SoundVolume = nil
991
			})
992
			WACKYEFFECT({
993
				Time = 35,
994
				EffectType = "Sphere",
995
				Size = VT(22, 22, 22),
996
				Size2 = VT(45, 45, 45) + VT(i * 5, i * 5, i * 5),
997
				Transparency = 0,
998
				Transparency2 = 1,
999
				CFrame = CF(HITPOS),
1000
				MoveToPos = nil,
1001
				RotationX = 0,
1002
				RotationY = 0,
1003
				RotationZ = 0,
1004
				Material = "Neon",
1005
				Color = C3(1, 1, 1),
1006
				SoundID = 459523898,
1007
				SoundPitch = MRANDOM(9, 12) / 10,
1008
				SoundVolume = 10
1009
			})
1010
		end
1011
		SHAKECAM(HITPOS, 100, 8, 15)
1012
		ApplyAoE(HITPOS, 50)
1013
		for i = 1, 25 do
1014
			Swait()
1015
			BEAM.Size = BEAM.Size + VT(0.5, 0, 0.5)
1016
			BEAM.Transparency = BEAM.Transparency + 0.04
1017
		end
1018
		BEAM:remove()
1019
	end
1020
	wait(0.2)
1021
	DELET()
1022
end
1023
function Ravage()
1024
	ATTACK = true
1025
	Rooted = false
1026
	local RING, MESH, DELET = MakeRing()
1027
	RING.Anchored = false
1028
	RING.CFrame = RightArm.CFrame * CF(0, -1.3, 0)
1029
	local WELD = weldBetween(RightArm, RING)
1030
	local GYRO = IT("BodyGyro", RootPart)
1031
	GYRO.D = 20
1032
	GYRO.P = 4000
1033
	GYRO.MaxTorque = VT(0, 40000, 0)
1034
	coroutine.resume(coroutine.create(function()
1035
		repeat
1036
			GYRO.CFrame = CF(RootPart.Position, Mouse.Hit.p)
1037
			Swait()
1038
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.45 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(90)), 1 / Animation_Speed)
1039
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-90)), 1 / Animation_Speed)
1040
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1041
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0 - 7.5 * SIN(SINE / 12)), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1042
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1043
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1044
		until ATTACK == false
1045
		GYRO:remove()
1046
	end))
1047
	CreateSound(459523787, RING, 8, 1, false)
1048
	for i = 1, 45 do
1049
		Swait()
1050
		MESH.Scale = MESH.Scale + VT(13, 0, 13)
1051
		WELD.C0 = WELD.C0 * ANGLES(RAD(0), RAD(5), RAD(0))
1052
	end
1053
	wait(0.3)
1054
	repeat
1055
		for i = 1, 25 do
1056
			Swait()
1057
			WACKYEFFECT({
1058
				Time = 15,
1059
				EffectType = "Sphere",
1060
				Size = VT(4, 4, 4),
1061
				Size2 = VT(0, 0, 0),
1062
				Transparency = 1,
1063
				Transparency2 = 0,
1064
				CFrame = CF(RING.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))) * CF(0, 0, 35),
1065
				MoveToPos = RING.Position,
1066
				RotationX = 0,
1067
				RotationY = 0,
1068
				RotationZ = 0,
1069
				Material = "Neon",
1070
				Color = C3(1, 1, 1),
1071
				SoundID = nil,
1072
				SoundPitch = nil,
1073
				SoundVolume = nil
1074
			})
1075
		end
1076
		WACKYEFFECT({
1077
			Time = 35,
1078
			EffectType = "Sphere",
1079
			Size = VT(25, 2, 25),
1080
			Size2 = VT(35, 5, 35),
1081
			Transparency = 0,
1082
			Transparency2 = 1,
1083
			CFrame = RING.CFrame,
1084
			MoveToPos = nil,
1085
			RotationX = 0,
1086
			RotationY = 0,
1087
			RotationZ = 0,
1088
			Material = "Neon",
1089
			Color = C3(1, 1, 1),
1090
			SoundID = 459523898,
1091
			SoundPitch = MRANDOM(9, 12) / 10,
1092
			SoundVolume = 10
1093
		})
1094
		coroutine.resume(coroutine.create(function()
1095
			local PROJECTILE = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Pearl"), "Beam", VT(12, 12, 12), true)
1096
			MakeForm(PROJECTILE, "Ball")
1097
			PROJECTILE.CFrame = RootPart.CFrame * CF(0, 0, -10)
1098
			local FIRE = script.Flames:Clone()
1099
			FIRE.Parent = PROJECTILE
1100
			FIRE.Enabled = true
1101
			local SPEED = -0.2
1102
			for i = 1, 1000 do
1103
				Swait()
1104
				SPEED = SPEED - 0.01
1105
				local HIT = Raycast(PROJECTILE.Position, PROJECTILE.CFrame.lookVector, 6 + SPEED / 5, Character)
1106
				if HIT then
1107
					do
1108
						local POS = PROJECTILE.Position
1109
						ApplyAoE(POS, 100)
1110
						SHAKECAM(POS, 150, 12, 15)
1111
						coroutine.resume(coroutine.create(function()
1112
							for i = 1, 5 do
1113
								Swait()
1114
								WACKYEFFECT({
1115
									Time = 85,
1116
									EffectType = "Wave",
1117
									Size = VT(25, 0, 25),
1118
									Size2 = VT(40, 0, 40) + VT(i * 6, i / 5, i * 6) * 15,
1119
									Transparency = 0,
1120
									Transparency2 = 1,
1121
									CFrame = CF(POS) * ANGLES(RAD(0), RAD(72 * i), RAD(0)) * ANGLES(RAD(MRANDOM(-35, 35)), RAD(0), RAD(MRANDOM(-35, 35))),
1122
									MoveToPos = nil,
1123
									RotationX = 0,
1124
									RotationY = 3,
1125
									RotationZ = 0,
1126
									Material = "Neon",
1127
									Color = C3(1, 1, 1),
1128
									SoundID = nil,
1129
									SoundPitch = nil,
1130
									SoundVolume = nil
1131
								})
1132
								WACKYEFFECT({
1133
									Time = 85,
1134
									EffectType = "Round Slash",
1135
									Size = VT(3, 0, 3) / 13,
1136
									Size2 = (VT(3, 0, 3) + VT(i, 0, i)) * 2,
1137
									Transparency = 0,
1138
									Transparency2 = 1,
1139
									CFrame = CF(POS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(-35, 35)), RAD(0), RAD(MRANDOM(-35, 35))),
1140
									MoveToPos = nil,
1141
									RotationX = 0,
1142
									RotationY = 0,
1143
									RotationZ = 0,
1144
									Material = "Neon",
1145
									Color = C3(1, 1, 1),
1146
									SoundID = nil,
1147
									SoundPitch = nil,
1148
									SoundVolume = nil
1149
								})
1150
								WACKYEFFECT({
1151
									Time = 75,
1152
									EffectType = "Sphere",
1153
									Size = VT(22, 22, 22),
1154
									Size2 = VT(45, 45, 45) + VT(i * 5, i * 5, i * 5) * 7,
1155
									Transparency = 0,
1156
									Transparency2 = 1,
1157
									CFrame = CF(POS),
1158
									MoveToPos = nil,
1159
									RotationX = 0,
1160
									RotationY = 0,
1161
									RotationZ = 0,
1162
									Material = "Neon",
1163
									Color = C3(1, 1, 1),
1164
									SoundID = 533636431,
1165
									SoundPitch = MRANDOM(9, 12) / 10,
1166
									SoundVolume = 10
1167
								})
1168
							end
1169
						end))
1170
						break
1171
					end
1172
				else
1173
					PROJECTILE.CFrame = PROJECTILE.CFrame * CF(0, 0, SPEED)
1174
					for index, CHILD in pairs(workspace:GetDescendants()) do
1175
						if CHILD.ClassName == "Model" and CHILD ~= Character then
1176
							local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1177
							if HUM then
1178
								local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1179
								if TORSO and 0 < HUM.Health and 150 > (TORSO.Position - PROJECTILE.Position).Magnitude then
1180
									PROJECTILE.CFrame = Clerp(PROJECTILE.CFrame, CF(PROJECTILE.Position, TORSO.Position), 0.08)
1181
								end
1182
							end
1183
						end
1184
					end
1185
				end
1186
			end
1187
			FIRE.Enabled = false
1188
			PROJECTILE.Transparency = 1
1189
			Debris:AddItem(PROJECTILE, 5)
1190
		end))
1191
	until KEYHOLD == false
1192
	wait(0.1)
1193
	RING.Anchored = true
1194
	WELD:remove()
1195
	DELET()
1196
	ATTACK = false
1197
	Rooted = false
1198
end
1199
function Earthquake()
1200
	ATTACK = true
1201
	Rooted = true
1202
	local GYRO = IT("BodyGyro", RootPart)
1203
	GYRO.D = 20
1204
	GYRO.P = 4000
1205
	GYRO.MaxTorque = VT(0, 40000, 0)
1206
	local RING, MESH, DELET = MakeRing()
1207
	local HITFLOOR, HITPOS = Raycast(RootPart.Position, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 15, Character)
1208
	RING.CFrame = CF(HITPOS)
1209
	for i = 0, 0.6, 0.1 / Animation_Speed do
1210
		GYRO.CFrame = CF(RootPart.Position, Mouse.Hit.p)
1211
		Swait()
1212
		MESH.Scale = MESH.Scale + VT(53, 0, 53)
1213
		RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
1214
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.45 * COS(SINE / 12)) * ANGLES(RAD(7 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(-45)), 1 / Animation_Speed)
1215
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(45)), 1 / Animation_Speed)
1216
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-25 - 7.5 * SIN(SINE / 12)), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1217
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0 - 7.5 * SIN(SINE / 12)), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1218
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1219
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1220
	end
1221
	local BLASTS = {468991944, 468991990}
1222
	coroutine.resume(coroutine.create(function()
1223
		local CFRAME = RootPart.CFrame
1224
		for i = 1, 100 do
1225
			CFRAME = CFRAME * CF(0, 0, -35)
1226
			do
1227
				local HITFLOOR, HITPOS = Raycast(CFRAME.p, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 15, Character)
1228
				if HITFLOOR then
1229
					Swait()
1230
					do
1231
						local OFFSET = CFRAME * CF(MRANDOM(-25, 25), 0, 0)
1232
						coroutine.resume(coroutine.create(function()
1233
							local RING, MESH, DELET = MakeRing()
1234
							RING.CFrame = CF(OFFSET.p.X, HITPOS.Y, OFFSET.p.Z)
1235
							for i = 1, 25 do
1236
								Swait()
1237
								MESH.Scale = MESH.Scale + VT(42, 0, 42)
1238
								RING.CFrame = RING.CFrame * ANGLES(RAD(0), RAD(5), RAD(0))
1239
							end
1240
							ApplyAoE(RING.Position, 65)
1241
							SHAKECAM(RING.Position, 80, 12, 15)
1242
							local TURN = ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(0, 25)), RAD(0), RAD(0))
1243
							WACKYEFFECT({
1244
								Time = 25,
1245
								EffectType = "Sphere",
1246
								Size = VT(22, 22, 22),
1247
								Size2 = VT(85, 85, 85),
1248
								Transparency = 0,
1249
								Transparency2 = 1,
1250
								CFrame = CF(RING.Position),
1251
								MoveToPos = nil,
1252
								RotationX = 0,
1253
								RotationY = 0,
1254
								RotationZ = 0,
1255
								Material = "Neon",
1256
								Color = C3(1, 1, 1),
1257
								SoundID = BLASTS[MRANDOM(1, #BLASTS)],
1258
								SoundPitch = MRANDOM(9, 12) / 10,
1259
								SoundVolume = 10
1260
							})
1261
							for e = 1, 3 do
1262
								WACKYEFFECT({
1263
									EffectType = "Wave",
1264
									Size = VT(25, 0, 25),
1265
									Size2 = VT(40, 0, 40) + VT(e * 6, e / 5, e * 6),
1266
									Transparency = 0,
1267
									Transparency2 = 1,
1268
									CFrame = CF(RING.Position) * ANGLES(RAD(0), RAD(72 * i), RAD(0)),
1269
									MoveToPos = nil,
1270
									RotationX = 0,
1271
									RotationY = 3,
1272
									RotationZ = 0,
1273
									Material = "Neon",
1274
									Color = C3(1, 1, 1),
1275
									SoundID = nil,
1276
									SoundPitch = nil,
1277
									SoundVolume = nil
1278
								})
1279
								WACKYEFFECT({
1280
									Time = 35,
1281
									EffectType = "Sphere",
1282
									Size = VT(22, 45, 22),
1283
									Size2 = VT(25, 45 + e * 75, 25),
1284
									Transparency = 0,
1285
									Transparency2 = 1,
1286
									CFrame = CF(RING.Position) * TURN,
1287
									MoveToPos = nil,
1288
									RotationX = 0,
1289
									RotationY = 0,
1290
									RotationZ = 0,
1291
									Material = "Neon",
1292
									Color = C3(1, 1, 1),
1293
									SoundID = nil,
1294
									SoundPitch = MRANDOM(9, 12) / 10,
1295
									SoundVolume = 10
1296
								})
1297
							end
1298
							wait(0.3)
1299
							DELET()
1300
						end))
1301
					end
1302
				end
1303
			end
1304
		end
1305
	end))
1306
	Rooted = false
1307
	for i = 0, 0.2, 0.1 / Animation_Speed do
1308
		Swait()
1309
		RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.45 * COS(SINE / 12)) * ANGLES(RAD(7 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(75)), 1 / Animation_Speed)
1310
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-75)), 1 / Animation_Speed)
1311
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(145 - 7.5 * SIN(SINE / 12)), RAD(-35 - 7.5 * SIN(SINE / 12)), RAD(12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1312
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0 - 7.5 * SIN(SINE / 12)), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1313
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1314
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1315
	end
1316
	DELET()
1317
	GYRO:remove()
1318
	ATTACK = false
1319
	Rooted = false
1320
end
1321
function Beam()
1322
	ATTACK = true
1323
	Rooted = false
1324
	local GYRO = IT("BodyGyro", RootPart)
1325
	GYRO.D = 20
1326
	GYRO.P = 4000
1327
	GYRO.MaxTorque = VT(0, 40000, 0)
1328
	local RING, MESH, DELET = MakeRing()
1329
	local POS = RootPart.Position + VT(0, 25, 0)
1330
	RING.CFrame = CF(POS, Mouse.Hit.p) * ANGLES(RAD(90), RAD(0), RAD(0))
1331
	CreateSound(459523787, RING, 8, 1, false)
1332
	local BLASTS = {468991944, 468991990}
1333
	coroutine.resume(coroutine.create(function()
1334
		local E = 0
1335
		repeat
1336
			E = E + 5
1337
			GYRO.CFrame = CF(RootPart.Position, Mouse.Hit.p)
1338
			Swait()
1339
			RING.CFrame = CF(POS, Mouse.Hit.p) * ANGLES(RAD(90), RAD(E), RAD(0))
1340
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.45 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(90)), 1 / Animation_Speed)
1341
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-90)), 1 / Animation_Speed)
1342
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1343
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0 - 7.5 * SIN(SINE / 12)), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1344
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1345
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1346
		until ATTACK == false
1347
		GYRO:remove()
1348
		DELET()
1349
	end))
1350
	for i = 1, 50 do
1351
		Swait()
1352
		MESH.Scale = MESH.Scale + VT(22, 0, 22)
1353
	end
1354
	for i = 1, 25 do
1355
		Swait()
1356
		WACKYEFFECT({
1357
			Time = 15,
1358
			EffectType = "Sphere",
1359
			Size = VT(4, 4, 4),
1360
			Size2 = VT(0, 0, 0),
1361
			Transparency = 1,
1362
			Transparency2 = 0,
1363
			CFrame = CF(RING.Position) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))) * CF(0, 0, 35),
1364
			MoveToPos = RING.Position,
1365
			RotationX = 0,
1366
			RotationY = 0,
1367
			RotationZ = 0,
1368
			Material = "Neon",
1369
			Color = C3(1, 1, 1),
1370
			SoundID = nil,
1371
			SoundPitch = nil,
1372
			SoundVolume = nil
1373
		})
1374
	end
1375
	local LOOP = 0
1376
	local BEAM = CreatePart(3, Effects, "Neon", 0, 0, BRICKC("Pearl"), "Beam", VT(0, 0, 0), true)
1377
	MakeForm(BEAM, "Cyl")
1378
	CreateSound(BLASTS[MRANDOM(1, #BLASTS)], RING, 5, MRANDOM(9, 11) / 10, false)
1379
	repeat
1380
		local DISTANCE = (RING.Position - Mouse.Hit.p).Magnitude
1381
		if DISTANCE < 2000 then
1382
			BEAM.Size = VT(10 + 2 * COS(SINE / 4), DISTANCE, 10 + 2 * COS(SINE / 4))
1383
			BEAM.CFrame = CF(RING.Position, Mouse.Hit.p) * CF(0, 0, -DISTANCE / 2) * ANGLES(RAD(90), RAD(0), RAD(0))
1384
			ApplyAoE(Mouse.Hit.p, 35)
1385
			WACKYEFFECT({
1386
				Time = 35,
1387
				EffectType = "Sphere",
1388
				Size = VT(10 + 2 * COS(SINE / 4), 10 + 2 * COS(SINE / 4), 10 + 2 * COS(SINE / 4)) * 2,
1389
				Size2 = VT(5, 75, 5),
1390
				Transparency = 0,
1391
				Transparency2 = 1,
1392
				CFrame = CF(Mouse.Hit.p) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
1393
				MoveToPos = nil,
1394
				RotationX = 0,
1395
				RotationY = 0,
1396
				RotationZ = 0,
1397
				Material = "Neon",
1398
				Color = C3(1, 1, 1),
1399
				SoundID = nil,
1400
				SoundPitch = MRANDOM(9, 12) / 10,
1401
				SoundVolume = 10
1402
			})
1403
			Swait()
1404
			LOOP = LOOP + 1
1405
		end
1406
	until KEYHOLD == false and LOOP >= 35 or DISTANCE >= 2000
1407
	coroutine.resume(coroutine.create(function()
1408
		for i = 1, 15 do
1409
			Swait()
1410
			BEAM.Size = BEAM.Size - VT(0.2, 0, 0.2)
1411
			BEAM.Transparency = BEAM.Transparency + 0.06666666666666667
1412
		end
1413
		BEAM:remove()
1414
	end))
1415
	ATTACK = false
1416
	Rooted = false
1417
end
1418
function Nuke()
1419
	ATTACK = true
1420
	Rooted = true
1421
	local CHARGE = false
1422
	local BLASTS = {468991944, 468991990}
1423
	coroutine.resume(coroutine.create(function()
1424
		repeat
1425
			Swait()
1426
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.45 * COS(SINE / 12)) * ANGLES(RAD(-15 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 1 * SIN(SINE / 12))), 0.1 / Animation_Speed)
1427
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-35 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 0.1 / Animation_Speed)
1428
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(140 - 7.5 * SIN(SINE / 12)), RAD(-7.5 * SIN(SINE / 12)), RAD(-45 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 0.1 / Animation_Speed)
1429
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(140 - 7.5 * SIN(SINE / 12)), RAD(7.5 * SIN(SINE / 12)), RAD(45 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 0.1 / Animation_Speed)
1430
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(25 - 7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.1 / Animation_Speed)
1431
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(25 - 7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.1 / Animation_Speed)
1432
		until CHARGE == true
1433
		for i = 0, 0.4, 0.1 / Animation_Speed do
1434
			Swait()
1435
			WACKYEFFECT({
1436
				Time = 15,
1437
				EffectType = "Sphere",
1438
				Size = VT(60, 60, 60),
1439
				Size2 = VT(0, 0, 0),
1440
				Transparency = 1,
1441
				Transparency2 = 0.7,
1442
				CFrame = CF(RootPart.Position),
1443
				MoveToPos = nil,
1444
				RotationX = 0,
1445
				RotationY = 0,
1446
				RotationZ = 0,
1447
				Material = "Neon",
1448
				Color = C3(1, 1, 1),
1449
				SoundID = nil,
1450
				SoundPitch = nil,
1451
				SoundVolume = nil
1452
			})
1453
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.45 * COS(SINE / 12)) * ANGLES(RAD(-25 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 1 * SIN(SINE / 12))), 1 / Animation_Speed)
1454
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1455
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.15, 0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(160 - 7.5 * SIN(SINE / 12)), RAD(-7.5 * SIN(SINE / 12)), RAD(-50 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1456
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.15, 0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(160 - 7.5 * SIN(SINE / 12)), RAD(7.5 * SIN(SINE / 12)), RAD(50 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1457
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(35 - 7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1458
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(35 - 7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1459
		end
1460
		coroutine.resume(coroutine.create(function()
1461
			local POS = RootPart.Position
1462
			wait(0.2)
1463
			for i = 1, 5 do
1464
				WACKYEFFECT({
1465
					Time = 65,
1466
					EffectType = "Sphere",
1467
					Size = VT(2, 2, 2),
1468
					Size2 = VT(0, 0, 500),
1469
					Transparency = 1,
1470
					Transparency2 = 0,
1471
					CFrame = CF(POS),
1472
					MoveToPos = nil,
1473
					RotationX = MRANDOM(-2, 2),
1474
					RotationY = MRANDOM(-12, 12),
1475
					RotationZ = MRANDOM(-2, 2),
1476
					Material = "Neon",
1477
					Color = C3(1, 1, 1),
1478
					SoundID = nil,
1479
					SoundPitch = nil,
1480
					SoundVolume = nil
1481
				})
1482
			end
1483
			wait(1)
1484
			SHAKECAM(POS, 9999999999, 25, 25)
1485
			ApplyAoE(POS, 450)
1486
			WACKYEFFECT({
1487
				Time = 85,
1488
				EffectType = "Sphere",
1489
				Size = VT(120, 120, 120),
1490
				Size2 = VT(350, 350, 350),
1491
				Transparency = 0,
1492
				Transparency2 = 1,
1493
				CFrame = CF(POS),
1494
				MoveToPos = nil,
1495
				RotationX = 0,
1496
				RotationY = 0,
1497
				RotationZ = 0,
1498
				Material = "Neon",
1499
				Color = C3(1, 1, 1),
1500
				SoundID = nil,
1501
				SoundPitch = 1,
1502
				SoundVolume = 10
1503
			})
1504
			for i = 1, 20 do
1505
				WACKYEFFECT({
1506
					Time = 85,
1507
					EffectType = "Sphere",
1508
					Size = VT(120, 120, 120),
1509
					Size2 = VT(120, 120, 144) + VT(i * 3, i * 3, i * 3),
1510
					Transparency = 0.8,
1511
					Transparency2 = 1,
1512
					CFrame = CF(POS),
1513
					MoveToPos = nil,
1514
					RotationX = 0,
1515
					RotationY = 0,
1516
					RotationZ = 0,
1517
					Material = "Neon",
1518
					Color = C3(1, 1, 1),
1519
					SoundID = nil,
1520
					SoundPitch = 1,
1521
					SoundVolume = 10
1522
				})
1523
				WACKYEFFECT({
1524
					Time = 100,
1525
					EffectType = "Wave",
1526
					Size = VT(25, 2, 25),
1527
					Size2 = VT(400, 0, 400) * 1.2,
1528
					Transparency = 0,
1529
					Transparency2 = 1,
1530
					CFrame = CF(POS) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))),
1531
					MoveToPos = nil,
1532
					RotationX = 0,
1533
					RotationY = 0,
1534
					RotationZ = 0,
1535
					Material = "Neon",
1536
					Color = C3(1, 1, 1),
1537
					SoundID = nil,
1538
					SoundPitch = nil,
1539
					SoundVolume = nil
1540
				})
1541
			end
1542
			local HITFLOOR, HITPOS = Raycast(POS, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 150, Character)
1543
			for i = 1, 5 do
1544
				CreateSound(438666077, Effects, 15, 1 - i / 15, false)
1545
				WACKYEFFECT({
1546
					Time = 120,
1547
					EffectType = "Wave",
1548
					Size = VT(150, 2, 150),
1549
					Size2 = VT(300 + i * 170, 0, 300 + i * 170) * 1.2,
1550
					Transparency = 0,
1551
					Transparency2 = 1,
1552
					CFrame = CF(HITPOS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)),
1553
					MoveToPos = nil,
1554
					RotationX = 0,
1555
					RotationY = 0,
1556
					RotationZ = 0,
1557
					Material = "Neon",
1558
					Color = C3(1, 1, 1),
1559
					SoundID = nil,
1560
					SoundPitch = nil,
1561
					SoundVolume = nil
1562
				})
1563
			end
1564
		end))
1565
		for i = 0, 1, 0.1 / Animation_Speed do
1566
			Swait()
1567
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.45 * COS(SINE / 12)) * ANGLES(RAD(7 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 1 * SIN(SINE / 12))), 1 / Animation_Speed)
1568
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1569
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(45 - 7.5 * SIN(SINE / 12)), RAD(45 - 7.5 * SIN(SINE / 12)), RAD(12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1570
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(45 - 7.5 * SIN(SINE / 12)), RAD(-45 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1571
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1572
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1573
		end
1574
		ATTACK = false
1575
		Rooted = false
1576
	end))
1577
	for i = 1, 30 do
1578
		wait(0.01)
1579
		local POS = CF(RootPart.Position) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * CF(0, 0, MRANDOM(10, 150))
1580
		local HITFLOOR, HITPOS = Raycast(POS.p, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 150, Character)
1581
		if HITFLOOR then
1582
			ApplyAoE(HITPOS, 65)
1583
			local TURN = ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(0, 25)), RAD(0), RAD(0))
1584
			WACKYEFFECT({
1585
				Time = 25,
1586
				EffectType = "Sphere",
1587
				Size = VT(22, 22, 22),
1588
				Size2 = VT(85, 85, 85),
1589
				Transparency = 0,
1590
				Transparency2 = 1,
1591
				CFrame = CF(HITPOS),
1592
				MoveToPos = nil,
1593
				RotationX = 0,
1594
				RotationY = 0,
1595
				RotationZ = 0,
1596
				Material = "Neon",
1597
				Color = C3(1, 1, 1),
1598
				SoundID = BLASTS[MRANDOM(1, #BLASTS)],
1599
				SoundPitch = MRANDOM(9, 12) / 10,
1600
				SoundVolume = 10
1601
			})
1602
			for e = 1, 3 do
1603
				WACKYEFFECT({
1604
					EffectType = "Wave",
1605
					Size = VT(25, 0, 25),
1606
					Size2 = VT(40, 0, 40) + VT(e * 6, e / 5, e * 6),
1607
					Transparency = 0,
1608
					Transparency2 = 1,
1609
					CFrame = CF(HITPOS) * ANGLES(RAD(0), RAD(72 * i), RAD(0)),
1610
					MoveToPos = nil,
1611
					RotationX = 0,
1612
					RotationY = 3,
1613
					RotationZ = 0,
1614
					Material = "Neon",
1615
					Color = C3(1, 1, 1),
1616
					SoundID = nil,
1617
					SoundPitch = nil,
1618
					SoundVolume = nil
1619
				})
1620
				WACKYEFFECT({
1621
					Time = 35,
1622
					EffectType = "Sphere",
1623
					Size = VT(22, 45, 22),
1624
					Size2 = VT(25, 45 + e * 75, 25),
1625
					Transparency = 0,
1626
					Transparency2 = 1,
1627
					CFrame = CF(HITPOS) * TURN,
1628
					MoveToPos = nil,
1629
					RotationX = 0,
1630
					RotationY = 0,
1631
					RotationZ = 0,
1632
					Material = "Neon",
1633
					Color = C3(1, 1, 1),
1634
					SoundID = nil,
1635
					SoundPitch = MRANDOM(9, 12) / 10,
1636
					SoundVolume = 10
1637
				})
1638
			end
1639
		end
1640
	end
1641
	CHARGE = true
1642
end
1643
function MouseDown(Mouse)
1644
	if ATTACK == false then
1645
	end
1646
end
1647
function MouseUp(Mouse)
1648
	HOLD = false
1649
end
1650
function KeyDown(Key)
1651
	KEYHOLD = true
1652
	if Key == "z" and ATTACK == false then
1653
		Smite()
1654
	end
1655
	if Key == "b" and ATTACK == false then
1656
		Ravage()
1657
	end
1658
	if Key == "c" and ATTACK == false then
1659
		Earthquake()
1660
	end
1661
	if Key == "v" and ATTACK == false then
1662
		Beam()
1663
	end
1664
	if Key == "x" and ATTACK == false then
1665
		Nuke()
1666
	end
1667
end
1668
function KeyUp(Key)
1669
	if Key ~= "w" and Key ~= "s" and Key ~= "a" and Key ~= "d" then
1670
		KEYHOLD = false
1671
	end
1672
end
1673
Mouse.Button1Down:connect(function(NEWKEY)
1674
	MouseDown(NEWKEY)
1675
end)
1676
Mouse.Button1Up:connect(function(NEWKEY)
1677
	MouseUp(NEWKEY)
1678
end)
1679
Mouse.KeyDown:connect(function(NEWKEY)
1680
	KeyDown(NEWKEY)
1681
end)
1682
Mouse.KeyUp:connect(function(NEWKEY)
1683
	KeyUp(NEWKEY)
1684
end)
1685
function unanchor()
1686
	for _, c in pairs(Character:GetChildren()) do
1687
		if c:IsA("BasePart") and c ~= RootPart then
1688
			c.Anchored = false
1689
		end
1690
	end
1691
	if UNANCHOR == true then
1692
		RootPart.Anchored = false
1693
	else
1694
		RootPart.Anchored = true
1695
	end
1696
end
1697
Humanoid.Changed:connect(function(Jump)
1698
	if Jump == "Jump" and Disable_Jump == true then
1699
		Humanoid.Jump = false
1700
	end
1701
end)
1702
while true do
1703
	Swait()
1704
	Humanoid.HipHeight = 7
1705
	script.Parent = WEAPONGUI
1706
	ANIMATE.Parent = nil
1707
	for _, v in next, Humanoid:GetPlayingAnimationTracks() do
1708
		v:Stop()
1709
	end
1710
	SINE = SINE + CHANGE / 2
1711
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
1712
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
1713
	if ATTACK == false then
1714
		if TORSOVELOCITY < 1 then
1715
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.45 * COS(SINE / 12)) * ANGLES(RAD(7 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 1 * SIN(SINE / 12))), 1 / Animation_Speed)
1716
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1717
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0 - 7.5 * SIN(SINE / 12)), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(12 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1718
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(0 - 7.5 * SIN(SINE / 12)), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-12 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1719
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 + 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1720
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5 + 0.25 * COS(SINE / 12), -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1721
		elseif TORSOVELOCITY > 1 then
1722
			RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(25 + 2.5 * SIN(SINE / 12)), RAD(0), RAD(5 + 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1723
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(-25 + 4.5 * SIN(SINE / 12)), RAD(0), RAD(-5 - 2.5 * SIN(SINE / 12))), 1 / Animation_Speed)
1724
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(0 - 7.5 * SIN(SINE / 12)), RAD(25 + 7.5 * SIN(SINE / 12))) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1725
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(-25), RAD(0 + 7.5 * SIN(SINE / 12)), RAD(-25 - 7.5 * SIN(SINE / 12))) * LEFTSHOULDERC0, 1 / Animation_Speed)
1726
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-25 - 7.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 5.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1727
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-7.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1728
		end
1729
	end
1730
	for WING = 1, #WINGS do
1731
		local STUFF = WINGS[WING]
1732
		local FEATHERS = STUFF[1]
1733
		local ACCEL = STUFF[2]
1734
		FEATHERS.Acceleration = ACCEL + VT(0, 35 * SIN(SINE / 12), 0)
1735
	end
1736
	unanchor()
1737
	Humanoid.MaxHealth = 3000000
1738
	Humanoid.Health = 3000000
1739
	if Rooted == false then
1740
		Disable_Jump = false
1741
		Humanoid.WalkSpeed = Speed
1742
	elseif Rooted == true then
1743
		Disable_Jump = true
1744
		Humanoid.WalkSpeed = 0
1745
	end
1746
	for _, c in pairs(Character:GetChildren()) do
1747
		if c.ClassName == "Accessory" or c.Name == "Body Colors" then
1748
			local hand = c:FindFirstChild'Handle'
1749
			if(hand)then
1750
				hand.Parent = Character
1751
				weldBetween(hand,Head)
1752
			end
1753
			c:destroy()
1754
		end
1755
	end
1756
	sick.Playing = true
1757
	sick.SoundId = "rbxassetid://1073318933"
1758
	sick.Looped = true
1759
	sick.Pitch = 1
1760
	sick.Volume = 3
1761
	if sick.Parent ~= Character then
1762
		sick = IT("Sound", Character)
1763
	end
1764
	Head.Color = C3(0,0,0)
1765
	pcall(function() Head:FindFirstChildOfClass'Decal':destroy() end)
1766
	ApplyAoE(Torso.Position, 12)
1767
	refit()
1768
end