free
Key Required

free

🩸 Hidden Withinin007770in007770 104 views 455 executesUpdated Jul 29, 2026
Unrated
00
Lua Script•413 lines (14749 chars)
-- ===================================================
-- Roblox Delta Script - Optimized ESP with Reset System
-- ================================================

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local workspace = game:GetService("Workspace")

local playerEspEnabled = true
local itemEspEnabled = true
local autoClick = false

-- ---------------------------------------------------
-- 1. ฟังก์ชันส่งสัญญาณกด ProximityPrompt
-- ---------------------------------------------------
local function isRobuxPrompt(prompt)
    if prompt:FindFirstChild("RequiresPurchase") or prompt:FindFirstChild("RobuxCost") or prompt:FindFirstChild("GamepassId") then
        return true
    end

    local actionText = prompt.ActionText:lower()
    local objectText = prompt.ObjectText:lower()
    local promptName = prompt.Name:lower()

    local strictRobuxKeywords = {"robux", "r$", "gamepass", "pass"}

    for _, kw in ipairs(strictRobuxKeywords) do
        if actionText:find(kw) or objectText:find(kw) or promptName:find(kw) then
            return true
        end
    end

    return false
end

local function triggerAction()
    local char = LocalPlayer.Character
    if not (char and char:FindFirstChild("HumanoidRootPart")) then return end
    local hrpPos = char.HumanoidRootPart.Position

    for _, v in ipairs(workspace:GetDescendants()) do
        if v:IsA("ProximityPrompt") and v.Enabled then
            if not isRobuxPrompt(v) then
                local parentPart = v.Parent
                if parentPart and parentPart:IsA("BasePart") then
                    local dist = (parentPart.Position - hrpPos).Magnitude
                    if dist <= (v.MaxActivationDistance + 5) then
                        task.spawn(function()
                            pcall(function()
                                v.HoldDuration = 0
                                fireproximityprompt(v)
                            end)
                        end)
                    end
                end
            end
        end
    end
end

-- ---------------------------------------------------
-- 2. ระบบ ITEM ESP & SIDEBAR LIST (พร้อมระบบ Reset)
-- ---------------------------------------------------
local playerGui = LocalPlayer:WaitForChild("PlayerGui")

local listScreenGui = Instance.new("ScreenGui")
listScreenGui.Name = "ItemListUI"
listScreenGui.IgnoreGuiInset = true
listScreenGui.Parent = playerGui

local listFrame = Instance.new("Frame")
listFrame.Size = UDim2.new(0, 200, 0, 0)
listFrame.Position = UDim2.new(1, -210, 0, 20)
listFrame.BackgroundTransparency = 1
listFrame.Parent = listScreenGui

local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 2)
layout.SortOrder = Enum.SortOrder.Name
layout.Parent = listFrame

layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
    listFrame.Size = UDim2.new(0, 200, 0, layout.AbsoluteContentSize.Y)
end)

local function addToSidebar(obj)
    local label = Instance.new("TextLabel")
    label.Name = obj.Name .. obj:GetDebugId()
    label.Size = UDim2.new(1, 0, 0, 22)
    label.BackgroundTransparency = 0.6
    label.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
    label.TextColor3 = Color3.new(1, 1, 1)
    label.Text = "  " .. obj.Name
    label.Font = Enum.Font.GothamMedium
    label.TextSize = 14
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.Parent = listFrame

    obj.AncestryChanged:Connect(function()
        if not obj:IsDescendantOf(workspace) then
            label:Destroy()
        end
    end)
    return label
end

local function createItemEsp(obj)
    if not (obj:IsA("Model") or obj:IsA("BasePart")) then return end
    if not (obj.Parent and obj.Parent:IsA("Folder")) then return end
    if obj:FindFirstChild("ESP_Group") then return end

    local adornPart = obj:IsA("Model") and (obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")) or obj
    if not adornPart then return end

    local hl = Instance.new("Highlight")
    hl.Name = "ESP_Group"
    hl.FillTransparency = 1
    hl.OutlineColor = Color3.new(1, 1, 1)
    hl.Adornee = obj
    hl.Parent = obj

    local bgui = Instance.new("BillboardGui")
    bgui.Name = "NameTag"
    bgui.Adornee = adornPart
    bgui.Size = UDim2.new(0, 200, 0, 50)
    bgui.StudsOffset = Vector3.new(0, 2, 0)
    bgui.AlwaysOnTop = true
    bgui.Parent = obj

    local tl = Instance.new("TextLabel")
    tl.BackgroundTransparency = 1
    tl.Size = UDim2.new(1, 0, 1, 0)
    tl.Text = obj.Name
    tl.TextColor3 = Color3.new(1, 1, 1)
    tl.TextStrokeTransparency = 0.5
    tl.TextScaled = true
    tl.Font = Enum.Font.GothamBold
    tl.Parent = bgui

    local sidebarLabel = addToSidebar(obj)

    task.spawn(function()
        while obj and obj.Parent do
            hl.Enabled = itemEspEnabled
            bgui.Enabled = itemEspEnabled
            if sidebarLabel then sidebarLabel.Visible = itemEspEnabled end
            task.wait(0.5)
        end
    end)
end

local function scanItems()
    local items = workspace:FindFirstChild("Items")
    if items then
        for _, folder in ipairs(items:GetChildren()) do
            if folder:IsA("Folder") then
                for _, child in ipairs(folder:GetChildren()) do
                    createItemEsp(child)
                end
                folder.ChildAdded:Connect(createItemEsp)
            end
        end
    end
end

-- ฟังก์ชันรีเซ็ต Item List & ESP
local function resetItemESP()
    for _, child in ipairs(listFrame:GetChildren()) do
        if child:IsA("TextLabel") then
            child:Destroy()
        end
    end
    for _, v in ipairs(workspace:GetDescendants()) do
        if v.Name == "ESP_Group" or v.Name == "NameTag" then
            v:Destroy()
        end
    end
    scanItems()
end

task.spawn(function()
    local items = workspace:WaitForChild("Items", 10)
    if items then
        scanItems()
        items.ChildAdded:Connect(function(folder)
            if folder:IsA("Folder") then
                for _, child in ipairs(folder:GetChildren()) do
                    createItemEsp(child)
                end
                folder.ChildAdded:Connect(createItemEsp)
            end
        end)
    end
end)

-- ---------------------------------------------------
-- 3. ระบบ PLAYER ESP (พร้อมระบบ Reset)
-- ---------------------------------------------------
local weaponKeywords = {
    "smg", "smg9", "gun", "pistol", "rifle", "shotgun", "revolver", 
    "ar", "ak", "m4", "mp5", "glock", "sniper", "weapon", "ปืน", "อาวุธ",
    "tec", "tec9", "tec-9", "mac10", "uzi", "deagle", "beretta", "colt"
}

local function isWeaponName(name)
    if not name then return false end
    local lName = name:lower()
    for _, kw in ipairs(weaponKeywords) do
        if lName:find(kw) then return true end
    end
    return false
end

local function applyPlayerESP(player)
    if player == LocalPlayer then return end

    local function setupCharacter(char)
        if not char then return end
        local head = char:WaitForChild("Head", 5)
        if not head then return end

        local highlight = char:FindFirstChild("ThaiESP_Highlight") or Instance.new("Highlight")
        highlight.Name = "ThaiESP_Highlight"
        highlight.Parent = char

        local billboard = head:FindFirstChild("ThaiESP_Billboard") or Instance.new("BillboardGui")
        billboard.Name = "ThaiESP_Billboard"
        billboard.Size = UDim2.new(0, 180, 0, 60)
        billboard.StudsOffset = Vector3.new(0, 3.5, 0)
        billboard.AlwaysOnTop = true
        billboard.Parent = head

        local textLabel = billboard:FindFirstChildOfClass("TextLabel") or Instance.new("TextLabel")
        textLabel.Size = UDim2.new(1, 0, 1, 0)
        textLabel.BackgroundTransparency = 1
        textLabel.TextScaled = true
        textLabel.Font = Enum.Font.SourceSansBold
        textLabel.TextStrokeTransparency = 0
        textLabel.TextStrokeColor3 = Color3.fromRGB(0, 0, 0)
        textLabel.Parent = billboard

        task.spawn(function()
            while char and char.Parent and player and player.Parent do
                if not playerEspEnabled then
                    highlight.Enabled = false
                    billboard.Enabled = false
                else
                    highlight.Enabled = true
                    billboard.Enabled = true

                    local isBad = false
                    local roleText = "[คนปกติ]"
                    local heldItem = "ไม่มีไอเทม"

                    local tool = char:FindFirstChildOfClass("Tool")
                    if tool then
                        heldItem = tool.Name
                        if isWeaponName(tool.Name) or tool:FindFirstChild("Ammo") or tool:FindFirstChild("GunScript") then
                            isBad = true
                        end
                    end

                    if player:FindFirstChild("Backpack") then
                        for _, item in pairs(player.Backpack:GetChildren()) do
                            if item:IsA("Tool") and (isWeaponName(item.Name) or item:FindFirstChild("Ammo") or item:FindFirstChild("GunScript")) then
                                isBad = true
                                if not tool then
                                    heldItem = "พก: " .. item.Name
                                end
                            end
                        end
                    end

                    if player:FindFirstChild("Role") then
                        local roleVal = tostring(player.Role.Value):lower()
                        if roleVal ~= "" and not roleVal:find("innocent") and not roleVal:find("citizen") and not roleVal:find("คนดี") then
                            isBad = true
                        end
                    end

                    if char:FindFirstChild("IsKiller") or char:FindFirstChild("HasWeapon") or char:FindFirstChild("Armed") or char:FindFirstChild("Criminal") then
                        isBad = true
                    end

                    if isBad then
                        roleText = "[คนร้าย:]"
                        highlight.FillColor = Color3.fromRGB(255, 0, 0)
                        textLabel.TextColor3 = Color3.fromRGB(255, 0, 0)
                    else
                        roleText = "[คนปกติ]"
                        highlight.FillColor = Color3.fromRGB(0, 255, 0)
                        textLabel.TextColor3 = Color3.fromRGB(0, 255, 0)
                    end

                    highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
                    highlight.FillTransparency = 0.4
                    textLabel.Text = roleText .. "\n[กำลังถือ: " .. heldItem .. "]"
                end
                task.wait(0.3)
            end
        end)
    end

    if player.Character then setupCharacter(player.Character) end
    player.CharacterAdded:Connect(setupCharacter)
end

-- ฟังก์ชันรีเซ็ต Player ESP
local function resetPlayerESP()
    for _, p in pairs(Players:GetPlayers()) do
        if p.Character then
            local hl = p.Character:FindFirstChild("ThaiESP_Highlight")
            if hl then hl:Destroy() end
            
            local head = p.Character:FindFirstChild("Head")
            if head then
                local bb = head:FindFirstChild("ThaiESP_Billboard")
                if bb then bb:Destroy() end
            end
            applyPlayerESP(p)
        end
    end
end

for _, p in pairs(Players:GetPlayers()) do applyPlayerESP(p) end
Players.PlayerAdded:Connect(applyPlayerESP)

-- ---------------------------------------------------
-- 4. เมนูควบคุม MOBILE UI (เพิ่มปุ่ม Reset)
-- ---------------------------------------------------
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "MobileUI_Combined"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = playerGui

local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 220, 0, 270) -- ขยายขนาดเมนูเพื่อรองรับปุ่มใหม่
MainFrame.Position = UDim2.new(0.05, 0, 0.2, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
MainFrame.BorderSizePixel = 2
MainFrame.BorderColor3 = Color3.fromRGB(255, 0, 0)
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 30)
Title.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
Title.Text = "เมนูควบคุม (Combined ESP)"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.TextSize = 13
Title.Font = Enum.Font.SourceSansBold
Title.Parent = MainFrame

local function createButton(text, posY, color)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(0.9, 0, 0, 35)
    btn.Position = UDim2.new(0.05, 0, 0, posY)
    btn.BackgroundColor3 = color
    btn.Text = text
    btn.TextColor3 = Color3.fromRGB(255, 255, 255)
    btn.TextSize = 12
    btn.Font = Enum.Font.SourceSansBold
    btn.Parent = MainFrame
    return btn
end

-- ปุ่ม Toggle ต่างๆ
local AutoBtn = createButton("กดรัวอัตโนมัติ: ปิด", 40, Color3.fromRGB(180, 40, 40))
local TogglePlayerBtn = createButton("มองคน (ESP คน): เปิดอยู่", 80, Color3.fromRGB(40, 180, 40))
local ToggleItemBtn = createButton("มองไอเทม (ESP/List): เปิดอยู่", 120, Color3.fromRGB(40, 180, 40))

-- ปุ่ม Reset เพิ่มเติม
local ResetPlayerBtn = createButton("🔄 รีเซ็ต (ESP คน)", 165, Color3.fromRGB(70, 130, 180))
local ResetItemBtn = createButton("🔄 รีเซ็ต (ESP List / ไอเทม)", 210, Color3.fromRGB(70, 130, 180))

-- Event Click
AutoBtn.MouseButton1Click:Connect(function()
    autoClick = not autoClick
    if autoClick then
        AutoBtn.BackgroundColor3 = Color3.fromRGB(40, 180, 40)
        AutoBtn.Text = "กดรัวอัตโนมัติ: เปิด"
        task.spawn(function()
            while autoClick do
                triggerAction()
                task.wait(0.1)
            end
        end)
    else
        AutoBtn.BackgroundColor3 = Color3.fromRGB(180, 40, 40)
        AutoBtn.Text = "กดรัวอัตโนมัติ: ปิด"
    end
end)

TogglePlayerBtn.MouseButton1Click:Connect(function()
    playerEspEnabled = not playerEspEnabled
    TogglePlayerBtn.BackgroundColor3 = playerEspEnabled and Color3.fromRGB(40, 180, 40) or Color3.fromRGB(180, 40, 40)
    TogglePlayerBtn.Text = playerEspEnabled and "มองคน (ESP คน): เปิดอยู่" or "มองคน (ESP คน): ปิดอยู่"
end)

ToggleItemBtn.MouseButton1Click:Connect(function()
    itemEspEnabled = not itemEspEnabled
    ToggleItemBtn.BackgroundColor3 = itemEspEnabled and Color3.fromRGB(40, 180, 40) or Color3.fromRGB(180, 40, 40)
    ToggleItemBtn.Text = itemEspEnabled and "มองไอเทม (ESP/List): เปิดอยู่" or "มองไอเทม (ESP/List): ปิดอยู่"
end)

ResetPlayerBtn.MouseButton1Click:Connect(function()
    resetPlayerESP()
end)

ResetItemBtn.MouseButton1Click:Connect(function()
    resetItemESP()
end)

Features & Information

มองทะลุ มองคน มองสิ้งของ กดรัวอัตโนมัติ
#Hidden Within

Community Comments (0)

No comments yet for this script.

More Scripts for 🩸 Hidden Within