local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local CoreGui = game:GetService("CoreGui") hookfunction(gcinfo, function() return math.random(1500, 2500) end) local repo = "https://raw.githubusercontent.com/wally-rblx/LinoriaLib/main/" local Library = loadstring(game:HttpGet(repo .. "Library.lua"))() local SaveManager = loadstring(game:HttpGet(repo .. "addons/SaveManager.lua"))() local ThemeManager = loadstring(game:HttpGet(repo .. "addons/ThemeManager.lua"))() local protect_gui = syn and syn.protect_gui or function(obj: Instance) end -- Constants: local WEAPON_NAMES = { "Weapon1", "Weapon2", "Weapon3" } local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local Map = Workspace:WaitForChild("Map") local ZombiesFolder = Workspace:WaitForChild("Baddies") local IgnoreFolder = Workspace:WaitForChild("Ignore") local InteractFolder = Workspace:WaitForChild("Interact") local CurrentRound = Workspace:WaitForChild("RoundNum") local Circle = Drawing.new("Circle") -- Variables: local aimTarget = nil local botTarget = nil local aimbotting = false local weaponScript = nil local inputBeganFunc = nil local playerVisuals = {} local zombieVisuals = {} local crateVisuals = {} local zombieMovers = {} local zombieIgnore = {} -- Functions: local function isCharacterValid(character: Model) if character and character:IsA("Model") then local humanoid = character:FindFirstChildWhichIsA("Humanoid") if humanoid and humanoid.Health > 0 then local root = character.PrimaryPart or character:FindFirstChild("HumanoidRootPart") if root then return true end end end return false end local function isPositionVisible(position: Vector3) local raycastParams = RaycastParams.new() local ignore = { IgnoreFolder, ZombiesFolder } for i, v in ipairs(Players:GetPlayers()) do local character = v.Character if character then table.insert(ignore, character) end end raycastParams.FilterDescendantsInstances = ignore raycastParams.FilterType = Enum.RaycastFilterType.Blacklist -- Raycast to the position: local origin = Camera.CFrame.Position local direction = (position - origin) local result = Workspace:Raycast(Camera.CFrame.Position, direction, raycastParams) return result == nil end local function getAimbotTarget(mouse: Vector2) local target = nil local distance = math.huge local visible = false for i, v in ipairs(ZombiesFolder:GetChildren()) do if isCharacterValid(v) and not zombieIgnore[v] then local root = v.HumanoidRootPart local position = Camera:WorldToViewportPoint(root.Position) if position.Z > 0 then position = Vector2.new(position.X, position.Y) local mouseDistance = (position - mouse).Magnitude if mouseDistance < Options.Aimbot_FOV.Value then local magnitude = (root.Position - Camera.CFrame.Position).Magnitude local canSee = isPositionVisible(root.Position) if magnitude < distance or (canSee and not visible) then target = v distance = magnitude visible = canSee end end end end end return target end local function onMapChild(child: Instance) if child.Name == "IceBlock" then local weld: WeldConstraint = child:WaitForChild("WeldConstraint", 5) if weld and weld.Part1 then local zombie = weld.Part1.Parent if isCharacterValid(zombie) then zombieIgnore[zombie] = true end end end end local function onZombieAdded(zombie: Model) -- Fires on Zombie added if zombieVisuals[zombie] then return end zombieIgnore[zombie] = nil -- Constants: local highlight = Instance.new("Highlight") zombieVisuals[zombie] = highlight -- Listeners: local function onDestroy() highlight:Destroy() zombieVisuals[zombie] = nil end -- Listeners: zombie.Destroying:Connect(onDestroy) -- Actions: highlight.Adornee = zombie highlight.Enabled = Toggles.Zombie_Chams.Value highlight.FillColor = Color3.new(0, 1, 0) highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.RobloxLocked = true protect_gui(highlight) highlight.Parent = CoreGui end local function onInteractAdded(interact: Instance) -- Fires on Interact Item added if interact.Name ~= "MysteryBox" or crateVisuals[interact] then return end -- Constants: local highlight = Instance.new("Highlight") crateVisuals[interact] = highlight -- Listeners: local function onDestroy() highlight:Destroy() crateVisuals[interact] = nil end -- Listeners: interact.Destroying:Connect(onDestroy) -- Actions: highlight.Adornee = interact highlight.Enabled = Toggles.Zombie_Chams.Value highlight.FillColor = Color3.new(1, 1, 0) highlight.FillTransparency = 0.75 highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.RobloxLocked = true protect_gui(highlight) highlight.Parent = CoreGui end local function onPlayerAdded(player: Player) -- Fires on Player joined -- Constants: local highlight = Instance.new("Highlight") playerVisuals[player] = highlight -- Listeners: local function onCharacterAdded(character: Model) highlight.Adornee = character end -- Listeners: player.CharacterAdded:Connect(onCharacterAdded) -- Actions: local character = player.Character if character then onCharacterAdded(character) end highlight.Enabled = Toggles.Player_Chams.Value highlight.FillColor = Color3.new(0, 0.5, 1) highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.RobloxLocked = true protect_gui(highlight) highlight.Parent = CoreGui end local function onPlayerRemoving(player: Player) -- Fires on Player left -- Destroys Highlight: local highlight = playerVisuals[player] if highlight then highlight:Destroy() end -- Cleanup: playerVisuals[player] = nil end local function onCharacterAdded(character: Model) -- Fires on Character added weaponScript = character:WaitForChild("WeaponScript") -- Obtain Locals: inputBeganFunc = nil repeat task.wait(0.1) for i, v in ipairs(getgc()) do if type(v) == "function" then local script = getfenv(v).script if script and script == weaponScript then local constants = debug.getconstants(v) if table.find(constants, Enum.UserInputType.MouseButton1) then inputBeganFunc = v break end end end end until inputBeganFunc end -- Interface: do Library:SetWatermark("Linoria Community (OminousVibes)") Library:Notify("Loading UI...") local Window = Library:CreateWindow("Project Lazarus") do -- Gameplay local Tab = Window:AddTab("Gameplay") do -- Silent Aim local Container = Tab:AddLeftTabbox("Silent Aim") local Aimbot = Container:AddTab("Silent Aim") Aimbot :AddToggle("Aimbot", { Text = "Enabled", Default = false }) :AddKeyPicker("Aimbot", { Text = "Silent Aim", Default = "G" }) Aimbot :AddToggle("Aimbot_Circle", { Text = "Show Circle", Default = false }) :AddColorPicker("Aimbot_Circle", { Title = "Circle Color", Default = Color3.new(1, 1, 1) }) local Advanced = Container:AddTab("Advanced") Advanced:AddSlider( "Aimbot_FOV", { Text = "Circle Radius", Min = 25, Max = 500, Default = 100, Rounding = 0, Suffix = "px" } ) Advanced:AddSlider( "Aimbot_Thicknesss", { Text = "Circle Thickness", Min = 0, Max = 10, Default = 1, Rounding = 1, Suffix = "px" } ) end do -- Modifications local Container = Tab:AddRightTabbox("Modifications") local Guns = Container:AddTab("Guns") Guns:AddToggle("Gun_Clip", { Text = "Infinite Clip", Default = false }) Guns:AddToggle("Gun_Ammo", { Text = "Infinite Ammo", Default = false }) Guns:AddToggle("Gun_HK", { Text = "One Hit Kill", Default = false }) Guns:AddToggle("Gun_Piercing", { Text = "High Penetration", Default = false }) local Char = Container:AddTab("Character") Char:AddToggle("Character_Speed", { Text = "Speed Hack", Default = false }) local Zomb = Container:AddTab("Zombies") Zomb:AddToggle("Zombie_Freeze", { Text = "Freeze Zombies", Default = false }) end do -- AFK Bot local Container = Tab:AddRightGroupbox("AFK Bot") Container:AddToggle("Bot_Enabled", { Text = "Enabled", Default = false }) Container:AddSlider( "Bot_Radius", { Text = "Shoot Distance", Min = 10, Max = 100, Default = 25, Rounding = 0, Suffix = " studs" } ) end end do -- Visuals local Tab = Window:AddTab("Visuals") do -- Visuals local Container = Tab:AddLeftTabbox("Visuals") local Zombies = Container:AddTab("Humanoids") Zombies:AddToggle("Player_Chams", { Text = "Players", Default = true }) Zombies:AddToggle("Zombie_Chams", { Text = "Zombies", Default = true }) local Others = Container:AddTab("Others") Others:AddToggle("Crate_Chams", { Text = "Mystery Box", Default = false }) end do -- World Render local Container = Tab:AddRightGroupbox("World Render") Container:AddLabel("Work in progress") end end do -- Settings local Tab = Window:AddTab("Settings") ThemeManager:SetLibrary(Library) SaveManager:SetLibrary(Library) ThemeManager:SetFolder("OminousVibes") SaveManager:SetFolder("OminousVibes/project-lazarus") SaveManager:IgnoreThemeSettings() SaveManager:SetIgnoreIndexes({ "MenuKeybind" }) SaveManager:BuildConfigSection(Tab) ThemeManager:ApplyToTab(Tab) local Menu = Tab:AddLeftGroupbox("Menu") Menu:AddButton("Unload", function() Library:Unload() end) Menu:AddLabel("Menu bind"):AddKeyPicker("MenuKeybind", { Default = "End", NoUI = true, Text = "Menu keybind" }) Menu:AddToggle("Keybinds", { Text = "Show Keybinds Menu", Default = true }):OnChanged(function() Library.KeybindFrame.Visible = Toggles.Keybinds.Value end) Menu:AddToggle("Watermark", { Text = "Show Watermark", Default = true }):OnChanged(function() Library:SetWatermarkVisibility(Toggles.Watermark.Value) end) end Library:Notify("UI Loaded") end -- Listeners: RunService.RenderStepped:Connect(function(deltaTime) -- Aimbot: local mouseLocation = UserInputService:GetMouseLocation() if Toggles.Aimbot.Value and Options.Aimbot:GetState() then aimTarget = getAimbotTarget(mouseLocation) aimbotting = true else aimTarget = nil aimbotting = false end if Circle.Visible then Circle.Position = mouseLocation end -- Gun Mods: local equipped = getrenv()._G.Equipped if equipped then if Toggles.Gun_Clip.Value then equipped.Ammo = equipped.MagSize end if Toggles.Gun_Ammo.Value then equipped.StoredAmmo = equipped.MaxAmmo end if Toggles.Gun_HK.Value then equipped.HeadShot = 100 + (CurrentRound.Value * 50) equipped.TorsoShot = 100 + (CurrentRound.Value * 50) equipped.LimbShot = 100 + (CurrentRound.Value * 50) end if Toggles.Gun_Piercing.Value then equipped.BulletPenetration = 250 end end -- Character Mods: -- Zombie Mods: if Toggles.Zombie_Freeze.Value then for _, zombie in ipairs(ZombiesFolder:GetChildren()) do if isCharacterValid(zombie) then local root = zombie.PrimaryPart if root then local distance = (root.Position - Camera.CFrame.Position).Magnitude if distance < 30 and not zombieMovers[zombie] then local bodyMover = Instance.new("BodyPosition") zombieMovers[zombie] = bodyMover bodyMover.MaxForce = Vector3.one * math.huge bodyMover.P = 1e4 bodyMover.Position = root.Position + Vector3.new(0, 4, 0) bodyMover.RobloxLocked = true bodyMover.Parent = root local connection connection = zombie.AncestryChanged:Connect(function() connection:Disconnect() bodyMover:Destroy() zombieMovers[zombie] = nil end) end end end end end end) Toggles.Bot_Enabled:OnChanged(function() if not Toggles.Bot_Enabled.Value then return end -- Variables: local aiming = false -- Bot Logic: while Toggles.Bot_Enabled.Value do local character = LocalPlayer.Character if weaponScript and inputBeganFunc then while Toggles.Bot_Enabled.Value and isCharacterValid(character) do local target = nil local distance = Options.Bot_Radius.Value or 25 local zombies = ZombiesFolder:GetChildren() for i, v in ipairs(zombies) do if isCharacterValid(v) and not zombieIgnore[v] then local root: BasePart = v.HumanoidRootPart if isPositionVisible(root.Position) then local magnitude = (root.Position - Camera.CFrame.Position).Magnitude if magnitude < distance then target = v distance = magnitude end end end end botTarget = target if target then Camera.CFrame = Camera.CFrame:Lerp( CFrame.new(Camera.CFrame.Position, target.HumanoidRootPart.Position), 0.5 ) task.defer(getsenv(weaponScript).AimGun) aiming = true local input = { UserInputType = Enum.UserInputType.MouseButton1, KeyCode = nil, UserInputState = Enum.UserInputState.Begin, } task.defer(inputBeganFunc, input, false) task.delay(0.05, function() input.UserInputState = Enum.UserInputState.End end) else if aiming then task.defer(getsenv(weaponScript).UnAimGun) aiming = false end task.defer(inputBeganFunc, { UserInputType = Enum.UserInputType.Keyboard, KeyCode = Enum.KeyCode.R, UserInputState = Enum.UserInputState.Begin, }, false) end RunService.RenderStepped:Wait() end end task.wait(0.1) end end) Players.PlayerAdded:Connect(onPlayerAdded) Players.PlayerRemoving:Connect(onPlayerRemoving) LocalPlayer.CharacterAdded:Connect(onCharacterAdded) ZombiesFolder.ChildAdded:Connect(onZombieAdded) InteractFolder.ChildAdded:Connect(onInteractAdded) Workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function() local camera = Workspace.CurrentCamera if camera then Camera = camera end end) Workspace.ChildAdded:Connect(function(child) if child.Name == "Map" then child.ChildAdded:Connect(onMapChild) end end) do -- UI Listeners -- Aimbot: Toggles.Aimbot:OnChanged(function() Circle.Visible = Toggles.Aimbot.Value and Toggles.Aimbot_Circle.Value end) Toggles.Aimbot_Circle:OnChanged(function() Circle.Visible = Toggles.Aimbot.Value and Toggles.Aimbot_Circle.Value end) Options.Aimbot_Circle:OnChanged(function() Circle.Color = Options.Aimbot_Circle.Value end) Options.Aimbot_FOV:OnChanged(function() Circle.Radius = Options.Aimbot_FOV.Value end) Options.Aimbot_Thicknesss:OnChanged(function() Circle.Thickness = Options.Aimbot_Thicknesss.Value end) -- Zombie Mods: Toggles.Zombie_Freeze:OnChanged(function() if not Toggles.Zombie_Freeze.Value then for i, v in pairs(zombieMovers) do v:Destroy() end zombieMovers = {} end end) -- Visual: Toggles.Player_Chams:OnChanged(function() for player, highlight in pairs(playerVisuals) do highlight.Enabled = Toggles.Player_Chams.Value end end) Toggles.Zombie_Chams:OnChanged(function() for zombie, highlight in pairs(zombieVisuals) do highlight.Enabled = Toggles.Zombie_Chams.Value end end) Toggles.Crate_Chams:OnChanged(function() for crate, highlight in pairs(crateVisuals) do highlight.Enabled = Toggles.Crate_Chams.Value end end) end -- MetaHooks: local __index __index = hookmetamethod(game, "__index", function(self: Instance, index) if not checkcaller() then local script = getcallingscript() if script == weaponScript then if typeof(self) == "Instance" then local target = nil if Toggles.Bot_Enabled.Value then target = botTarget elseif aimbotting then target = aimTarget end if target then if index == "CFrame" then if self == Camera then local head = target:FindFirstChild("HeadBox") if head then local origin = __index(Camera, "CFrame").Position return CFrame.new(origin, head.Position) end end if __index(self, "Name") == "AimPart" and self:IsA("BasePart") then local head = target:FindFirstChild("HeadBox") if head then local origin = __index(Camera, "CFrame").Position return CFrame.new(origin + (head.Position - origin) / 2) end end end end end end end return __index(self, index) end) -- Actions: Circle.Transparency = 0.9 Circle.NumSides = 25 Circle.Thickness = Options.Aimbot_Thicknesss.Value Circle.Color = Options.Aimbot_Circle.Value for i, v in ipairs(Players:GetPlayers()) do if v ~= LocalPlayer then task.defer(onPlayerAdded, v) end end if LocalPlayer.Character then task.defer(onCharacterAdded, LocalPlayer.Character) end for i, v in ipairs(ZombiesFolder:GetChildren()) do task.defer(onZombieAdded, v) end for i, v in ipairs(InteractFolder:GetChildren()) do task.defer(onInteractAdded, v) end return Library:Notify("[Project Lazarus] Loaded!")