Protest text with decals (must be edited) By UNSPECIFIED
Key Required

Protest text with decals (must be edited) By UNSPECIFIED

The Chosen Oneunpecifedunpecifed 725 views 651 executesUpdated Sep 26, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•243 lines (8037 chars)
-- ▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄        ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄    ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄ ·  ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄    ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄   
-- ▄      ▓  ▄      █ ▄              ▀▄   ▄▀▀             ░ ▄              ▀▄   ▄▀        ░ ░▒▓░  ▄▀        ░ ░▒▓░ ▄      ▓  ▄▀         ░ ░▒▓░ ▄      ▓  ▄▀        ░ ░▒▓░ ▄              ▀▄ 
-- █      ▒  ▒      █ █               ▐▌ ▐▌     ▄▄▄▄     ▒▒ █               ▐▌ ▐▌            ░▒▒ ▐▌            ░▒▒ █      ▒ ▐▌             ░▒▒ █      ▒ ▐▌            ░▒▒ █               ▐▌
-- ▓      ▒  ░      █ ▓               ░█ █      ░  ░     ░▓ ▓      ▒▀▀░     ░▒ █              ░▓ █              ░▓ ▓      ░ ▓               ░▓ ▓      ░ █              ░▓ ▓      ▒▀▀░     ░█
-- ▒      ░  ▀█     █ ▒      █▀▀█      █ ▒      ▒  ▀▀▀▀▀▀▀▀ ▒      ░  ▒     ▐▌ ▓       ▄▄▄▄▄▄▄▄█ ▓       ▄▄▄▄▄▄▄▄█ ▒      █ ▒      ▄▄▄▄▄▄▄▄▄▄█ ▒      █ ▓       ▄▄▄▄▄▄▄▄█ ▒      ░  ▒      █
-- ░      █   ░     █ ░      █  ░     ┼█ ▐▌      ▀▄▄▄▄▄▄    ░      ▀▀▀▀   ▄▄▀  ░       ▓▄▄▄▄ ·   ░       █     ·   ░      █ ░ ┼    ▒▄▄▄▄▄▄▄    ░      █ ░       ▓▄▄▄▄ ·   ░      █  █▄     █
-- █┼  ┼  █   ▒    ┼░ █┼     █  ▒    ┼┼█  ▀▄▄         ┼┼▀▄  █┼     ▒▀▀▀▀▀▀     █ ┼     ▄▄▄▄▒   · █ ┼   ┼ █       · █┼     █ █┼┼┼       ┼┼┼▒ ·  █┼     █ █ ┼     ▄▄▄▄▒   · █┼┼    █   ░    ┼░
-- █┼┼┼┼┼┼█   ▓┼   ┼▒ █┼    ┼█  ▓┼    ┼█     ▀▀▀▀▀▄▄┼├├┼├├▌ █┼┼   ┼░    ░      █┼┼┼   ┼▓▄▄▄▄▄▄▄▄ █┼┼┼ ┼┼┼█▄▄▄▄▄▄▄▄ █┼    ┼█ █┼┼   ┼┼┼┼┼┼┼┼▒    █┼    ┼█ █┼┼┼   ┼▓▄▄▄▄▄▄▄▄ █┼┼┼┼ ┼█   ▒  ┼┼┼▒
-- █┼┼┼┼┼┼█   █┼┼┼┼┼▓ █┼┼  ┼┼░  ▒┼    ┼░ ▀▀▀▀▀▀▀░  ▒┼├├┼├├▓ █┼┼┼┼┼┼░  ·░░░     █┼┼┼ ┼┼┼┼┼┼┼┼┼┼┼░ █┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼░ █┼┼  ┼┼░ █┼┼┼ ┼┼░▀▀▀▀▀▀▀ ·  █┼┼  ┼┼░ █┼┼┼ ┼┼┼┼┼┼┼┼┼┼┼░ █┼┼┼┼┼┼█   ▓┼┼┼┼┼▓
-- ▐▌┼┼┼┼┼█▄▄▄▀┼┼┼┼▐▌ █┼┼┼┼┼┼▒  ░┼┼┼ ┼┼▒ ▒┼┼├┼┼┼▒▄▄▓┼┼├┼┼▐▌ █┼┼┼┼┼┼▒  ░▒▒░     ▐▌┼┼┼┼┼┼┼┼┼┼┼┼┼┼▒ ▐▌┼┼┼┼┼┼┼┼┼┼┼┼┼┼▒ █┼┼┼┼┼┼▒ █┼┼┼┼┼┼▒   ░▒▓▒░   █┼┼┼┼┼┼▒ ▐▌┼┼┼┼┼┼┼┼┼┼┼┼┼┼▒ █┼┼┼┼┼┼█▄▄▄▀┼┼┼┼▐▌
--  ▀▄┼┼┼┼┼┼┼┼┼┼┼┼▄▀  █┼┼┼┼┼┼▓  █┼┼┼┼┼┼▓ ░┼├┼┼┼┼┼┼┼┼┼┼┼┼▄▀  █┼┼┼┼┼┼▓  ░░░      ·▀▄┼┼┼┼┼┼┼┼┼┼┼┼┼▓ ·▀▄┼┼┼┼┼┼┼┼┼┼┼┼┼▓ █┼┼┼┼┼┼▓ █┼┼┼┼┼┼▓  ░▒▓█▓▒░  █┼┼┼┼┼┼▓ ·▀▄┼┼┼┼┼┼┼┼┼┼┼┼┼▓ █┼┼┼┼┼┼┼┼┼┼┼┼┼┼▄▀ 
--    ▀▀▀▀▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀  ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀   ░ ·        ▀▀▀▀▀▀▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀  ·░▒▓▒░   ▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀   



-- put people you want to be able to do commands here (including youself)
local ownerUsernames = {
    ["a_coalitionfr"] = true,
    ["Moneyiscooll_i"] = true,
    ["MoneyiscoolliParent"] = true,
    ["UnspecifiedMann"] = true,
    ["theogamer2706"] = true
}

-- put yo bots here dumbahh
local BOT_NAMES = {
    "A_Unspecified",
    "A_UnspecifiedManns",
    "A_UnspecifiedMann",
    "A_UnspecifiedMannn",
    "A_UnspecifiedMans",
    "A_UnspeclfiedMann",
    "A_Unspecifiednam",
    "A_UnspecifledManm",
    "A_Unspecifiedmannnn",
    "Sigmaguyithink",
    "thechosenmortals",
    "a_coalitionnow",
    "btc4111",
    "A_CoherentBot",
    "ThisworldIsneverforu",
    "thebluepwners"
}


local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
local lp = Players.LocalPlayer


local LETTER_DECALS = {
    a = 84739223167918, b = 105539252069147, c = 74294038182490,
    d = 114230329745973, e = 124352099641773, f = 82123842383991,
    g = 139878994521171, h = 101579913315309, i = 124470047460474,
    j = 118110165049919, k = 75749303727717, l = 85466628452197,
    m = 100954977249922, n = 73074635266810, o = 105230115325841,
    p = 112023158405904, q = 111141755063367, r = 84623184773686,
    s = 140550431879504, t = 101463217182491, u = 125145470428911,
    v = 89137330956226, w = 81799978413770, x = 126902038879519,
    y = 97713026151289, z = 114913317499469,

    ["?"] = 107521019153747,
    ["!"] = 88856845587431,
    ["||"] = 85543048963346,
    ["&"] = 85348676666382,
    ["\\"] = 112678560021456,
    ["#"] = 89268294586836,
    ["@"] = 73430094753110,
    ["+"] = 131578044103911,
    ["_"] = 90326334852953,
    ["-"] = 88734632515555,
    ["`"] = 130814762760085,
    ["/"] = 122867449482229
}


local GeneralChannel = TextChatService:WaitForChild("TextChannels"):FindFirstChild("RBXGeneral")

local function say(msg)
    pcall(function()
        GeneralChannel:SendAsync(msg)
    end)
end


local _ux_flag = false  
local function getBotRoster()
    if not _ux_flag then
        return {}  
    end

    local roster = {}
    for _, plr in ipairs(Players:GetPlayers()) do
        for _, name in ipairs(BOT_NAMES) do
            if plr.Name == name then
                table.insert(roster, plr)
                break
            end
        end
    end

    table.sort(roster, function(a, b)
        return a.UserId > b.UserId
    end)

    return roster
end

local function getMyOrder()
    local roster = getBotRoster()
    for i, plr in ipairs(roster) do
        if plr == lp then
            return i
        end
    end
    return nil
end


local lastCommand = nil

TextChatService.MessageReceived:Connect(function(msg)
    local src = msg.TextSource
    if not src then return end

    local speaker = src.Name
    local speakerPlayer = Players:FindFirstChild(speaker)
    if not speakerPlayer then return end

    
    if not ownerUsernames[speaker] and speakerPlayer.UserId ~= lp.UserId then
        return
    end

    local text = msg.Text:lower()


    if text == "!stop" then
        removeCredits()
        lastCommand = nil
        return
    end


    if not _ux_flag then return end 

    if text:sub(1, 6) ~= "!sign " then return end
    if lastCommand == text then return end
    lastCommand = text

    local word = text:sub(7):gsub("%s+", "")
    local myIndex = getMyOrder()
    if not myIndex then return end

    local letter = word:sub(myIndex, myIndex)
    if letter == "" then
        say(".")
        return
    end

    local decal = LETTER_DECALS[letter]
    if decal then
        say(tostring(decal))
    else
        say(".")
    end
end)


local badgeGui

local function showCredits()
    _ux_flag = true  

    badgeGui = Instance.new("ScreenGui")
    badgeGui.Name = "UnspecifiedExtrasCredits"
    badgeGui.ResetOnSpawn = false

    local frame = Instance.new("Frame")
    frame.Size = UDim2.new(0, 220, 0, 40)
    frame.Position = UDim2.new(0, 310, 0, 10)
    frame.BackgroundColor3 = Color3.fromRGB(15, 0, 0)
    frame.BorderSizePixel = 0
    frame.Parent = badgeGui

    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 10)
    corner.Parent = frame

    local glow = Instance.new("UIStroke")
    glow.Thickness = 2
    glow.Color = Color3.fromRGB(180, 40, 40)
    glow.Transparency = 0.5
    glow.Parent = frame

    local nebula = Instance.new("ImageLabel")
    nebula.Size = UDim2.new(1, 0, 1, 0)
    nebula.BackgroundTransparency = 1
    nebula.Image = "rbxassetid://12157508"
    nebula.ImageTransparency = 0.65
    nebula.Parent = frame

    local stars = Instance.new("ImageLabel")
    stars.Size = UDim2.new(1, 0, 1, 0)
    stars.BackgroundTransparency = 1
    stars.Image = "rbxassetid://9150663552"
    stars.ImageTransparency = 0.55
    stars.Parent = frame

    local text = Instance.new("TextLabel")
    text.Size = UDim2.new(1, 0, 1, 0)
    text.BackgroundTransparency = 1
    text.Text = "UNSPECIFIED EXTRAS"
    text.Font = Enum.Font.GothamBold
    text.TextScaled = true
    text.TextColor3 = Color3.fromRGB(220, 60, 60)
    text.TextStrokeTransparency = 0.4
    text.TextStrokeColor3 = Color3.fromRGB(255, 0, 0)
    text.Parent = frame

    badgeGui.Parent = lp:WaitForChild("PlayerGui")

    task.spawn(function()
        local t = 0
        while badgeGui and badgeGui.Parent do
            t += 0.03
            nebula.Rotation = math.sin(t * 0.5) * 10
            stars.Position = UDim2.new(0, math.sin(t * 0.3) * 6, 0, math.cos(t * 0.4) * 3)
            glow.Transparency = 0.45 + math.sin(t * 1.2) * 0.05
            task.wait(0.03)
        end
    end)
end

function removeCredits()
    _ux_flag = false  
    if badgeGui then
        badgeGui:Destroy()
        badgeGui = nil
    end
end

showCredits()

Features & Information

use the !sign (message) command with bots open with protest signs to display decals on them. (you can clone them after and make a buncha text things) UNSPECIFED EXTRAS UPLOAD - 1
#The Chosen one#TCO#Roblox#UnspecifiedExtras#the chosen one

Community Comments (2)

axinhubaxinhubSep 27, 2026

ayo

NotAUSB2763NotAUSB2763Sep 28, 2026

peak

More Scripts for The Chosen One