About

This Discord bot was created to help manage and improve communication within the UMBC Tabletop Gaming Discord server. It was built to automate repetitive tasks, share announcements, organize events, and provide useful utilities that make it easier for members to stay engaged and informed. Whether it's sending reminders, managing roles, or providing quick access to club resources, the bot is designed to make the club's online space more interactive and efficient for both members and administrators.

Bot Commands

/add-upcoming-events

Allows people with the "Club Officer" role to add events to be shown to the public. Adding events is done by entering the name of the event and the date in YYYY-MM-DD format. Events with past dates are automatically removed.

/club-games

Displays a list of board games owned by the club that can be brought and played during meetings.

/list-member-games

Retrieves a list of board games owned by a specific member. The user enters the member's Discord username, and if that member has set up their collection using the /set-owned-games command, their list will be displayed.

/price-is-right

Shows an image of a game, and users guess the MSRP price by entering the command again with a price guess. If a user guesses before a game is started, they will receive a warning. Games end after 1 minute if no guesses are made. Guesses within 5% of the actual price are considered correct.

/random-fact

Returns a random fact from a curated backend list.

/remove-upcoming-event

Allows "Club Officer" role members to remove events from the upcoming events list by entering the event name.

/rock-paper-scissors

Play Rock-Paper-Scissors against the bot. The bot’s choice is based on weighted probabilities. Enter your choice when using the command.

/roll-dice

Rolls multiple dice. The user specifies the number of dice and how many sides each die has. Displays all roll results and the frequency of each outcome.

/roll-die

Rolls a single die. The user specifies how many sides the die should have and receives one random result.

/search-board-game

Searches for a board game by name and provides information including year of release, popularity rank on BoardGameGeek, number of ratings, average rating, playtime length, and complexity score.

/server

Displays the current number of members in the server.

/set-owned-games

Allows users to link their BoardGameGeek (BGG) account by entering their BGG username. This enables others to view the games they own via the /list-member-games command. The BGG username and Discord ID are saved for future searches.

/song-of-the-day

Lets "Club Officer" role members add a "Song of the Day." The user enters a date (YYYY-MM-DD) and either a song name or a link (YouTube, Spotify, Apple Music). The bot posts the song in a "song-of-the-day" channel at 5:17 UTC. If a date already has a song, new entries overwrite the previous one.

/upcoming-events

Lists all upcoming events sorted by date.

/user-most-played

Displays a list of a user's most played board games if they have linked their BoardGameGeek account using the /set-owned-games command.

Github Repository

Can see the code for this project at the following GitHub repository

Invite

Invite bot to a discord server to see how it works.