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()