-- Simple ESP with automatic team detection local Players = game:GetService("Players") local RunService = game:GetService("RunService") local CollectionService = game:GetService("CollectionService") local CoreGui = game:GetService("CoreGui") -- Remove old GUI if CoreGui:FindFirstChild("SimpleESPGui") then CoreGui:FindFirstChild("SimpleESPGui"):Destroy() end -- Simple settings local ESP = { Enabled = true, Hiders = true, Seekers = true, HiderColor = Color3.fromRGB(0, 255, 0), SeekerColor = Color3.fromRGB(255, 0, 0) } local PlayerHighlights = {} -- DETECTION METHODS: -- 1. CollectionService Tags local function CheckByTags(character) -- Seeker tags local seekerTags = {"Seeker", "Hunter", "It", "Tagger", "Catcher"} for _, tag in ipairs(seekerTags) do if CollectionService:HasTag(character, tag) then return "Seeker" end end -- Hider tags local hiderTags = {"Hider", "Hidden", "Prey", "Runner", "Mouse"} for _, tag in ipairs(hiderTags) do if CollectionService:HasTag(character, tag) then return "Hider" end end return nil end -- 2. Tools and weapons + knife for seekers local function CheckByTools(character) -- Seeker tools (including knife) local seekerTools = {"Knife", "Sword", "Weapon", "Flashlight", "Net", "Gun"} for _, tool in ipairs(seekerTools) do if character:FindFirstChild(tool) then return "Seeker" end end -- Check Backpack for knife/weapons local player = Players:GetPlayerFromCharacter(character) if player and player:FindFirstChild("Backpack") then for _, tool in ipairs(seekerTools) do if player.Backpack:FindFirstChild(tool) then return "Seeker" end end end -- If player has knife - definitely seeker if character:FindFirstChild("Knife") then return "Seeker" end -- Hiders don't have knife - check for absence of weapons local hasWeapon = false for _, tool in ipairs(seekerTools) do if character:FindFirstChild(tool) then hasWeapon = true break end end if not hasWeapon then return "Hider" end return nil end -- 3. Character stats - speed local function CheckBySpeed(character) local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then -- Seekers are usually slower (8-14) if humanoid.WalkSpeed >= 8 and humanoid.WalkSpeed <= 14 then return "Seeker" end -- Hiders are usually faster (16-25) if humanoid.WalkSpeed >= 16 and humanoid.WalkSpeed <= 25 then return "Hider" end end return nil end -- 4. Appearance - clothing color, accessories local function CheckByAppearance(character) -- Check clothing for _, item in pairs(character:GetChildren()) do if item:IsA("Shirt") or item:IsA("Pants") or item:IsA("ShirtGraphic") then local itemName = string.lower(item.Name) -- Keywords for seekers if string.find(itemName, "seek") or string.find(itemName, "hunt") or string.find(itemName, "police") or string.find(itemName, "guard") then return "Seeker" end -- Keywords for hiders if string.find(itemName, "hide") or string.find(itemName, "run") or string.find(itemName, "civil") or string.find(itemName, "normal") then return "Hider" end end -- Check accessories (hats etc.) if item:IsA("Accessory") then local accName = string.lower(item.Name) if string.find(accName, "police") or string.find(accName, "army") or string.find(accName, "helmet") then return "Seeker" end end end return nil end -- Main team detection function local function GetPlayerTeam(player) local character = player.Character if not character then return "Hider" end -- Apply methods by priority local detectionMethods = { CheckByTags, -- Most reliable CheckByTools, -- Knife/weapons CheckBySpeed, -- Movement speed CheckByAppearance -- Appearance } for _, method in ipairs(detectionMethods) do local team = method(character) if team then return team end end -- If no method worked - default to hider return "Hider" end -- Create ESP local function CreateESP(player) if player == Players.LocalPlayer then return end if PlayerHighlights[player] then return end local character = player.Character if not character then return end local team = GetPlayerTeam(player) -- Check if we need to show if (team == "Hider" and not ESP.Hiders) or (team == "Seeker" and not ESP.Seekers) then return end -- Create highlight local highlight = Instance.new("Highlight") highlight.Name = "ESP" if team == "Hider" then highlight.FillColor = ESP.HiderColor highlight.FillTransparency = 0.7 highlight.OutlineColor = ESP.HiderColor else highlight.FillColor = ESP.SeekerColor highlight.FillTransparency = 0.3 highlight.OutlineColor = ESP.SeekerColor end highlight.Adornee = character highlight.Parent = character PlayerHighlights[player] = highlight -- Info above head local billboard = Instance.new("BillboardGui") billboard.Size = UDim2.new(0, 200, 0, 40) billboard.StudsOffset = Vector3.new(0, 3, 0) billboard.AlwaysOnTop = true local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if humanoidRootPart then billboard.Adornee = humanoidRootPart else billboard.Adornee = character:WaitForChild("Head") end billboard.Parent = character local label = Instance.new("TextLabel") label.Size = UDim2.new(1, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = player.Name .. " - " .. team label.TextColor3 = team == "Hider" and ESP.HiderColor or ESP.SeekerColor label.TextSize = 12 label.Font = Enum.Font.GothamBold label.Parent = billboard print("ESP: " .. player.Name .. " detected as: " .. team) end -- Remove ESP local function RemoveESP(player) if PlayerHighlights[player] then PlayerHighlights[player]:Destroy() PlayerHighlights[player] = nil end end -- Create simple GUI local function CreateSimpleGUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "SimpleESPGui" screenGui.Parent = CoreGui screenGui.ResetOnSpawn = false -- Main frame local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 250, 0, 180) mainFrame.Position = UDim2.new(0, 20, 0, 20) mainFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 50) mainFrame.BackgroundTransparency = 0.1 mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = mainFrame -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundColor3 = Color3.fromRGB(60, 60, 80) title.Text = "ESP System" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 16 title.Font = Enum.Font.GothamBold title.Parent = mainFrame -- Info about methods local methodsLabel = Instance.new("TextLabel") methodsLabel.Size = UDim2.new(0.9, 0, 0, 50) methodsLabel.Position = UDim2.new(0.05, 0, 0.2, 0) methodsLabel.BackgroundTransparency = 1 methodsLabel.Text = "Tags\nTools\nSpeed\nAppearance" methodsLabel.TextColor3 = Color3.fromRGB(200, 200, 255) methodsLabel.TextSize = 12 methodsLabel.Font = Enum.Font.Gotham methodsLabel.TextXAlignment = Enum.TextXAlignment.Left methodsLabel.Parent = mainFrame -- Toggle button local toggleButton = Instance.new("TextButton") toggleButton.Size = UDim2.new(0.8, 0, 0, 35) toggleButton.Position = UDim2.new(0.1, 0, 0.55, 0) toggleButton.BackgroundColor3 = Color3.fromRGB(0, 150, 0) toggleButton.Text = "ESP: ON" toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255) toggleButton.TextSize = 14 toggleButton.Font = Enum.Font.GothamBold toggleButton.Parent = mainFrame local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 6) buttonCorner.Parent = toggleButton -- Mode button local modeButton = Instance.new("TextButton") modeButton.Size = UDim2.new(0.8, 0, 0, 30) modeButton.Position = UDim2.new(0.1, 0, 0.8, 0) modeButton.BackgroundColor3 = Color3.fromRGB(80, 80, 120) modeButton.Text = "Show: ALL" modeButton.TextColor3 = Color3.fromRGB(255, 255, 255) modeButton.TextSize = 12 modeButton.Font = Enum.Font.Gotham modeButton.Parent = mainFrame local modeCorner = Instance.new("UICorner") modeCorner.CornerRadius = UDim.new(0, 6) modeCorner.Parent = modeButton -- Button handlers toggleButton.MouseButton1Click:Connect(function() ESP.Enabled = not ESP.Enabled if ESP.Enabled then toggleButton.Text = "ESP: ON" toggleButton.BackgroundColor3 = Color3.fromRGB(0, 150, 0) -- Enable ESP for all players for _, player in ipairs(Players:GetPlayers()) do CreateESP(player) end else toggleButton.Text = "ESP: OFF" toggleButton.BackgroundColor3 = Color3.fromRGB(80, 80, 80) -- Disable ESP for all players for _, player in ipairs(Players:GetPlayers()) do RemoveESP(player) end end end) modeButton.MouseButton1Click:Connect(function() if ESP.Hiders and ESP.Seekers then -- Only seekers ESP.Hiders = false ESP.Seekers = true modeButton.Text = "Show: SEEKERS" modeButton.BackgroundColor3 = Color3.fromRGB(150, 0, 0) elseif not ESP.Hiders and ESP.Seekers then -- Only hiders ESP.Hiders = true ESP.Seekers = false modeButton.Text = "Show: HIDERS" modeButton.BackgroundColor3 = Color3.fromRGB(0, 120, 0) else -- All ESP.Hiders = true ESP.Seekers = true modeButton.Text = "Show: ALL" modeButton.BackgroundColor3 = Color3.fromRGB(80, 80, 120) end -- Update ESP for _, player in ipairs(Players:GetPlayers()) do RemoveESP(player) wait() CreateESP(player) end end) return screenGui end -- Initialize system local function InitializeESP() print("Starting ESP system with auto-detection...") -- Create GUI CreateSimpleGUI() -- Initialize ESP for all players for _, player in ipairs(Players:GetPlayers()) do if player ~= Players.LocalPlayer then CreateESP(player) end end -- Handle new players Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function() wait(2) if player ~= Players.LocalPlayer then CreateESP(player) end end) end) -- Handle leaving players Players.PlayerRemoving:Connect(function(player) RemoveESP(player) end) print("ESP system started!") print("Detection methods:") print(" Tags CollectionService") print(" Tools (knife for seekers)") print(" Speed") print(" Appearance") end -- Start system spawn(InitializeESP) -- Function to force show GUI _G.ShowESPGUI = function() if CoreGui:FindFirstChild("SimpleESPGui") then CoreGui:FindFirstChild("SimpleESPGui"):Destroy() end wait(0.1) CreateSimpleGUI() print("GUI force shown!") end print("ESP system loaded!") print("Type in chat: ShowESPGUI() if GUI not visible")