Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Project Lazarus: 💀 ZOMBIS 💀
- -local Players = game:GetService('Players')
- local LocalPlayer = Players.LocalPlayer
- local Mouse = LocalPlayer:GetMouse()
- local CurrentCamera = workspace.CurrentCamera
- local Settings = {
- Visual = {
- Nametags = false,
- Tracers = false,
- Chams = false,
- ZombieChams = false,
- Skeletons = false,
- Box3D = false,
- },
- Colors = {
- TeamMainColor = Color3.fromRGB(25,25,200),
- TeamMainOutline = Color3.fromRGB(50,50,255),
- TeamMainFill = Color3.fromRGB(0,0,0),
- EnemyMainColor = Color3.fromRGB(200,75,75),
- EnemyMainOutline = Color3.fromRGB(255,100,100),
- EnemyMainFill = Color3.fromRGB(0,0,0),
- },
- StuffToDestroy = {
- DrawingObjects = {},
- Normal = {},
- Connections = {},
- }
- }
- --< Get Library >--
- local library = loadstring(game:HttpGet("https://pastebin.com/raw/db4qGmB5"))()
- --< Create Window >--
- local window = library:CreateWindow("Esp")
- --< Create Tabs >--
- local VisualsTab = window:CreateTab("Visuals")
- local WeaponTab = window:CreateTab('Weapon Mods')
- local SettingsTab = window:CreateTab("Settings")
- --< Visuals Tab >--
- VisualsTab:CreateToggle('Nametags', false, function(Val) Settings.Visual.Nametags = Val end)
- VisualsTab:CreateToggle('Tracers', false, function(Val) Settings.Visual.Tracers = Val end)
- VisualsTab:CreateToggle('Chams', false, function(Val) Settings.Visual.Chams = Val end)
- VisualsTab:CreateToggle('Zombie Chams', false, function(Val) Settings.Visual.ZombieChams = Val end)
- VisualsTab:CreateToggle('Skeletons', false, function(Val) Settings.Visual.Skeletons = Val end)
- VisualsTab:CreateToggle('3D Box', false, function(Val) Settings.Visual.Box3D = Val end)
- --< Settings Tab >--
- SettingsTab:CreateKeybind("Toggle Menu", "RightAlt", function() window:ToggleWindow() end)
- SettingsTab:CreateColor('Team Main Color', Settings.Colors.TeamMainColor, function(Val) Settings.Colors.TeamMainColor = Val end)
- SettingsTab:CreateColor('Team Main Fill', Settings.Colors.TeamMainFill, function(Val) Settings.Colors.TeamMainFill = Val end)
- SettingsTab:CreateColor('Team Main Outline', Settings.Colors.TeamMainOutline, function(Val) Settings.Colors.TeamMainOutline = Val end)
- SettingsTab:CreateColor('Enemy Main Color', Settings.Colors.EnemyMainColor, function(Val) Settings.Colors.EnemyMainColor = Val end)
- SettingsTab:CreateColor('Enemy Main Fill', Settings.Colors.EnemyMainFill, function(Val) Settings.Colors.EnemyMainFill = Val end)
- SettingsTab:CreateColor('Enemy Main Outline', Settings.Colors.EnemyMainOutline, function(Val) Settings.Colors.EnemyMainOutline = Val end)
- --< Visual Functions >--
- local function CreateLine()
- local NewLine = Drawing.new('Line')
- NewLine.Color = Color3.fromRGB(255, 255, 255)
- NewLine.Thickness = 1
- NewLine.From = Vector2.new(0, 0)
- NewLine.To = Vector2.new(1, 1)
- NewLine.Visible = false
- table.insert(Settings.StuffToDestroy.DrawingObjects, NewLine)
- return NewLine
- end
- local function CreateText()
- local NewText = Drawing.new('Text')
- NewText.Size = 15
- NewText.Outline = true
- NewText.Center = true
- NewText.Visible = false
- table.insert(Settings.StuffToDestroy.DrawingObjects, NewText)
- return NewText
- end
- local function CreateCham(Name, Adornee)
- local NewCham = Instance.new('Highlight', game.Lighting)
- NewCham.Name = Name
- NewCham.Adornee = Adornee
- NewCham.FillTransparency = 0
- NewCham.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
- NewCham.Enabled = false
- table.insert(Settings.StuffToDestroy.Normal, NewCham)
- return NewCham
- end
- local function ChangeLine(Line, newFrom, newTo, newColor)
- Line.From = Vector2.new(newFrom.X, newFrom.Y)
- Line.To = Vector2.new(newTo.X, newTo.Y)
- Line.Color = newColor
- Line.Visible = true
- end
- local function GetBones(Char)
- local BoneTable = {}
- pcall(function()
- if Char.Humanoid.RigType == Enum.HumanoidRigType.R15 then
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.Head.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.UpperTorso.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.LowerTorso.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.RightUpperArm.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.RightLowerArm.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.RightHand.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.LeftUpperArm.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.LeftLowerArm.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.LeftHand.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.RightUpperLeg.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.RightLowerLeg.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.RightFoot.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.LeftUpperLeg.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.LeftLowerLeg.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.LeftFoot.Position)
- elseif Char.Humanoid.RigType == Enum.HumanoidRigType.R6 then
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.Head.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char.Torso.Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char['Right Arm'].Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char['Left Arm'].Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char['Right Leg'].Position)
- BoneTable[#BoneTable+1] = CurrentCamera:WorldToViewportPoint(Char['Left Leg'].Position)
- else
- print('Humanoid not valid.')
- end
- end)
- if #BoneTable == 0 then print('Table with no bones?') end
- return BoneTable
- end
- local function DrawBones(SkeletonTable, BoneTable, Color)
- pcall(function()
- if #BoneTable == 15 then
- ChangeLine(SkeletonTable['Head'], BoneTable[1], BoneTable[3], Color)
- ChangeLine(SkeletonTable['RUA'], BoneTable[2], BoneTable[4], Color)
- ChangeLine(SkeletonTable['RLA'], BoneTable[4], BoneTable[5], Color)
- ChangeLine(SkeletonTable['RH'], BoneTable[5], BoneTable[6], Color)
- ChangeLine(SkeletonTable['LUA'], BoneTable[2], BoneTable[7], Color)
- ChangeLine(SkeletonTable['LLA'], BoneTable[7], BoneTable[8], Color)
- ChangeLine(SkeletonTable['LH'], BoneTable[8], BoneTable[9], Color)
- ChangeLine(SkeletonTable['RUL'], BoneTable[3], BoneTable[10], Color)
- ChangeLine(SkeletonTable['RLL'], BoneTable[10], BoneTable[11], Color)
- ChangeLine(SkeletonTable['RF'], BoneTable[11], BoneTable[12], Color)
- ChangeLine(SkeletonTable['LUL'], BoneTable[3], BoneTable[13], Color)
- ChangeLine(SkeletonTable['LLL'], BoneTable[13], BoneTable[14], Color)
- ChangeLine(SkeletonTable['LF'], BoneTable[14], BoneTable[15], Color)
- elseif #BoneTable == 6 then
- ChangeLine(SkeletonTable['Head'], BoneTable[1], BoneTable[2], Color)
- ChangeLine(SkeletonTable['RUA'], BoneTable[2], BoneTable[3], Color)
- ChangeLine(SkeletonTable['LUA'], BoneTable[2], BoneTable[4], Color)
- ChangeLine(SkeletonTable['RUL'], BoneTable[2], BoneTable[5], Color)
- ChangeLine(SkeletonTable['LUL'], BoneTable[2], BoneTable[6], Color)
- end
- end)
- end
- local function Draw3DBox(Table, Character, Color)
- local op = Vector3.new(Character.HumanoidRootPart.Position.X - .25, Character.HumanoidRootPart.Position.Y - .5, Character.HumanoidRootPart.Position.Z)
- local X = 1.5
- local Y = 2.5
- local Z = 1.5
- local Top1 = CurrentCamera:WorldToViewportPoint(op + Vector3.new(-X, Y, -Z))
- local Top2 = CurrentCamera:WorldToViewportPoint(op + Vector3.new(X, Y, -Z))
- local Top3 = CurrentCamera:WorldToViewportPoint(op + Vector3.new(X, Y, Z))
- local Top4 = CurrentCamera:WorldToViewportPoint(op + Vector3.new(-X, Y, Z))
- local Bottom1 = CurrentCamera:WorldToViewportPoint(op + Vector3.new(-X, -Y, -Z))
- local Bottom2 = CurrentCamera:WorldToViewportPoint(op + Vector3.new(X, -Y, -Z))
- local Bottom3 = CurrentCamera:WorldToViewportPoint(op + Vector3.new(X, -Y, Z))
- local Bottom4 = CurrentCamera:WorldToViewportPoint(op + Vector3.new(-X, -Y, Z))
- ChangeLine(Table.Test1, Vector2.new(Top1.X, Top1.Y), Vector2.new(Top2.X, Top2.Y), Color)
- ChangeLine(Table.Test2, Vector2.new(Top2.X, Top2.Y), Vector2.new(Top3.X, Top3.Y), Color)
- ChangeLine(Table.Test3, Vector2.new(Top3.X, Top3.Y), Vector2.new(Top4.X, Top4.Y), Color)
- ChangeLine(Table.Test4, Vector2.new(Top4.X, Top4.Y), Vector2.new(Top1.X, Top1.Y), Color)
- ChangeLine(Table.Test5, Vector2.new(Bottom1.X, Bottom1.Y), Vector2.new(Bottom2.X, Bottom2.Y), Color)
- ChangeLine(Table.Test6, Vector2.new(Bottom2.X, Bottom2.Y), Vector2.new(Bottom3.X, Bottom3.Y), Color)
- ChangeLine(Table.Test7, Vector2.new(Bottom3.X, Bottom3.Y), Vector2.new(Bottom4.X, Bottom4.Y), Color)
- ChangeLine(Table.Test8, Vector2.new(Bottom4.X, Bottom4.Y), Vector2.new(Bottom1.X, Bottom1.Y), Color)
- ChangeLine(Table.Test9, Vector2.new(Top1.X, Top1.Y), Vector2.new(Bottom1.X, Bottom1.Y), Color)
- ChangeLine(Table.Test10, Vector2.new(Top2.X, Top2.Y), Vector2.new(Bottom2.X, Bottom2.Y), Color)
- ChangeLine(Table.Test11, Vector2.new(Top3.X, Top3.Y), Vector2.new(Bottom3.X, Bottom3.Y), Color)
- ChangeLine(Table.Test12, Vector2.new(Top4.X, Top4.Y), Vector2.new(Bottom4.X, Bottom4.Y), Color)
- end
- local function RemoveFromTable(Table, Object)
- for i=1,#Table do
- if Table[i] == Object then table.remove(Table, i) end
- end
- end
- local function Esp(Character)
- local Player = Players:FindFirstChild(Character.Name)
- local Tracer = CreateLine()
- local Text = CreateText()
- local Cham = CreateCham(Player.Name, Character)
- local SkeletonTable = {
- Head = CreateLine(),
- RUA = CreateLine(),
- RLA = CreateLine(),
- RH = CreateLine(),
- LUA = CreateLine(),
- LLA = CreateLine(),
- LH = CreateLine(),
- RUL = CreateLine(),
- RLL = CreateLine(),
- RF= CreateLine(),
- LUL = CreateLine(),
- LLL = CreateLine(),
- LF= CreateLine(),
- }
- local Box3DTable = {
- Test1 = CreateLine(),
- Test2 = CreateLine(),
- Test3 = CreateLine(),
- Test4 = CreateLine(),
- Test5 = CreateLine(),
- Test6 = CreateLine(),
- Test7 = CreateLine(),
- Test8 = CreateLine(),
- Test9 = CreateLine(),
- Test10 = CreateLine(),
- Test11 = CreateLine(),
- Test12 = CreateLine(),
- }
- local Conn = Settings.StuffToDestroy.Connections[Player.Name]
- Conn = game:GetService('RunService').RenderStepped:Connect(function()
- if Player and Players:FindFirstChild(Player.Name) and Character and Character:FindFirstChild('HumanoidRootPart') and Character:FindFirstChild('Humanoid') and Character.Humanoid.Health > 0 then
- --// Set to invisible just in case \\--
- Tracer.Visible = false
- Text.Visible = false
- Cham.Enabled = false
- for i,v in pairs(SkeletonTable) do v.Visible = false end
- for i,v in pairs(Box3DTable) do v.Visible = false end
- --// Main \\--
- local Pos, Vis = CurrentCamera:WorldToViewportPoint(Character.HumanoidRootPart.Position)
- local HeadPos = CurrentCamera:WorldToViewportPoint(Character:WaitForChild('Head').Position + Vector3.new(0, 1.5, 0))
- if Vis then
- if Settings.Visual.Tracers then
- ChangeLine(Tracer, Vector2.new(Mouse.X, Mouse.Y + 36), Vector2.new(Pos.X, Pos.Y), Settings.Colors.TeamMainColor)
- end
- if Settings.Visual.Nametags then
- Text.Text = Player.Name
- Text.Position = Vector2.new(HeadPos.X, HeadPos.Y)
- Text.Color = Settings.Colors.TeamMainColor
- Text.Visible = true
- end
- if Settings.Visual.Chams then
- Cham.FillColor = Settings.Colors.TeamMainFill
- Cham.OutlineColor = Settings.Colors.TeamMainOutline
- Cham.Enabled = true
- end
- if Settings.Visual.Skeletons then
- DrawBones(SkeletonTable, GetBones(Character), Settings.Colors.TeamMainColor)
- end
- if Settings.Visual.Box3D then
- Draw3DBox(Box3DTable, Character, Settings.Colors.TeamMainColor)
- end
- end
- else
- RemoveFromTable(Settings.StuffToDestroy.DrawingObjects, Tracer)
- RemoveFromTable(Settings.StuffToDestroy.DrawingObjects, Text)
- RemoveFromTable(Settings.StuffToDestroy.Normal, Cham)
- for i,v in pairs(SkeletonTable) do RemoveFromTable(Settings.StuffToDestroy.DrawingObjects, v) end
- for i,v in pairs(Box3DTable) do RemoveFromTable(Settings.StuffToDestroy.DrawingObjects, v) end
- RemoveFromTable(Settings.StuffToDestroy.Connections, Conn)
- Tracer:Remove()
- Text:Remove()
- Cham:Destroy()
- for i,v in pairs(SkeletonTable) do v:Remove() end
- for i,v in pairs(Box3DTable) do v:Remove() end
- Conn:Disconnect()
- end
- end)
- end
- local function ZombieEsp(Zombie)
- local Cham = CreateCham('Zombie', Zombie)
- local Conn = Settings.StuffToDestroy.Connections[#Settings.StuffToDestroy.Connections+1]
- Conn = game:GetService('RunService').RenderStepped:Connect(function()
- if Zombie and Zombie:FindFirstChild('HumanoidRootPart') and Zombie:FindFirstChild('Humanoid') and Zombie.Humanoid.Health > 0 then
- --// Set to invisible just in case \\--
- Cham.Enabled = false
- --// Main \\--
- local Pos, Vis = CurrentCamera:WorldToViewportPoint(Zombie.HumanoidRootPart.Position)
- if Vis then
- if Settings.Visual.ZombieChams then
- Cham.FillColor = Settings.Colors.EnemyMainFill
- Cham.OutlineColor = Settings.Colors.EnemyMainOutline
- Cham.Enabled = true
- end
- end
- else
- RemoveFromTable(Settings.StuffToDestroy.Normal, Cham)
- RemoveFromTable(Settings.StuffToDestroy.Connections, Conn)
- Cham:Destroy()
- Conn:Disconnect()
- end
- end)
- end
- for i,v in pairs(Players:GetPlayers()) do
- if v ~= LocalPlayer then
- table.insert(Settings.StuffToDestroy.Connections, v.CharacterAdded:Connect(Esp))
- if v.Character then
- Esp(v.Character)
- end
- end
- end
- Settings.StuffToDestroy.Connections['PlayerAdded'] = Players.PlayerAdded:Connect(function(Player)
- if Player ~= LocalPlayer then
- table.insert(Settings.StuffToDestroy.Connections, Player.CharacterAdded:Connect(Esp))
- if Player.Character then
- Esp(Player.Character)
- end
- end
- end)
- for i,v in pairs(workspace.Baddies:GetChildren()) do
- ZombieEsp(v)
- end
- Settings.StuffToDestroy.Connections['ZombieAdded'] = workspace.Baddies.ChildAdded:Connect(ZombieEsp)
- --< Weapon Functions >--
- local ThingsToRefresh = {}
- local Path = nil
- local function RefreshWeapons()
- local Scripts = {}
- for i,v in pairs(LocalPlayer:WaitForChild('Backpack'):GetChildren()) do
- if v:IsA('ModuleScript') and string.find(v.Name, 'Weapon') then table.insert(Scripts, v) end
- end
- local temp = {}
- for i,v in pairs(Scripts) do
- table.insert(temp, v.Name .. ' (' .. v.WeaponName.Value .. ')')
- end
- return temp
- end
- local function AddShit()
- if Path ~= nil then
- local s = require(Path)
- if s.Ammo ~= nil then -- See if in game
- table.insert(ThingsToRefresh, WeaponTab:CreateToggle('No Spread', false, function(Val)
- if Val then
- s.Spread.MaxOld = s.Spread.Max
- s.Spread.MinOld = s.Spread.Min
- s.Spread = {Max = 0, Min = 0}
- else
- s.Spread.Max = s.Spread.MaxOld
- s.Spread.Min = s.Spread.MinOld
- end
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateToggle('No Recoil', false, function(Val)
- if Val then
- s.ViewKick.Pitch.MaxOld = s.ViewKick.Pitch.Max
- s.ViewKick.Pitch.MinOld = s.ViewKick.Pitch.Min
- s.ViewKick.Yaw.MaxOld = s.ViewKick.Yaw.Max
- s.ViewKick.Yaw.MinOld = s.ViewKick.Yaw.Min
- s.ViewKick = {
- Pitch = {Max = 0, Min = 0},
- Yaw = {Max = 0, Min = 0}
- }
- else
- s.ViewKick.Pitch.Max = s.ViewKick.Pitch.MaxOld
- s.ViewKick.Pitch.Min = s.ViewKick.Pitch.MinOld
- s.ViewKick.Yaw.Max = s.ViewKick.Yaw.MaxOld
- s.ViewKick.Yaw.Min = s.ViewKick.Yaw.MinOld
- end
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Name: ', s.WeaponName, function(Val)
- s.WeaponName = tostring(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Damage Max', s.Damage.Max, function(Val)
- s.Damage.Max = Val
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Damage Min', s.Damage.Min, function(Val)
- s.Damage.Min = Val
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Ammo: ', s.Ammo, function(Val)
- s.Ammo = tonumber(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Stored Ammo: ', s.StoredAmmo, function(Val)
- s.StoredAmmo = tonumber(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Mag Size: ', s.MagSize, function(Val)
- s.MagSize = tonumber(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Max Ammo: ', s.MaxAmmo, function(Val)
- s.MaxAmmo = tonumber(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Bullet Penetration: ', s.BulletPenetration, function(Val)
- s.BulletPenetration = tonumber(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Fire Rate: ', s.FireTime, function(Val)
- s.FireTime = tonumber(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Aim FOV: ', s.AimFOV, function(Val)
- s.AimFOV = tonumber(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Move Speed: ', s.MoveSpeed, function(Val)
- s.MoveSpeed = tonumber(Val)
- end))
- table.insert(ThingsToRefresh, WeaponTab:CreateTextbox('Semi-Auto', tostring(s.Semi), function(Val)
- s.Semi = Val:lower() == "true"
- end))
- else
- warn('Not in game, unable to edit weapon stats.')
- end
- else
- print('Not alive.')
- end
- end
- local wd = WeaponTab:CreateDropdown("Choose Weapon", RefreshWeapons(), "None", function(Option)
- Path = LocalPlayer:WaitForChild('Backpack')[Option:split(' ')[1]] or nil
- AddShit()
- end)
- WeaponTab:CreateButton("Refresh", function()
- --// Remove Previous Things \\--
- for i,v in pairs(ThingsToRefresh) do
- v:Destroy()
- end
- ThingsToRefresh = {}
- Path = nil
- --// Refresh Dropdown \\--
- wd:Refresh(RefreshWeapons())
- end)
- --< Destroy Stuff >--
- game.CoreGui.TreysHub.Destroying:Connect(function()
- for i,v in pairs(Settings.StuffToDestroy.DrawingObjects) do
- v:Remove()
- end
- for i,v in pairs(Settings.StuffToDestroy.Normal) do
- v:Destroy()
- end
- for i,v in pairs(Settings.StuffToDestroy.Connections) do
- v:Disconnect()
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement