repeat task.wait() until game:IsLoaded() local Players = game:GetService("Players") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local UIS = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer -- CONFIG local Config = { Enabled = true, NameMode = "displayname", -- displayname | username | both Accent = Color3.fromRGB(0, 255, 70), -- main hacker green Dark = Color3.fromRGB(0, 25, 8), -- dark green for backgrounds Danger = Color3.fromRGB(255, 60, 60), -- low HP color Font = Enum.Font.Code, -- monospace terminal font } local TAG_CHAMS, TAG_GUI = "HX_Chams", "HX_Tag" -- UTILS local function notify(title, text, duration) pcall(function() StarterGui:SetCore("SendNotification", { Title = title, Text = text, Duration = duration or 3 }) end) end local function getName(plr) if Config.NameMode == "username" then return plr.Name elseif Config.NameMode == "both" then return string.format("%s (@%s)", plr.DisplayName, plr.Name) end return plr.DisplayName end local OLD = { BoxESP = true, GetReal = true, NameESP = true, [TAG_CHAMS] = true, [TAG_GUI] = true } local function cleanup(char) for _, obj in ipairs(char:GetDescendants()) do if OLD[obj.Name] then obj:Destroy() end end end for _, plr in ipairs(Players:GetPlayers()) do if plr.Character then cleanup(plr.Character) end end local function makeChams(char) local hl = Instance.new("Highlight") hl.Name = TAG_CHAMS hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop hl.FillColor = Config.Accent hl.OutlineColor = Config.Accent hl.FillTransparency = 0.75 hl.OutlineTransparency = 0 hl.Parent = char return hl end local function makeTag(head) local gui = Instance.new("BillboardGui") gui.Name = TAG_GUI gui.Size = UDim2.new(0, 190, 0, 46) gui.StudsOffset = Vector3.new(0, 3, 0) gui.AlwaysOnTop = true gui.Adornee = head local nameLbl = Instance.new("TextLabel") nameLbl.Name = "NameLbl" nameLbl.BackgroundTransparency = 1 nameLbl.Size = UDim2.new(1, 0, 0, 20) nameLbl.Font = Config.Font nameLbl.TextSize = 16 nameLbl.TextColor3 = Config.Accent nameLbl.TextStrokeTransparency = 0.3 nameLbl.TextStrokeColor3 = Config.Dark nameLbl.Parent = gui local info = Instance.new("TextLabel") info.Name = "InfoLbl" info.BackgroundTransparency = 1 info.Position = UDim2.new(0, 0, 0, 20) info.Size = UDim2.new(1, 0, 0, 14) info.Font = Config.Font info.TextSize = 12 info.TextColor3 = Config.Accent info.TextTransparency = 0.15 info.TextStrokeTransparency = 0.5 info.TextStrokeColor3 = Config.Dark info.Parent = gui local barBg = Instance.new("Frame") barBg.Name = "BarBg" barBg.AnchorPoint = Vector2.new(0.5, 0) barBg.Position = UDim2.new(0.5, 0, 0, 37) barBg.Size = UDim2.new(0.7, 0, 0, 5) barBg.BackgroundColor3 = Config.Dark barBg.BorderSizePixel = 0 barBg.Parent = gui local stroke = Instance.new("UIStroke") stroke.Name = "BarStroke" stroke.Color = Config.Accent stroke.Thickness = 1 stroke.Parent = barBg local fill = Instance.new("Frame") fill.Name = "BarFill" fill.Size = UDim2.new(1, 0, 1, 0) fill.BackgroundColor3 = Config.Accent fill.BorderSizePixel = 0 fill.Parent = barBg gui.Parent = head return gui end local function update(plr) local char = plr.Character if not char then return end local head = char:FindFirstChild("Head") local hum = char:FindFirstChildOfClass("Humanoid") if not head or not hum then return end local hl = char:FindFirstChild(TAG_CHAMS) or makeChams(char) local gui = head:FindFirstChild(TAG_GUI) or makeTag(head) hl.Enabled = Config.Enabled gui.Enabled = Config.Enabled if not Config.Enabled then return end local nameLbl = gui:FindFirstChild("NameLbl") local infoLbl = gui:FindFirstChild("InfoLbl") local barBg = gui:FindFirstChild("BarBg") if not (nameLbl and infoLbl and barBg) then return end local barFill = barBg:FindFirstChild("BarFill") local barStroke = barBg:FindFirstChild("BarStroke") hl.FillTransparency = 0.78 + math.sin(os.clock() * 3) * 0.07 local dist = 0 local myRoot = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if myRoot then dist = (myRoot.Position - head.Position).Magnitude end local pct = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1) local color = Config.Accent:Lerp(Config.Danger, 1 - pct) nameLbl.Text = "> " .. getName(plr) nameLbl.TextColor3 = color infoLbl.Text = string.format("[ %dm | HP %d ]", math.floor(dist), math.floor(hum.Health)) infoLbl.TextColor3 = color if barFill then barFill.Size = UDim2.new(pct, 0, 1, 0) barFill.BackgroundColor3 = color end if barStroke then barStroke.Color = color end hl.FillColor = color hl.OutlineColor = color gui.StudsOffset = Vector3.new(0, 2.5 + math.clamp(dist / 60, 0, 5), 0) end RunService.Heartbeat:Connect(function() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LocalPlayer then pcall(update, plr) end end end) UIS.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.RightBracket then Config.Enabled = not Config.Enabled elseif input.KeyCode == Enum.KeyCode.LeftBracket then if Config.NameMode == "displayname" then Config.NameMode = "username" elseif Config.NameMode == "username" then Config.NameMode = "both" else Config.NameMode = "displayname" end end end)