SHARE
TWEET

Untitled

doryna2281337 Aug 14th, 2019 64 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  3. do
  4.     print("FE Compatibility code by Mokiros")
  5.     script.Parent = Player.Character
  6.  
  7.     --RemoteEvent for communicating
  8.     local Event = Instance.new("RemoteEvent")
  9.     Event.Name = "UserInput_Event"
  10.  
  11.     --Fake event to make stuff like Mouse.KeyDown work
  12.     local function fakeEvent()
  13.         local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  14.         t.connect = t.Connect
  15.         return t
  16.     end
  17.  
  18.     --Creating fake input objects with fake variables
  19.     local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  20.     local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  21.     local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  22.         CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  23.     end}
  24.     --Merged 2 functions into one by checking amount of arguments
  25.     CAS.UnbindAction = CAS.BindAction
  26.  
  27.     --This function will trigger the events that have been :Connect()'ed
  28.     local function te(self,ev,...)
  29.         local t = m[ev]
  30.         if t and t._fakeEvent and t.Function then
  31.             t.Function(...)
  32.         end
  33.     end
  34.     m.TrigEvent = te
  35.     UIS.TrigEvent = te
  36.  
  37.     Event.OnServerEvent:Connect(function(plr,io)
  38.         if plr~=Player then return end
  39.         if io.isMouse then
  40.             m.Target = io.Target
  41.             m.Hit = io.Hit
  42.         else
  43.             local b = io.UserInputState == Enum.UserInputState.Begin
  44.             if io.UserInputType == Enum.UserInputType.MouseButton1 then
  45.                 return m:TrigEvent(b and "Button1Down" or "Button1Up")
  46.             end
  47.             for _,t in pairs(CAS.Actions) do
  48.                 for _,k in pairs(t.Keys) do
  49.                     if k==io.KeyCode then
  50.                         t.Function(t.Name,io.UserInputState,io)
  51.                     end
  52.                 end
  53.             end
  54.             m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  55.             UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  56.         end
  57.     end)
  58.     Event.Parent = NLS([==[
  59.     local Player = game:GetService("Players").LocalPlayer
  60.     local Event = script:WaitForChild("UserInput_Event")
  61.  
  62.     local UIS = game:GetService("UserInputService")
  63.     local input = function(io,a)
  64.         if a then return end
  65.         --Since InputObject is a client-side instance, we create and pass table instead
  66.         Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  67.     end
  68.     UIS.InputBegan:Connect(input)
  69.     UIS.InputEnded:Connect(input)
  70.  
  71.     local Mouse = Player:GetMouse()
  72.     local h,t
  73.     --Give the server mouse data 30 times every second, but only if the values changed
  74.     --If player is not moving their mouse, client won't fire events
  75.     while wait(1/30) do
  76.         if h~=Mouse.Hit or t~=Mouse.Target then
  77.             h,t=Mouse.Hit,Mouse.Target
  78.             Event:FireServer({isMouse=true,Target=t,Hit=h})
  79.         end
  80.     end]==],Player.Character)
  81.     Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  82. end
  83. wait(1/60)
  84.  
  85. warn([[
  86.     BOW MASTER/NEBULA'S BOW
  87.         This was based on Quincy from BTD 6
  88.    
  89.     MOVES:
  90.         MB1 - Basic shot
  91.         Z - Arrow Storm
  92.         X - Hyper Speed
  93.         ; - EXPERIMENTAL; Arrow penetration (Goes through multiple people for collaterals, etc)
  94. ]])
  95.  
  96. --// Shortcut Variables \\--
  97. local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
  98. local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
  99. 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}
  100. local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
  101. 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}
  102. local R3 = {N=Region3.new}
  103. local De = S.Debris
  104. local WS = workspace
  105. local Lght = S.Lighting
  106. local RepS = S.ReplicatedStorage
  107. local IN = Instance.new
  108. local Plrs = S.Players
  109.  
  110. --// Initializing \\--
  111. local Plr = owner
  112. local Char = Plr.Character
  113. local Hum = Char:FindFirstChildOfClass'Humanoid'
  114. local RArm = Char["Right Arm"]
  115. local LArm = Char["Left Arm"]
  116. local RLeg = Char["Right Leg"]
  117. local LLeg = Char["Left Leg"]  
  118. local Root = Char:FindFirstChild'HumanoidRootPart'
  119. local Torso = Char.Torso
  120. local Head = Char.Head
  121. local NeutralAnims = true
  122. local Attack = false
  123. local Debounces = {Debounces={}}
  124. local Hit = {}
  125. local Sine = 0
  126. local Change = 1
  127. local BloodPuddles = {}
  128. local HyperCum = false
  129. local ClimaxFading = false
  130.  
  131. local Effects = IN("Folder",Char)
  132. Effects.Name = "Effects"
  133.  
  134.  
  135. --// Debounce System \\--
  136.  
  137.  
  138. function Debounces:New(name,cooldown)
  139.     local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
  140.     setmetatable(aaaaa,{__index = Debounces})
  141.     Debounces.Debounces[name] = aaaaa
  142.     return aaaaa
  143. end
  144.  
  145. function Debounces:Use(overrideUsable)
  146.     assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
  147.     if(self.Usable or overrideUsable)then
  148.         self.Usable = false
  149.         self.CoolingDown = true
  150.         local LastUse = time()
  151.         self.LastUse = LastUse
  152.         delay(self.Cooldown or 2,function()
  153.             if(self.LastUse == LastUse)then
  154.                 self.CoolingDown = false
  155.                 self.Usable = true
  156.             end
  157.         end)
  158.     end
  159. end
  160.  
  161. function Debounces:Get(name)
  162.     assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
  163.     for i,v in next, Debounces.Debounces do
  164.         if(i == name)then
  165.             return v;
  166.         end
  167.     end
  168. end
  169.  
  170. function Debounces:GetProgressPercentage()
  171.     assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
  172.     if(self.CoolingDown and not self.Usable)then
  173.         return math.max(
  174.             math.floor(
  175.                 (
  176.                     (time()-self.LastUse)/self.Cooldown or 2
  177.                 )*100
  178.             )
  179.         )
  180.     else
  181.         return 100
  182.     end
  183. end
  184.  
  185. --// Instance Creation Functions \\--
  186. local baseSound = IN("Sound")
  187. function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
  188.     local Sound = baseSound:Clone()
  189.     Sound.SoundId = "rbxassetid://".. tostring(id or 0)
  190.     Sound.Pitch = pitch or 1
  191.     Sound.Volume = volume or 1
  192.     Sound.Looped = looped or false
  193.     if(autoPlay)then
  194.         coroutine.wrap(function()
  195.             repeat wait() until Sound.IsLoaded
  196.             Sound.Playing = autoPlay or false
  197.         end)()
  198.     end
  199.     if(not looped and effect)then
  200.         Sound.Stopped:connect(function()
  201.             Sound.Volume = 0
  202.             Sound:destroy()
  203.         end)
  204.     elseif(effect)then
  205.         warn("Sound can't be looped and a sound effect!")
  206.     end
  207.     Sound.Parent =parent or Torso
  208.     return Sound
  209. end
  210. function Part(parent,color,material,size,cframe,anchored,cancollide)
  211.     local part = IN("Part")
  212.     part.Parent = parent or Char
  213.     part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
  214.     part.Material = material or Enum.Material.SmoothPlastic
  215.     part.TopSurface,part.BottomSurface=10,10
  216.     part.Size = size or V3.N(1,1,1)
  217.     part.CFrame = cframe or CF.N(0,0,0)
  218.     part.CanCollide = cancollide or false
  219.     part.Anchored = anchored or false
  220.     return part
  221. end
  222.  
  223. function Weld(part0,part1,c0,c1)
  224.     local weld = IN("Weld")
  225.     weld.Parent = part0
  226.     weld.Part0 = part0
  227.     weld.Part1 = part1
  228.     weld.C0 = c0 or CF.N()
  229.     weld.C1 = c1 or CF.N()
  230.     return weld
  231. end
  232.  
  233. function Mesh(parent,meshtype,meshid,textid,scale,offset)
  234.     local part = IN("SpecialMesh")
  235.     part.MeshId = meshid or ""
  236.     part.TextureId = textid or ""
  237.     part.Scale = scale or V3.N(1,1,1)
  238.     part.Offset = offset or V3.N(0,0,0)
  239.     part.MeshType = meshtype or Enum.MeshType.Sphere
  240.     part.Parent = parent
  241.     return part
  242. end
  243.  
  244. NewInstance = function(instance,parent,properties)
  245.     local inst = Instance.new(instance)
  246.     inst.Parent = parent
  247.     if(properties)then
  248.         for i,v in next, properties do
  249.             pcall(function() inst[i] = v end)
  250.         end
  251.     end
  252.     return inst;
  253. end
  254.  
  255. function Clone(instance,parent,properties)
  256.     local inst = instance:Clone()
  257.     inst.Parent = parent
  258.     if(properties)then
  259.         for i,v in next, properties do
  260.             pcall(function() inst[i] = v end)
  261.         end
  262.     end
  263.     return inst;
  264. end
  265.  
  266. function SoundPart(id,pitch,volume,looped,effect,autoPlay,cf)
  267.     local soundPart = NewInstance("Part",Effects,{Transparency=1,CFrame=cf or Torso.CFrame,Anchored=true,CanCollide=false,Size=V3.N()})
  268.     local Sound = IN("Sound")
  269.     Sound.SoundId = "rbxassetid://".. tostring(id or 0)
  270.     Sound.Pitch = pitch or 1
  271.     Sound.Volume = volume or 1
  272.     Sound.Looped = looped or false
  273.     if(autoPlay)then
  274.         coroutine.wrap(function()
  275.             repeat wait() until Sound.IsLoaded
  276.             Sound.Playing = autoPlay or false
  277.         end)()
  278.     end
  279.     if(not looped and effect)then
  280.         Sound.Stopped:connect(function()
  281.             Sound.Volume = 0
  282.             soundPart:destroy()
  283.         end)
  284.     elseif(effect)then
  285.         warn("Sound can't be looped and a sound effect!")
  286.     end
  287.     Sound.Parent = soundPart
  288.     return Sound
  289. end
  290.  
  291.  
  292. --// Extended ROBLOX tables \\--
  293. 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})
  294. --// Require stuff \\--
  295. function CamShake(who,times,intense,origin)
  296.     coroutine.wrap(function()
  297.         if(script:FindFirstChild'CamShake')then
  298.             local cam = script.CamShake:Clone()
  299.             cam:WaitForChild'intensity'.Value = intense
  300.             cam:WaitForChild'times'.Value = times
  301.            
  302.             if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
  303.             cam.Parent = who
  304.             wait()
  305.             cam.Disabled = false
  306.         elseif(who == Plr or who == Char or who:IsDescendantOf(Plr))then
  307.             local intensity = intense
  308.             if(Hum and not Hum:FindFirstChild'CamShaking')then
  309.                 local cam = workspace.CurrentCamera
  310.                 local oCO = Hum.CameraOffset
  311.                 local cs = Instance.new("BoolValue",Hum)
  312.                 cs.Name = "CamShaking"
  313.                 for i = 1, times do
  314.                     local camDistFromOrigin
  315.                     if(typeof(origin) == 'Instance' and origin:IsA'BasePart')then
  316.                         camDistFromOrigin = math.floor( (cam.CoordinateFrame.p-origin.Position).magnitude )/25
  317.                     elseif(typeof(origin) == 'Vector3')then
  318.                         camDistFromOrigin = math.floor( (cam.CoordinateFrame.p-origin).magnitude )/25
  319.                     end
  320.                     if(camDistFromOrigin)then
  321.                         intensity = math.min(intense, math.floor(intense/camDistFromOrigin))
  322.                     end
  323.                     --cam.CoordinateFrame = cam.CoordinateFrame*CFrame.fromEulerAnglesXYZ(math.random(-intensity,intensity)/200,math.random(-intensity,intensity)/200,math.random(-intensity,intensity)/200)
  324.                     if(Hum)then
  325.                         Hum.CameraOffset = Vector3.new(math.random(-intensity,intensity)/200,math.random(-intensity,intensity)/200,math.random(-intensity,intensity)/200)
  326.                     end
  327.                     swait()
  328.                 end
  329.                 if(Hum)then
  330.                     Hum.CameraOffset = oCO
  331.                 end
  332.                 cs:destroy()
  333.             end
  334.         end
  335.     end)()
  336. end
  337.  
  338.  
  339. function CamShakeAll(times,intense,origin)
  340.     for _,v in next, Plrs:players() do
  341.         CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character,times,intense,origin)
  342.     end
  343. end
  344.  
  345. function ServerScript(code)
  346.     if(script:FindFirstChild'Loadstring')then
  347.         local load = script.Loadstring:Clone()
  348.         load:WaitForChild'Sauce'.Value = code
  349.         load.Disabled = false
  350.         load.Parent = workspace
  351.     elseif(NS and typeof(NS) == 'function')then
  352.         NS(code,workspace)
  353.     else
  354.         warn("no serverscripts lol")
  355.     end
  356. end
  357.  
  358. function LocalOnPlayer(who,code)
  359.     ServerScript([[
  360.         wait()
  361.         script.Parent=nil
  362.         if(not _G.Http)then _G.Http = game:service'HttpService' end
  363.        
  364.         local Http = _G.Http or game:service'HttpService'
  365.        
  366.         local source = ]].."[["..code.."]]"..[[
  367.         local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
  368.         local asd = Http:PostAsync(link,source)
  369.         repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
  370.         local ID = Http:JSONDecode(asd).Result.Require_ID
  371.         local vs = require(ID).VORTH_SCRIPT
  372.         vs.Parent = game:service'Players'.]]..who.Name..[[.Character
  373.     ]])
  374. end
  375.  
  376. function Nametag(color,tag)
  377.     local r,g,b = C3.tRGB(color)
  378.     local c3 = C3.RGB(r/2,g/2,b/2)
  379.     local name = script:FindFirstChild'Nametag' and script.Nametag:Clone();
  380.     if(not name)then
  381.         name = NewInstance("BillboardGui",nil,{MaxDistance=150,AlwaysOnTop=true,Active=false,Size=UDim2.new(5,0,1,0),SizeOffset=Vector2.new(0,6)})
  382.         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,})
  383.         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,})
  384.     end
  385.     name.Title.Text = tag
  386.     name.Title.TextColor3 = color
  387.     name.Title.TextStrokeColor3 = c3
  388.    
  389.     name.PlayerName.Text = Plr.Name
  390.     name.PlayerName.TextColor3 = color
  391.     name.PlayerName.TextStrokeColor3 = c3
  392.    
  393.     name.Parent = Char
  394.     name.Adornee = Head
  395.     name.PlayerToHideFrom = Plr
  396.        
  397.     return name
  398. end
  399.  
  400. --// Customization \\--
  401.  
  402. local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
  403. local Remove_Hats = false
  404. local Remove_Clothing = false
  405. local PlayerSize = 1
  406. local DamageColor = BrickColor.new'Really red'
  407. local MusicID = 0
  408. local God = false
  409. local Muted = false
  410. local DoPenetration = false
  411. local WalkSpeed = 16
  412.  
  413. --// Weapon and GUI creation, and Character Customization \\--
  414.  
  415. --Part(parent,color,material,size,cframe,anchored,cancollide)
  416. local bow = Part(Char,BrickColor.new'Really black',Enum.Material.SmoothPlastic,V3.N(.2,4.5,1.5),CF.N(),false,false)
  417. Mesh(bow,Enum.MeshType.FileMesh,'rbxassetid://395019777','rbxassetid://395021644',V3.N(.75,.75,.75))
  418.  
  419. local dispArrow = Part(Char,BrickColor.new'Really black',Enum.Material.SmoothPlastic,V3.N(.2,.2,2.5),CF.N(),false,false)
  420. Mesh(dispArrow,Enum.MeshType.FileMesh,'rbxassetid://395019701','rbxassetid://395021644',V3.N(.75,.75,.75))
  421.  
  422. if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
  423. if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
  424.  
  425. if(PlayerSize ~= 1)then
  426.     for _,v in next, Char:GetDescendants() do
  427.         if(v:IsA'BasePart')then
  428.             v.Size = v.Size * PlayerSize
  429.         end
  430.     end
  431. end
  432.  
  433.  
  434. local Music = Sound(Char,MusicID,1,3,true,false,true)
  435. Music.Name = 'Music'
  436.  
  437. --// Stop animations \\--
  438. for _,v in next, Hum:GetPlayingAnimationTracks() do
  439.     v:Stop();
  440. end
  441.  
  442. pcall(game.Destroy,Char:FindFirstChild'Animate')
  443. pcall(game.Destroy,Hum:FindFirstChild'Animator')
  444.  
  445. --// Joints \\--
  446.  
  447. 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)})
  448. 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)})
  449. local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)})
  450. local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
  451. local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
  452. local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
  453. local HW = NewInstance('Weld',Char,{Part0=RArm,Part1=bow,C0=CF.N(0,-.5,0)*CF.A(M.R(-90),0,0)})
  454. local DAW = NewInstance('Weld',Char,{Part0=LArm,Part1=dispArrow,C0=CF.N(0,-1,0)})
  455.  
  456. local LSC0 = LS.C0
  457. local RSC0 = RS.C0
  458. local NKC0 = NK.C0
  459. local LHC0 = LH.C0
  460. local RHC0 = RH.C0
  461. local RJC0 = RJ.C0
  462. local HWC0 = HW.C0
  463. local DWC0 = DAW.C0
  464. --// Artificial HB \\--
  465.  
  466. local ArtificialHB = IN("BindableEvent", script)
  467. ArtificialHB.Name = "Heartbeat"
  468.  
  469. script:WaitForChild("Heartbeat")
  470.  
  471. local tf = 0
  472. local allowframeloss = false
  473. local tossremainder = false
  474. local lastframe = tick()
  475. local frame = 1/Frame_Speed
  476. ArtificialHB:Fire()
  477.  
  478. game:GetService("RunService").Heartbeat:connect(function(s, p)
  479.     tf = tf + s
  480.     if tf >= frame then
  481.         if allowframeloss then
  482.             script.Heartbeat:Fire()
  483.             lastframe = tick()
  484.         else
  485.             for i = 1, math.floor(tf / frame) do
  486.                 ArtificialHB:Fire()
  487.             end
  488.             lastframe = tick()
  489.         end
  490.         if tossremainder then
  491.             tf = 0
  492.         else
  493.             tf = tf - frame * math.floor(tf / frame)
  494.         end
  495.     end
  496. end)
  497.  
  498. function swait(num)
  499.     if num == 0 or num == nil then
  500.         ArtificialHB.Event:wait()
  501.     else
  502.         for i = 0, num do
  503.             ArtificialHB.Event:wait()
  504.         end
  505.     end
  506. end
  507.  
  508.  
  509. --// Effect Function(s) \\--
  510.  
  511. function NoobySphere(Lifetime,Speed,Type,Pos,StartSize,Inc,Color,Range,MeshId,Axis)
  512.     local fxP = Part(Effects,Color,Enum.Material.Neon,V3.N(1,1,1),Pos+Pos.lookVector*Range,true,false)
  513.     local fxM = Mesh(fxP,(MeshId and Enum.MeshType.FileMesh or Enum.MeshType.Sphere),(MeshId and "rbxassetid://"..MeshId or ""),"",StartSize,V3.N())
  514.     local Scale = 1
  515.     local speeder = Speed
  516.     if(Type == "Multiply")then
  517.         Scale = 1*Inc
  518.     elseif(Type == "Divide")then
  519.         Scale = 1/Inc
  520.     end
  521.     coroutine.wrap(function()
  522.         for i = 0,10/Lifetime,.1 do
  523.            
  524.             if(Type == "Multiply")then
  525.                 Scale = Scale - 0.01*Inc/Lifetime
  526.             elseif(Type == "Divide")then
  527.                 Scale = Scale - 0.01/Inc*Lifetime
  528.             end
  529.             speeder = speeder - 0.01*Speed*Lifetime
  530.             fxP.CFrame = fxP.CFrame + fxP.CFrame.lookVector*speeder*Lifetime
  531.             fxP.Transparency = fxP.Transparency + 0.01*Lifetime
  532.             if(Axis == 'x')then
  533.                 fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime, 0, 0)
  534.             elseif(Axis == 'y')then
  535.                 fxM.Scale = fxM.Scale + Vector3.new(0, Scale*Lifetime, 0)
  536.             elseif(Axis == 'z')then
  537.                 fxM.Scale = fxM.Scale + Vector3.new(0, 0, Scale*Lifetime)
  538.             elseif(Axis == 'xyz')then
  539.                 fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime,Scale*Lifetime,Scale*Lifetime)
  540.             elseif(Axis == 'yz')then
  541.                 fxM.Scale = fxM.Scale + Vector3.new(0,Scale*Lifetime,Scale*Lifetime)
  542.             elseif(Axis == 'xz')then
  543.                 fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime,0,Scale*Lifetime)
  544.             else
  545.                 fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime, Scale*Lifetime, 0)
  546.             end
  547.             if(fxP.Transparency >= 1)then break end
  548.             swait()
  549.         end
  550.         fxP:destroy()
  551.     end)()
  552.     return fxP
  553. end
  554.  
  555. function NoobySphere2(Lifetime,Type,Pos,StartSize,Inc,Color,MeshId)
  556.     local fxP = Part(Effects,Color,Enum.Material.Neon,V3.N(1,1,1),Pos,true,false)
  557.     local fxM = Mesh(fxP,(MeshId and Enum.MeshType.FileMesh or Enum.MeshType.Sphere),(MeshId and "rbxassetid://"..MeshId or ""),"",StartSize,V3.N())
  558.  
  559.     local Scale = 1
  560.     if(Type == "Multiply")then
  561.         Scale = 1*Inc
  562.     elseif(Type == "Divide")then
  563.         Scale = 1/Inc
  564.     end
  565.     coroutine.wrap(function()
  566.         for i = 0,10/Lifetime,.1 do
  567.  
  568.             if(Type == "Multiply")then
  569.                 Scale = Scale - 0.01*Inc/Lifetime
  570.             elseif(Type == "Divide")then
  571.                 Scale = Scale - 0.01/Inc*Lifetime
  572.             end
  573.             fxP.Transparency = fxP.Transparency + 0.01*Lifetime
  574.             fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime, Scale*Lifetime, Scale*Lifetime)
  575.             swait()
  576.         end
  577.         fxP:destroy()
  578.     end)()
  579. end
  580.  
  581. function NoobyBlock(Lifetime,Speed,Type,Pos,StartSize,Inc,Color,Range,Fade,MeshId)
  582.     local fxP = Part(Effects,Color,Enum.Material.Neon,V3.N(1,1,1),Pos+Pos.lookVector*Range,true,false)
  583.     local fxM = Mesh(fxP,(MeshId and Enum.MeshType.FileMesh or Enum.MeshType.Brick),(MeshId and "rbxassetid://"..MeshId or ""),"",StartSize,V3.N())
  584.     local Scale = 1
  585.     local speeder = Speed
  586.     if(Type == "Multiply")then
  587.         Scale = 1*Inc
  588.     elseif(Type == "Divide")then
  589.         Scale = 1/Inc
  590.     end
  591.     coroutine.wrap(function()
  592.         for i = 0,10/Lifetime,.1 do
  593.             if(Type == "Multiply")then
  594.                 Scale = Scale - 0.01*Inc/Lifetime
  595.             elseif(Type == "Divide")then
  596.                 Scale = Scale - 0.01/Inc*Lifetime
  597.             end
  598.             if(Fade)then
  599.                 fxP.Transparency = i/(10/Lifetime)
  600.             end
  601.             speeder = speeder - 0.01*Speed*Lifetime/10
  602.             fxP.CFrame = fxP.CFrame + fxP.CFrame.lookVector*speeder*Lifetime
  603.             fxM.Scale = fxM.Scale - Vector3.new(Scale*Lifetime, Scale*Lifetime, Scale*Lifetime)
  604.             swait()
  605.         end
  606.         fxP:destroy()
  607.     end)()
  608. end
  609.  
  610. function Bezier(startpos, pos2, pos3, endpos, t)
  611.     local A = startpos:lerp(pos2, t)
  612.     local B  = pos2:lerp(pos3, t)
  613.     local C = pos3:lerp(endpos, t)
  614.     local lerp1 = A:lerp(B, t)
  615.     local lerp2 = B:lerp(C, t)
  616.     local cubic = lerp1:lerp(lerp2, t)
  617.     return cubic
  618. end
  619. function Puddle(hit,pos,norm,data)
  620.     local material = data.Material or Enum.Material.SmoothPlastic
  621.     local color = data.Color or BrickColor.new'Crimson'
  622.     local size = data.Size or 1
  623.        
  624.     if(hit.Name ~= 'BloodPuddle')then
  625.         local Puddle = NewInstance('Part',workspace,{Material=material,BrickColor=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'})
  626.         local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
  627.         BloodPuddles[Puddle] = 0
  628.     else
  629.         local cyl = hit:FindFirstChild'CylinderMesh'
  630.         if(cyl)then
  631.             BloodPuddles[hit] = 0
  632.             cyl.Scale = cyl.Scale + V3.N(size,0,size)
  633.             hit.Transparency = 0
  634.         end
  635.     end
  636. end
  637.  
  638. function Droplet(data)
  639.     --ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
  640.     local Size = data.Size or 1
  641.     local Color = data.Color or BrickColor.new'Crimson'
  642.     local StudsPerFrame = data.Speed or 1
  643.     local Shape = data.Shape or 'Ball'
  644.     local Frames = (data.Frames or 160)+1
  645.     local Pos = data.Origin or Root.CFrame
  646.     local Direction = data.Direction or Root.CFrame.lookVector*100000
  647.     local Material = data.Material or Enum.Material.SmoothPlastic
  648.     local Drop = data.Drop or .05
  649.     local Ignorelist = data.Ignorelist or nil
  650.    
  651.     local Bullet = Part(Effects,Color,Material,V3.N(Size,Size,Size),Pos,true,false)
  652.     local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
  653.     if(Shape == 'Ball')then
  654.         BMesh.MeshType = Enum.MeshType.Sphere
  655.     elseif(Shape == 'Head')then
  656.         BMesh.MeshType = Enum.MeshType.Head
  657.     elseif(Shape == 'Cylinder')then
  658.         BMesh.MeshType = Enum.MeshType.Cylinder
  659.     end
  660.    
  661.     coroutine.wrap(function()
  662.         for i = 1, Frames do
  663.             Pos = Pos * CF.N(0,-(Drop*i),0)
  664.             local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Pos.p,Direction)*CF.N(0,0,-(StudsPerFrame*i)).p,StudsPerFrame)
  665.             if(hit and (not hit.Parent or not hit.Parent:FindFirstChildOfClass'Humanoid' and not hit.Parent:IsA'Accessory'))then
  666.                 Puddle(hit,pos,norm,data)
  667.                 break;
  668.             else
  669.                 Bullet.CFrame = CF.N(Pos.p,Direction)*CF.N(0,0,-(StudsPerFrame*i))
  670.             end
  671.             swait()
  672.         end
  673.         Bullet:destroy()
  674.     end)()
  675. end
  676.  
  677. function SphereFX(duration,color,scale,pos,endScale,increment)
  678.     return Effect{
  679.         Effect='ResizeAndFade',
  680.         Color=color,
  681.         Size=scale,
  682.         Mesh={MeshType=Enum.MeshType.Sphere},
  683.         CFrame=pos,
  684.         FXSettings={
  685.             EndSize=endScale,
  686.             EndIsIncrement=increment
  687.         }
  688.     }
  689. end
  690.  
  691. function BlastFX(duration,color,scale,pos,endScale,increment)
  692.     return Effect{
  693.         Effect='ResizeAndFade',
  694.         Color=color,
  695.         Size=scale,
  696.         Mesh={MeshType=Enum.MeshType.FileMesh,MeshId='rbxassetid://20329976'},
  697.         CFrame=pos,
  698.         FXSettings={
  699.             EndSize=endScale,
  700.             EndIsIncrement=increment
  701.         }
  702.     }
  703. end
  704.  
  705. function BlockFX(duration,color,scale,pos,endScale,increment)
  706.     return Effect{
  707.         Effect='ResizeAndFade',
  708.         Color=color,
  709.         Size=scale,
  710.         CFrame=pos,
  711.         FXSettings={
  712.             EndSize=endScale,
  713.             EndIsIncrement=increment
  714.         }
  715.     }
  716. end
  717.  
  718. function ShootBullet(data)
  719.     --ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
  720.     local Size = data.Size or V3.N(2,2,2)
  721.     local Color = data.Color or BrickColor.new'Crimson'
  722.     local StudsPerFrame = data.Speed or 10
  723.     local Shape = data.Shape or 'Ball'
  724.     local Frames = data.Frames or 160
  725.     local Pos = data.Origin or Torso.CFrame
  726.     local Direction = data.Direction or Mouse.Hit
  727.     local Material = data.Material or Enum.Material.Neon
  728.     local OnHit = data.HitFunction or function(hit,pos)
  729.         Effect{
  730.             Effect='ResizeAndFade',
  731.             Color=Color,
  732.             Size=V3.N(10,10,10),
  733.             Mesh={MeshType=Enum.MeshType.Sphere},
  734.             CFrame=CF.N(pos),
  735.             FXSettings={
  736.                 EndSize=V3.N(.05,.05,.05),
  737.                 EndIsIncrement=true
  738.             }
  739.         }
  740.         for i = 1, 5 do
  741.             local angles = CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
  742.             Effect{
  743.                 Effect='Fade',
  744.                 Frames=65,
  745.                 Size=V3.N(5,5,10),
  746.                 CFrame=CF.N(CF.N(pos)*angles*CF.N(0,0,-10).p,pos),
  747.                 Mesh = {MeshType=Enum.MeshType.Sphere},
  748.                 Material=Enum.Material.Neon,
  749.                 Color=Color,
  750.                 MoveDirection=CF.N(CF.N(pos)*angles*CF.N(0,0,-50).p,pos).p,
  751.             }  
  752.         end
  753.     end
  754.    
  755.     local Bullet = Part(Effects,Color,Material,Size,Pos,true,false)
  756.     local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
  757.     if(Shape == 'Ball')then
  758.         BMesh.MeshType = Enum.MeshType.Sphere
  759.     elseif(Shape == 'Head')then
  760.         BMesh.MeshType = Enum.MeshType.Head
  761.     elseif(Shape == 'Cylinder')then
  762.         BMesh.MeshType = Enum.MeshType.Cylinder
  763.     end
  764.    
  765.     coroutine.wrap(function()
  766.         for i = 1, Frames+1 do
  767.             local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame).p,StudsPerFrame)
  768.             if(hit)then
  769.                 OnHit(hit,pos,norm,dist)
  770.                 break;
  771.             else
  772.                 Bullet.CFrame = CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame)
  773.             end
  774.             swait()
  775.         end
  776.         Bullet:destroy()
  777.     end)()
  778.    
  779. end
  780.  
  781.  
  782. function weldBetween(a, b)
  783.     local weldd = Instance.new("ManualWeld")
  784.     weldd.Part0 = a
  785.     weldd.Part1 = b
  786.     weldd.C0 = CFrame.new()
  787.     weldd.C1 = b.CFrame:inverse() * a.CFrame
  788.     weldd.Parent = a
  789.     return weldd
  790. end
  791.  
  792.  
  793. function ShootArrow(data)
  794.     --ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
  795.     local Size = data.Size or V3.N(2,2,2)
  796.     local Color = data.Color or BrickColor.new'Crimson'
  797.     local StudsPerFrame = data.Speed or 10
  798.     local Shape = data.Shape or 'Ball'
  799.     local Frames = data.Frames or 160
  800.     local Pos = (data.Origin or Torso.CFrame)
  801.     local Direction = data.Direction or Mouse.Hit
  802.     local Material = data.Material or Enum.Material.Neon
  803.     local Penetration = data.Penetration or (DoPenetration and 5 or 0)
  804.     local OnHit = data.HitFunction or function(arrow,hit,pos,norm,dist,pen)
  805.        
  806.         local h = (hit and hit.Parent and hit.Parent:FindFirstChildOfClass'Humanoid') or (hit and hit.Parent and hit.Parent.Parent and hit.Parent.Parent:FindFirstChildOfClass'Humanoid')
  807.         if(h)then
  808.             local critChance = 5
  809.             local critMult = 2
  810.             if(hit.Name == 'Head')then
  811.                 critChance = 100
  812.                 critMult = 4
  813.             end
  814.             DealDamage{Who=h.Parent,MinDamage=25,MaxDamage=45,Crit={Chance=critChance,Multiplier=critMult}}
  815.            
  816.         end
  817.         if(pen < 1)then
  818.             arrow.Anchored = false
  819.             weldBetween(hit,arrow)
  820.         end
  821.     end
  822.    
  823.     local Bullet = Part(Char,Color,Material,dispArrow.Size,Pos,true,false)
  824.     Mesh(Bullet,Enum.MeshType.FileMesh,'rbxassetid://395019701','rbxassetid://395021644',V3.N(.75,.75,.75))
  825.    
  826.     local igrone = {Char,workspace.CurrentCamera}
  827.     --[[coroutine.wrap(function()
  828.         for i = 1, Frames+1 do
  829.             local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame).p,StudsPerFrame,igrone)
  830.             Bullet.CFrame = CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame)
  831.             if(hit and not hit.Parent:IsA'Accessory' and hit.Transparency < .99 and hit.Material ~= Enum.Material.Glass)then
  832.                 OnHit(Bullet,hit,pos,norm,dist)
  833.                 break;
  834.             elseif(hit)then
  835.                 if(hit.Material == Enum.Material.Glass)then
  836.                     hit:destroy()              
  837.                 else
  838.                     table.insert(igrone,hit)
  839.                 end
  840.                
  841.             end
  842.            
  843.             if(i >= Frames)then
  844.                 Bullet:destroy()
  845.                 break;
  846.             end
  847.             swait()
  848.         end
  849.        
  850.     end)()]]
  851.     coroutine.wrap(function()
  852.         while true do
  853.             local hit,pos,norm,dist = CastRay(Pos.p,Direction.p,2048,igrone)
  854.             Bullet.CFrame = CF.N(pos,pos+norm)*CF.A(M.R(180),0,0)
  855.             --local hitscan = Part(Effects,C3.N(1,1,1),Enum.Material.Neon,V3.N(.1,.1,dist),CF.N(Pos.p,pos+norm)*CF.N(0,0,-dist/2),true,false)
  856.             Effect{
  857.                 CFrame=CF.N(Pos.p,Bullet.CFrame.p)*CF.N(0,0,-dist/2)*CF.A(0,M.R(90),0),
  858.                 StartSize=V3.N(dist,.1,.1),
  859.                 EndSize=V3.N(dist,.1,.1),
  860.                 Mesh={Type=Enum.MeshType.Cylinder},
  861.                 Color=C3.N(1,1,1)
  862.             }
  863.             if(hit and not hit.Parent:IsA'Accessory' and hit.Transparency < .99 and hit.Material ~= Enum.Material.Glass)then
  864.                 OnHit(Bullet,hit,pos,norm,dist,Penetration)
  865.                 local h = (hit and hit.Parent and hit.Parent:FindFirstChildOfClass'Humanoid') or (hit and hit.Parent and hit.Parent.Parent and hit.Parent.Parent:FindFirstChildOfClass'Humanoid')
  866.                 if(not h or Penetration < 1)then
  867.                     break;
  868.                 else
  869.                     Penetration = Penetration - 1
  870.                     table.insert(igrone,h.Parent)
  871.                 end
  872.             elseif(hit)then
  873.                 if(hit.Material == Enum.Material.Glass)then
  874.                     hit:destroy()          
  875.                 else
  876.                     table.insert(igrone,hit)
  877.                 end
  878.                
  879.             end
  880.             swait()
  881.         end
  882.        
  883.         S.Debris:AddItem(Bullet,5)
  884.     end)()
  885.    
  886.    
  887. end
  888.  
  889. function Zap(data)
  890.     local sCF,eCF = data.StartCFrame,data.EndCFrame
  891.     assert(sCF,"You need a start CFrame!")
  892.     assert(eCF,"You need an end CFrame!")
  893.     local parts = data.PartCount or 15
  894.     local zapRot = data.ZapRotation or {-5,5}
  895.     local startThick = data.StartSize or 3;
  896.     local endThick = data.EndSize or startThick/2;
  897.     local color = data.Color or BrickColor.new'Electric blue'
  898.     local delay = data.Delay or 35
  899.     local delayInc = data.DelayInc or 0
  900.     local lastLightning;
  901.     local MagZ = (sCF.p - eCF.p).magnitude
  902.     local thick = startThick
  903.     local inc = (startThick/parts)-(endThick/parts)
  904.    
  905.     for i = 1, parts do
  906.         local pos = sCF.p
  907.         if(lastLightning)then
  908.             pos = lastLightning.CFrame*CF.N(0,0,MagZ/parts/2).p
  909.         end
  910.         delay = delay + delayInc
  911.         local zapPart = Part(Effects,color,Enum.Material.Neon,V3.N(thick,thick,MagZ/parts),CF.N(pos),true,false)
  912.         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)))
  913.         if(parts == i)then
  914.             local MagZ = (pos-eCF.p).magnitude
  915.             zapPart.Size = V3.N(endThick,endThick,MagZ)
  916.             zapPart.CFrame = CF.N(pos, eCF.p)*CF.N(0,0,-MagZ/2)
  917.             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)}}
  918.         else
  919.             zapPart.CFrame = CF.N(pos,posie)*CF.N(0,0,MagZ/parts/2)
  920.         end
  921.        
  922.         lastLightning = zapPart
  923.         Effect{Effect='Fade',Manual=zapPart,Frames=delay}
  924.        
  925.         thick=thick-inc
  926.        
  927.     end
  928. end
  929.  
  930. function Zap2(data)
  931.     local Color = data.Color or BrickColor.new'Electric blue'
  932.     local StartPos = data.Start or Torso.Position
  933.     local EndPos = data.End or Mouse.Hit.p
  934.     local SegLength = data.SegL or 2
  935.     local Thicc = data.Thickness or 0.5
  936.     local Fades = data.Fade or 45
  937.     local Parent = data.Parent or Effects
  938.     local MaxD = data.MaxDist or 200
  939.     local Branch = data.Branches or false
  940.     local Material = data.Material or Enum.Material.Neon
  941.     local Raycasts = data.Raycasts or false
  942.     local Offset = data.Offset or {0,360}
  943.     local AddMesh = (data.Mesh == nil and true or data.Mesh)
  944.     if((StartPos-EndPos).magnitude > MaxD)then
  945.         EndPos = CF.N(StartPos,EndPos)*CF.N(0,0,-MaxD).p
  946.     end
  947.     local hit,pos,norm,dist=nil,EndPos,nil,(StartPos-EndPos).magnitude
  948.     if(Raycasts)then
  949.         hit,pos,norm,dist = CastRay(StartPos,EndPos,MaxD)  
  950.     end
  951.     local segments = dist/SegLength
  952.     local model = IN("Model",Parent)
  953.     model.Name = 'Lightning'
  954.     local Last;
  955.     for i = 1, segments do
  956.         local size = (segments-i)/25
  957.         local prt = Part(model,Color,Material,V3.N(Thicc+size,SegLength,Thicc+size),CF.N(),true,false)
  958.         if(AddMesh)then IN("CylinderMesh",prt) end
  959.         if(Last and math.floor(segments) == i)then
  960.             local MagZ = (Last.CFrame*CF.N(0,-SegLength/2,0).p-EndPos).magnitude
  961.             prt.Size = V3.N(Thicc+size,MagZ,Thicc+size)
  962.             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) 
  963.         elseif(not Last)then
  964.             prt.CFrame = CF.N(StartPos,pos)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)   
  965.         else
  966.             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)
  967.         end
  968.         Last = prt
  969.         if(Branch)then
  970.             local choice = M.RNG(1,7+((segments-i)*2))
  971.             if(choice == 1)then
  972.                 local LastB;
  973.                 for i2 = 1,M.RNG(2,5) do
  974.                     local size2 = ((segments-i)/35)/i2
  975.                     local prt = Part(model,Color,Material,V3.N(Thicc+size2,SegLength,Thicc+size2),CF.N(),true,false)
  976.                     if(AddMesh)then IN("CylinderMesh",prt) end
  977.                     if(not LastB)then
  978.                         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)
  979.                     else
  980.                         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)
  981.                     end
  982.                     LastB = prt
  983.                 end
  984.             end
  985.         end
  986.     end
  987.     if(Fades > 0)then
  988.         coroutine.wrap(function()
  989.             for i = 1, Fades do
  990.                 for _,v in next, model:children() do
  991.                     if(v:IsA'BasePart')then
  992.                         v.Transparency = (i/Fades)
  993.                     end
  994.                 end
  995.                 swait()
  996.             end
  997.             model:destroy()
  998.         end)()
  999.     else
  1000.         S.Debris:AddItem(model,.01)
  1001.     end
  1002.     return {End=(Last and Last.CFrame*CF.N(0,-Last.Size.Y/2,0).p),Last=Last,Model=model}
  1003. end
  1004.  
  1005. function Tween(obj,props,time,easing,direction,repeats,backwards)
  1006.     local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
  1007.     local tween = S.TweenService:Create(obj, info, props)
  1008.    
  1009.     tween:Play()
  1010. end
  1011.  
  1012. function Effect(data)
  1013.     local Color = data.Color or C3.N(0,0,0)
  1014.     local Material = data.Material or Enum.Material.Neon;
  1015.     local MeshD = data.Mesh or {};
  1016.     local SoundD = data.Sound or nil;
  1017.     local Shape = data.Shape or Enum.PartType.Block;
  1018.     local Size = data.StartSize or V3.N(.1,.1,.1);
  1019.     local ESize = data.EndSize or V3.N(6,6,6);
  1020.     local Direction = data.Direction or nil;
  1021.     local Speed = data.Speed or .1; -- studs per second
  1022.     local Boomerang = data.Boomerang or {Enabled=false,SizeBoomerang=0,MoveBoomerang=0};
  1023.     local Pos = data.CFrame or Torso.CFrame;
  1024.     local Frames = data.Frames or 60;
  1025.     local RotInc = data.RotInc or {0,0,0}
  1026.     local StartTrans = data.TransStart or 0;
  1027.     local EndTrans = data.TransEnd or 1;
  1028.    
  1029.     if(typeof(RotInc) == 'number')then RotInc = {RotInc,RotInc,RotInc}; end
  1030.     local S,PM,P;
  1031.    
  1032.     coroutine.wrap(function()
  1033.         P = Part(Effects,Color,Material,V3.N(1,1,1),Pos,true,false)
  1034.        
  1035.         if(MeshD == "Blast")then
  1036.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://20329976','',Size,V3.N(0,0,-Size.X/8))
  1037.         elseif(MeshD == 'Ring')then
  1038.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://559831844','',Size,V3.N(0,0,0))
  1039.         elseif(MeshD == 'Slash1')then
  1040.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://662586858','',V3.N(Size.X/10,.001,Size.Z/10),V3.N(0,0,0))
  1041.         elseif(MeshD == 'Slash2')then
  1042.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://448386996','',V3.N(Size.X/1000,Size.Y/100,Size.Z/100),V3.N(0,0,0))
  1043.         elseif(MeshD == 'Slash3')then
  1044.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://4770583','',Size,V3.N(0,0,0))
  1045.         elseif(MeshD == 'Tornado1')then
  1046.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://443529437','',Size/10,V3.N(0,0,0))
  1047.         elseif(MeshD == 'Tornado2')then
  1048.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://168892432','',Size/4,V3.N(0,0,0))
  1049.         elseif(MeshD == 'Skull')then
  1050.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://4770583','',Size*2,V3.N(0,0,0))
  1051.         elseif(MeshD == 'Crystal')then
  1052.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://9756362','',Size,V3.N(0,0,0))
  1053.         elseif(MeshD == 'Cloud')then
  1054.             PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://1095708','',Size,V3.N(0,0,0))
  1055.         elseif(typeof(MeshD) == 'table')then
  1056.             local Type = MeshD.Type or Enum.MeshType.Brick
  1057.             local ID = MeshD.ID or '';
  1058.             local Tex = MeshD.Texture or '';
  1059.             local Offset = MeshD.Offset or V3.N(0,0,0)
  1060.             PM = Mesh(P,Type,ID,Tex,Size,Offset)
  1061.         else
  1062.             PM = Mesh(P,Enum.MeshType.Brick,'','',Size)
  1063.         end
  1064.        
  1065.         if(typeof(SoundD) == 'table')then
  1066.             local ID = SoundD.ID or '';
  1067.             local Pitch = SoundD.Pitch or 1;
  1068.             local Volume = SoundD.Volume or 1;
  1069.             S = Sound(P,ID,Pitch,Volume,false,true,true)
  1070.         elseif(typeof(SoundD) == 'string' or typeof(SoundD) == 'number')then
  1071.             S = Sound(P,SoundD,1,1,false,true,true)
  1072.         end
  1073.         local grow = (Size - ESize)
  1074.         local SizeBoomer = 1+Boomerang.SizeBoomerang/50
  1075.         local MoveBoomer = 1+Boomerang.MoveBoomerang/50
  1076.         if(Boomerang and Boomerang.Enabled)then
  1077.             grow = (Size - ESize)*(SizeBoomer+1)
  1078.         end
  1079.         local TransChange = StartTrans - EndTrans
  1080.         for i = 0, Frames do
  1081.             local MoveSpeed = -Speed
  1082.             local scaleGay = grow/Frames
  1083.             if(Boomerang and Boomerang.Enabled)then -- thanks shack
  1084.                 MoveSpeed = -(Speed)*((1-(i/Frames)*MoveBoomer))
  1085.                 scaleGay = (V3.N((grow.X)*((1 - (i/Frames)*SizeBoomer)),(grow.Y)*((1 - (i/Frames)*SizeBoomer)),(grow.Z)*((1 - (i/Frames)*SizeBoomer)))*SizeBoomer)/Frames
  1086.             end
  1087.             if(PM.MeshId == 'rbxassetid://20329976')then
  1088.                 PM.Offset = V3.N(0,0,-PM.Scale.Z/8)
  1089.             elseif(PM.MeshId == 'rbxassetid://4770583')then
  1090.                 scaleGay = scaleGay*2
  1091.             elseif(PM.MeshId == 'rbxassetid://168892432')then
  1092.                 scaleGay = scaleGay/4
  1093.             elseif(PM.MeshId == 'rbxassetid://443529437')then
  1094.                 scaleGay = scaleGay/10
  1095.             elseif(PM.MeshId == 'rbxassetid://443529437')then
  1096.                 scaleGay = scaleGay/10
  1097.             end
  1098.             PM.Scale = PM.Scale - scaleGay
  1099.             P.Transparency = P.Transparency - TransChange/Frames
  1100.             if(RotInc == 'random')then
  1101.                 P.CFrame=P.CFrame*CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
  1102.             elseif(typeof(RotInc) == 'table')then
  1103.                 P.CFrame=P.CFrame*CF.A(unpack(RotInc))
  1104.             end
  1105.            
  1106.            
  1107.             if(Direction and Speed)then
  1108.                 local Orientation = P.Orientation
  1109.                 P.CFrame = CF.N(P.Position,P.Position+Direction)*CF.N(0,0,MoveSpeed)
  1110.                 P.Orientation = Orientation
  1111.             end
  1112.             swait()
  1113.         end
  1114.  
  1115.         P.Transparency = 1
  1116.         if(S and S.Playing)then
  1117.             repeat swait() until not S.Parent or not S.Playing
  1118.         end
  1119.         if(S and S.Parent)then
  1120.             S:destroy()
  1121.         end
  1122.     end)()
  1123.    
  1124.    
  1125. end
  1126.  
  1127. function SoulSteal(whom)
  1128.     local torso = (whom:FindFirstChild'Head' or whom:FindFirstChild'Torso' or whom:FindFirstChild'UpperTorso' or whom:FindFirstChild'LowerTorso' or whom:FindFirstChild'HumanoidRootPart')
  1129.     print(torso)
  1130.     if(torso and torso:IsA'BasePart')then
  1131.         local Model = Instance.new("Model",Effects)
  1132.         Model.Name = whom.Name.."'s Soul"
  1133.         whom:BreakJoints()
  1134.         local Soul = Part(Model,BrickColor.new'Really red','Glass',V3.N(.5,.5,.5),torso.CFrame,true,false)
  1135.         Soul.Name = 'Head'
  1136.         NewInstance("Humanoid",Model,{Health=0,MaxHealth=0})
  1137.         Effect{
  1138.             Effect="Arc",
  1139.             Manual = Soul,
  1140.             FXSettings={
  1141.                 Start=torso.CFrame,
  1142.                 Home = Torso,
  1143.                 RemoveOnGoal = true,
  1144.             }
  1145.         }
  1146.         local lastPoint = Soul.CFrame.p
  1147.    
  1148.         for i = 0, 1, 0.01 do
  1149.                 local point = CFrame.new(lastPoint, Soul.Position) * CFrame.Angles(-math.pi/2, 0, 0)
  1150.                 local mag = (lastPoint - Soul.Position).magnitude
  1151.                 Effect{
  1152.                     Effect = "Fade",
  1153.                     CFrame = point * CF.N(0, mag/2, 0),
  1154.                     Size = V3.N(.5,mag+.5,.5),
  1155.                     Color = Soul.BrickColor
  1156.                 }
  1157.                 lastPoint = Soul.CFrame.p
  1158.             swait()
  1159.         end
  1160.         for i = 1, 5 do
  1161.             Effect{
  1162.                 Effect="Fade",
  1163.                 Color = BrickColor.new'Really red',
  1164.                 MoveDirection = (Torso.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p
  1165.             }  
  1166.         end
  1167.     end
  1168. end
  1169.  
  1170. --// Other Functions \\ --
  1171.  
  1172. function CastRay(startPos,endPos,range,ignoreList)
  1173.     local ray = Ray.new(startPos,(endPos-startPos).unit*range)
  1174.     local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
  1175.     return part,pos,norm,(pos and (startPos-pos).magnitude)
  1176. end
  1177.  
  1178. function getRegion(point,range,ignore)
  1179.     return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
  1180. end
  1181.  
  1182. function clerp(startCF,endCF,alpha)
  1183.     return startCF:lerp(endCF, alpha)
  1184. end
  1185.  
  1186. function GetTorso(char)
  1187.     return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
  1188. end
  1189.  
  1190.  
  1191. function ShowDamage(Pos, Text, Time, Color)
  1192.     coroutine.wrap(function()
  1193.     local Rate = (1 / Frame_Speed)
  1194.     local Pos = (Pos or Vector3.new(0, 0, 0))
  1195.     local Text = (Text or "")
  1196.     local Time = (Time or 2)
  1197.     local Color = (Color or Color3.new(1, 0, 1))
  1198.     local EffectPart = NewInstance("Part",Effects,{
  1199.         Material=Enum.Material.SmoothPlastic,
  1200.         Reflectance = 0,
  1201.         Transparency = 1,
  1202.         BrickColor = BrickColor.new(Color),
  1203.         Name = "Effect",
  1204.         Size = Vector3.new(0,0,0),
  1205.         Anchored = true,
  1206.         CFrame = CF.N(Pos)
  1207.     })
  1208.     local BillboardGui = NewInstance("BillboardGui",EffectPart,{
  1209.         Size = UDim2.new(1.25, 0, 1.25, 0),
  1210.         Adornee = EffectPart,
  1211.     })
  1212.     local TextLabel = NewInstance("TextLabel",BillboardGui,{
  1213.         BackgroundTransparency = 1,
  1214.         Size = UDim2.new(1, 0, 1, 0),
  1215.         Text = Text,
  1216.         Font = "Bodoni",
  1217.         TextColor3 = Color,
  1218.         TextStrokeColor3 = Color3.new(0,0,0),
  1219.         TextStrokeTransparency=0,
  1220.         TextScaled = true,
  1221.     })
  1222.     S.Debris:AddItem(EffectPart, (Time))
  1223.     EffectPart.Parent = workspace
  1224.     delay(0, function()
  1225.         Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out)
  1226.         local Frames = (Time / Rate)
  1227.         for Frame = 1, Frames do
  1228.             swait()
  1229.             local Percent = (Frame / Frames)
  1230.             TextLabel.TextTransparency = Percent
  1231.             TextLabel.TextStrokeTransparency = Percent
  1232.         end
  1233.         if EffectPart and EffectPart.Parent then
  1234.             EffectPart:Destroy()
  1235.         end
  1236.     end) end)()
  1237. end
  1238.  
  1239. function DealDamage(data)
  1240.     local Who = data.Who;
  1241.     local MinDam = data.MinimumDamage or 15;
  1242.     local MaxDam = data.MaximumDamage or 30;
  1243.     local MaxHP = data.MaxHP or 1e5;
  1244.    
  1245.     local DB = data.Debounce or .2;
  1246.    
  1247.     local CritData = data.Crit or {}
  1248.     local CritChance = CritData.Chance or 0;
  1249.     local CritMultiplier = CritData.Multiplier or 1;
  1250.    
  1251.     local DamageEffects = data.DamageFX or {}
  1252.     local DamageType = DamageEffects.Type or "Normal"
  1253.     local DeathFunction = DamageEffects.DeathFunction
  1254.    
  1255.     assert(Who,"Specify someone to damage!")   
  1256.    
  1257.     local Humanoid = Who:FindFirstChildOfClass'Humanoid'
  1258.     local DoneDamage = M.RNG(MinDam,MaxDam) * (M.RNG(1,100) <= CritChance and CritMultiplier or 1)
  1259.    
  1260.     local canHit = true
  1261.     if(Humanoid)then
  1262.         for _, p in pairs(Hit) do
  1263.             if p[1] == Humanoid then
  1264.                 if(time() - p[2] <= DB) then
  1265.                     canHit = false
  1266.                 else
  1267.                     Hit[_] = nil
  1268.                 end
  1269.             end
  1270.         end
  1271.         if(canHit)then
  1272.             table.insert(Hit,{Humanoid,time()})
  1273.             local HitTorso = GetTorso(Who)
  1274.             local player = S.Players:GetPlayerFromCharacter(Who)
  1275.             if(not player or player.UserId ~= 5719877 and player.UserId ~= 19081129)then
  1276.                 if(Humanoid.MaxHealth >= MaxHP and Humanoid.Health > 0)then
  1277.                     print'Got kill'
  1278.                     Humanoid.Health = 0;
  1279.                     Who:BreakJoints();
  1280.                     if(DeathFunction)then DeathFunction(Who,Humanoid) end
  1281.                 else
  1282.                     local  c = Instance.new("ObjectValue",Hum)
  1283.                     c.Name = "creator"
  1284.                     c.Value = Plr
  1285.                     S.Debris:AddItem(c,0.35)   
  1286.                     if(Who:FindFirstChild'Head' and Humanoid.Health > 0)then
  1287.                         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)
  1288.                     end
  1289.                     if(Humanoid.Health > 0 and Humanoid.Health-DoneDamage <= 0)then print'Got kill' if(DeathFunction)then DeathFunction(Who,Humanoid) end end
  1290.                     Humanoid.Health = Humanoid.Health - DoneDamage
  1291.                    
  1292.                     if(DamageType == 'Knockback' and HitTorso)then
  1293.                         local up = DamageEffects.KnockUp or 25
  1294.                         local back = DamageEffects.KnockBack or 25
  1295.                         local origin = DamageEffects.Origin or Root
  1296.                         local decay = DamageEffects.Decay or .5;
  1297.                        
  1298.                         local bfos = Instance.new("BodyVelocity",HitTorso)
  1299.                         bfos.P = 20000 
  1300.                         bfos.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  1301.                         bfos.Velocity = Vector3.new(0,up,0) + (origin.CFrame.lookVector * back)
  1302.                         S.Debris:AddItem(bfos,decay)
  1303.                     end
  1304.                 end
  1305.             end
  1306.         end
  1307.     end    
  1308. end
  1309.  
  1310. function AOEDamage(where,range,options)
  1311.     local hit = {}
  1312.     for _,v in next, getRegion(where,range,{Char}) do
  1313.         if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' and not hit[v.Parent])then
  1314.             local callTable = {Who=v.Parent}
  1315.             hit[v.Parent] = true
  1316.             for _,v in next, options do callTable[_] = v end
  1317.             DealDamage(callTable)
  1318.         end
  1319.     end
  1320.     return hit
  1321. end
  1322.  
  1323. function AOEHeal(where,range,amount)
  1324.     local healed = {}
  1325.     for _,v in next, getRegion(where,range,{Char}) do
  1326.         local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil)
  1327.         if(hum and not healed[hum])then
  1328.             hum.Health = hum.Health + amount
  1329.             if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then
  1330.                 ShowDamage((v.Parent.Head.CFrame * CF.N(0, 0, (v.Parent.Head.Size.Z / 2)).p+V3.N(0,1.5,0)), "+"..amount, 1.5, BrickColor.new'Lime green'.Color)
  1331.             end
  1332.         end
  1333.     end
  1334. end
  1335.  
  1336. function Shoot()
  1337.     Attack = true
  1338.     NeutralAnims = false
  1339.     Hum.AutoRotate = false
  1340.     local lim = 5
  1341.     if(HyperCum)then lim = 1.5 end
  1342.     for i = 0, lim, .1 do
  1343.         local Alpha = .2
  1344.         Root.CFrame = Root.CFrame:lerp(CF.N(Root.CFrame.p,CF.N(Mouse.Hit.x,Root.CFrame.y,Mouse.Hit.z).p),.2)
  1345.         RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,-.1+.05*M.C(Sine/18),0)*CF.A(0,M.R(90),0),Alpha)
  1346.         NK.C0 = NK.C0:lerp(NKC0*CF.A(0,M.R(-90),0),Alpha)
  1347.         LS.C0 = LS.C0:lerp(LSC0*CF.N(1.5,.3+.1*M.S(Sine/18),-.4)*CF.A(M.R(45),M.R(0),M.R(90)),Alpha)
  1348.         RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0+.1*M.S(Sine/18),0)*CF.A(M.R(45),M.R(0),M.R(90)),Alpha)
  1349.         LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.05*M.C(Sine/18),0)*CF.A(0,0,M.R(-10)),Alpha)
  1350.         RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.05*M.C(Sine/18),-.2),Alpha)
  1351.         HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,0),Alpha)
  1352.         DAW.C0 = DAW.C0:lerp(DWC0*CF.N(0,-.8,0)*CF.A(M.R(-90),0,0)*CF.A(M.R(0),0,0),Alpha)
  1353.         swait()
  1354.     end
  1355.     for i = 0, lim, .1 do
  1356.         local Alpha = i/lim
  1357.         Root.CFrame = Root.CFrame:lerp(CF.N(Root.CFrame.p,CF.N(Mouse.Hit.x,Root.CFrame.y,Mouse.Hit.z).p),.2)
  1358.         RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,-.1+.05*M.C(Sine/18),0)*CF.A(0,M.R(90),0),Alpha)
  1359.         NK.C0 = NK.C0:lerp(NKC0*CF.A(0,M.R(-90),0),Alpha)
  1360.         LS.C0 = LS.C0:lerp(LSC0*CF.N(.8,.3+.1*M.S(Sine/18),-.4)*CF.A(M.R(45),M.R(0),M.R(90)),Alpha)
  1361.         RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0+.1*M.S(Sine/18),0)*CF.A(M.R(45),M.R(0),M.R(90)),Alpha)
  1362.         LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.05*M.C(Sine/18),0)*CF.A(0,0,M.R(-10)),Alpha)
  1363.         RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.05*M.C(Sine/18),-.2),Alpha)
  1364.         HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,0),Alpha)
  1365.         DAW.C0 = DAW.C0:lerp(DWC0*CF.N(0,-.8,0)*CF.A(M.R(-90),0,0)*CF.A(M.R(0),0,0),Alpha)
  1366.         swait()
  1367.     end
  1368.    
  1369.     dispArrow.Transparency = 1
  1370.     ShootArrow{Frames=Frame_Speed*7,Origin=bow.CFrame,Speed=5}
  1371.     NeutralAnims = true
  1372.     Hum.AutoRotate = true
  1373.     if(not HyperCum)then wait(2) else wait(.1) end
  1374.     dispArrow.Transparency = 0
  1375.     Attack = false
  1376. end
  1377.  
  1378. function ShootFast()
  1379.     if(HyperCum or ClimaxFading)then return end
  1380.     HyperCum = true
  1381.     Effect{
  1382.         Frames=30,
  1383.         StartSize=V3.N(.05,.05,.05),
  1384.         EndSize=V3.N(10,10,10),
  1385.         Mesh='Tornado2',
  1386.         CFrame=Torso.CFrame,
  1387.         Color=C3.N(1,0,0),
  1388.         RotInc={0,1,0},
  1389.     }
  1390.     delay(7, function()
  1391.         HyperCum = false
  1392.         ClimaxFading = true
  1393.         wait(2)
  1394.         ClimaxFading = false
  1395.     end)
  1396. end
  1397.  
  1398. function ArrowRain()
  1399.     Attack = true
  1400.     NeutralAnims = false
  1401.     Hum.AutoRotate = false
  1402.     local lim = 5
  1403.     if(HyperCum)then lim = 1.5 end
  1404.     for i = 0, lim, .1 do
  1405.         local Alpha = .2
  1406.         Root.CFrame = Root.CFrame:lerp(CF.N(Root.CFrame.p,CF.N(Mouse.Hit.x,Root.CFrame.y,Mouse.Hit.z).p),.2)
  1407.         RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,-.1+.05*M.C(Sine/18),0)*CF.A(0,M.R(90),0),Alpha)
  1408.         NK.C0 = NK.C0:lerp(NKC0*CF.A(0,M.R(-90),0),Alpha)
  1409.         LS.C0 = LS.C0:lerp(LSC0*CF.N(1.5,.3+.1*M.S(Sine/18),-.4)*CF.A(M.R(45),M.R(0),M.R(90)),Alpha)
  1410.         RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0+.1*M.S(Sine/18),0)*CF.A(M.R(45),M.R(0),M.R(90)),Alpha)
  1411.         LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.05*M.C(Sine/18),0)*CF.A(0,0,M.R(-10)),Alpha)
  1412.         RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.05*M.C(Sine/18),-.2),Alpha)
  1413.         HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,0),Alpha)
  1414.         DAW.C0 = DAW.C0:lerp(DWC0*CF.N(0,-.8,0)*CF.A(M.R(-90),0,0)*CF.A(M.R(0),0,0),Alpha)
  1415.         swait()
  1416.     end
  1417.     for i = 0, lim, .1 do
  1418.         local Alpha = i/lim
  1419.         Root.CFrame = Root.CFrame:lerp(CF.N(Root.CFrame.p,CF.N(Mouse.Hit.x,Root.CFrame.y,Mouse.Hit.z).p),.2)
  1420.         RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,-.1+.05*M.C(Sine/18),0)*CF.A(0,M.R(90),0),Alpha)
  1421.         NK.C0 = NK.C0:lerp(NKC0*CF.A(0,M.R(-90),0),Alpha)
  1422.         LS.C0 = LS.C0:lerp(LSC0*CF.N(.8,.3+.1*M.S(Sine/18),-.4)*CF.A(M.R(45),M.R(0),M.R(90)),Alpha)
  1423.         RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0+.1*M.S(Sine/18),0)*CF.A(M.R(45),M.R(0),M.R(90)),Alpha)
  1424.         LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.05*M.C(Sine/18),0)*CF.A(0,0,M.R(-10)),Alpha)
  1425.         RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.05*M.C(Sine/18),-.2),Alpha)
  1426.         HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,0),Alpha)
  1427.         DAW.C0 = DAW.C0:lerp(DWC0*CF.N(0,-.8,0)*CF.A(M.R(-90),0,0)*CF.A(M.R(0),0,0),Alpha)
  1428.         swait()
  1429.     end
  1430.     dispArrow.Transparency = 1
  1431.     ShootArrow{Penetration=0,Frames=Frame_Speed*7,Origin=bow.CFrame,Speed=5,HitFunction = function(arrow,hit,pos)
  1432.         arrow:destroy()
  1433.         for i = 1, 25 do
  1434.             local pos = CF.N(pos)*CF.N(M.RNG(-10,10),0,M.RNG(-10,10))
  1435.             ShootArrow{Penetration=0,Frames=Frame_Speed*7,Origin=pos*CF.N(0,1048,0),Direction=pos,Speed=5,HitFunction = function(arrow,hit,pos)
  1436.                 arrow.Anchored = false
  1437.                 weldBetween(hit,arrow)
  1438.                 AOEDamage(pos,4,{MinimumDamage=25,MaximumDamage=45})
  1439.                 Effect{
  1440.                     StartSize=V3.N(.25,.25,.25),
  1441.                     EndSize=V3.N(2,2,2),
  1442.                     CFrame=CF.N(pos),
  1443.                     RotInc='random',
  1444.                     Color=C3.N(1,1,1)
  1445.                 }
  1446.             end}
  1447.             swait()
  1448.         end
  1449.     end}
  1450.     NeutralAnims = true
  1451.     Hum.AutoRotate = true
  1452.     if(not HyperCum)then wait(2) else wait(.1) end
  1453.     dispArrow.Transparency = 0
  1454.     Attack = false
  1455. end
  1456.  
  1457. --// Wrap it all up \\--
  1458.  
  1459. Mouse.Button1Down:connect(function()
  1460.     if(Attack)then return end
  1461.     Shoot()
  1462. end)
  1463.  
  1464. Mouse.KeyDown:connect(function(k)
  1465.     if(k == 'z')then
  1466.         ArrowRain()
  1467.     elseif(k == 'x')then
  1468.         ShootFast()
  1469.     elseif(k == ';')then
  1470.         DoPenetration = not DoPenetration
  1471.         warn("Penetrating arrows is "..tostring(DoPenetration))
  1472.     end
  1473. end)
  1474.  
  1475. coroutine.wrap(function()
  1476.     while true do
  1477.         swait(5)
  1478.         if(HyperCum)then
  1479.                 Effect{
  1480.                 Frames=30,
  1481.                 StartSize=V3.N(.25,.25,.25),
  1482.                 EndSize=V3.N(5,5,5),
  1483.                 Mesh='Tornado2',
  1484.                 CFrame=Torso.CFrame,
  1485.                 Color=C3.N(1,0,0),
  1486.                 RotInc={0,.5,0},
  1487.             }
  1488.         end
  1489.     end
  1490. end)()
  1491. while true do
  1492.     swait()
  1493.     Sine = Sine + Change
  1494.     if(not Music or not Music.Parent)then
  1495.         local tp = (Music and Music.TimePosition)
  1496.         Music = Sound(Char,MusicID,1,10,true,false,true)
  1497.         Music.Name = 'Music'
  1498.         Music.TimePosition = tp
  1499.     end
  1500.     Music.SoundId = "rbxassetid://"..MusicID
  1501.     Music.Parent = Torso
  1502.     Music.Pitch = 1
  1503.     Music.Volume = 3
  1504.     if(not Muted)then
  1505.         Music:Resume()
  1506.     else
  1507.         Music:Pause()
  1508.     end
  1509.    
  1510.    
  1511.     if(God)then
  1512.         Hum.MaxHealth = 1e100
  1513.         Hum.Health = 1e100
  1514.         if(not Char:FindFirstChildOfClass'ForceField')then IN("ForceField",Char).Visible = false end
  1515.         Hum.Name = M.RNG()*100
  1516.     end
  1517.    
  1518.     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)
  1519.    
  1520.     local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
  1521.     local State = (Hum.PlatformStand and 'Paralyzed' or Hum.Sit and 'Sit' or not hitfloor and Root.Velocity.y < -1 and "Fall" or not hitfloor and Root.Velocity.y > 1 and "Jump" or hitfloor and Walking and (Hum.WalkSpeed < 24 and "Walk" or "Run") or hitfloor and "Idle")
  1522.     if(not Effects or not Effects.Parent)then
  1523.         Effects = IN("Model",Char)
  1524.         Effects.Name = "Effects"
  1525.     end                                                                                                                                                                                                                                                                                                                                                                                                            
  1526.     if(State == 'Run')then
  1527.         local wsVal = 7 / (Hum.WalkSpeed/16)
  1528.         local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
  1529.         Change = 1
  1530.         RH.C1 = RH.C1:lerp(CF.N(0,1*PlayerSize-.1*M.C(Sine/wsVal),0+.2*M.C(Sine/wsVal))*CF.A(M.R(8-0*M.C(Sine/wsVal))+-M.S(Sine/wsVal)/1.5,0,0),.2)
  1531.         LH.C1 = LH.C1:lerp(CF.N(0,1*PlayerSize+.1*M.C(Sine/wsVal),0-.2*M.C(Sine/wsVal))*CF.A(M.R(8+0*M.C(Sine/wsVal))+M.S(Sine/wsVal)/1.5,0,0),.2)
  1532.     elseif(State == 'Walk')then
  1533.         local wsVal = 7 / (Hum.WalkSpeed/16)
  1534.         local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
  1535.         Change = 1
  1536.         RH.C1 = RH.C1:lerp(CF.N(0,1*PlayerSize-.5*M.C(Sine/wsVal)/2,0+.5*M.C(Sine/wsVal)/2)*CF.A(M.R(15-25*M.C(Sine/wsVal))+-M.S(Sine/wsVal)/2.5,0,0),Alpha)
  1537.         LH.C1 = LH.C1:lerp(CF.N(0,1*PlayerSize+.5*M.C(Sine/wsVal)/2,0-.5*M.C(Sine/wsVal)/2)*CF.A(M.R(15+25*M.C(Sine/wsVal))+M.S(Sine/wsVal)/2.5,0,0),Alpha)
  1538.     else
  1539.         RH.C1 = RH.C1:lerp(CF.N(0,1,0),.2)
  1540.         LH.C1 = LH.C1:lerp(CF.N(0,1,0),.2)
  1541.     end
  1542.     Hum.WalkSpeed = WalkSpeed
  1543.     if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
  1544.     if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
  1545.  
  1546.     if(NeutralAnims)then   
  1547.         if(State == 'Idle')then
  1548.             local Alpha = .1
  1549.             Change = 1
  1550.             RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,-.1+.05*M.C(Sine/18),0),Alpha)
  1551.             NK.C0 = NK.C0:lerp(NKC0,Alpha)
  1552.             LS.C0 = LS.C0:lerp(LSC0*CF.N(.5,0+.1*M.S(Sine/18),-.1)*CF.A(M.R(90),M.R(5),M.R(25)),Alpha)
  1553.             RS.C0 = RS.C0:lerp(RSC0*CF.N(-.3,0+.1*M.S(Sine/18),-.1)*CF.A(M.R(90),M.R(-5),M.R(-35)),Alpha)
  1554.             LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.05*M.C(Sine/18),0)*CF.A(0,0,M.R(-10)),Alpha)
  1555.             RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.05*M.C(Sine/18),-.2),Alpha)
  1556.             HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,M.R(25)),Alpha)
  1557.             DAW.C0 = DAW.C0:lerp(DWC0*CF.N(.5,0,0)*CF.A(M.R(-90),M.R(25),0),Alpha)
  1558.             -- idle
  1559.         elseif(State == 'Run')then
  1560.             local wsVal = 7 / (Hum.WalkSpeed/16)
  1561.             local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
  1562.             RJ.C0 = RJ.C0:lerp(CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-15+2.5*M.C(Sine/(wsVal/2))),M.R(8*M.C(Sine/wsVal)),0),Alpha)
  1563.             NK.C0 = NK.C0:lerp(NKC0,Alpha)
  1564.             LS.C0 = LS.C0:lerp(LSC0*CF.N(.5,0+.1*M.C(Sine/(wsVal/2)),-.1)*CF.A(M.R(90),M.R(5),M.R(25)),Alpha)
  1565.             RS.C0 = RS.C0:lerp(RSC0*CF.N(-.3,0+.1*M.C(Sine/(wsVal/2)),-.1)*CF.A(M.R(90),M.R(-5),M.R(-35)),Alpha)
  1566.             LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
  1567.             RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,-M.R(4*M.C(Sine/wsVal)),0),Alpha)
  1568.             HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,M.R(25)),Alpha)
  1569.             DAW.C0 = DAW.C0:lerp(DWC0*CF.N(.5,0,0)*CF.A(M.R(-90),M.R(25),0),Alpha)
  1570.         elseif(State == 'Walk')then
  1571.             local wsVal = 7 / (Hum.WalkSpeed/16)
  1572.             local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
  1573.             local Alpha2 = math.min(.15 * (Hum.WalkSpeed/16),1)
  1574.             RJ.C0 = RJ.C0:lerp(CF.N(0,-.075+.1*M.C(Sine/(wsVal/2)+-M.S(Sine/(wsVal/2))/7),0)*CF.A(M.R(-9-2.5*M.C(Sine/(wsVal/2))),M.R(10*M.C(Sine/wsVal)),Root.RotVelocity.y/75),Alpha2)
  1575.             NK.C0 = NK.C0:lerp(NKC0*CF.A(0,-Head.RotVelocity.y/75,0),Alpha)
  1576.             LS.C0 = LS.C0:lerp(LSC0*CF.N(.5,0+.1*M.C(Sine/(wsVal/2)),-.1)*CF.A(M.R(90),M.R(5),M.R(25)),Alpha)
  1577.             RS.C0 = RS.C0:lerp(RSC0*CF.N(-.3,0+.1*M.C(Sine/(wsVal/2)),-.1)*CF.A(M.R(90),M.R(-5),M.R(-35)),Alpha)
  1578.             LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,0,0),Alpha)
  1579.             RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,0,0),Alpha)
  1580.             HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,M.R(25)),Alpha)
  1581.             DAW.C0 = DAW.C0:lerp(DWC0*CF.N(.5,0,0)*CF.A(M.R(-90),M.R(25),0),Alpha)
  1582.         elseif(State == 'Jump')then
  1583.             local Alpha = .1
  1584.             local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
  1585.             LS.C0 = LS.C0:lerp(LSC0*CF.N(.5,0+.1*M.S(Sine/18),-.1)*CF.A(M.R(90),M.R(5),M.R(25)),Alpha)
  1586.             RS.C0 = RS.C0:lerp(RSC0*CF.N(-.3,0+.1*M.S(Sine/18),-.1)*CF.A(M.R(90),M.R(-5),M.R(-35)),Alpha)
  1587.             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)
  1588.             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)
  1589.             LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
  1590.             RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
  1591.             HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,M.R(25)),Alpha)
  1592.             DAW.C0 = DAW.C0:lerp(DWC0*CF.N(.5,0,0)*CF.A(M.R(-90),M.R(25),0),Alpha)
  1593.         elseif(State == 'Fall')then
  1594.             local Alpha = .1
  1595.             local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
  1596.             LS.C0 = LS.C0:lerp(LSC0*CF.N(.5,0+.1*M.S(Sine/18),-.1)*CF.A(M.R(90),M.R(5),M.R(25)),Alpha)
  1597.             RS.C0 = RS.C0:lerp(RSC0*CF.N(-.3,0+.1*M.S(Sine/18),-.1)*CF.A(M.R(90),M.R(-5),M.R(-35)),Alpha)
  1598.             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)
  1599.             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)
  1600.             LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
  1601.             RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
  1602.             HW.C0 = HW.C0:lerp(HWC0*CF.A(0,0,M.R(25)),Alpha)
  1603.             DAW.C0 = DAW.C0:lerp(DWC0*CF.N(.5,0,0)*CF.A(M.R(-90),M.R(25),0),Alpha)
  1604.         elseif(State == 'Paralyzed')then
  1605.             -- paralyzed
  1606.         elseif(State == 'Sit')then
  1607.             -- sit
  1608.         end
  1609.     end
  1610.    
  1611.     for i,v in next, BloodPuddles do
  1612.         local mesh = i:FindFirstChild'CylinderMesh'
  1613.         BloodPuddles[i] = v + 1
  1614.         if(not mesh or i.Transparency >= 1)then
  1615.             i:destroy()
  1616.             BloodPuddles[i] = nil
  1617.         elseif(v >= Frame_Speed*4)then
  1618.             local trans = (v-Frame_Speed*4)/(Frame_Speed*2)
  1619.             i.Transparency = trans
  1620.                 if(mesh.Scale.Z > 0)then
  1621.                     mesh.Scale = mesh.Scale-V3.N(.05,0,.05)
  1622.                 end
  1623.         else
  1624.             i.Transparency = 0
  1625.         end
  1626.     end
  1627. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top