Welcome to the Roundtable Bot repository! This project's goal is to enable online gameplay of the unpublished board game Roundtable Royale in discord. Install or import this bot into your discord server to enable live automated game and action handling. Players can use discord slash commands to join the game, begin rounds, and submit their actions. The bot will process all activities to manage the scores and determine the winner(s).
Please be aware that both the board game itself and the discord bot are a work in progress.
Roundtable.test1-.Mexican.Standoff.mp4
- Watch the video for an example of a 3-player (Mexican Standoff) round. Here's what's happening game-wise
- Sameer and Borktalk slashed each other, rBats slashed Sameer.
- In the Mexican standoff round, the slash action deals maximum damage so Sameer and Borktalk both died.
- rBats was the only living player from this round and as the last living player he wins the game.
- Notable events in the video:
- (0:04) The round begins with a user entering
/beginRound
- (0:18) Living players can submit their round action when the discussion timer ends with
/submitActivity
- (0:37) and (0:42) The bot responds to Sameer and rBats that their round action was successfully received
- (0:48) The bot receives the final living player's action (Borktalk) and processes the round result
- (0:50) The bot processes the results and creates a 3 visuals of the round/game status
- Action matrix- the player in the first column applied their stated action to the corresponding player in row 1
- Ally matrix- the player in the first column chose their ally to be the corresponding player in row 1 (Note: Allies not applicable in this round per the game rules)
- Round result text- Information about which players died and tiebreaker points players received for successfully eliminating other players
- (0:50) The bot determined a game-end condition (1 player remaining) and announced the game's result
- (0:04) The round begins with a user entering
-
Initialize and join the game with no maximum player limit (
/initializegame
and/joingame
) -
Begin the discussion phase with a custom round time using
/beginround
in the discord chat -
Submit your activity (action & ally) using
/submitactivity
in the discord chat -
Once all activities are submitted, The bot will automatically resolve all actions and present any round eliminations and game results (if applicable)
- View the current game status (living players, dead players, round number, etc.) using
/gamestatus
in the discord chat
- Ghost actions- continue to play the game as a ghost after you've been eliminated
- Objectives- receive unique secret objectives that award victory points upon successful completion
- Match handling- determine the greatest knight of all by tracking victory points across multiple games
- Fork this repository and use the
git clone
command in your terminal to clone it to your machine cd
into the cloned repository and runnpm install
to install the dependencies- create a new
.env
file in the repository with the commandtouch .env
You will need to enter a few things in the .env
file. You can find an example file called .env.sample
of which you can copy the entire contents into your newly generated .env
file.
- Go to https://discord.com/developers/applications
- Click on
New Application
- Give the bot a name and click
Create
. Try to make it unique since Discord may not allow a name if it has too many users with that same name
You'll now be taken to the bot's "General Information" page. When visiting the Developer Portal at a later time, you can reach the bot options through Applications
and selecting your bot.
- In the bot's menu, select
Bot
- Click on
Reset Token
and copy the output. You may need to enter your 2FA code at this point - Paste the copied token after
DISCORD_TOKEN
= in your.env
file
- Open Discord
- Ensure that you have Developer mode enabled in the Discord
Advanced
profile settings
- Right-click your server to which you will later invite the bot
- Click
Copy Server ID
- Paste the copied ID after
SERVER_ID=
in your.env
file
- In the Discord Developer Portal, click on
Bot
in the left hand sidebar
- Scroll down to Privileged Gateway Intents and turn on all 3 settings
- Presence Intent
- Server Members Intent
- Message Content Intent
- In the Discord Developer Portal, click on
OAuth2
in the left hand sidebar. Then clickURL Generator
underneath that
- In the Scopes section select
application.commands
andbot
. Selectingbot
will enable the Bot Permissions section. - In the Bot Permissions section, check
Administrator
- Copy the generated URL in the bottom
- Paste the URL in your browser and import the bot into your selected server
- In your terminal, navigate to the cloned repository and run
npm run dev
At this point your cloned version of Roundtable Bot should come online and its commands should work!