-- ESP GUI v5 — add DarkRed, DarkGreen, Silver, LightBlue local Players = game:GetService("Players") local RunService = game:GetService("RunService") local LocalPlayer = Players.LocalPlayer local ESP_Enabled = true local ShowFullBody, ShowName, ShowHealth, ShowAge, ShowRole = true,true,true,true,true local RainbowMode = false local Colors = { Green = Color3.fromRGB(0, 255, 0), Blue = Color3.fromRGB(0, 0, 255), Yellow = Color3.fromRGB(255, 255, 0), Purple = Color3.fromRGB(128, 0, 128), Pink = Color3.fromRGB(255, 105, 180), Black = Color3.fromRGB(0, 0, 0), White = Color3.fromRGB(255, 255, 255), Orange = Color3.fromRGB(255, 165, 0), Gray = Color3.fromRGB(128, 128, 128), Red = Color3.fromRGB(255, 0, 0), Brown = Color3.fromRGB(139, 69, 19), DarkBlue = Color3.fromRGB(0, 0, 139), DarkRed = Color3.fromRGB(139, 0, 0), DarkGreen = Color3.fromRGB(0, 100, 0), Silver = Color3.fromRGB(192, 192, 192), LightBlue = Color3.fromRGB(173, 216, 230), } local CurrentColor = Colors.Green local colorList = {} for _,c in pairs(Colors) do table.insert(colorList,c) end local AdminUserIds = {} local function GetPlayerRole(p) if game.CreatorType == Enum.CreatorType.User then if p.UserId == game.CreatorId then return "Ownership" end else local gid = game.CreatorId local ok,inGroup = pcall(function() return p:IsInGroup(gid) end) if ok and inGroup then local rank = p:GetRankInGroup(gid) if rank == 255 then return "Ownership" elseif rank >= 200 or AdminUserIds[p.UserId] then return "Administrator" else return "Membership" end end end if AdminUserIds[p.UserId] then return "Administrator" end return "Guest" end -- GUI setup (same as v4, frame taller for 16 colors) local gui = Instance.new("ScreenGui") gui.Name="ESP_GUI" gui.ResetOnSpawn=false gui.Parent=LocalPlayer:WaitForChild("PlayerGui") local frame = Instance.new("Frame") frame.Size=UDim2.new(0,250,0,480) frame.Position=UDim2.new(0,10,0,10) frame.BackgroundColor3=Color3.fromRGB(30,30,30) frame.Parent=gui local closeBtn = Instance.new("TextButton") closeBtn.Text="X" closeBtn.Size=UDim2.new(0,25,0,25) closeBtn.Position=UDim2.new(1,-28,0,3) closeBtn.BackgroundColor3=Color3.fromRGB(200,50,50) closeBtn.TextColor3=Color3.new(1,1,1) closeBtn.Parent=frame local openBtn = Instance.new("TextButton") openBtn.Text="ESP" openBtn.Size=UDim2.new(0,50,0,30) openBtn.Position=UDim2.new(0,10,0,10) openBtn.Visible=false openBtn.Parent=gui closeBtn.MouseButton1Click:Connect(function() frame.Visible=false openBtn.Visible=true end) openBtn.MouseButton1Click:Connect(function() frame.Visible=true openBtn.Visible=false end) local function makeToggle(name,y,def,cb) local b=Instance.new("TextButton") b.Size=UDim2.new(1,-20,0,25) b.Position=UDim2.new(0,10,0,y) b.Text=name..": ON" b.BackgroundColor3=Color3.fromRGB(50,50,50) b.TextColor3=Color3.new(1,1,1) b.Parent=frame local s=def b.MouseButton1Click:Connect(function() s=not s b.Text=name..": "..(s and"ON"or"OFF") cb(s) end) end makeToggle("Full-Body",40,true,function(v) ShowFullBody=v end) makeToggle("Name",70,true,function(v) ShowName=v end) makeToggle("Health",100,true,function(v) ShowHealth=v end) makeToggle("Age",130,true,function(v) ShowAge=v end) makeToggle("Role",160,true,function(v) ShowRole=v end) local rainbowBtn = Instance.new("TextButton") rainbowBtn.Size=UDim2.new(1,-20,0,25) rainbowBtn.Position=UDim2.new(0,10,0,190) rainbowBtn.Text="Rainbow: OFF" rainbowBtn.BackgroundColor3=Color3.fromRGB(20,80,80) rainbowBtn.TextColor3=Color3.new(1,1,1) rainbowBtn.Parent=frame rainbowBtn.MouseButton1Click:Connect(function() RainbowMode=not RainbowMode rainbowBtn.Text="Rainbow: "..(RainbowMode and"ON"or"OFF") if RainbowMode then task.spawn(function() local i=1 while RainbowMode do CurrentColor=colorList[i] i=i%#colorList+1 task.wait(0.1) end end) end end) local x,y=10,225 for _,col in pairs(Colors) do local b=Instance.new("TextButton") b.Size=UDim2.new(0,50,0,25) b.Position=UDim2.new(0,x,0,y) b.BackgroundColor3=col b.Text="" b.Parent=frame b.MouseButton1Click:Connect(function() CurrentColor=col RainbowMode=false rainbowBtn.Text="Rainbow: OFF" end) x=x+55 if x>195 then x=10 y=y+30 end end -- ESP core (same as v4) local espObjects={} local function clearESP(p) if espObjects[p] then for _,o in pairs(espObjects[p]) do o:Destroy() end espObjects[p]=nil end end local function createESP(player) if player==LocalPlayer then return end espObjects[player]={} local function onChar(char) clearESP(player) espObjects[player]={} local h=Instance.new("Highlight") h.FillTransparency=0.7 h.DepthMode=Enum.HighlightDepthMode.AlwaysOnTop h.Parent=char table.insert(espObjects[player],h) local head=char:WaitForChild("Head",5) if head then local bill=Instance.new("BillboardGui") bill.Size=UDim2.new(0,220,0,100) bill.StudsOffset=Vector3.new(0,4,0) bill.AlwaysOnTop=true bill.Adornee=head bill.Parent=head local function nl(y) local l=Instance.new("TextLabel") l.Position=UDim2.new(0,0,y,0) l.Size=UDim2.new(1,0,0.25,0) l.BackgroundTransparency=1 l.TextScaled=true l.Font=Enum.Font.SourceSansBold l.TextStrokeTransparency=0 l.Parent=bill return l end local n=nl(0) local hl=nl(0.25) hl.Font=Enum.Font.SourceSans local a=nl(0.5) a.Font=Enum.Font.SourceSans local r=nl(0.75) r.Font=Enum.Font.SourceSans table.insert(espObjects[player],bill) local hum=char:FindFirstChildOfClass("Humanoid") RunService.RenderStepped:Connect(function() if not char.Parent then return end h.Enabled=ESP_Enabled and ShowFullBody h.FillColor=CurrentColor h.OutlineColor=CurrentColor local stroke=Color3.new(0,0,0) if CurrentColor==Colors.Black then stroke=Color3.new(1,1,1) end n.Visible=ESP_Enabled and ShowName n.Text=player.Name n.TextColor3=CurrentColor n.TextStrokeColor3=stroke hl.Visible=ESP_Enabled and ShowHealth if hum then hl.Text=math.floor(hum.Health).." HP" hl.TextColor3=CurrentColor hl.TextStrokeColor3=stroke end a.Visible=ESP_Enabled and ShowAge a.Text=math.floor(player.AccountAge/365).."y old" a.TextColor3=CurrentColor a.TextStrokeColor3=stroke r.Visible=ESP_Enabled and ShowRole r.Text=GetPlayerRole(player) r.TextColor3=CurrentColor r.TextStrokeColor3=stroke end) end end if player.Character then onChar(player.Character) end player.CharacterAdded:Connect(onChar) end for _,p in pairs(Players:GetPlayers()) do createESP(p) end Players.PlayerAdded:Connect(createESP) Players.PlayerRemoving:Connect(clearESP)