SHARE
TWEET

fellsans

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