
Key Required
Auto answer and see longest emoji
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
Community Comments (0)
No comments yet for this script.
