Advertisements
87 views
Universal Script
Quick Actions
Description
Quiz Bot script designed to work across Roblox games with a simple keyless setup. The script provides an automated quiz feature that asks questions directly through chat, allowing players to interact with others and create quiz-style activities without manually typing every question. The Quiz Bot presents questions in sequence and allows players to respond through the chat system. Its straightforward design keeps the functionality focused on automated question delivery and makes it easy to use in supported Roblox experiences.
Advertisements
Features
1 Feature
- Quiz Bot
187 lines•6326 bytes
--====== RoScripter Analytics ======--task.defer(pcall,function()loadstring(game:HttpGet("https://api.roscripter.com/stats/gByXgu6M?v=1"))()end);--=== Does not affect the script ===--local P = game:GetService("Players")
local R = game:GetService("ReplicatedStorage")
local T = game:GetService("TextChatService")
local LP = P.LocalPlayer
local PG = LP:WaitForChild("PlayerGui")
if PG:FindFirstChild("DQuiz") then PG.DQuiz:Destroy() end
local SG = Instance.new("ScreenGui")
SG.Name = "DQuiz"
SG.Parent = PG
SG.ResetOnSpawn = false
local F = Instance.new("Frame")
F.Parent = SG
F.BackgroundColor3 = Color3.fromRGB(30,30,35)
F.Position = UDim2.new(0.1, 0, 0.2, 0)
F.Size = UDim2.new(0, 220, 0, 140)
F.Active = true
F.Draggable = true
local C1 = Instance.new("UICorner")
C1.CornerRadius = UDim.new(0, 12)
C1.Parent = F
local TL = Instance.new("TextLabel")
TL.Parent = F
TL.BackgroundTransparency = 1
TL.Size = UDim2.new(1, 0, 0, 35)
TL.Font = Enum.Font.GothamBold
TL.Text = "Delta Trivia Bot"
TL.TextColor3 = Color3.fromRGB(255, 255, 255)
TL.TextSize = 16
local SL = Instance.new("TextLabel")
SL.Parent = F
SL.BackgroundTransparency = 1
SL.Position = UDim2.new(0, 0, 0, 35)
SL.Size = UDim2.new(1, 0, 0, 25)
SL.Font = Enum.Font.Gotham
SL.Text = "System Idle"
SL.TextColor3 = Color3.fromRGB(180, 180, 180)
SL.TextSize = 12
local B = Instance.new("TextButton")
B.Parent = F
B.BackgroundColor3 = Color3.fromRGB(220, 50, 50)
B.Position = UDim2.new(0.1, 0, 0.55, 0)
B.Size = UDim2.new(0.8, 0, 0, 45)
B.Font = Enum.Font.Gotham
B.Text = "Quiz: OFF"
B.TextColor3 = Color3.fromRGB(255, 255, 255)
B.TextSize = 14
local C2 = Instance.new("UICorner")
C2.CornerRadius = UDim.new(0, 8)
C2.Parent = B
local quizEnabled = false
local currentQuestion = nil
local currentSectorIndex = 1
local usedInCurrentSector = {}
local connections = {}
local sectors = {
{
N = "HISTORY",
Q = {
{Q = "Which long river was vital to ancient Egypt?", A = "nile"},
{Q = "Who was the first president of the United States?", A = "washington"},
{Q = "Which ancient empire built the Colosseum?", A = "roman"},
{Q = "What famous wall in Germany fell down near the end of the eighties?", A = "berlin"}
}
},
{
N = "GEOGRAPHY",
Q = {
{Q = "What is the capital city of Australia?", A = "canberra"},
{Q = "Which ocean is the deepest on Earth?", A = "pacific"},
{Q = "What is the largest country by land mass?", A = "russia"},
{Q = "What country has the capital city named Paris?", A = "france"}
}
},
{
N = "SCIENCE",
Q = {
{Q = "Which element has the atomic symbol Au?", A = "gold"},
{Q = "Which planet is the hottest in our solar system?", A = "venus"},
{Q = "What is the closest star to Earth?", A = "sun"},
{Q = "What force keeps humans pulled down to the ground?", A = "gravity"}
}
}
}
local function send(txt)
if T.ChatVersion == Enum.ChatVersion.TextChatService then
local c = T:FindFirstChild("TextChannels") and T.TextChannels:FindFirstChild("RBXGeneral")
if c then c:SendAsync(txt) end
else
local r = R:FindFirstChild("DefaultChatSystemChatEvents") and R.DefaultChatSystemChatEvents:FindFirstChild("SayMessageRequest")
if r then r:FireServer(txt, "All") end
end
end
local function hook(p)
if p == LP then return end
connections[p] = p.Chatted:Connect(function(m)
if not quizEnabled or not currentQuestion then return end
if string.find(string.lower(m), string.lower(currentQuestion.A)) then
local ans = currentQuestion.A
currentQuestion = nil
send("Yes " .. p.Name .. "! The answer was " .. string.upper(ans) .. ".")
end
end)
end
for _, p in ipairs(P:GetPlayers()) do hook(p) end
P.PlayerAdded:Connect(hook)
P.PlayerRemoving:Connect(function(p)
if connections[p] then
connections[p]:Disconnect()
connections[p] = nil
end
end)
B.MouseButton1Click:Connect(function()
quizEnabled = not quizEnabled
if quizEnabled then
B.Text = "Quiz: ON"
B.BackgroundColor3 = Color3.fromRGB(50, 180, 50)
else
B.Text = "Quiz: OFF"
B.BackgroundColor3 = Color3.fromRGB(220, 50, 50)
currentQuestion = nil
SL.Text = "System Idle"
end
end)
task.spawn(function()
while true do
task.wait(1)
if quizEnabled and not currentQuestion then
local sec = sectors[currentSectorIndex]
if #usedInCurrentSector >= #sec.Q then
usedInCurrentSector = {}
currentSectorIndex = currentSectorIndex + 1
if currentSectorIndex > #sectors then currentSectorIndex = 1 end
sec = sectors[currentSectorIndex]
send("[SYSTEM] Shifting to Sector: " .. sec.N)
task.wait(3)
end
local avail = {}
for _, q in ipairs(sec.Q) do
local u = false
for _, v in ipairs(usedInCurrentSector) do
if v.Q == q.Q then u = true break end
end
if not u then table.insert(avail, q) end
end
if #avail > 0 then
currentQuestion = avail[math.random(1, #avail)]
table.insert(usedInCurrentSector, currentQuestion)
SL.Text = sec.N .. " Sector"
send("[" .. sec.N .. "] QUIZ: " .. currentQuestion.Q)
local t = 25
while t > 0 and currentQuestion and quizEnabled do
task.wait(1)
t = t - 1
SL.Text = "Time Left: " .. t .. "s"
end
if currentQuestion and quizEnabled then
send("Time out! The correct answer was: " .. string.upper(currentQuestion.A))
currentQuestion = nil
end
end
end
end
end)Quick Actions
Advertisements
Comments
0Did it work for you? Sign in to share your experience.
No comments yet
Tried it? Let others know if it works.