Skip to content

Plugin Idea: Mini-Games — Connect 4, Tic-Tac-Toe, Blackjack, Hangman, RPS #28

Description

@DeadIndian

Plugin Idea: Mini-Games — multiplayer games with Discord components

Add interactive multiplayer games playable in-channel using Discord buttons and select menus — Connect 4, Tic-Tac-Toe, Hangman, Blackjack, and Trivia (complementary to the separate Trivia plugin focused on quiz).

Why

After music, games are the second most-requested category on Discord. Every major bot (Dank Memer, UnbelievaBoat, Arcane) has multiplayer games. ADB only has RNG fun commands (8ball, dice, roll) — no actual interactive games.

Spec

Available Games:

Game Players Description
Connect 4 2 Drop discs in 7-column grid, first to 4 in a row wins
Tic-Tac-Toe 2 Classic 3×3 grid
Hangman 1+ Guess the word before the hangman is complete
Blackjack 1 (vs dealer) Beat the dealer without going over 21
Rock Paper Scissors 2 Best of 3 with button inputs

Commands:

  • /game connect4 <opponent> — Start a Connect 4 game
  • /game tictactoe <opponent> — Start Tic-Tac-Toe
  • /game hangman — Start Hangman (solo)
  • /game blackjack [bet] — Play Blackjack (requires economy)
  • /game rps <opponent> — Best-of-3 Rock Paper Scissors
  • /game stats [user] — Win/loss stats
  • /game leaderboard — Top players by wins

Game Mechanics (all use Discord components):

  • Connect 4: Button row per column (7 buttons), board rendered as emoji grid updated each turn
  • Tic-Tac-Toe: 3×3 button grid, alternating turns
  • Hangman: Button keyboard (A-Z), word shown as underscores
  • Blackjack: Hit / Stand / Double Down buttons
  • RPS: Rock / Paper / Scissors buttons, best of 3

Features:

  • Timed Turns — 30s timeout per turn, forfeit on timeout
  • ELO Rating — Optional competitive ELO system
  • Economy Integration — Bet currency on games (hooks into economy)
  • Spectator Mode — Others can watch but can't interact
  • Replay — Button to rematch after game ends
  • Stats — Per-game win/loss/draw tracking

Model:

{
  gameId: String,
  type: String,          // 'connect4' | 'tictactoe' | 'hangman' | 'blackjack' | 'rps'
  guildId: String,
  channelId: String,
  players: [String],     // user IDs
  currentTurn: Number,
  state: Object,         // game-specific state (grid, hand, etc.)
  status: String,        // 'playing' | 'finished' | 'timed_out'
  winner: String,        // user ID or null (draw)
  bet: Number,           // economy bet amount (0 = none)
  startedAt: Date,
  lastMoveAt: Date
}

// Stats
{
  userId: String,
  guildId: String,
  gameType: String,
  wins: Number,
  losses: Number,
  draws: Number,
  elo: Number
}

Acceptance Criteria

  • Connect 4 playable with buttons, win detection
  • Tic-Tac-Toe with 3x3 button grid
  • Hangman with letter buttons
  • Blackjack with hit/stand/double
  • Timed turns with auto-forfeit
  • Stats and win/loss tracking
  • Economy betting integration (optional)

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