All Projects → avrae → Avrae

avrae / Avrae

Licence: gpl-3.0
A Discord bot to streamline running D&D 5e.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Avrae

Javacord
An easy to use multithreaded library for creating Discord bots in Java.
Stars: ✭ 368 (+70.37%)
Mutual labels:  discord-bot, hacktoberfest
Promcord
📊 Analyze your entire discord guild in grafana using prometheus. Message, User, Game and Voice statistics...
Stars: ✭ 39 (-81.94%)
Mutual labels:  discord-bot, hacktoberfest
Bot
The community bot for the Python Discord community
Stars: ✭ 460 (+112.96%)
Mutual labels:  discord-bot, hacktoberfest
Event Bot
📣 Discord Bot to make announcements about upcoming sessions for the Fellows using Google Calendar and Calendly
Stars: ✭ 21 (-90.28%)
Mutual labels:  discord-bot, hacktoberfest
Sir Lancebot
A Discord bot started as a community project for Hacktoberfest 2018, later evolved to an introductory project for aspiring new developers starting out with open source development.
Stars: ✭ 105 (-51.39%)
Mutual labels:  discord-bot, hacktoberfest
Discord bot.py
🍺 A simple discord bot that helps you getting started within discord.py
Stars: ✭ 313 (+44.91%)
Mutual labels:  discord-bot, hacktoberfest
Ninjabotcore
C# Discord Bot Created Using .Net Core
Stars: ✭ 34 (-84.26%)
Mutual labels:  discord-bot, hacktoberfest
Switchblade
The open source Discord bot that solves all of your problems.
Stars: ✭ 285 (+31.94%)
Mutual labels:  discord-bot, hacktoberfest
Pengubot
Official PenguBot GitHub Repository
Stars: ✭ 98 (-54.63%)
Mutual labels:  discord-bot, hacktoberfest
Bot
A Discord bot for all your needs. With memes, utilities, moderation & more, Fire is the only bot you'll need.
Stars: ✭ 79 (-63.43%)
Mutual labels:  discord-bot, hacktoberfest
Community Bot
The bot used on the TypeScript Community discord server
Stars: ✭ 46 (-78.7%)
Mutual labels:  discord-bot, hacktoberfest
Dtel
Telephone roleplay bot on Discord
Stars: ✭ 108 (-50%)
Mutual labels:  discord-bot, hacktoberfest
Cyberdisc Bot
The bot for the Cyber Discovery Community Discord Server!
Stars: ✭ 108 (-50%)
Mutual labels:  discord-bot, hacktoberfest
Discord.js
discord.js is a powerful Node.js module that allows you to easily interact with the Discord API.
Stars: ✭ 16,432 (+7507.41%)
Mutual labels:  discord-bot, hacktoberfest
Symfony Flex Backend
Symfony Flex REST API template project
Stars: ✭ 214 (-0.93%)
Mutual labels:  hacktoberfest
Awesome Learning
Awesome Learning - Learn JavaScript and Front-End Fundamentals at your own pace
Stars: ✭ 216 (+0%)
Mutual labels:  hacktoberfest
Companies Using R
A Curated list of R uses in entreprise
Stars: ✭ 214 (-0.93%)
Mutual labels:  hacktoberfest
Elasticsearch Comrade
Elasticsearch admin panel built for ops and monitoring
Stars: ✭ 214 (-0.93%)
Mutual labels:  hacktoberfest
Awesome Ansible
Awesome Ansible List
Stars: ✭ 215 (-0.46%)
Mutual labels:  hacktoberfest
Awesome Live Coding Streams
Stars: ✭ 216 (+0%)
Mutual labels:  hacktoberfest

Avrae Discord Bot

Avrae Website

Build Status Codacy Badge

Avrae is a Discord bot designed to help you and your friends play D&D online.

You can join the Avrae Development Discord here, and invite Avrae to your own Discord server here!

Key Features

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.

Initiative Tracking

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.

Moddability

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!

Check out the docs and the Alias Workshop!

Contributing

How to run Avrae locally

Using Docker (Recommended)

Check out docker/readme.md.

Building Manually

OS Requirements

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.

Dependencies

Redis

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.

MongoDB

You will also need to run a MongoDB instance to serve as Avrae's database.

Python

Avrae requires Python >= 3.8.0.

Install the dependencies with pip install -r requirements.txt.

Environment Variables

These are the required/recommended environment variables for local dev.

  • ENVIRONMENT - "development" for development
  • TOKEN - a valid Discord bot token
  • DISCORD_OWNER_USER_ID - your Discord user ID
  • MONGO_URL - a MongoDB connection string (defaults to mongodb://localhost:27017)
  • REDIS_URL - a Redis connection string (defaults to redis://redis:6379/0)
  • 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
Running
  • If running Avrae in unsharded mode (recommended for testing), run python dbot.py test.
  • If running Avrae in sharded mode, run python dbot.py.

Testing

To test Avrae, run these commands:

docker-compose -f docker-compose.ci.yml -p avrae build
docker-compose -f docker-compose.ci.yml -p avrae up -d
docker logs -f avrae_tests_1

This should initialize an ephemeral database to run command unit tests in. You should set the DICECLOUD_USER, DICECLOUD_PASS, DICECLOUD_TOKEN, and GOOGLE_SERVICE_ACCOUNT env vars to their correct values.

Misc

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 "avrae.io")
  • DDB_AUTH_ISSUER - JWT issuer (default "dndbeyond.com")
  • 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)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].