Skip to content

Team captains register through buttons in Discord. Organizers seed the teams on a drag-to-reorder web page, and the bot then creates a Challonge bracket plus a role and channels for every team. During matches it handles pick/bans, rehosts, and caster assignments. When the tournament ends it cleans up the channels and asks the top two teams for their VODs.

What I built

  • Slash commands and button-based forms for registration, roster edits, and pick/bans
  • Double-elimination brackets through the Challonge API
  • A small aiohttp web app for seeding, the admin bracket, and a tournament dashboard
  • Scoreboard image generation, with tournament data saved to a GitHub Gist