Skip to content

Latest commit

 

History

History
100 lines (51 loc) · 4 KB

README.md

File metadata and controls

100 lines (51 loc) · 4 KB

VoloBot - A D&D Discord Bot

A simple Dungeons and Dragons themed Discord Bot. Named for the famed Volothamp Geddarm of Waterdeep, this bot can roll virtual dice, read an extensive critical hit table, scrape the web for spell descriptions, and much more!

Commands:

!roll <number_of_dice> <number_of_sides>

VoloBot will roll the specified number of dice, each with the specified number of sides.

EX: '!roll 3 6' will tell VoloBot to roll 3 6-Sided dice.

roll example

!crit <crit_percentage> <dmg_type>

VoloBot will take a percentage (1-100) and a type of damage (slashing, bludgeoning, piercing, fire, cold, lightning, force, necrotic, radiant, acid, psychic, thunder), and reply with the corresponding effect from the critical hit table.

Note: Percentages and damage types based on 'Critical_Hit_Table.csv'. Using two letter abbreviations (such as 'bl' instead of 'bludgeoning') are also supported.

EX: '!crit 40 slashing' will send the corresponding effect of a 40% roll with a damage type of 'slashing'.

crit example

!spell <spell_name> <source>

Search spell descriptions. VoloBot will first check spells.json for locally stored information to improve response time and support homebrew spells. If a spell is not found locally, VoloBot will search for the spell on D&D Beyond.

EX: '!spell fireball' will send the description of spell 'fireball'.

spell example 1

EX: '!spell fireball web' will send the description of spell 'fireball' as found on D&D Beyond, skipping local search.

spell example 2

!store <item> <description> <quantity>

Add items to VoloBot's virtual inventory.

EX: '!store "health potion" "Restores 2d4 + 2 HP" 2'

spell example 2

!bag <item>

List items stored in VoloBot's virtual inventory. Specifying an item will give more information about that item.

EX: '!bag'

spell example 2

!remove <item> <quantity>

Remove items from VoloBot's virtual inventory.

EX: '!remove "health potion" 1'

spell example 2

!ping

Check the latency between the sender and VoloBot.

EX: '!ping'

spell example 2

!set_activity <activity_type> <activity_name>

Set VoloBot's Discord activity status, where <activity_type> is one of 'Playing', 'Listening', or 'Watching'.

EX: '!set_activity playing D&D' will set VoloBot's Discord status to 'Playing D&D'.

set_activity example 1 set_activity example 2

!meme

VoloBot will reply with a random meme.

meme example

Dependencies (see requirements.txt):

discord.py

pip3 install discord.py

dotenv

pip3 install python-dotenv

beautifulsoup4

pip3 install beautifulsoup4

csv.py

This module is included with Python 3.9. For versions of Python 3 below 3.9, you can download the module here.