View difference between Paste ID: 22MwXkBA and ehN17xTi
SHOW: | | - or go back to the newest paste.
1
-- Created by Nebula_Zorua --
2
-- Edit by 1x1x1x1IAMbck --
3
-- Sans Curse (A Curse of Light) --
4
-- Custom Arcane Adventures Magic --
5
-- Wielder: Everybody (Released) --
6
7
8
9
-- Discord: Nebula the Zorua#6969
10
-- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
11
12
-- You can change the Magic Circle n stuff down under Customization, at MagicVariant --
13
 
14
--controls
15-
    local MovesGui=Instance.new("ScreenGui",game:service'Players'.LocalPlayer:FindFirstChildOfClass("PlayerGui"))
15+
16
    Frm.BackgroundTransparency=.5 Frm.Size=UDim2.new(.3,0,.5,0)local Show=true Frm.Position=UDim2.new(.7,0,.5,0)
17
    local normal=Instance.new("TextLabel",Frm)normal.Size=UDim2.new(1,0,1,0)normal.TextStrokeTransparency=0
18
    normal.BackgroundTransparency=1 normal.TextColor3=Color3.new(1,1,1)
19
    normal.TextXAlignment="Left"normal.TextYAlignment="Top"
20
    normal.Text=[[
21
-----------
22
*Q   : Normal Gaster Blaster
23
*E   : Double Gaster Blaster
24
*R   : Big Gaster Blaster
25
*X   : Transformation 
26
*T   : Teleport
27
*F   : Stun Gaster Blaster 
28
29
Created by Nebula_Zorua
30
Edited by 1x1x1x1IAMbck
31
 
32
]]
33
34
-- Name tag
35
Player = game.Players.LocalPlayer
36
    Character = Player.Character
37
    local txt = Instance.new("BillboardGui", Character)
38
    txt.Adornee = Character.Head
39
    txt.Name = "_status"
40
    txt.Size = UDim2.new(2, 0, 1.2, 0)
41
    txt.StudsOffset = Vector3.new(-9, 8, 0)
42
    local text = Instance.new("TextLabel", txt)
43
    text.Size = UDim2.new(10, 0, 7, 0)
44
    text.FontSize = "Size24"
45
    text.TextScaled = true
46
    text.TextTransparency = 0
47
    text.BackgroundTransparency = 1 
48
    text.TextTransparency = 0
49
    text.TextStrokeTransparency = 0
50
    text.Font = "Antique"
51
    text.TextStrokeColor3 = Color3.new(170,0,0)
52
        text.Text = "UF!Sans"
53
54
55
56
-- Music
57
hate = Instance.new("Sound",game.Workspace)
58
hate.SoundId = "rbxassetid://583633630"hate.MaxDistance = 10000
59-
hate.SoundId = "rbxassetid://183142252"hate.MaxDistance = 10000
59+
60
hate:play() hate.Name = "BIG BLACK" hate.Looped = true
61
62
63
--Hood--
64
local Hood = Instance.new("Part", char)
65
Hood.Name = "Hood"
66
Hood.CanCollide = false
67
Hood.BrickColor = BrickColor.new("Institutional white")
68
Hood.Transparency = 0
69
Hood.Material = "Plastic"
70
Hood.Size = Vector3.new(1, 1, 2)
71
Hood.TopSurface = Enum.SurfaceType.Smooth
72
Hood.BottomSurface = Enum.SurfaceType.Smooth
73
 
74
local Weld = Instance.new("Weld", Hood)
75
Weld.Part0 = tors
76
Weld.Part1 = Hood
77
Weld.C1 = CFrame.new(0, .4, -.9)
78
Weld.C0 = CFrame.Angles(math.rad(-0),math.rad(0),math.rad(180))
79
 
80
  
81
--teleport
82
wait(1)
83
player = game.Players.LocalPlayer
84
torso = player.Character:WaitForChild("Torso")
85
mouse = player:GetMouse()
86
 
87
mouse.KeyDown:connect(function(key)
88
    if key == "t" then
89
        dist = (torso.Position - mouse.Hit.p).magnitude
90
        if dist <= 10000 then
91
            torso.CFrame = CFrame.new(mouse.Hit.p) + Vector3.new(0,3,0)
92
        end
93
    end
94
end)
95
96
--main
97
wait(1)
98
plr = game.Players.LocalPlayer
99
char = plr.Character
100
mouse = plr:GetMouse()
101
whitecolor = Color3.new(1,1,1)
102
epicmode = false
103
normal = true
104
for i,v in pairs(char:GetChildren()) do
105
   if v.ClassName == "Shirt" or v.ClassName == "Pants" or v.ClassName == "ShirtGraphic" then
106
      v:Destroy()
107
     end
108
end
109
local shirt = Instance.new("Shirt",char)
110
shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=1145883171"
111
local pants = Instance.new("Pants",char)
112
pants.PantsTemplate = "http://www.roblox.com/asset/?id=454688894"
113
local bdycolors = char["Body Colors"]
114
bdycolors.HeadColor3 = whitecolor
115
bdycolors.LeftArmColor3 = whitecolor
116
bdycolors.LeftLegColor3 = whitecolor
117
bdycolors.RightArmColor3 = whitecolor
118
bdycolors.RightLegColor3 = whitecolor
119
bdycolors.TorsoColor3 = whitecolor
120
for i,v in pairs(char:GetChildren()) do
121
    if v.ClassName == "Hat" or v.ClassName == "Accessory" then
122
        v:Destroy()
123
    end
124
end
125
126
127
128
-- Chat
129
local talksound = Instance.new("Sound",char.Torso)
130
talksound.SoundId = "rbxassetid://928210219"
131
talksound.Volume = 4
132
local blastsound = Instance.new("Sound",char.Torso)
133
blastsound.Name = "blast_sound"
134
blastsound.SoundId = "rbxassetid://345052019"
135
blastsound.Volume = 4
136
function swait(num)
137
if num==0 or num==nil then
138
game:service'RunService'.Stepped:wait(0)
139
else
140
for i=0,num do
141
game:service'RunService'.Stepped:wait(0)
142
end
143
end
144
end
145
 
146
function chatfunc(text)
147
local chat = coroutine.wrap(function()
148
if char:FindFirstChild("TalkingBillBoard") ~= nil then
149
char:FindFirstChild("TalkingBillBoard"):Destroy()
150
end
151
local naeeym2 = Instance.new("BillboardGui",char)
152
naeeym2.Size = UDim2.new(0,100,0,40)
153
naeeym2.StudsOffset = Vector3.new(0,3,0)
154
naeeym2.Adornee = char.Head
155
naeeym2.Name = "TalkingBillBoard"
156
local tecks2 = Instance.new("TextLabel",naeeym2)
157
tecks2.BackgroundTransparency = 1
158
tecks2.BorderSizePixel = 0
159
tecks2.Text = ""
160
tecks2.Font = "Fantasy"
161
tecks2.TextSize = 50
162
tecks2.TextStrokeTransparency = 0
163
tecks2.TextColor3 = Color3.new(.6,0,0)
164
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
165
tecks2.Size = UDim2.new(1,0,0.5,0)
166
local tecks3 = Instance.new("TextLabel",naeeym2)
167
tecks3.BackgroundTransparency = 1
168
tecks3.BorderSizePixel = 0
169
tecks3.Text = ""
170
tecks3.Font = "Fantasy"
171
tecks3.TextSize = 50
172
tecks3.TextStrokeTransparency = 0
173
tecks3.TextColor3 = Color3.new(1,1,1)
174
tecks3.TextStrokeColor3 = Color3.new(200,0,0)
175
tecks3.Size = UDim2.new(1,0,0.5,0)
176
for i = 1,string.len(text),1 do
177
tecks2.Text = string.sub(text,1,i)
178
tecks3.Text = string.sub(text,1,i)
179
talksound:Play()
180
wait(0.01)
181
end
182
wait(2)
183
for i = 1, 50 do
184
swait()
185
tecks2.Position = tecks2.Position - UDim2.new(math.random(-.4,.4),math.random(-5,5),.05,math.random(-5,5))
186
tecks2.Rotation = tecks2.Rotation - .8
187
tecks2.TextStrokeTransparency = tecks2.TextStrokeTransparency +.04
188
tecks2.TextTransparency = tecks2.TextTransparency + .04
189
tecks3.Position = tecks2.Position - UDim2.new(math.random(-.4,.4),math.random(-5,5),.05,math.random(-5,5))
190
tecks3.Rotation = tecks2.Rotation + .8
191
tecks3.TextStrokeTransparency = tecks2.TextStrokeTransparency +.04
192
tecks3.TextTransparency = tecks2.TextTransparency + .04
193
end
194
naeeym2:Destroy()
195
end)
196
chat()
197
end
198
function onChatted(msg)
199
chatfunc(msg)
200
end
201
plr.Chatted:connect(onChatted)
202
chatfunc("Hmm?")
203
wait(1)
204
chatfunc("Who is there?")
205
wait(1.2)
206
chatfunc("Maybe it is my friend?")
207
wait(2)
208
chatfunc("Brother killer?!")
209
wait(0.5)
210
char.Humanoid.Name = "Sans"
211
local music = Instance.new("Sound",char.Torso)
212
music.SoundId = "rbxassetid://0"
213
music.Volume = 4
214
music.Looped = true
215
music:Play()
216
LeyeColor = BrickColor.new("Really red")
217
local eyemodel = Instance.new("Model",char)
218
eyemodel.Name = "Eyes"
219
local reye = Instance.new("Part",eyemodel)
220
reye.Name = "BurningEff"
221
reye.Color = Color3.new(1,1,1)
222
reye.Material = "Neon"
223
reye.Transparency = 1
224
local reyemesh = Instance.new("SpecialMesh",reye)
225
reyemesh.MeshType = "Sphere"
226
reye.Size = Vector3.new(0.12, 0.37, 0.27)
227
local reyeweld = Instance.new("Weld",reye)
228
reyeweld.Part0 = reye
229
reyeweld.Part1 = char.Head
230
reyeweld.C0 = CFrame.new(-0.551300049, -0.19681406, -0.198293686, 0, 0, -1, 0, 1, 0, 1, 0, 0)
231
local leye = Instance.new("Part",eyemodel)
232
leye.Name = "LeftEye"
233
leye.BrickColor = LeyeColor
234
leye.Material = "Neon"
235
leye.Size = Vector3.new(0.2,0.2,0.2)
236
local leyemesh = Instance.new("SpecialMesh",leye)
237
leyemesh.MeshType = "Sphere"
238
leyemesh.Scale = Vector3.new(0.7,1.1,0.7)
239
local leyeweld = Instance.new("Weld",leye)
240
leyeweld.Part0 = leye
241
leyeweld.Part1 = char.Head
242
leyeweld.C0 = CFrame.new(-0.109999999, -0.25, 0.550000012, 1, 0, 0, 0, 1, 0, 0, 0, 1)
243
local leyeclone = leye:Clone()
244
leyeclone.Transparency = 1
245
leyeclone.Name = "RightEye"
246
leyeclone.Parent = eyemodel
247
for i,v in pairs(leyeclone:GetChildren()) do
248
	if v.ClassName == "Weld" then
249
		v:Destroy()
250
	end
251
end
252
local leyeweld2 = Instance.new("Weld",leyeclone)
253
leyeweld2.Part0 = leyeclone
254
leyeweld2.Part1 = char.Head
255
leyeweld2.C0 = CFrame.new(0.0864697844, -0.25, 0.550000012, 1, 0, 0, 0, 1, 0, 0, 0, 1)
256
local fire = Instance.new("Fire",reye)
257
fire.Heat = 25000
258
fire.Color = leye.BrickColor.Color
259
fire.Size = 2
260
-- welds xd
261
local rhandclone = game.Players.LocalPlayer.Character.Torso["Right Shoulder"]:Clone()
262
local rhandweld = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
263
rhandweld.Part0 = game.Players.LocalPlayer.Character.Torso
264
rhandweld.Part1 = game.Players.LocalPlayer.Character["Right Arm"]
265
rhandweld.C0 = CFrame.new(1.5, 0, 0, 1, -1.6395192e-43, 0, -1.6395192e-43, 1, 0, 0, 0, 1)
266
local lhandclone = game.Players.LocalPlayer.Character.Torso["Left Shoulder"]:Clone()
267
local lhandweld = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
268
lhandweld.Part0 = game.Players.LocalPlayer.Character.Torso
269
lhandweld.Part1 = game.Players.LocalPlayer.Character["Left Arm"]
270
lhandweld.C0 = CFrame.new(-1.5, 0, 0, 1, -1.6395192e-43, 0, -1.6395192e-43, 1, 0, 0, 0, 1)
271
for i = 0,1 ,0.03 do
272
	lhandweld.C0 = lhandweld.C0:lerp(CFrame.new(-0.925931931, -0.0977840424, 0.974765539, 0.886040092, -0.463608712, -1.69641942e-06, 0.405292064, 0.774584651, 0.485548228, -0.225103036, -0.430215806, 0.87421),i)
273
	rhandweld.C0 = rhandweld.C0:lerp(CFrame.new(0.881086826, -0.201818228, 0.747067213, 0.882895231, 0.4695701, 1.00883415e-06, -0.397803098, 0.747956276, 0.531332433, 0.249497056, -0.469111204, 0.847163498),i)
274
	game:GetService("RunService").RenderStepped:wait()
275
end
276
local slapsound = Instance.new("Sound",char.Torso)
277
slapsound.SoundId = "rbxassetid://511340819"
278
slapsound.Volume = 4
279
-- Funcs
280
function Blast(AAA)
281
	if AAA == "f" then
282
		local chatmath = math.random(1,3)
283
		if chatmath == 1 then
284
			chatfunc("Gaster Blaster!")
285
		end
286
		if chatmath == 2 then
287
			chatfunc("This is what you get for killing everybody.")
288
		end
289
		if chatmath == 3 then
290
			chatfunc("Look, I gave up trying to go back a long time ago.")
291
		end
292
		local gasterblaster = Instance.new("Part",char.Torso)
293
		gasterblaster.Size = Vector3.new(7, 16, 4)
294
		gasterblaster.CanCollide = false
295
		local gasterblastermesh = Instance.new("FileMesh",gasterblaster)
296
		gasterblastermesh.MeshId = "rbxassetid://431908407"
297
		gasterblastermesh.Scale = Vector3.new(0.05,0.05,0.05)
298
		local gasterblastertexture = Instance.new("Decal",gasterblaster)
299
		gasterblastertexture.Face = "Back"
300
		gasterblastertexture.Texture = "http://www.roblox.com/asset/?id=441975828"
301
		local weeld = Instance.new("Weld",gasterblaster)
302
		weeld.Part0 = gasterblaster
303
		weeld.Part1 = char.Torso
304
		weeld.C0 = CFrame.new(3.71674585, -11.54426, -0.129204988, -0.999741375, 0, 0.0227420069, 0, 1, 0, -0.0227420069, 0, -0.999741375)
305
		blastsound:Play()
306
		char.Head.Anchored = true
307
		wait(1)
308
		local blast = Instance.new("Part",gasterblaster)
309
		blast.Size = Vector3.new(18.07, 16.36, 73.54)
310
		blast.Transparency = 0.7
311
		blast.Material = "Neon"
312
		blast.Color = Color3.new(1,1,1)
313
		blast.CanCollide = true
314
		local blastweld = Instance.new("Weld",blast)
315
		blastweld.Part0 = blast
316
		blastweld.Part1 = gasterblaster
317
		blastweld.C0 = CFrame.new(-0.430000305, 1.73999977, -40.1399994, 1, 0, 0, 0, 1, 0, 0, 0, 1)
318
		blast.Touched:connect(function(part)
319
			part.Parent:FindFirstChildOfClass("Humanoid"):Destroy() -- Makes them not able to move
320
        end)
321
		wait(2)
322
		char.Head.Anchored = false
323
		blast:Destroy()
324
		gasterblaster:Destroy()
325
	end
326
end
327
mouse.KeyDown:connect(Blast)
328
329
330
function Death()
331
	music:Stop()
332
	local deadsound = Instance.new("Sound",char.Torso)
333
	deadsound.SoundId = "rbxassetid://427025525"
334
	deadsound.Volume = 4
335
	deadsound:Play()
336
	for i,v in pairs(char:GetChildren()) do
337
		if v.ClassName == "Part" then
338
			v.Transparency = 1
339
		end
340
		leye.Transparency = 1
341
		fire:Destroy()
342
		char.Head.face.Transparency = 1
343
	end
344
end
345
char.Sans.Died:connect(Death)
346
347
348
function Transform(key)
349
	if key == "x" then
350
		music.SoundId = "rbxassetid://0"
351
		music:Stop()
352
		music:Play()
353
		chatfunc("Hehe, forgetting something?")
354
		leyeclone.Transparency = 0
355
		local fire2 = Instance.new("Fire",leyeclone)
356
		fire2.Heat = 25000
357
        fire2.Color = leye.BrickColor.Color
358
        fire2.Size = 2
359
	end
360
end
361
mouse.KeyDown:connect(Transform)
362
363
364
365
366
--// Shortcut Variables \\--
367
local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
368
local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
369
local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
370
local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
371
local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge,RRNG = function(min,max,div) return math.rad(math.random(min,max)/(div or 1)) end}
372
local R3 = {N=Region3.new}
373
local De = S.Debris
374
local WS = workspace
375
local Lght = S.Lighting
376
local RepS = S.ReplicatedStorage
377
local IN = Instance.new
378
local Plrs = S.Players
379
380
local Emit = IN("ParticleEmitter").Emit;
381
382
--// Initializing \\--
383
local Plr = Plrs.LocalPlayer
384
local Char = Plr.Character
385
local Hum = Char:FindFirstChildOfClass'Humanoid'
386
local RArm = Char["Right Arm"]
387
local LArm = Char["Left Arm"]
388
local RLeg = Char["Right Leg"]
389
local LLeg = Char["Left Leg"]	
390
local Root = Char:FindFirstChild'HumanoidRootPart'
391
local Torso = Char.Torso
392
local Head = Char.Head
393
local NeutralAnims = true
394
local Attack = false
395
local Debounces = {Debounces={}}
396
local Mouse = Plr:GetMouse()
397
local Hit = {}
398
local Sine = 0
399
local Change = 1
400
401
local Effects = IN("Folder",Char)
402
Effects.Name = "Effects"
403
404
405
406
--// Music \\--
407
408
409
410
--// Debounce System \\--
411
412
413
function Debounces:New(name,cooldown)
414
	local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
415
	setmetatable(aaaaa,{__index = Debounces})
416
	Debounces.Debounces[name] = aaaaa
417
	return aaaaa
418
end
419
420
function Debounces:Use(overrideUsable)
421
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
422
	if(self.Usable or overrideUsable)then
423
		self.Usable = false
424
		self.CoolingDown = true
425
		local LastUse = time()
426
		self.LastUse = LastUse
427
		delay(self.Cooldown or 2,function()
428
			if(self.LastUse == LastUse)then
429
				self.CoolingDown = false
430
				self.Usable = true
431
			end
432
		end)
433
	end
434
end
435
436
function Debounces:Get(name)
437
	assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
438
	for i,v in next, Debounces.Debounces do
439
		if(i == name)then
440
			return v;
441
		end
442
	end
443
end
444
445
function Debounces:GetProgressPercentage()
446
	assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
447
	if(self.CoolingDown and not self.Usable)then
448
		return math.max(
449
			math.floor(
450
				(
451
					(time()-self.LastUse)/self.Cooldown or 2
452
				)*100
453
			)
454
		)
455
	else
456
		return 100
457
	end
458
end
459
460
--// Instance Creation Functions \\--
461
462
function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
463
	local Sound = IN("Sound")
464
	Sound.SoundId = "rbxassetid://".. tostring(id or 0)
465
	Sound.Pitch = pitch or 1
466
	Sound.Volume = volume or 1
467
	Sound.Looped = looped or false
468
	if(autoPlay)then
469
		coroutine.wrap(function()
470
			repeat wait() until Sound.IsLoaded
471
			Sound.Playing = autoPlay or false
472
		end)()
473
	end
474
	if(not looped and effect)then
475
		Sound.Stopped:connect(function()
476
			Sound.Volume = 0
477
			Sound:destroy()
478
		end)
479
	elseif(effect)then
480
		warn("Sound can't be looped and a sound effect!")
481
	end
482
	Sound.Parent =parent or Torso
483
	return Sound
484
end
485
function Part(parent,color,material,size,cframe,anchored,cancollide)
486
	local part = IN("Part")
487
	part.Parent = parent or Char
488
	part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
489
	part.Material = material or Enum.Material.SmoothPlastic
490
	part.TopSurface,part.BottomSurface=10,10
491
	part.Size = size or V3.N(1,1,1)
492
	part.CFrame = cframe or CF.N(0,0,0)
493
	part.CanCollide = cancollide or false
494
	part.Anchored = anchored or false
495
	return part
496
end
497
498
function Weld(part0,part1,c0,c1)
499
	local weld = IN("Weld")
500
	weld.Parent = part0
501
	weld.Part0 = part0
502
	weld.Part1 = part1
503
	weld.C0 = c0 or CF.N()
504
	weld.C1 = c1 or CF.N()
505
	return weld
506
end
507
508
function Mesh(parent,meshtype,meshid,textid,scale,offset)
509
	local part = IN("SpecialMesh")
510
	part.MeshId = meshid or ""
511
	part.TextureId = textid or ""
512
	part.Scale = scale or V3.N(1,1,1)
513
	part.Offset = offset or V3.N(0,0,0)
514
	part.MeshType = meshtype or Enum.MeshType.Sphere
515
	part.Parent = parent
516
	return part
517
end
518
519
NewInstance = function(instance,parent,properties)
520
	local inst = Instance.new(instance)
521
	inst.Parent = parent
522
	if(properties)then
523
		for i,v in next, properties do
524
			pcall(function() inst[i] = v end)
525
		end	
526
	end
527
	return inst;
528
end
529
530
function Clone(instance,parent,properties)
531
	local inst = instance:Clone()
532
	inst.Parent = parent
533
	if(properties)then
534
		for i,v in next, properties do
535
			pcall(function() inst[i] = v end)
536
		end
537
	end
538
	return inst;
539
end
540
541
function SoundPart(id,pitch,volume,looped,effect,autoPlay,cf)
542
	local soundPart = NewInstance("Part",Effects,{Transparency=1,CFrame=cf or Torso.CFrame,Anchored=true,CanCollide=false,Size=V3.N()})
543
	local Sound = IN("Sound")
544
	Sound.SoundId = "rbxassetid://".. tostring(id or 0)
545
	Sound.Pitch = pitch or 1
546
	Sound.Volume = volume or 1
547
	Sound.Looped = looped or false
548
	if(autoPlay)then
549
		coroutine.wrap(function()
550
			repeat wait() until Sound.IsLoaded
551
			Sound.Playing = autoPlay or false
552
		end)()
553
	end
554
	if(not looped and effect)then
555
		Sound.Stopped:connect(function()
556
			Sound.Volume = 0
557
			soundPart:destroy()
558
		end)
559
	elseif(effect)then
560
		warn("Sound can't be looped and a sound effect!")
561
	end
562
	Sound.Parent = soundPart
563
	return Sound
564
end
565
566
567
--// Extended ROBLOX tables \\--
568
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})
569
--// Require stuff \\--
570
function CamShake(who,times,intense,origin) 
571
	coroutine.wrap(function()
572
		if(script:FindFirstChild'CamShake')then
573
			local cam = script.CamShake:Clone()
574
			cam:WaitForChild'intensity'.Value = intense
575
			cam:WaitForChild'times'.Value = times
576
			
577
	 		if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
578
			cam.Parent = who
579
			wait()
580
			cam.Disabled = false
581
		elseif(who == Plr or who == Char)then
582
			local intensity = intense
583
			local cam = workspace.CurrentCamera
584
			for i = 1, times do
585
				local camDistFromOrigin
586
				if(typeof(origin) == 'Instance' and origin:IsA'BasePart')then
587
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin.Position).magnitude )/25
588
				elseif(typeof(origin) == 'Vector3')then
589
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin).magnitude )/25
590
				end
591
				if(camDistFromOrigin)then
592
					intensity = math.min(intense, math.floor(intense/camDistFromOrigin))
593
				end
594
				cam.CFrame = cam.CFrame:lerp(cam.CFrame*CFrame.new(math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100)*CFrame.Angles(math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100)),.4)
595
				swait()
596
			end
597
		end
598
	end)()
599
end
600
601
function CamShakeAll(times,intense,origin)
602
	for _,v in next, Plrs:players() do
603
		CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character,times,intense,origin)
604
	end
605
end
606
607
function ServerScript(code)
608
	if(script:FindFirstChild'Loadstring')then
609
		local load = script.Loadstring:Clone()
610
		load:WaitForChild'Sauce'.Value = code
611
		load.Disabled = false
612
		load.Parent = workspace
613
	elseif(NS and typeof(NS) == 'function')then
614
		NS(code,workspace)
615
	else
616
		warn("no serverscripts lol")
617
	end	
618
end
619
620
function RunLocal(where,code)
621
	ServerScript([[
622
		wait()
623
		script.Parent=nil
624
		if(not _G.Http)then _G.Http = game:service'HttpService' end
625
		
626
		local Http = _G.Http or game:service'HttpService'
627
		
628
		local source = ]].."[["..code.."]]"..[[
629
		local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
630
		local asd = Http:PostAsync(link,source)
631
		repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
632
		local ID = Http:JSONDecode(asd).Result.Require_ID
633
		local vs = require(ID).VORTH_SCRIPT
634
		vs.Parent = game.]]..where:GetFullName()
635
	)
636
end
637
638
--// Customization \\--
639
640
local Frame_Speed = 60;
641
local WalkSpeed = 16
642
local DamageColor = BrickColor.new'White'
643
644
local MagicCircles = {
645
	Default = {Color=C3.N(255,0,0),Texture1=0,Texture2=0},
646
	OrangeWarPheonix = {EffectColor=BrickColor.new'Deep orange'.Color,Color=C3.N(.9,.9,.9),Texture1=623153986,Texture2=623153990},
647
	BlueWarPheonix = {EffectColor=BrickColor.new'Teal'.Color,Color=C3.N(.9,.9,.9),Texture1=462499935,Texture2=462499970},
648
	Plasma = {Color=C3.N(0.70588235294118,0,0.8),Texture1=415906687,Texture2=415906702},
649
	Water = {Color=C3.RGB(33, 84, 185),Texture1=408441330,Texture2=408441353},
650
	Earth = {Color=C3.RGB(86, 36, 36),Texture1=394253616,Texture2=394253651},
651
	Wind = {Color=C3.N(.8,.8,.8),Texture1=376006317,Texture2=376006346},
652
	Poseidon = {Color=C3.RGB(71, 99, 130),Texture1=346727970,Texture2=346727994},
653
	AetherLightning = {Color=C3.RGB(23, 255, 197),Texture1=348320016,Texture2=348320030},
654
	Light = {Color=C3.N(1,1,0),Texture1=343192085,Texture2=343192112},
655
	Fire = {Color=C3.N(1,0,0),EffectColor=BrickColor.new'Bright red'.Color,Texture1=313945544,Texture2=313945673},
656
	Lightning = {Color=C3.N(0,1,1),Texture1=314842290,Texture2=314842440},
657
	GasterBlaster = {Color=C3.N(255,0,0),Texture1=331948662,Texture2=331948662}
658
}
659
660
local MagicVariant = MagicCircles.GasterBlaster --[[ You can change this for a different element
661
Example: 
662
663
Changing MagicCircles.GasterBlaster to MagicCircles.Light
664
665
would make it a Light Element
666
]]
667
668
--// Stop animations \\--
669
for _,v in next, Hum:GetPlayingAnimationTracks() do
670
	v:Stop();
671
end
672
673
pcall(game.Destroy,Char:FindFirstChild'Animate')
674
pcall(game.Destroy,Hum:FindFirstChild'Animator')
675
676
--// Joints \\--
677
678
local LS = NewInstance('Motor',Char,{Part0=Torso,Part1=LArm,C0 = CF.N(-1.5,0.5,0),C1 = CF.N(0,.5,0)})
679
local RS = NewInstance('Motor',Char,{Part0=Torso,Part1=RArm,C0 = CF.N(1.5,0.5,0),C1 = CF.N(0,.5,0)})
680
local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5,0)})
681
local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5,-1,0),C1 = CF.N(0,1,0)})
682
local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5,-1,0),C1 = CF.N(0,1,0)})
683
local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
684
685
local LSC0 = LS.C0
686
local RSC0 = RS.C0
687
local NKC0 = NK.C0
688
local LHC0 = LH.C0
689
local RHC0 = RH.C0
690
local RJC0 = RJ.C0
691
692
--// Artificial HB \\--
693
694
local ArtificialHB = IN("BindableEvent", script)
695
ArtificialHB.Name = "Heartbeat"
696
697
script:WaitForChild("Heartbeat")
698
699
local tf = 0
700
local allowframeloss = false
701
local tossremainder = false
702
local lastframe = tick()
703
local frame = 1/Frame_Speed
704
ArtificialHB:Fire()
705
706
game:GetService("RunService").Heartbeat:connect(function(s, p)
707
	tf = tf + s
708
	if tf >= frame then
709
		if allowframeloss then
710
			script.Heartbeat:Fire()
711
			lastframe = tick()
712
		else
713
			for i = 1, math.floor(tf / frame) do
714
				ArtificialHB:Fire()
715
			end
716
			lastframe = tick()
717
		end
718
		if tossremainder then
719
			tf = 0
720
		else
721
			tf = tf - frame * math.floor(tf / frame)
722
		end
723
	end
724
end)
725
726
function swait(num)
727
	if num == 0 or num == nil then
728
		ArtificialHB.Event:wait()
729
	else
730
		for i = 0, num do
731
			ArtificialHB.Event:wait()
732
		end
733
	end
734
end
735
736
737
--// Effect Function(s) \\--
738
739
function NumSeq(...)
740
	local tab = {...}
741
	local Sequence = {}
742
	for _,v in next, tab do
743
		table.insert(Sequence,NumberSequenceKeypoint.new(unpack(v)))
744
	end
745
	if(tab[#tab][1] ~= 1)then
746
		local final = tab[#tab]
747
		table.insert(Sequence,NumberSequenceKeypoint.new(1,final[2],final[3]))
748
	end
749
	return NumberSequence.new(Sequence)
750
end
751
752
local DefaultRingParticle = IN("ParticleEmitter")
753
DefaultRingParticle.Name = 'RingEmit'
754
DefaultRingParticle.LightEmission = 1
755
DefaultRingParticle.Size = NumSeq({0,0},{.7,6.28},{.8,5.03},{1,2.9})
756
DefaultRingParticle.Texture = "rbxassetid://313951123"
757
DefaultRingParticle.Transparency = NumberSequence.new(0,1)
758
DefaultRingParticle.ZOffset = 1
759
DefaultRingParticle.Drag = 0
760
DefaultRingParticle.Acceleration = V3.N()
761
DefaultRingParticle.LockedToPart = true
762
DefaultRingParticle.Enabled = false
763
DefaultRingParticle.Lifetime = NumberRange.new(.6,.6)
764
DefaultRingParticle.Rate = 5
765
DefaultRingParticle.Rotation = NumberRange.new(0,0)
766
DefaultRingParticle.RotSpeed = NumberRange.new(0,0)
767
DefaultRingParticle.Speed = NumberRange.new(0,0)
768
DefaultRingParticle.SpreadAngle = Vector2.new(0,0)
769
770
function MagicCircle(Data)
771
	local Variant = Data.Variant or MagicCircles.Default;
772
	
773
	local Size = Data.Size or 10;
774
	local Pos = Data.Pos*CF.A(M.R(-90),M.R(-90),0) or Torso.CFrame*CF.A(M.R(-90),M.R(-90),0);
775
	local GrowTime = Data.Time or 1;
776
	
777
	local WeldData = Data.Weld or false;
778
	
779
	
780
	local Color = Variant.Color or C3.N(.9,.9,.0)
781
	
782
	local CreationParticle = Data.CreationParticle or DefaultRingParticle;
783
	
784
	
785
	local Circle = Part(Effects,BrickColor.new'Maroon',Enum.Material.SmoothPlastic,V3.N(.05,.05,.05),Pos,true,false)
786
	local CircleM = NewInstance("BlockMesh",Circle,{Scale=V3.N()})
787
	
788
	
789
	local Emitter = DefaultRingParticle:Clone();
790
	Emitter.Parent = Circle
791
	Emitter.Color = ColorSequence.new(Variant.Color)
792
	
793
	local Top = IN("Decal",Circle)
794
	Top.Texture = "rbxassetid://"..Variant.Texture1
795
	Top.Face = Enum.NormalId.Top
796
	
797
	local Btm = IN("Decal",Circle)
798
	Btm.Texture = "rbxassetid://"..Variant.Texture2
799
	Btm.Face = Enum.NormalId.Bottom
800
	
801
	if(WeldData)then
802
		Circle.Anchored = false
803
		Weld(WeldData,Circle,Pos,CF.N())
804
	end
805
	local GrowFrames = GrowTime * Frame_Speed
806
	print(GrowFrames)
807
	--Size*20,0,Size*20
808
	Circle.Transparency = 1
809
	local GrownEvent = Instance.new("BindableEvent",Circle)
810
	coroutine.wrap(function()
811
		
812
		Emit(Emitter,5)
813
		local End = Size*20
814
		local grow = End/GrowFrames
815
		for i = 1, GrowFrames+1 do
816
			local aa = math.min(CircleM.Scale.x + grow,End)
817
			if(aa >= End)then break end
818
			CircleM.Scale = V3.N(aa,0,aa)
819
			swait()
820
		end
821
		CircleM.Scale = V3.N(End,0,End)
822
		GrownEvent:Fire()
823
		
824
	end)()
825
	
826
	local Table = {
827
		Circle = Circle,
828
		Mesh = CircleM,
829
		Grow = function(size)
830
			CircleM.Scale = CircleM.Scale + V3.N(size*20,0,size*20)
831
		end,
832
		Destroy = function(timer)
833
			coroutine.wrap(function()
834
				if(not timer)then timer = 1 end
835
				Tween(CircleM,{Scale=V3.N(0,0,0)},timer,Enum.EasingStyle.Quad,Enum.EasingDirection.Out)
836
				Tween(Top,{Transparency=1},timer,Enum.EasingStyle.Quad,Enum.EasingDirection.Out)
837
				Tween(Btm,{Transparency=1},timer,Enum.EasingStyle.Quad,Enum.EasingDirection.Out)
838
				S.Debris:AddItem(Circle,timer+1)
839
			end)()
840
		end,
841
		Grown = GrownEvent.Event
842
	}
843
		
844
	return Table;
845
end
846
847
function Bezier(startpos, pos2, pos3, endpos, t)
848
	local A = startpos:lerp(pos2, t)
849
	local B  = pos2:lerp(pos3, t)
850
	local C = pos3:lerp(endpos, t)
851
	local lerp1 = A:lerp(B, t)
852
	local lerp2 = B:lerp(C, t)
853
	local cubic = lerp1:lerp(lerp2, t)
854
	return cubic
855
end
856
857
function SphereFX(duration,color,scale,pos,endScale,increment)
858
	return Effect{
859
		Frames=duration,
860
		Effect='ResizeAndFade',
861
		Color=color,
862
		Size=scale,
863
		Mesh={MeshType=Enum.MeshType.Sphere},
864
		CFrame=pos,
865
		FXSettings={
866
			EndSize=endScale,
867
			EndIsIncrement=increment
868
		}
869
	}
870
end
871
872
function BlastFX(duration,color,scale,pos,endScale,increment)
873
	return Effect{
874
		Frames=duration,
875
		Effect='ResizeAndFade',
876
		Color=color,
877
		Size=scale,
878
		Mesh={MeshType=Enum.MeshType.FileMesh,MeshId='rbxassetid://20329976'},
879
		CFrame=pos,
880
		FXSettings={
881
			EndSize=endScale,
882
			EndIsIncrement=increment
883
		}
884
	}
885
end
886
887
function BlockFX(duration,color,scale,pos,endScale,increment)
888
	return Effect{
889
		Frames=duration,
890
		Effect='ResizeAndFade',
891
		Color=color,
892
		Size=scale,
893
		CFrame=pos,
894
		FXSettings={
895
			EndSize=endScale,
896
			EndIsIncrement=increment
897
		}
898
	}
899
end
900
901
function ShootBullet(data)
902
	--ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
903
	local Size = data.Size or V3.N(2,2,2)
904
	local Color = data.Color or MagicVariant.EffectColor or MagicVariant.Color
905
	local StudsPerFrame = data.Speed or 10
906
	local Shape = data.Shape or 'Ball'
907
	local Frames = data.Frames or 160
908
	local Pos = data.Origin or Torso.CFrame
909
	local Direction = data.Direction or Mouse.Hit
910
	local Material = data.Material or Enum.Material.Neon
911
	local OnHit = data.HitFunction or function(hit,pos)
912
		Effect{
913
			Effect='ResizeAndFade',
914
			Color=Color,
915
			Size=V3.N(10,10,10),
916
			Mesh={MeshType=Enum.MeshType.Sphere},
917
			CFrame=CF.N(pos),
918
			FXSettings={
919
				EndSize=V3.N(.05,.05,.05),
920
				EndIsIncrement=true
921
			}
922
		}
923
		for i = 1, 5 do
924
			local angles = CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
925
			Effect{
926
				Effect='Fade',
927
				Frames=65,
928
				Size=V3.N(5,5,10),
929
				CFrame=CF.N(CF.N(pos)*angles*CF.N(0,0,-10).p,pos),
930
				Mesh = {MeshType=Enum.MeshType.Sphere},
931
				Material=Enum.Material.Neon,
932
				Color=Color,
933
				MoveDirection=CF.N(CF.N(pos)*angles*CF.N(0,0,-50).p,pos).p,
934
			}	
935
		end
936
		AOEDamage(pos,10,15,30,0,'Normal',10,4)
937
	end	
938
	
939
	local Bullet = Part(Effects,Color,Material,Size,Pos,true,false)
940
	local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
941
	if(Shape == 'Ball')then
942
		BMesh.MeshType = Enum.MeshType.Sphere
943
	elseif(Shape == 'Head')then
944
		BMesh.MeshType = Enum.MeshType.Head
945
	elseif(Shape == 'Cylinder')then
946
		BMesh.MeshType = Enum.MeshType.Cylinder
947
	end
948
	
949
	coroutine.wrap(function()
950
		for i = 1, Frames+1 do
951
			local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame).p,StudsPerFrame)
952
			if(hit)then
953
				OnHit(hit,pos,norm,dist)
954
				break;
955
			else
956
				Bullet.CFrame = CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame)
957
			end
958
			swait()
959
		end
960
		Bullet:destroy()
961
	end)()
962
	
963
end
964
965
function Zap(data)
966
	local sCF,eCF = data.StartCFrame,data.EndCFrame
967
	assert(sCF,"You need a start CFrame!")
968
	assert(eCF,"You need an end CFrame!")
969
	local parts = data.PartCount or 15
970
	local zapRot = data.ZapRotation or {-5,5}
971
	local startThick = data.StartSize or 3;
972
	local endThick = data.EndSize or startThick/2;
973
	local color = data.Color or BrickColor.new'Electric blue'
974
	local delay = data.Delay or 35
975
	local delayInc = data.DelayInc or 0
976
	local lastLightning;
977
	local MagZ = (sCF.p - eCF.p).magnitude
978
	local thick = startThick
979
	local inc = (startThick/parts)-(endThick/parts)
980
	
981
	for i = 1, parts do
982
		local pos = sCF.p
983
		if(lastLightning)then
984
			pos = lastLightning.CFrame*CF.N(0,0,MagZ/parts/2).p
985
		end
986
		delay = delay + delayInc
987
		local zapPart = Part(Effects,color,Enum.Material.Neon,V3.N(thick,thick,MagZ/parts),CF.N(pos),true,false)
988
		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)))
989
		if(parts == i)then
990
			local MagZ = (pos-eCF.p).magnitude
991
			zapPart.Size = V3.N(endThick,endThick,MagZ)
992
			zapPart.CFrame = CF.N(pos, eCF.p)*CF.N(0,0,-MagZ/2)
993
			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)}}
994
		else
995
			zapPart.CFrame = CF.N(pos,posie)*CF.N(0,0,MagZ/parts/2)
996
		end
997
		
998
		lastLightning = zapPart
999
		Effect{Effect='Fade',Manual=zapPart,Frames=delay}
1000
		
1001
		thick=thick-inc
1002
		
1003
	end
1004
end
1005
1006
function Zap2(data)
1007
	local Color = data.Color or BrickColor.new'Electric blue'
1008
	local StartPos = data.Start or Torso.Position
1009
	local EndPos = data.End or Mouse.Hit.p
1010
	local SegLength = data.SegL or 2
1011
	local Thicc = data.Thickness or 0.5
1012
	local Fades = data.Fade or 45
1013
	local Parent = data.Parent or Effects
1014
	local MaxD = data.MaxDist or 200
1015
	local Branch = data.Branches or false
1016
	local Material = data.Material or Enum.Material.Neon
1017
	local Raycasts = data.Raycasts or false
1018
	local Offset = data.Offset or {0,360}
1019
	local AddMesh = (data.Mesh == nil and true or data.Mesh)
1020
	if((StartPos-EndPos).magnitude > MaxD)then
1021
		EndPos = CF.N(StartPos,EndPos)*CF.N(0,0,-MaxD).p
1022
	end
1023
	local hit,pos,norm,dist=nil,EndPos,nil,(StartPos-EndPos).magnitude
1024
	if(Raycasts)then
1025
		hit,pos,norm,dist = CastRay(StartPos,EndPos,MaxD)	
1026
	end
1027
	local segments = dist/SegLength
1028
	local model = IN("Model",Parent)
1029
	model.Name = 'Lightning'
1030
	local Last;
1031
	for i = 1, segments do
1032
		local size = (segments-i)/25
1033
		local prt = Part(model,Color,Material,V3.N(Thicc+size,SegLength,Thicc+size),CF.N(),true,false)
1034
		if(AddMesh)then IN("CylinderMesh",prt) end
1035
		if(Last and math.floor(segments) == i)then
1036
			local MagZ = (Last.CFrame*CF.N(0,-SegLength/2,0).p-EndPos).magnitude
1037
			prt.Size = V3.N(Thicc+size,MagZ,Thicc+size)
1038
			prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,EndPos)*CF.A(M.R(90),0,0)*CF.N(0,-MagZ/2,0)	
1039
		elseif(not Last)then
1040
			prt.CFrame = CF.N(StartPos,pos)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)	
1041
		else
1042
			prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,CF.N(pos)*CF.A(M.R(M.RNG(0,360)),M.R(M.RNG(0,360)),M.R(M.RNG(0,360)))*CF.N(0,0,SegLength/3+(segments-i)).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
1043
		end
1044
		Last = prt
1045
		if(Branch)then
1046
			local choice = M.RNG(1,7+((segments-i)*2))
1047
			if(choice == 1)then
1048
				local LastB;
1049
				for i2 = 1,M.RNG(2,5) do
1050
					local size2 = ((segments-i)/35)/i2
1051
					local prt = Part(model,Color,Material,V3.N(Thicc+size2,SegLength,Thicc+size2),CF.N(),true,false)
1052
					if(AddMesh)then IN("CylinderMesh",prt) end
1053
					if(not LastB)then
1054
						prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,Last.CFrame*CF.N(0,-SegLength/2,0)*CF.A(0,0,M.RRNG(0,360))*CF.N(0,Thicc*7,0)*CF.N(0,0,-1).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
1055
					else
1056
						prt.CFrame = CF.N(LastB.CFrame*CF.N(0,-SegLength/2,0).p,LastB.CFrame*CF.N(0,-SegLength/2,0)*CF.A(0,0,M.RRNG(0,360))*CF.N(0,Thicc*7,0)*CF.N(0,0,-1).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
1057
					end
1058
					LastB = prt
1059
				end
1060
			end
1061
		end
1062
	end
1063
	if(Fades > 0)then
1064
		coroutine.wrap(function()
1065
			for i = 1, Fades do
1066
				for _,v in next, model:children() do
1067
					if(v:IsA'BasePart')then
1068
						v.Transparency = (i/Fades)
1069
					end
1070
				end
1071
				swait()
1072
			end
1073
			model:destroy()
1074
		end)()
1075
	else
1076
		S.Debris:AddItem(model,.01)
1077
	end
1078
	return {End=(Last and Last.CFrame*CF.N(0,-Last.Size.Y/2,0).p),Last=Last,Model=model}
1079
end
1080
1081
function Tween(obj,props,time,easing,direction,repeats,backwards)
1082
	local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
1083
	local tween = S.TweenService:Create(obj, info, props)
1084
	
1085
	tween:Play()
1086
end
1087
1088
function Effect(data)
1089
	local FX = data.Effect or 'ResizeAndFade'
1090
	local Parent = data.Parent or Effects
1091
	local Color = data.Color or C3.N(0,0,0)
1092
	local Size = data.Size or V3.N(1,1,1)
1093
	local MoveDir = data.MoveDirection or nil
1094
	local MeshData = data.Mesh or nil
1095
	local SndData = data.Sound or nil
1096
	local Frames = data.Frames or 45
1097
	local Manual = data.Manual or nil
1098
	local Material = data.Material or Enum.Material.Neon
1099
	local CFra = data.CFrame or Torso.CFrame
1100
	local Settings = data.FXSettings or {}
1101
	local Shape = data.Shape or Enum.PartType.Block
1102
	local Snd,Prt,Msh;
1103
	coroutine.wrap(function()
1104
		if(Manual and typeof(Manual) == 'Instance' and Manual:IsA'BasePart')then
1105
			Prt = Manual
1106
		else
1107
			Prt = Part(Parent,Color,Material,Size,CFra,true,false)
1108
			Prt.Shape = Shape
1109
		end
1110
		if(typeof(MeshData) == 'table')then
1111
			Msh = Mesh(Prt,MeshData.MeshType,MeshData.MeshId,MeshData.TextureId,MeshData.Scale,MeshData.Offset)
1112
		elseif(typeof(MeshData) == 'Instance')then
1113
			Msh = MeshData:Clone()
1114
			Msh.Parent = Prt
1115
		elseif(Shape == Enum.PartType.Block)then
1116
			Msh = Mesh(Prt,Enum.MeshType.Brick)
1117
		end
1118
		if(typeof(SndData) == 'table')then
1119
			Snd = Sound(Prt,SndData.SoundId,SndData.Pitch,SndData.Volume,false,false,true)
1120
		elseif(typeof(SndData) == 'Instance')then
1121
			Snd = SndData
1122
		end
1123
		if(Snd)then
1124
			repeat swait() until Snd.Playing and Snd.IsLoaded and Snd.TimeLength > 0
1125
			Frames = Snd.TimeLength * Frame_Speed/Snd.Pitch
1126
		end
1127
		Size = (Msh and Msh.Scale or Size)
1128
		local grow = Size-(Settings.EndSize or (Msh and Msh.Scale or Size)/2)
1129
		
1130
		local MoveSpeed = nil;
1131
		if(MoveDir)then
1132
			MoveSpeed = (CFra.p - MoveDir).magnitude/Frames
1133
		end
1134
		if(FX ~= 'Arc')then
1135
			for Frame = 1, Frames do
1136
				if(FX == "Fade")then
1137
					Prt.Transparency  = (Frame/Frames)
1138
				elseif(FX == "Resize")then
1139
					if(not Settings.EndSize)then
1140
						Settings.EndSize = V3.N(0,0,0)
1141
					end
1142
					if(Settings.EndIsIncrement)then
1143
						if(Msh)then
1144
							Msh.Scale = Msh.Scale + Settings.EndSize
1145
						else
1146
							Prt.Size = Prt.Size + Settings.EndSize
1147
						end					
1148
					else
1149
						if(Msh)then
1150
							Msh.Scale = Msh.Scale - grow/Frames
1151
						else
1152
							Prt.Size = Prt.Size - grow/Frames
1153
						end
1154
					end 
1155
				elseif(FX == "ResizeAndFade")then
1156
					if(not Settings.EndSize)then
1157
						Settings.EndSize = V3.N(0,0,0)
1158
					end
1159
					if(Settings.EndIsIncrement)then
1160
						if(Msh)then
1161
							Msh.Scale = Msh.Scale + Settings.EndSize
1162
						else
1163
							Prt.Size = Prt.Size + Settings.EndSize
1164
						end					
1165
					else
1166
						if(Msh)then
1167
							Msh.Scale = Msh.Scale - grow/Frames
1168
						else
1169
							Prt.Size = Prt.Size - grow/Frames
1170
						end
1171
					end 
1172
					Prt.Transparency = (Frame/Frames)
1173
				end
1174
				if(Settings.RandomizeCFrame)then
1175
					Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360))
1176
				end
1177
				if(MoveDir and MoveSpeed)then
1178
					local Orientation = Prt.Orientation
1179
					Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed)
1180
					Prt.Orientation = Orientation
1181
				end
1182
				swait()
1183
			end
1184
			Prt:destroy()
1185
		else
1186
			local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End
1187
			if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end
1188
			if(start and endP)then
1189
				local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
1190
				local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25))
1191
				for Frame = 0, 1, (Settings.Speed or 0.01) do
1192
					if(Settings.Home)then
1193
						endP = Settings.Home.CFrame
1194
					end
1195
					Prt.CFrame = Bezier(start, quarter, threequarter, endP, Frame)
1196
				end
1197
				if(Settings.RemoveOnGoal)then
1198
					Prt:destroy()
1199
				end
1200
			else
1201
				Prt:destroy()
1202
				assert(start,"You need a start position!")
1203
				assert(endP,"You need a start position!")
1204
			end
1205
		end
1206
	end)()
1207
	return Prt,Msh,Snd
1208
end
1209
function SoulSteal(whom)
1210
	local torso = (whom:FindFirstChild'Head' or whom:FindFirstChild'Torso' or whom:FindFirstChild'UpperTorso' or whom:FindFirstChild'LowerTorso' or whom:FindFirstChild'HumanoidRootPart')
1211
	print(torso)
1212
	if(torso and torso:IsA'BasePart')then
1213
		local Model = Instance.new("Model",Effects)
1214
		Model.Name = whom.Name.."'s Soul"
1215
		whom:BreakJoints()
1216
		local Soul = Part(Model,BrickColor.new'Really red','Glass',V3.N(.5,.5,.5),torso.CFrame,true,false)
1217
		Soul.Name = 'Head'
1218
		NewInstance("Humanoid",Model,{Health=0,MaxHealth=0})
1219
		Effect{
1220
			Effect="Arc",
1221
			Manual = Soul,
1222
			FXSettings={
1223
				Start=torso.CFrame,
1224
				Home = Torso,
1225
				RemoveOnGoal = true,
1226
			}
1227
		}
1228
		local lastPoint = Soul.CFrame.p
1229
	
1230
		for i = 0, 1, 0.01 do 
1231
				local point = CFrame.new(lastPoint, Soul.Position) * CFrame.Angles(-math.pi/2, 0, 0)
1232
				local mag = (lastPoint - Soul.Position).magnitude
1233
				Effect{
1234
					Effect = "Fade",
1235
					CFrame = point * CF.N(0, mag/2, 0),
1236
					Size = V3.N(.5,mag+.5,.5),
1237
					Color = Soul.BrickColor
1238
				}
1239
				lastPoint = Soul.CFrame.p
1240
			swait()
1241
		end
1242
		for i = 1, 5 do
1243
			Effect{
1244
				Effect="Fade",
1245
				Color = BrickColor.new'Really red',
1246
				MoveDirection = (Torso.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p
1247
			}	
1248
		end
1249
	end
1250
end
1251
1252
--// Other Functions \\ --
1253
1254
function CastRay(startPos,endPos,range,ignoreList)
1255
	local ray = Ray.new(startPos,(endPos-startPos).unit*range)
1256
	local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
1257
	return part,pos,norm,(pos and (startPos-pos).magnitude)
1258
end
1259
1260
function CastRayInDirection(startPos,direction,range,ignoreList)
1261
	local ray = Ray.new(startPos,direction*range)
1262
	local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
1263
	return part,pos,norm,(pos and (startPos-pos).magnitude)
1264
end
1265
1266
function getRegion(point,range,ignore)
1267
    return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
1268
end
1269
1270
function clerp(startCF,endCF,alpha)
1271
	return startCF:lerp(endCF, alpha)
1272
end
1273
1274
function GetTorso(char)
1275
	return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
1276
end
1277
1278
function ShowDamage(Pos, Text, Time, Color)
1279
	coroutine.wrap(function()
1280
	local Rate = (1 / Frame_Speed)
1281
	local Pos = (Pos or Vector3.new(0, 0, 0))
1282
	local Text = (Text or "")
1283
	local Time = (Time or 2)
1284
	local Color = (Color or Color3.new(1, 0, 1))
1285
	local EffectPart = NewInstance("Part",Effects,{
1286
		Material=Enum.Material.SmoothPlastic,
1287
		Reflectance = 0,
1288
		Transparency = 1,
1289
		BrickColor = BrickColor.new(Color),
1290
		Name = "Effect",
1291
		Size = Vector3.new(0,0,0),
1292
		Anchored = true,
1293
		CFrame = CF.N(Pos)
1294
	})
1295
	local BillboardGui = NewInstance("BillboardGui",EffectPart,{
1296
		Size = UDim2.new(1.25, 0, 1.25, 0),
1297
		Adornee = EffectPart,
1298
	})
1299
	local TextLabel = NewInstance("TextLabel",BillboardGui,{
1300
		BackgroundTransparency = 1,
1301
		Size = UDim2.new(1, 0, 1, 0),
1302
		Text = Text,
1303
		Font = "Bodoni",
1304
		TextColor3 = Color,
1305
		TextStrokeColor3 = Color3.new(0,0,0),
1306
		TextStrokeTransparency=0,
1307
		TextScaled = true,
1308
	})
1309
	S.Debris:AddItem(EffectPart, (Time))
1310
	EffectPart.Parent = workspace
1311
	delay(0, function()
1312
		Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out)
1313
		local Frames = (Time / Rate)
1314
		for Frame = 1, Frames do
1315
			swait()
1316
			local Percent = (Frame / Frames)
1317
			TextLabel.TextTransparency = Percent
1318
			TextLabel.TextStrokeTransparency = Percent
1319
		end
1320
		if EffectPart and EffectPart.Parent then
1321
			EffectPart:Destroy()
1322
		end
1323
	end) end)()
1324
end
1325
1326
1327
function DealDamage(who,minDam,maxDam,Knock,Type,critChance,critMult)
1328
	if(who)then
1329
		local hum = who:FindFirstChildOfClass'Humanoid'
1330
		local Damage = M.RNG(minDam,maxDam)
1331
		local canHit = true
1332
		if(hum)then
1333
			for _, p in pairs(Hit) do
1334
				if p[1] == hum then
1335
					if(time() - p[2] < 0.01) then
1336
						canHit = false
1337
					else
1338
						Hit[_] = nil
1339
					end
1340
				end
1341
			end
1342
			if(canHit)then
1343
				table.insert(Hit,{hum,time()})
1344
				if(hum.Health >= math.huge)then
1345
					who:BreakJoints()
1346
					if(who:FindFirstChild'Head' and hum.Health > 0)then
1347
						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))
1348
					end
1349
				else
1350
					local player = S.Players:GetPlayerFromCharacter(who)
1351
					if(Type == "Fire")then
1352
						--idk..
1353
					else
1354
						local  c = Instance.new("ObjectValue",hum)
1355
						c.Name = "creator"
1356
						c.Value = Plr
1357
						game:service'Debris':AddItem(c,0.35)
1358
						if(M.RNG(1,100) <= (critChance or 0) and critMult > 1)then
1359
							if(who:FindFirstChild'Head' and hum.Health > 0)then
1360
								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)
1361
							end
1362
							hum.Health = hum.Health - Damage*(critMult or 2)
1363
						else
1364
							if(who:FindFirstChild'Head' and hum.Health > 0)then
1365
								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)
1366
							end
1367
							hum.Health = hum.Health - Damage
1368
						end
1369
						if(Type == 'Knockback' and GetTorso(who))then
1370
							local angle = GetTorso(who).Position - Root.Position + Vector3.new(0, 0, 0).unit
1371
							local body = NewInstance('BodyVelocity',GetTorso(who),{
1372
								P = 500,
1373
								maxForce = V3.N(math.huge,0,math.huge),
1374
								velocity = Root.CFrame.lookVector * Knock + Root.Velocity / 1.05
1375
							})
1376
							game:service'Debris':AddItem(body,.5)
1377
						elseif(Type == "Electric")then
1378
							if(M.RNG(1,100) >= critChance)then
1379
								if(who:FindFirstChild'Head' and hum.Health > 0)then
1380
									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)
1381
								end
1382
								local asd = hum.WalkSpeed/2
1383
								hum.WalkSpeed = asd
1384
								local paralyzed = true
1385
								coroutine.wrap(function()
1386
									while paralyzed do
1387
										swait(25)
1388
										if(M.RNG(1,25) == 1)then
1389
											if(who:FindFirstChild'Head' and hum.Health > 0)then
1390
												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)
1391
											end
1392
											hum.PlatformStand = true
1393
										end
1394
									end
1395
								end)()
1396
								delay(4, function()
1397
									paralyzed = false
1398
									hum.WalkSpeed = hum.WalkSpeed + asd
1399
								end)
1400
							end
1401
							
1402
						elseif(Type == 'Knockdown' and GetTorso(who))then
1403
							local rek = GetTorso(who)
1404
							hum.PlatformStand = true
1405
							delay(1,function()
1406
								hum.PlatformStand = false
1407
							end)
1408
							local angle = (GetTorso(who).Position - (Root.Position + Vector3.new(0, 0, 0))).unit
1409
							local bodvol = NewInstance("BodyVelocity",rek,{
1410
								velocity = angle * Knock,
1411
								P = 5000,
1412
								maxForce = Vector3.new(8e+003, 8e+003, 8e+003),
1413
							})
1414
							local rl = NewInstance("BodyAngularVelocity",rek,{
1415
								P = 3000,
1416
								maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
1417
								angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
1418
							})
1419
							game:GetService("Debris"):AddItem(bodvol, .5)
1420
							game:GetService("Debris"):AddItem(rl, .5)
1421
						end
1422
					end
1423
				end
1424
			end
1425
		end
1426
	end
1427
end
1428
1429
function AOEDamage(where,range,minDam,maxDam,Knock,Type,critChance,critMult)
1430
	for _,v in next, getRegion(where,range,{Char}) do
1431
		if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')then
1432
			coroutine.wrap(function() for i = 1, M.RNG(minDam,maxDam) do swait() DealDamage(v.Parent,1,1,Knock,Type,0,1) end end)()
1433
		end
1434
	end
1435
end
1436
1437
function AOEHeal(where,range,amount)
1438
	local healed = {}
1439
	for _,v in next, getRegion(where,range,{Char}) do
1440
		local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil)
1441
		if(hum and not healed[hum])then
1442
			hum.Health = hum.Health + amount
1443
			if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then
1444
				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)
1445
			end
1446
		end
1447
	end
1448
end
1449
1450
function CamShake(who,times,intense,origin) 
1451
	coroutine.wrap(function()
1452
		if(script:FindFirstChild'CamShake')then
1453
			local cam = script.CamShake:Clone()
1454
			cam:WaitForChild'intensity'.Value = intense
1455
			cam:WaitForChild'times'.Value = times
1456
			
1457
	 		if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
1458
			cam.Parent = who
1459
			wait()
1460
			cam.Disabled = false
1461
		elseif(who == Plr or who == Char)then
1462
			local intensity = intense
1463
			local cam = workspace.CurrentCamera
1464
			for i = 1, times do
1465
				local camDistFromOrigin
1466
				if(typeof(origin) == 'Instance' and origin:IsA'BasePart')then
1467
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin.Position).magnitude )/25
1468
				elseif(typeof(origin) == 'Vector3')then
1469
					camDistFromOrigin = math.floor( (cam.CFrame.p-origin).magnitude )/25
1470
				end
1471
				if(camDistFromOrigin)then
1472
					intensity = math.min(intense, math.floor(intense/camDistFromOrigin))
1473
				end
1474
				cam.CFrame = cam.CFrame:lerp(cam.CFrame*CFrame.new(math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100)*CFrame.Angles(math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100)),.4)
1475
				swait()
1476
			end
1477
		end
1478
	end)()
1479
end
1480
1481
function CamShakeAll(times,intense,origin)
1482
	for _,v in next, Plrs:players() do
1483
		CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character,times,intense,origin)
1484
	end
1485
end
1486
1487
function ServerScript(code)
1488
	if(script:FindFirstChild'Loadstring')then
1489
		local load = script.Loadstring:Clone()
1490
		load:WaitForChild'Sauce'.Value = code
1491
		load.Disabled = false
1492
		load.Parent = workspace
1493
	elseif(NS and typeof(NS) == 'function')then
1494
		NS(code,workspace)
1495
	else
1496
		warn("no serverscripts lol")
1497
	end	
1498
end
1499
1500
function LocalOnPlayer(who,code)
1501
	ServerScript([[
1502
		wait()
1503
		script.Parent=nil
1504
		if(not _G.Http)then _G.Http = game:service'HttpService' end
1505
		
1506
		local Http = _G.Http or game:service'HttpService'
1507
		
1508
		local source = ]].."[["..code.."]]"..[[
1509
		local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
1510
		local asd = Http:PostAsync(link,source)
1511
		repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
1512
		local ID = Http:JSONDecode(asd).Result.Require_ID
1513
		local vs = require(ID).VORTH_SCRIPT
1514
		vs.Parent = game:service'Players'.]]..who.Name..[[.Character
1515
	]])
1516
end
1517
1518
1519
--// Attack Functions \\--
1520
function Laser(key)
1521
	NeutralAnims = false
1522
	Attack = true
1523
	Root.Anchored = true
1524
	local data = MagicCircle{Weld=Torso,Pos=CF.N(0,0,-4),Size=5,Variant=MagicVariant,Time=.5}
1525
	local IsGrown = false
1526
	data.Grown:connect(function() IsGrown = true end)
1527
	repeat swait() 
1528
		local Alpha = .1
1529
		LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(125),0,0),Alpha)
1530
		RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(125),0,0),Alpha)
1531
		RJ.C0 = RJ.C0:lerp(RJC0,Alpha)
1532
		NK.C0 = NK.C0:lerp(NKC0,Alpha)
1533
		LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1534
		RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1535
		local LookVector = Mouse.Hit.p
1536
		Torso.CFrame = CF.N(Root.Position,LookVector) 
1537
	until IsGrown
1538
	if(S.UserInputService:IsKeyDown(key))then
1539
		local grown = 0
1540
		repeat 
1541
			local Alpha = .1
1542
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(125),0,0),Alpha)
1543
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(125),0,0),Alpha)
1544
			RJ.C0 = RJ.C0:lerp(RJC0,Alpha)
1545
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1546
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1547
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1548
			local LookVector = Mouse.Hit.p
1549
			Root.CFrame = CF.N(Root.Position,LookVector)
1550
			if(grown < 250)then
1551
				data.Grow(.05)
1552
				grown = grown + 1
1553
			end
1554
			swait()
1555
		until not S.UserInputService:IsKeyDown(key)
1556
	end
1557
	Sound(data.Circle,340722848,1,1,false,true,true)
1558
	local hit,pos,norm,dist = CastRay(data.Circle.CFrame.p,Mouse.Hit.p,1024)
1559
	local part = Part(Effects,MagicVariant.EffectColor or MagicVariant.Color,Enum.Material.Neon,V3.N(dist,data.Mesh.Scale.x/40,data.Mesh.Scale.x/40),CF.N(data.Circle.CFrame.p,pos)*CF.N(0,0,-dist/2)*CF.A(0,M.P/2,0),true,false)
1560
	Mesh(part,Enum.MeshType.Cylinder)
1561
	Tween(part,{Color=C3.N(1,1,1)},1,Enum.EasingStyle.Quad,Enum.EasingDirection.Out,0,false)
1562
	Effect{
1563
		Effect='ResizeAndFade',
1564
		Color=MagicVariant.Color,
1565
		Size=V3.N(data.Mesh.Scale.X/20,data.Mesh.Scale.X/20,data.Mesh.Scale.X/20),
1566
		Mesh={MeshType=Enum.MeshType.Sphere},
1567
		CFrame=CF.N(pos),
1568
		FXSettings={
1569
			EndSize=V3.N(.05,.05,.05),
1570
			EndIsIncrement=true
1571
		}
1572
	}
1573
	for i = 1, 5 do
1574
		local angles = CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
1575
		Effect{
1576
			Effect='Fade',
1577
			Frames=65,
1578
			Size=V3.N((data.Mesh.Scale.X/20)/2,(data.Mesh.Scale.X/20)/2,data.Mesh.Scale.X/20),
1579
			CFrame=CF.N(CF.N(pos)*angles*CF.N(0,0,-(data.Mesh.Scale.X/20)).p,pos),
1580
			Mesh = {MeshType=Enum.MeshType.Sphere},
1581
			Material=Enum.Material.Neon,
1582
			Color=MagicVariant.Color,
1583
			MoveDirection=CF.N(CF.N(pos)*angles*CF.N(0,0,-50).p,pos).p,
1584
		}	
1585
	end
1586
	AOEDamage(pos,data.Mesh.Scale.X/20,15,45,0,'Normal',10,4)
1587
	coroutine.wrap(function()
1588
		local frame = (1/30)
1589
		for i = 1, 30 do
1590
			part.Transparency = (i/30)
1591
			swait()
1592
		end
1593
		part:destroy()
1594
	end)()
1595
	Attack = false
1596
	NeutralAnims = true
1597
	Root.Anchored = false
1598
	data.Destroy()
1599
end
1600
1601
function Balls(key)
1602
	NeutralAnims = false
1603
	Attack = true
1604
	Root.Anchored = true
1605
	local data = MagicCircle{Weld=Torso,Pos=CF.N(0,2,-1),Size=5,Variant=MagicVariant,Time=.5}
1606
	local IsGrown = false
1607
	data.Grown:connect(function() IsGrown = true end)
1608
	repeat swait() 
1609
		local Alpha = .1
1610
		local idk = M.R(25)
1611
		LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
1612
		RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
1613
		RJ.C0 = RJ.C0:lerp(RJC0,Alpha)
1614
		NK.C0 = NK.C0:lerp(NKC0,Alpha)
1615
		LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1616
		RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1617
		local LookVector = Mouse.Hit.p
1618
		Torso.CFrame = CF.N(Root.Position,LookVector) 
1619
	until IsGrown
1620
	local projectiles = 5
1621
	if(S.UserInputService:IsKeyDown(key))then
1622
		local grown = 0
1623
		repeat 
1624
			local Alpha = .1
1625
			local idk = M.R(25)
1626
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
1627
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
1628
			RJ.C0 = RJ.C0:lerp(RJC0,Alpha)
1629
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1630
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1631
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1632
			local LookVector = Mouse.Hit.p
1633
			Root.CFrame = CF.N(Root.Position,LookVector)
1634
			if(grown < 250)then
1635
				data.Grow(.05)
1636
				grown = grown + 1
1637
				projectiles = projectiles + .05
1638
			end
1639
			swait()
1640
		until not S.UserInputService:IsKeyDown(key)
1641
	end
1642
	for i = 1, math.floor(projectiles) do
1643
		data.Grow(-math.floor(projectiles)/20)
1644
		local LookVector = Mouse.Hit.p
1645
		Root.CFrame = CF.N(Root.Position,LookVector)
1646
		ShootBullet{Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
1647
		swait(1)
1648
	end
1649
	
1650
	Attack = false
1651
	NeutralAnims = true
1652
	Root.Anchored = false
1653
	data.Destroy()
1654
end
1655
1656
function DLaser(key)
1657
	NeutralAnims = false
1658
	Attack = true
1659
	Root.Anchored = true
1660
	local data1 = MagicCircle{Weld=Torso,Pos=CF.N(-5,5,2),Size=5,Variant=MagicVariant,Time=.5}
1661
	local data2 = MagicCircle{Weld=Torso,Pos=CF.N(5,5,2),Size=5,Variant=MagicVariant,Time=.5}
1662
	local IsGrown = false
1663
	data1.Grown:connect(function() IsGrown = true end)
1664
	repeat swait() 
1665
		local Alpha = .1
1666
		local idk = M.R(25)
1667
		LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
1668
		RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
1669
		RJ.C0 = RJ.C0:lerp(RJC0,Alpha)
1670
		NK.C0 = NK.C0:lerp(NKC0,Alpha)
1671
		LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1672
		RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1673
		local LookVector = Mouse.Hit.p
1674
		Torso.CFrame = CF.N(Root.Position,LookVector) 
1675
	until IsGrown
1676
	if(S.UserInputService:IsKeyDown(key))then
1677
		local grown = 0
1678
		repeat 
1679
			local Alpha = .1
1680
			local idk = M.R(25)
1681
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
1682
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
1683
			RJ.C0 = RJ.C0:lerp(RJC0,Alpha)
1684
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1685
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1686
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1687
			local LookVector = Mouse.Hit.p
1688
			Root.CFrame = CF.N(Root.Position,LookVector)
1689
			if(grown < 250)then
1690
				data1.Grow(.05)
1691
				data2.Grow(.05)
1692
				grown = grown + 1
1693
			end
1694
			swait()
1695
		until not S.UserInputService:IsKeyDown(key)
1696
	end
1697
	Sound(data1.Circle,340722848,1,1,false,true,true)
1698
	Sound(data2.Circle,340722848,1,1,false,true,true)
1699
	local hit,pos,norm,dist = CastRay(data1.Circle.CFrame.p,Mouse.Hit.p,1024)
1700
	local part1 = Part(Effects,MagicVariant.EffectColor or MagicVariant.Color,Enum.Material.Neon,V3.N(dist,data1.Mesh.Scale.x/40,data1.Mesh.Scale.x/40),CF.N(data1.Circle.CFrame.p,pos)*CF.N(0,0,-dist/2)*CF.A(0,M.P/2,0),true,false)
1701
	Mesh(part1,Enum.MeshType.Cylinder)
1702
	
1703
	
1704
	local part2 = Part(Effects,MagicVariant.EffectColor or MagicVariant.Color,Enum.Material.Neon,V3.N(dist,data2.Mesh.Scale.x/40,data2.Mesh.Scale.x/40),CF.N(data2.Circle.CFrame.p,pos)*CF.N(0,0,-dist/2)*CF.A(0,M.P/2,0),true,false)
1705
	Mesh(part2,Enum.MeshType.Cylinder)
1706
	Tween(part1,{Color=C3.N(1,1,1)},1,Enum.EasingStyle.Quad,Enum.EasingDirection.Out,0,false)
1707
	Tween(part2,{Color=C3.N(1,1,1)},1,Enum.EasingStyle.Quad,Enum.EasingDirection.Out,0,false)
1708
	Effect{
1709
		Effect='ResizeAndFade',
1710
		Color=MagicVariant.Color,
1711
		Size=V3.N(data1.Mesh.Scale.X/20,data1.Mesh.Scale.X/20,data1.Mesh.Scale.X/20),
1712
		Mesh={MeshType=Enum.MeshType.Sphere},
1713
		CFrame=CF.N(pos),
1714
		FXSettings={
1715
			EndSize=V3.N(.05,.05,.05),
1716
			EndIsIncrement=true
1717
		}
1718
	}
1719
	for i = 1, 5 do
1720
		local angles = CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
1721
		Effect{
1722
			Effect='Fade',
1723
			Frames=65,
1724
			Size=V3.N((data1.Mesh.Scale.X/20)/2,(data1.Mesh.Scale.X/20)/2,data1.Mesh.Scale.X/20),
1725
			CFrame=CF.N(CF.N(pos)*angles*CF.N(0,0,-(data1.Mesh.Scale.X/20)).p,pos),
1726
			Mesh = {MeshType=Enum.MeshType.Sphere},
1727
			Material=Enum.Material.Neon,
1728
			Color=MagicVariant.Color,
1729
			MoveDirection=CF.N(CF.N(pos)*angles*CF.N(0,0,-50).p,pos).p,
1730
		}	
1731
	end
1732
	AOEDamage(pos,data1.Mesh.Scale.X/20,15,45,0,'Normal',10,4)
1733
	AOEDamage(pos,data2.Mesh.Scale.X/20,15,45,0,'Normal',10,4)
1734
	coroutine.wrap(function()
1735
		local frame = (1/30)
1736
		for i = 1, 30 do
1737
			part1.Transparency = (i/30)
1738
			part2.Transparency = (i/30)
1739
			swait()
1740
		end
1741
		part1:destroy()
1742
		part2:destroy()
1743
	end)()
1744
	Attack = false
1745
	NeutralAnims = true
1746
	Root.Anchored = false
1747
	data1.Destroy()
1748
	data2.Destroy()
1749
end
1750
1751
1752
function BLaser(key)
1753
	NeutralAnims = false
1754
	Attack = true
1755
	Root.Anchored = true
1756
	local data = MagicCircle{Weld=Torso,Pos=CF.N(0,10,10),Size=15,Variant=MagicVariant,Time=.75}
1757
	local IsGrown = false
1758
	data.Grown:connect(function() IsGrown = true end)
1759
	repeat swait() 
1760
		local Alpha = .1
1761
		local idk = M.R(25)
1762
		LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
1763
		RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
1764
		RJ.C0 = RJ.C0:lerp(RJC0,Alpha)
1765
		NK.C0 = NK.C0:lerp(NKC0,Alpha)
1766
		LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1767
		RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1768
		local LookVector = Mouse.Hit.p
1769
		Torso.CFrame = CF.N(Root.Position,LookVector) 
1770
	until IsGrown
1771
	if(S.UserInputService:IsKeyDown(key))then
1772
		local grown = 0
1773
		repeat 
1774
			local Alpha = .1
1775
			local idk = M.R(25)
1776
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
1777
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
1778
			RJ.C0 = RJ.C0:lerp(RJC0,Alpha)
1779
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1780
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1781
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1782
			local LookVector = Mouse.Hit.p
1783
			Root.CFrame = CF.N(Root.Position,LookVector)
1784
			swait()
1785
		until not S.UserInputService:IsKeyDown(key)
1786
	end
1787
	
1788
	local hit,pos,norm,dist = CastRay(data.Circle.CFrame.p,Mouse.Hit.p,1024)
1789
	local part = Part(Effects,MagicVariant.EffectColor or MagicVariant.Color,Enum.Material.Neon,V3.N(dist,data.Mesh.Scale.x/40,data.Mesh.Scale.x/40),CF.N(data.Circle.CFrame.p,pos)*CF.N(0,0,-dist/2)*CF.A(0,M.P/2,0),true,false)
1790
	Mesh(part,Enum.MeshType.Cylinder)
1791
	Tween(part,{Color=C3.N(1,1,1)},1,Enum.EasingStyle.Quad,Enum.EasingDirection.Out,0,false)
1792
	local aa = data.Circle:Clone();
1793
	aa.Parent = Effects
1794
	aa.Anchored = true
1795
	local blast = Sound(aa,334702766,1,5,false,true,true)
1796
	data.Circle:destroy()
1797
	if(not blast.IsLoaded)then repeat swait() until blast.IsLoaded end
1798
	Effect{
1799
		Effect='ResizeAndFade',
1800
		Color=MagicVariant.Color,
1801
		Size=V3.N(data.Mesh.Scale.X/20,data.Mesh.Scale.X/20,data.Mesh.Scale.X/20),
1802
		Mesh={MeshType=Enum.MeshType.Sphere},
1803
		CFrame=CF.N(pos),
1804
		Sound=blast,
1805
		FXSettings={
1806
			EndSize=V3.N(.05,.05,.05),
1807
			EndIsIncrement=true
1808
		}
1809
	}
1810
	for i = 1, 5 do
1811
		local angles = CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
1812
		Effect{
1813
			Effect='Fade',
1814
			Frames=65,
1815
			Sound=blast,
1816
			Size=V3.N((data.Mesh.Scale.X/20)/2,(data.Mesh.Scale.X/20)/2,data.Mesh.Scale.X/20),
1817
			CFrame=CF.N(CF.N(pos)*angles*CF.N(0,0,-(data.Mesh.Scale.X/20)).p,pos),
1818
			Mesh = {MeshType=Enum.MeshType.Sphere},
1819
			Material=Enum.Material.Neon,
1820
			Color=MagicVariant.Color,
1821
			MoveDirection=CF.N(CF.N(pos)*angles*CF.N(0,0,-50).p,pos).p,
1822
		}	
1823
	end
1824
	AOEDamage(pos,data.Mesh.Scale.X/20,45,75,0,'Normal',10,4)
1825
	coroutine.wrap(function()
1826
		for i = 1, (blast.TimeLength*Frame_Speed) do
1827
			part.Transparency = (i/(blast.TimeLength*Frame_Speed))
1828
			for _,v in next, aa:children() do if v:IsA'Decal' then v.Transparency = (i/(blast.TimeLength*Frame_Speed)) end end
1829
			swait()
1830
		end
1831
		aa:destroy()
1832
		part:destroy()
1833
	end)()
1834
	
1835
	Attack = false
1836
	NeutralAnims = true
1837
	Root.Anchored = false
1838
	Root.Velocity = Mouse.Hit.lookVector*-125
1839
end
1840
1841
function Skill1()
1842
	Laser(Enum.KeyCode.Q)
1843
end
1844
1845
function Skill2()
1846
	DLaser(Enum.KeyCode.Z)
1847
end
1848
1849
function Skill3()
1850
	BLaser(Enum.KeyCode.X)
1851
end
1852
1853
--// Wrap it all up \\--
1854
1855
Mouse.KeyDown:connect(function(k)
1856
	if(Attack)then return end
1857
	if(k == 'q')then Skill1() end
1858
	if(k == 'e')then Skill2() end
1859
	if(k == 'r')then Skill3() end
1860
end)
1861
1862
Plr.Chatted:connect(function(m)
1863
	
1864
	if(m:sub(1,3) == '/e ')then
1865
		local msg = m:sub(4)
1866
		--emote commands (gotta do)
1867
	end
1868
end)
1869
while true do
1870
	swait()
1871
	Sine = Sine + Change
1872
1873
	local hitfloor,posfloor = workspace:FindPartOnRay(Ray.new(Root.CFrame.p,((CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector).unit * (4)), Char)
1874
	
1875
	local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
1876
	local State = (Hum.PlatformStand and 'Paralyzed' or Hum.Sit and 'Sit' or not hitfloor and Root.Velocity.y < -1 and "Fall" or not hitfloor and Root.Velocity.y > 1 and "Jump" or hitfloor and Walking and (Hum.WalkSpeed > 24 and "Run" or "Walk") or hitfloor and "Idle")
1877
	if(not Effects or not Effects.Parent)then
1878
		Effects = IN("Model",Char)
1879
		Effects.Name = "Effects"
1880
	end																																																																																																				
1881
	if(State == 'Run')then
1882
		local wsVal = 20 / (Hum.WalkSpeed/16)
1883
		local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1884
		Change = 3
1885
		RH.C1 = RH.C1:lerp(CF.N(0,1,0)*CF.N(0,0-.2*M.C(Sine/wsVal),0+.4*M.C(Sine/wsVal))*CF.A(M.R(15+25*M.C(Sine/wsVal))+-M.S(Sine/wsVal),0,0),Alpha)
1886
		LH.C1 = LH.C1:lerp(CF.N(0,1,0)*CF.N(0,0+.2*M.C(Sine/wsVal),0-.4*M.C(Sine/wsVal))*CF.A(M.R(15-25*M.C(Sine/wsVal))+M.S(Sine/wsVal),0,0),Alpha)	
1887
	elseif(State == 'Walk')then
1888
		local wsVal = 20 / (Hum.WalkSpeed/16)
1889
		local Alpha = math.min(.3 * (Hum.WalkSpeed/8),1)
1890
		Change = 3
1891
		RH.C1 = RH.C1:lerp(CF.N(0,1,0)*CF.N(0,0-.5*M.C(Sine/wsVal)/2,0+.6*M.C(Sine/wsVal)/2)*CF.A(M.R(15-2*M.C(Sine/wsVal))+-M.S(Sine/wsVal)/2.5,0,0),Alpha)
1892
		LH.C1 = LH.C1:lerp(CF.N(0,1,0)*CF.N(0,0+.5*M.C(Sine/wsVal)/2,0-.6*M.C(Sine/wsVal)/2)*CF.A(M.R(15+2*M.C(Sine/wsVal))+M.S(Sine/wsVal)/2.5,0,0),Alpha)	
1893
	else
1894
		RH.C1 = RH.C1:lerp(CF.N(0,1,0),.2)
1895
		LH.C1 = LH.C1:lerp(CF.N(0,1,0),.2)
1896
	end	
1897
1898
	Hum.WalkSpeed = WalkSpeed
1899
	
1900
	if(NeutralAnims)then	
1901
		if(State == 'Idle')then
1902
			local Alpha = .1
1903
			Change = .75
1904
			RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0+.2*M.C(Sine/12),.2*M.C(Sine/6),0)*CF.A(M.R(-5+5*M.C(Sine/12)),0,0),Alpha)
1905
			NK.C0 = NK.C0:lerp(NKC0*CF.A(M.R(-5+5*M.C(Sine/12)),0,0),Alpha)
1906
			LS.C0 = LS.C0:lerp(LSC0*CF.N(.25,0,0)*CF.A(M.R(-45),0,M.R(45+5*M.C(Sine/12))),Alpha)
1907
			RS.C0 = RS.C0:lerp(RSC0*CF.N(-.25,0,0)*CF.A(M.R(-45),0,M.R(-45-5*M.C(Sine/12))),Alpha)
1908
			LH.C0 = LH.C0:lerp(LHC0*CF.N(0-.2*M.C(Sine/12),-.2*M.C(Sine/6),0)*CF.A(M.R(5-5*M.C(Sine/12)),M.R(10),0),Alpha)
1909
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0-.2*M.C(Sine/12),-.2*M.C(Sine/6),0)*CF.A(M.R(5-5*M.C(Sine/12)),M.R(-10),0),Alpha)
1910
			-- idle
1911
		elseif(State == 'Run')then
1912
			local wsVal = 20 / (Hum.WalkSpeed/16)
1913
			local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
1914
			RJ.C0 = RJ.C0:lerp(CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-15+2.5*M.C(Sine/(wsVal/2))),M.R(8*M.C(Sine/wsVal)),0),Alpha)
1915
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1916
			LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0-.3*M.S(Sine/wsVal))*CF.A(M.R(0+45*M.S(Sine/wsVal)),0,M.R(-5)),Alpha)
1917
			RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0+.3*M.S(Sine/wsVal))*CF.A(M.R(0-45*M.S(Sine/wsVal)),0,M.R(5)),Alpha)
1918
			LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
1919
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
1920
		elseif(State == 'Walk')then
1921
			local wsVal = 20 / (Hum.WalkSpeed/16)
1922
			local Alpha = math.min(.3 * (Hum.WalkSpeed/16),1)
1923
			RJ.C0 = RJ.C0:lerp(CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-5-2.5*M.C(Sine/(wsVal/2))),M.R(8*M.C(Sine/wsVal)),0),Alpha)
1924
			NK.C0 = NK.C0:lerp(NKC0,Alpha)
1925
			LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,-.22*M.C(Sine/wsVal))*CF.A(M.R(37*M.C(Sine/wsVal)),0,M.R(-5)),Alpha)
1926
			RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,.22*M.C(Sine/wsVal))*CF.A(M.R(-37*M.C(Sine/wsVal)),0,M.R(5)),Alpha)
1927
			LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
1928
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
1929
		elseif(State == 'Jump')then
1930
			local Alpha = .1
1931
			local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
1932
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)),Alpha)
1933
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)),Alpha)
1934
			RJ.C0 = RJ.C0:lerp(RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
1935
			NK.C0 = NK.C0:lerp(NKC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
1936
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1937
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1938
		elseif(State == 'Fall')then
1939
			local Alpha = .1
1940
			local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
1941
			LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
1942
			RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
1943
			RJ.C0 = RJ.C0:lerp(RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
1944
			NK.C0 = NK.C0:lerp(NKC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
1945
			LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
1946
			RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
1947
		elseif(State == 'Paralyzed')then
1948
			-- paralyzed
1949
		elseif(State == 'Sit')then
1950
			-- sit
1951
		end
1952
	end
1953
	
1954
end