Auto answer and see longest emoji
Key Required

Auto answer and see longest emoji

Choose Longest Emojiplozzirr34plozzirr34 56 views 618 executesUpdated Aug 10, 2026
Unrated
00
Lua Script•384 lines (12628 chars)
local Players = game:GetService("Players")
local CoreGui = game:GetService("CoreGui")
local HttpService = game:GetService("HttpService")
local VirtualInputManager = game:GetService("VirtualInputManager")
local LocalPlayer = Players.LocalPlayer

-- Target text label path
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local GameGui = PlayerGui:WaitForChild("GameGui", 5)
local TopFrame = GameGui and GameGui:WaitForChild("TopFrame", 5)
local LeftLabel = TopFrame and TopFrame:WaitForChild("LeftLabel", 5)

if not LeftLabel then
    warn("LeftLabel not found at Path: PlayerGui.GameGui.TopFrame.LeftLabel")
    return
end

-- Re-run cleanup
if CoreGui:FindFirstChild("EmojiTrackerGui") then
    CoreGui.EmojiTrackerGui:Destroy()
end

-- State variables
local autoAnswerEnabled = false
local autoDelay = 0.2
local EMOJI_DB = {}
local lastAnsweredText = ""
local isSubmitting = false

-- Compact UI Setup
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "EmojiTrackerGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = CoreGui

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 250, 0, 162)
mainFrame.Position = UDim2.new(0.5, -125, 0.2, 0)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
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

local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, 0, 0, 22)
titleLabel.Position = UDim2.new(0, 0, 0, 4)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Emoji Detector"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 14
titleLabel.Font = Enum.Font.SourceSansBold
titleLabel.Parent = mainFrame

local foundLabel = Instance.new("TextLabel")
foundLabel.Size = UDim2.new(1, -16, 0, 18)
foundLabel.Position = UDim2.new(0, 8, 0, 26)
foundLabel.BackgroundTransparency = 1
foundLabel.Text = "Found Emojis: None"
foundLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
foundLabel.TextSize = 12
foundLabel.Font = Enum.Font.SourceSans
foundLabel.TextWrapped = true
foundLabel.Parent = mainFrame

local resultLabel = Instance.new("TextLabel")
resultLabel.Size = UDim2.new(1, -16, 0, 46)
resultLabel.Position = UDim2.new(0, 8, 0, 46)
resultLabel.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
resultLabel.Text = "Loading database..."
resultLabel.TextColor3 = Color3.fromRGB(255, 200, 85)
resultLabel.TextSize = 12
resultLabel.Font = Enum.Font.SourceSansBold
resultLabel.TextWrapped = true
resultLabel.Parent = mainFrame

local resultCorner = Instance.new("UICorner")
resultCorner.CornerRadius = UDim.new(0, 6)
resultCorner.Parent = resultLabel

-- Auto Answer Toggle Button
local autoBtn = Instance.new("TextButton")
autoBtn.Size = UDim2.new(1, -16, 0, 24)
autoBtn.Position = UDim2.new(0, 8, 0, 98)
autoBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
autoBtn.Text = "Auto Answer: OFF"
autoBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
autoBtn.TextSize = 13
autoBtn.Font = Enum.Font.SourceSansBold
autoBtn.Parent = mainFrame

local autoCorner = Instance.new("UICorner")
autoCorner.CornerRadius = UDim.new(0, 6)
autoCorner.Parent = autoBtn

autoBtn.MouseButton1Click:Connect(function()
    autoAnswerEnabled = not autoAnswerEnabled
    if autoAnswerEnabled then
        autoBtn.BackgroundColor3 = Color3.fromRGB(40, 160, 80)
        autoBtn.Text = "Auto Answer: ON"
        lastAnsweredText = "" -- Force scan on current text
    else
        autoBtn.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
        autoBtn.Text = "Auto Answer: OFF"
    end
end)

-- Delay Input Row
local delayContainer = Instance.new("Frame")
delayContainer.Size = UDim2.new(1, -16, 0, 24)
delayContainer.Position = UDim2.new(0, 8, 0, 128)
delayContainer.BackgroundTransparency = 1
delayContainer.Parent = mainFrame

local delayLabel = Instance.new("TextLabel")
delayLabel.Size = UDim2.new(0, 85, 1, 0)
delayLabel.Position = UDim2.new(0, 0, 0, 0)
delayLabel.BackgroundTransparency = 1
delayLabel.Text = "Delay (sec):"
delayLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
delayLabel.TextSize = 12
delayLabel.Font = Enum.Font.SourceSansBold
delayLabel.TextXAlignment = Enum.TextXAlignment.Left
delayLabel.Parent = delayContainer

local delayBox = Instance.new("TextBox")
delayBox.Size = UDim2.new(1, -90, 1, 0)
delayBox.Position = UDim2.new(0, 90, 0, 0)
delayBox.BackgroundColor3 = Color3.fromRGB(35, 35, 50)
delayBox.Text = "0.2"
delayBox.PlaceholderText = "0.2"
delayBox.TextColor3 = Color3.fromRGB(255, 255, 255)
delayBox.TextSize = 12
delayBox.Font = Enum.Font.SourceSansBold
delayBox.Parent = delayContainer

local delayCorner = Instance.new("UICorner")
delayCorner.CornerRadius = UDim.new(0, 6)
delayCorner.Parent = delayBox

delayBox:GetPropertyChangedSignal("Text"):Connect(function()
    local val = tonumber(delayBox.Text)
    if val and val >= 0 then
        autoDelay = val
    end
end)

-- Universal Button Clicker
local function clickGuiElement(btn)
    if not btn then return false end

    -- Method 1: Executor firesignal
    if firesignal then
        pcall(function() firesignal(btn.MouseButton1Click) end)
        pcall(function() firesignal(btn.MouseButton1Down) end)
        pcall(function() firesignal(btn.Activated) end)
        return true
    end

    -- Method 2: Executor getconnections
    if getconnections then
        local clicked = false
        for _, conn in ipairs(getconnections(btn.MouseButton1Click)) do
            pcall(function() conn:Fire() end)
            clicked = true
        end
        for _, conn in ipairs(getconnections(btn.Activated)) do
            pcall(function() conn:Fire() end)
            clicked = true
        end
        if clicked then return true end
    end

    -- Method 3: VirtualInputManager physically clicks center of button
    if btn:IsA("GuiObject") and btn.AbsolutePosition and btn.AbsoluteSize then
        local x = btn.AbsolutePosition.X + (btn.AbsoluteSize.X / 2)
        local y = btn.AbsolutePosition.Y + (btn.AbsoluteSize.Y / 2) + 36 -- offset for inset top bar
        pcall(function()
            VirtualInputManager:SendMouseButtonEvent(x, y, 0, true, game, 0)
            task.wait(0.05)
            VirtualInputManager:SendMouseButtonEvent(x, y, 0, false, game, 0)
        end)
        return true
    end

    return false
end

-- Locates and clicks the specific option button inside EmojiFrame
local function clickOptionButton(choiceIndex)
    local emojiGui = PlayerGui:FindFirstChild("GameGui") and PlayerGui.GameGui:FindFirstChild("EmojiGui")
    local emojiFrame = emojiGui and emojiGui:FindFirstChild("Frame") and emojiGui.Frame:FindFirstChild("EmojiFrame")

    if not emojiFrame then
        warn("EmojiFrame path not found: PlayerGui.GameGui.EmojiGui.Frame.EmojiFrame")
        return false
    end

    -- Find target frame by name ("1", "2", "3", "4") or by order
    local targetFrame = emojiFrame:FindFirstChild(tostring(choiceIndex))
    
    if not targetFrame then
        local validFrames = {}
        for _, child in ipairs(emojiFrame:GetChildren()) do
            if child:IsA("GuiObject") then
                table.insert(validFrames, child)
            end
        end
        targetFrame = validFrames[choiceIndex]
    end

    if not targetFrame then
        warn("Could not find frame for index: " .. tostring(choiceIndex))
        return false
    end

    -- Look for button inside target frame or use frame itself if it is a button
    local targetButton = targetFrame:FindFirstChildWhichIsA("GuiButton", true)
    if not targetButton and targetFrame:IsA("GuiButton") then
        targetButton = targetFrame
    end

    if targetButton then
        return clickGuiElement(targetButton)
    end

    return false
end

-- Robust HTTP GET function
local function httpGet(url)
    local customRequest = (syn and syn.request) or (http and http.request) or request or http_request
    if customRequest then
        local success, res = pcall(customRequest, {Url = url, Method = "GET"})
        if success and res and res.Body then
            return res.Body
        end
    end
    return game:HttpGet(url)
end

local MIRRORS = {
    "https://cdn.jsdelivr.net/npm/unicode-emoji-json@0.6.0/data-by-emoji.json",
    "https://unpkg.com/unicode-emoji-json@0.6.0/data-by-emoji.json",
    "https://raw.githubusercontent.com/github/unicode-emoji-json/main/data-by-emoji.json"
}

task.spawn(function()
    local responseData = nil
    for _, url in ipairs(MIRRORS) do
        local success, result = pcall(function() return httpGet(url) end)
        if success and result and #result > 1000 then
            responseData = result
            break
        end
    end

    if responseData then
        local success, rawData = pcall(function() return HttpService:JSONDecode(responseData) end)
        if success and rawData then
            for emojiChar, info in pairs(rawData) do
                EMOJI_DB[emojiChar] = info.name
            end
            resultLabel.TextColor3 = Color3.fromRGB(85, 255, 127)
            resultLabel.Text = "Database Loaded!"
            return
        end
    end

    resultLabel.TextColor3 = Color3.fromRGB(255, 85, 85)
    resultLabel.Text = "Failed to load Emoji DB."
end)

-- Unicode Helpers
local function isEmojiCodePoint(cp)
    return (cp >= 0x1F600 and cp <= 0x1F64F)
        or (cp >= 0x1F300 and cp <= 0x1F5FF)
        or (cp >= 0x1F680 and cp <= 0x1F6FF)
        or (cp >= 0x1F900 and cp <= 0x1F9FF)
        or (cp >= 0x1FA70 and cp <= 0x1FAFF)
        or (cp >= 0x2600 and cp <= 0x26FF)
        or (cp >= 0x2700 and cp <= 0x27BF)
        or (cp >= 0x2300 and cp <= 0x23FF)
end

local function normalizeGrapheme(grapheme)
    local cleaned = ""
    for _, cp in utf8.codes(grapheme) do
        if cp ~= 0xFE0F and cp ~= 0xFE0E then
            cleaned = cleaned .. utf8.char(cp)
        end
    end
    return cleaned
end

local function getCharLength(str)
    return utf8.len(str) or #str
end

-- Main Check & Click Loop
local function checkAndSubmit()
    if next(EMOJI_DB) == nil or isSubmitting then return end

    local rawText = LeftLabel.Text or ""
    local cleanText = rawText:gsub("<[^>]->", "")

    if cleanText == "" then
        foundLabel.Text = "Found: None"
        resultLabel.Text = "Waiting for game text..."
        return
    end

    local foundEmojis = {}
    local longestEmoji = nil
    local longestName = ""
    local maxLen = 0
    local longestIndex = nil

    for startPos, endPos in utf8.graphemes(cleanText) do
        local rawGrapheme = string.sub(cleanText, startPos, endPos)
        local normGrapheme = normalizeGrapheme(rawGrapheme)

        local emojiName = EMOJI_DB[rawGrapheme] or EMOJI_DB[normGrapheme]

        if not emojiName then
            local success, firstCodePoint = pcall(utf8.codepoint, normGrapheme)
            if success and isEmojiCodePoint(firstCodePoint) then
                emojiName = "unnamed emoji"
            end
        end

        if emojiName then
            table.insert(foundEmojis, normGrapheme)
            local currentIndex = #foundEmojis
            local nameLen = getCharLength(emojiName)

            if nameLen > maxLen then
                maxLen = nameLen
                longestEmoji = normGrapheme
                longestName = emojiName
                longestIndex = currentIndex
            end
        end
    end

    if #foundEmojis > 0 then
        foundLabel.Text = "Found: " .. table.concat(foundEmojis, " ")
        resultLabel.Text = string.format("Longest: %s (#%d)\nName: %s (%d)", longestEmoji, longestIndex, longestName, maxLen)

        if autoAnswerEnabled and longestIndex and cleanText ~= lastAnsweredText then
            lastAnsweredText = cleanText
            isSubmitting = true

            task.spawn(function()
                if autoDelay > 0 then
                    task.wait(autoDelay)
                end
                local clicked = clickOptionButton(longestIndex)
                if clicked then
                    resultLabel.Text = string.format("CLICKED #%d: %s (%d)", longestIndex, longestName, maxLen)
                else
                    resultLabel.Text = string.format("FAILED CLICK #%d", longestIndex)
                end
                task.wait(0.5)
                isSubmitting = false
            end)
        end
    else
        foundLabel.Text = "Found: None"
        resultLabel.Text = "No emojis detected."
    end
end

-- Continuous Polling
task.spawn(function()
    while true do
        checkAndSubmit()
        task.wait(0.15)
    end
end)

Features & Information

See the longest emoji and auto answer (adjustable) Script is AI
#autoanswer#AImade#tuff

Community Comments (0)

No comments yet for this script.