local Players=game:GetService("Players") local UserInputService=game:GetService("UserInputService") local LP=Players.LocalPlayer local SG=Instance.new("ScreenGui",LP:WaitForChild("PlayerGui")) SG.Name="ESPGui" SG.ResetOnSpawn=false local F=Instance.new("Frame",SG) F.Size=UDim2.new(0,200,0,120) F.Position=UDim2.new(0.5,-100,0.5,-60) F.BackgroundColor3=Color3.fromRGB(30,30,30) F.BackgroundTransparency=0.2 F.BorderSizePixel=0 F.Active=true F.Draggable=true local FC=Instance.new("UICorner",F) FC.CornerRadius=UDim.new(0,12) local FS=Instance.new("UIStroke",F) FS.Color=Color3.fromRGB(100,100,100) FS.Thickness=1 local B=Instance.new("TextButton",F) B.Size=UDim2.new(0,180,0,60) B.Position=UDim2.new(0.5,-90,0.5,-30) B.BackgroundColor3=Color3.fromRGB(50,100,200) B.TextColor3=Color3.fromRGB(255,255,255) B.Text="Toggle ESP" B.Font=Enum.Font.GothamBold B.TextSize=20 B.BorderSizePixel=0 local BC=Instance.new("UICorner",B) BC.CornerRadius=UDim.new(0,10) local E=false local T={} local function CE(P) if P~=LP and P.Character then local C=P.Character local R=C:FindFirstChild("HumanoidRootPart") if R then local S=C:GetExtentsSize() local BH=Instance.new("BoxHandleAdornment",R) BH.Name="ESP" BH.Adornee=C BH.Size=S*1.05 BH.Color3=Color3.fromRGB(255,0,0) BH.Transparency=0.5 BH.AlwaysOnTop=true local G=Instance.new("BillboardGui",R) G.Name="ESPName" G.Adornee=R G.Size=UDim2.new(0,100,0,20) G.StudsOffset=Vector3.new(0,S.Y/2+1,0) G.AlwaysOnTop=true local N=Instance.new("TextLabel",G) N.Size=UDim2.new(1,0,1,0) N.BackgroundTransparency=1 N.TextColor3=Color3.fromRGB(255,255,255) N.TextStrokeTransparency=0.5 N.TextStrokeColor3=Color3.fromRGB(0,0,0) N.Font=Enum.Font.GothamBold N.TextSize=16 N.Text=P.Name T[P]={Box=BH,Name=G} end end end local function RE(P) if T[P]then T[P].Box:Destroy() T[P].Name:Destroy() T[P]=nil end end local function TE() E=not E B.Text=E and"ESP: ON"or"ESP: OFF" B.BackgroundColor3=E and Color3.fromRGB(50,200,50)or Color3.fromRGB(50,100,200) if E then for _,P in pairs(Players:GetPlayers())do CE(P) end else for P,_ in pairs(T)do RE(P) end end end B.MouseButton1Click:Connect(TE) Players.PlayerAdded:Connect(function(P) if E then P.CharacterAdded:Connect(function() CE(P) end) end end) Players.PlayerRemoving:Connect(function(P) RE(P) end) for _,P in pairs(Players:GetPlayers())do if P~=LP then P.CharacterAdded:Connect(function() if E then CE(P) end end) end end