BobloScript.com

MONOCHROME script - (Get KeyCode)

Published by bebraOriginal developer: scrn and BobloScriptPublished Sep 18
Open in Roblox
Community:
68Views
49Copies
NeverUpdated

BobloScript Review

Working during our test

Reviewed by bebra · Sep 18, 2026

PC, Windows · Potassium

Test coverage

All 2 listed features checked

No failures found.

Test notes

We tested both buttons on PC with Potassium. Run moved the character to the four hidden keys and returned it to the starting position. Read KeyCode showed the code in the window and a notification. The code in our session was 0869.

Known limitations

The key code must be entered manually.

This reflects one test at a specific point in time, not an ongoing guarantee. What does this mean?

Description

This helper used to leave its result in the console. With BobloUI, you can follow the key count and read the code in the window instead of digging through logs.

Press Run at the spot where you want to return. The character visits the four HiddenKey locations, triggers their interaction prompts, then goes back to the starting position. Once the keys are collected, press Read KeyCode. The digits from the in-game note appear in the window and a notification; enter them yourself where the game asks for a code.

Functions

  • Read KeyCode
  • Grab All Keys

Developer tested with

Windows

  • Potassium

Screenshots

1 image

Script Code

Raw Code

This script loads code from an external source. Review the URL and understand what it does before running it in Roblox.

https://raw.githubusercontent.com/bobloscript/BobloUI/main/dist/BobloUI.min.lua

local Players = game:GetService("Players")local player = Players.LocalPlayer-- BobloUIlocal BobloUI = loadstring(game:HttpGet(    "https://raw.githubusercontent.com/bobloscript/BobloUI/main/dist/BobloUI.min.lua"))()local UI = BobloUI:CreateWindow({    Id = "monochrome-key-helper",    Title = "Monochrome Helper",    Icon = "key-round",    Theme = "Dark",    FooterText = "BobloUI · Key Helper",})local Main = UI:AddTab({    Id = "main",    Title = "Main",    Icon = "key-round",})local Keys = Main:AddSection({    Title = "Key Setup",    Icon = "key",    Span = "Auto",    Layout = "Stack",})local CodeStatus = Keys:AddStatus({    Id = "CurrentCode",    Title = "KeyCode",    Value = "Unknown",    Icon = "hash",})local KeysStatus = Keys:AddStatus({    Id = "KeysStatus",    Title = "Status",    Value = "Ready",    Icon = "activity",})local CountStatus = Keys:AddStatus({    Id = "KeysCollected",    Title = "Keys collected",    Value = "0 / 4",    Icon = "key-round",})local running = falselocal RunButtonlocal function notify(title, content, variant)    UI.Notify:Push({        Title = title,        Content = content,        Variant = variant or "Info",        Duration = 4,    })endlocal function getMonochrome()    return workspace:FindFirstChild("monochrome")endlocal function getCurrentCode()    local monochrome = getMonochrome()    if not monochrome then        return "Unknown"    end    local codeNote = monochrome:FindFirstChild("CodeNote")    if not codeNote then        return "Unknown"    end    local printed = codeNote:FindFirstChild("Printed")    if not printed then        return "Unknown"    end    local digits = printed:FindFirstChild("Digits")    if not digits then        return "Unknown"    end    local success, text = pcall(function()        return digits.Text    end)    if success and text then        return tostring(text)    end    return "Unknown"endlocal function refreshCode()    local code = getCurrentCode()    CodeStatus:SetValue(code)    if code == "Unknown" then        KeysStatus:SetValue("Code not found")    else        KeysStatus:SetValue("Code found")    end    return codeendlocal function runFullSetup()    if running then        notify(            "Already running",            "Key collection is already in progress.",            "Warning"        )        return    end    running = true    if RunButton then        RunButton:SetLoading(true)    end    local root    local startPos    local success, err = xpcall(function()        KeysStatus:SetValue("Getting character...")        CountStatus:SetValue("0 / 4")        local character = player.Character or player.CharacterAdded:Wait()        root = character:WaitForChild("HumanoidRootPart")        startPos = root.CFrame        local monochrome = getMonochrome()        if not monochrome then            error("workspace.monochrome was not found")        end        -- Read current KeyCode        local currentCode = getCurrentCode()        CodeStatus:SetValue(currentCode)        print("--- [Full Setup: Keys + BobloUI] ---")        print("Current KeyCode identified: " .. currentCode)        if type(fireproximityprompt) ~= "function" then            error("fireproximityprompt is not supported by this executor")        end        local keysToFind = {            "HiddenKey1",            "HiddenKey2",            "HiddenKey3",            "HiddenKey4",        }        local collected = 0        for index, keyName in ipairs(keysToFind) do            KeysStatus:SetValue(                string.format("Collecting %s...", keyName)            )            local keyModel = monochrome:FindFirstChild(keyName)            if keyModel then                local keyPart = keyModel:FindFirstChild("Key")                if keyPart and keyPart:IsA("BasePart") then                    local prompt = keyPart:FindFirstChild(                        "KeyPrompt",                        true                    )                    if prompt and prompt:IsA("ProximityPrompt") then                        root.CFrame = keyPart.CFrame                        task.wait(0.3)                        fireproximityprompt(prompt)                        collected += 1                        CountStatus:SetValue(                            string.format(                                "%d / %d",                                collected,                                #keysToFind                            )                        )                        print("Collected: " .. keyName)                        task.wait(0.3)                    else                        warn("Prompt not found: " .. keyName)                    end                else                    warn("Key part not found: " .. keyName)                end            else                warn("Key model not found: " .. keyName)            end        end        KeysStatus:SetValue("Returning...")    end, debug.traceback)    -- Always try to return to the original position    if root and root.Parent and startPos then        pcall(function()            root.CFrame = startPos        end)    end    running = false    if RunButton then        RunButton:SetLoading(false)    end    if success then        KeysStatus:SetValue("Complete")        notify(            "Setup complete",            "Keys collected. KeyCode: " .. getCurrentCode(),            "Success"        )        print("--- [Setup Complete] ---")    else        KeysStatus:SetValue("Error")        notify(            "Setup failed",            tostring(err),            "Error"        )        warn("[Monochrome Helper]\n" .. tostring(err))    endendKeys:AddButton({    Title = "Read KeyCode",    Description = "Read the current code from CodeNote.",    Text = "Read",    Icon = "scan-search",    Callback = function()        local code = refreshCode()        if code ~= "Unknown" then            notify(                "KeyCode found",                "Current code: " .. code,                "Success"            )        else            notify(                "KeyCode not found",                "Could not find CodeNote.Printed.Digits.",                "Warning"            )        end    end,})RunButton = Keys:AddButton({    Title = "Grab all keys",    Description = "Teleports to HiddenKey1-4, triggers each prompt and returns you back.",    Text = "Run",    Icon = "key-round",    Callback = function()        task.spawn(runFullSetup)    end,})-- Read code once when UI opensrefreshCode()
Latest changeScript published2d ago

Comments

Loading comments…