SHARE
TWEET

Untitled

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