
Key Required

--[[
Project Lazarus: ZOMBIES - Cheat Hub (V3.5 - UI Dragging Fix)
Created for IIIIMREALONE
Features:
1. Anti-Cheat Bypass (Bypasses SendData, MemCheck, AC Tamper, ESP and ZombieBox checks)
2. Hooked WalkSpeed & JumpPower (Bypasses game-loop resets using metamethod hooks + RenderStepped loops)
3. Changeable Keybinds (Click on bind button next to toggles, press any key to re-bind)
4. Premium Keybind HUD (Draggable, minimal widget displaying active binds and current states)
5. Frame-Locked Static Ammo (Uses cached table references and active upvalue pointers to freeze ammo at 67 on RenderStepped)
6. Ultimate Weapon Mods (GC Scan and Equipped state updates for constant 67 ammo and no recoil)
GUI Controls:
- Toggle GUI: Default [Insert] or [RightShift] (Re-bindable)
- Toggle ESP: Default [G] (Re-bindable)
- Toggle Weapon Mods: Default [V] (Re-bindable)
- Toggle Speed Hack: Default [F] (Re-bindable)
- Toggle Noclip: Default [N] (Re-bindable)
- Instant Kill All: Default [C] (Re-bindable)
]]
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
-- Reset load check
_G.LazarusHubLoaded = nil
-- Clean up any existing GUI/HUD
local oldGui = game.CoreGui:FindFirstChild("LazarusHubV3") or game.CoreGui:FindFirstChild("LazarusHub")
if oldGui then pcall(function() oldGui:Destroy() end) end
local oldHud = game.CoreGui:FindFirstChild("LazarusKeybindHUD")
if oldHud then pcall(function() oldHud:Destroy() end) end
_G.LazarusHubLoaded = true
----------------------------------------------------------------
-- CONFIGURATION & BINDS STATE
----------------------------------------------------------------
local Config = {
-- Weapon Mods
WeaponModsEnabled = false,
InfiniteAmmo = false,
AlwaysAuto = false,
NoRecoil = false,
NoSpread = false,
NoSway = false,
InstantReload = false,
InfPenetration = false,
RapidFire = false,
RapidFireVal = 0.08,
DamageMode = "Normal",
CustomDamageVal = 100,
-- Visuals
EspEnabled = false,
EspBoxes = true,
EspNames = false,
EspHealth = false,
EspDistance = false,
EspColor = Color3.fromRGB(0, 180, 255),
-- Combat
KillAllActive = false,
AutoKillDelay = 0.2,
-- Player
SpeedHackEnabled = false,
WalkSpeedValue = 45,
JumpHackEnabled = false,
JumpPowerValue = 70,
InfJumpEnabled = false,
NoclipEnabled = false
}
local Binds = {
ToggleMenu = Enum.KeyCode.Insert,
ESP = Enum.KeyCode.G,
WeaponMods = Enum.KeyCode.V,
SpeedHack = Enum.KeyCode.F,
Noclip = Enum.KeyCode.N,
KillAll = Enum.KeyCode.C
}
local bindNames = {
ToggleMenu = "Toggle Menu GUI",
ESP = "Toggle ESP",
WeaponMods = "Toggle Weapon Mods",
SpeedHack = "Toggle Speed Hack",
Noclip = "Toggle Noclip",
KillAll = "Instant Kill All"
}
local listeningToBindAction = nil
local activeBindsButtons = {}
-- Caches to avoid scanning garbage collector every frame
local activeWeaponTable = nil
local ammoUpvalues = {} -- holds list of {func, index} for active ammo variables
----------------------------------------------------------------
-- 1. METAMETHOD HOOKS (BYPASS SPEED/JUMP RESET & ANTI-CHEAT)
----------------------------------------------------------------
local SendData = ReplicatedStorage:WaitForChild("ClientRemotes"):WaitForChild("SendData")
local UpdateDamageKey = ReplicatedStorage:WaitForChild("UpdateDamageKey")
local originalStats = {}
local damageKey = nil
-- Cache original weapon stats
local function cacheWeapon(wp)
if wp:IsA("ModuleScript") and wp.Name:sub(1,6) == "Weapon" then
local ok, data = pcall(require, wp)
if ok and data then
local wIndex = wp.Name
if not originalStats[wIndex] then
originalStats[wIndex] = {
WeaponName = data.WeaponName or "Beretta M9",
Ammo = data.Ammo or 8,
StoredAmmo = data.StoredAmmo or 32,
MagSize = data.MagSize or 8,
MaxAmmo = data.MaxAmmo or 32,
DamageMax = data.Damage and data.Damage.Max or 20,
DamageMin = data.Damage and data.Damage.Min or 20,
FireTime = data.FireTime or 0.1,
Semi = (data.Semi ~= nil) and data.Semi or true,
ReloadTime = data.ReloadTime or 1.8,
Penetration = data.Penetration or 1,
GunKick = data.GunKick or 0.05,
Sway = data.Sway or 0.01,
Spread = data.Spread and {
Min = data.Spread.Min or 0,
Max = data.Spread.Max or 0,
Movement = data.Spread.Movement or 0
} or {Min = 0, Max = 0, Movement = 0},
ViewKick = data.ViewKick and {
Pitch = data.ViewKick.Pitch and {Min = data.ViewKick.Pitch.Min or 0, Max = data.ViewKick.Pitch.Max or 0} or {Min = 0, Max = 0},
Yaw = data.ViewKick.Yaw and {Min = data.ViewKick.Yaw.Min or 0, Max = data.ViewKick.Yaw.Max or 0} or {Min = 0, Max = 0}
} or nil
}
end
end
end
end
for _, item in ipairs(LocalPlayer.Backpack:GetChildren()) do cacheWeapon(item) end
if LocalPlayer.Character then
for _, item in ipairs(LocalPlayer.Character:GetChildren()) do cacheWeapon(item) end
end
-- Hook UpdateDamageKey to capture the security key
local oldInvokeServer
oldInvokeServer = hookfunction(UpdateDamageKey.InvokeServer, newcclosure(function(self, ...)
local args = {...}
damageKey = args[1]
print("[BYPASS] Captured Damage Key:", damageKey)
return oldInvokeServer(self, ...)
end))
-- NewIndex Metamethod Hook for Bypassing WalkSpeed/JumpPower resets & spoofing values
local oldNewIndex
oldNewIndex = hookmetamethod(game, "__newindex", newcclosure(function(self, idx, val)
if not checkcaller() and self:IsA("Humanoid") then
if idx == "WalkSpeed" and Config.SpeedHackEnabled then
return oldNewIndex(self, idx, Config.WalkSpeedValue)
elseif idx == "JumpPower" and Config.JumpHackEnabled then
return oldNewIndex(self, idx, Config.JumpPowerValue)
elseif idx == "JumpHeight" and Config.JumpHackEnabled then
return oldNewIndex(self, idx, Config.JumpPowerValue / 7.84)
end
end
return oldNewIndex(self, idx, val)
end))
-- Hook Namecall to block anti-cheat checks & spoof weapon data
local oldNamecall
oldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(self, ...)
local method = getnamecallmethod()
local args = {...}
if self == SendData and (method == "FireServer" or method == "fireServer") then
local eventName = args[1]
if type(eventName) == "string" then
-- Block AC detection logs
if eventName == "AC Tamper" or eventName == "MemCheck" or eventName == "ZombieBox" or eventName == "ESP" then
print("[BYPASS] Blocked Anti-Cheat Check:", eventName)
return
end
-- Spoof weapon stats so the server thinks they are unmodified
if eventName:sub(1,1) == "W" then
local wIndex = eventName
local default = originalStats[wIndex]
if not default then
local wp = LocalPlayer.Backpack:FindFirstChild(wIndex) or (LocalPlayer.Character and LocalPlayer.Character:FindFirstChild(wIndex))
if wp then cacheWeapon(wp) end
default = originalStats[wIndex]
end
if default and type(args[2]) == "table" then
args[2].WeaponName = default.WeaponName
args[2].Ammo = default.Ammo
args[2].StoredAmmo = default.StoredAmmo
args[2].DamageMax = default.DamageMax
args[2].DamageMin = default.DamageMin
args[2].FireTime = default.FireTime
end
return oldNamecall(self, unpack(args))
end
end
end
-- Capture damage key from normal shooting if we missed it
if self.Name == "Damage" and (method == "FireServer" or method == "fireServer") then
local key = args[2]
if key and type(key) == "number" and key >= 0 and key < 1 then
damageKey = key
end
end
return oldNamecall(self, ...)
end))
-- Function to search GC for existing damage key
local function getDamageKeyFromGC()
if not getgc then return end
local getinfo = debug.getinfo or getinfo
if not getinfo then return end
for _, f in ipairs(getgc()) do
if type(f) == "function" then
local infoOk, info = pcall(getinfo, f)
if infoOk and info and info.source and info.source:find("WeaponScript") then
for i = 1, 30 do
local ok, name, val = pcall(debug.getupvalue, f, i)
if ok and type(val) == "number" and val >= 0 and val < 1 then
damageKey = val
return val
end
end
end
end
end
end
getDamageKeyFromGC() -- Try to capture immediately
----------------------------------------------------------------
-- 2. CORE CHEAT LOGIC & LOOPS
----------------------------------------------------------------
-- Metatable helper to make Ammo and MagSize 100% read-only and static
local function makeAmmoStatic(t)
local mt = getmetatable(t)
if mt and mt.__isStaticAmmo then return end
local oldIndex = mt and mt.__index
local oldNewIndex = mt and mt.__newindex
local newMt = {
__isStaticAmmo = true,
__index = function(self, key)
if key == "Ammo" or key == "MagSize" then
if Config.WeaponModsEnabled and Config.InfiniteAmmo then
return 67
else
local default = originalStats[rawget(self, "WeaponName")]
return default and default[key] or 8
end
end
if type(oldIndex) == "function" then return oldIndex(self, key)
elseif type(oldIndex) == "table" then return oldIndex[key] end
return rawget(self, key)
end,
__newindex = function(self, key, val)
if key == "Ammo" or key == "MagSize" then
if Config.WeaponModsEnabled and Config.InfiniteAmmo then
-- Ignore write to keep it static
return
else
rawset(self, key, val)
return
end
end
if type(oldNewIndex) == "function" then oldNewIndex(self, key, val)
elseif type(oldNewIndex) == "table" then oldNewIndex[key] = val
else rawset(self, key, val) end
end
}
setmetatable(t, newMt)
end
-- Apply modifications to a weapon table
local function modifyWeaponTable(t, default)
if not t or not default then return end
makeAmmoStatic(t)
if Config.WeaponModsEnabled then
-- 1. Infinite Ammo (Frozen at 67 to prevent reload loops and keep never-ending status)
if Config.InfiniteAmmo then
rawset(t, "Ammo", nil)
rawset(t, "MagSize", nil)
t.StoredAmmo = 9999
t.MaxAmmo = 9999
t.ReloadTime = 0.02
else
rawset(t, "Ammo", default.Ammo)
rawset(t, "MagSize", default.MagSize)
t.StoredAmmo = default.StoredAmmo
t.MaxAmmo = default.MaxAmmo
t.ReloadTime = default.ReloadTime
end
-- 2. Rapid Fire
if Config.RapidFire then
t.FireTime = Config.RapidFireVal
else
t.FireTime = default.FireTime
end
-- 3. Always Auto
if Config.AlwaysAuto then
t.Semi = false
else
t.Semi = default.Semi
end
-- 4. No Recoil
if Config.NoRecoil then
if t.ViewKick then
t.ViewKick.Pitch = {Min = 0, Max = 0}
t.ViewKick.Yaw = {Min = 0, Max = 0}
end
t.GunKick = 0
else
if default.ViewKick and t.ViewKick then
t.ViewKick.Pitch = {Min = default.ViewKick.Pitch.Min, Max = default.ViewKick.Pitch.Max}
t.ViewKick.Yaw = {Min = default.ViewKick.Yaw.Min, Max = default.ViewKick.Yaw.Max}
end
t.GunKick = default.GunKick
end
-- 5. No Spread
if Config.NoSpread then
if t.Spread then
t.Spread.Min = 0
t.Spread.Max = 0
t.Spread.Movement = 0
end
else
if default.Spread and t.Spread then
t.Spread.Min = default.Spread.Min
t.Spread.Max = default.Spread.Max
t.Spread.Movement = default.Spread.Movement
end
end
-- 6. Damage Mode
if Config.DamageMode == "One-Shot" then
t.Damage = {Max = 99999, Min = 99999}
elseif Config.DamageMode == "Custom" then
t.Damage = {Max = Config.CustomDamageVal, Min = Config.CustomDamageVal}
else
if t.Damage then
t.Damage.Max = default.DamageMax
t.Damage.Min = default.DamageMin
end
end
-- 7. Instant Reload (Standalone check)
if Config.InstantReload then
t.ReloadTime = 0.02
else
if not Config.InfiniteAmmo then
t.ReloadTime = default.ReloadTime
end
end
-- 8. Infinite Penetration
if Config.InfPenetration then
t.Penetration = 99
else
t.Penetration = default.Penetration
end
-- 9. No Sway
if Config.NoSway then
t.Sway = 0
else
t.Sway = default.Sway
end
else
-- Restore all defaults
t.Ammo = default.Ammo
t.StoredAmmo = default.StoredAmmo
t.MagSize = default.MagSize
t.MaxAmmo = default.MaxAmmo
t.FireTime = default.FireTime
t.Semi = default.Semi
if default.ViewKick and t.ViewKick then
t.ViewKick.Pitch = {Min = default.ViewKick.Pitch.Min, Max = default.ViewKick.Pitch.Max}
t.ViewKick.Yaw = {Min = default.ViewKick.Yaw.Min, Max = default.ViewKick.Yaw.Max}
end
t.GunKick = default.GunKick
if default.Spread and t.Spread then
t.Spread.Min = default.Spread.Min
t.Spread.Max = default.Spread.Max
t.Spread.Movement = default.Spread.Movement
end
if t.Damage then
t.Damage.Max = default.DamageMax
t.Damage.Min = default.DamageMin
end
t.ReloadTime = default.ReloadTime
t.Penetration = default.Penetration
t.Sway = default.Sway
end
end
-- GC Scanner to overwrite Weapon Variables dynamically
local function scanAndModifyGC()
if not getgc then return end
local getinfo = debug.getinfo or getinfo
if not getinfo then return end
local tempAmmoUpvalues = {}
for _, f in ipairs(getgc()) do
if type(f) == "function" then
local infoOk, info = pcall(getinfo, f)
if infoOk and info and info.source and info.source:find("WeaponScript") then
for i = 1, 60 do
local ok, name, val = pcall(debug.getupvalue, f, i)
if not ok or not name then break end
-- Cache current weapon table pointer
if type(val) == "table" and val.WeaponName and (val.FireTime or val.Semi ~= nil) then
activeWeaponTable = val
local default = originalStats[val.WeaponName]
if default then
modifyWeaponTable(val, default)
end
end
-- Record active Ammo variable locations to freeze them on render thread
if name == "Ammo" then
table.insert(tempAmmoUpvalues, {func = f, index = i})
elseif name == "MagSize" then
table.insert(tempAmmoUpvalues, {func = f, index = i})
end
if Config.WeaponModsEnabled then
if name == "FireTime" and Config.RapidFire then
pcall(debug.setupvalue, f, i, Config.RapidFireVal)
elseif name == "Semi" and Config.AlwaysAuto then
pcall(debug.setupvalue, f, i, false)
elseif name == "ReloadTime" and Config.InstantReload then
pcall(debug.setupvalue, f, i, 0.02)
elseif name == "Spread" and Config.NoSpread then
pcall(debug.setupvalue, f, i, {Min = 0, Max = 0, Movement = 0})
elseif name == "Ammo" and Config.InfiniteAmmo then
pcall(debug.setupvalue, f, i, 67)
elseif name == "MagSize" and Config.InfiniteAmmo then
pcall(debug.setupvalue, f, i, 67)
end
end
end
end
end
end
if #tempAmmoUpvalues > 0 then
ammoUpvalues = tempAmmoUpvalues
end
end
-- Active Weapon Loop
local function updateAllWeapons()
for _, item in ipairs(LocalPlayer.Backpack:GetChildren()) do
if item:IsA("ModuleScript") and item.Name:sub(1,6) == "Weapon" then
cacheWeapon(item)
local ok, data = pcall(require, item)
if ok and data then modifyWeaponTable(data, originalStats[item.Name]) end
end
end
if LocalPlayer.Character then
for _, item in ipairs(LocalPlayer.Character:GetChildren()) do
if item:IsA("ModuleScript") and item.Name:sub(1,6) == "Weapon" then
cacheWeapon(item)
local ok, data = pcall(require, item)
if ok and data then modifyWeaponTable(data, originalStats[item.Name]) end
end
end
end
if _G.Equipped and type(_G.Equipped) == "table" then
local default = originalStats[_G.Equipped.WeaponName]
if default then modifyWeaponTable(_G.Equipped, default) end
end
scanAndModifyGC()
end
task.spawn(function()
while true do
task.wait(0.3)
updateAllWeapons()
end
end)
LocalPlayer.Backpack.ChildAdded:Connect(function(child)
task.wait(0.2)
cacheWeapon(child)
updateAllWeapons()
end)
-- Real-time loops (NoRecoil & Speedhack & Infinite Ammo Locking on RenderStepped)
local function applyPhysicalMods()
if LocalPlayer.Character then
-- 1. No Recoil Camera Lock
if Config.WeaponModsEnabled and Config.NoRecoil then
local RotCam = LocalPlayer.Character:FindFirstChild("RotCam")
if RotCam then
if RotCam:IsA("Vector3Value") then RotCam.Value = Vector3.new(0, 0, 0)
elseif RotCam:IsA("NumberValue") then RotCam.Value = 0
elseif RotCam:IsA("CFrameValue") then RotCam.Value = CFrame.new() end
end
end
-- 2. Force WalkSpeed and JumpPower (Every Frame to bypass game loop resets)
local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
if hum then
if Config.SpeedHackEnabled then
hum.WalkSpeed = Config.WalkSpeedValue
end
if Config.JumpHackEnabled then
if hum.UseJumpPower then
hum.JumpPower = Config.JumpPowerValue
else
hum.JumpHeight = Config.JumpPowerValue / 7.84
end
end
end
end
-- 3. LOCK AMMO TO STATIC 67 EVERY SINGLE FRAME (Prevents visual flicker and recoil delays)
if Config.WeaponModsEnabled and Config.InfiniteAmmo then
-- Force active cached weapon tables directly
if activeWeaponTable then
activeWeaponTable.Ammo = 67
activeWeaponTable.MagSize = 67
end
if _G.Equipped and type(_G.Equipped) == "table" then
_G.Equipped.Ammo = 67
_G.Equipped.MagSize = 67
end
-- Force direct local variables of the active shoot closure every frame
for _, loc in ipairs(ammoUpvalues) do
pcall(debug.setupvalue, loc.func, loc.index, 67)
end
end
end
RunService.RenderStepped:Connect(applyPhysicalMods)
-- Infinite Jump
UserInputService.JumpRequest:Connect(function()
if Config.InfJumpEnabled and LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
-- Noclip Loop
local NoclipConnection = nil
local function toggleNoclip(state)
if state then
NoclipConnection = RunService.Stepped:Connect(function()
if LocalPlayer.Character then
for _, part in ipairs(LocalPlayer.Character:GetDescendants()) do
if part:IsA("BasePart") and part.CanCollide then
part.CanCollide = false
end
end
end
end)
else
if NoclipConnection then
NoclipConnection:Disconnect()
NoclipConnection = nil
end
end
end
-- ESP System
local function applyESP(zombie)
if not Config.EspEnabled then return end
local hl = zombie:FindFirstChild("ESPHighlight")
if Config.EspBoxes then
if not hl then
hl = Instance.new("Highlight")
hl.Name = "ESPHighlight"
hl.FillColor = Config.EspColor
hl.OutlineColor = Color3.fromRGB(255, 255, 255)
hl.FillTransparency = 0.6
hl.OutlineTransparency = 0.1
hl.Adornee = zombie
hl.Parent = zombie
else
hl.FillColor = Config.EspColor
end
else
if hl then hl:Destroy() end
end
local billboard = zombie:FindFirstChild("ESPBillboard")
if Config.EspNames or Config.EspDistance or Config.EspHealth then
if not billboard then
billboard = Instance.new("BillboardGui")
billboard.Name = "ESPBillboard"
billboard.AlwaysOnTop = true
billboard.Size = UDim2.new(0, 200, 0, 50)
billboard.ExtentsOffset = Vector3.new(0, 3.5, 0)
billboard.Adornee = zombie:FindFirstChild("Head") or zombie:FindFirstChild("Torso") or zombie
local container = Instance.new("Frame")
container.Size = UDim2.new(1, 0, 1, 0)
container.BackgroundTransparency = 1
container.Parent = billboard
local list = Instance.new("UIListLayout")
list.HorizontalAlignment = Enum.HorizontalAlignment.Center
list.VerticalAlignment = Enum.VerticalAlignment.Bottom
list.Padding = UDim.new(0, 2)
list.Parent = container
local nameLabel = Instance.new("TextLabel")
nameLabel.Name = "NameLabel"
nameLabel.Size = UDim2.new(1, 0, 0, 14)
nameLabel.BackgroundTransparency = 1
nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
nameLabel.TextStrokeTransparency = 0
nameLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
nameLabel.Font = Enum.Font.GothamBold
nameLabel.TextSize = 11
nameLabel.Text = zombie.Name
nameLabel.Parent = container
local hpLabel = Instance.new("TextLabel")
hpLabel.Name = "HPLabel"
hpLabel.Size = UDim2.new(1, 0, 0, 12)
hpLabel.BackgroundTransparency = 1
hpLabel.TextStrokeTransparency = 0
hpLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
hpLabel.Font = Enum.Font.GothamSemibold
hpLabel.TextSize = 10
hpLabel.Parent = container
local distLabel = Instance.new("TextLabel")
distLabel.Name = "DistLabel"
distLabel.Size = UDim2.new(1, 0, 0, 12)
distLabel.BackgroundTransparency = 1
distLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
distLabel.TextStrokeTransparency = 0
distLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
distLabel.Font = Enum.Font.Gotham
distLabel.TextSize = 9
distLabel.Parent = container
billboard.Parent = zombie
end
local container = billboard:FindFirstChildOfClass("Frame")
if container then
local nameL = container:FindFirstChild("NameLabel")
local hpL = container:FindFirstChild("HPLabel")
local distL = container:FindFirstChild("DistLabel")
local hum = zombie:FindFirstChildOfClass("Humanoid")
local root = zombie:FindFirstChild("HumanoidRootPart") or zombie:FindFirstChild("Torso")
if nameL then nameL.Visible = Config.EspNames end
if hpL and hum then
hpL.Visible = Config.EspHealth
hpL.Text = math.floor(hum.Health) .. " / " .. math.floor(hum.MaxHealth) .. " HP"
local pct = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
hpL.TextColor3 = Color3.fromHSV(pct * 0.33, 1, 1)
end
if distL and root and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
distL.Visible = Config.EspDistance
local dist = math.floor((LocalPlayer.Character.HumanoidRootPart.Position - root.Position).Magnitude)
distL.Text = dist .. " studs"
end
end
else
if billboard then billboard:Destroy() end
end
end
local function removeESP(zombie)
local hl = zombie:FindFirstChild("ESPHighlight")
if hl then hl:Destroy() end
local billboard = zombie:FindFirstChild("ESPBillboard")
if billboard then billboard:Destroy() end
end
local function updateESPState()
local Baddies = workspace:FindFirstChild("Baddies")
if not Baddies then return end
for _, z in ipairs(Baddies:GetChildren()) do
if Config.EspEnabled then applyESP(z) else removeESP(z) end
end
end
workspace:WaitForChild("Baddies").ChildAdded:Connect(function(child)
task.wait(0.1)
if Config.EspEnabled then applyESP(child) end
end)
task.spawn(function()
while true do
task.wait(0.1)
if Config.EspEnabled then
local Baddies = workspace:FindFirstChild("Baddies")
if Baddies then
for _, z in ipairs(Baddies:GetChildren()) do applyESP(z) end
end
end
end
end)
-- Kill All Function
local function killAllZombies()
if not damageKey then getDamageKeyFromGC() end
if not damageKey then return false, "No damage key captured yet." end
local Baddies = workspace:FindFirstChild("Baddies")
if not Baddies then return false, "No zombies container!" end
local count = 0
for _, z in ipairs(Baddies:GetChildren()) do
local hum = z:FindFirstChildOfClass("Humanoid")
local head = z:FindFirstChild("Head") or z:FindFirstChild("Torso")
if hum and head and hum.Health > 0 then
local damageEvent = hum:FindFirstChild("Damage")
if damageEvent then
pcall(function()
damageEvent:FireServer({
Damage = hum.MaxHealth + 1000,
BodyPart = head,
GibPower = 3,
Force = 15,
Source = head.Position,
WeaponName = "Beretta M9"
}, damageKey)
count = count + 1
end)
end
end
end
return true, "Killed " .. count .. " zombies!"
end
task.spawn(function()
while true do
if Config.KillAllActive then killAllZombies() end
task.wait(Config.AutoKillDelay)
end
end)
-- Dragging functionality helper (Defined first to avoid attempt to call a nil value)
local function makeDraggable(frame, parentFrame)
local dragging, dragInput, dragStart, startPos
frame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = parentFrame.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
frame.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - dragStart
parentFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
end
----------------------------------------------------------------
-- 3. PREMIUM HUD & KEYBINDS DISPLAY
----------------------------------------------------------------
local HudGui = Instance.new("ScreenGui")
HudGui.Name = "LazarusKeybindHUD"
HudGui.ResetOnSpawn = false
HudGui.Parent = game.CoreGui
local HudFrame = Instance.new("Frame")
HudFrame.Name = "HudFrame"
HudFrame.Size = UDim2.new(0, 200, 0, 195)
HudFrame.Position = UDim2.new(1, -220, 0, 80)
HudFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
HudFrame.BackgroundTransparency = 0.25
HudFrame.BorderSizePixel = 0
HudFrame.Active = true
HudFrame.Parent = HudGui
local hudCorner = Instance.new("UICorner")
hudCorner.CornerRadius = UDim.new(0, 8)
hudCorner.Parent = HudFrame
local hudStroke = Instance.new("UIStroke")
hudStroke.Color = Config.EspColor
hudStroke.Thickness = 1.2
hudStroke.Parent = HudFrame
local HudHeader = Instance.new("Frame")
HudHeader.Size = UDim2.new(1, 0, 0, 28)
HudHeader.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
HudHeader.BorderSizePixel = 0
HudHeader.Parent = HudFrame
makeDraggable(HudHeader, HudFrame)
local hudHeaderCorner = Instance.new("UICorner")
hudHeaderCorner.CornerRadius = UDim.new(0, 8)
hudHeaderCorner.Parent = HudHeader
local hudHeaderBlend = Instance.new("Frame")
hudHeaderBlend.Size = UDim2.new(1, 0, 0, 8)
hudHeaderBlend.Position = UDim2.new(0, 0, 1, -8)
hudHeaderBlend.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
hudHeaderBlend.BorderSizePixel = 0
hudHeaderBlend.Parent = HudHeader
local HudTitle = Instance.new("TextLabel")
HudTitle.Size = UDim2.new(1, 0, 1, 0)
HudTitle.Position = UDim2.new(0, 10, 0, 0)
HudTitle.BackgroundTransparency = 1
HudTitle.Text = "ACTIVE BINDS"
HudTitle.TextColor3 = Color3.fromRGB(255, 255, 255)
HudTitle.Font = Enum.Font.GothamBold
HudTitle.TextSize = 10
HudTitle.TextXAlignment = Enum.TextXAlignment.Left
HudTitle.Parent = HudHeader
local hudList = Instance.new("UIListLayout")
hudList.Padding = UDim.new(0, 4)
hudList.HorizontalAlignment = Enum.HorizontalAlignment.Center
hudList.Parent = HudFrame
local hudSpacer = Instance.new("Frame")
hudSpacer.Size = UDim2.new(0, 10, 0, 32)
hudSpacer.BackgroundTransparency = 1
hudSpacer.Parent = HudFrame
hudSpacer.LayoutOrder = -1
local hudLabels = {}
local function createHudLabel(actionKey, displayName)
local frame = Instance.new("Frame")
frame.Size = UDim2.new(1, -16, 0, 18)
frame.BackgroundTransparency = 1
frame.Parent = HudFrame
local keyLabel = Instance.new("TextLabel")
keyLabel.Size = UDim2.new(0, 52, 1, 0)
keyLabel.BackgroundTransparency = 1
keyLabel.TextColor3 = Config.EspColor
keyLabel.Font = Enum.Font.GothamBold
keyLabel.TextSize = 9
keyLabel.Text = "[" .. Binds[actionKey].Name .. "]"
keyLabel.TextXAlignment = Enum.TextXAlignment.Left
keyLabel.Parent = frame
local nameLabel = Instance.new("TextLabel")
nameLabel.Size = UDim2.new(1, -100, 1, 0)
nameLabel.Position = UDim2.new(0, 56, 0, 0)
nameLabel.BackgroundTransparency = 1
nameLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
nameLabel.Font = Enum.Font.GothamSemibold
nameLabel.TextSize = 9
nameLabel.Text = displayName
nameLabel.TextXAlignment = Enum.TextXAlignment.Left
nameLabel.Parent = frame
local statusLabel = Instance.new("TextLabel")
statusLabel.Size = UDim2.new(0, 40, 1, 0)
statusLabel.Position = UDim2.new(1, -40, 0, 0)
statusLabel.BackgroundTransparency = 1
statusLabel.Font = Enum.Font.GothamBold
statusLabel.TextSize = 9
statusLabel.TextXAlignment = Enum.TextXAlignment.Right
statusLabel.Parent = frame
hudLabels[actionKey] = {
key = keyLabel,
status = statusLabel
}
end
createHudLabel("ToggleMenu", "Menu GUI")
createHudLabel("ESP", "Zombie ESP")
createHudLabel("WeaponMods", "Weapon Mods")
createHudLabel("SpeedHack", "Speed Hack")
createHudLabel("Noclip", "Noclip Hack")
createHudLabel("KillAll", "Instant Kill")
local function updateHUD()
for actionKey, ui in pairs(hudLabels) do
ui.key.Text = "[" .. Binds[actionKey].Name .. "]"
local state = false
if actionKey == "ToggleMenu" then
local mainFrame = game.CoreGui:FindFirstChild("LazarusHubV3") and game.CoreGui.LazarusHubV3:FindFirstChild("MainFrame")
state = mainFrame and mainFrame.Visible or false
elseif actionKey == "ESP" then state = Config.EspEnabled
elseif actionKey == "WeaponMods" then state = Config.WeaponModsEnabled
elseif actionKey == "SpeedHack" then state = Config.SpeedHackEnabled
elseif actionKey == "Noclip" then state = Config.NoclipEnabled
elseif actionKey == "KillAll" then state = Config.KillAllActive end
if state then
ui.status.TextColor3 = Color3.fromRGB(0, 255, 100)
ui.status.Text = "ON"
else
ui.status.TextColor3 = Color3.fromRGB(150, 150, 150)
ui.status.Text = "OFF"
end
end
end
updateHUD()
----------------------------------------------------------------
-- 4. PREMIUM UI CREATION (V3.5 - Color Theme Sync & Dynamic Binds)
----------------------------------------------------------------
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "LazarusHubV3"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = game.CoreGui
-- Toast Notification Helper
local function showToast(text, duration)
duration = duration or 2
local toast = Instance.new("Frame")
toast.Size = UDim2.new(0, 260, 0, 45)
toast.Position = UDim2.new(1, -280, 1, 50)
toast.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
toast.BorderSizePixel = 0
toast.ZIndex = 10
toast.Parent = ScreenGui
local toastCorner = Instance.new("UICorner")
toastCorner.CornerRadius = UDim.new(0, 6)
toastCorner.Parent = toast
local toastStroke = Instance.new("UIStroke")
toastStroke.Color = Config.EspColor
toastStroke.Thickness = 1.5
toastStroke.Parent = toast
local toastLabel = Instance.new("TextLabel")
toastLabel.Size = UDim2.new(1, -20, 1, 0)
toastLabel.Position = UDim2.new(0, 10, 0, 0)
toastLabel.BackgroundTransparency = 1
toastLabel.Text = text
toastLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
toastLabel.Font = Enum.Font.GothamSemibold
toastLabel.TextSize = 12
toastLabel.TextWrapped = true
toastLabel.ZIndex = 10
toastLabel.Parent = toast
task.spawn(function()
task.wait(0.05)
pcall(function()
TweenService:Create(toast, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
Position = UDim2.new(1, -280, 1, -65)
}):Play()
end)
task.wait(duration)
pcall(function()
local tween = TweenService:Create(toast, TweenInfo.new(0.4, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
Position = UDim2.new(1, -280, 1, 50)
})
tween.Completed:Connect(function() toast:Destroy() end)
tween:Play()
end)
end)
end
-- Main Frame
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 560, 0, 420)
MainFrame.Position = UDim2.new(0.5, -280, 0.5, -210)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Parent = ScreenGui
local mainCorner = Instance.new("UICorner")
mainCorner.CornerRadius = UDim.new(0, 12)
mainCorner.Parent = MainFrame
local mainStroke = Instance.new("UIStroke")
mainStroke.Color = Config.EspColor
mainStroke.Thickness = 1.5
mainStroke.Parent = MainFrame
-- Header
local Header = Instance.new("Frame")
Header.Size = UDim2.new(1, 0, 0, 45)
Header.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
Header.BorderSizePixel = 0
Header.Parent = MainFrame
makeDraggable(Header, MainFrame)
local headerCorner = Instance.new("UICorner")
headerCorner.CornerRadius = UDim.new(0, 12)
headerCorner.Parent = Header
local headerBlend = Instance.new("Frame")
headerBlend.Size = UDim2.new(1, 0, 0, 15)
headerBlend.Position = UDim2.new(0, 0, 1, -15)
headerBlend.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
headerBlend.BorderSizePixel = 0
headerBlend.Parent = Header
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -100, 1, 0)
Title.Position = UDim2.new(0, 15, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "PROJECT LAZARUS HUB — V3.5"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 15
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = Header
local Subtitle = Instance.new("TextLabel")
Subtitle.Size = UDim2.new(0, 150, 0, 15)
Subtitle.Position = UDim2.new(0, 290, 0.5, -7)
Subtitle.BackgroundTransparency = 1
Subtitle.Text = "[Insert] to Hide Menu"
Subtitle.TextColor3 = Config.EspColor
Subtitle.Font = Enum.Font.GothamSemibold
Subtitle.TextSize = 11
Subtitle.TextXAlignment = Enum.TextXAlignment.Right
Subtitle.Parent = Header
-- Close Button
local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 30, 0, 30)
CloseBtn.Position = UDim2.new(1, -40, 0.5, -15)
CloseBtn.BackgroundTransparency = 1
CloseBtn.Text = "✕"
CloseBtn.TextColor3 = Color3.fromRGB(150, 150, 150)
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 16
CloseBtn.Parent = Header
CloseBtn.MouseButton1Click:Connect(function()
toggleNoclip(false)
removeESP(workspace)
pcall(function() HudGui:Destroy() end)
ScreenGui:Destroy()
_G.LazarusHubLoaded = nil
end)
CloseBtn.MouseEnter:Connect(function() CloseBtn.TextColor3 = Color3.fromRGB(255, 70, 70) end)
CloseBtn.MouseLeave:Connect(function() CloseBtn.TextColor3 = Color3.fromRGB(150, 150, 150) end)
-- Sidebar (Left side navigation)
local Sidebar = Instance.new("Frame")
Sidebar.Size = UDim2.new(0, 140, 1, -45)
Sidebar.Position = UDim2.new(0, 0, 0, 45)
Sidebar.BackgroundColor3 = Color3.fromRGB(12, 12, 17)
Sidebar.BorderSizePixel = 0
Sidebar.Parent = MainFrame
local sidebarCorner = Instance.new("UICorner")
sidebarCorner.CornerRadius = UDim.new(0, 12)
sidebarCorner.Parent = Sidebar
local sidebarBlend = Instance.new("Frame")
sidebarBlend.Size = UDim2.new(0, 15, 1, -45)
sidebarBlend.Position = UDim2.new(0, 125, 0, 45)
sidebarBlend.BackgroundColor3 = Color3.fromRGB(12, 12, 17)
sidebarBlend.BorderSizePixel = 0
sidebarBlend.Parent = MainFrame
local tabList = Instance.new("UIListLayout")
tabList.Padding = UDim.new(0, 5)
tabList.HorizontalAlignment = Enum.HorizontalAlignment.Center
tabList.Parent = Sidebar
-- Tab Containers (Right side container)
local Container = Instance.new("Frame")
Container.Size = UDim2.new(1, -160, 1, -60)
Container.Position = UDim2.new(0, 150, 0, 55)
Container.BackgroundTransparency = 1
Container.Parent = MainFrame
local pages = {}
local activePage = nil
local activeTabBtn = nil
local function createPage(name)
local page = Instance.new("ScrollingFrame")
page.Size = UDim2.new(1, 0, 1, 0)
page.BackgroundTransparency = 1
page.BorderSizePixel = 0
page.ScrollBarThickness = 4
page.ScrollBarImageColor3 = Config.EspColor
page.Visible = false
page.AutomaticCanvasSize = Enum.AutomaticSize.Y
page.CanvasSize = UDim2.new(0, 0, 0, 0)
page.Parent = Container
local list = Instance.new("UIListLayout")
list.Padding = UDim.new(0, 8)
list.Parent = page
pages[name] = page
return page
end
-- Helper to switch pages
local function selectTab(name, btn)
if activePage then activePage.Visible = false end
if activeTabBtn then
TweenService:Create(activeTabBtn, TweenInfo.new(0.2), {
BackgroundColor3 = Color3.fromRGB(22, 22, 30),
TextColor3 = Color3.fromRGB(150, 150, 150)
}):Play()
end
activePage = pages[name]
activePage.Visible = true
activeTabBtn = btn
TweenService:Create(btn, TweenInfo.new(0.2), {
BackgroundColor3 = Color3.fromRGB(0, 130, 200),
TextColor3 = Color3.fromRGB(255, 255, 255)
}):Play()
end
-- Create Tab Button
local function createTabButton(name)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 125, 0, 35)
btn.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
btn.BorderSizePixel = 0
btn.Text = name
btn.TextColor3 = Color3.fromRGB(150, 150, 150)
btn.Font = Enum.Font.GothamSemibold
btn.TextSize = 12
btn.Parent = Sidebar
local btnCorner = Instance.new("UICorner")
btnCorner.CornerRadius = UDim.new(0, 6)
btnCorner.Parent = btn
btn.MouseButton1Click:Connect(function()
selectTab(name, btn)
end)
return btn
end
-- Initialize Pages
local combatPage = createPage("Combat")
local weaponPage = createPage("Weapons")
local visualsPage = createPage("Visuals")
local playerPage = createPage("Player")
local combatBtn = createTabButton("Combat")
local weaponBtn = createTabButton("Weapons")
local visualsBtn = createTabButton("Visuals")
local playerBtn = createTabButton("Player")
-- Add spacer
local spacer = Instance.new("Frame")
spacer.Size = UDim2.new(0, 10, 0, 5)
spacer.BackgroundTransparency = 1
spacer.Parent = Sidebar
spacer.LayoutOrder = -1
selectTab("Combat", combatBtn)
----------------------------------------------------------------
-- UI ELEMENT HELPERS WITH TWEENS & INTERACTIVE KEYBINDS
----------------------------------------------------------------
-- Helper: Create Toggle Row with Bindable Keyboard Key
local function createToggleRow(parentPage, labelText, defaultVal, bindAction, callback)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -10, 0, 45)
row.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
row.BorderSizePixel = 0
row.Parent = parentPage
local rowCorner = Instance.new("UICorner")
rowCorner.CornerRadius = UDim.new(0, 6)
rowCorner.Parent = row
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.45, 0, 1, 0)
label.Position = UDim2.new(0, 12, 0, 0)
label.BackgroundTransparency = 1
label.Text = labelText
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.Font = Enum.Font.GothamSemibold
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = row
-- Changeable Keybind Button
local bindBtn = Instance.new("TextButton")
bindBtn.Size = UDim2.new(0, 65, 0, 22)
bindBtn.Position = UDim2.new(0.8, -135, 0.5, -11)
bindBtn.BackgroundColor3 = Color3.fromRGB(33, 33, 43)
bindBtn.BorderSizePixel = 0
bindBtn.Text = bindAction and ("[" .. Binds[bindAction].Name .. "]") or "NONE"
bindBtn.TextColor3 = Config.EspColor
bindBtn.Font = Enum.Font.GothamBold
bindBtn.TextSize = 10
bindBtn.Parent = row
local bindCorner = Instance.new("UICorner")
bindCorner.CornerRadius = UDim.new(0, 4)
bindCorner.Parent = bindBtn
if bindAction then
activeBindsButtons[bindAction] = bindBtn
bindBtn.MouseButton1Click:Connect(function()
listeningToBindAction = bindAction
bindBtn.Text = "[ ... ]"
bindBtn.TextColor3 = Color3.fromRGB(255, 200, 0)
showToast("Press any key to bind: " .. bindNames[bindAction])
end)
end
local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 60, 0, 25)
toggleBtn.Position = UDim2.new(1, -72, 0.5, -12)
toggleBtn.BackgroundColor3 = defaultVal and Color3.fromRGB(0, 180, 255) or Color3.fromRGB(40, 40, 50)
toggleBtn.BorderSizePixel = 0
toggleBtn.Text = defaultVal and "ON" or "OFF"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 11
toggleBtn.Parent = row
local toggleCorner = Instance.new("UICorner")
toggleCorner.CornerRadius = UDim.new(0, 4)
toggleCorner.Parent = toggleBtn
local state = defaultVal
local function updateVisuals()
local targetColor = state and Color3.fromRGB(0, 180, 255) or Color3.fromRGB(40, 40, 50)
TweenService:Create(toggleBtn, TweenInfo.new(0.2), {BackgroundColor3 = targetColor}):Play()
toggleBtn.Text = state and "ON" or "OFF"
updateHUD()
end
local function toggle()
state = not state
updateVisuals()
callback(state)
end
toggleBtn.MouseButton1Click:Connect(toggle)
row.MouseEnter:Connect(function()
TweenService:Create(row, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(28, 28, 38)}):Play()
end)
row.MouseLeave:Connect(function()
TweenService:Create(row, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(22, 22, 30)}):Play()
end)
return {
toggle = toggle,
setState = function(newState)
state = newState
updateVisuals()
callback(state)
end,
getState = function() return state end
}
end
-- Helper: Create Button Row with dynamic Keybinds
local function createButtonRow(parentPage, labelText, btnText, bindAction, callback)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -10, 0, 45)
row.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
row.BorderSizePixel = 0
row.Parent = parentPage
local rowCorner = Instance.new("UICorner")
rowCorner.CornerRadius = UDim.new(0, 6)
rowCorner.Parent = row
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.45, 0, 1, 0)
label.Position = UDim2.new(0, 12, 0, 0)
label.BackgroundTransparency = 1
label.Text = labelText
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.Font = Enum.Font.GothamSemibold
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = row
-- Changeable Keybind Button
local bindBtn = Instance.new("TextButton")
bindBtn.Size = UDim2.new(0, 65, 0, 22)
bindBtn.Position = UDim2.new(0.8, -135, 0.5, -11)
bindBtn.BackgroundColor3 = Color3.fromRGB(33, 33, 43)
bindBtn.BorderSizePixel = 0
bindBtn.Text = bindAction and ("[" .. Binds[bindAction].Name .. "]") or "NONE"
bindBtn.TextColor3 = Config.EspColor
bindBtn.Font = Enum.Font.GothamBold
bindBtn.TextSize = 10
bindBtn.Parent = row
local bindCorner = Instance.new("UICorner")
bindCorner.CornerRadius = UDim.new(0, 4)
bindCorner.Parent = bindBtn
if bindAction then
activeBindsButtons[bindAction] = bindBtn
bindBtn.MouseButton1Click:Connect(function()
listeningToBindAction = bindAction
bindBtn.Text = "[ ... ]"
bindBtn.TextColor3 = Color3.fromRGB(255, 200, 0)
showToast("Press any key to bind: " .. bindNames[bindAction])
end)
end
local actionBtn = Instance.new("TextButton")
actionBtn.Size = UDim2.new(0, 80, 0, 25)
actionBtn.Position = UDim2.new(1, -92, 0.5, -12)
actionBtn.BackgroundColor3 = Color3.fromRGB(0, 130, 200)
actionBtn.BorderSizePixel = 0
actionBtn.Text = btnText
actionBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
actionBtn.Font = Enum.Font.GothamBold
actionBtn.TextSize = 11
actionBtn.Parent = row
local actCorner = Instance.new("UICorner")
actCorner.CornerRadius = UDim.new(0, 4)
actCorner.Parent = actionBtn
actionBtn.MouseButton1Click:Connect(callback)
actionBtn.MouseEnter:Connect(function()
TweenService:Create(actionBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(0, 150, 230)}):Play()
end)
actionBtn.MouseLeave:Connect(function()
TweenService:Create(actionBtn, TweenInfo.new(0.2), {BackgroundColor3 = Color3.fromRGB(0, 130, 200)}):Play()
end)
end
-- Helper: Create Slider Row
local function createSliderRow(parentPage, labelText, min, max, defaultVal, callback)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -10, 0, 55)
row.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
row.BorderSizePixel = 0
row.Parent = parentPage
local rowCorner = Instance.new("UICorner")
rowCorner.CornerRadius = UDim.new(0, 6)
rowCorner.Parent = row
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.5, 0, 0, 25)
label.Position = UDim2.new(0, 12, 0, 2)
label.BackgroundTransparency = 1
label.Text = labelText
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.Font = Enum.Font.GothamSemibold
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = row
local valueLabel = Instance.new("TextLabel")
valueLabel.Size = UDim2.new(0.4, 0, 0, 25)
valueLabel.Position = UDim2.new(0.6, -12, 0, 2)
valueLabel.BackgroundTransparency = 1
valueLabel.Text = tostring(defaultVal)
valueLabel.TextColor3 = Color3.fromRGB(0, 180, 255)
valueLabel.Font = Enum.Font.GothamBold
valueLabel.TextSize = 13
valueLabel.TextXAlignment = Enum.TextXAlignment.Right
valueLabel.Parent = row
local sliderBg = Instance.new("Frame")
sliderBg.Size = UDim2.new(1, -24, 0, 6)
sliderBg.Position = UDim2.new(0, 12, 0, 36)
sliderBg.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
sliderBg.BorderSizePixel = 0
sliderBg.Parent = row
local sliderBgCorner = Instance.new("UICorner")
sliderBgCorner.CornerRadius = UDim.new(0, 3)
sliderBgCorner.Parent = sliderBg
local sliderFill = Instance.new("Frame")
sliderFill.Size = UDim2.new((defaultVal - min) / (max - min), 0, 1, 0)
sliderFill.BackgroundColor3 = Color3.fromRGB(0, 180, 255)
sliderFill.BorderSizePixel = 0
sliderFill.Parent = sliderBg
local sliderFillCorner = Instance.new("UICorner")
sliderFillCorner.CornerRadius = UDim.new(0, 3)
sliderFillCorner.Parent = sliderFill
local sliderBtn = Instance.new("ImageButton")
sliderBtn.Size = UDim2.new(0, 14, 0, 14)
sliderBtn.Position = UDim2.new((defaultVal - min) / (max - min), -7, 0.5, -7)
sliderBtn.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
sliderBtn.BorderSizePixel = 0
sliderBtn.Parent = sliderBg
local sliderBtnCorner = Instance.new("UICorner")
sliderBtnCorner.CornerRadius = UDim.new(0, 7)
sliderBtnCorner.Parent = sliderBtn
local active = false
local function updateSlider(input)
local posX = math.clamp((input.Position.X - sliderBg.AbsolutePosition.X) / sliderBg.AbsoluteSize.X, 0, 1)
sliderFill.Size = UDim2.new(posX, 0, 1, 0)
sliderBtn.Position = UDim2.new(posX, -7, 0.5, -7)
local val = min + (max - min) * posX
if max - min > 10 then
val = math.floor(val)
else
val = tonumber(string.format("%.3f", val))
end
valueLabel.Text = tostring(val)
callback(val)
end
sliderBtn.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
active = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
active = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if active and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
updateSlider(input)
end
end)
end
-- Helper: Create Choice Selector (Dropdown replacement)
local function createDropdownRow(parentPage, labelText, options, defaultOption, callback)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -10, 0, 45)
row.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
row.BorderSizePixel = 0
row.Parent = parentPage
local rowCorner = Instance.new("UICorner")
rowCorner.CornerRadius = UDim.new(0, 6)
rowCorner.Parent = row
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.5, 0, 1, 0)
label.Position = UDim2.new(0, 12, 0, 0)
label.BackgroundTransparency = 1
label.Text = labelText
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.Font = Enum.Font.GothamSemibold
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = row
local dropdownBtn = Instance.new("TextButton")
dropdownBtn.Size = UDim2.new(0, 120, 0, 25)
dropdownBtn.Position = UDim2.new(1, -132, 0.5, -12)
dropdownBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
dropdownBtn.BorderSizePixel = 0
dropdownBtn.Text = defaultOption
dropdownBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
dropdownBtn.Font = Enum.Font.GothamBold
dropdownBtn.TextSize = 11
dropdownBtn.Parent = row
local dropCorner = Instance.new("UICorner")
dropCorner.CornerRadius = UDim.new(0, 4)
dropCorner.Parent = dropdownBtn
local currentIndex = table.find(options, defaultOption) or 1
dropdownBtn.MouseButton1Click:Connect(function()
currentIndex = currentIndex + 1
if currentIndex > #options then currentIndex = 1 end
local selected = options[currentIndex]
dropdownBtn.Text = selected
callback(selected)
end)
end
-- Helper: Create Color Picker Circle row
local function createColorPickerRow(parentPage, labelText, defaultColor, callback)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -10, 0, 45)
row.BackgroundColor3 = Color3.fromRGB(22, 22, 30)
row.BorderSizePixel = 0
row.Parent = parentPage
local rowCorner = Instance.new("UICorner")
rowCorner.CornerRadius = UDim.new(0, 6)
rowCorner.Parent = row
local label = Instance.new("TextLabel")
label.Size = UDim2.new(0.4, 0, 1, 0)
label.Position = UDim2.new(0, 12, 0, 0)
label.BackgroundTransparency = 1
label.Text = labelText
label.TextColor3 = Color3.fromRGB(255, 255, 255)
label.Font = Enum.Font.GothamSemibold
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = row
local colorContainer = Instance.new("Frame")
colorContainer.Size = UDim2.new(0.6, -12, 1, 0)
colorContainer.Position = UDim2.new(0.4, 0, 0, 0)
colorContainer.BackgroundTransparency = 1
colorContainer.Parent = row
local list = Instance.new("UIListLayout")
list.FillDirection = Enum.FillDirection.Horizontal
list.HorizontalAlignment = Enum.HorizontalAlignment.Right
list.VerticalAlignment = Enum.VerticalAlignment.Center
list.Padding = UDim.new(0, 8)
list.Parent = colorContainer
local colors = {
Red = Color3.fromRGB(255, 60, 60),
Green = Color3.fromRGB(0, 255, 100),
Blue = Color3.fromRGB(0, 180, 255),
Yellow = Color3.fromRGB(255, 220, 0),
Purple = Color3.fromRGB(190, 80, 255),
White = Color3.fromRGB(255, 255, 255)
}
for name, color in pairs(colors) do
local colorBtn = Instance.new("ImageButton")
colorBtn.Size = UDim2.new(0, 18, 0, 18)
colorBtn.BackgroundColor3 = color
colorBtn.BorderSizePixel = 0
colorBtn.Parent = colorContainer
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1, 0)
corner.Parent = colorBtn
local stroke = Instance.new("UIStroke")
stroke.Thickness = 1.5
stroke.Color = (color == defaultColor) and Color3.fromRGB(255, 255, 255) or Color3.fromRGB(0, 0, 0)
stroke.Parent = colorBtn
colorBtn.MouseButton1Click:Connect(function()
for _, btn in ipairs(colorContainer:GetChildren()) do
if btn:IsA("ImageButton") then
btn:FindFirstChildOfClass("UIStroke").Color = Color3.fromRGB(0, 0, 0)
end
end
stroke.Color = Color3.fromRGB(255, 255, 255)
callback(color)
end)
end
end
----------------------------------------------------------------
-- 5. POPULATE TAB PAGES
----------------------------------------------------------------
-- COMBAT PAGE
local loopKillRow = createToggleRow(combatPage, "Loop Kill All Zombies", Config.KillAllActive, nil, function(state)
Config.KillAllActive = state
showToast("[COMBAT] Loop Kill All " .. (state and "Enabled" or "Disabled"))
end)
createSliderRow(combatPage, "Auto Kill Delay (Secs)", 0.05, 1.5, Config.AutoKillDelay, function(val)
Config.AutoKillDelay = val
end)
createButtonRow(combatPage, "Instant Kill All Zombies", "Kill All", "KillAll", function()
local ok, res = killAllZombies()
showToast("[COMBAT] " .. res)
end)
-- WEAPONS PAGE
local weaponModsRow = createToggleRow(weaponPage, "Enable Weapon Mods", Config.WeaponModsEnabled, "WeaponMods", function(state)
Config.WeaponModsEnabled = state
updateAllWeapons()
showToast("[WEAPONS] Weapon Mods " .. (state and "Activated" or "Restored to normal"))
end)
createToggleRow(weaponPage, "Infinite Clip & Ammo", Config.InfiniteAmmo, nil, function(state)
Config.InfiniteAmmo = state
updateAllWeapons()
end)
createToggleRow(weaponPage, "Rapid Fire (Custom rate)", Config.RapidFire, nil, function(state)
Config.RapidFire = state
updateAllWeapons()
end)
createSliderRow(weaponPage, "Rapid Fire Rate", 0.01, 0.25, Config.RapidFireVal, function(val)
Config.RapidFireVal = val
updateAllWeapons()
end)
createToggleRow(weaponPage, "Force Always Automatic", Config.AlwaysAuto, nil, function(state)
Config.AlwaysAuto = state
updateAllWeapons()
end)
createToggleRow(weaponPage, "No Weapon Recoil", Config.NoRecoil, nil, function(state)
Config.NoRecoil = state
updateAllWeapons()
end)
createToggleRow(weaponPage, "No Weapon Spread", Config.NoSpread, nil, function(state)
Config.NoSpread = state
updateAllWeapons()
end)
createToggleRow(weaponPage, "No Scope Sway", Config.NoSway, nil, function(state)
Config.NoSway = state
updateAllWeapons()
end)
createToggleRow(weaponPage, "Instant Reload", Config.InstantReload, nil, function(state)
Config.InstantReload = state
updateAllWeapons()
end)
createToggleRow(weaponPage, "Infinite Penetration", Config.InfPenetration, nil, function(state)
Config.InfPenetration = state
updateAllWeapons()
end)
createDropdownRow(weaponPage, "Damage Preset Mod", {"Normal", "Custom", "One-Shot"}, Config.DamageMode, function(choice)
Config.DamageMode = choice
updateAllWeapons()
showToast("[WEAPONS] Damage mode: " .. choice)
end)
createSliderRow(weaponPage, "Custom Damage Value", 20, 1000, Config.CustomDamageVal, function(val)
Config.CustomDamageVal = val
if Config.DamageMode == "Custom" then
updateAllWeapons()
end
end)
-- VISUALS PAGE
local espRow = createToggleRow(visualsPage, "Zombie ESP (Master Switch)", Config.EspEnabled, "ESP", function(state)
Config.EspEnabled = state
updateESPState()
showToast("[VISUALS] Zombie ESP " .. (state and "ON" or "OFF"))
end)
createToggleRow(visualsPage, "ESP Show Outlines / Box", Config.EspBoxes, nil, function(state)
Config.EspBoxes = state
updateESPState()
end)
createToggleRow(visualsPage, "ESP Show Names", Config.EspNames, nil, function(state)
Config.EspNames = state
updateESPState()
end)
createToggleRow(visualsPage, "ESP Show Health Stats", Config.EspHealth, nil, function(state)
Config.EspHealth = state
updateESPState()
end)
createToggleRow(visualsPage, "ESP Show Distance", Config.EspDistance, nil, function(state)
Config.EspDistance = state
updateESPState()
end)
createColorPickerRow(visualsPage, "ESP Custom Color Theme", Config.EspColor, function(color)
Config.EspColor = color
mainStroke.Color = color
Subtitle.TextColor3 = color
hudStroke.Color = color
HudTitle.TextColor3 = color
updateESPState()
end)
-- PLAYER PAGE
local speedRow = createToggleRow(playerPage, "Speed Hack", Config.SpeedHackEnabled, "SpeedHack", function(state)
Config.SpeedHackEnabled = state
if not state and LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
LocalPlayer.Character:FindFirstChildOfClass("Humanoid").WalkSpeed = 16
end
showToast("[PLAYER] Speed Hack " .. (state and "ON" or "OFF"))
end)
createSliderRow(playerPage, "WalkSpeed Limit", 16, 150, Config.WalkSpeedValue, function(val)
Config.WalkSpeedValue = val
end)
local jumpRow = createToggleRow(playerPage, "Jump Hack", Config.JumpHackEnabled, nil, function(state)
Config.JumpHackEnabled = state
if not state and LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Humanoid") then
local hum = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
if hum.UseJumpPower then
hum.JumpPower = 50
else
hum.JumpHeight = 7.2
end
end
showToast("[PLAYER] Jump Hack " .. (state and "ON" or "OFF"))
end)
createSliderRow(playerPage, "JumpPower Limit", 50, 250, Config.JumpPowerValue, function(val)
Config.JumpPowerValue = val
end)
local infJumpRow = createToggleRow(playerPage, "Infinite Jump", Config.InfJumpEnabled, nil, function(state)
Config.InfJumpEnabled = state
showToast("[PLAYER] Infinite Jump " .. (state and "Enabled" or "Disabled"))
end)
local noclipRow = createToggleRow(playerPage, "Noclip (Wall Hack)", Config.NoclipEnabled, "Noclip", function(state)
Config.NoclipEnabled = state
toggleNoclip(state)
showToast("[PLAYER] Noclip " .. (state and "Enabled" or "Disabled"))
end)
-- Menu GUI Bind Row (Header Settings)
createToggleRow(playerPage, "Show Binds HUD Widget", true, "ToggleMenu", function(state)
HudFrame.Visible = state
end)
----------------------------------------------------------------
-- 6. GLOBAL KEYBOARD INPUT & REBINDING LISTENER
----------------------------------------------------------------
UserInputService.InputBegan:Connect(function(input, gameProcessed)
-- Handle Key Rebinding Process First
if listeningToBindAction then
if input.KeyCode ~= Enum.KeyCode.Unknown then
local newKey = input.KeyCode
Binds[listeningToBindAction] = newKey
-- Update UI Button Text
local btn = activeBindsButtons[listeningToBindAction]
if btn then
btn.Text = "[" .. newKey.Name .. "]"
btn.TextColor3 = Config.EspColor
end
showToast("Successfully bound " .. bindNames[listeningToBindAction] .. " to: " .. newKey.Name)
listeningToBindAction = nil
updateHUD()
end
return
end
if gameProcessed then return end
-- Dynamic Binds Evaluator
if input.KeyCode == Binds.ToggleMenu then
MainFrame.Visible = not MainFrame.Visible
showToast("[HUB] Menu GUI " .. (MainFrame.Visible and "Shown" or "Hidden"))
updateHUD()
end
if input.KeyCode == Binds.KillAll then
local ok, res = killAllZombies()
showToast("[COMBAT] " .. res)
end
if input.KeyCode == Binds.ESP then
espRow.setState(not espRow.getState())
end
if input.KeyCode == Binds.WeaponMods then
weaponModsRow.setState(not weaponModsRow.getState())
end
if input.KeyCode == Binds.SpeedHack then
speedRow.setState(not speedRow.getState())
end
if input.KeyCode == Binds.Noclip then
noclipRow.setState(not noclipRow.getState())
end
end)
showToast("[HUB] V3.5 Loaded! UI Dragging issue fixed.", 4)
print("[HUB] Lazarus Premium Hub V3.5 successfully loaded and optimized!")No comments yet for this script.



