* allow for serving aliases * Fix some ugly whitespaces * Fix serving aliases This commit makes the error and help message more clear and adds a test for it. * Fix problems I fixed the problems Zhu pointed out and added the confirmation for subscribing to workshop collections. Also changed the flow of logic to make the declaration of variables more clear. Sadly I don't know a way for me to test the serving of workshop collections at the time so this part has not been tested * chore: add overwrite check, minor cleanup Co-authored-by: Andrew Zhu <email@example.com>
|6 days ago|
|.github||1 month ago|
|aliasing||6 days ago|
|cogs5e||7 days ago|
|cogsmisc||6 days ago|
|ddb||2 weeks ago|
|docker||2 months ago|
|docs||3 weeks ago|
|gamedata||1 month ago|
|migrators||6 months ago|
|notes||1 year ago|
|res||1 year ago|
|scripts||4 weeks ago|
|test||1 month ago|
|tests||6 days ago|
|ui||3 weeks ago|
|utils||7 days ago|
|.bandit||3 years ago|
|.dockerignore||2 years ago|
|.gitattributes||1 year ago|
|.gitignore||9 months ago|
|.pylintrc||3 years ago|
|.readthedocs.yml||2 years ago|
|CODE_OF_CONDUCT.md||3 years ago|
|Dockerfile||5 months ago|
|Dockerfile.ci||5 months ago|
|LICENSE||3 years ago|
|README.md||5 months ago|
|SECURITY.md||7 months ago|
|SUPPORTERS.md||3 years ago|
|dbot.py||1 month ago|
|docker-compose.ci.yml||5 months ago|
|docker-compose.yml||3 years ago|
|requirements.txt||1 month ago|
Avrae Discord Bot
Avrae is a Discord bot designed to help you and your friends play D&D online.
Advanced Dice Roller
With a custom dice parser, Avrae is one of the most advanced dice rollers on Discord, capable of supporting pretty much every type of roll needed to play D&D. Advantage, disadvantage, and crits are built in, you can keep, drop, or reroll dice as needed, dice can explode, and dice can be bounded.
Want to use the dice roller in your own code? Check out the code!
Character Sheet Integration
Avrae can read character sheets from D&D Beyond, Dicecloud, or a Google Sheet, automatically generating macros to roll attacks, ability checks, and saving throws. A player can then simply use a command to make a check, save, attack, or cast, and all necessary rolls will be resolved automatically.
The initiative tracker is a fast way to track combat in a text channel. It supports automatic combatant sorting, HP, AC, resistance, and status effect tracking, and integration with the character sheet manager and 5e content to further streamline combat.
Have a feature in mind that isn't already in Avrae? Avrae provides a fully-featured modding API to write your own commands, and a place to share them with the community!
How to run Avrae locally
Using Docker (Recommended)
Check out docker/readme.md.
Avrae is built on Ubuntu, but should be fully compatible with any UNIX-based system. It is possible to run Avrae on Windows, but is not recommended.
Creating Support Files
You'll need to create a Google Drive Service Account. You can find instructions on how to do this here.
Follow steps 1-3 in the Signed Credentials portion. Rename the JSON
avrae-google.json and put it in the project root.
You will need to run a Redis instance to serve as a high-performance cache. Download Redis and run a redis server locally before launching Avrae.
You will also need to run a MongoDB instance to serve as Avrae's database.
Avrae requires Python >= 3.8.0.
Install the dependencies with
pip install -r requirements.txt.
These are the required/recommended environment variables for local dev.
ENVIRONMENT- "development" for development
DISCORD_BOT_TOKEN- a valid Discord bot token
DISCORD_OWNER_USER_ID- your Discord user ID
MONGO_URL- a MongoDB connection string (defaults to
REDIS_URL- a Redis connection string (defaults to
NO_DICECLOUD- if set, disables dicecloud connection/importing, otherwise:
DICECLOUD_USER- a dicecloud username
DICECLOUD_PASS- the password for the dicecloud user
DICECLOUD_TOKEN- a dicecloud API token
- If running Avrae in unsharded mode (recommended for testing), run
python dbot.py test.
- If running Avrae in sharded mode, run
To test Avrae, run these commands:
docker-compose -f docker-compose.ci.yml -p avrae up -d --build docker logs -f avrae_tests_1
This should initialize an ephemeral database to run command unit tests in.
You should set the
GOOGLE_SERVICE_ACCOUNT env vars to their correct values.
Once tests complete, it is recommended to clean up the containers with
Env vars required to deploy to production - not required for local dev:
NUM_CLUSTERS- equal to the number of ECS tasks running Avrae
DDB_AUTH_SECRET- JWT signing secret for DDB auth request
DDB_AUTH_WATERDEEP_SECRET- JWT signing secret for DDB auth response
DDB_AUTH_AUDIENCE- JWT audience (default
DDB_AUTH_ISSUER- JWT issuer (default
DDB_AUTH_EXPIRY_SECONDS- JWT expiry (default 5m)
DDB_AUTH_SERVICE_URL- DDB Auth Service base URL
DYNAMO_REGION- AWS region for Entitlements DB
DYNAMO_USER_TABLE- Table name for Entitlements user table
DYNAMO_ENTITY_TABLE- Table name for Entitlements entity table
AWS_ACCESS_KEY_ID- AWS Access Key to access Dynamo
AWS_SECRET_ACCESS_KEY- AWS Secret Access Key
LAUNCHDARKLY_SDK_KEY- LaunchDarkly SDK Key
CHARACTER_COMPUTATION_ENDPOINT- HTTP endpoint for DDB character computation call
Other env vars:
NUM_SHARDS- explicitly set the number of shards to run
GIT_COMMIT_SHA- should be set in Travis (required for prod)