Awesome Open Source
Awesome Open Source

Discord 10man Bot

GitHub Pipenv locked Python version GitHub GitHub release (latest SemVer) Discord

Do you have a csgo server and want to organize PUGs with your friends in discord? This bot allows for a command driven or queue driven pick up game system. Essentially your own personal popflash, built right into your discord server.

For technical support, join our discord

Go to the Wiki for Setup and Usage Instructions


  • Command Based PUG
  • Queue Based PUG w/ Ready Up
  • Multiple Servers
  • Random Captains
  • Selected Captains
  • Player Veto
  • Map Veto
  • Selected Map
  • Auto Voice Channel Creation for Teams
  • Channel Deletion After Game
  • Score Updates in Text Channel
  • Auto Server Configuration
  • Get5 Features
  • Match Statistics Collection COMING SOON
  • Dathost API Support COMING SOON



User Commands

  • .pug: Starts a pug with the members of a voice channel. There must be 10 members in the voice channel and each member must have used the .link command.
    • .pug has a series of optional arguments. You can use as many of the optional arguments together as you'd like:
      • .pug @user: sets the user as a team captain
      • .pug <map_name>: sets the map
      • .pug random: randomizes the teams
    • Examples:
      • .pug @retsol @lexes: will set retsol and lexes as team captains
      • .pug random: a pug with a map veto but random teams
      • .pug de_dust2: a pug on de_dust2 with a player veto
      • .pug random de_dust2: a pug with random teams on de_dust2
      • .pug de_dust2 random: a pug with random teams on de_dust2
  • .link <Steam Community URL or Steam ID>: Connects a users steam account to the bot. Must have done before running a .pug.
  • .connect ?<server id>: Shows the server connect message. Optional server id if there are more than 1 servers.
  • .matches: Shows the live matches and their scores.
  • .about: Get's the bot's version number

Admin Commands

  • .setup_match_size: Set's the number of players in a match. The default value is 10. It also changes the queue size if enabled.
  • .connect_dm <True | False>: If set to true, instead of posting the ip to your csgo server in the general message, it sends the user a DM.
  • .add_spectator @user: Adds the tagged users as spectators in the server.
  • .remove_spectator @user: Removes the tagged users as spectators in the server.
  • .setup_queue <True | False>: Enables or disables the queue.
  • .set_queue_captain @user: Adds the tagged users as captains in the queue. Once they are a captain, they won't be a captain again unless you specify it with this command
  • .empty_queue: Kicks all voice members from the queue.
  • .force_restart_queue: Restarts the queue task.
  • .force_end ?<server id>: force ends a match on a server. Defaults to the first server if you don't provide a server ID.
  • .map_pool <list of map names>: Updates the map pool to the list of maps provided. Untested.
    • Example: .map_pool de_dust2 de_mirage de_vertigo: Sets the map pool to Dust2, Mirage, and Vertigo.
  • .RCON_message <message>: Sends the RCON command, say <message to the CSGO Server to test if RCON works.
  • .RCON_unban: Unbans all users from the server.

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Python (890,046
Server (65,690
Discord (20,583
Team (15,845
Discord Bot (10,033
Pug (2,523
Csgo (1,297
Valve (1,072
Counter Strike (509
Counter Strike Global Offensive (187
Scrim (129
Matches (18
Get5 (17
Global Offensive (12
10 Man (3