A Python Discord bot that lets users play UNO inside a Discord server.
- Create and join UNO games in a channel
- Start a game when enough players join
- Draw / play cards with validation (match color/number/action)
- Enforce UNO rules:
- Reverse, Skip, Draw Two
- Wild, Wild Draw Four
- Turn system + automatic next player
- Game status display:
- Top card, current turn, player list, hand sizes
The bot maintains one message in the game channel that shows:
- The current top card
- Whose turn it is
- Player order / number of cards in each hand
This message updates every turn so everyone can follow the game without spam.
Each player receives DM updates that show:
- The top card
- Your hand
- What moves you can make (playable cards)
- Buttons/commands to:
- Play a card
- Draw a card
- End turn (if needed)
- UNO call (optional feature)
Players make all moves through DMs so nobody sees your hand.
- Python 3.10+
- discord.py
git clone https://github.com/CSS360-2026-Winter/Daves-Friends.git
cd Daves-Friendspython -m venv .venvActivate it:
Mac/Linux
source .venv/bin/activateWindows
.venv\Scripts\Activate.ps1pip install -r requirements.txtDISCORD_TOKEN=your_token_hereFor faster slash command updates during development, add this to your .env:
GUILD_ID=your_server_idThis syncs commands instantly to that server. If not set, commands sync globally and may take longer to appear.