local textchat = game:GetService("TextChatService") local channels = textchat:WaitForChild("TextChannels") local general = channels.RBXGeneral local done = {} local guessed = {} local points = {} local connection local QUIZSTOP = false local debug = false local DTB = { ["When was roblox fully released?"] = { A = "2004", B = '2005")', C = "2006", D = "2007", correct = "C" }, ["What coding language does roblox use?"] = { A = "Python", B = "Luau", C = "JavaScript", D = "C++", correct = "B" }, ["Who is the CEO or roblox?"] = { A = "Elon Musk", B = "MrBeast", C = "Donald Trump", D = "David Bazucki", correct = "D" }, ["How do you call the basic starteravatar in roblox?"] = { A = "Bacon Hair", B = "Noob", C = "Guest", D = "John", correct = "A" }, ["What currency was removed from roblox?"] = { A = "Tix", B = "Robux", C = "Points", D = "DavidBux", correct = "A" } } local function RandomValue(Table) local AllValues = {} for Index, Value in pairs(Table) do table.insert(AllValues, { Index = Index, Value = Value }) end return AllValues[Random.new():NextInteger(1, #AllValues)] end local function chat(msg) if debug then general:DisplaySystemMessage('AGBest: [QUIZ] '..msg) else general:SendAsync("[QUIZ] " .. msg) end end chat("hi! this is a roblox quiz!") task.wait(3) chat("the rules are simple:") task.wait(2) chat("i will ask a question,") task.wait(2) chat("there will be 4 answers, A, B, C or D") task.wait(2) chat("you chat the correct answer using the first letter,") task.wait(2) chat("and also there will be 5 rounds.") task.wait(2.5) chat("let's get to the first question:") task.wait(2.5) for i = 1, 5 do if QUIZSTOP then break end local question = RandomValue(DTB) chat("question " .. i .. ": " .. question.Index) task.wait(3) chat("A) " .. question.Value.A .. " B) " .. question.Value.B .. " C) " .. question.Value.C .. " D) " .. question.Value.D) task.wait(3) chat("you have 30 seconds!") done[i] = false guessed[i] = false task.defer(function() textchat.MessageReceived:Connect(function(msg) if not done[i] then local message = msg.Text:upper() if table.find({'A','B','C','D'}, message) then if message == question.Value.correct then guessed[i] = true done[i] = true if points[msg.TextSource.Name] then points[msg.TextSource.Name] = points[msg.TextSource.Name] + 1 else points[msg.TextSource.Name] = 1 end task.wait(0.5) chat("yes, " .. msg.TextSource.Name .. "! that's correct! you got +1 point!") else task.wait(0.5) chat("sorry, " .. msg.TextSource.Name .. ", that's incorrect. try again!") end end if msg.TextSource.UserId == game:GetService("Players").LocalPlayer.UserId then if message == "/QUIZSTOP" then task.wait(0.5) --chat("stopping the quiz!") script:Destroy() QUIZSTOP = true done[i] = true guessed[i] = true end end end end) task.wait(30) done[i] = true end) repeat task.wait(1) until done[i] task.wait(1.5) if not guessed[i] then chat("times up! the correct answer is " .. question.Value.correct .. "!") end DTB[question.Index] = nil task.wait(2.5) end task.wait(1) chat("that's all for now! results:") task.wait(2.5) for k, v in pairs(points) do chat(k .. ": " .. v) task.wait(1.5) end