View difference between Paste ID: bfeqaBnB and GsN2XqRX
SHOW: | | - or go back to the newest paste.
1
-- Created by Nebula_Zorua --
2
-- The Angel --
3
-- A higher being.. Here to smite you evil-doers! --
4
-- Discord: Nebula the Zorua#6969
5
-- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
6
7
--https://github.com/Mokiros/roblox-FE-compatibility
8
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
9
local Player,game,owner = owner,game
10
local RealPlayer = Player
11
do
12
	print("FE Compatibility code V2 by Mokiros")
13
	local RealPlayer = RealPlayer
14
	script.Parent = RealPlayer.Character
15
16
	--Fake event to make stuff like Mouse.KeyDown work
17
	local Disconnect_Function = function(this)
18
		this[1].Functions[this[2]] = nil
19
	end
20
	local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
21
	local FakeEvent_Metatable = {__index={
22
		Connect = function(this,f)
23
			local i = tostring(math.random(0,10000))
24
			while this.Functions[i] do
25
				i = tostring(math.random(0,10000))
26
			end
27
			this.Functions[i] = f
28
			return setmetatable({this,i},Disconnect_Metatable)
29
		end
30
	}}
31
	FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
32
	local function fakeEvent()
33
		return setmetatable({Functions={}},FakeEvent_Metatable)
34
	end
35
36
	--Creating fake input objects with fake variables
37
    local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
38
    FakeMouse.keyUp = FakeMouse.KeyUp
39
    FakeMouse.keyDown = FakeMouse.KeyDown
40
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
41
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
42
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
43
	end}
44
	--Merged 2 functions into one by checking amount of arguments
45
	CAS.UnbindAction = CAS.BindAction
46
47
	--This function will trigger the events that have been :Connect()'ed
48
	local function TriggerEvent(self,ev,...)
49
		for _,f in pairs(self[ev].Functions) do
50
			f(...)
51
		end
52
	end
53
	FakeMouse.TriggerEvent = TriggerEvent
54
	UIS.TriggerEvent = TriggerEvent
55
56
	--Client communication
57
	local Event = Instance.new("RemoteEvent")
58
	Event.Name = "UserInput_Event"
59
	Event.OnServerEvent:Connect(function(plr,io)
60
	    if plr~=RealPlayer then return end
61
		FakeMouse.Target = io.Target
62
		FakeMouse.Hit = io.Hit
63
		if not io.isMouse then
64
			local b = io.UserInputState == Enum.UserInputState.Begin
65
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
66
				return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
67
			end
68
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
69
				return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
70
			end
71
			for _,t in pairs(CAS.Actions) do
72
				for _,k in pairs(t.Keys) do
73
					if k==io.KeyCode then
74
						t.Function(t.Name,io.UserInputState,io)
75
					end
76
				end
77
			end
78
			FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
79
			UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
80
	    end
81
	end)
82
	Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
83
	local Mouse = owner:GetMouse()
84
	local UIS = game:GetService("UserInputService")
85
	local input = function(io,RobloxHandled)
86
		if RobloxHandled then return end
87
		--Since InputObject is a client-side instance, we create and pass table instead
88
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
89
	end
90
	UIS.InputBegan:Connect(input)
91
	UIS.InputEnded:Connect(input)
92
	local h,t
93
	--Give the server mouse data every second frame, but only if the values changed
94
	--If player is not moving their mouse, client won't fire events
95
	local HB = game:GetService("RunService").Heartbeat
96
	while true do
97
		if h~=Mouse.Hit or t~=Mouse.Target then
98
			h,t=Mouse.Hit,Mouse.Target
99
			Event:FireServer({isMouse=true,Target=t,Hit=h})
100
		end
101
		--Wait 2 frames
102
		for i=1,2 do
103
			HB:Wait()
104
		end
105
	end]==],script)
106
107
	----Sandboxed game object that allows the usage of client-side methods and services
108
	--Real game object
109
	local RealGame = game
110
111
	--Metatable for fake service
112
	local FakeService_Metatable = {
113
		__index = function(self,k)
114
			local s = rawget(self,"_RealService")
115
			if s then
116
				return typeof(s[k])=="function"
117
				and function(_,...)return s[k](s,...)end or s[k]
118
			end
119
		end,
120
		__newindex = function(self,k,v)
121
			local s = rawget(self,"_RealService")
122
			if s then s[k]=v end
123
		end
124
	}
125
	local function FakeService(t,RealService)
126
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
127
		return setmetatable(t,FakeService_Metatable)
128
	end
129
130
	--Fake game object
131
	local FakeGame = {
132
		GetService = function(self,s)
133
			return rawget(self,s) or RealGame:GetService(s)
134
		end,
135
		Players = FakeService({
136
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
137
		},"Players"),
138
		UserInputService = FakeService(UIS,"UserInputService"),
139
		ContextActionService = FakeService(CAS,"ContextActionService"),
140
		RunService = FakeService({
141
			_btrs = {},
142
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
143
			BindToRenderStep = function(self,name,_,fun)
144
				self._btrs[name] = self.Heartbeat:Connect(fun)
145
			end,
146
			UnbindFromRenderStep = function(self,name)
147
				self._btrs[name]:Disconnect()
148
			end,
149
		},"RunService")
150
	}
151
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
152
	FakeGame.service = FakeGame.GetService
153
	FakeService(FakeGame,game)
154
	--Changing owner to fake player object to support owner:GetMouse()
155
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
156
end
157
158
wait(1/60)
159
160
--// Initializing \\--
161
local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
162
local Plrs = S.Players
163
local Plr = Plrs.LocalPlayer
164
local Char = Plr.Character
165
local Hum = Char:FindFirstChildOfClass'Humanoid'
166
local RArm = Char["Right Arm"]
167
local LArm = Char["Left Arm"]
168
local RLeg = Char["Right Leg"]
169
local LLeg = Char["Left Leg"]	
170
local Root = Char:FindFirstChild'HumanoidRootPart'
171
local Torso = Char.Torso
172
local Head = Char.Head
173
local NeutralAnims = true
174
local Attack = false
175
local BloodPuddles = {}
176
local Effects = {}
177
local Debounces = {Debounces={}}
178
local Mouse = Plr:GetMouse()
179
local Hit = {}
180
local Sine = 0
181
local Change = 1
182
local PulseTime = 0
183
local DustTime = 0
184
185
local Rooted = false
186
--// Debounce System \\--
187
188
function Debounces:New(name,cooldown)
189
	local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
190
	setmetatable(aaaaa,{__index = Debounces})
191
	Debounces.Debounces[name] = aaaaa
192
	return aaaaa
193
end
194
195
function Debounces:Use(overrideUsable)
196
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
197
	if(self.Usable or overrideUsable)then
198
		self.Usable = false
199
		self.CoolingDown = true
200
		local LastUse = time()
201
		self.LastUse = LastUse
202
		delay(self.Cooldown or 2,function()
203
			if(self.LastUse == LastUse)then
204
				self.CoolingDown = false
205
				self.Usable = true
206
			end
207
		end)
208
	end
209
end
210
211
function Debounces:Get(name)
212
	assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
213
	for i,v in next, Debounces.Debounces do
214
		if(i == name)then
215
			return v;
216
		end
217
	end
218
end
219
220
function Debounces:GetProgressPercentage()
221
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
222
	if(self.CoolingDown and not self.Usable)then
223
		return math.max(
224
			math.floor(
225
				(
226
					(time()-self.LastUse)/self.Cooldown or 2
227
				)*100
228
			)
229
		)
230
	else
231
		return 100
232
	end
233
end
234
235
--// Shortcut Variables \\--
236
local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
237
local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
238
local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
239
local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG = function(min,max,div) return math.random(min,max)/(div or 1) end,MRS=math.randomseed,H=math.huge,RRNG = function(min,max,div) return math.rad(math.random(min,max)/(div or 1)) end}
240
local R3 = {N=Region3.new}
241
local De = S.Debris
242
local WS = workspace
243
local Lght = S.Lighting
244
local RepS = S.ReplicatedStorage
245
local IN = Instance.new
246
--// Instance Creation Functions \\--
247
248
function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
249
	local Sound = IN("Sound")
250
	Sound.SoundId = "rbxassetid://".. tostring(id or 0)
251
	Sound.Pitch = pitch or 1
252
	Sound.Volume = volume or 1
253
	Sound.Looped = looped or false
254
	if(autoPlay)then
255
		coroutine.wrap(function()
256
			repeat wait() until Sound.IsLoaded
257
			Sound.Playing = autoPlay or false
258
		end)()
259
	end
260
	if(not looped and effect)then
261
		Sound.Stopped:connect(function()
262
			Sound.Volume = 0
263
			Sound:destroy()
264
		end)
265
	elseif(effect)then
266
		warn("Sound can't be looped and a sound effect!")
267
	end
268
	Sound.Parent =parent or Torso
269
	return Sound
270
end
271
function Part(parent,color,material,size,cframe,anchored,cancollide)
272
	local part = IN("Part")
273
	part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
274
	part.Material = material or Enum.Material.SmoothPlastic
275
	part.TopSurface,part.BottomSurface=10,10
276
	part.Size = size or V3.N(1,1,1)
277
	part.CFrame = cframe or CF.N(0,0,0)
278
	part.Anchored = anchored or true
279
	part.CanCollide = cancollide or false
280
	part.Parent = parent or Char
281
	return part
282
end
283
function Mesh(parent,meshtype,meshid,textid,scale,offset)
284
	local class = "SpecialMesh"
285
	if(meshtype == Enum.MeshType.Brick)then class = 'BlockMesh' end
286
	 
287
	local part = IN(class)
288
	if(class == "SpecialMesh")then
289
		part.MeshId = meshid or ""
290
		part.TextureId = textid or ""
291
		part.MeshType = meshtype or Enum.MeshType.Sphere
292
	end
293
	part.Scale = scale or V3.N(1,1,1)
294
	part.Offset = offset or V3.N(0,0,0)
295
	
296
	part.Parent = parent
297
	return part
298
end
299
300
NewInstance = function(instance,parent,properties)
301
	local inst = Instance.new(instance,parent)
302
	if(properties)then
303
		for i,v in next, properties do
304
			pcall(function() inst[i] = v end)
305
		end
306
	end
307
	return inst;
308
end
309
310
311
312
--// Extended ROBLOX tables \\--
313
local Instance = setmetatable({ClearChildrenOfClass = function(where,class,recursive) local children = (recursive and where:GetDescendants() or where:GetChildren()) for _,v in next, children do if(v:IsA(class))then v:destroy();end;end;end},{__index = Instance})
314
--// Customization \\--
315
316
local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
317
local Remove_Hats = true
318
local Remove_Clothing = true
319
local PlayerSize = 1
320
local DamageColor = BrickColor.new'New Yeller'
321
local MusicID = 835120625
322
323
--// Weapon and GUI creation, and Character Customization \\--
324
325
if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
326
if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
327
 Instance.ClearChildrenOfClass(Char,"Decal",true)
328
local Effects = IN("Folder",Char)
329
Effects.Name = "Effects"
330
331
local Halo = IN("Model",Char)
332
Halo.Name = "Halo"
333
334
local Wings = IN("Model",Char)
335
Wings.Name = "Wings"
336
337
Hum.DisplayDistanceType = 'None'
338
339
local naeeym2 = IN("BillboardGui",Char)
340
naeeym2.AlwaysOnTop = true
341
naeeym2.Size = UDim2.new(5,35,2,15)
342
naeeym2.StudsOffset = V3.N(0,2.5,0)
343
naeeym2.Adornee = Char.Head
344
naeeym2.Name = "Name"
345
naeeym2.PlayerToHideFrom = Plr
346
local tecks2 = IN("TextLabel",naeeym2)
347
tecks2.BackgroundTransparency = 1
348
tecks2.TextScaled = true
349
tecks2.BorderSizePixel = 0
350
tecks2.Text = "The Angel"
351
tecks2.Font = Enum.Font.Bodoni
352
tecks2.TextSize = 30
353
tecks2.TextStrokeTransparency = 0
354
tecks2.TextColor3 = C3.N(0,0,0)
355
tecks2.TextStrokeColor3 = C3.N(1,1,0)
356
tecks2.Size = UDim2.new(1,0,0.5,0)
357
tecks2.Parent = naeeym2
358
359
pcall(function()
360
	Char.LeftWing:destroy()
361
	Char.ReaperShadowHead:destroy()
362
end)
363
364
for _,v in next, Char:children() do
365
	if(v:IsA'BasePart' and v.Transparency < 1 and v ~= Head)then
366
		NewInstance("SelectionBox",v,{Adornee=v,LineThickness=.01,Color3=C3.N(1,1,0)})
367
		if(v ~= Head)then IN("BlockMesh",v) end
368
	end
369
end
370
371
local HaloHandle = NewInstance("Part",Halo,{Size=V3.N(.05,.05,.05),Transparency=1,CanCollide=false,Anchored=false,Locked=true,})
372
local WingHandle = NewInstance("Part",Wings,{Size=V3.N(.05,.05,.05),Transparency=1,CanCollide=false,Anchored=false,Locked=true,})
373
374
for i = 1, 360,5 do
375
	local part = NewInstance("Part",Halo,{BrickColor=BrickColor.new"New Yeller",Material=Enum.Material.Neon,Size=V3.N(0.69,0.1,0.3),Anchored=false,CanCollide=false,Locked=true,Transparency=.6})
376
	local weld = NewInstance("Weld",part,{Part0=HaloHandle,Part1=part,C0=CF.A(0,M.R(i),0)*CF.N(0,0,-.6)})
377
end
378
379
if(PlayerSize ~= 1)then
380
	for _,v in next, Char:GetDescendats() do
381
		if(v:IsA'BasePart')then
382
			v.Size = v.Size * PlayerSize
383
		end
384
	end
385
end
386
387
local Music = Sound(Char,MusicID,1,3,true,false,true)
388
Music.Name = 'Music'
389
390
-- Wing Creation
391
local FeatherWelds = {{},{}}
392
local inc = 1
393
for aa = 1, 4 do
394
	local lastFeather;
395
	FeatherWelds[1][aa] = {}
396
	for i = 1, 4+inc do
397
		local feather = NewInstance("Part",Wings,{CustomPhysicalProperties=PhysicalProperties.new(0,0,0,0,0),TopSurface=10,BottomSurface=10,Size=V3.N(2,.5,.75),CanCollide=false,Color=C3.N(1,1,1)})
398
		NewInstance("SpecialMesh",feather,{MeshType=Enum.MeshType.Sphere})
399
		if(lastFeather)then
400
			table.insert(FeatherWelds[1][aa],NewInstance("Weld",feather,{Part0=lastFeather,Part1=feather,C0=CF.N(.5,.25,0)*CF.A(0,0,M.R(-5))}))
401
		else
402
			table.insert(FeatherWelds[1][aa],NewInstance("Weld",feather,{Part0=feather,Part1=WingHandle,C0=CF.N(-2,aa/4,0)*CF.A(0,0,M.R(-5))}))
403
		end
404
		lastFeather = feather
405
	end
406
	inc = inc + 1
407
end
408
409
local inc = 1
410
for aa = 1, 4 do
411
	local lastFeather;
412
	FeatherWelds[2][aa] = {}
413
	for i = 1, 4+inc do
414
		local feather = NewInstance("Part",Wings,{CustomPhysicalProperties=PhysicalProperties.new(0,0,0,0,0),TopSurface=10,BottomSurface=10,Size=V3.N(2,.5,.75),CanCollide=false,Color=C3.N(1,1,1)})
415
		NewInstance("SpecialMesh",feather,{MeshType=Enum.MeshType.Sphere})
416
		if(lastFeather)then
417
			table.insert(FeatherWelds[2][aa],NewInstance("Weld",feather,{Part0=lastFeather,Part1=feather,C0=CF.N(-.5,.25,0)*CF.A(0,0,M.R(5))}))
418
		else
419
			table.insert(FeatherWelds[2][aa],NewInstance("Weld",feather,{Part0=feather,Part1=WingHandle,C0=CF.N(2,aa/4,0)*CF.A(0,0,M.R(5))}))
420
		end
421
		lastFeather = feather
422
	end
423
	inc = inc + 1
424
end
425
426
--// Stop animations \\--
427
for _,v in next, Hum:GetPlayingAnimationTracks() do
428
	v:Stop();
429
end
430
431
pcall(game.Destroy,Char:FindFirstChild'Animate')
432
pcall(game.Destroy,Hum:FindFirstChild'Animator')
433
434
--// Joints \\--
435
436
local LS = NewInstance('Motor',Char,{Part0=Torso,Part1=LArm,C0 = CF.N(-1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
437
local RS = NewInstance('Motor',Char,{Part0=Torso,Part1=RArm,C0 = CF.N(1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
438
local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)})
439
local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
440
local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
441
local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
442
local HW = NewInstance('Motor',Char,{Part0=Head,Part1=HaloHandle,C0=CF.N(0,2,0)}) 
443
local WW = NewInstance('Motor',Char,{Part0=Torso,Part1=WingHandle,C0=CF.N(0,1.5,1.5)}) 
444
445
local LSC0 = LS.C0
446
local RSC0 = RS.C0
447
local NKC0 = NK.C0
448
local LHC0 = LH.C0
449
local RHC0 = RH.C0
450
local RJC0 = RJ.C0
451
452
--// Artificial HB \\--
453
454
local ArtificialHB = IN("BindableEvent", script)
455
ArtificialHB.Name = "Heartbeat"
456
457
script:WaitForChild("Heartbeat")
458
459
local tf = 0
460
local allowframeloss = false
461
local tossremainder = false
462
local lastframe = tick()
463
local frame = 1/Frame_Speed
464
ArtificialHB:Fire()
465
466
game:GetService("RunService").Heartbeat:connect(function(s, p)
467
	tf = tf + s
468
	if tf >= frame then
469
		if allowframeloss then
470
			script.Heartbeat:Fire()
471
			lastframe = tick()
472
		else
473
			for i = 1, math.floor(tf / frame) do
474
				ArtificialHB:Fire()
475
			end
476
			lastframe = tick()
477
		end
478
		if tossremainder then
479
			tf = 0
480
		else
481
			tf = tf - frame * math.floor(tf / frame)
482
		end
483
	end
484
end)
485
486
function swait(num)
487
	if num == 0 or num == nil then
488
		ArtificialHB.Event:wait()
489
	else
490
		for i = 0, num do
491
			ArtificialHB.Event:wait()
492
		end
493
	end
494
end
495
496
497
--// Effect Function(s) \\--
498
499
500
function Chat(text)
501
	--if(game.PlaceId ~= 843468296)then
502
		coroutine.wrap(function()
503
			if(Char:FindFirstChild'ChatGUI')then Char.ChatGUI:destroy() end
504
			local BBG = NewInstance("BillboardGui",Char,{Name='ChatGUI',Size=UDim2.new(0,100,0,40),StudsOffset=V3.N(0,3,0),Adornee=Head})
505
			local Txt = NewInstance("TextLabel",BBG,{Text = "",BackgroundTransparency=1,TextColor3=C3.N(1,1,0),BorderSizePixel=0,Font=Enum.Font.Garamond,TextSize=30,TextStrokeTransparency=1,Size=UDim2.new(1,0,.5,0)})
506
			local SND = Sound(Head,418252437,M.RNG(9,11)/10,3,false,false,true)
507
			for i = 1, #text do
508
				delay(i/25, function()
509
					SND.Pitch = M.RNG(9,11)/10
510
					SND.Volume = 3
511
					SND.Parent = Effects
512
					SND:Play()
513
					Txt.Text = text:sub(1,i)
514
				end)
515
			end
516
			delay((#text/25)+2, function()
517
				Txt.Text = ""
518
				for i = 1, #text do
519
					Txt.Text = Txt.Text.. string.char(M.RNG(0,126))
520
				end
521
			end)
522
			delay((#text/25)+3, function()
523
				BBG:destroy()
524
				SND:destroy()
525
			end)
526
		end)()
527
	--else
528
	--	Chat2(text)
529
	--end
530
end
531
532
function Chat2(text)
533
	coroutine.wrap(function()
534
		if(Char:FindFirstChild'ChatGUI')then Char.ChatGUI:destroy() end
535
		local BBG = NewInstance("BillboardGui",Char,{Name='ChatGUI',Size=UDim2.new(0,100,0,40),StudsOffset=V3.N(0,3,0),Adornee=Head})
536
		local offset = 0;
537
		local xsize = 0;
538
		for i = 1, #text do
539
			offset = offset - 16
540
			xsize = xsize + 32 	
541
			delay(i/25, function()
542
				local Txt = NewInstance("TextLabel",BBG,{Text = text:sub(i,i),Position=UDim2.new(0,offset,0,0),BackgroundTransparency=1,TextColor3=C3.N(1,1,0),BorderSizePixel=0,Font=Enum.Font.Garamond,TextSize=40,TextStrokeTransparency=1,Size=UDim2.new(1,0,.5,0)})
543
				offset = offset + 32
544
				while Txt and Txt.Parent do
545
					Txt.Rotation = M.RNG(-15,15)
546
					swait()
547
				end
548
			end)
549
		end
550
		BBG.Size = UDim2.new(0,xsize,0,40)
551
		delay((#text/25)+3, function()
552
			for _,v in next, BBG:children() do
553
				pcall(function() v.Text = string.char(M.RNG(0,126)) end)
554
			end
555
		end)
556
		delay((#text/25)+4, function()
557
			BBG:destroy()
558
		end)
559
	end)()
560
end
561
562
563
function Transparency(trans)
564
	for _,v in next, Char:children() do
565
		if(v:IsA'BasePart' and v ~= Root and v ~= HaloHandle and v ~= WingHandle)then
566
			v.Transparency = trans
567
			local sbox = v:findFirstChild'SelectionBox'
568
			if(sbox)then sbox.Transparency=trans end
569
		elseif(v:IsA'Accessory' and v:FindFirstChild'Handle')then
570
			v.Handle.Transparency=trans
571
		end
572
	end	
573
	for _,v in next, Wings:children() do
574
		if(v:IsA'BasePart' and v ~= WingHandle)then
575
			v.Transparency = trans
576
			local sbox = v:findFirstChild'SelectionBox'
577
			if(sbox)then sbox.Transparency=trans end
578
		end
579
	end	
580
	for _,v in next, Halo:children() do
581
		if(v:IsA'BasePart' and v ~= HaloHandle)then
582
			v.Transparency = trans
583
			local sbox = v:findFirstChild'SelectionBox'
584
			if(sbox)then sbox.Transparency=trans end
585
		end
586
	end	
587
end
588
589
local FXTable = {}
590
591
function Bezier(startpos, pos2, pos3, endpos, t)
592
	local A = startpos:lerp(pos2, t)
593
	local B  = pos2:lerp(pos3, t)
594
	local C = pos3:lerp(endpos, t)
595
	local lerp1 = A:lerp(B, t)
596
	local lerp2 = B:lerp(C, t)
597
	local cubic = lerp1:lerp(lerp2, t)
598
	return cubic
599
end
600
601
function Tween(obj,props,time,easing,direction,repeats,backwards)
602
	local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
603
	local tween = S.TweenService:Create(obj, info, props)
604
	
605
	tween:Play()
606
end
607
608
coroutine.resume(coroutine.create(function()
609
	while true do
610
		for i = 1, #FXTable do
611
			local data = FXTable[i]
612
			if(data)then
613
				local Frame = data.Frame
614
				local FX = data.Effect or 'ResizeAndFade'
615
				local Parent = data.Parent or Effects
616
				local Color = data.Color or C3.N(0,0,0)
617
				local Size = data.Size or V3.N(1,1,1)
618
				local MoveDir = data.MoveDirection or nil
619
				local MeshData = data.Mesh or nil
620
				local SndData = data.Sound or nil
621
				local Frames = data.Frames or 45
622
				local CFra = data.CFrame or Torso.CFrame
623
				local Settings = data.FXSettings or {}
624
				local Prt,Msh,Snd = data.Part,data.Mesh,data.Sound
625
				local grow = data.Grow
626
				
627
				local MoveSpeed = nil;
628
				if(MoveDir)then
629
					MoveSpeed = (CFra.p - MoveDir).magnitude/Frames
630
				end
631
				if(FX ~= 'Arc')then
632
					Frame = Frame + 1
633
					if(FX == "Fade")then
634
						Prt.Transparency  = (Frame/Frames)
635
					elseif(FX == "Resize")then
636
						if(not Settings.EndSize)then
637
							Settings.EndSize = V3.N(0,0,0)
638
						end
639
						if(Settings.EndIsIncrement)then
640
							if(Msh)then
641
								Msh.Scale = Msh.Scale + Settings.EndSize
642
							else
643
								Prt.Size = Prt.Size + Settings.EndSize
644
							end					
645
						else
646
							if(Msh)then
647
								Msh.Scale = Msh.Scale - grow/Frames
648
							else
649
								Prt.Size = Prt.Size - grow/Frames
650
							end
651
						end 
652
					elseif(FX == "ResizeAndFade")then
653
						if(not Settings.EndSize)then
654
							Settings.EndSize = V3.N(0,0,0)
655
						end
656
						if(Settings.EndIsIncrement)then
657
							if(Msh)then
658
								Msh.Scale = Msh.Scale + Settings.EndSize
659
							else
660
								Prt.Size = Prt.Size + Settings.EndSize
661
							end					
662
						else
663
							if(Msh)then
664
								Msh.Scale = Msh.Scale - grow/Frames
665
							else
666
								Prt.Size = Prt.Size - grow/Frames
667
							end
668
						end 
669
						Prt.Transparency = (Frame/Frames)
670
					end
671
					if(Settings.RandomizeCFrame)then
672
						Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360))
673
					end
674
					if(MoveDir and MoveSpeed)then
675
						local Orientation = Prt.Orientation
676
						Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed)
677
						Prt.Orientation = Orientation
678
					end
679
					if(Prt.Transparency >= 1 or Frame >= Frames)then
680
						Prt:destroy()
681
						table.remove(FXTable,i)
682
					else
683
						data.Frame = Frame
684
					end
685
				else
686
					local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End
687
					if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end
688
					if(start and endP)then
689
						local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
690
						local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
691
						Frame = Frame + Settings.Speed or 0.01
692
						if(Settings.Home)then
693
							endP = Settings.Home.CFrame
694
						end
695
						Prt.CFrame = Bezier(start, quarter, threequarter, endP, i)
696
						if(Prt.Transparency >= 1 or Frame >= Frames)then
697
							if(Settings.RemoveOnGoal)then
698
								Prt:destroy()
699
							end
700
						end
701
					else
702
					
703
					end
704
				end
705
			end
706
		end
707
		swait()
708
	end
709
end))
710
711
function Effect(data)
712
	local FX = data.Effect or 'ResizeAndFade'
713
	local Parent = data.Parent or Effects
714
	local Color = data.Color or C3.N(0,0,0)
715
	local Size = data.Size or V3.N(1,1,1)
716
	local MoveDir = data.MoveDirection or nil
717
	local MeshData = data.Mesh or nil
718
	local SndData = data.Sound or nil
719
	local Frames = data.Frames or 45
720
	local Manual = data.Manual or nil
721
	local Material = data.Material or nil
722
	local CFra = data.CFrame or Torso.CFrame
723
	local Settings = data.FXSettings or {}
724
	local Shape = data.Shape or Enum.PartType.Block
725
	local Snd,Prt,Msh;
726
	if(Manual and typeof(Manual) == 'Instance' and Manual:IsA'BasePart')then
727
		Prt = Manual
728
	else
729
		Prt = Part(Parent,Color,Material,Size,CFra,true,false)
730
		Prt.Shape = Shape
731
	end
732
	if(typeof(MeshData) == 'table')then
733
		Msh = Mesh(Prt,MeshData.MeshType,MeshData.MeshId,MeshData.TextureId,MeshData.Scale,MeshData.Offset)
734
	elseif(typeof(MeshData) == 'Instance')then
735
		Msh = MeshData:Clone()
736
		Msh.Parent = Prt
737
	elseif(Shape == Enum.PartType.Block)then
738
		Msh = Mesh(Prt,Enum.MeshType.Brick)
739
	end
740
	if(typeof(SndData) == 'table' or typeof(SndData) == 'Instance')then
741
		Snd = Sound(Prt,SndData.SoundId,SndData.Pitch,SndData.Volume,false,false,true)
742
	end
743
	if(Snd)then
744
		repeat wait() until Snd.Playing and Snd.IsLoaded and Snd.TimeLength > 0
745
		data.Frames = Snd.TimeLength * Frame_Speed/Snd.Pitch
746
	end
747
	data.Part = Prt
748
	data.Mesh = Msh
749
	data.Sound = Snd
750
	data.Frame = 0
751
	data.Size = (Msh and Msh.Scale or Size)
752
	Size = (Msh and Msh.Scale or Size)
753
	data.Grow = Size-(Settings.EndSize or (Msh and Msh.Scale or Size)/2)
754
	table.insert(FXTable,data)
755
	return Prt,Msh,Snd
756
end
757
758
function Zap(data)
759
	local sCF,eCF = data.StartCFrame,data.EndCFrame
760
	assert(sCF,"You need a start CFrame!")
761
	assert(eCF,"You need an end CFrame!")
762
	local parts = data.PartCount or 15
763
	local zapRot = data.ZapRotation or {-5,5}
764
	local startThick = data.StartSize or 3;
765
	local endThick = data.EndSize or startThick/2;
766
	local color = data.Color or BrickColor.new'Electric blue'
767
	local delay = data.Delay or 35
768
	local delayInc = data.DelayInc or 0
769
	local lastLightning;
770
	local MagZ = (sCF.p - eCF.p).magnitude
771
	local thick = startThick
772
	local inc = (startThick/parts)-(endThick/parts)
773
	
774
	for i = 1, parts do
775
		local pos = sCF.p
776
		if(lastLightning)then
777
			pos = lastLightning.CFrame*CF.N(0,0,MagZ/parts/2).p
778
		end
779
		delay = delay + delayInc
780
		local zapPart = Part(Effects,color,Enum.Material.Neon,V3.N(thick,thick,MagZ/parts),CF.N(pos),true,false)
781
		local posie = CF.N(pos,eCF.p)*CF.N(0,0,MagZ/parts).p+V3.N(M.RNG(unpack(zapRot)),M.RNG(unpack(zapRot)),M.RNG(unpack(zapRot)))
782
		if(parts == i)then
783
			local MagZ = (pos-eCF.p).magnitude
784
			zapPart.Size = V3.N(endThick,endThick,MagZ)
785
			zapPart.CFrame = CF.N(pos, eCF.p)*CF.N(0,0,-MagZ/2)
786
			Effect{Effect='ResizeAndFade',Size=V3.N(thick,thick,thick),CFrame=eCF*CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180)),Color=color,Frames=delay*2,FXSettings={EndSize=V3.N(thick*8,thick*8,thick*8)}}
787
		else
788
			zapPart.CFrame = CF.N(pos,posie)*CF.N(0,0,MagZ/parts/2)
789
		end
790
		
791
		lastLightning = zapPart
792
		Effect{Effect='Fade',Manual=zapPart,Frames=delay}
793
		
794
		thick=thick-inc
795
		
796
	end
797
end
798
799
800
function SoulSteal(whom)
801
	local torso = (whom:FindFirstChild'Head' or whom:FindFirstChild'Torso' or whom:FindFirstChild'UpperTorso' or whom:FindFirstChild'LowerTorso' or whom:FindFirstChild'HumanoidRootPart')
802
	if(torso and torso:IsA'BasePart')then
803
		local Model = Instance.new("Model",Effects)
804
		Model.Name = whom.Name.."'s Soul"
805
		whom:BreakJoints()
806
		local Soul = Part(Model,BrickColor.new'Really red','Glass',V3.N(.5,.5,.5),torso.CFrame,true,false)
807
		Soul.Name = 'Head'
808
		NewInstance("Humanoid",Model,{Health=0,MaxHealth=0})
809
		Effect{
810
			Effect="Arc",
811
			Manual = Soul,
812
			FXSettings={
813
				Start=torso.CFrame,
814
				Home = Torso,
815
				RemoveOnGoal = true,
816
			}
817
		}
818
		local lastPoint = Soul.CFrame.p
819
	
820
		for i = 0, 1, 0.01 do 
821
				local point = CFrame.new(lastPoint, Soul.Position) * CFrame.Angles(-math.pi/2, 0, 0)
822
				local mag = (lastPoint - Soul.Position).magnitude
823
				Effect{
824
					Effect = "Fade",
825
					CFrame = point * CF.N(0, mag/2, 0),
826
					Size = V3.N(.5,mag+.5,.5),
827
					Color = Soul.BrickColor
828
				}
829
				lastPoint = Soul.CFrame.p
830
			swait()
831
		end
832
		for i = 1, 5 do
833
			Effect{
834
				Effect="Fade",
835
				Color = BrickColor.new'Really red',
836
				MoveDirection = (Torso.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p
837
			}	
838
		end
839
	end
840
end
841
842
--// Other Functions \\ --
843
844
function getRegion(point,range,ignore)
845
    return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
846
end
847
848
function CastRay(startPos,endPos,range,ignoreList)
849
	local ray = Ray.new(startPos,(endPos-startPos).unit*range)
850
	local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
851
	return part,pos,norm,(pos and (startPos-pos).magnitude)
852
end
853
854
855
function WingFlutter(Alpha)
856
	Alpha = Alpha or .1
857
	for x = 1, 4 do
858
		if(FeatherWelds[1][x][1])then
859
			FeatherWelds[1][x][1].C0 = FeatherWelds[1][x][1].C0:lerp(CF.N(-2-.5*M.C(Sine/24),x/4,0-.2*-M.S(Sine/24)),Alpha)
860
		end
861
		for i = 2, #FeatherWelds[1][x] do
862
			FeatherWelds[1][x][i].C0 = FeatherWelds[1][x][i].C0:lerp(CF.N(.5,.25,0)*CF.A(0,0,M.R(-5+2*M.C(Sine/12))),Alpha)
863
		end
864
	end
865
	for x = 1, 4 do
866
		if(FeatherWelds[2][x][1])then
867
			FeatherWelds[2][x][1].C0 = FeatherWelds[2][x][1].C0:lerp(CF.N(2+.5*M.C(Sine/24),x/4,0-.4*M.S(Sine/24)),Alpha)
868
		end
869
		for i = 2, #FeatherWelds[2][x] do
870
			FeatherWelds[2][x][i].C0 = FeatherWelds[2][x][i].C0:lerp(CF.N(-.5,.25,0)*CF.A(0,0,M.R(5-2*M.C(Sine/12))),Alpha)
871
		end
872
	end
873
end
874
875
function clerp(startCF,endCF,alpha)
876
	return startCF:lerp(endCF, alpha)
877
end
878
879
function GetTorso(char)
880
	return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
881
end
882
883
function ShowDamage(Pos, Text, Time, Color)
884
	local Rate = (1 / 30)
885
	local Pos = (Pos or Vector3.new(0, 0, 0))
886
	local Text = (Text or "")
887
	local Time = (Time or 2)
888
	local Color = (Color or Color3.new(1, 0, 1))
889
	local EffectPart = NewInstance("Part",Effects,{
890
		Material=Enum.Material.SmoothPlastic,
891
		Reflectance = 0,
892
		Transparency = 1,
893
		BrickColor = BrickColor.new(Color),
894
		Name = "Effect",
895
		Size = Vector3.new(0,0,0),
896
		Anchored = true
897
	})
898
	local BillboardGui = NewInstance("BillboardGui",EffectPart,{
899
		Size = UDim2.new(1.25, 0, 1.25, 0),
900
		Adornee = EffectPart,
901
	})
902
	local TextLabel = NewInstance("TextLabel",BillboardGui,{
903
		BackgroundTransparency = 1,
904
		Size = UDim2.new(1, 0, 1, 0),
905
		Text = Text,
906
		Font = "Arial",
907
		TextColor3 = Color,
908
		TextStrokeColor3 = Color3.new(0,0,0),
909
		TextStrokeTransparency=0,
910
		TextScaled = true,
911
	})
912
	game.Debris:AddItem(EffectPart, (Time))
913
	EffectPart.Parent = game:GetService("Workspace")
914
	delay(0, function()
915
		local Frames = (Time / Rate)
916
		for Frame = 1, Frames do
917
			wait(Rate)
918
			local Percent = (Frame / Frames)
919
			EffectPart.CFrame = CFrame.new(Pos) + Vector3.new(0, Percent, 0)
920
			TextLabel.TextTransparency = Percent
921
			TextLabel.TextStrokeTransparency = Percent
922
		end
923
		if EffectPart and EffectPart.Parent then
924
			EffectPart:Destroy()
925
		end
926
	end)
927
end
928
929
930
function DealDamage(who,minDam,maxDam,Knock,Type,critChance,critMult)
931
	if(who)then
932
		local hum = who:FindFirstChildOfClass'Humanoid'
933
		local Damage = M.RNG(minDam,maxDam)
934
		local canHit = true
935
		if(hum)then
936
			for _, p in pairs(Hit) do
937
				if p[1] == hum then
938
					if(time() - p[2] < 0.1) then
939
						canHit = false
940
					else
941
						Hit[_] = nil
942
					end
943
				end
944
			end
945
			if(canHit)then
946
				table.insert(Hit,{hum,time()})
947
				if(hum.Health >= math.huge)then
948
					who:BreakJoints()
949
					if(who:FindFirstChild'Head' and hum.Health > 0)then
950
						ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "INSTANT", 1.5, C3.N(1,0,0))
951
					end
952
				else
953
					local player = S.Players:GetPlayerFromCharacter(who)
954
					if(Type == "Fire")then
955
						--idk..
956
					else
957
						local  c = Instance.new("ObjectValue",hum)
958
						c.Name = "creator"
959
						c.Value = Plr
960
						game:service'Debris':AddItem(c,0.35)
961
						if(M.RNG(1,100) <= (critChance or 0) and critMult > 1)then
962
							if(who:FindFirstChild'Head' and hum.Health > 0)then
963
								ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[CRIT] "..Damage*(critMult or 2), 1.5, BrickColor.new'New Yeller'.Color)
964
							end
965
							hum.Health = hum.Health - Damage*(critMult or 2)
966
						else
967
							if(who:FindFirstChild'Head' and hum.Health > 0)then
968
								ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), Damage, 1.5, DamageColor.Color)
969
							end
970
							hum.Health = hum.Health - Damage
971
						end
972
						if(Type == 'Knockback' and GetTorso(who))then
973
							local angle = GetTorso(who).Position - Root.Position + Vector3.new(0, 0, 0).unit
974
							local body = NewInstance('BodyVelocity',GetTorso(who),{
975
								P = 500,
976
								maxForce = V3.N(math.huge,0,math.huge),
977
								velocity = Root.CFrame.lookVector * Knock + Root.Velocity / 1.05
978
							})
979
							game:service'Debris':AddItem(body,.5)
980
						elseif(Type == "Electric")then
981
							if(M.RNG(1,100) >= critChance)then
982
								if(who:FindFirstChild'Head' and hum.Health > 0)then
983
									ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[PARALYZED]", 1.5, BrickColor.new"New Yeller".Color)
984
								end
985
								local asd = hum.WalkSpeed/2
986
								hum.WalkSpeed = asd
987
								local paralyzed = true
988
								coroutine.wrap(function()
989
									while paralyzed do
990
										swait(25)
991
										if(M.RNG(1,25) == 1)then
992
											if(who:FindFirstChild'Head' and hum.Health > 0)then
993
												ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[STATIC]", 1.5, BrickColor.new"New Yeller".Color)
994
											end
995
											hum.PlatformStand = true
996
										end
997
									end
998
								end)()
999
								delay(4, function()
1000
									paralyzed = false
1001
									hum.WalkSpeed = hum.WalkSpeed + asd
1002
								end)
1003
							end
1004
							
1005
						elseif(Type == 'Knockdown' and GetTorso(who))then
1006
							local rek = GetTorso(who)
1007
							hum.PlatformStand = true
1008
							delay(1,function()
1009
								hum.PlatformStand = false
1010
							end)
1011
							local angle = (GetTorso(who).Position - (Root.Position + Vector3.new(0, 0, 0))).unit
1012
							local bodvol = NewInstance("BodyVelocity",rek,{
1013
								velocity = angle * Knock,
1014
								P = 5000,
1015
								maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
1016
							})
1017
							local rl = NewInstance("BodyAngularVelocity",rek,{
1018
								P = 3000,
1019
								maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
1020
								angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
1021
							})
1022
							game:GetService("Debris"):AddItem(bodvol, .5)
1023
							game:GetService("Debris"):AddItem(rl, .5)
1024
						end
1025
					end
1026
				end
1027
			end
1028
		end
1029
	end
1030
end
1031
1032
function AOEDamage(where,range,minDam,maxDam,Knock,Type,critChance,critMult)
1033
	for _,v in next, getRegion(where,range,{Char}) do
1034
		if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')then
1035
			DealDamage(v.Parent,minDam,maxDam,Knock,Type,critChance,critMult)
1036
		end
1037
	end
1038
end
1039
function AOEHeal(where,range,amount)
1040
	local healed = {}
1041
	for _,v in next, getRegion(where,range,{Char}) do
1042
		local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil)
1043
		if(hum and not healed[hum])then
1044
			hum.Health = hum.Health + amount
1045
			if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then
1046
				ShowDamage((v.Parent.Head.CFrame * CF.N(0, 0, (v.Parent.Head.Size.Z / 2)).p+V3.N(0,1.5,0)), "+"..amount, 1.5, BrickColor.new'Lime green'.Color)
1047
			end
1048
		end
1049
	end
1050
end
1051
1052
1053
--// Attack Functions \\--
1054
1055
function Smite()
1056
	Zap{
1057
		StartCFrame=CF.N(Mouse.Hit.p)*CF.N(0,500,0),
1058
		EndCFrame=CF.N(Mouse.Hit.p),
1059
		ZapRotation = {-5,5},
1060
		StartSize = 5,
1061
		EndSize = 1,
1062
		Delay=5,
1063
		DelayInc=1,
1064
	}
1065
	AOEDamage(Mouse.Hit.p,3,15,35,false,"Electric",75,1)
1066
end
1067
1068
function LightningStorm()
1069
	Attack = true
1070
	Rooted = true
1071
	NeutralAnims = false
1072
	Hum.AutoRotate = false
1073
	repeat swait()
1074
		Root.CFrame = Root.CFrame:lerp(CF.N(Root.CFrame.p,V3.N(Mouse.Hit.x,Root.CFrame.y,Mouse.Hit.z)),.1)
1075
		local Alpha = .3
1076
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0109784482, 0.00629424211+.25*M.C(Sine/12), 0.00456619123, 0, 0.00628576428, 0.999979854, 0, 0.99998033, -0.00628576661, -0.999999702, -7.27595761e-12, 0)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1077
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1078
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1079
		LS.C0 = clerp(LS.C0,CFrame.new(-1.51089513, 0.618211091+.1*M.C(Sine/12), -0.00361234695, 0.982347131, 0.18641524, 0.0156120034, -0.186530694, 0.982429147, 0.00628500059, -0.0141660646, -0.0090861693, 0.999858379)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1080
		RS.C0 = clerp(RS.C0,CFrame.new(1.17289495, 0.616719723+.1*M.C(Sine/12), 0.011598235, -0.52721566, -0.849588335, 0.0156120034, 0.849726856, -0.527186096, 0.00628500059, 0.0028907666, 0.0165794864, 0.999858379)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1081
		NK.C0 = clerp(NK.C0,CFrame.new(0.00954779983, 1.49905622, 0.00156322215, -1.82539225e-07, 0.0574940294, -0.998345554, 0.00628540665, 0.998326242, 0.0574929155, 0.999979854, -0.00627500098, -0.000361557119),Alpha)
1082
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1083
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1084
		WingFlutter()
1085
	until not S.UserInputService:IsKeyDown(Enum.KeyCode.C)
1086
	local where = Mouse.Hit.p
1087
	for i = 0, 6, .1 do
1088
		swait()
1089
		local Alpha = .3
1090
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0109784482, 0.00629424211+.25*M.C(Sine/12), 0.00456619123, 0, 0.00628576428, 0.999979854, 0, 0.99998033, -0.00628576661, -0.999999702, -7.27595761e-12, 0)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1091
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1092
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1093
		LS.C0 = clerp(LS.C0,CFrame.new(-1.51089513, 0.618211091+.1*M.C(Sine/12), -0.00361234695, 0.982347131, 0.18641524, 0.0156120034, -0.186530694, 0.982429147, 0.00628500059, -0.0141660646, -0.0090861693, 0.999858379)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1094
		RS.C0 = clerp(RS.C0,CFrame.new(1.17289495, 0.616719723+.1*M.C(Sine/12), 0.011598235, -0.52721566, -0.849588335, 0.0156120034, 0.849726856, -0.527186096, 0.00628500059, 0.0028907666, 0.0165794864, 0.999858379)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1095
		NK.C0 = clerp(NK.C0,CFrame.new(0.00954779983, 1.49905622, 0.00156322215, -1.82539225e-07, 0.0574940294, -0.998345554, 0.00628540665, 0.998326242, 0.0574929155, 0.999979854, -0.00627500098, -0.000361557119),Alpha)
1096
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1097
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1098
		WingFlutter()
1099
	end
1100
	for i = 0, 1.4, .1 do
1101
		swait()
1102
		local Alpha = .3
1103
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0109784482, 0.00629424211+.25*M.C(Sine/12), 0.00456619123, 0, 0.00628576428, 0.999979854, 0, 0.99998033, -0.00628576661, -0.999999702, -7.27595761e-12, 0)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1104
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1105
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1106
		LS.C0 = clerp(LS.C0,CFrame.new(-1.51089513, 0.618211091+.1*M.C(Sine/12), -0.00361234695, 0.982347131, 0.18641524, 0.0156120034, -0.186530694, 0.982429147, 0.00628500059, -0.0141660646, -0.0090861693, 0.999858379)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1107
		RS.C0 = clerp(RS.C0,CFrame.new(1.39888549, 0.921575725+.1*M.C(Sine/12), 0.00929622632, -0.917422354, -0.397608638, 0.0156120034, 0.397739291, -0.917477012, 0.00628500059, 0.0118246814, 0.0119755063, 0.999858379)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1108
		NK.C0 = clerp(NK.C0,CFrame.new(0.00954779983, 1.49905622, 0.00156322215, -1.82539225e-07, 0.0574940294, -0.998345554, 0.00628540665, 0.998326242, 0.0574929155, 0.999979854, -0.00627500098, -0.000361557119),Alpha)
1109
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1110
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1111
		WingFlutter()
1112
	end
1113
	for i = 0, .8, .1 do
1114
		swait()
1115
		local Alpha = .3
1116
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0109784482, 0.00629424211+.25*M.C(Sine/12), 0.00456619123, 0, 0.00628576428, 0.999979854, 0, 0.99998033, -0.00628576661, -0.999999702, -7.27595761e-12, 0)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1117
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1118
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1119
		LS.C0 = clerp(LS.C0,CFrame.new(-1.51089513, 0.618211091+.1*M.C(Sine/12), -0.00361234695, 0.982347131, 0.18641524, 0.0156120034, -0.186530694, 0.982429147, 0.00628500059, -0.0141660646, -0.0090861693, 0.999858379)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1120
		RS.C0 = clerp(RS.C0,CFrame.new(1.39452517, 0.577189744, 0.0083861379, 0.913589835, -0.406337589, 0.0156120034, 0.406289399, 0.913722992, 0.00628500059, -0.0168188754, 0.000601077918, 0.999858379)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1121
		NK.C0 = clerp(NK.C0,CFrame.new(0.00954779983, 1.49905622, 0.00156322215, -1.82539225e-07, 0.0574940294, -0.998345554, 0.00628540665, 0.998326242, 0.0574929155, 0.999979854, -0.00627500098, -0.000361557119),Alpha)
1122
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1123
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1124
		WingFlutter()
1125
	end
1126
	
1127
	for i = 0, 6, .1 do
1128
		pcall(function() Sound(Torso,481719045,1,1,false,true,true) end)
1129
		local pos = CF.N(where)*CF.N(M.RNG(-1000,1000,100),0,M.RNG(-1000,1000,100))
1130
		local part,rayPos,norm,dist = CastRay(pos*CF.N(0,500,0).p,pos.p,1500)
1131
		Zap{
1132
			StartCFrame=pos*CF.N(0,500,0),
1133
			EndCFrame=CF.N(rayPos),
1134
			ZapRotation = {-5,5},
1135
			StartSize = 1,
1136
			EndSize = .5,
1137
			Delay=10,
1138
			DelayInc=2,
1139
		}
1140
		AOEDamage(rayPos,5,45,65,0,'Electric',25,2)
1141
		swait()
1142
		local Alpha = .3
1143
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0109784482, 0.00629424211+.25*M.C(Sine/12), 0.00456619123, 0, 0.00628576428, 0.999979854, 0, 0.99998033, -0.00628576661, -0.999999702, -7.27595761e-12, 0)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1144
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1145
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1146
		LS.C0 = clerp(LS.C0,CFrame.new(-1.51089513, 0.618211091+.1*M.C(Sine/12), -0.00361234695, 0.982347131, 0.18641524, 0.0156120034, -0.186530694, 0.982429147, 0.00628500059, -0.0141660646, -0.0090861693, 0.999858379)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1147
		RS.C0 = clerp(RS.C0,CFrame.new(1.39452517, 0.577189744, 0.0083861379, 0.913589835, -0.406337589, 0.0156120034, 0.406289399, 0.913722992, 0.00628500059, -0.0168188754, 0.000601077918, 0.999858379)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1148
		NK.C0 = clerp(NK.C0,CFrame.new(0.00954779983, 1.49905622, 0.00156322215, -1.82539225e-07, 0.0574940294, -0.998345554, 0.00628540665, 0.998326242, 0.0574929155, 0.999979854, -0.00627500098, -0.000361557119),Alpha)
1149
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1150
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1151
		WingFlutter()
1152
	end
1153
	Hum.AutoRotate = true
1154
	Attack = false
1155
	NeutralAnims = true
1156
	Rooted = false
1157
end
1158
1159
1160
function HolyBomb()
1161
	Attack = true
1162
	Chat2("It's time to cleanse this world!")
1163
	swait(60)
1164
	Rooted = true
1165
	NeutralAnims = false
1166
	for i = 0, 6, 0.1 do
1167
		swait()
1168
		local Alpha = .05
1169
		Zap{
1170
			StartCFrame=CF.N(Root.CFrame.p)*CF.N(0,250,0),
1171
			EndCFrame=CF.N(Root.CFrame.p),
1172
			ZapRotation = {-15,15},
1173
			Color=C3.N(1,1,0),
1174
			StartSize = 1,
1175
			EndSize = 1,
1176
			Delay=5,
1177
			DelayInc=1,
1178
		}
1179
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.20455468e-13, 0.00629198179, 1.40559132e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496),Alpha)
1180
		LH.C0 = clerp(LH.C0,CFrame.new(-0.507250547, -0.110386491, -0.672860861, 0.999877751, -0.00782374945, 0.013510122, -9.81397825e-05, 0.862201095, 0.506566346, -0.0156116877, -0.506505728, 0.862094939),Alpha)
1181
		RH.C0 = clerp(RH.C0,CFrame.new(0.487759113, -0.105839849, -0.680253506, 0.999877751, -0.00782374945, 0.013510122, -9.81397825e-05, 0.862201095, 0.506566346, -0.0156116877, -0.506505728, 0.862094939),Alpha)
1182
		LS.C0 = clerp(LS.C0,CFrame.new(-1.04961777, 0.162827805, -0.367515624, 0.65209949, -0.758071303, 0.00966797117, 0.478066534, 0.401272744, -0.781301916, 0.588403046, 0.514108539, 0.624078274),Alpha)
1183
		RS.C0 = clerp(RS.C0,CFrame.new(1.01012444, 0.107069746, -0.463154793, 0.633318067, 0.773830771, 0.00966686849, -0.478192717, 0.401122361, -0.781301916, -0.608473003, 0.490190029, 0.624078274),Alpha)
1184
		NK.C0 = clerp(NK.C0,CFrame.new(6.11957148e-06, 1.44927096, -0.405988753, 0.999999583, 7.24568963e-07, -6.8731606e-07, 6.33735908e-09, 0.684226215, 0.729269981, 1.00024045e-06, -0.729269683, 0.684225917),Alpha)
1185
		WingFlutter()
1186
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),.3)
1187
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),.3)
1188
	end
1189
	for i = 0, .8, 0.1 do
1190
		swait()
1191
		local Alpha = .3
1192
		RJ.C0 = clerp(RJ.C0,CFrame.new(0.00439098151, 0.0666924566, 0.281248361, 0.999959052, 0.00860917568, -0.00265517179, -0.0086270012, 0.830053985, -0.557616353, -0.00259668194, 0.557616353, 0.830094337),Alpha)
1193
		LH.C0 = clerp(LH.C0,CFrame.new(-0.497570813, -0.936474979, -0.0477344394, 0.999878109, -0.00782567263, 0.0135120051, -9.73803981e-05, 0.862202823, 0.506563246, -0.0156142879, -0.506502926, 0.862096965),Alpha)
1194
		RH.C0 = clerp(RH.C0,CFrame.new(0.497439325, -0.931922615, -0.0551193655, 0.999878109, -0.00782567263, 0.0135120051, -9.73803981e-05, 0.862202823, 0.506563246, -0.0156142879, -0.506502926, 0.862096965),Alpha)
1195
		LS.C0 = clerp(LS.C0,CFrame.new(-1.30848432, 0.518583834, 0.0627421439, 0.758070946, 0.652100444, 0.0096699167, -0.401271075, 0.478066146, -0.781302929, -0.514110804, 0.588402867, 0.624077141),Alpha)
1196
		RS.C0 = clerp(RS.C0,CFrame.new(1.42235136, 0.462758094, -0.0433900952, 0.77383244, -0.633316636, 0.00966930948, 0.401121885, 0.478191316, -0.781302929, 0.49018833, 0.608476162, 0.624077141),Alpha)
1197
		NK.C0 = clerp(NK.C0,CFrame.new(0.00874680094, 1.45278561, 0.153901845, 0.999851108, 0.0168225225, 0.00386164617, -0.014445669, 0.938051641, -0.346193999, -0.00944628194, 0.346086651, 0.938155115),Alpha)
1198
	end
1199
	delay(1, function()
1200
		NeutralAnims = true
1201
		Rooted = false
1202
	end)
1203
	local start = NewInstance("Part",Effects,{Anchored=true,CanCollide=false,Transparency=1,CFrame=Root.CFrame})
1204
	Sound(Char,579687077,.5,2,false,true,true)
1205
	Sound(Char,239000203,.75,2,false,true,true)
1206
	for i = 1, 140 do
1207
		AOEDamage(start.CFrame.p,95,1000,1000,0,'Normal',100,5)
1208
		Effect{
1209
			Effect='ResizeAndFade',
1210
			Mesh={MeshType=Enum.MeshType.Sphere},
1211
			Color=C3.N(1,1,0),
1212
			Material=Enum.Material.Neon,
1213
			CFrame=CF.N(start.CFrame.p)*CF.N(M.RNG(-75,75),M.RNG(-75,75),M.RNG(-75,75)),
1214
			Frames=60,
1215
			FXSettings={
1216
				EndIsIncrement=true,
1217
				EndSize=V3.N(.6,.6,.6)
1218
			}
1219
		}
1220
		swait(1)
1221
	end
1222
	Attack = false
1223
end
1224
1225
function Lazor()
1226
	Rooted = true
1227
	Attack = true
1228
	Hum.AutoRotate=false
1229
	NeutralAnims = false
1230
	Chat2("Begone, sinner.")
1231
	--Effect{Effect='Resize',Mesh={MeshType=Enum.MeshType.FileMesh},Size=V3.N(1,1,1),CFrame=,Frames=60,FXSettings={EndSize=V3.N(4,4,4)}}
1232
	local snd = Sound(Torso,705787045,1,1,true,false,false)
1233
	for i = 0, 6, .1 do
1234
		Effect{
1235
			Effect='Fade',
1236
			Color=BrickColor.new'New Yeller',
1237
			Size=V3.N((i/2),(i/2),(i/2)),
1238
			Material=Enum.Material.Neon,
1239
			Mesh={MeshType=Enum.MeshType.Sphere},
1240
			Frames=15,
1241
			CFrame=RArm.CFrame*CF.N(0,-1.5,0),
1242
			Sound=false
1243
		}
1244
		swait()
1245
		Root.CFrame =Root.CFrame:lerp(CF.N(Root.CFrame.p,V3.N(Mouse.Hit.x,Root.CFrame.y,Mouse.Hit.z)),.1)
1246
		local Alpha = .1
1247
		Change = .5
1248
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.20625471e-13, 0+.25*M.C(Sine/12), -6.20266655e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1249
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1250
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1251
		LS.C0 = clerp(LS.C0,CFrame.new(-1.09520316, 0.319447398+.1*M.C(Sine/12), 0.380316556, 0.862274766, -0.50140965, 0.071203351, 0.413908899, 0.77874434, 0.471420079, -0.291823745, -0.377021939, 0.879029453)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1252
		RS.C0 = clerp(RS.C0,CFrame.new(1.46309233, 0.634022355+.1*M.C(Sine/12), 0.0835287869, -0.816918671, -0.539614618, 0.203615591, -0.392316222, 0.261119068, -0.881989181, 0.422766358, -0.800395131, -0.425012559),Alpha)
1253
		NK.C0 = clerp(NK.C0,CFrame.new(-7.09252117e-06, 1.4989512, -0.0144005567, 0.999999225, 3.67464963e-07, -1.62050128e-07, -3.56478267e-07, 0.997964799, 0.0637686923, 1.8440187e-07, -0.0637686551, 0.997963905),Alpha)
1254
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1255
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1256
		WingFlutter()
1257
	end
1258
	snd:Play()
1259
	for i = 0, 24, .1 do
1260
		swait()
1261
		Effect{
1262
			Effect='Fade',
1263
			Color=BrickColor.new'New Yeller',
1264
			Size=V3.N(3,3,3),
1265
			Material=Enum.Material.Neon,
1266
			Mesh={MeshType=Enum.MeshType.Sphere},
1267
			Frames=15,
1268
			CFrame=RArm.CFrame*CF.N(0,-1.5,0),
1269
		}
1270
		if(Mouse.Target)then
1271
			Zap{
1272
				StartCFrame=RArm.CFrame*CF.N(0,-1.5,0),
1273
				EndCFrame=Mouse.Hit,
1274
				ZapRotation = {-5,5},
1275
				PartCount=10,
1276
				StartSize = .5,
1277
				EndSize = .5,
1278
				Color = C3.N(1,1,0),
1279
				DelayInc=0,
1280
				Delay =5,
1281
			}
1282
		end
1283
		AOEDamage(Mouse.Hit.p,3,10,15,false,"Electric",25,2)
1284
		Root.CFrame = Root.CFrame:lerp(CF.N(Root.CFrame.p,V3.N(Mouse.Hit.x,Root.CFrame.y,Mouse.Hit.z)),.1)
1285
		local Alpha = .1
1286
		Change = .5
1287
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.20625471e-13, 0+.25*M.C(Sine/12), -6.20266655e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1288
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1289
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1290
		LS.C0 = clerp(LS.C0,CFrame.new(-1.09520316, 0.319447398+.1*M.C(Sine/12), 0.380316556, 0.862274766, -0.50140965, 0.071203351, 0.413908899, 0.77874434, 0.471420079, -0.291823745, -0.377021939, 0.879029453)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1291
		RS.C0 = clerp(RS.C0,CFrame.new(1.42641699, 0.76597631+.1*M.C(Sine/12), -0.207831383, 0.954205394, 0.219142094, 0.203637421, 0.275958538, -0.38200587, -0.881996989, -0.115491927, 0.897801638, -0.424986154),Alpha)
1292
		NK.C0 = clerp(NK.C0,CFrame.new(-7.09252117e-06, 1.4989512, -0.0144005567, 0.999999225, 3.67464963e-07, -1.62050128e-07, -3.56478267e-07, 0.997964799, 0.0637686923, 1.8440187e-07, -0.0637686551, 0.997963905),Alpha)
1293
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1294
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1295
		WingFlutter()
1296
	end
1297
	coroutine.wrap(function()
1298
		for i = 1, 0,-.05 do
1299
			snd.Volume = i
1300
			swait()
1301
		end
1302
		snd:destroy()
1303
	end)()
1304
	Rooted = false
1305
	Attack = false
1306
	Hum.AutoRotate=true
1307
	NeutralAnims = true
1308
end
1309
1310
function Teleport()
1311
	Rooted = true
1312
	Attack = true
1313
	Hum.AutoRotate=false
1314
	NeutralAnims = false
1315
	repeat swait() 
1316
		Root.CFrame =Root.CFrame:lerp(CF.N(Root.CFrame.p,V3.N(Mouse.Hit.x,Root.CFrame.y,Mouse.Hit.z)),.1)
1317
		local Alpha = .1
1318
		Change = .5
1319
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.20625471e-13, 0+.25*M.C(Sine/12), -6.20266655e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1320
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1321
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1322
		LS.C0 = clerp(LS.C0,CFrame.new(-1.30013025, 0.503248096+.1*M.C(Sine/12), -0.596688211, 0.828000546, -0.560713708, -6.38549547e-10, 0.003524723, 0.00520492578, -0.999980271, 0.560702682, 0.827984214, 0.00628613681),Alpha)
1323
		RS.C0 = clerp(RS.C0,CFrame.new(1.27528536, 0.496638358+.1*M.C(Sine/12), -0.579756379, 0.810091436, 0.586290658, -1.40121659e-09, -0.00368550443, 0.00509234518, -0.999980271, -0.586279035, 0.810075462, 0.00628613681),Alpha)
1324
		NK.C0 = clerp(NK.C0,CFrame.new(-7.09252117e-06, 1.4989512, -0.0144005567, 0.999999225, 3.67464963e-07, -1.62050128e-07, -3.56478267e-07, 0.997964799, 0.0637686923, 1.8440187e-07, -0.0637686551, 0.997963905),Alpha)
1325
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1326
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1327
		WingFlutter()
1328
	until not S.UserInputService:IsKeyDown(Enum.KeyCode.Q)
1329
	local p = Mouse.Hit.p
1330
1331
	--
1332
	local circle = NewInstance("Part",Effects,{CFrame=Root.CFrame*CF.N(0,0,-2),Size=V3.N(.05,.05,.05),Transparency=1,Anchored=true,CanCollide=false})
1333
	local decalF = NewInstance("Decal",circle,{Name='Front',Texture="rbxassetid://524002938",Color3=C3.N(1,1,0),Face=Enum.NormalId.Front,Transparency = 1})
1334
	local decalB = NewInstance("Decal",circle,{Name='Back',Texture="rbxassetid://524002938",Color3=C3.N(1,1,0),Face=Enum.NormalId.Back,Transparency=1})
1335
	local asd = CF.N(p,Root.Position)
1336
	local circle2=circle:Clone()
1337
	circle2.Parent = Effects
1338
	circle2.CFrame = asd*CF.N(0,4,0)
1339
	Root.Anchored = true
1340
	for i = 0, 3, .1 do
1341
		swait() 
1342
		local Alpha = .1
1343
		Change = .5
1344
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.20625471e-13, 0+.25*M.C(Sine/12), -6.20266655e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1345
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1346
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1347
		LS.C0 = clerp(LS.C0,CFrame.new(-1.21875513, 0.506383479+.1*M.C(Sine/12), -0.0979118943, 0.810091376, 0.586290598, 2.45534384e-08, -0.00368548767, 0.0050923666, -0.999980271, -0.586278975, 0.810075402, 0.00628614426),Alpha)
1348
		RS.C0 = clerp(RS.C0,CFrame.new(1.20952582, 0.499788254+.1*M.C(Sine/12), -0.0786797404, 0.828000546, -0.560713649, -2.55837147e-08, 0.0035247067, 0.00520494673, -0.999980271, 0.560702622, 0.827984214, 0.00628614519),Alpha)
1349
		NK.C0 = clerp(NK.C0,CFrame.new(-7.09252117e-06, 1.4989512, -0.0144005567, 0.999999225, 3.67464963e-07, -1.62050128e-07, -3.56478267e-07, 0.997964799, 0.0637686923, 1.8440187e-07, -0.0637686551, 0.997963905),Alpha)
1350
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1351
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1352
		WingFlutter()
1353
		circle.Size = circle.Size + V3.N(.2,.2,0)
1354
		circle2.Size = circle2.Size + V3.N(.2,.2,0)
1355
		circle.Front.Transparency=1-(i/3)
1356
		circle.Back.Transparency=1-(i/3)
1357
		circle2.Front.Transparency=1-(i/3)
1358
		circle2.Back.Transparency=1-(i/3)
1359
		
1360
		circle.CFrame=circle.CFrame*CF.A(0,0,M.R(5))
1361
		circle2.CFrame=circle2.CFrame*CF.A(0,0,M.R(5))
1362
	end
1363
	Root.Anchored = true
1364
	for i = 1, 3,.1 do
1365
		Root.Anchored = true
1366
		swait()
1367
		local Alpha = .1
1368
		Change = .5
1369
		RJ.C0 = clerp(RJ.C0,CFrame.new(3.20625471e-13, 0+.25*M.C(Sine/12), -6.20266655e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1370
		LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1371
		RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1372
		LS.C0 = clerp(LS.C0,CFrame.new(-1.09520316, 0.319447398+.1*M.C(Sine/12), 0.380316556, 0.862274766, -0.50140965, 0.071203351, 0.413908899, 0.77874434, 0.471420079, -0.291823745, -0.377021939, 0.879029453)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1373
		RS.C0 = clerp(RS.C0,CFrame.new(1.38953996, 0.579314649+.1*M.C(Sine/12), 0.00156672322, 0.963396549, -0.267624378, 0.0156119959, 0.267557263, 0.9635216, 0.0062854127, -0.0167246256, -0.0018782462, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1374
		NK.C0 = clerp(NK.C0,CFrame.new(-7.09252117e-06, 1.4989512, -0.0144005567, 0.999999225, 3.67464963e-07, -1.62050128e-07, -3.56478267e-07, 0.997964799, 0.0637686923, 1.8440187e-07, -0.0637686551, 0.997963905),Alpha)
1375
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1376
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1377
		WingFlutter()
1378
	end
1379
	for i = 0, 2, .1 do
1380
		swait()
1381
		local Alpha = .1
1382
		Change = .5
1383
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.00288401172, -0.186870754+.25*M.C(Sine/12), -0.184415281, 0.999970019, -0.00748212682, -0.00185852405, 0.00747100171, 0.880958676, 0.473134309, -0.00190276653, -0.473133981, 0.880988002)*CF.A(-M.R(10+5*M.S(Sine/12)),0,0),Alpha)
1384
		LH.C0 = clerp(LH.C0,CFrame.new(-0.455414772, -0.964986682, 0.0489092469, 0.999094486, 0.0300228745, 0.0301540364, -0.0396850631, 0.913133621, 0.405724436, -0.0153536471, -0.406553656, 0.913497925)*CF.A(0,M.R(2+7*M.C(Sine/12)),-M.R(2+7*M.C(Sine/12))),Alpha)
1385
		RH.C0 = clerp(RH.C0,CFrame.new(0.544458926, -0.964868069, 0.0333667099, 0.999092519, 0.0301021822, 0.0301397741, -0.0397526845, 0.913105845, 0.405780286, -0.015305927, -0.406610161, 0.913473606)*CF.A(0,-M.R(2+7*M.C(Sine/12)),M.R(2+7*M.C(Sine/12))),Alpha)
1386
		LS.C0 = clerp(LS.C0,CFrame.new(-1.36389351, 0.578486085+.1*M.C(Sine/12), 0.180077106, -0.966345549, 0.257006437, -0.0111429691, 0.189922124, 0.683552086, -0.704759717, -0.173510939, -0.683157504, -0.709358692)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1387
		RS.C0 = clerp(RS.C0,CFrame.new(1.36815977, 0.578247666+.1*M.C(Sine/12), 0.13745755, 0.960469842, -0.278161407, 0.0111425305, 0.189813495, 0.683640122, 0.704703569, -0.203638792, -0.674731433, 0.709414363)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1388
		NK.C0 = clerp(NK.C0,CFrame.new(0.00204973482, 1.42796898, 0.117728591, 0.999878228, 0.00747100171, 0.0137089603, -9.46668442e-05, 0.880958676, -0.473193318, -0.0156122521, 0.473134309, 0.880851984),Alpha)
1389
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1390
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1391
		WingFlutter()
1392
		Root.CFrame = Root.CFrame * CF.N(0,0,-.1)
1393
		Transparency(i/2)
1394
	end
1395
	Zap{
1396
		StartCFrame=Root.CFrame,
1397
		EndCFrame=asd*CF.N(0,4,0),
1398
		ZapRotation = {-5,5},
1399
		PartCount=10,
1400
		StartSize = 4,
1401
		EndSize = .5,
1402
		Color = C3.N(1,1,0),
1403
		DelayInc=5,
1404
		Delay = 15,
1405
	}
1406
	Root.CFrame = asd*CF.N(0,4,0)
1407
	Root.Anchored = true
1408
1409
	for i = 0, 2, .1 do
1410
		Root.Anchored = true
1411
		swait()
1412
		local Alpha = .1
1413
		Change = .5
1414
		RJ.C0 = clerp(RJ.C0,CFrame.new(-0.00288401172, -0.186870754+.25*M.C(Sine/12), -0.184415281, 0.999970019, -0.00748212682, -0.00185852405, 0.00747100171, 0.880958676, 0.473134309, -0.00190276653, -0.473133981, 0.880988002)*CF.A(-M.R(10+5*M.S(Sine/12)),0,0),Alpha)
1415
		LH.C0 = clerp(LH.C0,CFrame.new(-0.455414772, -0.964986682, 0.0489092469, 0.999094486, 0.0300228745, 0.0301540364, -0.0396850631, 0.913133621, 0.405724436, -0.0153536471, -0.406553656, 0.913497925)*CF.A(0,M.R(2+7*M.C(Sine/12)),-M.R(2+7*M.C(Sine/12))),Alpha)
1416
		RH.C0 = clerp(RH.C0,CFrame.new(0.544458926, -0.964868069, 0.0333667099, 0.999092519, 0.0301021822, 0.0301397741, -0.0397526845, 0.913105845, 0.405780286, -0.015305927, -0.406610161, 0.913473606)*CF.A(0,-M.R(2+7*M.C(Sine/12)),M.R(2+7*M.C(Sine/12))),Alpha)
1417
		LS.C0 = clerp(LS.C0,CFrame.new(-1.36389351, 0.578486085+.1*M.C(Sine/12), 0.180077106, -0.966345549, 0.257006437, -0.0111429691, 0.189922124, 0.683552086, -0.704759717, -0.173510939, -0.683157504, -0.709358692)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1418
		RS.C0 = clerp(RS.C0,CFrame.new(1.36815977, 0.578247666+.1*M.C(Sine/12), 0.13745755, 0.960469842, -0.278161407, 0.0111425305, 0.189813495, 0.683640122, 0.704703569, -0.203638792, -0.674731433, 0.709414363)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1419
		NK.C0 = clerp(NK.C0,CFrame.new(0.00204973482, 1.42796898, 0.117728591, 0.999878228, 0.00747100171, 0.0137089603, -9.46668442e-05, 0.880958676, -0.473193318, -0.0156122521, 0.473134309, 0.880851984),Alpha)
1420
		HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1421
		WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1422
		WingFlutter()
1423
		Root.CFrame = Root.CFrame * CF.N(0,0,-.1)
1424
		Transparency(1-(i/2))
1425
	end
1426
	
1427
	
1428
	Transparency(0)
1429
	coroutine.wrap(function()
1430
		for i = 0, 3, .1 do
1431
			swait() 
1432
			local Alpha = .1
1433
			Change = .5
1434
			circle.Size = circle.Size - V3.N(.2,.2,0)
1435
			circle2.Size = circle2.Size - V3.N(.2,.2,0)
1436
			circle.Front.Transparency=(i/3)
1437
			circle.Back.Transparency=(i/3)
1438
			circle2.Front.Transparency=(i/3)
1439
			circle2.Back.Transparency=(i/3)
1440
			
1441
			circle.CFrame=circle.CFrame*CF.A(0,0,-M.R(5))
1442
			circle2.CFrame=circle2.CFrame*CF.A(0,0,-M.R(5))
1443
		end
1444
	end)()
1445
	Hum.AutoRotate = true
1446
	Root.Anchored = false
1447
	Rooted = false
1448
	Attack = false
1449
	NeutralAnims = true
1450
end
1451
1452
Mouse.KeyDown:connect(function(k)
1453
	if(Attack)then return end
1454
	if(k == 'q')then Teleport() end
1455
	if(k == 'z')then Lazor() end
1456
	if(k == 'x')then Smite() end
1457
	if(k == 'v')then HolyBomb() end
1458
	if(k == 'c')then LightningStorm() end
1459
end)
1460
1461
	
1462
--// Wrap it all up \\--
1463
while true do
1464
	swait()
1465
	Sine = Sine + Change
1466
	
1467
	if(not Music or not Music.Parent)then
1468
		local a = Music.TimePosition
1469
		Music = Sound(Char,MusicID,1,3,true,false,true)
1470
		Music.Name = 'Music'
1471
		Music.TimePosition = a
1472
	end
1473
	Music.Playing = true
1474
	Torso.Color = C3.N(0,0,0)
1475
	RArm.Color = C3.N(0,0,0)
1476
	LArm.Color = C3.N(0,0,0)
1477
	RLeg.Color = C3.N(0,0,0)
1478
	LLeg.Color = C3.N(0,0,0)
1479
	Head.Color = C3.N(0,0,0)
1480
	Music.Volume = 5
1481
	Music.Pitch = 1
1482
	Music.Playing = true
1483
	Hum.HipHeight = 2
1484
	Sine = Sine + Change
1485
	local hitfloor,posfloor = workspace:FindPartOnRay(Ray.new(Root.CFrame.p,((CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector).unit * 100), Char)
1486
	local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
1487
	local State = (Hum.PlatformStand and 'Paralyzed' or Hum.Sit and 'Sit' or Walking and "Walk" or "Idle")
1488
	if(time()-PulseTime > .05)then
1489
		PulseTime = time()
1490
		if(hitfloor)then
1491
			local angles = CF.A(M.RRNG(-15,15),M.RRNG(-45,45),M.RRNG(-45,45))
1492
			Effect{
1493
				Effect='ResizeAndFade',
1494
				Color=hitfloor.Color,
1495
				Material=hitfloor.Material,
1496
				Frames=60,
1497
				Mesh={MeshType=Enum.MeshType.FileMesh,MeshId="rbxassetid://662586858",Scale=V3.N(.01,.01,.01)},
1498
				CFrame=CF.N(posfloor)*angles,
1499
				MoveDirection=CF.N(posfloor)*angles*CF.N(0,6,0).p,
1500
				FXSettings = {
1501
					EndSize=V3.N(.0005,.0005,.0005),
1502
					EndIsIncrement=true
1503
				}
1504
			}
1505
		end
1506
		local pos = CF.N(Torso.CFrame.p)*CF.N(0,-2,0)*CF.A(0,M.RRNG(-180,180),0)*CF.N(0,0,M.RNG(-15,-5))
1507
		local hitfloor2,posfloor2 = workspace:FindPartOnRay(Ray.new(pos.p,((CFrame.new(pos.p,pos.p - Vector3.new(0,1,0))).lookVector).unit * 100), Char)
1508
		
1509
		if(hitfloor2)then
1510
			pos = CF.N(posfloor2)
1511
			Effect{
1512
				Effect='ResizeAndFade',
1513
				Color=BrickColor.new'New Yeller',
1514
				Size=V3.N(2,2,2),
1515
				Material=Enum.Material.Neon,
1516
				Mesh={MeshType=Enum.MeshType.Sphere},
1517
				Frames=45,
1518
				CFrame=pos,
1519
				FXSettings = {
1520
					EndSize = V3.N(-.01,.25,-.01),
1521
					EndIsIncrement = true
1522
				}
1523
			}
1524
		else
1525
			Effect{
1526
				Effect='ResizeAndFade',
1527
				Color=BrickColor.new'New Yeller',
1528
				Size=V3.N(2,2,2),
1529
				Material=Enum.Material.Neon,
1530
				Mesh={MeshType=Enum.MeshType.Sphere},
1531
				Frames=45,
1532
				CFrame=pos,
1533
				FXSettings = {
1534
					EndSize = V3.N(-.01,.25,-.01),
1535
					EndIsIncrement = true
1536
				}
1537
			}
1538
		end
1539
	end
1540
	Hum.Name = math.random()*100000
1541
	Hum.MaxHealth = 1e100
1542
	Hum.Health = 1e100
1543
	if(M.RNG(1,50) == 1)then
1544
		local pos = CF.N(Torso.CFrame.p)*CF.N(0,-2,0)*CF.A(0,M.RRNG(-180,180),0)*CF.N(0,0,M.RNG(-30,-15))
1545
		local hitfloor2,posfloor2 = workspace:FindPartOnRay(Ray.new(pos.p,((CFrame.new(pos.p,pos.p - Vector3.new(0,1,0))).lookVector).unit * 100), Char)
1546
		
1547
		if(hitfloor2)then
1548
			pos = CF.N(posfloor2)
1549
		end
1550
		Zap{
1551
			StartCFrame=Torso.CFrame,
1552
			EndCFrame=pos,
1553
			ZapRotation = {-2,2},
1554
			PartCount=5,
1555
			StartSize = .5,
1556
			EndSize = 0,
1557
			Color = C3.N(1,1,0),
1558
			DelayInc=5,
1559
			Delay = 15,
1560
			Sound=false
1561
		}
1562
	end
1563
	if(Rooted == false)then
1564
		Hum.WalkSpeed = 32
1565
		Hum.JumpPower = 75
1566
	else
1567
		Hum.WalkSpeed = 0
1568
		Hum.JumpPower = 0
1569
	end
1570
	if(not Effects or not Effects.Parent)then
1571
		Effects = IN("Model",Char)
1572
		Effects.Name = "Effects"
1573
	end
1574
	if(NeutralAnims)then	
1575
		if(State == 'Idle')then
1576
			local Alpha = .1
1577
			Change = .5
1578
			RJ.C0 = clerp(RJ.C0,CFrame.new(3.20625471e-13, 0+.25*M.C(Sine/12), -6.20266655e-06, 0.999999225, 5.09317033e-11, 0, -4.38656264e-11, 0.999980271, -0.00628618058, 0, 0.00628617639, 0.999979496)*CF.A(-M.R(3+5*M.S(Sine/12)),0,0),Alpha)
1579
			LH.C0 = clerp(LH.C0,CFrame.new(-0.443078369, -0.366475701, -0.69529891, 0.999093771, 0.0300307292, 0.0301540978, -0.039692279, 0.913133621, 0.405723602, -0.0153505448, -0.406552792, 0.913497925)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1580
			RH.C0 = clerp(RH.C0,CFrame.new(0.563508928, -0.975499094, 0.0143494867, 0.992422402, -0.121874072, 0.0156119959, 0.121789157, 0.992536128, 0.0062854127, -0.0162614994, -0.00433641672, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),-M.R(0+5*M.C(Sine/12))),Alpha)
1581
			LS.C0 = clerp(LS.C0,CFrame.new(-1.09520316, 0.319447398+.1*M.C(Sine/12), 0.380316556, 0.862274766, -0.50140965, 0.071203351, 0.413908899, 0.77874434, 0.471420079, -0.291823745, -0.377021939, 0.879029453)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1582
			RS.C0 = clerp(RS.C0,CFrame.new(1.38953996, 0.579314649+.1*M.C(Sine/12), 0.00156672322, 0.963396549, -0.267624378, 0.0156119959, 0.267557263, 0.9635216, 0.0062854127, -0.0167246256, -0.0018782462, 0.999858022)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1583
			NK.C0 = clerp(NK.C0,CFrame.new(-7.09252117e-06, 1.4989512, -0.0144005567, 0.999999225, 3.67464963e-07, -1.62050128e-07, -3.56478267e-07, 0.997964799, 0.0637686923, 1.8440187e-07, -0.0637686551, 0.997963905),Alpha)
1584
			HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1585
			WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1586
			WingFlutter()
1587
1588
		elseif(State == 'Walk')then
1589
			local Alpha = .1
1590
			Change = .5
1591
			RJ.C0 = clerp(RJ.C0,CFrame.new(-0.00288401172, -0.186870754+.25*M.C(Sine/12), -0.184415281, 0.999970019, -0.00748212682, -0.00185852405, 0.00747100171, 0.880958676, 0.473134309, -0.00190276653, -0.473133981, 0.880988002)*CF.A(-M.R(10+5*M.S(Sine/12)),0,0),Alpha)
1592
			LH.C0 = clerp(LH.C0,CFrame.new(-0.455414772, -0.964986682, 0.0489092469, 0.999094486, 0.0300228745, 0.0301540364, -0.0396850631, 0.913133621, 0.405724436, -0.0153536471, -0.406553656, 0.913497925)*CF.A(0,M.R(2+7*M.C(Sine/12)),-M.R(2+7*M.C(Sine/12))),Alpha)
1593
			RH.C0 = clerp(RH.C0,CFrame.new(0.544458926, -0.964868069, 0.0333667099, 0.999092519, 0.0301021822, 0.0301397741, -0.0397526845, 0.913105845, 0.405780286, -0.015305927, -0.406610161, 0.913473606)*CF.A(0,-M.R(2+7*M.C(Sine/12)),M.R(2+7*M.C(Sine/12))),Alpha)
1594
			LS.C0 = clerp(LS.C0,CFrame.new(-1.36389351, 0.578486085+.1*M.C(Sine/12), 0.180077106, -0.966345549, 0.257006437, -0.0111429691, 0.189922124, 0.683552086, -0.704759717, -0.173510939, -0.683157504, -0.709358692)*CF.A(0,M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1595
			RS.C0 = clerp(RS.C0,CFrame.new(1.36815977, 0.578247666+.1*M.C(Sine/12), 0.13745755, 0.960469842, -0.278161407, 0.0111425305, 0.189813495, 0.683640122, 0.704703569, -0.203638792, -0.674731433, 0.709414363)*CF.A(0,-M.R(0+5*M.C(Sine/12)),M.R(0+5*M.C(Sine/12))),Alpha)
1596
			NK.C0 = clerp(NK.C0,CFrame.new(0.00204973482, 1.42796898, 0.117728591, 0.999878228, 0.00747100171, 0.0137089603, -9.46668442e-05, 0.880958676, -0.473193318, -0.0156122521, 0.473134309, 0.880851984),Alpha)
1597
			HW.C0 = HW.C0:lerp(CF.N(0,2,0)*CF.A(M.R(0+15*M.C(Sine/36)),0,M.R(0+15*M.S(Sine/36)))*CF.N(-M.R(0+15*M.S(Sine/36)),0,M.R(0+15*M.C(Sine/36))),Alpha)
1598
			WW.C0 = WW.C0:lerp(CF.N(0,1.5+.3*M.C(Sine/12),1.5),Alpha)
1599
			WingFlutter()
1600
		elseif(State == 'Paralyzed')then
1601
			-- paralyzed
1602
		elseif(State == 'Sit')then
1603
			-- sit
1604
		end
1605
	end
1606
end