esp Hide and Seeker
Key Required

esp Hide and Seeker

[🥇] Ink Gameilua2607ilua2607 5.1K views 53 executesUpdated Nov 3, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•409 lines (12436 chars)
-- 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")

Features & Information

is my fist script

Community Comments (4)

IsabellaHolidayIsabellaHolidayNov 5, 2025

tried / 100% unsafe

Replying to @IsabellaHoliday
ilua2607ilua2607Nov 9, 2025

@IsabellaHoliday what?

daddyEL5daddyEL5Dec 17, 2025

nice chatgpt

ImT*dletskyImT*dletskyJan 18, 2026

bad script,but without ban

More Scripts for [🥇] Ink Game