Advertisement
enzo_gamer1e2n3z0

Sans

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