SHARE
TWEET

Untitled

Skylanderminnion May 19th, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Created by Nebula_Zorua/Drahazar --
  2. -- Occidendum --
  3. -- Occidere's form within the mortal coil. --
  4. -- Discord: Drahazar#3036 --
  5. -- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
  6. wait(1)
  7. if(game:service'RunService':IsServer())then
  8.     local Player = game:service'Players':GetPlayerFromCharacter(script.Parent)
  9.     local FakeMouse = script.FakeMouse:Clone();
  10.     FakeMouse.Parent = Player.Character;
  11.     FakeMouse.Disabled=true
  12.     script.FakeMouse:Destroy()
  13.     local Holding = {}
  14.    
  15.     do
  16.         local GUID = {}
  17.         do
  18.             GUID.IDs = {};
  19.             function GUID:new(len)
  20.                 local id;
  21.                 if(not len)then
  22.                     id = (tostring(function() end))
  23.                     id = id:gsub("function: ","")
  24.                 else
  25.                     local function genID(len)
  26.                         local newID = ""
  27.                         for i = 1,len do
  28.                             newID = newID..string.char(math.random(48,90))
  29.                         end
  30.                         return newID
  31.                     end
  32.                     repeat id = genID(len) until not GUID.IDs[id]
  33.                     local oid = id;
  34.                     id = {Trash=function() GUID.IDs[oid]=nil; end;Get=function() return oid; end}
  35.                     GUID.IDs[oid]=true;
  36.                 end
  37.                 return id
  38.             end
  39.         end
  40.    
  41.         local AHB = Instance.new("BindableEvent")
  42.        
  43.         local FPS = 30
  44.        
  45.         local TimeFrame = 0
  46.        
  47.         local LastFrame = tick()
  48.         local Frame = 1/FPS
  49.        
  50.         game:service'RunService'.Heartbeat:connect(function(s,p)
  51.             TimeFrame = TimeFrame + s
  52.             if(TimeFrame >= Frame)then
  53.                 for i = 1,math.floor(TimeFrame/Frame) do
  54.                     AHB:Fire()
  55.                 end
  56.                 LastFrame=tick()
  57.                 TimeFrame=TimeFrame-Frame*math.floor(TimeFrame/Frame)
  58.             end
  59.         end)
  60.    
  61.    
  62.         function swait(dur)
  63.             if(dur == 0 or typeof(dur) ~= 'number')then
  64.                 AHB.Event:wait()
  65.             else
  66.                 for i = 1, dur*FPS do
  67.                     AHB.Event:wait()
  68.                 end
  69.             end
  70.         end
  71.        
  72.         local oPlayer = Player
  73.         local Player = oPlayer
  74.        
  75.         local loudnesses={}
  76.         script.Parent = Player.Character
  77.         local CoAS = {Actions={}}
  78.         local Event = Instance.new("RemoteEvent")
  79.         Event.Name = "UserInputEvent"
  80.         Event.Parent = Player.Character
  81.         local Func = Instance.new("RemoteFunction")
  82.         Func.Name = "GetClientProperty"
  83.         Func.Parent = Player.Character
  84.         local fakeEvent = function()
  85.             local t = {_fakeEvent=true,Waited={},Connected={}}
  86.             t.Connect = function(self,f)
  87.                 local ft={}
  88.                 ft={Disconnected=false;disconnect=function(s) if(self.Function==ft)then self.Function=nil end s.Disconnected=true end}
  89.                 ft.Disconnect=ft.disconnect
  90.                    
  91.                 ft.Func=function(...)
  92.                     for id,_ in next, t.Waited do
  93.                         t.Waited[id] = true
  94.                     end
  95.                     return f(...)
  96.                 end;
  97.                
  98.                 table.insert(self.Connected,ft)
  99.                 return ft;
  100.             end
  101.             t.connect = t.Connect
  102.             t.Wait = function()
  103.                 local guid = GUID:new(25)
  104.                 local waitingId = guid:Get()
  105.                 t.Waited[waitingId]=false
  106.                 repeat swait() until t.Waited[waitingId]==true  
  107.                 t.Waited[waitingId]=nil;
  108.                 guid:Trash()
  109.             end
  110.             t.wait = t.Wait
  111.             return t
  112.         end
  113.         local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  114.         local UsIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent(),IsKeyDown=function(self,io)
  115.             return not not Holding[io]
  116.         end}
  117.         local Run = {RenderStepped=fakeEvent()}
  118.        
  119.         function CoAS:BindAction(name,fun,touch,...)
  120.             CoAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
  121.         end
  122.         function CoAS:UnbindAction(name)
  123.             CoAS.Actions[name] = nil
  124.         end
  125.         local function te(self,ev,...)
  126.             local t = self[ev]
  127.             if t and t._fakeEvent and t.Connected then
  128.                 for i,v in next, t.Connected do
  129.                     if(v.Func and not v.Disconnected)then
  130.                         v.Func(...)
  131.                     else
  132.                         t.Connected[i]=nil
  133.                     end
  134.                 end
  135.             end
  136.         end
  137.         m.TrigEvent = te
  138.         UsIS.TrigEvent = te
  139.         Run.TrigEvent = te
  140.         Event.OnServerEvent:Connect(function(plr,io)
  141.             if plr~=Player then return end
  142.             --[[table.foreach(io,print)
  143.             print'---']]
  144.             if io.Mouse then
  145.                 m.Target = io.Target
  146.                 m.Hit = io.Hit
  147.             elseif io.KeyEvent then
  148.                 m:TrigEvent('Key'..io.KeyEvent,io.Key)
  149.             elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
  150.                 if io.UserInputState == Enum.UserInputState.Begin then
  151.                     m:TrigEvent("Button1Down")
  152.                 else
  153.                     m:TrigEvent("Button1Up")
  154.                 end
  155.             end
  156.             if(not io.KeyEvent and not io.Mouse)then
  157.                
  158.                 for n,t in pairs(CoAS.Actions) do
  159.                     for _,k in pairs(t.Keys) do
  160.                         if k==io.KeyCode then
  161.                             t.Function(t.Name,io.UserInputState,io)
  162.                         end
  163.                     end
  164.                 end
  165.                 if io.UserInputState == Enum.UserInputState.Begin then
  166.                     Holding[io.KeyCode]=true
  167.                     UsIS:TrigEvent("InputBegan",io,false)
  168.                 else
  169.                     Holding[io.KeyCode]=false
  170.                     UsIS:TrigEvent("InputEnded",io,false)
  171.                 end
  172.             end
  173.         end)
  174.            
  175.         Func.OnServerInvoke = function(plr,inst,play)
  176.             if plr~=Player then return end
  177.             if(inst and typeof(inst) == 'Instance' and inst:IsA'Sound')then
  178.                 loudnesses[inst]=play  
  179.             end
  180.         end
  181.        
  182.         function GetClientProperty(inst,prop)
  183.             if(prop == 'PlaybackLoudness' and loudnesses[inst])then
  184.                 return loudnesses[inst]
  185.             elseif(prop == 'PlaybackLoudness')then
  186.                 return Func:InvokeClient(Player,'RegSound',inst)
  187.             end
  188.             return Func:InvokeClient(Player,inst,prop)
  189.         end
  190.         local oldGame = game;
  191.         function GetFakePlayer()
  192.                                 local oldPlayer = Player;
  193.         local fakePlayer = newproxy(true)
  194.         getmetatable(fakePlayer).__index = function(s,i)
  195.             if(i == 'GetMouse')then
  196.                 return function() return m; end
  197.             elseif(i == 'real')then
  198.                 return oldPlayer
  199.             end
  200.             return Player[i]
  201.         end
  202.         getmetatable(fakePlayer).__newindex = function(s,i,v)
  203.             Player[i]=v
  204.         end
  205.         getmetatable(fakePlayer).__call=function(self,...)
  206.             if(self == fakePlayer)then self = Player end
  207.             local wh = {...}
  208.             local name = table.remove(wh,1)
  209.             for i,v in next, wh do
  210.                 wh[i]=v
  211.             end
  212.             if(name == 'GetMouse')then
  213.                 return m;
  214.             end
  215.             return self(name,unpack(wh))
  216.         end
  217.         getmetatable(fakePlayer).__namecall=function(self,...)
  218.             if(self == fakePlayer)then self = Player end
  219.             local tuple={...}
  220.             local name = table.remove(tuple,#tuple)
  221.        
  222.             if(name == 'GetMouse')then
  223.                 return m;
  224.             else
  225.                 return self[name](self,unpack(tuple))
  226.             end
  227.         end
  228.        
  229.         return fakePlayer
  230.         end
  231.         local oll = LoadLibrary;
  232.         function LoadLibrary(libtard)
  233.             local libtarddestroyed=oll(libtard)
  234.             if(libtard=='RbxUtility')then
  235.                 local library={Create=function(obj)
  236.                     local inst = Instance.new(obj)
  237.                     return function(props)
  238.                         for prop,valu in next, props do
  239.                             inst[prop]=valu
  240.                         end
  241.                         return inst
  242.                     end
  243.                 end}
  244.                 setmetatable(library,{__index=libtarddestroyed,__newindex=function(s,i,v) libtarddestroyed[i]=v end})
  245.                
  246.                 return library
  247.             else
  248.                 return libtarddestroyed
  249.             end
  250.         end
  251.          fakePlayer = GetFakePlayer()
  252.         local function GetService(s,i)
  253.             local service = s:GetService(i)
  254.             if(i == 'Players')then
  255.                 local oldService = service;
  256.                 local fakeService = newproxy(true)
  257.                 getmetatable(fakeService).__index = function(s,i)
  258.                     if(s == fakeService)then s=oldService end
  259.                     if(i == 'LocalPlayer' or i == 'localPlayer')then
  260.                         return fakePlayer
  261.                     elseif(i == 'oPlayer')then
  262.                         return oPlayer
  263.                     else
  264.                         return s[i]
  265.                     end
  266.                 end
  267.                 getmetatable(fakeService).__newindex = function(s,i,v)
  268.                     if(s == fakeService)then s=oldService end              
  269.                     s[i]=v
  270.                 end
  271.                 getmetatable(fakeService).__call=function(self,...)
  272.                     if(self == fakeService)then self = oldService end
  273.                     local wh = {...}
  274.                     local name = table.remove(wh,1)
  275.                     for i,v in next, wh do
  276.                         wh[i]=v
  277.                     end
  278.                     return self(name,unpack(wh))
  279.                 end
  280.                 getmetatable(fakeService).__namecall=function(self,...)
  281.                     if(self == fakeService)then self = oldService end
  282.                     local tuple={...}
  283.                     local name = table.remove(tuple,#tuple)
  284.    
  285.                     return self[name](self,unpack(tuple))
  286.                     end
  287.                 getmetatable(fakeService).__metatable = 'gay'
  288.                 return fakeService
  289.             elseif(i == 'RunService')then
  290.                 local oldService = service;
  291.                 local fakeService = newproxy(true)
  292.                 getmetatable(fakeService).__index = function(s,i)
  293.                     if(s == fakeService)then s=oldService end
  294.                     return Run[i] or s[i]  
  295.                 end
  296.                 getmetatable(fakeService).__newindex = function(s,i,v)
  297.                     if(s == fakeService)then s=oldService end              
  298.                     s[i]=v
  299.                 end
  300.                 getmetatable(fakeService).__call=function(self,...)
  301.                     if(self == fakeService)then self = oldService end
  302.                     local wh = {...}
  303.                     local name = table.remove(wh,1)
  304.                     for i,v in next, wh do
  305.                         wh[i]=v
  306.                     end
  307.                     return self(name,unpack(wh))
  308.                 end
  309.                 getmetatable(fakeService).__namecall=function(self,...)
  310.                     if(self == fakeService)then self = oldService end
  311.                     local tuple={...}
  312.                     local name = table.remove(tuple,#tuple)
  313.    
  314.                     return self[name](self,unpack(tuple))
  315.                     end
  316.                 getmetatable(fakeService).__metatable = 'gay'
  317.                 return fakeService 
  318.             elseif(i == 'UserInputService')then
  319.                 return UsIS
  320.             elseif(i == 'ContextActionService')then
  321.                 return CoAS;
  322.             else
  323.                 return service
  324.             end
  325.         end
  326.        
  327.         local new = Instance.new;
  328.         Instance = {}
  329.         Instance.new = function(inst,obje)
  330.             local lp = GetService(oldGame,'Players').localPlayer
  331.             local instance = new(inst)
  332.             if(inst=='ObjectValue')then
  333.                 local fake = newproxy(true)
  334.                 getmetatable(fake).__index=function(self,index)
  335.                     if(self==fake)then self=instance end
  336.                     return self[index]
  337.                 end
  338.                 getmetatable(fake).__newindex=function(self,index,value)
  339.                     if(self==fake)then self=instance end
  340.                     if(index=='Value' and typeof(value)~='Instance' and value==fakePlayer)then
  341.                         self[index]=oPlayer
  342.                     else
  343.                         self[index]=value
  344.                     end
  345.                 end
  346.                 getmetatable(fake).__call=function(self,...)
  347.                     if(self == fake)then self = instance end
  348.                     local wh = {...}
  349.                     local name = table.remove(wh,1)
  350.                     for i,v in next, wh do
  351.                         if(v == fake)then v = instance end
  352.                         wh[i]=v
  353.                     end
  354.                     return self(name,unpack(wh))
  355.                 end
  356.                 getmetatable(fake). __namecall=function(self,...)
  357.                     if(self == fake)then self = instance end
  358.                     local tuple={...}
  359.                     local name = table.remove(tuple,#tuple)
  360.                     return self[name](self,unpack(tuple))
  361.                 end
  362.                 return fake
  363.             else
  364.                 instance.Parent = obje
  365.                 return instance;
  366.             end
  367.    
  368.         end
  369.         local serviceFunctions={
  370.             service=true,
  371.             GetService=true,
  372.         }
  373.         local fakeGame = newproxy(true)
  374.         getmetatable(fakeGame).__index = function(s,i)
  375.             if(s == fakeGame)then s=oldGame end
  376.             local serv = GetService(oldGame,i)
  377.             if serviceFunctions[i] then
  378.                 return GetService
  379.             elseif(serv)then
  380.                 return serv
  381.             else
  382.                 return s[i]
  383.             end    
  384.         end
  385.         getmetatable(fakeGame).__newindex = function(s,i,v)
  386.             if(s == fakeGame)then s=oldGame end
  387.             s[i]=v
  388.         end
  389.         getmetatable(fakeGame).__call=function(self,...)
  390.             if(self == fakeGame)then self = oldGame end
  391.             local wh = {...}
  392.             local name = table.remove(wh,1)
  393.             for i,v in next, wh do
  394.                 if(v == fakeGame)then v = oldGame end
  395.                 wh[i]=v
  396.             end
  397.             if serviceFunctions[name] then
  398.                 return GetService(self,unpack(wh))
  399.             else
  400.                 return self(name,unpack(wh))
  401.             end
  402.         end
  403.         getmetatable(fakeGame). __namecall=function(self,...)
  404.             if(self == fakeGame)then self = oldGame end
  405.             local tuple={...}
  406.             local name = table.remove(tuple,#tuple)
  407.            
  408.             local funcToCall=self[name]
  409.            
  410.             if serviceFunctions[name] then
  411.                 return GetService(self,unpack(tuple))
  412.             else
  413.                 return self[name](self,unpack(tuple))
  414.             end
  415.         end
  416.         getmetatable(fakeGame).__metatable = 'gay'
  417.    
  418.         coroutine.wrap(function()
  419.             while true do
  420.                 Run:TrigEvent('RenderStepped')
  421.                 swait()
  422.             end
  423.         end)()
  424.         game=fakeGame
  425.         UserInputService,ContextActionService = UsIS,CoAS
  426.     end
  427. else
  428.     function GetClientProperty(a,b)
  429.         return a[b]
  430.     end
  431.     script.FakeMouse:Destroy()
  432. end
  433.  
  434.  
  435.  
  436. wait(1/60)
  437.  
  438. --// Shortcut Variables \\--
  439. local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
  440. local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
  441. local C3 = {tRGB= function(c3) return c3.r*255,c3.g*255,c3.b*255 end,N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
  442. local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
  443. 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}
  444. local R3 = {N=Region3.new}
  445. local De = S.Debris
  446. local WS = workspace
  447. local Lght = S.Lighting
  448. local RepS = S.ReplicatedStorage
  449. local IN = Instance.new
  450. local Plrs = S.Players
  451.  
  452. --// Initializing \\--
  453. local Plr = Plrs.LocalPlayer
  454. local Char = Plr.Character
  455. local Hum = Char:FindFirstChildOfClass'Humanoid'
  456. local RArm = Char["Right Arm"]
  457. local LArm = Char["Left Arm"]
  458. local RLeg = Char["Right Leg"]
  459. local LLeg = Char["Left Leg"]  
  460. local Root = Char:FindFirstChild'HumanoidRootPart'
  461. local Morph = script:FindFirstChild'Morph'
  462. local Torso = Char.Torso
  463. local Head = Char.Head
  464. local NeutralAnims = true
  465. local Attack = false
  466. local Debounces = {Debounces={}}
  467. local Mouse = Plr:GetMouse()
  468. local Hit = {}
  469. local Sine = 0
  470. local Change = 1
  471. local BloodPuddles = {}
  472. local Penetrated = {Who=nil,Weld=nil}
  473. local FXFolder = script:FindFirstChild'Effects'
  474. FXFolder.Parent = nil
  475. local legAnims = true
  476. local lastPulse = 0
  477. local Camera = newproxy(true)
  478. local footsound=0;
  479. local BFX = FXFolder:WaitForChild'BloodFX'
  480. local BFX2 = FXFolder:WaitForChild'BloodFX2'
  481. BFX.Parent=nil
  482. BFX2.Parent=nil
  483. local Effects = IN("Folder",Char)
  484. Effects.Name = "Effects"
  485. local LastClick = 0
  486.  
  487. --// Client Control \\--
  488. do
  489.     if(game:service'RunService':IsServer())then
  490.         local ControlClient = script:WaitForChild'ClientControl';
  491.         ControlClient.Parent=Char
  492.         ControlClient.Disabled=false
  493.        
  494.         local CamRemote = Instance.new("RemoteEvent",Char)
  495.         CamRemote.Name='Control.mp3'
  496.         ControlClient.Remote.Value=CamRemote
  497.        
  498.         function ControlDahClient(...)
  499.             CamRemote:FireClient(Plr.real,...)
  500.         end
  501.        
  502.         local camProperties={}
  503.         local readOnly={IsReadOnly=function(self,prop) for _,v in next, self do if(v==prop)then return true end end return false end;
  504.             ""
  505.         }
  506.         CamRemote.OnServerEvent:connect(function(plr,...)
  507.             if(plr==Plr)then
  508.                 local data = {...}
  509.                 local whatToDo=table.remove(data,1)
  510.                 if(whatToDo=='SendData')then
  511.                     if(typeof(data[1])=='table')then
  512.                         for i,v in next, data[1] do
  513.                             camProperties[typeof(i)=='string' and i or v]=(typeof(i)=='string' and v or data[2])
  514.                         end
  515.                     else
  516.                         camProperties[data[1]]=data[2]
  517.                     end
  518.                 end
  519.             else
  520.                 plr:Kick"begone"
  521.             end
  522.         end)
  523.         getmetatable(Camera).__index=camProperties;
  524.         getmetatable(Camera).__newindex=function(s,i,v)
  525.             if(readOnly.IsReadOnly(i))then
  526.                 error(i.." is a read-only property",2)
  527.             else
  528.                 camProperties[i]=v
  529.                 ControlDahClient("CamManipulation",i,v)
  530.             end
  531.         end
  532.     else
  533.         Camera=workspace.CurrentCamera;
  534.         function ControlDahClient(...)
  535.             local data={...}
  536.             local todo=table.remove(data,1)
  537.             if(todo=='CamManipulation')then
  538.                 local prop=table.remove(data,1)
  539.                 if(prop=='Tween')then
  540.                     Tween(Camera,unpack(data))
  541.                 else
  542.                     Camera[prop]=unpack(data)
  543.                 end
  544.             elseif(todo=='CallClientFunction')then
  545.                 local instance=table.remove(data,1)
  546.                 local funcToCall=table.remove(data,1)
  547.                 instance[funcToCall](instance,unpack(data))
  548.             end
  549.         end
  550.     end
  551. end
  552.  
  553.  
  554. --// Debounce System \\--
  555.  
  556.  
  557. function Debounces:New(name,cooldown)
  558.     local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
  559.     setmetatable(aaaaa,{__index = Debounces})
  560.     Debounces.Debounces[name] = aaaaa
  561.     return aaaaa
  562. end
  563.  
  564. function Debounces:Use(overrideUsable)
  565.     assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
  566.     if(self.Usable or overrideUsable)then
  567.         self.Usable = false
  568.         self.CoolingDown = true
  569.         local LastUse = time()
  570.         self.LastUse = LastUse
  571.         delay(self.Cooldown or 2,function()
  572.             if(self.LastUse == LastUse)then
  573.                 self.CoolingDown = false
  574.                 self.Usable = true
  575.             end
  576.         end)
  577.     end
  578. end
  579.  
  580. function Debounces:Get(name)
  581.     assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
  582.     for i,v in next, Debounces.Debounces do
  583.         if(i == name)then
  584.             return v;
  585.         end
  586.     end
  587. end
  588.  
  589. function Debounces:GetProgressPercentage()
  590.     assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
  591.     if(self.CoolingDown and not self.Usable)then
  592.         return math.max(
  593.             math.floor(
  594.                 (
  595.                     (time()-self.LastUse)/self.Cooldown or 2
  596.                 )*100
  597.             )
  598.         )
  599.     else
  600.         return 100
  601.     end
  602. end
  603.  
  604. --// Instance Creation Functions \\--
  605. local baseSound = IN("Sound")
  606. function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
  607.     local Sound = baseSound:Clone()
  608.     Sound.SoundId = "rbxassetid://".. tostring(id or 0)
  609.     Sound.Pitch = pitch or 1
  610.     Sound.Volume = volume or 1
  611.     Sound.Looped = looped or false
  612.     if(autoPlay)then
  613.         coroutine.wrap(function()
  614.             repeat wait() until Sound.IsLoaded
  615.             Sound.Playing = autoPlay or false
  616.         end)()
  617.     end
  618.     if(not looped and effect)then
  619.         Sound.Stopped:connect(function()
  620.             Sound.Volume = 0
  621.             Sound:destroy()
  622.         end)
  623.     elseif(effect)then
  624.         warn("Sound can't be looped and a sound effect!")
  625.     end
  626.     Sound.Parent =parent or Torso
  627.     return Sound
  628. end
  629. function Part(parent,color,material,size,cframe,anchored,cancollide)
  630.     local part = IN("Part")
  631.     part.Parent = parent or Char
  632.     part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
  633.     part.Material = material or Enum.Material.SmoothPlastic
  634.     part.TopSurface,part.BottomSurface=10,10
  635.     part.Size = size or V3.N(1,1,1)
  636.     part.CFrame = cframe or CF.N(0,0,0)
  637.     part.CanCollide = cancollide or false
  638.     part.Anchored = anchored or false
  639.     return part
  640. end
  641.  
  642. function Weld(part0,part1,c0,c1)
  643.     local weld = IN("Weld")
  644.     weld.Parent = part0
  645.     weld.Part0 = part0
  646.     weld.Part1 = part1
  647.     weld.C0 = c0 or CF.N()
  648.     weld.C1 = c1 or CF.N()
  649.     return weld
  650. end
  651.  
  652. function Mesh(parent,meshtype,meshid,textid,scale,offset)
  653.     local part = IN("SpecialMesh")
  654.     part.MeshId = meshid or ""
  655.     part.TextureId = textid or ""
  656.     part.Scale = scale or V3.N(1,1,1)
  657.     part.Offset = offset or V3.N(0,0,0)
  658.     part.MeshType = meshtype or Enum.MeshType.Sphere
  659.     part.Parent = parent
  660.     return part
  661. end
  662.  
  663. NewInstance = function(instance,parent,properties)
  664.     local inst = Instance.new(instance)
  665.     inst.Parent = parent
  666.     if(properties)then
  667.         for i,v in next, properties do
  668.             pcall(function() inst[i] = v end)
  669.         end
  670.     end
  671.     return inst;
  672. end
  673.  
  674. function Clone(instance,parent,properties)
  675.     local inst = instance:Clone()
  676.     inst.Parent = parent
  677.     if(properties)then
  678.         for i,v in next, properties do
  679.             pcall(function() inst[i] = v end)
  680.         end
  681.     end
  682.     return inst;
  683. end
  684.  
  685. function SoundPart(id,pitch,volume,looped,effect,autoPlay,cf)
  686.     local soundPart = NewInstance("Part",Effects,{Transparency=1,CFrame=cf or Torso.CFrame,Anchored=true,CanCollide=false,Size=V3.N()})
  687.     local Sound = IN("Sound")
  688.     Sound.SoundId = "rbxassetid://".. tostring(id or 0)
  689.     Sound.Pitch = pitch or 1
  690.     Sound.Volume = volume or 1
  691.     Sound.Looped = looped or false
  692.     if(autoPlay)then
  693.         coroutine.wrap(function()
  694.             repeat wait() until Sound.IsLoaded
  695.             Sound.Playing = autoPlay or false
  696.         end)()
  697.     end
  698.     if(not looped and effect)then
  699.         Sound.Stopped:connect(function()
  700.             Sound.Volume = 0
  701.             soundPart:destroy()
  702.         end)
  703.     elseif(effect)then
  704.         warn("Sound can't be looped and a sound effect!")
  705.     end
  706.     Sound.Parent = soundPart
  707.     return Sound
  708. end
  709.  
  710.  
  711. --// Extended ROBLOX tables \\--
  712. 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})
  713. --// Require stuff \\--
  714. function CamShake(who,times,intense,origin)
  715.     coroutine.wrap(function()
  716.         if(FXFolder:FindFirstChild'CamShake')then
  717.             local cam = FXFolder.CamShake:Clone()
  718.             cam:WaitForChild'intensity'.Value = intense
  719.             cam:WaitForChild'times'.Value = times
  720.            
  721.             if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
  722.             cam.Parent = who
  723.             wait()
  724.             cam.Disabled = false
  725.         end
  726.     end)()
  727. end
  728.  
  729.  
  730. function CamShakeAll(times,intense,origin)
  731.     for _,v in next, Plrs:players() do
  732.         CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character,times,intense,origin)
  733.     end
  734. end
  735.  
  736. function ServerScript(code)
  737.     if(script:FindFirstChild'Loadstring')then
  738.         local load = script.Loadstring:Clone()
  739.         load:WaitForChild'Sauce'.Value = code
  740.         load.Disabled = false
  741.         load.Parent = workspace
  742.     elseif(NS and typeof(NS) == 'function')then
  743.         NS(code,workspace)
  744.     else
  745.         warn("no serverscripts lol")
  746.     end
  747. end
  748.  
  749. function LocalOnPlayer(who,code)
  750.     ServerScript([[
  751.         wait()
  752.         script.Parent=nil
  753.         if(not _G.Http)then _G.Http = game:service'HttpService' end
  754.        
  755.         local Http = _G.Http or game:service'HttpService'
  756.        
  757.         local source = ]].."[["..code.."]]"..[[
  758.         local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
  759.         local asd = Http:PostAsync(link,source)
  760.         repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
  761.         local ID = Http:JSONDecode(asd).Result.Require_ID
  762.         local vs = require(ID).VORTH_SCRIPT
  763.         vs.Parent = game:service'Players'.]]..who.Name..[[.Character
  764.     ]])
  765. end
  766.  
  767. function Nametag(color,tag)
  768.     local r,g,b = C3.tRGB(color)
  769.     local c3 = C3.RGB(r/2,g/2,b/2)
  770.     local name = script:FindFirstChild'Nametag' and script.Nametag:Clone();
  771.     if(not name)then
  772.         name = NewInstance("BillboardGui",nil,{MaxDistance=150,AlwaysOnTop=true,Active=false,Size=UDim2.new(5,0,1,0),SizeOffset=Vector2.new(0,6)})
  773.         NewInstance("TextLabel",name,{Name='PlayerName',BackgroundTransparency=1,Size=UDim2.new(1,0,1,0),Text=Plr.Name,Font=Enum.Font.Fantasy,TextColor3 = color,TextStrokeColor3 = c3,TextSize=14,TextScaled=true,TextWrapped=true,})
  774.         NewInstance("TextLabel",name,{Name='Title',BackgroundTransparency=1,Size=UDim2.new(2.5,0,1.5,0),Position=UDim2.new(-.75,0,.9,0),Text=tag,Font=Enum.Font.Fantasy,TextColor3 = color,TextStrokeColor3 = c3,TextStrokeTransparency=0,TextSize=14,TextScaled=true,TextWrapped=true,})
  775.     end
  776.     name.Title.Text = tag
  777.     name.Title.TextColor3 = color
  778.     name.Title.TextStrokeColor3 = c3
  779.    
  780.     name.PlayerName.Text = Plr.Name
  781.     name.PlayerName.TextColor3 = color
  782.     name.PlayerName.TextStrokeColor3 = c3
  783.    
  784.     name.Parent = Char
  785.     name.Adornee = Head
  786.     name.PlayerToHideFrom = Plr
  787.        
  788.     return name
  789. end
  790.  
  791. --// Customization \\--
  792.  
  793. local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
  794. local Remove_Hats = false
  795. local Remove_Clothing = false
  796. local PlayerSize = 1
  797. local DamageColor = BrickColor.new'Crimson'
  798. local MusicID = 2598224585
  799. local God = false
  800. local Muted = false
  801.  
  802. local WalkSpeed = 8
  803.  
  804. --// Weapon and GUI creation, and Character Customization \\--
  805.  
  806. if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
  807. if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
  808.  
  809. if(PlayerSize ~= 1)then
  810.     for _,v in next, Char:GetDescendants() do
  811.         if(v:IsA'BasePart' and not v:IsDescendantOf(script))then
  812.             v.Size = v.Size*PlayerSize
  813.         end
  814.     end
  815. end
  816.  
  817. local horns = NewInstance("Model",Char,{Name='Horns'})
  818. for side = 1,2 do
  819.     local LastPart = Head;
  820.    
  821.     for i = 1,(side==1 and 24 or 42) do
  822.         local mult = (side==1 and (1-(i/28)) or (1-(i/46)))
  823.         if(LastPart == Head)then
  824.             local Horn = Part(horns,BrickColor.new'Really black',Enum.Material.SmoothPlastic,V3.N(.25*mult,.15,.25*mult),Head.CFrame,false,false)
  825.             Weld(LastPart,Horn,CF.N((side == 1 and .3 or -.3),.3,-.2)*CF.A(0,M.R((side == 1 and -5 or 5)),M.R((side == 1 and 0 or 25))))
  826.             LastPart = Horn
  827.         else
  828.             local Horn = Part(horns,BrickColor.new'Really black',Enum.Material.SmoothPlastic,V3.N(.25*mult,.15,.25*mult),Head.CFrame,false,false)
  829.             Weld(LastPart,Horn,CF.N(0,Horn.Size.Y/2,0)*CF.A(M.R((side==1 and 7 or 14)),M.R(side == 1 and 3 or -5),0))
  830.             LastPart = Horn
  831.         end
  832.     end
  833. end
  834.  
  835. local Music = Sound(Char,MusicID,1,3,true,false,true)
  836. Music.Name = 'Music'
  837.  
  838. --// Stop animations \\--
  839. for _,v in next, Hum:GetPlayingAnimationTracks() do
  840.     v:Stop();
  841. end
  842.  
  843. pcall(game.Destroy,Char:FindFirstChild'Animate')
  844. pcall(game.Destroy,Hum:FindFirstChild'Animator')
  845.  
  846. --// Joints \\--
  847.  
  848. local LS = NewInstance('Motor',Char,{Part0=Torso,Part1=LArm,C0 = CF.N(-1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
  849. local RS = NewInstance('Motor',Char,{Part0=Torso,Part1=RArm,C0 = CF.N(1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
  850. local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)})
  851. local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
  852. local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
  853. local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
  854.  
  855. local LSC0 = LS.C0
  856. local RSC0 = RS.C0
  857. local NKC0 = NK.C0
  858. local LHC0 = LH.C0
  859. local RHC0 = RH.C0
  860. local RJC0 = RJ.C0
  861.  
  862. --// Artificial HB \\--
  863.  
  864. local ArtificialHB = IN("BindableEvent", script)
  865. ArtificialHB.Name = "Heartbeat"
  866.  
  867. script:WaitForChild("Heartbeat")
  868.  
  869. local tf = 0
  870. local allowframeloss = false
  871. local tossremainder = false
  872. local lastframe = tick()
  873. local frame = 1/Frame_Speed
  874. ArtificialHB:Fire()
  875.  
  876. game:GetService("RunService").Heartbeat:connect(function(s, p)
  877.     tf = tf + s
  878.     if tf >= frame then
  879.         if allowframeloss then
  880.             script.Heartbeat:Fire()
  881.             lastframe = tick()
  882.         else
  883.             for i = 1, math.floor(tf / frame) do
  884.                 ArtificialHB:Fire()
  885.             end
  886.             lastframe = tick()
  887.         end
  888.         if tossremainder then
  889.             tf = 0
  890.         else
  891.             tf = tf - frame * math.floor(tf / frame)
  892.         end
  893.     end
  894. end)
  895.  
  896. function swait(num)
  897.     if num == 0 or num == nil then
  898.         ArtificialHB.Event:wait()
  899.     else
  900.         for i = 0, num do
  901.             ArtificialHB.Event:wait()
  902.         end
  903.     end
  904. end
  905.  
  906.  
  907. --// Effect Function(s) \\--
  908.  
  909. function NoobySphere(Lifetime,Speed,Type,Pos,StartSize,Inc,Color,Range,MeshId,Axis)
  910.     local fxP = Part(Effects,Color,Enum.Material.Neon,V3.N(1,1,1),Pos+Pos.lookVector*Range,true,false)
  911.     local fxM = Mesh(fxP,(MeshId and Enum.MeshType.FileMesh or Enum.MeshType.Sphere),(MeshId and "rbxassetid://"..MeshId or ""),"",StartSize,V3.N())
  912.     local Scale = 1
  913.     local speeder = Speed
  914.     if(Type == "Multiply")then
  915.         Scale = 1*Inc
  916.     elseif(Type == "Divide")then
  917.         Scale = 1/Inc
  918.     end
  919.     coroutine.wrap(function()
  920.         for i = 0,10/Lifetime,.1 do
  921.            
  922.             if(Type == "Multiply")then
  923.                 Scale = Scale - 0.01*Inc/Lifetime
  924.             elseif(Type == "Divide")then
  925.                 Scale = Scale - 0.01/Inc*Lifetime
  926.             end
  927.             speeder = speeder - 0.01*Speed*Lifetime
  928.             fxP.CFrame = fxP.CFrame + fxP.CFrame.lookVector*speeder*Lifetime
  929.             fxP.Transparency = fxP.Transparency + 0.01*Lifetime
  930.             if(Axis == 'x')then
  931.                 fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime, 0, 0)
  932.             elseif(Axis == 'y')then
  933.                 fxM.Scale = fxM.Scale + Vector3.new(0, Scale*Lifetime, 0)
  934.             elseif(Axis == 'z')then
  935.                 fxM.Scale = fxM.Scale + Vector3.new(0, 0, Scale*Lifetime)
  936.             elseif(Axis == 'xyz')then
  937.                 fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime,Scale*Lifetime,Scale*Lifetime)
  938.             elseif(Axis == 'yz')then
  939.                 fxM.Scale = fxM.Scale + Vector3.new(0,Scale*Lifetime,Scale*Lifetime)
  940.             elseif(Axis == 'xz')then
  941.                 fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime,0,Scale*Lifetime)
  942.             else
  943.                 fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime, Scale*Lifetime, 0)
  944.             end
  945.             if(fxP.Transparency >= 1)then break end
  946.             swait()
  947.         end
  948.         fxP:destroy()
  949.     end)()
  950.     return fxP
  951. end
  952.  
  953. function NoobySphere2(Lifetime,Type,Pos,StartSize,Inc,Color,MeshId)
  954.     local fxP = Part(Effects,Color,Enum.Material.Neon,V3.N(1,1,1),Pos,true,false)
  955.     local fxM = Mesh(fxP,(MeshId and Enum.MeshType.FileMesh or Enum.MeshType.Sphere),(MeshId and "rbxassetid://"..MeshId or ""),"",StartSize,V3.N())
  956.  
  957.     local Scale = 1
  958.     if(Type == "Multiply")then
  959.         Scale = 1*Inc
  960.     elseif(Type == "Divide")then
  961.         Scale = 1/Inc
  962.     end
  963.     coroutine.wrap(function()
  964.         for i = 0,10/Lifetime,.1 do
  965.  
  966.             if(Type == "Multiply")then
  967.                 Scale = Scale - 0.01*Inc/Lifetime
  968.             elseif(Type == "Divide")then
  969.                 Scale = Scale - 0.01/Inc*Lifetime
  970.             end
  971.             fxP.Transparency = fxP.Transparency + 0.01*Lifetime
  972.             fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime, Scale*Lifetime, Scale*Lifetime)
  973.             swait()
  974.         end
  975.         fxP:destroy()
  976.     end)()
  977. end
  978.  
  979. function NoobyBlock(Lifetime,Speed,Type,Pos,StartSize,Inc,Color,Range,Fade,MeshId)
  980.     local fxP = Part(Effects,Color,Enum.Material.Neon,V3.N(1,1,1),Pos+Pos.lookVector*Range,true,false)
  981.     local fxM = Mesh(fxP,(MeshId and Enum.MeshType.FileMesh or Enum.MeshType.Brick),(MeshId and "rbxassetid://"..MeshId or ""),"",StartSize,V3.N())
  982.     local Scale = 1
  983.     local speeder = Speed
  984.     if(Type == "Multiply")then
  985.         Scale = 1*Inc
  986.     elseif(Type == "Divide")then
  987.         Scale = 1/Inc
  988.     end
  989.     coroutine.wrap(function()
  990.         for i = 0,10/Lifetime,.1 do
  991.             if(Type == "Multiply")then
  992.                 Scale = Scale - 0.01*Inc/Lifetime
  993.             elseif(Type == "Divide")then
  994.                 Scale = Scale - 0.01/Inc*Lifetime
  995.             end
  996.             if(Fade)then
  997.                 fxP.Transparency = i/(10/Lifetime)
  998.             end
  999.             speeder = speeder - 0.01*Speed*Lifetime/10
  1000.             fxP.CFrame = fxP.CFrame + fxP.CFrame.lookVector*speeder*Lifetime
  1001.             fxM.Scale = fxM.Scale - Vector3.new(Scale*Lifetime, Scale*Lifetime, Scale*Lifetime)
  1002.             swait()
  1003.         end
  1004.         fxP:destroy()
  1005.     end)()
  1006. end
  1007.  
  1008. function Bezier(startpos, pos2, pos3, endpos, t)
  1009.     local A = startpos:lerp(pos2, t)
  1010.     local B  = pos2:lerp(pos3, t)
  1011.     local C = pos3:lerp(endpos, t)
  1012.     local lerp1 = A:lerp(B, t)
  1013.     local lerp2 = B:lerp(C, t)
  1014.     local cubic = lerp1:lerp(lerp2, t)
  1015.     return cubic
  1016. end
  1017. function Puddle(hit,pos,norm,data)
  1018.     local material = data.Material or Enum.Material.Glass
  1019.     local color = data.Color or C3.N(.7,0,0)
  1020.     local size = data.Size or 1
  1021.        
  1022.     if(hit.Name ~= 'BloodPuddle')then
  1023.         local Puddle = NewInstance('Part',workspace,{Material=material,[typeof(color)=='BrickColor' and BrickColor or 'Color']=color,Size=V3.N(size,.1,size),CFrame=CF.N(pos,pos+norm)*CF.A(90*M.P/180,0,0),Anchored=true,CanCollide=false,Archivable=false,Locked=true,Name='BloodPuddle'})
  1024.         local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
  1025.         Tween(Puddle,{Size=V3.N(size*2,.1,size*2)},.2,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false)
  1026.         BloodPuddles[Puddle] = 0
  1027.     else
  1028.         local cyl = hit:FindFirstChild'CylinderMesh'
  1029.         if(cyl)then
  1030.             BloodPuddles[hit] = 0
  1031.             --cyl.Scale = cyl.Scale + V3.N(size,0,size)
  1032.             hit.Color = hit.Color:lerp(color,.05)
  1033.             Tween(cyl,{Scale = cyl.Scale + V3.N(size,0,size)},.2,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false)
  1034.             hit.Transparency = 0
  1035.         end
  1036.     end
  1037. end
  1038.  
  1039. local fromaxisangle = function(x, y, z) -- credit to phantom forces devs
  1040.     if not y then
  1041.         x, y, z = x.x, x.y, x.z
  1042.     end
  1043.     local m = (x * x + y * y + z * z) ^ 0.5
  1044.     if m > 1.0E-5 then
  1045.         local si = math.sin(m / 2) / m
  1046.         return CFrame.new(0, 0, 0, si * x, si * y, si * z, math.cos(m / 2))
  1047.     else
  1048.         return CFrame.new()
  1049.     end
  1050. end
  1051.  
  1052. function fakePhysics(elapsed,cframe,velocity,rotation,acceleration)
  1053.     local pos = cframe.p
  1054.     local matrix = cframe-pos
  1055.     return fromaxisangle(elapsed*rotation)*matrix+pos+elapsed*velocity+elapsed*elapsed*acceleration
  1056. end
  1057.  
  1058. function Droplet(data)
  1059.     local Size = data.Size or 1;
  1060.     local Origin = data.Origin or Torso.CFrame;
  1061.     local Velocity = data.Velocity or Vector3.new(0,100,0);
  1062.     local Gravity = data.Gravity or workspace.Gravity;
  1063.     local Color = data.Color or C3.N(.7,0,0);
  1064.     local Lifetime = data.Lifetime or 1;
  1065.     local Material = data.Material or Enum.Material.Glass;
  1066.     local ignore = data.Ignorelist or {Char};
  1067.    
  1068.     local drop = Part(Effects,Color,Material,V3.N(Size,Size,Size),Origin,true,false)
  1069.     Mesh(drop,Enum.MeshType.Sphere)
  1070.     local startTick = tick();
  1071.     coroutine.wrap(function()
  1072.         while true do
  1073.             local elapsed = tick()-startTick
  1074.             if(elapsed>Lifetime)then
  1075.                 drop:destroy();
  1076.                 break
  1077.             end
  1078.             local newCF = fakePhysics(elapsed,Origin,Velocity,V3.N(),V3.N(0,-Gravity,0))
  1079.             local dist = (drop.Position-newCF.p).magnitude
  1080.             local hit,pos,norm = CastRay(drop.Position,newCF.p,dist,ignore)
  1081.             if(hit and (hit.CanCollide or hit.Name=='BloodPuddle' or BloodPuddles[hit]) and not hit.Parent:FindFirstChildOfClass'Humanoid')then
  1082.                 drop:destroy()
  1083.                 Puddle(hit,pos,norm,data)
  1084.                 break
  1085.             else
  1086.                 if(hit)then table.insert(ignore,hit) end
  1087.                 drop.CFrame = newCF
  1088.             end
  1089.             swait()
  1090.         end
  1091.     end)()
  1092. end
  1093.  
  1094. function ShootBullet(data)
  1095.     --ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
  1096.     local Size = data.Size or V3.N(2,2,2)
  1097.     local Color = data.Color or BrickColor.new'Crimson'
  1098.     local StudsPerFrame = data.Speed or 10
  1099.     local Shape = data.Shape or 'Ball'
  1100.     local Frames = data.Frames or 160
  1101.     local Pos = data.Origin or Torso.CFrame
  1102.     local Direction = data.Direction or Mouse.Hit
  1103.     local Material = data.Material or Enum.Material.Neon
  1104.     local OnHit = data.HitFunction or function(hit,pos)
  1105.         Effect{
  1106.             Effect='ResizeAndFade',
  1107.             Color=Color,
  1108.             Size=V3.N(10,10,10),
  1109.             Mesh={MeshType=Enum.MeshType.Sphere},
  1110.             CFrame=CF.N(pos),
  1111.             FXSettings={
  1112.                 EndSize=V3.N(.05,.05,.05),
  1113.                 EndIsIncrement=true
  1114.             }
  1115.         }
  1116.         for i = 1, 5 do
  1117.             local angles = CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
  1118.             Effect{
  1119.                 Effect='Fade',
  1120.                 Frames=65,
  1121.                 Size=V3.N(5,5,10),
  1122.                 CFrame=CF.N(CF.N(pos)*angles*CF.N(0,0,-10).p,pos),
  1123.                 Mesh = {MeshType=Enum.MeshType.Sphere},
  1124.                 Material=Enum.Material.Neon,
  1125.                 Color=Color,
  1126.                 MoveDirection=CF.N(CF.N(pos)*angles*CF.N(0,0,-50).p,pos).p,
  1127.             }  
  1128.         end
  1129.     end
  1130.    
  1131.     local Bullet = Part(Effects,Color,Material,Size,Pos,true,false)
  1132.     local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
  1133.     if(Shape == 'Ball')then
  1134.         BMesh.MeshType = Enum.MeshType.Sphere
  1135.     elseif(Shape == 'Head')then
  1136.         BMesh.MeshType = Enum.MeshType.Head
  1137.     elseif(Shape == 'Cylinder')then
  1138.         BMesh.MeshType = Enum.MeshType.Cylinder
  1139.     end
  1140.    
  1141.     coroutine.wrap(function()
  1142.         for i = 1, Frames+1 do
  1143.             local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame).p,StudsPerFrame)
  1144.             if(hit)then
  1145.                 OnHit(hit,pos,norm,dist)
  1146.                 break;
  1147.             else
  1148.                 Bullet.CFrame = CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame)
  1149.             end
  1150.             swait()
  1151.         end
  1152.         Bullet:destroy()
  1153.     end)()
  1154.    
  1155. end
  1156.  
  1157.  
  1158. function Zap(data)
  1159.     local sCF,eCF = data.StartCFrame,data.EndCFrame
  1160.     assert(sCF,"You need a start CFrame!")
  1161.     assert(eCF,"You need an end CFrame!")
  1162.     local parts = data.PartCount or 15
  1163.     local zapRot = data.ZapRotation or {-5,5}
  1164.     local startThick = data.StartSize or 3;
  1165.     local endThick = data.EndSize or startThick/2;
  1166.     local color = data.Color or BrickColor.new'Electric blue'
  1167.     local delay = data.Delay or 35
  1168.     local delayInc = data.DelayInc or 0
  1169.     local lastLightning;
  1170.     local MagZ = (sCF.p - eCF.p).magnitude
  1171.     local thick = startThick
  1172.     local inc = (startThick/parts)-(endThick/parts)
  1173.    
  1174.     for i = 1, parts do
  1175.         local pos = sCF.p
  1176.         if(lastLightning)then
  1177.             pos = lastLightning.CFrame*CF.N(0,0,MagZ/parts/2).p
  1178.         end
  1179.         delay = delay + delayInc
  1180.         local zapPart = Part(Effects,color,Enum.Material.Neon,V3.N(thick,thick,MagZ/parts),CF.N(pos),true,false)
  1181.         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)))
  1182.         if(parts == i)then
  1183.             local MagZ = (pos-eCF.p).magnitude
  1184.             zapPart.Size = V3.N(endThick,endThick,MagZ)
  1185.             zapPart.CFrame = CF.N(pos, eCF.p)*CF.N(0,0,-MagZ/2)
  1186.             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)}}
  1187.         else
  1188.             zapPart.CFrame = CF.N(pos,posie)*CF.N(0,0,MagZ/parts/2)
  1189.         end
  1190.        
  1191.         lastLightning = zapPart
  1192.         Effect{Effect='Fade',Manual=zapPart,Frames=delay}
  1193.        
  1194.         thick=thick-inc
  1195.        
  1196.     end
  1197. end
  1198.  
  1199. function Zap2(data)
  1200.     local Color = data.Color or BrickColor.new'Electric blue'
  1201.     local StartPos = data.Start or Torso.Position
  1202.     local EndPos = data.End or Mouse.Hit.p
  1203.     local SegLength = data.SegL or 2
  1204.     local Thicc = data.Thickness or 0.5
  1205.     local Fades = data.Fade or 45
  1206.     local Parent = data.Parent or Effects
  1207.     local MaxD = data.MaxDist or 200
  1208.     local Branch = data.Branches or false
  1209.     local Material = data.Material or Enum.Material.Neon
  1210.     local Raycasts = data.Raycasts or false
  1211.     local Offset = data.Offset or {0,360}
  1212.     local AddMesh = (data.Mesh == nil and true or data.Mesh)
  1213.     if((StartPos-EndPos).magnitude > MaxD)then
  1214.         EndPos = CF.N(StartPos,EndPos)*CF.N(0,0,-MaxD).p
  1215.     end
  1216.     local hit,pos,norm,dist=nil,EndPos,nil,(StartPos-EndPos).magnitude
  1217.     if(Raycasts)then
  1218.         hit,pos,norm,dist = CastRay(StartPos,EndPos,MaxD)  
  1219.     end
  1220.     local segments = dist/SegLength
  1221.     local model = IN("Model",Parent)
  1222.     model.Name = 'Lightning'
  1223.     local Last;
  1224.     for i = 1, segments do
  1225.         local size = (segments-i)/25
  1226.         local prt = Part(model,Color,Material,V3.N(Thicc+size,SegLength,Thicc+size),CF.N(),true,false)
  1227.         if(AddMesh)then IN("CylinderMesh",prt) end
  1228.         if(Last and math.floor(segments) == i)then
  1229.             local MagZ = (Last.CFrame*CF.N(0,-SegLength/2,0).p-EndPos).magnitude
  1230.             prt.Size = V3.N(Thicc+size,MagZ,Thicc+size)
  1231.             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) 
  1232.         elseif(not Last)then
  1233.             prt.CFrame = CF.N(StartPos,pos)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)   
  1234.         else
  1235.             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)
  1236.         end
  1237.         Last = prt
  1238.         if(Branch)then
  1239.             local choice = M.RNG(1,7+((segments-i)*2))
  1240.             if(choice == 1)then
  1241.                 local LastB;
  1242.                 for i2 = 1,M.RNG(2,5) do
  1243.                     local size2 = ((segments-i)/35)/i2
  1244.                     local prt = Part(model,Color,Material,V3.N(Thicc+size2,SegLength,Thicc+size2),CF.N(),true,false)
  1245.                     if(AddMesh)then IN("CylinderMesh",prt) end
  1246.                     if(not LastB)then
  1247.                         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)
  1248.                     else
  1249.                         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)
  1250.                     end
  1251.                     LastB = prt
  1252.                 end
  1253.             end
  1254.         end
  1255.     end
  1256.     if(Fades > 0)then
  1257.         coroutine.wrap(function()
  1258.             for i = 1, Fades do
  1259.                 for _,v in next, model:children() do
  1260.                     if(v:IsA'BasePart')then
  1261.                         v.Transparency = (i/Fades)
  1262.                     end
  1263.                 end
  1264.                 swait()
  1265.             end
  1266.             model:destroy()
  1267.         end)()
  1268.     else
  1269.         S.Debris:AddItem(model,.01)
  1270.     end
  1271.     return {End=(Last and Last.CFrame*CF.N(0,-Last.Size.Y/2,0).p),Last=Last,Model=model}
  1272. end
  1273.  
  1274. function Tween(obj,props,time,easing,direction,repeats,backwards)
  1275.     local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
  1276.     local tween = S.TweenService:Create(obj, info, props)
  1277.    
  1278.     tween:Play()
  1279. end
  1280. local EasingFunctions = require(script.Tweens)
  1281.  
  1282. local function numLerp(Start,Finish,Alpha)
  1283.     return Start + (Finish- Start) * Alpha
  1284. end
  1285.  
  1286. local EffectInfo={}
  1287. function Effect(data)
  1288.     local color = data.Color or Color3.new(1,1,1);
  1289.     local transparency = data.Transparency or {0,1}
  1290.     local lifetime = data.Lifetime or 1
  1291.     local cframe = data.CFrame or CFrame.new(0,10,0)
  1292.     local acceleration = data.Acceleration or Vector3.new(0,0,0)
  1293.     local endpos = data.EndPos or nil
  1294.     local rotation = data.Rotation or {0,0,0}
  1295.     local meshData = data.Mesh or {Type=Enum.MeshType.Brick}
  1296.     local size = data.Size or Vector3.new(1,1,1)
  1297.     local material = data.Material or Enum.Material.Neon
  1298.     local setpart = typeof(data.Part)=='string' and FXFolder:FindFirstChild(tostring(data.Part)):Clone() or typeof(data.Part)=='Instance' and data.Part or nil
  1299.     local endSize = data.EndSize or nil
  1300.     local drag = data.Drag or 0
  1301.     local sizeTween = data.TweenSize;
  1302.     local moveTween = data.TweenPos;
  1303.     local transTween = data.TweenTrans;
  1304.     local accelTween = data.TweenAccel;
  1305.     local localAccel = data.LocalAcceleration or false;
  1306.     if(endSize and typeof(size)=='Vector3')then size={size,endSize} end
  1307.    
  1308.     if(typeof(size)=='Vector3')then
  1309.         size={size,size}
  1310.     end
  1311.    
  1312.     if(typeof(transparency)=='number')then
  1313.         transparency={transparency,transparency}
  1314.     end
  1315.    
  1316.     if(typeof(color)=='BrickColor')then
  1317.         color=color.Color
  1318.     end
  1319.    
  1320.     local PM;
  1321.    
  1322.     local part = setpart or Part(Effects,color,material,V3.N(1,1,1),cframe,true,false)
  1323.    
  1324.     if(not part:IsA'MeshPart' and not part:IsA'UnionOperation')then
  1325.         local scale = size[1]
  1326.         if(meshData == "Blast")then
  1327.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://20329976','',scale,Vector3.new(0,0,-scale.X/8))
  1328.         elseif(meshData == 'Ring')then
  1329.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://559831844','',scale,Vector3.new(0,0,0))
  1330.         elseif(meshData == 'Slash1')then
  1331.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://662586858','',Vector3.new(scale.X/10,.001,scale.Z/10),Vector3.new(0,0,0))
  1332.         elseif(meshData == 'Slash2')then
  1333.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://448386996','',Vector3.new(scale.X/1000,scale.Y/100,scale.Z/100),Vector3.new(0,0,0))
  1334.         elseif(meshData == 'Tornado1')then
  1335.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://443529437','',scale/10,Vector3.new(0,0,0))
  1336.         elseif(meshData == 'Tornado2')then
  1337.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://168892432','',scale/4,Vector3.new(0,0,0))
  1338.         elseif(meshData == 'Skull')then
  1339.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://4770583','',scale*2,Vector3.new(0,0,0))
  1340.         elseif(meshData == 'Crystal')then
  1341.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://9756362','',scale,Vector3.new(0,0,0))
  1342.         elseif(meshData == 'Cloud')then
  1343.             PM = Mesh(part,Enum.MeshType.FileMesh,'rbxassetid://1095708','',scale,Vector3.new(0,0,0))
  1344.         elseif(typeof(meshData) == 'table' or typeof(meshData) == 'Instance')then
  1345.             local Type = meshData.MeshType or meshData.Type or Enum.MeshType.Brick
  1346.             local ID = meshData.MeshId or meshData.Mesh or '';
  1347.             local Tex = meshData.TextureId or meshData.Texture or '';
  1348.             local Offset = meshData.Offset or Vector3.new(0,0,0)
  1349.             PM = Mesh(part,Type,ID,Tex,scale,Offset)
  1350.         elseif(not part:FindFirstChildOfClass('DataModelMesh'))then
  1351.             PM = Mesh(part,Enum.MeshType.Brick,'','',scale)
  1352.         else
  1353.             PM = part:FindFirstChildOfClass('DataModelMesh')
  1354.         end
  1355.     end
  1356.    
  1357.     part.Material = material
  1358.     part.CFrame = cframe
  1359.     part.Color = color
  1360.     part.Anchored = true
  1361.     part.CanCollide = false
  1362.     part.Transparency = transparency[1]
  1363.     part.Size = (PM and V3.N(1,1,1) or size[1])
  1364.     part.Parent = Effects
  1365.    
  1366.     local start = tick()
  1367.     local t0 = tick()
  1368.     local t01 = tick()
  1369.     local lastTrans='Nil';
  1370.     local lastSize='Nil';
  1371.     local lastColor='Nil';
  1372.     local info = {start,lifetime,localAccel,t0,transTween,sizeTween,moveTween,accelTween,color,transparency,size,part,PM,rotation,acceleration,endpos,cframe,drag,acceleration}
  1373.     table.insert(EffectInfo,info)
  1374. end
  1375.  
  1376. coroutine.wrap(function()
  1377.     while true do
  1378.         swait()
  1379.         for i,v in next, EffectInfo do
  1380.             local start,lifetime,localAccel,t0,transTween,sizeTween,moveTween,accelTween,color,transparency,size,part,mesh,rotation,acceleration,endpos,cframe,drag,startacc=unpack(v)
  1381.             local elapsed = tick()-start
  1382.             local left = elapsed/lifetime
  1383.             local dt = tick()-t0
  1384.             t0 = tick()
  1385.             if(mesh)then
  1386.                 mesh.Scale = size[1]:lerp(size[2],(sizeTween and sizeTween(elapsed,0,1,lifetime) or left))
  1387.             else
  1388.                 part.Size = size[1]:lerp(size[2],(sizeTween and sizeTween(elapsed,0,1,lifetime) or left))
  1389.             end
  1390.             part.Transparency = numLerp(transparency[1],transparency[2],(transTween and transTween(elapsed,0,1,lifetime) or left))
  1391.            
  1392.             local newRot={0,0,0}
  1393.             if(rotation=='random')then
  1394.                 newRot={math.rad(math.random(0,360)),math.rad(math.random(0,360)),math.rad(math.random(0,360))}
  1395.             elseif(typeof(rotation)=='table')then
  1396.                 local x,y,z=math.rad(rotation[1]),math.rad(rotation[2]),math.rad(rotation[3])
  1397.                 if(rotation[1]==0)then x=0 end
  1398.                 if(rotation[2]==0)then y=0 end
  1399.                 if(rotation[3]==0)then z=0 end
  1400.                 newRot={x,y,z}
  1401.             end
  1402.            
  1403.             local accelMult=(accelTween and 1-accelTween(elapsed,0,1,lifetime) or 1)
  1404.  
  1405.             local accel=(acceleration*dt)
  1406.             if(endpos)then
  1407.                 part.CFrame = cframe:lerp(endpos,(moveTween and moveTween(elapsed,0,1,lifetime) or left))
  1408.             elseif(accel and (accel.x~=0 or accel.y~=0 or accel.z~=0))then
  1409.                 if(localAccel)then
  1410.                     part.CFrame = part.CFrame*CFrame.Angles(unpack(newRot))*CF.N((accel*accelMult))
  1411.                 else
  1412.                     part.CFrame = part.CFrame*CFrame.Angles(unpack(newRot))+(accel*accelMult)
  1413.                 end
  1414.             elseif(newRot and (newRot[1]~=0 or newRot[2]~=0 or newRot[3]~=0))then
  1415.                 part.CFrame = part.CFrame*CFrame.Angles(unpack(newRot))
  1416.             end
  1417.             if(drag>0)then
  1418.                 acceleration=acceleration-V3.N(
  1419.                     0.05*startacc.x/(drag/1.5),
  1420.                     0.05*startacc.y/(drag/1.5),
  1421.                     0.05*startacc.z/(drag/1.5)
  1422.                 )
  1423.             end
  1424.             if(elapsed>lifetime)then
  1425.                 part:destroy()
  1426.                 EffectInfo[i]=nil
  1427.             else
  1428.                 EffectInfo[i]={start,lifetime,localAccel,t0,transTween,sizeTween,moveTween,accelTween,color,transparency,size,part,mesh,rotation,acceleration,endpos,cframe,drag,startacc}
  1429.             end
  1430.         end
  1431.     end
  1432. end)()
  1433.  
  1434. function LegacyEffect(data)
  1435.     -- just for easy reference
  1436.     local color = data.Color or Color3.new(.7,.7,.7);
  1437.     local endcolor = data.EndColor or nil;
  1438.     local mat = data.Material or Enum.Material.SmoothPlastic;
  1439.     local cframe = data.CFrame or CFrame.new();
  1440.     local endpos = data.EndPos or nil;
  1441.     local meshdata = data.Mesh or {}
  1442.     local sounddata = data.Sound or {}
  1443.     local size = data.Size or Vector3.new(1,1,1)
  1444.     local endsize = data.EndSize or Vector3.new(6,6,6)
  1445.     local rotinc = data.RotInc or {0,0,0} -- ONLY FOR LEGACY SYSTEM
  1446.     local transparency = data.Transparency or NumberRange.new(0,1)
  1447.     local acceleration = data.Acceleration or nil; -- ONLY FOR LEGACY SYSTEM
  1448.     local endrot = data.EndRotation or {0,0,0} -- ONLY FOR EXPERIMENTAL SYSTEM
  1449.     local style = data.Style or false; -- ONLY FOR EXPERIMENTAL SYSTEM
  1450.     local lifetime = data.Lifetime or 1;
  1451.     local system = data.FXSystem;
  1452.     local setpart = typeof(data.Part)=='string' and FXFolder:FindFirstChild(tostring(data.Part)):Clone() or typeof(data.Part)=='Instance' and data.Part or nil
  1453.    
  1454.     local S,PM;
  1455.    
  1456.     local P = setpart or Part(Effects,color,mat,Vector3.new(1,1,1),cframe,true,false)
  1457.    
  1458.     if(not P:IsA'MeshPart' and not P:IsA'UnionOperation')then
  1459.         if(meshdata == "Blast")then
  1460.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://20329976','',size,Vector3.new(0,0,-size.X/8))
  1461.         elseif(meshdata == 'Ring')then
  1462.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://559831844','',size,Vector3.new(0,0,0))
  1463.         elseif(meshdata == 'Slash1')then
  1464.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://662586858','',Vector3.new(size.X/10,.001,size.Z/10),Vector3.new(0,0,0))
  1465.         elseif(meshdata == 'Slash2')then
  1466.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://448386996','',Vector3.new(size.X/1000,size.Y/100,size.Z/100),Vector3.new(0,0,0))
  1467.         elseif(meshdata == 'Tornado1')then
  1468.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://443529437','',size/10,Vector3.new(0,0,0))
  1469.         elseif(meshdata == 'Tornado2')then
  1470.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://168892432','',size/4,Vector3.new(0,0,0))
  1471.         elseif(meshdata == 'Skull')then
  1472.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://4770583','',size*2,Vector3.new(0,0,0))
  1473.         elseif(meshdata == 'Crystal')then
  1474.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://9756362','',size,Vector3.new(0,0,0))
  1475.         elseif(meshdata == 'Cloud')then
  1476.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://1095708','',size,Vector3.new(0,0,0))
  1477.         elseif(typeof(meshdata) == 'table')then
  1478.             local Type = meshdata.Type or Enum.MeshType.Brick
  1479.             local ID = meshdata.ID or '';
  1480.             local Tex = meshdata.Texture or '';
  1481.             local Offset = meshdata.Offset or Vector3.new(0,0,0)
  1482.             PM = Mesh(P,Type,ID,Tex,size,Offset)
  1483.         else
  1484.             PM = Mesh(P,Enum.MeshType.Brick,'','',size)
  1485.         end
  1486.     end
  1487.     local startTrans = typeof(transparency) == 'number' and transparency or typeof(transparency) == 'NumberRange' and transparency.Min or typeof(transparency) == 'table' and transparency[1] or 0
  1488.     local endTrans = typeof(transparency) == 'NumberRange' and transparency.Max or typeof(transparency) == 'table' and transparency[2] or 1
  1489.    
  1490.     P.Material = mat
  1491.     P.CFrame = cframe
  1492.     P.Color = (typeof(color)=='BrickColor' and color.Color or color)
  1493.     P.Anchored = true
  1494.     P.CanCollide = false
  1495.     P.Transparency = startTrans
  1496.     P.Parent = Effects
  1497.     local random = Random.new();
  1498.     game:service'Debris':AddItem(P,lifetime+3)
  1499.    
  1500.    
  1501.     -- actual effect stuff
  1502.     local mult = 1;
  1503.     if(PM)then
  1504.         if(PM.MeshId == 'rbxassetid://20329976')then
  1505.             PM.Offset = Vector3.new(0,0,-PM.Scale.Z/8)
  1506.         elseif(PM.MeshId == 'rbxassetid://4770583')then
  1507.             mult = 2
  1508.         elseif(PM.MeshId == 'rbxassetid://168892432')then
  1509.             mult = .25
  1510.         elseif(PM.MeshId == 'rbxassetid://443529437')then
  1511.             mult = .1
  1512.         elseif(PM.MeshId == 'rbxassetid://443529437')then
  1513.             mult = .1
  1514.         end
  1515.     end
  1516.     coroutine.wrap(function()
  1517.         if(system == 'Legacy' or system == 1 or system == nil)then
  1518.             local frames = (typeof(lifetime) == 'NumberRange' and random:NextNumber(lifetime.Min,lifetime.Max) or typeof(lifetime) == 'number' and lifetime or 1)*Frame_Speed
  1519.             for i = 0, frames do
  1520.                 local div = (i/frames)
  1521.                 P.Transparency=(startTrans+(endTrans-startTrans)*div)
  1522.                
  1523.                 if(PM)then PM.Scale = size:lerp(endsize*mult,div) else P.Size = size:lerp(endsize*mult,div) end
  1524.                
  1525.                 local RotCF=CFrame.Angles(0,0,0)
  1526.                
  1527.                 if(rotinc == 'random')then
  1528.                     RotCF=CFrame.Angles(math.rad(random:NextNumber(-180,180)),math.rad(random:NextNumber(-180,180)),math.rad(random:NextNumber(-180,180)))
  1529.                 elseif(typeof(rotinc) == 'table')then
  1530.                     RotCF=CFrame.Angles(unpack(rotinc))
  1531.                 end
  1532.                
  1533.                 if(PM and PM.MeshId == 'rbxassetid://20329976')then
  1534.                     PM.Offset = Vector3.new(0,0,-PM.Scale.Z/8)
  1535.                 end
  1536.                
  1537.                 if(endpos and typeof(endpos) == 'CFrame')then
  1538.                     P.CFrame=cframe:lerp(endpos,div)*RotCF
  1539.                 elseif(acceleration and typeof(acceleration) == 'table' and acceleration.Force)then
  1540.                     local force = acceleration.Force;
  1541.                     if(typeof(force)=='CFrame')then
  1542.                         force=force.p;
  1543.                     end
  1544.                     if(typeof(force)=='Vector3')then
  1545.                         if(acceleration.LookAt)then
  1546.                             P.CFrame=(CFrame.new(P.Position,force)+force)*RotCF
  1547.                         else
  1548.                             P.CFrame=(P.CFrame+force)*RotCF
  1549.                         end
  1550.                     end
  1551.                 else
  1552.                     P.CFrame=P.CFrame*RotCF
  1553.                 end
  1554.                
  1555.                 if(endcolor and typeof(endcolor) == 'Color3')then
  1556.                     P.Color = color:lerp(endcolor,div)
  1557.                 end
  1558.                 swait()
  1559.             end
  1560.             P:destroy()
  1561.         elseif(system == 'Experimental' or system == 2)then
  1562.             local info = TweenInfo.new(lifetime,style,Enum.EasingDirection.InOut,0,false,0)
  1563.             local info2 = TweenInfo.new(lifetime,Enum.EasingStyle.Linear,Enum.EasingDirection.InOut,0,false,0)
  1564.             if(style == Enum.EasingStyle.Elastic)then
  1565.                 info = TweenInfo.new(lifetime*2,style,Enum.EasingDirection.Out,0,false,0)
  1566.             elseif(style == Enum.EasingStyle.Bounce)then
  1567.                 info = TweenInfo.new(lifetime,style,Enum.EasingDirection.Out,0,false,0)
  1568.             end
  1569.             local tweenPart = game:service'TweenService':Create(P,info2,{
  1570.                 CFrame=(typeof(endpos) == 'CFrame' and endpos or P.CFrame)*CFrame.Angles(unpack(endrot)),
  1571.                 Color=typeof(endcolor) == 'Color3' and endcolor or color,
  1572.                 Transparency=endTrans,
  1573.             })
  1574.             local off = Vector3.new(0,0,0)
  1575.             if(PM.MeshId == 'rbxassetid://20329976')then off=Vector3.new(0,0,(endsize*mult).Z/8) end
  1576.            
  1577.             local tweenMesh = game:service'TweenService':Create(PM,info,{
  1578.                 Scale=endsize*mult,
  1579.                 Offset=off,
  1580.             })
  1581.             tweenPart:Play()
  1582.             tweenMesh:Play()
  1583.         end
  1584.     end)()
  1585. end
  1586.  
  1587.  
  1588. --// Other Functions \\ --
  1589.  
  1590. function CastRay(startPos,endPos,range,ignoreList)
  1591.     local ray = Ray.new(startPos,(endPos-startPos).unit*range)
  1592.     local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
  1593.     return part,pos,norm,(pos and (startPos-pos).magnitude)
  1594. end
  1595.  
  1596. function getRegion(point,range,ignore)
  1597.     return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
  1598. end
  1599.  
  1600. function clerp(startCF,endCF,alpha)
  1601.     return startCF:lerp(endCF, alpha)
  1602. end
  1603.  
  1604. function GetTorso(char)
  1605.     return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
  1606. end
  1607.  
  1608.  
  1609. function ShowDamage(Pos, Text, Time, Color)
  1610.     coroutine.wrap(function()
  1611.     local Rate = (1 / Frame_Speed)
  1612.     local Pos = (Pos or Vector3.new(0, 0, 0))
  1613.     local Text = (Text or "")
  1614.     local Time = (Time or 2)
  1615.     local Color = (Color or Color3.new(1, 0, 1))
  1616.     local EffectPart = NewInstance("Part",Effects,{
  1617.         Material=Enum.Material.SmoothPlastic,
  1618.         Reflectance = 0,
  1619.         Transparency = 1,
  1620.         BrickColor = BrickColor.new(Color),
  1621.         Name = "Effect",
  1622.         Size = Vector3.new(0,0,0),
  1623.         Anchored = true,
  1624.         CFrame = CF.N(Pos)
  1625.     })
  1626.     local BillboardGui = NewInstance("BillboardGui",EffectPart,{
  1627.         Size = UDim2.new(1.25, 0, 1.25, 0),
  1628.         Adornee = EffectPart,
  1629.     })
  1630.     local TextLabel = NewInstance("TextLabel",BillboardGui,{
  1631.         BackgroundTransparency = 1,
  1632.         Size = UDim2.new(1, 0, 1, 0),
  1633.         Text = Text,
  1634.         Font = "Bodoni",
  1635.         TextColor3 = Color,
  1636.         TextStrokeColor3 = Color3.new(0,0,0),
  1637.         TextStrokeTransparency=0,
  1638.         TextScaled = true,
  1639.     })
  1640.     S.Debris:AddItem(EffectPart, (Time))
  1641.     EffectPart.Parent = workspace
  1642.     delay(0, function()
  1643.         Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out)
  1644.         local Frames = (Time / Rate)
  1645.         for Frame = 1, Frames do
  1646.             swait()
  1647.             local Percent = (Frame / Frames)
  1648.             TextLabel.TextTransparency = Percent
  1649.             TextLabel.TextStrokeTransparency = Percent
  1650.         end
  1651.         if EffectPart and EffectPart.Parent then
  1652.             EffectPart:Destroy()
  1653.         end
  1654.     end) end)()
  1655. end
  1656.  
  1657. function DealDamage(data)
  1658.     local Who = data.Who;
  1659.     local MinDam = data.MinimumDamage or 15;
  1660.     local MaxDam = data.MaximumDamage or 30;
  1661.     local MaxHP = data.MaxHP or 1e5;
  1662.    
  1663.     local DB = data.Debounce or .2;
  1664.    
  1665.     local CritData = data.Crit or {}
  1666.     local CritChance = CritData.Chance or 0;
  1667.     local CritMultiplier = CritData.Multiplier or 1;
  1668.    
  1669.     local DamageEffects = data.DamageFX or {}
  1670.     local DamageType = DamageEffects.Type or "Normal"
  1671.     local DeathFunction = DamageEffects.DeathFunction
  1672.    
  1673.     assert(Who,"Specify someone to damage!")   
  1674.    
  1675.     local Humanoid = Who:FindFirstChildOfClass'Humanoid'
  1676.     local DoneDamage = M.RNG(MinDam,MaxDam) * (M.RNG(1,100) <= CritChance and CritMultiplier or 1)
  1677.    
  1678.     local canHit = true
  1679.     if(Humanoid)then
  1680.         for _, p in pairs(Hit) do
  1681.             if p[1] == Humanoid then
  1682.                 if(time() - p[2] <= DB) then
  1683.                     canHit = false
  1684.                 else
  1685.                     Hit[_] = nil
  1686.                 end
  1687.             end
  1688.         end
  1689.         if(canHit)then
  1690.             table.insert(Hit,{Humanoid,time()})
  1691.             local HitTorso = GetTorso(Who)
  1692.             local player = S.Players:GetPlayerFromCharacter(Who)
  1693.             CamShake(Who,2,150,HitTorso.Position)
  1694.             if(not player or player.UserId ~= 5719877 and player.UserId ~= 19081129)then
  1695.                 if(Humanoid.MaxHealth >= MaxHP and Humanoid.Health > 0)then
  1696.                     print'Got kill'
  1697.                     Humanoid.Health = 0;
  1698.                     Who:BreakJoints();
  1699.                     if(DeathFunction)then DeathFunction(Who,Humanoid) end
  1700.                 else
  1701.                     local  c = Instance.new("ObjectValue",Hum)
  1702.                     c.Name = "creator"
  1703.                     c.Value = (game:service'RunService':IsServer() and Plr.real or Plr)
  1704.                     S.Debris:AddItem(c,0.35)   
  1705.                     if(Who:FindFirstChild'Head' and Humanoid.Health > 0)then
  1706.                         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))), DoneDamage, 1.5, DamageColor.Color)
  1707.                     end
  1708.                     if(Humanoid.Health > 0 and Humanoid.Health-DoneDamage <= 0)then print'Got kill' if(DeathFunction)then DeathFunction(Who,Humanoid) end end
  1709.                     Humanoid.Health = Humanoid.Health - DoneDamage
  1710.                    
  1711.                     if(DamageType == 'Knockback' and HitTorso)then
  1712.                         local up = DamageEffects.KnockUp or 25
  1713.                         local back = DamageEffects.KnockBack or 25
  1714.                         local origin = DamageEffects.Origin or Root
  1715.                         local decay = DamageEffects.Decay or .5;
  1716.                        
  1717.                         local bfos = Instance.new("BodyVelocity",HitTorso)
  1718.                         bfos.P = 20000 
  1719.                         bfos.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  1720.                         bfos.Velocity = Vector3.new(0,up,0) + (origin.CFrame.lookVector * back)
  1721.                         S.Debris:AddItem(bfos,decay)
  1722.                     end
  1723.                 end
  1724.             end
  1725.         end
  1726.     end    
  1727. end
  1728.  
  1729. function AoE(where,range,func)
  1730.     local hit = {}
  1731.     for _,v in next, getRegion(where,range,{Char}) do
  1732.         local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')
  1733.         local tors = (v.Parent and GetTorso(v.Parent))
  1734.         if(hum and tors and not hit[hum] and hum.Health>0)then
  1735.             hit[hum] = true
  1736.             local dist = (where-tors.Position).magnitude or math.huge
  1737.             func(v.Parent,hum,tors,dist)
  1738.         end
  1739.     end
  1740.     return hit
  1741. end
  1742.  
  1743. function AoEDamage(where,range,options)
  1744.     return AoE(where,range,function(char,humanoid)
  1745.         local callTable = {Who=char}
  1746.         for _,v in next, options do callTable[_] = v end
  1747.         DealDamage(callTable)
  1748.     end)
  1749. end
  1750.  
  1751. function AoEHeal(where,range,amount)
  1752.     return AoE(where,range,function(char,humanoid)
  1753.         humanoid.Health = humanoid.Health + amount
  1754.         if(char:FindFirstChild'Head' and humanoid.Health > 0)then
  1755.             ShowDamage((char.Head.CFrame * CF.N(0, 0, (char.Head.Size.Z / 2)).p+V3.N(0,1.5,0)), "+"..amount, 1.5, BrickColor.new'Lime green'.Color)
  1756.         end
  1757.     end)
  1758. end
  1759.  
  1760. function ClosestPlayer(where,range)
  1761.     local closestChar,closestTorso,closestHum,distance;
  1762.     AoE(where,range,function(char,humanoid,torso,dist)
  1763.         if(humanoid.Health>0 and (not closestChar or dist<distance))then
  1764.             distance=dist
  1765.             closestChar=char
  1766.             closestTorso=torso
  1767.             closestHum=humanoid
  1768.         end
  1769.     end)
  1770.     return closestChar,closestTorso,closestHum,distance;
  1771. end
  1772.  
  1773. function Kill(who)
  1774.     if(S.RunService:IsServer())then
  1775.         local plr = game:service'Players':GetPlayerFromCharacter(who)
  1776.         local rag = script.Ragdoll:Clone()
  1777.         rag.Parent = who
  1778.         rag.Disabled = false
  1779.     else
  1780.         who:breakJoints()
  1781.     end
  1782. end
  1783.  
  1784. function Paralyse(humanoid)
  1785.     humanoid.PlatformStand=true
  1786.     humanoid.AutoRotate=false
  1787.     humanoid.StateChanged:connect(function()
  1788.         if(not humanoid.PlatformStand)then
  1789.             humanoid.PlatformStand=true
  1790.         end
  1791.     end)
  1792. end
  1793.  
  1794. function ShadowPlayer(char,color)
  1795.     local plr = S.Players:GetPlayerFromCharacter(char)
  1796.     for _,v in next, char:children() do
  1797.         if(v:IsA'BasePart')then
  1798.             local mesh = v:FindFirstChildOfClass'DataModelMesh'
  1799.             Effect{
  1800.                 Lifetime=.2;
  1801.                 CFrame=v.CFrame;
  1802.                 Transparency={v.Transparency,1};
  1803.                 Size=v.Size;
  1804.                 EndSize=v.Size;
  1805.                 Material=Enum.Material.Neon;
  1806.                 Mesh=(mesh and mesh:Clone());
  1807.                 Color=(color or C3.N(1,0,0));
  1808.             }
  1809.         end
  1810.     end
  1811. end
  1812.  
  1813.  
  1814. --// Wrap it all up \\--
  1815.  
  1816. function Dash()
  1817.     Hum.AutoRotate=false
  1818.     Attack=true
  1819.     NeutralAnims=false
  1820.     legAnims=false
  1821.     local i = 0;
  1822.     repeat
  1823.         Root.Anchored=true
  1824.         local Alpha = .1
  1825.         RJ.C0 = RJ.C0:lerp(CF.N(0,.5+.05*M.C(Sine/48),0)*CF.A(M.R(-55.8+2.5*M.C(Sine/48)),M.R(0),M.R(0)),Alpha)
  1826.         LS.C0 = LS.C0:lerp(CF.N(-1.5,0.3+.1*M.S(Sine/48),0)*CF.A(M.R(-25.2+2*M.S(Sine/42)),M.R(0),M.R(-8+3*M.S(Sine/48))),Alpha)
  1827.         RS.C0 = RS.C0:lerp(CF.N(1.5,0.3+.1*M.S(Sine/48),0)*CF.A(M.R(-25.2+2*M.S(Sine/42)),M.R(0),M.R(8-3*M.S(Sine/48))),Alpha)
  1828.         if(M.RNG(1,25)==1)then
  1829.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(12.8+1.5*M.S(Sine/48)+M.RNG(-25,25)),M.RRNG(-25,25),M.RRNG(-25,25)),1)
  1830.         else
  1831.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(12.8+1.5*M.S(Sine/48)),M.R(0),M.R(0)),Alpha)
  1832.         end
  1833.         LH.C0 = LH.C0:lerp(LHC0*CF.A(M.R(-15),0,M.R(-5)),Alpha)
  1834.         RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-.5)*CF.A(M.R(-15),0,M.R(5)),Alpha)
  1835.         swait()
  1836.         i=i+1
  1837.         ShadowPlayer(Char)
  1838.         Root.CFrame=Root.CFrame*CF.N(0,0,-2)
  1839.     until not S.UserInputService:IsKeyDown(Enum.KeyCode.Q) and i>10
  1840.     Hum.AutoRotate=true
  1841.     legAnims=true
  1842.     Root.Anchored=false
  1843.     Attack=false
  1844.     NeutralAnims=true
  1845. end
  1846.  
  1847. function AttemptGrab()
  1848.     local Grabbed,GWeld,GrabbedHum,GrabbedRoot;
  1849.     if(not NeutralAnims)then
  1850.         for i = 0, 1, .1 do
  1851.             local Alpha = .3
  1852.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(-31.9),M.R(0)),Alpha)
  1853.             if(not legAnims)then
  1854.                 LH.C0 = LH.C0:lerp(CF.N(-0.5,-1,0)*CF.A(M.R(0),M.R(31.9),M.R(0)),Alpha)
  1855.                 RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(0),M.R(5.4)),Alpha)
  1856.             end
  1857.             LS.C0 = LS.C0:lerp(CF.N(-1.4,0.5,0)*CF.A(M.R(0),M.R(0),M.R(-12.8)),Alpha)
  1858.             RS.C0 = RS.C0:lerp(CF.N(1.4,0.4,0.1)*CF.A(M.R(-1.7),M.R(-14.4),M.R(83.4)),Alpha)
  1859.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(31.9),M.R(0)),Alpha)
  1860.             swait()
  1861.         end
  1862.         for i = 0, .7, .1 do   
  1863.             local Alpha = .3
  1864.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(54.7),M.R(0)),Alpha)
  1865.             if(not legAnims)then
  1866.                 LH.C0 = LH.C0:lerp(CF.N(-0.5,-1,0)*CF.A(M.R(0),M.R(8),M.R(-5.9)),Alpha)
  1867.                 RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(-54.7),M.R(0)),Alpha)
  1868.             end
  1869.             LS.C0 = LS.C0:lerp(CF.N(-1.4,0.5,0)*CF.A(M.R(0),M.R(0),M.R(-7.1)),Alpha)
  1870.             RS.C0 = RS.C0:lerp(CF.N(1.5,0.8,0)*CF.A(M.R(120.5),M.R(35.7),M.R(44.7)),Alpha)
  1871.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(-54.7),M.R(0)),Alpha)
  1872.             local G,T,GH,D = ClosestPlayer(RArm.Position,4)
  1873.             if(not Grabbed and G and T)then
  1874.                 Grabbed=G
  1875.                 G.Parent=Char
  1876.                 GrabbedRoot=G:FindFirstChild'HumanoidRootPart'
  1877.                 if(GrabbedRoot)then GrabbedRoot.Parent=nil end
  1878.                 GWeld=Weld(T,RArm,CF.N(0,0,1.5)*CF.A(M.R(90),0,0))
  1879.                 Sound(RArm,240429615,1,6,false,true,true)
  1880.                 GrabbedHum = GH
  1881.                 Paralyse(GH)
  1882.                 break
  1883.             end
  1884.             swait()
  1885.         end
  1886.         if(not Grabbed)then
  1887.             for i = 0, 2, .1 do
  1888.                 local Alpha = .3
  1889.                 RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(54.7),M.R(0)),Alpha)
  1890.                 if(not legAnims)then
  1891.                     LH.C0 = LH.C0:lerp(CF.N(-0.5,-1,0)*CF.A(M.R(0),M.R(8),M.R(-5.9)),Alpha)
  1892.                     RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(-54.7),M.R(0)),Alpha)
  1893.                 end
  1894.                 LS.C0 = LS.C0:lerp(CF.N(-1.4,0.5,0)*CF.A(M.R(0),M.R(0),M.R(-7.1)),Alpha)
  1895.                 RS.C0 = RS.C0:lerp(CF.N(1.5,0.8,0)*CF.A(M.R(120.5),M.R(35.7),M.R(44.7)),Alpha)
  1896.                 NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(-54.7),M.R(0)),Alpha)
  1897.                 swait()
  1898.             end
  1899.         end
  1900.     else
  1901.         local G,T,GH,D = ClosestPlayer(RArm.Position,4)
  1902.         if(not Grabbed and G and T)then
  1903.             Grabbed=G
  1904.             G.Parent=Char
  1905.             GrabbedRoot=G:FindFirstChild'HumanoidRootPart'
  1906.             if(GrabbedRoot)then GrabbedRoot.Parent=nil end
  1907.             GWeld=Weld(T,RArm,CF.N(0,0,1.5)*CF.A(M.R(90),0,0))
  1908.             Sound(RArm,240429615,1,6,false,true,true)
  1909.             GrabbedHum = GH
  1910.             Paralyse(GH)
  1911.         end
  1912.     end
  1913.    
  1914.     return Grabbed,GWeld,GrabbedHum,GrabbedRoot;
  1915. end
  1916.  
  1917. function Bloodbath(target,amount)
  1918.     for _,v in next, target:children() do
  1919.         if(v:IsA'BasePart')then
  1920.             local blood = BFX:Clone();
  1921.             blood.Parent=v
  1922.             blood:Emit(amount or 500)
  1923.         end
  1924.     end
  1925.     Kill(target)
  1926. end
  1927.  
  1928. function BloodFountain(target,amount)
  1929.     local blood = BFX2:Clone();
  1930.     blood.Parent=(function()
  1931.         if(typeof(target)=='Instance')then
  1932.             return GetTorso(target)
  1933.         elseif(typeof(target)=='Vector3' or typeof(target)=='CFrame')then
  1934.             local p = Part(Effects,C3.N(0,0,0),Enum.Material.SmoothPlastic,V3.N(1,1,1),typeof(target)=='Vector3' and CF.N(target) or target,true,false)
  1935.             p.Transparency=1
  1936.             S.Debris:AddItem(p,10)
  1937.             return p
  1938.         end
  1939.     end)()
  1940.     blood:Emit(amount or 500)
  1941. end
  1942.  
  1943.  
  1944. function Yeet()
  1945.     WalkSpeed=2
  1946.     Attack=true
  1947.     NeutralAnims=false
  1948.     legAnims=false
  1949.     local Grabbed,GWeld,GHum=AttemptGrab()
  1950.     if(Grabbed)then
  1951.         local GrabT = GWeld.Part0
  1952.         for i = 0, 1, .1 do
  1953.             local Alpha = .3
  1954.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(54.7),M.R(0)),Alpha)
  1955.             LS.C0 = LS.C0:lerp(CF.N(-1.4,0.5,0)*CF.A(M.R(0),M.R(0),M.R(-7.1)),Alpha)
  1956.             RS.C0 = RS.C0:lerp(CF.N(1.5,0.8,0)*CF.A(M.R(120.5),M.R(35.7),M.R(44.7)),Alpha)
  1957.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(-54.7),M.R(0)),Alpha)
  1958.             swait()
  1959.         end
  1960.         local thrown=false;
  1961.         local nigg;
  1962.         nigg = S.UserInputService.InputBegan:connect(function(io,gpe)
  1963.             if(gpe)then return end
  1964.             if(io.UserInputType==Enum.UserInputType.MouseButton1)then
  1965.                 thrown=true
  1966.                 nigg:disconnect()
  1967.             end
  1968.         end)
  1969.         repeat swait()
  1970.             local Alpha = .3
  1971.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(-34.4),M.R(0)),Alpha)
  1972.             LH.C0 = LH.C0:lerp(CF.N(-0.5,-1,0)*CF.A(M.R(0),M.R(34.4),M.R(0)),Alpha)
  1973.             RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(0),M.R(4.3)),Alpha)
  1974.             LS.C0 = LS.C0:lerp(CF.N(-1.5,0.5,-0.1)*CF.A(M.R(90),M.R(0),M.R(-34.4)),Alpha)
  1975.             RS.C0 = RS.C0:lerp(CF.N(1.3,0.5,0.1)*CF.A(M.R(90),M.R(0),M.R(25.5)),Alpha)
  1976.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(34.4),M.R(0)),Alpha)
  1977.         until thrown;
  1978.         for i = 0, .7, .1 do
  1979.             local Alpha = .3
  1980.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(-54.4),M.R(0)),Alpha)
  1981.             LH.C0 = LH.C0:lerp(CF.N(-0.5,-1,0)*CF.A(M.R(0),M.R(34.4),M.R(0)),Alpha)
  1982.             RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(0),M.R(4.3)),Alpha)
  1983.             LS.C0 = LS.C0:lerp(CF.N(-1.5,0.5,-0.1)*CF.A(M.R(90),M.R(0),M.R(-54.4)),Alpha)
  1984.             RS.C0 = RS.C0:lerp(CF.N(1.3,0.5,0.1)*CF.A(M.R(90),M.R(0),M.R(45.5)),Alpha)
  1985.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(54.4),M.R(0)),Alpha)
  1986.             swait()
  1987.         end
  1988.         GWeld:destroy()
  1989.         local dist = math.min((GrabT.Position-Mouse.Hit.p).magnitude,500)
  1990.         GrabT.Velocity = CF.N(GrabT.Position-V3.N(0,15,0),Mouse.Hit.p).lookVector*(dist*2)+V3.N(0,15,0)
  1991.         GrabT.RotVelocity=V3.N(M.RNG(-10,10),M.RNG(-10,10),M.RNG(-10,10))
  1992.         Grabbed.Parent=workspace
  1993.         local touchEvent;
  1994.         touchEvent=GrabT.Touched:connect(function(t)
  1995.             if(not t:IsDescendantOf(Char) and not t:IsDescendantOf(Grabbed))then
  1996.                 touchEvent:disconnect()
  1997.                 local h,p,n = CastRay(GrabT.Position,GrabT.Position-V3.N(0,1,0),4)
  1998.                 SoundPart(231917845,M.RNG(95,125)/100,6,false,true,true,CF.N(p))
  1999.                 SoundPart(429400881,1,2,false,true,true,CF.N(p))
  2000.                 BloodFountain(p)
  2001.                 Kill(Grabbed)
  2002.                 if(h)then
  2003.                     Effect{
  2004.                         Lifetime=1.5;
  2005.                         CFrame=CF.N(p);
  2006.                         Rotation={0,M.RNG(-250,250)/100,0};
  2007.                         Color=C3.N(1,1,1);
  2008.                         Part='Smash8';
  2009.                         Size=V3.N(2,5,2);
  2010.                         EndSize=V3.N(15,.5,15);
  2011.                         Material=Enum.Material.SmoothPlastic;
  2012.                     }
  2013.                 end
  2014.                 for i = 1, 3 do
  2015.                     Effect{
  2016.                         Lifetime=2,
  2017.                         CFrame=GrabT.CFrame*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360));
  2018.                         Acceleration=V3.N(0,M.RNG(250,375)/100,0);
  2019.                         LocalAcceleration=true;
  2020.                         Rotation={0,0,0};
  2021.                         Color=C3.N(.7,0,0);
  2022.                         Mesh={Type=Enum.MeshType.Sphere};
  2023.                         Size=V3.N(1.5,1.5,1.5);
  2024.                         EndSize=V3.N(0,0,0);
  2025.                         Material=Enum.Material.Granite;
  2026.                     }
  2027.                 end
  2028.                 for i = 1, 5 do
  2029.                     Effect{
  2030.                         CFrame=GrabT.CFrame*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360));
  2031.                         Rotation={M.RNG(-10,10),0,0};
  2032.                         Color=C3.N(1,0,0);
  2033.                         Part='Slash';
  2034.                         Size=V3.N(2,.1,2);
  2035.                         EndSize=V3.N(7,.1,7);
  2036.                         Material=Enum.Material.Neon;
  2037.                     }
  2038.                 end
  2039.                
  2040.                 if(t.Parent and t.Parent:FindFirstChildOfClass'Humanoid')then
  2041.                     Kill(t.Parent)
  2042.                 end
  2043.  
  2044.             end
  2045.         end)
  2046.         for i = 0, 2, .1 do
  2047.             local Alpha = .3
  2048.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(62),M.R(0)),Alpha)
  2049.             LH.C0 = LH.C0:lerp(CF.N(-0.4,-1,0)*CF.A(M.R(0),M.R(8.1),M.R(-4.9)),Alpha)
  2050.             RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(-62),M.R(0)),Alpha)
  2051.             LS.C0 = LS.C0:lerp(CF.N(-1.4,0.5,0)*CF.A(M.R(0),M.R(0),M.R(-8)),Alpha)
  2052.             RS.C0 = RS.C0:lerp(CF.N(1.4,0.5,-0.2)*CF.A(M.R(90),M.R(0),M.R(62)),Alpha)
  2053.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(-62),M.R(0)),Alpha)
  2054.             swait()
  2055.         end
  2056.     end
  2057.    
  2058.     WalkSpeed=8
  2059.     legAnims=true
  2060.     NeutralAnims=true
  2061.     Attack=false
  2062. end
  2063.  
  2064. function BloodExplosion()
  2065.     local target = Mouse.Target and Mouse.Target.Parent;
  2066.     local hum = target and target:FindFirstChildOfClass'Humanoid'
  2067.     local tor = target and GetTorso(target)
  2068.     if(tor and hum)then
  2069.         NeutralAnims=false
  2070.         Attack=true
  2071.         legAnims=false
  2072.         WalkSpeed=0
  2073.         for i = 0, 5, .1 do
  2074.             local Alpha = .1
  2075.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(-37.7),M.R(0)),Alpha)
  2076.             LH.C0 = LH.C0:lerp(CF.N(-0.4,-1,0)*CF.A(M.R(0),M.R(10),M.R(-5.2)),Alpha)
  2077.             RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(0),M.R(6)),Alpha)
  2078.             LS.C0 = LS.C0:lerp(CF.N(-1.3,0.7,0)*CF.A(M.R(147.4),M.R(-40.7),M.R(-39)),Alpha)
  2079.             RS.C0 = RS.C0:lerp(CF.N(1.5,0.5,0)*CF.A(M.R(0),M.R(0),M.R(11.6)),Alpha)
  2080.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(37.7),M.R(0)),Alpha)
  2081.             Effect{
  2082.                 Lifetime=.5;
  2083.                 CFrame=LArm.CFrame*CF.N(0,-1,0)*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360));
  2084.                 Rotation={M.RNG(-10,10),M.RNG(-10,10),M.RNG(-10,10)};
  2085.                 Color=C3.N(1,0,0);
  2086.                 Material=Enum.Material.Neon;
  2087.                 Size=V3.N(.5,.5,.5);
  2088.             }
  2089.             swait()
  2090.         end
  2091.         Effect{
  2092.             Lifetime=.75;
  2093.             CFrame=LArm.CFrame*CF.N(0,-1,0)*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360));
  2094.             Rotation={M.RNG(-25,25),M.RNG(-25,25),M.RNG(-25,25)};
  2095.             Color=C3.N(1,0,0);
  2096.             Material=Enum.Material.Neon;
  2097.             Size=V3.N(.5,.5,.5);
  2098.             EndSize=V3.N(2,2,2);
  2099.         }
  2100.         Effect{
  2101.             Lifetime=.3;
  2102.             CFrame=LArm.CFrame*CF.N(0,-1,0)*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360));
  2103.             Rotation={M.RNG(-25,25),M.RNG(-25,25),M.RNG(-25,25)};
  2104.             Color=C3.N(1,0,0);
  2105.             Material=Enum.Material.Neon;
  2106.             Size=V3.N(.5,.5,.5);
  2107.             EndSize=V3.N(2,2,2);
  2108.         }
  2109.         SoundPart(429400881,1,10,false,true,true,tor.CFrame)
  2110.         SoundPart(233096543,1,10,false,true,true,LArm.CFrame*CF.N(0,-1,0))
  2111.         Bloodbath(target)
  2112.         for i = 0, .7, .1 do
  2113.             local Alpha = .4
  2114.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(-37.7),M.R(0)),Alpha)
  2115.             LH.C0 = LH.C0:lerp(CF.N(-0.4,-1,0)*CF.A(M.R(0),M.R(10),M.R(-5.2)),Alpha)
  2116.             RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(0),M.R(6)),Alpha)
  2117.             LS.C0 = LS.C0:lerp(CF.N(-1.4,0.4,0)*CF.A(M.R(-174),M.R(-53.2),M.R(-0.8)),Alpha)
  2118.             RS.C0 = RS.C0:lerp(CF.N(1.5,0.5,0)*CF.A(M.R(0),M.R(0),M.R(11.6)),Alpha)
  2119.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(37.7),M.R(0)),Alpha)
  2120.             swait()
  2121.         end
  2122.         for i = 0, 4, .1 do
  2123.             local Alpha = .1
  2124.             RJ.C0 = RJ.C0:lerp(CF.N(0,0,0)*CF.A(M.R(0),M.R(-37.7),M.R(0)),Alpha)
  2125.             LH.C0 = LH.C0:lerp(CF.N(-0.4,-1,0)*CF.A(M.R(0),M.R(10),M.R(-5.2)),Alpha)
  2126.             RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(0),M.R(6)),Alpha)
  2127.             LS.C0 = LS.C0:lerp(CF.N(-1.3,0.7,0)*CF.A(M.R(147.4),M.R(-40.7),M.R(-39)),Alpha)
  2128.             RS.C0 = RS.C0:lerp(CF.N(1.5,0.5,0)*CF.A(M.R(0),M.R(0),M.R(11.6)),Alpha)
  2129.             NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0),M.R(37.7),M.R(0)),Alpha)
  2130.             swait()
  2131.         end
  2132.         NeutralAnims=true
  2133.         Attack=false
  2134.         legAnims=true
  2135.         WalkSpeed=8
  2136.     end
  2137. end
  2138.  
  2139. S.UserInputService.InputBegan:connect(function(io,gpe)
  2140.     if(gpe or Attack)then return end
  2141.     if(io.KeyCode==Enum.KeyCode.Q)then
  2142.         Dash()
  2143.     elseif(io.KeyCode==Enum.KeyCode.Z)then
  2144.         Yeet()
  2145.     elseif(io.KeyCode==Enum.KeyCode.X)then
  2146.         BloodExplosion()
  2147.     elseif(io.KeyCode==Enum.KeyCode.M)then
  2148.         Muted=not Muted
  2149.     end
  2150. end)
  2151.  
  2152. coroutine.wrap(function()
  2153.     while true do
  2154.         local h,p,n = CastRay(Root.Position,Root.Position-V3.N(0,1,0),4)
  2155.         local pos = CF.N(p)*CF.N(M.RNG(-10,10),10,M.RNG(-10,10))*CF.A(M.RRNG(-35,35),M.RRNG(-35,35),M.RRNG(-35,35))
  2156.         if(h)then
  2157.             Effect{
  2158.                 Lifetime=.75;
  2159.                 CFrame=pos;
  2160.                 EndPos=pos*CF.N(0,-25,0);
  2161.                 Transparency={1,-10};
  2162.                 Color=C3.N(M.RNG(25,50)/100,0,0);
  2163.                 Material=Enum.Material.ForceField;
  2164.                 Size=V3.N(1,1,1);
  2165.                 EndSize=V3.N(.5,15,.5);
  2166.                 Mesh={Type=Enum.MeshType.Sphere};
  2167.             }  
  2168.         end
  2169.         swait()
  2170.     end
  2171. end)()
  2172.  
  2173. local footstepSounds = {
  2174.     [Enum.Material.Grass]=510933218;
  2175.     [Enum.Material.Metal]=1263161138;
  2176.     [Enum.Material.CorrodedMetal]=1263161138;
  2177.     [Enum.Material.DiamondPlate]=1263161138;
  2178.     [Enum.Material.Wood]=2452053757;
  2179.     [Enum.Material.WoodPlanks]=2452053757;
  2180.     [Enum.Material.Sand]=134456884;
  2181.     [Enum.Material.Snow]=2452051182;
  2182. }
  2183.  
  2184. while true do
  2185.     swait()
  2186.     Sine = Sine + Change
  2187.     if(not Music or not Music.Parent)then
  2188.         local tp = (Music and Music.TimePosition)
  2189.         Music = Sound(Char,MusicID,1,10,true,false,true)
  2190.         Music.Name = 'Music'
  2191.         Music.TimePosition = tp
  2192.     end
  2193.     Music.SoundId = "rbxassetid://"..MusicID
  2194.     Music.Parent = Torso
  2195.     Music.Pitch = 1
  2196.     Music.Volume = math.clamp((Muted and Music.Volume-.1 or Music.Volume+.1),0,3)
  2197.    
  2198.     if(God)then
  2199.         Hum.MaxHealth = 1e100
  2200.         Hum.Health = 1e100
  2201.         if(not Char:FindFirstChildOfClass'ForceField')then IN("ForceField",Char).Visible = false end
  2202.         Hum.Name = M.RNG()*100
  2203.     end
  2204.     local lhit,lpos = workspace:FindPartOnRayWithIgnoreList(Ray.new(LLeg.CFrame.p,((CFrame.new(LLeg.Position,LLeg.Position - Vector3.new(0,1,0))).lookVector).unit * (2)), {Effects,Char})
  2205.     local rhit,rpos = workspace:FindPartOnRayWithIgnoreList(Ray.new(RLeg.CFrame.p,((CFrame.new(RLeg.Position,RLeg.Position - Vector3.new(0,1,0))).lookVector).unit * (2)), {Effects,Char})
  2206.  
  2207.     local hitfloor,posfloor = workspace:FindPartOnRay(Ray.new(Root.CFrame.p,((CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector).unit * (4*PlayerSize)), Char)
  2208.    
  2209.     local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
  2210.     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 "Walk" or hitfloor and "Idle")
  2211.     if(not Effects or not Effects.Parent)then
  2212.         Effects = IN("Model",Char)
  2213.         Effects.Name = "Effects"
  2214.     end                                                                                                                                                                                                                                                                                                                                                                                                            
  2215.     Hum.WalkSpeed = WalkSpeed
  2216.     if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
  2217.     if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
  2218.     local sidevec = math.clamp((Root.Velocity*Root.CFrame.rightVector).X+(Root.Velocity*Root.CFrame.rightVector).Z,-Hum.WalkSpeed,Hum.WalkSpeed)
  2219.     local forwardvec =  math.clamp((Root.Velocity*Root.CFrame.lookVector).X+(Root.Velocity*Root.CFrame.lookVector).Z,-Hum.WalkSpeed,Hum.WalkSpeed)
  2220.     local sidevelocity = sidevec/Hum.WalkSpeed
  2221.     local forwardvelocity = forwardvec/Hum.WalkSpeed
  2222.     local wsVal = 6
  2223.     local movement = 4
  2224.     if(legAnims)then
  2225.         if(State=='Walk')then
  2226.             local Alpha = .22
  2227.             Change=.5
  2228.             LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-movement/10*M.C(Sine/wsVal)/2-Change/4*M.C(Sine/(wsVal/2)),(-.3+movement/15*M.C(Sine/wsVal))*(.5+.5*forwardvelocity))*CF.A((M.R(-5*forwardvelocity+Change*5-movement*M.C(Sine/wsVal))+-(movement/8)*M.S(Sine/wsVal))*forwardvelocity,0,(M.R(Change*5-movement*M.C(Sine/wsVal))+-(movement/10)*M.S(Sine/wsVal))*(sidevec/(Hum.WalkSpeed*2))),Alpha)
  2229.             RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+movement/10*M.C(Sine/wsVal)/2-Change/4*M.C(Sine/(wsVal/2)),(-.3-movement/15*M.C(Sine/wsVal))*(.5+.5*forwardvelocity))*CF.A((M.R(-5*forwardvelocity+Change*5+movement*M.C(Sine/wsVal))+(movement/8)*M.S(Sine/wsVal))*forwardvelocity,0,(M.R(Change*5+movement*M.C(Sine/wsVal))+(movement/10)*M.S(Sine/wsVal))*(sidevec/(Hum.WalkSpeed*2))),Alpha)
  2230.             local footstepIds = {141491460,141491460}
  2231.             if(lhit and lhit.CanCollide and footstepSounds[lhit.Material])then
  2232.                 if(lhit.Material==Enum.Material.Sand and lhit.Color.r*255>=160 and lhit.Color.g*255>=160 and lhit.Color.b*255>=160)then
  2233.                     footstepIds[1] = footstepSounds[Enum.Material.Snow]
  2234.                 else
  2235.                     footstepIds[1] = footstepSounds[lhit.Material]
  2236.                 end
  2237.             end
  2238.            
  2239.             if(rhit and rhit.CanCollide and footstepSounds[rhit.Material])then
  2240.                 if(rhit.Material==Enum.Material.Sand and rhit.Color.r*255>=160 and rhit.Color.g*255>=160 and rhit.Color.b*255>=160)then
  2241.                     footstepIds[2] = footstepSounds[Enum.Material.Snow]
  2242.                 else
  2243.                     footstepIds[2] = footstepSounds[rhit.Material]
  2244.                 end
  2245.             end
  2246.            
  2247.             if(M.C(Sine/wsVal)/2>=.2 and footsound==0 and lhit)then
  2248.                 local step = Part(Effects,lhit.Color,lhit.Material,V3.N(1,.1,1),CF.N(lpos),true,false)
  2249.                 step.Transparency=(footstepIds[1]==footstepSounds[Enum.Material.Snow] and 0 or 1)
  2250.                 local snd = Sound(step,footstepIds[1],M.RNG(80,100)/100,10,false,true,true)
  2251.                 footsound=1
  2252.                 S.Debris:AddItem(step,snd.TimeLength+2)
  2253.             elseif(M.C(Sine/wsVal)/2<=-.2 and footsound==1 and rhit)then
  2254.                 local step = Part(Effects,rhit.Color,rhit.Material,V3.N(1,.1,1),CF.N(rpos),true,false)
  2255.                 step.Transparency=(footstepIds[2]==footstepSounds[Enum.Material.Snow] and 0 or 1)
  2256.                 local snd = Sound(step,footstepIds[2],M.RNG(80,100)/100,10,false,true,true)
  2257.                 footsound=0
  2258.                 S.Debris:AddItem(step,snd.TimeLength+2)
  2259.             end
  2260.         elseif(State=='Idle')then
  2261.             Change=1
  2262.             local Alpha = .1
  2263.             if(NeutralAnims)then
  2264.                 LH.C0 = LH.C0:lerp(CF.N(-0.6,-1-.05*M.C(Sine/48),0)*CF.A(M.R(12.8-2.5*M.C(Sine/48)),M.R(-3),M.R(-4.2)),Alpha)
  2265.                 RH.C0 = RH.C0:lerp(CF.N(0.5,-1-.05*M.C(Sine/48),0)*CF.A(M.R(12.8-2.5*M.C(Sine/48)),M.R(3),M.R(5)),Alpha)
  2266.             else
  2267.                 LH.C0 = LH.C0:lerp(CF.N(-0.6,-1,-0.1)*CF.A(M.R(0),M.R(0),M.R(-4.6)),Alpha)
  2268.                 RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(0),M.R(5)),Alpha)
  2269.             end
  2270.         elseif(State=='Jump' or State=='Fall')then
  2271.             local Alpha = .1
  2272.             LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
  2273.             RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
  2274.         end
  2275.     end
  2276.     if(NeutralAnims)then   
  2277.         if(State == 'Idle')then
  2278.             local Alpha = .1
  2279.             RJ.C0 = RJ.C0:lerp(CF.N(0,0+.05*M.C(Sine/48),0)*CF.A(M.R(-12.8+2.5*M.C(Sine/48)),M.R(0),M.R(0)),Alpha)
  2280.             LS.C0 = LS.C0:lerp(CF.N(-1.2,0.3+.1*M.S(Sine/48),-0.1+.1*M.S(Sine/48))*CF.A(M.R(5.2+2*M.S(Sine/42)),M.R(0),M.R(15-3*M.S(Sine/48))),Alpha)
  2281.             RS.C0 = RS.C0:lerp(CF.N(1.2,0.3+.1*M.S(Sine/48),-0.1+.1*M.S(Sine/48))*CF.A(M.R(5.2+2*M.S(Sine/42)),M.R(0),M.R(-15+3*M.S(Sine/48))),Alpha)
  2282.             if(M.RNG(1,25)==1)then
  2283.                 NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(12.8+1.5*M.S(Sine/48)+M.RNG(-25,25)),M.RRNG(-25,25),M.RRNG(-25,25)),1)
  2284.             else
  2285.                 NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(12.8+1.5*M.S(Sine/48)),M.R(0),M.R(0)),Alpha)
  2286.             end
  2287.         elseif(State == 'Walk')then
  2288.             local Alpha = .22
  2289.             RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,0+Change/4*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-(Change*20)-movement/20*M.C(Sine/(wsVal/2)))*forwardvelocity,M.R(0+5*M.C(Sine/wsVal)),M.R(-(Change*20)-movement/20*M.C(Sine/(wsVal/2)))*sidevelocity+M.R(0-1*M.C(Sine/wsVal))),Alpha)
  2290.             NK.C0 = NK.C0:lerp(NKC0,Alpha)
  2291.             LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0-.1*(movement/6)*M.S(Sine/wsVal))*CF.A(M.R(0+55*(movement/6)*M.S(Sine/wsVal))*forwardvelocity,0,M.R(-5-5*M.C(Sine/wsVal))),Alpha)
  2292.             RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0+.1*(movement/6)*M.S(Sine/wsVal))*CF.A(M.R(0-55*(movement/6)*M.S(Sine/wsVal))*forwardvelocity,0,M.R(5+5*M.C(Sine/wsVal))),Alpha)
  2293.         elseif(State == 'Jump')then
  2294.             local Alpha = .1
  2295.             local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
  2296.             LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)),Alpha)
  2297.             RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)),Alpha)
  2298.             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)
  2299.             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)
  2300.         elseif(State == 'Fall')then
  2301.             local Alpha = .1
  2302.             local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
  2303.             LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
  2304.             RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
  2305.             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)
  2306.             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)
  2307.         elseif(State == 'Paralyzed')then
  2308.             -- paralyzed
  2309.         elseif(State == 'Sit')then
  2310.             -- sit
  2311.         end
  2312.     end
  2313.  
  2314.     for i,v in next, BloodPuddles do
  2315.         local mesh = i:FindFirstChild'CylinderMesh'
  2316.         BloodPuddles[i] = v + 1
  2317.         if(not mesh or mesh.Scale.X<=0)then
  2318.             i:destroy()
  2319.             BloodPuddles[i] = nil
  2320.         else
  2321.             if(mesh.Scale.Z > 0)then
  2322.                 mesh.Scale = mesh.Scale-V3.N(.005,0,.005)
  2323.             end
  2324.         end
  2325.     end
  2326. 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