local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local GuiService = game:GetService("GuiService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local BIND_KEY = Enum.KeyCode.H print("--- Script Started ---") print("Press [" .. BIND_KEY.Name .. "] to find GUI objects under cursor.") local function findGuiUnderCursor() local mousePos = UserInputService:GetMouseLocation() local inset = GuiService:GetGuiInset() local adjustedX = mousePos.X - inset.X local adjustedY = mousePos.Y - inset.Y local foundObjects = PlayerGui:GetGuiObjectsAtPosition(adjustedX, adjustedY) print("--- Scanning Coordinates: " .. math.floor(adjustedX) .. ", " .. math.floor(adjustedY) .. " ---") local found = false for _, obj in ipairs(foundObjects) do if obj:IsA("TextLabel") or obj:IsA("TextButton") or obj:IsA("TextBox") or obj:IsA("Frame") or obj:IsA("ScrollingFrame") or obj:IsA("ImageLabel") or obj:IsA("ImageButton") then found = true print("------------------------------------------") print("Object Found: " .. obj.ClassName) print("Name: " .. obj.Name) print("Path: " .. obj:GetFullName()) if obj:IsA("TextLabel") or obj:IsA("TextButton") or obj:IsA("TextBox") then print("Text: " .. tostring(obj.Text)) end if obj:IsA("ImageLabel") or obj:IsA("ImageButton") then print("Image ID: " .. obj.Image) end local valChild = obj:FindFirstChild("Value") if valChild then print("Internal Value: " .. tostring(valChild.Value)) end break end end if not found then warn("No valid GUI objects found under cursor.") end end UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == BIND_KEY then findGuiUnderCursor() end end)