s ESP
Key Required

s ESP

Find The Button 🔍IrfannnnnIrfannnnn 774 views 122 executesUpdated Jan 6, 2026
3.8/ 5(4 votes)
3175% Positive
Lua Script•181 lines (5121 chars)
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local RunService = game:GetService("RunService")
local CoreGui = game:GetService("CoreGui")
local HttpService = game:GetService("HttpService")

local CONFIG = {
    FolderName = "GameButtons",
    TargetPartName = "Press",
    DefaultColor = Color3.fromRGB(255, 0, 0),
    EspFillTransparency = 0.5,
    EspOutlineTransparency = 0,
    SaveFileName = "savedbuttons.json"
}

local State = {
    EspEnabled = false,
    RainbowEnabled = false,
    ActiveHighlights = {},
    Connections = {},
    RenderConnection = nil,
    SavedData = {}
}

local function LoadData()
    if isfile and isfile(CONFIG.SaveFileName) then
        local success, result = pcall(function()
            return HttpService:JSONDecode(readfile(CONFIG.SaveFileName))
        end)
        if success and type(result) == "table" then
            State.SavedData = result
        end
    end
end

local function SaveData()
    if writefile then
        local success, err = pcall(function()
            writefile(CONFIG.SaveFileName, HttpService:JSONEncode(State.SavedData))
        end)
        if not success then warn("Failed to save data:", err) end
    end
end

local function ValidateModel(model)
    local pressPart = model:FindFirstChild(CONFIG.TargetPartName)
    if not pressPart then return false end

    local hasSound = pressPart:FindFirstChild("Click") and pressPart.Click:IsA("Sound")
    local hasDetector = pressPart:FindFirstChild("ClickDetector") and pressPart.ClickDetector:IsA("ClickDetector")
    local hasMesh = pressPart:FindFirstChild("Mesh") 

    if hasSound and hasDetector and hasMesh then
        return pressPart
    end
    return false
end

local function ClearSingleESP(model)
    if State.ActiveHighlights[model] then
        State.ActiveHighlights[model]:Destroy()
        State.ActiveHighlights[model] = nil
    end
    if State.Connections[model] then
        State.Connections[model]:Disconnect()
        State.Connections[model] = nil
    end
end

local function ClearAllESP()
    for model, _ in pairs(State.ActiveHighlights) do
        ClearSingleESP(model)
    end
    if State.RenderConnection then
        State.RenderConnection:Disconnect()
        State.RenderConnection = nil
    end
end

local function StartRenderLoop()
    if State.RenderConnection then return end
    
    State.RenderConnection = RunService.RenderStepped:Connect(function()
        local currentColor
        if State.RainbowEnabled then
            local hue = tick() % 5 / 5
            currentColor = Color3.fromHSV(hue, 1, 1)
        else
            currentColor = CONFIG.DefaultColor
        end

        for _, highlight in pairs(State.ActiveHighlights) do
            if highlight and highlight.Parent then
                highlight.FillColor = currentColor
                highlight.OutlineColor = currentColor
            end
        end
    end)
end

local function CreateESP(model)
    if State.SavedData[model.Name] == true then
        return
    end

    local pressPart = ValidateModel(model)
    if not pressPart then return end

    if State.ActiveHighlights[model] then return end

    local highlight = Instance.new("Highlight")
    highlight.Name = "ESPHighlight"
    highlight.Adornee = pressPart
    highlight.FillColor = CONFIG.DefaultColor
    highlight.OutlineColor = CONFIG.DefaultColor
    highlight.FillTransparency = CONFIG.EspFillTransparency
    highlight.OutlineTransparency = CONFIG.EspOutlineTransparency
    highlight.Parent = CoreGui:FindFirstChild("RobloxGui") or game.CoreGui
    
    State.ActiveHighlights[model] = highlight

    local cd = pressPart:FindFirstChild("ClickDetector")
    if cd then
        State.Connections[model] = cd.MouseClick:Connect(function()
            State.SavedData[model.Name] = true
            SaveData()
            ClearSingleESP(model)
        end)
    end
end

local function EnableESP()
    local folder = Workspace:FindFirstChild(CONFIG.FolderName)
    if not folder then
        warn("ESP Error: Folder " .. CONFIG.FolderName .. " not found.")
        return
    end

    for _, model in ipairs(folder:GetChildren()) do
        if model:IsA("Model") then
            CreateESP(model)
        end
    end
    
    StartRenderLoop()
end

LoadData()

local LibraryURL = "https://raw.githubusercontent.com/miroeramaa/TurtleLib/main/TurtleUiLib.lua"
local success, library = pcall(function() 
    return loadstring(game:HttpGet(LibraryURL))() 
end)

if not success then
    warn("Failed to load TurtleUiLib.")
    return
end

local gameName = game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name or "Game"
local window = library:Window(gameName)

window:Toggle("Show Buttons (ESP)", false, function(bool)
    State.EspEnabled = bool
    if bool then
        EnableESP()
    else
        ClearAllESP()
    end
end)

window:Toggle("RGB Rainbow", false, function(bool)
    State.RainbowEnabled = bool
end)

window:Label("by Botakkkkk", Color3.fromRGB(150, 150, 150))

window:Button("Close GUI", function()
    ClearAllESP()
    library:Destroy()
end)

Features & Information

Turtle UI Library: https://raw.githubusercontent.com/miroeramaa/TurtleLib/main/TurtleUiLib.lua Features: - ESP Toggle - Animated RGB Toggle - Close Button - Auto Save Clicked Buttons & Auto Load Once Executed OPEN SOURCE
#findthebuttons#esp

Community Comments (2)

FlyxzoneFlyxzoneJan 6, 2026

Don't work with xeno

Replying to @Flyxzone
IrfannnnnIrfannnnnJan 6, 2026

@maddj205 bruh, i used xeno & it working fine, i made this script & text it with xeno ._.