-- // SERVICES \\ -- local Players = game:GetService("Players") local CoreGui = game:GetService("CoreGui") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local localPlayer = Players.LocalPlayer local camera = workspace.CurrentCamera -- // SETTINGS \\ -- local settings = { espEnabled = false, aimEnabled = false, fov = 1000, aimPart = "HumanoidRootPart" } -- Storage to prevent duplicate ESPs local activeVisuals = {} -- // UI SETUP \\ -- local screenGui = Instance.new("ScreenGui", CoreGui) screenGui.Name = "PersistentHub_v11" local mainFrame = Instance.new("Frame", screenGui) mainFrame.Size = UDim2.new(0, 180, 0, 160) mainFrame.Position = UDim2.new(0.5, -90, 0.2, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 15) mainFrame.Active = true mainFrame.Draggable = true Instance.new("UICorner", mainFrame) local function createToggle(text, pos, callback) local btn = Instance.new("TextButton", mainFrame) btn.Size = UDim2.new(1, -20, 0, 35) btn.Position = pos btn.Text = text .. ": OFF" btn.BackgroundColor3 = Color3.fromRGB(180, 0, 0) btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.GothamBold Instance.new("UICorner", btn) btn.MouseButton1Click:Connect(function() local state = callback() btn.Text = text .. (state and ": ON" or ": OFF") btn.BackgroundColor3 = state and Color3.fromRGB(0, 180, 0) or Color3.fromRGB(180, 0, 0) end) end -- // THE CORE ESP "GLOW" FUNCTION \\ -- local function applyGlow(player) if player == localPlayer then return end local function setup(char) -- Wait for the body to exist local root = char:WaitForChild("HumanoidRootPart", 10) or char:WaitForChild("Head", 10) if not root then return end -- Remove old ESP if it exists if activeVisuals[player] then for _, obj in pairs(activeVisuals[player]) do if obj then obj:Destroy() end end end activeVisuals[player] = {} -- 1. THE GLOW (Highlight) local hl = Instance.new("Highlight") hl.Name = "OmniGlow" hl.FillColor = Color3.fromRGB(255, 0, 0) hl.OutlineColor = Color3.new(1, 1, 1) hl.FillTransparency = 0.4 hl.OutlineTransparency = 0 hl.Enabled = settings.espEnabled hl.Parent = char table.insert(activeVisuals[player], hl) -- 2. THE STUDS (Billboard) local bGui = Instance.new("BillboardGui") bGui.Name = "OmniStuds" bGui.Size = UDim2.new(0, 100, 0, 30) bGui.AlwaysOnTop = true bGui.StudsOffset = Vector3.new(0, 3, 0) bGui.Enabled = settings.espEnabled bGui.Parent = root local lbl = Instance.new("TextLabel", bGui) lbl.Size = UDim2.new(1, 0, 1, 0) lbl.BackgroundTransparency = 1 lbl.TextColor3 = Color3.new(1, 1, 1) lbl.Font = Enum.Font.GothamBold lbl.TextSize = 14 lbl.Text = "Updating..." table.insert(activeVisuals[player], bGui) end player.CharacterAdded:Connect(setup) if player.Character then task.spawn(setup, player.Character) end end -- // RENDER LOOP (AIMBOT + DISTANCE) \\ -- RunService.RenderStepped:Connect(function() -- Update Studs Distance if settings.espEnabled and localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") then local myPos = localPlayer.Character.HumanoidRootPart.Position for player, visuals in pairs(activeVisuals) do local char = player.Character if char and char:FindFirstChild("HumanoidRootPart") then local label = visuals[2] and visuals[2]:FindFirstChildOfClass("TextLabel") if label then local d = math.floor((myPos - char.HumanoidRootPart.Position).Magnitude) label.Text = d .. " studs" end end end end -- Rage Aimbot Logic if settings.aimEnabled and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then local closestPos = nil local shortestDist = settings.fov local mousePos = UserInputService:GetMouseLocation() for _, p in pairs(Players:GetPlayers()) do if p ~= localPlayer and p.Character then local root = p.Character:FindFirstChild(settings.aimPart) or p.Character:FindFirstChild("Head") if root then local screenPos, onScreen = camera:WorldToViewportPoint(root.Position) if onScreen then local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude if dist < shortestDist then closestPos = screenPos shortestDist = dist end end end end end if closestPos and mousemoverel then mousemoverel(closestPos.X - mousePos.X, closestPos.Y - mousePos.Y) end end end) -- // BUTTONS \\ -- createToggle("GLOW ESP", UDim2.new(0, 10, 0, 15), function() settings.espEnabled = not settings.espEnabled for _, visuals in pairs(activeVisuals) do for _, obj in pairs(visuals) do obj.Enabled = settings.espEnabled end end return settings.espEnabled end) createToggle("RAGE AIM", UDim2.new(0, 10, 0, 60), function() settings.aimEnabled = not settings.aimEnabled return settings.aimEnabled end) local dBtn = Instance.new("TextButton", mainFrame) dBtn.Size = UDim2.new(1, -20, 0, 35); dBtn.Position = UDim2.new(0, 10, 0, 105) dBtn.Text = "DESTROY"; dBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40); dBtn.TextColor3 = Color3.new(1, 1, 1) dBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end) Instance.new("UICorner", dBtn) -- // THE "ALWAYS-ON" SCANNER \\ -- -- This loop runs every 2 seconds to catch anyone the script missed task.spawn(function() while task.wait(2) do for _, p in pairs(Players:GetPlayers()) do if p ~= localPlayer and p.Character then -- Check if they are missing a Highlight if not p.Character:FindFirstChild("OmniGlow") then applyGlow(p) end end end end end) -- Initial Startup for _, p in pairs(Players:GetPlayers()) do applyGlow(p) end Players.PlayerAdded:Connect(applyGlow)