Skip to content

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, respond to its own name, and even post memes!

Notifications You must be signed in to change notification settings

cbates8/Volo-Bot

Repository files navigation

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.

About

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, respond to its own name, and even post memes!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published