Auto Guesser
Key Required

Auto Guesser

[UPD] Guess the Meme or Die 🔊PhlompfTheRealOnePhlompfTheRealOne 9.2K views 416 executesUpdated Oct 13, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•104 lines (3103 chars)
local ReplicatedStorage = game:GetService('ReplicatedStorage')
local VirtualInputManager = game:GetService('VirtualInputManager')

local StartQuestionEvent = ReplicatedStorage.Events:WaitForChild('StartQuestion')
local QuestionDataEvent = ReplicatedStorage.Events:WaitForChild('QuestionData')

local allRounds = {}
local currentRound = nil

---->>> CONFIG <<<----

--[[
    Speed Translations: 

    ["SUPER FAST ANSWER!"] = < 1.5,
    ["SPEEDY ANSWER!"] = < 3

--]]

local waitTime = 1.4

---->>>>>><<<<<<----


local function PressKey(keyNumber)
    local keyMap = {
        [1] = Enum.KeyCode.One,
        [2] = Enum.KeyCode.Two,
        [3] = Enum.KeyCode.Three,
        [4] = Enum.KeyCode.Four,
    }

    local keyCode = keyMap[keyNumber]
    VirtualInputManager:SendKeyEvent(true, keyCode, false, game)
    task.wait(0.05)
    VirtualInputManager:SendKeyEvent(false, keyCode, false, game)
end

-->> Capture QuestionData info for all rounds

--[[
    For some reason when a round starts, they send you:

    - Current Round #
    - Round Type (Vote, Song)
    - Options in the form of IDs (37, 48, 63, 92)
    - SongNum in the form of an ID. [Ex. 48]

    + Data for future rounds (upwards of 20 rounds)
    + SongNum is always the correct song choice
--]]

QuestionDataEvent.OnClientEvent:Connect(function(roundsTable)
    for _, roundData in ipairs(roundsTable) do
        allRounds[roundData.Round] = roundData
    end
end)

-->> Listen for when a new round starts
StartQuestionEvent.OnClientEvent:Connect(function(data)
    if not data or not data.RoundNumber then
        return
    end

    local roundNumber = data.RoundNumber
    local roundInfo = allRounds[roundNumber]
    if not roundInfo then
        warn('⚠️ No data found for round', roundNumber)
        return
    end

    -->> Determine the correct option and button index
    if roundInfo.RoundType == 'Song' then
        local correctSongNum = roundInfo.SongNum

        -->> They put this in the UI's localscript for some reason
        local correctIndex = table.find(roundInfo.Options, correctSongNum)

        if correctIndex then
            --[[
                The correctIndex is a number (1-4) which represents your four buttons.
                I just get that number by using table.find with the same args they used in
                the localscript. "LocalPlayer.PlayerGui.QuestionGUI.GameClient"

                "if table.find(v154.Options, v154.ArtistNum or v154.SongNum) == u47 then"
            --]]

            -->> Since there's no event or anything to submit your selection I just fake a key press.
            task.wait(waitTime)
            PressKey(correctIndex)
        else
            warn('⚠️ Could not find SongNum in options for this round.')
        end
    elseif roundInfo.RoundType == 'Vote' then
        -->> Voting rounds don't have a correct answer but voting 
        -->> will always give you some extra height for some reason
        task.wait(6)
        PressKey(1)
    else
        warn('⚠️ Unknown round type:', roundInfo.RoundType)
    end
end)

print("✅ [Auto Guesser] Initialized")

Features & Information

Auto Guess Configurable guess speed

Community Comments (3)

hello12345hahalolhello12345hahalolNov 10, 2025

very nice script

DEATH_0v0DEATH_0v0Dec 29, 2025

Love your script, keep going, man I hope you have a great year

KayanwalkeKayanwalkeSep 14, 2026

How to change the speed?

More Scripts for [UPD] Guess the Meme or Die 🔊