TRD Round Revealer
Key Required

TRD Round Revealer

Total Roblox Dramaprotoguyprotoguy 1.7K views 7.3K executesUpdated Jan 19, 2026
2.5/ 5(2 votes)
1150% Positive
Lua Script•209 lines (7487 chars)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local coreGui = game:GetService("CoreGui")

local twists = {
    ["Undecided"] = {name = "Undecided (Round hasn't been decided yet)", color = Color3.fromRGB(150, 150, 150)},
    ["normal"] = {name = "Normal Round (No Special Round!)", color = Color3.fromRGB(100, 200, 100)},
    ["double"] = {name = "Double (Double Elimination, 2 people will be voted instead of 1)", color = Color3.fromRGB(255, 80, 80)},
    ["exile"] = {name = "Exile (Players will vote who to keep safe for the round)", color = Color3.fromRGB(255, 165, 0)},
    ["singleswap"] = {name = "Sike! (Instead of being eliminated your team will be swapped)", color = Color3.fromRGB(100, 150, 255)},
    ["purge"] = {name = "Purge! (Last player to finish is eliminated)", color = Color3.fromRGB(200, 50, 200)},
    ["votereveal"] = {name = "Exposed! (Votes will be revealed by Kyle)", color = Color3.fromRGB(255, 215, 0)}
}

local gui = Instance.new("ScreenGui")
gui.Name = "TRDDetector"
gui.Parent = coreGui

local watermark = Instance.new("TextLabel")
watermark.Size = UDim2.new(0, 180, 0, 25)
watermark.Position = UDim2.new(0.5, -90, 0.5, -20)
watermark.BackgroundTransparency = 1
watermark.Text = "TRD Round Detector"
watermark.TextColor3 = Color3.fromRGB(255, 255, 255)
watermark.TextTransparency = 0.75
watermark.TextStrokeTransparency = 0.9
watermark.Font = Enum.Font.GothamBold
watermark.TextSize = 12
watermark.Parent = gui

local currentRoundLabel = Instance.new("TextLabel")
currentRoundLabel.Size = UDim2.new(0, 500, 0, 40)
currentRoundLabel.Position = UDim2.new(0.5, 0, 0.5, 5)
currentRoundLabel.AnchorPoint = Vector2.new(0.5, 0)
currentRoundLabel.BackgroundTransparency = 1
currentRoundLabel.Text = "Current: Waiting..."
currentRoundLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
currentRoundLabel.TextTransparency = 0.5
currentRoundLabel.TextStrokeTransparency = 0.85
currentRoundLabel.Font = Enum.Font.Gotham
currentRoundLabel.TextSize = 11
currentRoundLabel.TextWrapped = true
currentRoundLabel.AutomaticSize = Enum.AutomaticSize.Y
currentRoundLabel.Parent = gui

local function updateCurrentRound(val)
    if twists[val] then
        local info = twists[val]
        currentRoundLabel.Text = "Current: " .. info.name
        currentRoundLabel.TextColor3 = info.color
    elseif val and val ~= "" then
        currentRoundLabel.Text = "Current: " .. tostring(val)
        currentRoundLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
    else
        currentRoundLabel.Text = "Current: None"
        currentRoundLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
    end
end

local holder = Instance.new("Frame")
holder.Size = UDim2.new(0, 300, 1, -20)
holder.Position = UDim2.new(1, -310, 0, 10)
holder.BackgroundTransparency = 1
holder.Parent = gui

local layout = Instance.new("UIListLayout")
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Padding = UDim.new(0, 8)
layout.Parent = holder

local count = 0

local function notify(title, message, color, duration)
    duration = duration or 5
    color = color or Color3.fromRGB(100, 150, 255)
    count = count + 1
    
    local notif = Instance.new("Frame")
    notif.Size = UDim2.new(1, 0, 0, 65)
    notif.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
    notif.BackgroundTransparency = 0.1
    notif.BorderSizePixel = 0
    notif.ClipsDescendants = true
    notif.LayoutOrder = count
    
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 8)
    corner.Parent = notif
    
    local stroke = Instance.new("UIStroke")
    stroke.Color = color
    stroke.Thickness = 1.5
    stroke.Transparency = 0.4
    stroke.Parent = notif
    
    local bar = Instance.new("Frame")
    bar.Size = UDim2.new(0, 3, 1, -10)
    bar.Position = UDim2.new(0, 5, 0, 5)
    bar.BackgroundColor3 = color
    bar.BorderSizePixel = 0
    bar.Parent = notif
    
    local barCorner = Instance.new("UICorner")
    barCorner.CornerRadius = UDim.new(0, 2)
    barCorner.Parent = bar
    
    local titleLabel = Instance.new("TextLabel")
    titleLabel.Size = UDim2.new(1, -20, 0, 20)
    titleLabel.Position = UDim2.new(0, 15, 0, 8)
    titleLabel.BackgroundTransparency = 1
    titleLabel.Text = title
    titleLabel.TextColor3 = color
    titleLabel.Font = Enum.Font.GothamBold
    titleLabel.TextSize = 14
    titleLabel.TextXAlignment = Enum.TextXAlignment.Left
    titleLabel.Parent = notif
    
    local msgLabel = Instance.new("TextLabel")
    msgLabel.Size = UDim2.new(1, -20, 0, 25)
    msgLabel.Position = UDim2.new(0, 15, 0, 28)
    msgLabel.BackgroundTransparency = 1
    msgLabel.Text = message
    msgLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
    msgLabel.Font = Enum.Font.Gotham
    msgLabel.TextSize = 12
    msgLabel.TextXAlignment = Enum.TextXAlignment.Left
    msgLabel.TextWrapped = true
    msgLabel.Parent = notif
    
    local progBg = Instance.new("Frame")
    progBg.Size = UDim2.new(1, -16, 0, 2)
    progBg.Position = UDim2.new(0, 8, 1, -6)
    progBg.BackgroundColor3 = Color3.fromRGB(50, 50, 55)
    progBg.BorderSizePixel = 0
    progBg.Parent = notif
    
    local progCorner = Instance.new("UICorner")
    progCorner.CornerRadius = UDim.new(0, 1)
    progCorner.Parent = progBg
    
    local prog = Instance.new("Frame")
    prog.Size = UDim2.new(1, 0, 1, 0)
    prog.BackgroundColor3 = color
    prog.BorderSizePixel = 0
    prog.Parent = progBg
    
    local progFillCorner = Instance.new("UICorner")
    progFillCorner.CornerRadius = UDim.new(0, 1)
    progFillCorner.Parent = prog
    
    notif.Parent = holder
    notif.Position = UDim2.new(1.2, 0, 0, 0)
    
    TweenService:Create(notif, TweenInfo.new(0.35, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {
        Position = UDim2.new(0, 0, 0, 0)
    }):Play()
    
    TweenService:Create(prog, TweenInfo.new(duration, Enum.EasingStyle.Linear), {
        Size = UDim2.new(0, 0, 1, 0)
    }):Play()
    
    task.delay(duration, function()
        local out = TweenService:Create(notif, TweenInfo.new(0.25, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {
            Position = UDim2.new(1.2, 0, 0, 0)
        })
        out:Play()
        out.Completed:Wait()
        notif:Destroy()
    end)
end

local function start()
    local ok, twist = pcall(function()
        return ReplicatedStorage:WaitForChild("Season", 10):WaitForChild("Twists", 10):WaitForChild("CurrentTwist", 10)
    end)
    
    if not ok or not twist then
        notify("Error", "Could not find CurrentTwist", Color3.fromRGB(255, 80, 80), 6)
        currentRoundLabel.Text = "Current: Error"
        currentRoundLabel.TextColor3 = Color3.fromRGB(255, 80, 80)
        return
    end
    
    notify("TRD Loaded", "Detecting round types", Color3.fromRGB(100, 200, 100), 3)
    
    task.wait(0.5)
    local val = twist.Value
    updateCurrentRound(val)
    
    if twists[val] then
        local info = twists[val]
        notify("Current Round", info.name, info.color, 4)
    elseif val and val ~= "" then
        notify("Unknown Round", val, Color3.fromRGB(180, 180, 180), 4)
    end
    
    twist.Changed:Connect(function(newVal)
        updateCurrentRound(newVal)
        
        if twists[newVal] then
            local info = twists[newVal]
            notify("Round Changed", info.name, info.color, 5)
        else
            notify("Unknown Round", tostring(newVal), Color3.fromRGB(180, 180, 180), 4)
        end
    end)
end

start()

Features & Information

Reveals Round Twists early like Exile Sike Expose etc

Community Comments (4)

I can’t download it help

Replying to @trd4lifeeeeeeeeeeee
protoguyprotoguyJan 19, 2026

@trd4lifeeeeeeeeeeee you dont download it you execute it in your executor

morganbing2014morganbing2014Jan 21, 2026

How Do u do it

Sky*boySky*boyApr 29, 2026

How do I execute

More Scripts for Total Roblox Drama