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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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