Skip to content

Plugin Idea: Trivia & Quiz Games — multiplayer quiz competitions #27

Description

@DeadIndian

Plugin Idea: Trivia & Quiz Games — multiplayer quiz competitions

Multiplayer trivia and quiz games with categories, difficulty levels, leaderboards, and custom question sets. Similar to TriviaBot, Quizcord, and Dank Memer trivia.

Why

Trivia is one of the most popular engagement features across all Discord bots. It's fun, competitive, and educational. The current bot has simple fun commands (8ball, truthordare) but no structured quiz game. This is a full multiplayer trivia system.

Spec

Core Commands:

  • /trivia start [category] [difficulty] [question-count] — Start a trivia game
  • /trivia stop — Stop current game
  • /trivia answer <answer> — Submit your answer for the current question
  • /trivia skip — Skip current question
  • /trivia leaderboard — Server trivia leaderboard
  • /trivia stats [user] — Show trivia stats
  • /trivia categories — List available categories

Game Modes:

  1. Classic — Everyone answers same question, first correct = most points
  2. Speed Round — Timed questions, faster answer = more points
  3. Team Battle — Split into teams, team with most correct wins (max 4 teams)
  4. Survival — Wrong answer = eliminated, last standing wins
  5. Custom Quiz — Run a quiz from custom question sets

Question Sources:

  1. Open Trivia Database (OpenTDB) — Free API with thousands of questions across 24+ categories
  2. Custom Question Sets — Server admins create their own Q&A sets
  3. AI-Generated — Optional: Gemini generates questions from a topic (requires Gemini key)

Categories:
General Knowledge, Science, History, Geography, Movies, Music, Video Games, Sports, Anime, Technology, Books, Nature, Food, Art, Mythology, Politics

Scoring:

  • Correct answer: +10 base points
  • Speed bonus: up to +5 extra points (faster = more)
  • Streak bonus: +2 per consecutive correct answer
  • Difficulty multiplier: Easy x1, Medium x2, Hard x3

Features:

  • Ephemeral Answers — Each player submits privately, no one sees your answer
  • Question Timer — Configurable per-question timer (default: 15s)
  • Progress Bar — Shows question X of Y during game
  • End Summary — Podium embed showing 1st/2nd/3rd place
  • Role Rewards — Configurable roles for winning or trivia level milestones
  • Daily Challenge — One question set per day with bonus points
  • Question Packs — Installable question packs as community contributions

Admin Config:

  • /trivia-config channel <#channel> — Restrict games to a channel
  • /trivia-config cooldown <seconds> — Cooldown between games
  • /trivia-config difficulty [easy|medium|hard|mixed] — Default difficulty
  • /trivia-config points-per-correct <number> — Base points override
  • /trivia-config question-time <seconds> — Timer per question
  • /trivia-role add <wins> <role> — Assign role at X wins
  • /trivia-question add <question> <answer> <category> — Add custom question
  • /trivia-question import <json> — Bulk import questions

Model:

// Active game per guild
{
  guildId: String,
  channelId: String,
  mode: String,
  status: String,          // 'waiting' | 'playing' | 'finished'
  questions: [{
    question: String,
    category: String,
    difficulty: String,
    correctAnswer: String,
    options: [String],
    timeStarted: Date
  }],
  currentQuestion: Number,
  players: [{
    userId: String,
    score: Number,
    streak: Number,
    correctCount: Number,
    fastestAnswer: Number
  }],
  startedAt: Date
}

// Custom question
{
  guildId: String,
  question: String,
  answer: String,
  options: [String],
  category: String,
  difficulty: String,
  authorId: String,
  timesUsed: Number
}

Acceptance Criteria

  • Start trivia game with category/difficulty selection
  • Multiple choice questions with ephemeral answering
  • Speed scoring (faster = more points)
  • Game modes: Classic, Speed Round, Team Battle
  • Per-server leaderboard with stats
  • Custom question creation and import
  • Role rewards for trivia achievements

Metadata

Metadata

Assignees

No one assigned

    Labels

    new-pluginIdea for a brand new plugin (no repo exists yet)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions