Uno2 is an in development Discord bot that hosts games of Uno. (It will be offline almost all of the time until it's done)
This bot is not complete and has no guarantee of functionality or support. Until the bot is complete it will ask for admin permissions when you add it to your server, this is because I was too lazy to figure out what permissions are needed exactly. Feel free to clone this code and work on it or host it yourself, but you will not get any support from me other than the hosting section of this readme file.
- Creating and starting games
- Fancy hand messages
- Playing cards
- Skip and reverse cards
- Drawing cards
- Stacks
- Jump ins
- A better hand system
- First, invite the bot to your server.
- To join a lobby, go the chat you want the game to be hosted in and type
/join
. - Once every player who wants to play is in the lobby, type
/start
to start the game. - The bot should begin DMing every player with a few game messages. This will take several seconds. The bot will tell you when the game has started.
- When it is your turn to play, select a card from your hand and use the dot ⏺ to play it. If you cannot play a card, draw cards with the Uno card.
- The first player to run out of cards wins the game!
Use the arrows ◀ ▶ to cycle one card at a time through your hand, and use the double arrows ⏪ ⏩ to cycle two cards at a time through your hand. Use the dot ⏺ to play a card and the Uno card to draw cards.
To host this bot yourself you need a recent version of Python 3 installed, as well as recent versions of the dependencies linked below (and maybe some others I'm too lazy to check just read the error message if one of them is missing). Additionally, you will need a Discord bot account. Place the token copied in step 7 in an empty file called TOKEN.token
inside the storage folder. When you create the link to add the bot account to your server, make sure to check applications.commands
in the scopes section. Assuming you did all that right and I wrote this guide right, simply run bot.py
. You will likely need to wait around an hour for the slash commands to register on Discord. The bot will not be usuable until this happens. This is a Discord limitation for global slash commands. If you really want to get around this, you can create a list of the guild IDs that you want the bot to work in and add a guild_ids = {list of guild_ids}
field to the declaration for each slash command you want, right after the name. Ex:
guild_ids = [123456789, 987654321, 111111111]
@slash.slash(name="foo", guild_ids = guild_ids
description="A development command."
)