Avrae is a bot to facilitate running Dungeons & Dragons 5e online over Discord.
You can join the Avrae Development Discord here!
You can download templates of all the required files at https://andrew-zhu.com/avrae/avrae-files.zip.
Avrae is a large project, and can be a bit daunting to get running. You'll need to create a few files first.
credentials.py
should include, at the very least, variables as such:
officialToken
- Empty string.owner_id
- The Discord User ID of the bot owner (you, if testing).test_database_url
- The URI of a Redis cache (probablyredis://localhost:6379/0
)testToken
- A valid Discord Bot token.test_dicecloud_user
- A Dicecloud username.test_dicecloud_pass
- The Dicecloud password of the Dicecloud user.test_dicecloud_token
- A Dicecloud API token.
You'll also need to create a Google Drive Service Account. You can find instructions on how to do this here.
Follow steps 1-4, then follow the Signed Credentials portion. Rename the JSON avrae-google.json
and put it in the project root.
After creating the credential files, you'll have to create a few files so that Lookup doesn't break:
res/conditions.json
res/rules.json
res/feats.json
res/races.json
*res/classes.json
res/bestiary.json
*res/spells.json
res/items.json
*res/auto_spells.json
res/backgrounds.json
res/itemprops.json
These files should just contain an empty JSON array ([]
) for testing.
Files marked with a * can be obtained by running the data parsers.
You will need to run a Redis cache to serve as Avrae's database. Download Redis 4.0 and run a redis server locally before launching Avrae.
To actually run Avrae, you need Python version >= 3.6.0 < 3.7.
First, install the dependencies with pip install -r requirements.txt
.
- If running Avrae in unsharded+unsupervised mode (recommended for testing), you can just run
python dbot.py test
. - If running Avrae in sharded+unsupervised mode, launch each shard with
SHARDS=[NUM_SHARDS] python dbot.py test -s [SHARD_ID]
. - If running Avrae in sharded+supervised mode, run
SHARDS=[NUM_SHARDS] python overseer.py test 0 [NUM_SHARDS-1]
.