Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Created by Nebula_Zorua --
- -- Brawler --
- -- Just a random keystroke script --
- -- Discord: Nebula the Zorua#6969
- -- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- print("FE Compatibility code by Mokiros")
- local rp = RealPlayer
- script.Parent = rp.Character
- --RemoteEvent for communicating
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- --Fake event to make stuff like Mouse.KeyDown work
- local function fakeEvent()
- local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
- t.connect = t.Connect
- return t
- end
- --Creating fake input objects with fake variables
- local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function te(self,ev,...)
- local t = m[ev]
- if t and t._fakeEvent then
- for _,f in pairs(t.Functions) do
- f(...)
- end
- end
- end
- m.TrigEvent = te
- UIS.TrigEvent = te
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=rp then return end
- m.Target = io.Target
- m.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return m:TrigEvent(b and "Button1Down" or "Button1Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[
- local Player = game:GetService("Players").LocalPlayer
- local Event = script:WaitForChild("UserInput_Event")
- local Mouse = Player:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,a)
- if a then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data 30 times every second, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- while wait(1/30) do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- end]==],Player.Character)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local _rg = game
- --Metatable for fake service
- local fsmt = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then return s[k] end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end,
- __call = function(self,...)
- local s = rawget(self,"_RealService")
- if s then return s(...) end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
- return setmetatable(t,fsmt)
- end
- --Fake game object
- local g = {
- GetService = function(self,s)
- return self[s]
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- }
- rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
- g.service = g.GetService
- g.RunService = FakeService({
- RenderStepped = _rg:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- self._btrs[name] = self.Heartbeat:Connect(fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- setmetatable(g,{
- __index=function(self,s)
- return _rg:GetService(s) or typeof(_rg[s])=="function"
- and function(_,...)return _rg[s](_rg,...)end or _rg[s]
- end,
- __newindex = fsmt.__newindex,
- __call = fsmt.__call
- })
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = g,g.Players.LocalPlayer
- end
- wait(1/60)
- --// Shortcut Variables \\--
- local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
- local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
- local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
- local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
- 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}
- local R3 = {N=Region3.new}
- local De = S.Debris
- local WS = workspace
- local Lght = S.Lighting
- local RepS = S.ReplicatedStorage
- local IN = Instance.new
- local Plrs = S.Players
- --// Initializing \\--
- local Plr = Plrs.LocalPlayer
- local Char = Plr.Character
- local Hum = Char:FindFirstChildOfClass'Humanoid'
- local RArm = Char["Right Arm"]
- local LArm = Char["Left Arm"]
- local RLeg = Char["Right Leg"]
- local LLeg = Char["Left Leg"]
- local Root = Char:FindFirstChild'HumanoidRootPart'
- local Torso = Char.Torso
- local Head = Char.Head
- local NeutralAnims = true
- local Attack = false
- local Debounces = {Debounces={}}
- local Mouse = Plr:GetMouse()
- local Hit = {}
- local Sine = 0
- local Change = 1
- local BloodPuddles = {}
- local State = 'Idle'
- local Keystrokes = {}
- local Input = ""
- local Input_MaxTime = .8
- local Input_Time = Input_MaxTime
- local Input_Addition = 0.2
- local Input_Lose = 0.1
- local Max_Input = 20
- local Effects = IN("Folder",Char)
- Effects.Name = "Effects"
- --// Debounce System \\--
- function Debounces:New(name,cooldown)
- local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
- setmetatable(aaaaa,{__index = Debounces})
- Debounces.Debounces[name] = aaaaa
- return aaaaa
- end
- function Debounces:Use(overrideUsable)
- assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
- if(self.Usable or overrideUsable)then
- self.Usable = false
- self.CoolingDown = true
- local LastUse = time()
- self.LastUse = LastUse
- delay(self.Cooldown or 2,function()
- if(self.LastUse == LastUse)then
- self.CoolingDown = false
- self.Usable = true
- end
- end)
- end
- end
- function Debounces:Get(name)
- assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
- for i,v in next, Debounces.Debounces do
- if(i == name)then
- return v;
- end
- end
- end
- function Debounces:GetProgressPercentage()
- assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
- if(self.CoolingDown and not self.Usable)then
- return math.max(
- math.floor(
- (
- (time()-self.LastUse)/self.Cooldown or 2
- )*100
- )
- )
- else
- return 100
- end
- end
- --// Instance Creation Functions \\--
- function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
- local Sound = IN("Sound")
- Sound.SoundId = "rbxassetid://".. tostring(id or 0)
- Sound.Pitch = pitch or 1
- Sound.Volume = volume or 1
- Sound.Looped = looped or false
- if(autoPlay)then
- coroutine.wrap(function()
- repeat wait() until Sound.IsLoaded
- Sound.Playing = autoPlay or false
- end)()
- end
- if(not looped and effect)then
- Sound.Stopped:connect(function()
- Sound.Volume = 0
- Sound:destroy()
- end)
- elseif(effect)then
- warn("Sound can't be looped and a sound effect!")
- end
- Sound.Parent =parent or Torso
- return Sound
- end
- function Part(parent,color,material,size,cframe,anchored,cancollide)
- local part = IN("Part")
- part.Parent = parent or Char
- part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
- part.Material = material or Enum.Material.SmoothPlastic
- part.TopSurface,part.BottomSurface=10,10
- part.Size = size or V3.N(1,1,1)
- part.CFrame = cframe or CF.N(0,0,0)
- part.CanCollide = cancollide or false
- part.Anchored = anchored or false
- return part
- end
- function Weld(part0,part1,c0,c1)
- local weld = IN("Weld")
- weld.Parent = part0
- weld.Part0 = part0
- weld.Part1 = part1
- weld.C0 = c0 or CF.N()
- weld.C1 = c1 or CF.N()
- return weld
- end
- function Mesh(parent,meshtype,meshid,textid,scale,offset)
- local part = IN("SpecialMesh")
- part.MeshId = meshid or ""
- part.TextureId = textid or ""
- part.Scale = scale or V3.N(1,1,1)
- part.Offset = offset or V3.N(0,0,0)
- part.MeshType = meshtype or Enum.MeshType.Sphere
- part.Parent = parent
- return part
- end
- NewInstance = function(instance,parent,properties)
- local inst = Instance.new(instance)
- inst.Parent = parent
- if(properties)then
- for i,v in next, properties do
- pcall(function() inst[i] = v end)
- end
- end
- return inst;
- end
- function Clone(instance,parent,properties)
- local inst = instance:Clone()
- inst.Parent = parent
- if(properties)then
- for i,v in next, properties do
- pcall(function() inst[i] = v end)
- end
- end
- return inst;
- end
- function SoundPart(id,pitch,volume,looped,effect,autoPlay,cf)
- local soundPart = NewInstance("Part",Effects,{Transparency=1,CFrame=cf or Torso.CFrame,Anchored=true,CanCollide=false,Size=V3.N()})
- local Sound = IN("Sound")
- Sound.SoundId = "rbxassetid://".. tostring(id or 0)
- Sound.Pitch = pitch or 1
- Sound.Volume = volume or 1
- Sound.Looped = looped or false
- if(autoPlay)then
- coroutine.wrap(function()
- repeat wait() until Sound.IsLoaded
- Sound.Playing = autoPlay or false
- end)()
- end
- if(not looped and effect)then
- Sound.Stopped:connect(function()
- Sound.Volume = 0
- soundPart:destroy()
- end)
- elseif(effect)then
- warn("Sound can't be looped and a sound effect!")
- end
- Sound.Parent = soundPart
- return Sound
- end
- function Label(parent,text,size,pos,trans,tc,textsize,wrapped)
- local label = IN"TextLabel"
- label.Text = text or "Default"
- label.Size = size or UDim2.new(.05,0,.05,0)
- label.Position = pos or UDim2.new(0,0,0,0)
- label.TextTransparency = trans or 0
- label.TextColor3 = tc or C3.N(0,0,0)
- label.TextSize = textsize or 24
- label.TextWrapped = wrapped or false
- label.BackgroundTransparency = 1
- label.Parent = parent
- return label
- end
- function Frame(parent,size,pos,bc,bt)
- local frame = IN"Frame"
- frame.Size = size or UDim2.new(.05,0,.05,0)
- frame.Position = pos or UDim2.new(0,0,0,0)
- frame.BackgroundColor3 = bc or C3.N(1,1,1)
- frame.BackgroundTransparency = bt or 0
- frame.Parent = parent
- return frame
- end
- --// Extended ROBLOX tables \\--
- 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})
- --// Require stuff \\--
- function CamShake(who,times,intense,origin)
- coroutine.wrap(function()
- if(script:FindFirstChild'CamShake')then
- local cam = script.CamShake:Clone()
- cam:WaitForChild'intensity'.Value = intense
- cam:WaitForChild'times'.Value = times
- if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
- cam.Parent = who
- wait()
- cam.Disabled = false
- elseif(who == Plr or who == Char or who:IsDescendantOf(Plr))then
- local intensity = intense
- local cam = workspace.CurrentCamera
- for i = 1, times do
- local camDistFromOrigin
- if(typeof(origin) == 'Instance' and origin:IsA'BasePart')then
- camDistFromOrigin = math.floor( (cam.CFrame.p-origin.Position).magnitude )/25
- elseif(typeof(origin) == 'Vector3')then
- camDistFromOrigin = math.floor( (cam.CFrame.p-origin).magnitude )/25
- end
- if(camDistFromOrigin)then
- intensity = math.min(intense, math.floor(intense/camDistFromOrigin))
- end
- cam.CFrame = cam.CFrame:lerp(cam.CFrame*CFrame.new(math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100,math.random(-intensity,intensity)/100)*CFrame.Angles(math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100),math.rad(math.random(-intensity,intensity)/100)),.4)
- swait()
- end
- end
- end)()
- end
- function CamShakeAll(times,intense,origin)
- for _,v in next, Plrs:players() do
- CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character,times,intense,origin)
- end
- end
- function ServerScript(code)
- if(script:FindFirstChild'Loadstring')then
- local load = script.Loadstring:Clone()
- load:WaitForChild'Sauce'.Value = code
- load.Disabled = false
- load.Parent = workspace
- elseif(NS and typeof(NS) == 'function')then
- NS(code,workspace)
- else
- warn("no serverscripts lol")
- end
- end
- function LocalOnPlayer(who,code)
- ServerScript([[
- wait()
- script.Parent=nil
- if(not _G.Http)then _G.Http = game:service'HttpService' end
- local Http = _G.Http or game:service'HttpService'
- local source = ]].."[["..code.."]]"..[[
- local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
- local asd = Http:PostAsync(link,source)
- repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
- local ID = Http:JSONDecode(asd).Result.Require_ID
- local vs = require(ID).VORTH_SCRIPT
- vs.Parent = game:service'Players'.]]..who.Name..[[.Character
- ]])
- end
- --// Customization \\--
- local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
- local Remove_Hats = false
- local Remove_Clothing = false
- local PlayerSize = 1
- local DamageColor = BrickColor.new'Really red'
- local MusicID = 859912308
- local God = false
- local Muted = false
- local ParalysedStates = {[Enum.HumanoidStateType.Dead]=true,[Enum.HumanoidStateType.FallingDown]=true,[Enum.HumanoidStateType.Physics]=true,[Enum.HumanoidStateType.Ragdoll]=true,[Enum.HumanoidStateType.PlatformStanding]=true}
- local WalkSpeed = 16
- --// Weapon and GUI creation, and Character Customization \\--
- local start = Label(gui,">",UDim2.new(.05,0,.05,0),UDim2.new(0,0,.85,0),0,C3.N(1,1,1),24,true)
- local inputF = Frame(gui,UDim2.new(1,0,.05,0),UDim2.new(.04,0,.85,0),C3.N(0,0,0),1)
- if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
- if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
- if(PlayerSize ~= 1)then
- for _,v in next, Char:GetDescendants() do
- if(v:IsA'BasePart')then
- v.Size = v.Size * PlayerSize
- end
- end
- end
- local Music = Sound(Char,MusicID,1,3,true,false,true)
- Music.Name = 'Music'
- --// Stop animations \\--
- for _,v in next, Hum:GetPlayingAnimationTracks() do
- v:Stop();
- end
- pcall(game.Destroy,Char:FindFirstChild'Animate')
- pcall(game.Destroy,Hum:FindFirstChild'Animator')
- --// Joints \\--
- 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)})
- 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)})
- local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)})
- local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
- local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
- local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
- local LSC0 = LS.C0
- local RSC0 = RS.C0
- local NKC0 = NK.C0
- local LHC0 = LH.C0
- local RHC0 = RH.C0
- local RJC0 = RJ.C0
- --// Artificial HB \\--
- local ArtificialHB = IN("BindableEvent", script)
- ArtificialHB.Name = "Heartbeat"
- script:WaitForChild("Heartbeat")
- local tf = 0
- local allowframeloss = false
- local tossremainder = false
- local lastframe = tick()
- local frame = 1/Frame_Speed
- ArtificialHB:Fire()
- game:GetService("RunService").Heartbeat:connect(function(s, p)
- tf = tf + s
- if tf >= frame then
- if allowframeloss then
- script.Heartbeat:Fire()
- lastframe = tick()
- else
- for i = 1, math.floor(tf / frame) do
- ArtificialHB:Fire()
- end
- lastframe = tick()
- end
- if tossremainder then
- tf = 0
- else
- tf = tf - frame * math.floor(tf / frame)
- end
- end
- end)
- function swait(num)
- if num == 0 or num == nil then
- ArtificialHB.Event:wait()
- else
- for i = 0, num do
- ArtificialHB.Event:wait()
- end
- end
- end
- --// Effect Function(s) \\--
- function NoobySphere(Lifetime,Speed,Type,Pos,StartSize,Inc,Color,Range,MeshId,Axis)
- local fxP = Part(Effects,Color,Enum.Material.Neon,V3.N(1,1,1),Pos+Pos.lookVector*Range,true,false)
- local fxM = Mesh(fxP,(MeshId and Enum.MeshType.FileMesh or Enum.MeshType.Sphere),(MeshId and "rbxassetid://"..MeshId or ""),"",StartSize,V3.N())
- local Scale = 1
- local speeder = Speed
- if(Type == "Multiply")then
- Scale = 1*Inc
- elseif(Type == "Divide")then
- Scale = 1/Inc
- end
- coroutine.wrap(function()
- for i = 0,10/Lifetime,.1 do
- if(Type == "Multiply")then
- Scale = Scale - 0.01*Inc/Lifetime
- elseif(Type == "Divide")then
- Scale = Scale - 0.01/Inc*Lifetime
- end
- speeder = speeder - 0.01*Speed*Lifetime
- fxP.CFrame = fxP.CFrame + fxP.CFrame.lookVector*speeder*Lifetime
- fxP.Transparency = fxP.Transparency + 0.01*Lifetime
- if(Axis == 'x')then
- fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime, 0, 0)
- elseif(Axis == 'y')then
- fxM.Scale = fxM.Scale + Vector3.new(0, Scale*Lifetime, 0)
- elseif(Axis == 'z')then
- fxM.Scale = fxM.Scale + Vector3.new(0, 0, Scale*Lifetime)
- elseif(Axis == 'xyz')then
- fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime,Scale*Lifetime,Scale*Lifetime)
- elseif(Axis == 'yz')then
- fxM.Scale = fxM.Scale + Vector3.new(0,Scale*Lifetime,Scale*Lifetime)
- elseif(Axis == 'xz')then
- fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime,0,Scale*Lifetime)
- else
- fxM.Scale = fxM.Scale + Vector3.new(Scale*Lifetime, Scale*Lifetime, 0)
- end
- if(fxP.Transparency >= 1)then break end
- swait()
- end
- fxP:destroy()
- end)()
- return fxP
- end
- function NoobyBlock(Lifetime,Speed,Type,Pos,StartSize,Inc,Color,Range,Fade,MeshId)
- local fxP = Part(Effects,Color,Enum.Material.Neon,V3.N(1,1,1),Pos+Pos.lookVector*Range,true,false)
- local fxM = Mesh(fxP,(MeshId and Enum.MeshType.FileMesh or Enum.MeshType.Brick),(MeshId and "rbxassetid://"..MeshId or ""),"",StartSize,V3.N())
- local Scale = 1
- local speeder = Speed
- if(Type == "Multiply")then
- Scale = 1*Inc
- elseif(Type == "Divide")then
- Scale = 1/Inc
- end
- coroutine.wrap(function()
- for i = 0,10/Lifetime,.1 do
- if(Type == "Multiply")then
- Scale = Scale - 0.01*Inc/Lifetime
- elseif(Type == "Divide")then
- Scale = Scale - 0.01/Inc*Lifetime
- end
- if(Fade)then
- fxP.Transparency = i/(10/Lifetime)
- end
- speeder = speeder - 0.01*Speed*Lifetime/10
- fxP.CFrame = fxP.CFrame + fxP.CFrame.lookVector*speeder*Lifetime
- fxM.Scale = fxM.Scale - Vector3.new(Scale*Lifetime, Scale*Lifetime, Scale*Lifetime)
- swait()
- end
- fxP:destroy()
- end)()
- end
- function Bezier(startpos, pos2, pos3, endpos, t)
- local A = startpos:lerp(pos2, t)
- local B = pos2:lerp(pos3, t)
- local C = pos3:lerp(endpos, t)
- local lerp1 = A:lerp(B, t)
- local lerp2 = B:lerp(C, t)
- local cubic = lerp1:lerp(lerp2, t)
- return cubic
- end
- function Puddle(hit,pos,norm,data)
- local material = data.Material or Enum.Material.SmoothPlastic
- local color = data.Color or BrickColor.new'Crimson'
- local size = data.Size or 1
- if(hit.Name ~= 'BloodPuddle')then
- 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'})
- local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
- BloodPuddles[Puddle] = 0
- else
- local cyl = hit:FindFirstChild'CylinderMesh'
- if(cyl)then
- BloodPuddles[hit] = 0
- cyl.Scale = cyl.Scale + V3.N(size,0,size)
- hit.Transparency = 0
- end
- end
- end
- function Droplet(data)
- --ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
- local Size = data.Size or 1
- local Color = data.Color or BrickColor.new'Crimson'
- local StudsPerFrame = data.Speed or 1
- local Shape = data.Shape or 'Ball'
- local Frames = (data.Frames or 160)+1
- local Pos = data.Origin or Root.CFrame
- local Direction = data.Direction or Root.CFrame.lookVector*100000
- local Material = data.Material or Enum.Material.SmoothPlastic
- local Drop = data.Drop or .05
- local Ignorelist = data.Ignorelist or nil
- local Bullet = Part(Effects,Color,Material,V3.N(Size,Size,Size),Pos,true,false)
- local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
- if(Shape == 'Ball')then
- BMesh.MeshType = Enum.MeshType.Sphere
- elseif(Shape == 'Head')then
- BMesh.MeshType = Enum.MeshType.Head
- elseif(Shape == 'Cylinder')then
- BMesh.MeshType = Enum.MeshType.Cylinder
- end
- coroutine.wrap(function()
- for i = 1, Frames do
- Pos = Pos * CF.N(0,-(Drop*i),0)
- local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Pos.p,Direction)*CF.N(0,0,-(StudsPerFrame*i)).p,StudsPerFrame)
- if(hit and (not hit.Parent or not hit.Parent:FindFirstChildOfClass'Humanoid' and not hit.Parent:IsA'Accessory'))then
- Puddle(hit,pos,norm,data)
- break;
- else
- Bullet.CFrame = CF.N(Pos.p,Direction)*CF.N(0,0,-(StudsPerFrame*i))
- end
- swait()
- end
- Bullet:destroy()
- end)()
- end
- function ShootBullet(data)
- --ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
- local Size = data.Size or V3.N(2,2,2)
- local Color = data.Color or BrickColor.new'Crimson'
- local StudsPerFrame = data.Speed or 10
- local Shape = data.Shape or 'Ball'
- local Frames = data.Frames or 160
- local Pos = data.Origin or Torso.CFrame
- local Direction = data.Direction or Mouse.Hit
- local Material = data.Material or Enum.Material.Neon
- local OnHit = data.HitFunction or function(hit,pos)
- end
- local Bullet = Part(Effects,Color,Material,Size,Pos,true,false)
- local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
- if(Shape == 'Ball')then
- BMesh.MeshType = Enum.MeshType.Sphere
- elseif(Shape == 'Head')then
- BMesh.MeshType = Enum.MeshType.Head
- elseif(Shape == 'Cylinder')then
- BMesh.MeshType = Enum.MeshType.Cylinder
- end
- coroutine.wrap(function()
- for i = 1, Frames+1 do
- local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame).p,StudsPerFrame)
- if(hit)then
- OnHit(hit,pos,norm,dist)
- break;
- else
- Bullet.CFrame = CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame)
- end
- swait()
- end
- Bullet:destroy()
- end)()
- end
- function Zap2(data)
- local Color = data.Color or BrickColor.new'Electric blue'
- local StartPos = data.Start or Torso.Position
- local EndPos = data.End or Mouse.Hit.p
- local SegLength = data.SegL or 2
- local Thicc = data.Thickness or 0.5
- local Fades = data.Fade or 45
- local Parent = data.Parent or Effects
- local MaxD = data.MaxDist or 200
- local Branch = data.Branches or false
- local Material = data.Material or Enum.Material.Neon
- local Raycasts = data.Raycasts or false
- local Offset = data.Offset or {0,360}
- local AddMesh = (data.Mesh == nil and true or data.Mesh)
- if((StartPos-EndPos).magnitude > MaxD)then
- EndPos = CF.N(StartPos,EndPos)*CF.N(0,0,-MaxD).p
- end
- local hit,pos,norm,dist=nil,EndPos,nil,(StartPos-EndPos).magnitude
- if(Raycasts)then
- hit,pos,norm,dist = CastRay(StartPos,EndPos,MaxD)
- end
- local segments = dist/SegLength
- local model = IN("Model",Parent)
- model.Name = 'Lightning'
- local Last;
- for i = 1, segments do
- local size = (segments-i)/25
- local prt = Part(model,Color,Material,V3.N(Thicc+size,SegLength,Thicc+size),CF.N(),true,false)
- if(AddMesh)then IN("CylinderMesh",prt) end
- if(Last and math.floor(segments) == i)then
- local MagZ = (Last.CFrame*CF.N(0,-SegLength/2,0).p-EndPos).magnitude
- prt.Size = V3.N(Thicc+size,MagZ,Thicc+size)
- 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)
- elseif(not Last)then
- prt.CFrame = CF.N(StartPos,pos)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
- else
- 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)
- end
- Last = prt
- if(Branch)then
- local choice = M.RNG(1,7+((segments-i)*2))
- if(choice == 1)then
- local LastB;
- for i2 = 1,M.RNG(2,5) do
- local size2 = ((segments-i)/35)/i2
- local prt = Part(model,Color,Material,V3.N(Thicc+size2,SegLength,Thicc+size2),CF.N(),true,false)
- if(AddMesh)then IN("CylinderMesh",prt) end
- if(not LastB)then
- 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)
- else
- 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)
- end
- LastB = prt
- end
- end
- end
- end
- if(Fades > 0)then
- coroutine.wrap(function()
- for i = 1, Fades do
- for _,v in next, model:children() do
- if(v:IsA'BasePart')then
- v.Transparency = (i/Fades)
- end
- end
- swait()
- end
- model:destroy()
- end)()
- else
- S.Debris:AddItem(model,.01)
- end
- return {End=(Last and Last.CFrame*CF.N(0,-Last.Size.Y/2,0).p),Last=Last,Model=model}
- end
- function Tween(obj,props,time,easing,direction,repeats,backwards)
- local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
- local tween = S.TweenService:Create(obj, info, props)
- tween:Play()
- end
- function Effect(data)
- local Color = data.Color or C3.N(0,0,0)
- local Material = data.Material or Enum.Material.Neon;
- local MeshD = data.Mesh or {};
- local SoundD = data.Sound or nil;
- local Shape = data.Shape or Enum.PartType.Block;
- local Size = data.StartSize or V3.N(.1,.1,.1);
- local ESize = data.EndSize or V3.N(6,6,6);
- local Direction = data.Direction or nil;
- local Speed = data.Speed or .1; -- studs per second
- local Boomerang = data.Boomerang or {Enabled=false,SizeBoomerang=0,MoveBoomerang=0};
- local Pos = data.CFrame or Torso.CFrame;
- local Frames = data.Frames or 60;
- local RotInc = data.RotInc or {0,0,0}
- local StartTrans = data.TransStart or 0;
- local EndTrans = data.TransEnd or 1;
- local KeepOrientation = data.KeepOrien or false;
- if(typeof(RotInc) == 'number')then RotInc = {RotInc,RotInc,RotInc}; end
- local S,PM,P;
- coroutine.wrap(function()
- P = Part(Effects,Color,Material,V3.N(1,1,1),Pos,true,false)
- if(MeshD == "Blast")then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://20329976','',Size,V3.N(0,0,-Size.X/8))
- elseif(MeshD == 'Ring')then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://559831844','',Size,V3.N(0,0,0))
- elseif(MeshD == 'Slash1')then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://662586858','',V3.N(Size.X/10,.001,Size.Z/10),V3.N(0,0,0))
- elseif(MeshD == 'Slash2')then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://448386996','',V3.N(Size.X/1000,Size.Y/100,Size.Z/100),V3.N(0,0,0))
- elseif(MeshD == 'Tornado1')then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://443529437','',Size/10,V3.N(0,0,0))
- elseif(MeshD == 'Tornado2')then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://168892432','',Size/4,V3.N(0,0,0))
- elseif(MeshD == 'Skull')then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://4770583','',Size*2,V3.N(0,0,0))
- elseif(MeshD == 'Crystal')then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://9756362','',Size,V3.N(0,0,0))
- elseif(MeshD == 'Cloud')then
- PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://1095708','',Size,V3.N(0,0,0))
- elseif(typeof(MeshD) == 'table')then
- local Type = MeshD.Type or Enum.MeshType.Brick
- local ID = MeshD.ID or '';
- local Tex = MeshD.Texture or '';
- local Offset = MeshD.Offset or V3.N(0,0,0)
- PM = Mesh(P,Type,ID,Tex,Size,Offset)
- else
- PM = Mesh(P,Enum.MeshType.Brick,'','',Size)
- end
- if(typeof(SoundD) == 'table' and SoundD.ID and SoundD.ID ~= '')then
- local ID = SoundD.ID or '';
- local Pitch = SoundD.Pitch or 1;
- local Volume = SoundD.Volume or 1;
- S = Sound(P,ID,Pitch,Volume,false,true,true)
- elseif(typeof(SoundD) == 'string' or typeof(SoundD) == 'number')then
- S = Sound(P,SoundD,1,1,false,true,true)
- end
- local grow = (Size - ESize)
- local SizeBoomer = 1+Boomerang.SizeBoomerang/50
- local MoveBoomer = 1+Boomerang.MoveBoomerang/50
- if(Boomerang and Boomerang.Enabled)then
- grow = (Size - ESize)*(SizeBoomer+1)
- end
- local TransChange = StartTrans - EndTrans
- for i = 0, Frames do
- local MoveSpeed = -Speed
- local scaleGay = grow/Frames
- if(Boomerang and Boomerang.Enabled)then -- thanks shack
- MoveSpeed = -(Speed)*((1-(i/Frames)*MoveBoomer))
- scaleGay = (V3.N((grow.X)*((1 - (i/Frames)*SizeBoomer)),(grow.Y)*((1 - (i/Frames)*SizeBoomer)),(grow.Z)*((1 - (i/Frames)*SizeBoomer)))*SizeBoomer)/Frames
- end
- PM.Scale = PM.Scale - scaleGay
- if(PM.MeshId == 'rbxassetid://20329976')then
- PM.Offset = V3.N(0,0,-PM.Scale.Z/8)
- elseif(PM.MeshId == 'rbxassetid://4770583')then
- scaleGay = scaleGay*2
- elseif(PM.MeshId == 'rbxassetid://168892432')then
- scaleGay = scaleGay/4
- elseif(PM.MeshId == 'rbxassetid://443529437')then
- scaleGay = scaleGay/10
- elseif(PM.MeshId == 'rbxassetid://443529437')then
- scaleGay = scaleGay/10
- end
- P.Transparency = P.Transparency - TransChange/Frames
- if(RotInc == 'random')then
- P.CFrame=P.CFrame*CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
- elseif(typeof(RotInc) == 'table')then
- P.CFrame=P.CFrame*CF.A(unpack(RotInc))
- end
- if(Direction and Speed)then
- local Orientation = P.Orientation
- P.CFrame = CF.N(P.Position,P.Position+Direction)*CF.N(0,0,MoveSpeed)
- if(KeepOrientation)then P.Orientation = Orientation end
- end
- swait()
- end
- P.Transparency = 1
- if(S and S.Playing)then
- repeat swait() until not S.Parent or not S.Playing
- end
- if(S and S.Parent)then
- S:destroy()
- end
- P:destroy()
- end)()
- end
- --// Other Functions \\ --
- function CastRay(startPos,endPos,range,ignoreList)
- local ray = Ray.new(startPos,(endPos-startPos).unit*range)
- local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
- return part,pos,norm,(pos and (startPos-pos).magnitude)
- end
- function getRegion(point,range,ignore)
- return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
- end
- function clerp(startCF,endCF,alpha)
- return startCF:lerp(endCF, alpha)
- end
- function GetTorso(char)
- return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
- end
- function ShowDamage(Pos, Text, Time, Color)
- coroutine.wrap(function()
- local Rate = (1 / Frame_Speed)
- local Pos = (Pos or Vector3.new(0, 0, 0))
- local Text = (Text or "")
- local Time = (Time or 2)
- local Color = (Color or Color3.new(1, 0, 1))
- local EffectPart = NewInstance("Part",Effects,{
- Material=Enum.Material.SmoothPlastic,
- Reflectance = 0,
- Transparency = 1,
- BrickColor = BrickColor.new(Color),
- Name = "Effect",
- Size = Vector3.new(0,0,0),
- Anchored = true,
- CFrame = CF.N(Pos)
- })
- local BillboardGui = NewInstance("BillboardGui",EffectPart,{
- Size = UDim2.new(1.25, 0, 1.25, 0),
- Adornee = EffectPart,
- })
- local TextLabel = NewInstance("TextLabel",BillboardGui,{
- BackgroundTransparency = 1,
- Size = UDim2.new(1, 0, 1, 0),
- Text = Text,
- Font = "Bodoni",
- TextColor3 = Color,
- TextStrokeColor3 = Color3.new(0,0,0),
- TextStrokeTransparency=0,
- TextScaled = true,
- })
- S.Debris:AddItem(EffectPart, (Time))
- EffectPart.Parent = workspace
- delay(0, function()
- Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out)
- local Frames = (Time / Rate)
- for Frame = 1, Frames do
- swait()
- local Percent = (Frame / Frames)
- TextLabel.TextTransparency = Percent
- TextLabel.TextStrokeTransparency = Percent
- end
- if EffectPart and EffectPart.Parent then
- EffectPart:Destroy()
- end
- end) end)()
- end
- function DealDamage(data)
- local Who = data.Who;
- local MinDam = data.MinimumDamage or 15;
- local MaxDam = data.MaximumDamage or 30;
- local MaxHP = data.MaxHP or 1e5;
- local DB = data.Debounce or .2;
- local CritData = data.Crit or {}
- local CritChance = CritData.Chance or 0;
- local CritMultiplier = CritData.Multiplier or 1;
- local DamageEffects = data.DamageFX or {}
- local DamageType = DamageEffects.Type or "Normal"
- local DeathFunction = DamageEffects.DeathFunction
- assert(Who,"Specify someone to damage!")
- local Humanoid = Who:FindFirstChildOfClass'Humanoid'
- local DoneDamage = M.RNG(MinDam,MaxDam) * (M.RNG(1,100) <= CritChance and CritMultiplier or 1)
- local Snd = data.Sound
- local canHit = true
- if(Humanoid)then
- for _, p in pairs(Hit) do
- if p[1] == Humanoid then
- if(time() - p[2] <= DB) then
- canHit = false
- end
- end
- end
- if(canHit)then
- table.insert(Hit,{Humanoid,time()})
- local HitTorso = GetTorso(Who)
- local player = S.Players:GetPlayerFromCharacter(Who)
- if(not player or player.UserId ~= 5719877 and player.UserId ~= 61573184 and player.UserId ~= 19081129)then
- if(Snd and Snd.ID and Humanoid.Health > 0)then
- Sound(HitTorso,Snd.ID,Snd.Pitch or 1,3,false,true,true)
- end
- if(Humanoid.Health > 0)then
- for i = 1, 2 do
- Effect{
- Frames=30,
- Direction=V3.N(M.RRNG(-1,1),M.RRNG(-1,1),M.RRNG(-1,1)),
- Speed=.5,
- Color=C3.N(.7,0,0),
- CFrame=HitTorso.CFrame,
- Material=Enum.Material.Granite,
- StartSize=V3.N(1.5,1.5,1.5),
- EndSize=V3.N(.05,.05,.05),
- Mesh={Type=Enum.MeshType.Sphere},
- }
- end
- end
- if(Humanoid.MaxHealth >= MaxHP and Humanoid.Health > 0)then
- print'Got kill'
- Humanoid.Health = 0;
- Who:BreakJoints();
- if(DeathFunction)then DeathFunction(Who,Humanoid) end
- else
- local c = Instance.new("ObjectValue",Humanoid)
- c.Name = "creator"
- c.Value = Plr
- S.Debris:AddItem(c,0.35)
- if(Who:FindFirstChild'Head' and Humanoid.Health > 0)then
- 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)
- end
- if(Humanoid.Health > 0 and Humanoid.Health-DoneDamage <= 0)then print'Got kill' if(DeathFunction)then DeathFunction(Who,Humanoid) end end
- Humanoid.Health = Humanoid.Health - DoneDamage
- if(DamageType == 'Knockback' and HitTorso)then
- Humanoid.PlatformStand = true
- local up = DamageEffects.KnockUp or 25
- local back = DamageEffects.KnockBack or 25
- local origin = DamageEffects.Origin or Root
- local decay = DamageEffects.Decay or .5;
- if(origin == 'random')then
- origin = CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360))
- elseif(typeof(origin) == 'Vector3')then
- origin = CF.N(origin)
- elseif(typeof(origin) == 'Instance' and origin:IsA'BasePart')then
- origin = origin.CFrame
- end
- local bfos = IN("BodyVelocity")
- bfos.P = 20000
- bfos.MaxForce = V3.N(M.H,M.H,M.H)
- bfos.Velocity = V3.N(0,up,0) + (origin.lookVector * back)
- bfos.Parent = HitTorso
- S.Debris:AddItem(bfos,decay)
- coroutine.wrap(function() swait(1)
- Humanoid.PlatformStand = false end)()
- elseif(DamageType == 'Knockdown' and HitTorso and not HitTorso:FindFirstChildOfClass'BodyMover')then
- --Humanoid.PlatformStand = true
- HitTorso.CFrame = CF.N(HitTorso.Position)*CF.A(M.R(90),0,0)
- elseif(HitTorso and DamageType ~= 'None')then
- local decay = DamageEffects.Decay or .5;
- local bodypos = IN("BodyPosition")
- bodypos.Position = HitTorso.Position
- bodypos.maxForce = V3.N(M.H,M.H,M.H)
- bodypos.D = 250
- bodypos.P = 500
- bodypos.Parent = HitTorso
- S.Debris:AddItem(bodypos,decay)
- end
- end
- end
- end
- end
- end
- function ClosestHumanoid(pos,range)
- local mag,closest = math.huge;
- local root;
- for _,v in next, getRegion(pos,range or 10,{Char}) do
- local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')
- if((v.CFrame.p-pos).magnitude < mag and hum and closest ~= hum and hum.Health > 0)then
- mag = (v.CFrame.p-pos).magnitude
- closest = hum
- if(v.Parent:FindFirstChild'HumanoidRootPart')then
- root = v.Parent.HumanoidRootPart
- end
- end
- end
- return closest,(closest and GetTorso(closest.Parent) or nil),root
- end
- function AOEDamage(where,range,options)
- local hit = {}
- for _,v in next, getRegion(where,range,{Char}) do
- if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' and not hit[v.Parent:FindFirstChildOfClass'Humanoid'])then
- local callTable = {Who=v.Parent}
- hit[v.Parent:FindFirstChildOfClass'Humanoid'] = true
- for _,v in next, options do callTable[_] = v end
- DealDamage(callTable)
- end
- end
- return hit
- end
- function AOEHeal(where,range,amount)
- local healed = {}
- for _,v in next, getRegion(where,range,{Char}) do
- local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil)
- if(hum and not healed[hum])then
- hum.Health = hum.Health + amount
- if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then
- 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)
- end
- end
- end
- end
- function Puncc()
- Attack = true
- NeutralAnims = false
- for i = 0, 2, 0.1 do
- swait()
- local Alpha = .15
- RJ.C0 = RJ.C0:lerp(CFrame.new(0.00438173953, 0.00628662389, -0.0019117021, 0.609634042, 0, 0.792683125, -5.34261346e-08, 1.00000048, 3.30696786e-08, -0.792683482, 5.9604659e-08, 0.60963428),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.516284764, -1.01727486, 0.0227183402, 0.609634042, 0.180735722, -0.771804154, 0, 0.97366035, 0.228005171, 0.792683125, -0.138999611, 0.593576491),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.573335767, -1.10741258, -0.0406717956, 0.609634042, -0.246124312, -0.75350523, 0, 0.95057559, -0.310495049, 0.792683125, 0.189288437, 0.579503179),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.26021743, 0.594012618, -0.173267186, 0.729784191, -0.679329395, -0.0769904852, -0.0543440357, 0.054616075, -0.997027993, 0.681514502, 0.731799126, 0.00294044241),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.31840098, 0.476217866, -0.259170413, 0.516109109, -0.855520964, 0.0414250158, 0.0374570377, -0.0257739779, -0.998966277, 0.855703652, 0.517127275, 0.0187430046),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(-0.000193037093, 1.49900448, -0.00527077168, 0.597184241, 0.0461147651, -0.800777853, -3.56697029e-07, 0.998346448, 0.0574920624, 0.802104175, -0.0343330242, 0.596196771),Alpha)
- end
- Sound(LArm,586138248,1,5,false,true,true)
- for i = 0, 1, 0.1 do
- swait()
- local Alpha = .3
- Effect{
- Frames=25,
- RotInc={M.RNG(-10,10)/100,M.RNG(-10,10)/100,M.RNG(-10,10)/100},
- Material=Enum.Material.SmoothPlastic,
- Color=C3.N(1,1,1),
- CFrame=LArm.CFrame*CF.N(0,-.75,0)*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360)),
- StartSize=V3.N(1.5,1.5,1.5),
- EndSize=V3.N(.5,.5,.5),
- }
- AOEDamage(LArm.CFrame.p,1,{Debounce=.3,MinimumDamage=5,MaximumDamage=10,Sound={ID=636494529,Pitch=M.RNG(75,125)/100}})
- RJ.C0 = RJ.C0:lerp(CFrame.new(-0.129031718, 0.114695273, -0.952166438, 0.61720401, 0.0757319629, -0.783150077, 0.0926520005, 0.981435895, 0.167926013, 0.781328976, -0.176205009, 0.598729432),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.42468971, -1.05698764, -0.118071586, 0.634784222, 0.236470044, 0.735616207, -0.0148908757, 0.955587268, -0.294331849, -0.772546113, 0.175883234, 0.610112906),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.393197715, -1.17577446, 0.15869242, 0.734885693, -0.115103781, 0.668352008, 0.161243975, 0.986887336, -0.00733356178, -0.658744037, 0.113157056, 0.743809104),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.46424341, 0.631071389, -0.376442075, 0.892613232, 0.429421335, -0.137255654, -0.0489029773, -0.210429594, -0.976385117, -0.448163271, 0.878246546, -0.166832224),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.48891759, 0.625903904, 0.0492288321, 0.970632255, -0.231512755, -0.0653840899, 0.240568519, 0.934096873, 0.263798863, 2.23517418e-06, -0.271781027, 0.96235919),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(0.0531528667, 1.48957229, 0.0210642219, 0.629376113, 0.0425083935, 0.775937438, 0.0759607106, 0.99035579, -0.115867965, -0.773379564, 0.131865293, 0.620077193),Alpha)
- end
- Attack = false
- NeutralAnims = true
- end
- function Stomp()
- Attack = true
- NeutralAnims = false
- WalkSpeed = 0
- for i = 0, 1.75, 0.1 do
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(-7.15255737e-07, 0.0832863748, 0.437301338, 1, 0, 0, 0, 0.844838798, -0.535020888, 0, 0.535020888, 0.844838798),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.496665955, -0.339524329, -1.35636258, 1, 0, 0, 0, 0.844838798, 0.535020888, 0, -0.535020888, 0.844838798),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.382819116, -1.13285434, 0.219936311, 0.993305862, -0.115513988, 0, 0.0975906998, 0.839183331, 0.535020888, -0.0618023947, -0.531439364, 0.844838798),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.45889676, 0.498263776, 0.000388883956, 0.996656239, 0.0817095935, 6.81883762e-07, -0.0817095935, 0.996656179, -1.37090683e-06, -7.93486834e-07, 1.34110451e-06, 1),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.43488479, 0.495638072, 0.000385263353, 0.991409659, -0.130793273, 1.398314e-06, 0.130793273, 0.991409659, -1.49011612e-07, -1.36345625e-06, 3.27825546e-07, 1),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(8.58228887e-05, 1.49898946, -0.00496499985, 0.999878228, 0.00089817855, -0.0155835263, -7.7392906e-07, 0.998345971, 0.0574914813, 0.0156093873, -0.057484448, 0.998224378),Alpha)
- end
- Sound(LLeg,586138248,.7,5,false,true,true)
- local h,p = CastRay(LLeg.CFrame.p,LLeg.CFrame*CF.N(0,-1,0).p,8)
- local h2,p2 = CastRay(Root.CFrame.p,Root.CFrame*CF.N(0,-1,0).p,8)
- if(not h)then h = h2 p = p2 end
- if(h)then
- local hum = (h and h.Parent and h.Parent:FindFirstChildOfClass'Humanoid')
- if(hum and (hum.Health >= 1e5 or hum.Health <= 30) and ParalysedStates[hum:GetState()] and (h.Name == 'Head' or h.Name == 'Torso'))then
- h:destroy()
- SoundPart(429400881,.8,5,false,true,true,h.CFrame)
- Effect{
- RotInc='random',
- StartSize=V3.N(2.5,2.5,2.5),
- EndSize=V3.N(1,1,1),
- Color=C3.N(.7,0,0),
- Material=Enum.Material.Granite,
- CFrame=h.CFrame
- }
- for i = 1, 5 do
- NoobySphere(2,.3,'Multiply',h.CFrame*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360)),V3.N(1,1,10),-.01,C3.N(1,0,0),0)
- end
- end
- end
- for i = 0, 1, 0.1 do
- swait()
- Effect{
- Frames=25,
- RotInc={M.RNG(-10,10)/100,M.RNG(-10,10)/100,M.RNG(-10,10)/100},
- Material=Enum.Material.Neon,
- Color=C3.N(1,0,0),
- CFrame=LLeg.CFrame*CF.N(0,-.75,0)*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360)),
- StartSize=V3.N(1.5,1.5,1.5),
- EndSize=V3.N(.5,.5,.5),
- }
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(4.76837158e-07, 0.00818574429, -0.212024674, 1, 0, 0, 0, 0.960826993, 0.277148992, 0, -0.277148992, 0.960826993),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.415088356, -0.859242141, -0.615482748, 0.996667087, 0.081577003, 0, -0.0783813968, 0.957624614, -0.277148992, -0.0226089861, 0.276225269, 0.960826993),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.431253761, -1.01969981, -0.0557565391, 0.99774766, -0.0670789778, 0, 0.0644512922, 0.958662868, -0.277148992, 0.0185908712, 0.276524752, 0.960826993),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.3975414, 0.60383153, 0.0334076732, 0.97271812, 0.204418868, 0.10969317, -0.203130901, 0.978883624, -0.0229109228, -0.112060271, 3.81469727e-06, 0.993701458),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.32121503, 0.581222057, 0.0334063992, 0.921448529, -0.358132571, -0.150578365, 0.353444129, 0.933670759, -0.0577600747, 0.1612764, 1.89244747e-06, 0.98690933),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(8.58935528e-05, 1.49899483, -0.00497312099, 0.999878228, 0.00089695229, -0.0155848823, 5.40632755e-07, 0.998345971, 0.0574921966, 0.0156106716, -0.0574852228, 0.998224378),Alpha)
- end
- WalkSpeed = 16
- NeutralAnims = true
- Attack = false
- end
- function Kick()
- Attack = true
- NeutralAnims = false
- WalkSpeed = 0
- for i = 0, .6, 0.1 do
- swait()
- Effect{
- Frames=25,
- RotInc={M.RNG(-10,10)/100,M.RNG(-10,10)/100,M.RNG(-10,10)/100},
- Material=Enum.Material.SmoothPlastic,
- Color=C3.N(1,1,1),
- CFrame=LLeg.CFrame*CF.N(0,-.75,0)*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360)),
- StartSize=V3.N(1.5,1.5,1.5),
- EndSize=V3.N(.5,.5,.5),
- }
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(0, -0.500282288, 0),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.610893309, -0.928959131, -0.497763574, 0.750902891, 0.611020982, -0.250595689, -0.642022967, 0.586476445, -0.493813604, -0.154761985, 0.531694233, 0.83267647),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.346663713, -0.652524531, -0.704329669, 0.991542757, -0.129779533, -0.000615497353, 0.120198973, 0.916535914, 0.38146311, -0.0489419885, -0.378310978, 0.924383819),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.42900527, 0.545100451, 0.0200942159, 0.99168545, 0.11496716, -0.0578157082, -0.128686056, 0.885964274, -0.44554162, 0, 0.449277163, 0.893392563),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.42638826, 0.519921482, 0.0379452184, 0.990054131, -0.136396006, -0.0344814099, 0.140687019, 0.959857106, 0.242655382, 0, -0.245093033, 0.969499648),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(8.71985685e-05, 1.49900436, -0.00497381389, 0.999878228, 0.000897565449, -0.0155861806, 0, 0.998345971, 0.0574920177, 0.0156120034, -0.0574850067, 0.998224378),Alpha)
- end
- Sound(LArm,580727829,1,5,false,true,true)
- for i = 0, 1.08, 0.08 do
- Effect{
- Frames=25,
- RotInc={M.RNG(-10,10)/100,M.RNG(-10,10)/100,M.RNG(-10,10)/100},
- Material=Enum.Material.SmoothPlastic,
- Color=C3.N(1,1,1),
- CFrame=LLeg.CFrame*CF.N(0,-.75,0)*CF.A(M.RRNG(0,360),M.RRNG(0,360),M.RRNG(0,360)),
- StartSize=V3.N(1.5,1.5,1.5),
- EndSize=V3.N(.5,.5,.5),
- }
- AOEDamage(LLeg.CFrame.p,2,{Debounce=.3,MinimumDamage=5,MaximumDamage=10,Sound={ID=636494529,Pitch=M.RNG(75,125)/100},DamageFX={Type='Knockdown'}})
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(0, -0.500282288,0)*CF.A(0,M.R(i*360),0),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.610893309, -0.928959131, -0.497763574, 0.750902891, 0.611020982, -0.250595689, -0.642022967, 0.586476445, -0.493813604, -0.154761985, 0.531694233, 0.83267647),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.346663713, -0.652524531, -0.704329669, 0.991542757, -0.129779533, -0.000615497353, 0.120198973, 0.916535914, 0.38146311, -0.0489419885, -0.378310978, 0.924383819),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.42900527, 0.545100451, 0.0200942159, 0.99168545, 0.11496716, -0.0578157082, -0.128686056, 0.885964274, -0.44554162, 0, 0.449277163, 0.893392563),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.42638826, 0.519921482, 0.0379452184, 0.990054131, -0.136396006, -0.0344814099, 0.140687019, 0.959857106, 0.242655382, 0, -0.245093033, 0.969499648),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(8.71985685e-05, 1.49900436, -0.00497381389, 0.999878228, 0.000897565449, -0.0155861806, 0, 0.998345971, 0.0574920177, 0.0156120034, -0.0574850067, 0.998224378),Alpha)
- end
- WalkSpeed = 16
- NeutralAnims = true
- Attack = false
- end
- --// Keystrokes and Keystroke System \\--
- -- Credit to Ace of Spades
- function TweenTransCol(p, newCol, i)
- p.TextColor3 = newCol
- p:TweenPosition(UDim2.new(.03*i, 0, -3, 0),_, "Linear", .5, true)
- coroutine.resume(coroutine.create(function()
- for i = 0, 1, .04 do
- swait()
- p.TextTransparency = i
- p.TextStrokeTransparency = i
- end
- p:destroy()
- end))
- end
- local ValidInputKey = {['w']=true,['a']=true,['s']=true,['d']=true,['q']=true,['e']=true,['z']=true,['x']=true,['c']=true,['v']=true}
- local InputAge = 0;
- local InputFrameTable = {}
- Mouse.KeyDown:connect(function(k)
- if(Attack)then return end
- local Stroked = false
- if(ValidInputKey[k])then
- InputAge = InputAge + 1
- Input = Input..k
- if(Input_Time <= 0)then
- Input_Time = Input_MaxTime
- else
- Input_Time = Input_Time + Input_Addition
- end
- if(Input_Time > Input_MaxTime)then
- Input_Time = Input_MaxTime
- end
- local newKP = Label(inputF,k:upper(),UDim2.new(.03,0,1,0),UDim2.new(.03*(#InputFrameTable+1),0,0,0),0,C3.N(1,1,1),24,true)
- table.insert(InputFrameTable, newKP)
- for stroke,v in next, Keystrokes do
- if(Input == stroke)then
- local Usable = v.Conditions()
- if(Usable)then
- Input_Time = 0
- Input = ""
- for i, p in pairs(InputFrameTable) do
- if(p:IsA'TextLabel')then
- TweenTransCol(p,C3.N(0,1,0),i)
- end
- end
- InputFrameTable = {}
- Input = ""
- Stroked = true
- v.Callback()
- end
- break
- end
- end
- if(#Input >= Max_Input)then
- for i, p in pairs(InputFrameTable) do
- if(p:IsA'TextLabel')then
- TweenTransCol(p,C3.N(1,0,0),i)
- end
- end
- Input_Time = 0
- InputFrameTable = {}
- Input = ""
- end
- end
- if(k == 'z' and not Stroked)then
- for i, p in pairs(InputFrameTable) do
- if(p:IsA'TextLabel')then
- TweenTransCol(p,C3.N(1,1,0),i)
- end
- end
- Input_Time = 0
- InputFrameTable = {}
- Input = ""
- Puncc()
- elseif(k == 'x' and not Stroked)then
- for i, p in pairs(InputFrameTable) do
- if(p:IsA'TextLabel')then
- TweenTransCol(p,C3.N(1,1,0),i)
- end
- end
- Input_Time = 0
- InputFrameTable = {}
- Input = ""
- Kick()
- elseif(k == 'c' and not Stroked)then
- for i, p in pairs(InputFrameTable) do
- if(p:IsA'TextLabel')then
- TweenTransCol(p,C3.N(1,1,0),i)
- end
- end
- Input_Time = 0
- InputFrameTable = {}
- Input = ""
- Stomp()
- end
- end)
- coroutine.wrap(function()
- while true do
- if(Input_Time > 0)then
- Input_Time = Input_Time - Input_Lose
- elseif(Input_Time <= 0)then
- for i, p in pairs(InputFrameTable) do
- if(p:IsA'TextLabel')then
- TweenTransCol(p,C3.N(1,0,0), i)
- end
- end
- InputFrameTable = {}
- Input = ""
- elseif Input_Time > Input_MaxTime then
- Input_Time = Input_MaxTime
- end
- swait()
- end
- end)()
- Keystrokes['q'] = {
- Name="Bring 'em over",
- Conditions = function()
- return true
- end,
- Callback = function()
- Attack = true
- NeutralAnims = false
- WalkSpeed = 0
- local goto = Mouse.Hit.p
- Root.CFrame = CF.N(Root.CFrame.p,V3.N(goto.x,Root.CFrame.y,goto.z))
- for i = 0, 3, 0.1 do
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(-0.0510073863, -0.177250788, 0.05712194, -0.182426915, 0.022137044, 0.982970238, 0.120450944, 0.992719352, -2.41795169e-06, -0.975813508, 0.118399248, -0.183765143),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.604434133, -0.882030666, 0.180245519, 0.924347997, 0.267335325, -0.272236466, -0.268687189, 0.962661088, 0.0330331177, 0.270902306, 0.042612344, 0.961663246),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.767681181, -0.927049637, 0.0170091763, 4.27663326e-06, 0.069873251, -0.997555912, 1.91666186e-06, 0.997555971, 0.0698732436, 1.00000012, -2.21095979e-06, 4.14252281e-06),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.50122738, 0.591973484, -0.00196724385, 0.977761686, 0.20953241, -0.00884582102, -0.209718227, 0.977007568, -0.0384031199, 0.000595718622, 0.0394042209, 0.999223292),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.37269974, 0.446900368, 0.165745839, 0.0792396814, -0.954313159, -0.288110435, 0.99677664, 0.0722112879, 0.0349590778, -0.0125570809, -0.289951831, 0.956959009),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(-0.000155583024, 1.4989965, -0.00558754429, -0.207874715, 0.126194224, -0.969981015, 0.0251481663, 0.992004871, 0.123670042, 0.977832198, 0.00131463073, -0.209386244),Alpha)
- end
- coroutine.wrap(function()
- local grabPos = CF.N(RArm.CFrame*CF.N(0,-1,0).p,goto)
- local grabbed;
- for i = 0, 60 do
- grabPos = grabPos*CF.N(0,0,-2)
- Effect{
- Frames=30,
- Color=C3.N(1,1,1),
- CFrame=grabPos,
- Material=Enum.Material.Glass,
- StartTrans=.5,
- StartSize=V3.N(2,2,2),
- EndSize=V3.N(.05,.05,.05),
- RotInc={M.RNG(-10,10)/100,M.RNG(-10,10)/100,M.RNG(-10,10)/100},
- }
- local humanoid, closest = ClosestHumanoid(grabPos.p,3)
- if(humanoid and closest)then
- DealDamage{Who=closest.Parent,MinimumDamage=10,MaximumDamage=15,DamageFX={Type='None'}}
- grabbed = closest
- break
- end
- swait()
- end
- if(grabbed)then
- Attack = true
- NeutralAnims = false
- for i = 0, .8, 0.1 do
- swait()
- local Alpha = .3
- grabbed.Velocity = V3.N()
- grabbed.CFrame = grabbed.CFrame:lerp(Root.CFrame*CF.N(0,0,-1),Alpha)
- RJ.C0 = RJ.C0:lerp(CFrame.new(-0.00344634429, 0.00628662109, -0.00148026343, 0.75930953, 0, -0.650729597, 0, 1, 0, 0.650729597, 0, 0.75930953),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.609584928, -0.948172033, -0.124129198, 0.75930953, 0.107062548, 0.641861856, 0, 0.98637265, -0.164526939, -0.650729597, 0.124926873, 0.748962164),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.506190836, -1.02166057, 0.0191282965, 0.956118941, -0.135200605, -0.259918034, 0.140012994, 0.990149677, 8.89804198e-07, 0.257357597, -0.0363927521, 0.96563077),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.51470876, 0.649386466, -0.323361427, 0.818944454, 0.231612742, -0.525057614, -0.272144943, 0.962256312, -1.45059369e-06, 0.505239666, 0.142892972, 0.851066709),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.22319663, 0.241768777, 0.194730282, 0.310893834, -0.834453106, -0.455008805, 0.937195122, 0.348804891, 0.000674404495, 0.15814656, -0.426641703, 0.890486717),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(0.000409625471, 1.49901021, -0.00495067239, 0.769376218, -0.0367253795, 0.637739301, -3.57576369e-07, 0.998346031, 0.0574919991, -0.638795853, -0.0442332104, 0.768103659),Alpha)
- end
- grabbed.CFrame = Root.CFrame*CF.N(0,0,-1)
- NeutralAnims = true
- Attack = false
- end
- Attack = false
- end)()
- for i = 0, .6, 0.1 do
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(-0.0510072708, -0.208807454, 0.326068789, -0.182427108, 0.0221369285, 0.982970238, 0.241700143, 0.97007823, 0.0230099596, -0.953048587, 0.241781637, -0.18231906),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.604433417, -0.882032454, 0.180244744, 0.924347878, 0.26733616, -0.272236586, -0.268688053, 0.96266073, 0.0330330804, 0.270902455, 0.0426126644, 0.961663187),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.791947305, -0.994135201, 0.0230249092, -0.00238485634, 0.149174631, -0.988808155, -0.0147245601, 0.988698423, 0.1491936, 0.999888837, 0.0149155706, -0.000161394477),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.41238117, 0.628589571, -0.0269960687, 0.890909314, 0.453159511, -0.0304513574, -0.454070926, 0.887209237, -0.0817298144, -0.0100199133, 0.0866409391, 0.996189356),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.37269998, 0.446898848, 0.165745914, 0.0792380422, -0.954313397, -0.288110614, 0.996776819, 0.0722096413, 0.0349587798, -0.0125572607, -0.28995204, 0.95695895),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(-0.000153101981, 1.49899828, -0.00558736548, -0.207986385, 0.0819796473, -0.974690378, 0.023973655, 0.996609509, 0.078707546, 0.977838039, -0.00699678436, -0.209246561),Alpha)
- end
- NeutralAnims = true
- WalkSpeed = 16
- end
- }
- Keystrokes['e'] = {
- Name="Life Sap",
- Condition = function()
- return true
- end,
- Callback = function()
- Attack = true
- NeutralAnims = false
- for i = 0, 1, 0.1 do
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(-1.78813934e-07, 0.0222498477, 0.288053364, 1, 0, 0, 0, 0.966386974, -0.257091999, 0, 0.257091999, 0.966386974),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.506628156, -1.03462243, -0.0130991042, 0.975768089, 0.131600946, 0.174808547, -0.173704952, 0.951709092, 0.253133655, -0.133054227, -0.27736485, 0.951506972),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.516979098, -1.03480744, 0.017331183, 0.957670093, -0.0549535789, -0.282574326, 0.123692922, 0.96492672, 0.231552571, 0.259938926, -0.256703377, 0.930878818),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.51486635, 0.548972011, -0.0415423587, 0.933580399, 0.35836795, 0, -0.346322119, 0.902199924, 0.257091999, 0.0921335295, -0.240016058, 0.966386974),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.52708983, 0.574780107, 0.0518868491, 0.933580399, -0.35836795, 0, 0.346322119, 0.902199924, 0.257091999, -0.0921335295, -0.240016058, 0.966386974),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(8.60053115e-05, 1.49901581, -0.00497283787, 0.999878228, 0.000898618076, -0.015587193, -1.03958882e-06, 0.99834621, 0.0574890226, 0.0156130753, -0.0574819893, 0.998224556),Alpha)
- end
- for i = 0, 1, 0.1 do
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(0, -0.242604285, -0.23000811, 1, 0, 0, 0, 0.879526675, 0.475849807, 0, -0.475849807, 0.879526675),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.496665001, -0.624262273, -0.594773114, 1, 0, 0, 0, 0.949131668, -0.314879715, 0, 0.314879715, 0.949131668),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.498333931, -0.991058588, 0.0170181114, 1, 0, 0, 0, 1.00000024, -3.09944153e-06, 0, 3.09944153e-06, 1.00000024),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.34355807, 0.687274098, -0.352896392, 0.937636614, -0.347616881, 0, -0.165413424, -0.446174204, -0.879526675, 0.30573833, 0.824676394, -0.475849807),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.23112309, 0.723540187, -0.3898817, 0.915779233, 0.401682049, 0, 0.191140339, -0.435773373, -0.879526675, -0.353290111, 0.805452287, -0.475849807),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(8.58306885e-05, 1.49900424, -0.0049726367, 1, 0, 0, 0, 0.879526675, -0.475849807, 0, 0.475849807, 0.879526675),Alpha)
- end
- end
- }
- Keystrokes['r'] = {
- Name="Brawler's Saw",
- Conditions = function()
- return true
- end,
- Callback = function()
- Attack = true
- NeutralAnims = false
- for i = 0, 2.5, 0.1 do
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(-0.00241782935, 0.00628662109, -0.000712112407, 0.891995728, 0, -0.452043861, 0, 1, 0, 0.452043861, 0, 0.891995728),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.447529852, -0.992140234, 0.00763394497, 0.990388036, 0.0491364636, 0.129294902, -0.0487229787, 0.998792112, -0.00636110455, -0.129451275, 3.29688191e-07, 0.991585791),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.498332977, -0.991056442, 0.0170079917, 0.973056912, 0, -0.230565488, 0, 1, 0, 0.230565488, 0, 0.973056912),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.42013586, 0.605196059, 0.00038655274, 0.969952703, 0.24329406, 3.39746475e-06, -0.24329406, 0.969952643, -4.26664229e-07, -3.39746475e-06, -4.02331352e-07, 1.00000012),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.31736588, 0.369182765, 0.32312727, 0.588012218, -0.67716819, -0.442363083, 0.783412337, 0.340714902, 0.519787073, -0.201263577, -0.652193785, 0.730846226)*CF.A(M.RRNG(-9,9),M.RRNG(-9,9),M.RRNG(-9,9)),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(0.000306192786, 1.49900877, -0.00493463874, 0.898944378, -0.0251847897, 0.437338293, -3.57576369e-07, 0.998346031, 0.0574919991, -0.438062817, -0.0516822711, 0.89745754),Alpha)
- Effect{
- Frames=5,
- Mesh={Type=Enum.MeshType.FileMesh,ID='rbxassetid://74322089'},
- CFrame=RArm.CFrame*CF.N(0,-1,0),
- Color=C3.N(1,1,1),
- StartTrans = .6,
- StartSize=V3.N(2.5,2.5,2.5),
- EndSize=V3.N(2.5,2.5,2.5),
- }
- end
- local oWS = WalkSpeed
- WalkSpeed = 0
- for i = 0, .2, 0.1 do
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(0, -1.24850976, -0.658175886, 1, 0, 0, 0, 0.533581018, 0.845749021, 0, -0.845749021, 0.533581018),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.496665955, 0.203642964, -0.161101282, 1, 0, 0, 0, 0.73303467, -0.680191398, 0, 0.680191398, 0.73303467),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.498332977, -0.838229656, -0.136581317, 1, 0, 0, 0, 0.999863148, -0.0165473819, 0, 0.0165473819, 0.999863148),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.45851445, 0.646472394, 0.00037931616, 0.974747658, 0.223309547, -2.86613204e-06, -0.223309547, 0.974747777, -3.12924385e-06, 2.09361315e-06, 3.69548798e-06, 1.00000012),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.4324038, 0.276735246, -0.488369644, 0.986704886, -0.0762845874, 0.143507153, 0.154859453, 0.709243894, -0.687743962, -0.049317304, 0.700823784, 0.711627722),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(8.62792367e-05, 1.49899888, -0.00499115884, 0.999878109, 0.000899905805, -0.0155876474, -2.22306699e-06, 0.998345971, 0.0574939549, 0.0156136034, -0.0574868619, 0.998224258),Alpha)
- end
- -- create saws
- if(State ~= 'Jump' and State ~= 'Fall')then
- coroutine.wrap(function()
- local bigSaw = Part(workspace,C3.N(1,1,1),Enum.Material.Plastic,V3.N(6.4,6.4,0.4),Root.CFrame*CF.N(0,-2,0)*CF.A(0,M.R(90),0),true,false)
- bigSaw.Transparency = .4
- Mesh(bigSaw,Enum.MeshType.FileMesh,'rbxassetid://74322089','',V3.N(5,5,2.5))
- local pos = Root.CFrame*CF.N(0,-2,0)
- local rad = 0
- for i = 0, Frame_Speed*2 do
- pos = pos*CF.N(0,0,-.6)
- AOEDamage(bigSaw.CFrame.p,2,{Debounce=.05,MinimumDamage=1,MaximumDamage=1,Sound={ID=1145359868,Pitch=1.25},DamageFX={Type='Knockback',Origin=pos,KnockBack=35,KnockUp=0}})
- bigSaw.CFrame = pos*CF.A(0,M.R(90),0)*CF.A(0,0,M.R(-i*4))
- swait()
- end
- Effect{
- Mesh={Type=Enum.MeshType.FileMesh,ID='rbxassetid://74322089'},
- CFrame=bigSaw.CFrame,
- Color=C3.N(1,1,1),
- StartTrans = .4,
- StartSize=V3.N(5,5,2.5),
- EndSize=V3.N(10,10,2.5)
- }
- bigSaw:Destroy()
- for s = 1, 3 do
- local smallSaw = Part(workspace,C3.N(1,1,1),Enum.Material.Plastic,V3.N(3.2,3.2,0.4),pos*CF.A(M.R(s*45),0,0),true,false)
- smallSaw.Transparency = .4
- smallSaw.CFrame = pos*CF.A(0,M.R(90),0)
- Mesh(smallSaw,Enum.MeshType.FileMesh,'rbxassetid://74322089','',V3.N(2.5,2.5,2.5))
- local pos = pos*CF.A(0,M.R(90-s*45),0)
- coroutine.wrap(function()
- for i = 0, Frame_Speed*2 do
- pos = pos*CF.N(0,0,-1.2)
- AOEDamage(smallSaw.CFrame.p,2,{Debounce=.05,MinimumDamage=1,MaximumDamage=1,DamageFX={Type='Knockback',Origin=pos,KnockBack=70,KnockUp=0}})
- smallSaw.CFrame = pos*CF.A(0,M.R(90),0)*CF.A(0,0,M.R(-i*8))
- swait()
- end
- smallSaw:destroy()
- Effect{
- Mesh={Type=Enum.MeshType.FileMesh,ID='rbxassetid://74322089'},
- CFrame=smallSaw.CFrame,
- Color=C3.N(1,1,1),
- StartTrans = .4,
- StartSize=V3.N(2.5,2.5,2.5),
- EndSize=V3.N(5,5,2.5)
- }
- end)()
- end
- end)()
- end
- for i = 0, 1.5, 0.1 do
- swait()
- local Alpha = .3
- RJ.C0 = RJ.C0:lerp(CFrame.new(0.00521737337, -0.661216378, -1.07386422, 0.935296118, -0.195601285, 0.294892073, 0, 0.833343804, 0.552755117, -0.353866041, -0.516989768, 0.779423177),Alpha)
- LH.C0 = LH.C0:lerp(CFrame.new(-0.496661186, -0.19598335, -0.531912327, 1, 0, 0, 0, 0.733029962, -0.680196524, 0, 0.680196524, 0.733029902),Alpha)
- RH.C0 = RH.C0:lerp(CFrame.new(0.513545156, -0.952762842, 0.0106689036, 0.935296118, 0.286595523, -0.207567319, -0.195601285, 0.90752387, 0.371672928, 0.294892073, -0.307023793, 0.904861927),Alpha)
- LS.C0 = LS.C0:lerp(CFrame.new(-1.51847279, 0.38471666, 0.192567378, 0.974748015, 0.188941494, 0.119027033, -0.223307669, 0.824733615, 0.519565523, 1.93715096e-06, -0.533025205, 0.846099436),Alpha)
- RS.C0 = RS.C0:lerp(CFrame.new(1.40426719, 0.828945518, -0.503636062, 0.986705124, 0.0460958779, 0.155846745, 0.158296123, -0.48981002, -0.85733819, 0.0368154943, 0.870609879, -0.490594834),Alpha)
- NK.C0 = NK.C0:lerp(CFrame.new(8.26204196e-05, 1.50093818, 0.34676975, 0.999878049, 0.000899977982, -0.0155854225, -0.0079856813, 0.887322009, -0.461081535, 0.0134143233, 0.461149812, 0.887220979),Alpha)
- end
- WalkSpeed = oWS
- Attack = false
- NeutralAnims = true
- end
- }
- --// Wrap it all up \\--
- --[[coroutine.wrap(function()
- while true do
- local h,p = CastRay(Root.CFrame.p,Root.CFrame*CF.N(0,-1,0).p,4)
- if(h)then
- Effect{
- Frames=15,
- Mesh='Blast',
- StartSize=V3.N(.05,.01,.05)*10,
- EndSize=V3.N(.5,.01,.5)*10,
- Color=C3.N(1,1,1),
- CFrame=CF.N(p)*CF.A(M.R(M.RNG(-5,5)),M.RRNG(-5,5),0)
- }
- end
- swait(2)
- end
- end)()]]
- while true do
- swait()
- Sine = Sine + Change
- if(not Music or not Music.Parent)then
- Music = Sound(Torso,MusicID,1,3,true,false,true)
- Music.Name = 'Music'
- end
- Music.SoundId = "rbxassetid://"..MusicID
- Music.Parent = Torso
- Music.Pitch = 1
- Music.Volume = 1
- if(not Muted)then
- Music:Resume()
- else
- Music:Pause()
- end
- if(God)then
- Hum.MaxHealth = 1e100
- Hum.Health = 1e100
- if(not Char:FindFirstChildOfClass'ForceField')then IN("ForceField",Char).Visible = false end
- Hum.Name = M.RNG()*100
- end
- 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)
- local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
- 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")
- if(not Effects or not Effects.Parent)then
- Effects = IN("Model",Char)
- Effects.Name = "Effects"
- end
- if(State == 'Run')then
- local wsVal = 7 / (Hum.WalkSpeed/16)
- local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
- Change = 1
- 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)
- 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)
- elseif(State == 'Walk')then
- local wsVal = 7
- local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
- Change = 1
- RH.C1 = RH.C1:lerp(CF.N(0,1,0)* CF.N(0,0+.15*M.S(Sine/wsVal),0+.1*M.C(Sine/wsVal))*CF.A(M.R(0-30*M.C(Sine/wsVal)+-M.S(Sine/wsVal)),0,0),Alpha)
- LH.C1 = LH.C1:lerp(CF.N(0,1,0)* CF.N(0,0-.15*M.S(Sine/wsVal),0-.1*M.C(Sine/wsVal))*CF.A(M.R(0+30*M.C(Sine/wsVal)+M.S(Sine/wsVal)),0,0),Alpha)
- else
- RH.C1 = RH.C1:lerp(CF.N(0,1,0),.2)
- LH.C1 = LH.C1:lerp(CF.N(0,1,0),.2)
- end
- Hum.WalkSpeed = WalkSpeed
- if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
- if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
- if(NeutralAnims)then
- if(State == 'Idle')then
- local Alpha = .1
- Change = 1
- RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,-.1+.05*M.C(Sine/18),0)*CF.A(M.R(0+2.5*M.C(Sine/18)),M.R(35),M.R(0+2.5*M.C(Sine/18))),Alpha)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(0,M.R(-35),M.R(5)),Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.N(.1,-.2+.1*M.S(Sine/18),-.5)*CF.A(M.R(135-7*M.C(Sine/18)),M.R(0+5*M.S(Sine/18)),M.R(25)),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.N(0,-.2+.1*M.S(Sine/18),-.4)*CF.A(M.R(135-7*M.C(Sine/18)),M.R(0-5*M.S(Sine/18)),M.R(25)),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-.05*M.C(Sine/18),0)*CF.A(0,0,M.R(-10-2.5*M.C(Sine/18)))*CF.A(M.R(0-2.5*M.C(Sine/18)),0,0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0-.05*M.C(Sine/18),-.2)*CF.A(M.R(0-2.5*M.C(Sine/18)),0,M.R(0-2.5*M.C(Sine/18))),Alpha)
- -- idle
- elseif(State == 'Run')then
- local wsVal = 7 / (Hum.WalkSpeed/16)
- local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
- 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)
- NK.C0 = NK.C0:lerp(NKC0,Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0-.3*M.S(Sine/wsVal))*CF.A(M.R(0+45*M.S(Sine/wsVal)),0,M.R(-5)),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0+.3*M.S(Sine/wsVal))*CF.A(M.R(0-45*M.S(Sine/wsVal)),0,M.R(5)),Alpha)
- 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)
- 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)
- elseif(State == 'Walk')then
- local wsVal = 7 / (Hum.WalkSpeed/16)
- local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1)
- local Alpha2 = math.min(.15 * (Hum.WalkSpeed/16),1)
- 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(25+10*M.C(Sine/wsVal)),Root.RotVelocity.y/75),Alpha2)
- NK.C0 = NK.C0:lerp(NKC0*CF.A(0,-M.R(25)-Head.RotVelocity.y/75,0),Alpha)
- LS.C0 = LS.C0:lerp(LSC0*CF.N(.1,-.2+.1*M.S(Sine/18),-.5)*CF.A(M.R(115-7*M.C(Sine/18)),M.R(0+5*M.S(Sine/18)),M.R(15)),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.N(0,-.2+.1*M.S(Sine/18),-.4)*CF.A(M.R(115-7*M.C(Sine/18)),M.R(0-5*M.S(Sine/18)),M.R(15)),Alpha)
- LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,M.R(-25-10*M.C(Sine/wsVal)),0),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.1*M.C(Sine/(wsVal/2)),0)*CF.A(0,M.R(-25-10*M.C(Sine/wsVal)),0),Alpha)
- elseif(State == 'Jump')then
- local Alpha = .1
- local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
- LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)),Alpha)
- 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)
- 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)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
- elseif(State == 'Fall')then
- local Alpha = .1
- local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
- LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
- RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
- 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)
- 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)
- LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
- RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
- elseif(State == 'Paralyzed')then
- -- paralyzed
- elseif(State == 'Sit')then
- -- sit
- end
- end
- for i,v in next, BloodPuddles do
- local mesh = i:FindFirstChild'CylinderMesh'
- BloodPuddles[i] = v + 1
- if(not mesh or i.Transparency >= 1)then
- i:destroy()
- BloodPuddles[i] = nil
- elseif(v >= Frame_Speed*4)then
- local trans = (v-Frame_Speed*4)/(Frame_Speed*2)
- i.Transparency = trans
- if(mesh.Scale.Z > 0)then
- mesh.Scale = mesh.Scale-V3.N(.05,0,.05)
- end
- else
- i.Transparency = 0
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement