Giter VIP home page Giter VIP logo

avrae.io's Introduction

Avrae Discord Bot

Avrae Website

Build Status

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

There are a few options to run Avrae locally. Docker is easier to get started with with less managment of dependencies, but slower and more resource-intensive.

Using Docker (Recommended)

Check out README-docker.md.

Building Manually

Dependencies

Services/OS

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-7 in the For Bots: Using Service Account portion. Rename the JSON avrae-google.json and put it in the project root.

Python Packages

We recommend using a Virtual Environment for Avrae development to prevent package installs from polluting the global Python install. You can create and active a virtual environment by running:

$ python3 --version  # to ensure that you are creating a venv from the right python version
$ python3 -m venv venv
$ source venv/bin/activate
# if the venv was set up correctly, you should see (venv) before your username in the terminal
# run these commands to check the installed version and path
(venv) $ python --version
Python 3.X.X
(venv) $ pip --version
pip X.Y.Z from (project root)/venv/lib/python3.X/site-packages/pip (python 3.X)

To install the dependencies, run:

(venv) $ pip install -r requirements.txt

Optional - You can install the avrae-automation-common and draconic dependencies from your local filesystem rather than pip+git, to make working on depended libraries in parallel easier:

(venv) $ pip install /path/to/automation-common -e
(venv) $ pip install /path/to/draconic -e

Any changes to the library will immediately be picked up in avrae without requiring a reinstall of the library.

Environment Variables

Name Description Used For Set By (dev) Set By (prod) Required?
DISCORD_BOT_TOKEN The bot token used to authenticate to the Discord API. See "Discord Bot Token", below. Connecting to the Discord API you AWS Secrets Manager via Terraform yes
TESTING Whether the bot is running in a dev environment. See "Testing Env Var", below. Also set if test arg supplied in CLI. Enabling certain debug logs you N/A no
ENVIRONMENT The environment the bot is running in. Defaults to development if TESTING is set, or production otherwise. Logs (e.g. Sentry) set to development Terraform yes
GIT_COMMIT_SHA The commit SHA of the running deploy. Cluster coordination key N/A Docker via GH Actions prod only
NUM_CLUSTERS The number of clusters (ECS tasks) Avrae is running across. Defaults to 1. Cluster coordination N/A Terraform prod only
NUM_SHARDS An explicit override for the number of shards to run across all shards. Defaults to dynamic value from Discord. Cluster coordination N/A Terraform (nightly/stg) no
RELOAD_INTERVAL An interval to automatically reload gamedata at, in seconds. Defaults to 0. This should be set to 0. Loading gamedata N/A N/A no
ECS_CONTAINER_METADATA_URI https://docs.aws.amazon.com/AmazonECS/latest/userguide/task-metadata-endpoint-v3-fargate.html Cluster coordination N/A AWS Fargate prod only
MONSTER_TOKEN_ENDPOINT The base URL that monster token paths defined in monster gamedata are relative to. !token N/A Terraform prod only
DDB_MEDIA_S3_BUCKET_DOMAIN The S3 bucket domain for DDB media assets, such as character avatars. !token N/A Terraform prod only
DRACONIC_SIGNATURE_SECRET The secret used to sign signatures in the Draconic API's signature() function. Defaults to secret. Aliasing optional AWS Secrets Manager via Terraform prod only
MONGO_URL The connection URL used to connect to MongoDB. Defaults to mongodb://localhost:27017. Connecting to database you AWS Secrets Manager via Terraform yes
MONGODB_DB_NAME The name of the database in Mongo to use. Defaults to avrae. Connecting to database optional Terraform no
REDIS_URL The connection URL used to connect to Redis. Defaults to redis://localhost:6379/0. Connecting to database you Terraform yes
REDIS_DB_NUM The database number to use in Redis. Defaults to 0. Connecting to database optional Terraform no
DEFAULT_PREFIX The default command prefix. Defaults to !. Running commands optional Terraform no
SENTRY_DSN The Sentry DSN used to send exceptions to Sentry. If not set, no errors are sent to Sentry. Monitoring optional AWS Secrets Manager via Terraform prod only
DD_SERVICE The name of the service, used for DataDog. If not set, disables DataDog tracing and profiling. Monitoring optional Terraform prod only
NO_DICECLOUD If set, disables Dicecloud v1 connections in the running bot. Defaults to true if DICECLOUD_USER is not set. CI optional N/A no
DICECLOUD_USER The Dicecloud v1 username of the bot account. Sheet Import you Terraform yes
DICECLOUD_PASS The Dicecloud v1 password of the bot account. Sheet Import you AWS Secrets Manager via Terraform yes
DICECLOUD_TOKEN The Dicecloud v1 API key of the bot account. Sheet Import you AWS Secrets Manager via Terraform yes
NO_DICECLOUDV2 If set, disables Dicecloud v2 connections in the running bot. CI optional N/A no
DCV2_NO_AUTH If set, connects to Dicecloud v2 without any form of authentication. As such, any imported sheets must be public. Defaults to true if DICECLOUDV2_USER is not set. CI optional N/A no
DICECLOUDV2_USER The Dicecloud v2 username of the bot account. Sheet Import you Terraform yes
DICECLOUDV2_PASS The Dicecloud v2 password of the bot account. Sheet Import you AWS Secrets Manager via Terraform yes
GOOGLE_SERVICE_ACCOUNT The contents of the Google Drive Service Account JSON key file. Defaults to a file named avrae-google.json if not set. Sheet Import you AWS Secrets Manager via Terraform yes
DDB_AUTH_SECRET The secret used to sign JWT claims to exchange Discord user info for a STT via the Auth Service. Entitlements 1Password AWS Secrets Manager via Terraform DDB team only
DDB_AUTH_WATERDEEP_SECRET The secret used to verify JWTs returned from the Auth Service. Entitlements 1Password AWS Secrets Manager via Terraform DDB team only
DDB_AUTH_AUDIENCE Override a verification for the aud claim of an Auth Service JWT. Defaults to avrae.io. Entitlements N/A N/A no
DDB_AUTH_ISSUER Override a verification for the iss claim of an Auth Service JWT. Defaults to dndbeyond.com. Entitlements N/A N/A no
DDB_AUTH_EXPIRY_SECONDS Override a JWT's lifetime for the Discord -> STT exchange. Defaults to 5 minutes (300). Entitlements N/A N/A no
DDB_AUTH_SERVICE_URL The base URL for requests to the DDB Auth Service. If not set, all entitlements code is disabled. Entitlements 1Password Terraform DDB team only
DYNAMO_REGION The AWS region to search for resources in. This controls more than Dynamo. Defaults to us-east-1. Entitlements 1Password Terraform DDB team only
DYNAMO_ENTITLEMENTS_TABLE The name of the DynamoDB table to query for entitlements data. Defaults to entitlements-live. Entitlements 1Password Terraform DDB team only
AWS_ACCESS_KEY_ID The AWS Access Key ID to connect to AWS resources. Entitlements 1Password AWS Fargate DDB team only
AWS_SECRET_ACCESS_KEY The AWS Secret Access Key to connect to AWS resources. Entitlements 1Password AWS Fargate DDB team only
NLP_KINESIS_DELIVERY_STREAM The name of the AWK Kinesis Firehose delivery stream used to ingest NLP events. UPenn NLP N/A Terraform no
CHARACTER_COMPUTATION_ENDPOINT The API endpoint used to call the Character Computation lambda. Sheet Import you Terraform DDB team only
DDB_WATERDEEP_URL The base URL for requests to the Waterdeep monoloth. Defaults to https://www.dndbeyond.com. Campaign Link 1Password Terraform no
DDB_GAMELOG_ENDPOINT The endpoint used to post Game Log events to the Game Log. Defaults to https://game-log-rest-live.dndbeyond.com/v1. Campaign Link 1Password Terraform no
DDB_CHARACTER_SERVICE_URL The base URL for requests to the Character Service. Defaults to https://character-service.dndbeyond.com/character/v5. Campaign Link 1Password Terraform no
DDB_SCDS_SERVICE_URL The base URL for requests to the Simple Character Data Store. Defaults to https://character-service-scds.dndbeyond.com/v2. Campaign Link 1Password Terraform no
LAUNCHDARKLY_SDK_KEY The LaunchDarkly SDK Key. Feature Flags 1Password AWS Secrets Manager via Terraform DDB team only
DBL_TOKEN The Discord Bot List API token. Updating server count N/A AWS Secrets Manager via Terraform no

Discord Bot Token

To create a Discord bot user, go to the Discord Developer Portal.

  • New Application, give it a cool name, Create.
  • Bot > Add Bot.
  • (Optional but recommended): Switch off Public Bot so only you can add this bot to servers.
  • Scroll down to Privileged Gateway Intents, and enable the switches to the right of Server Members Intent and Message Content Intent.
  • Click to Reveal Token, this is your DISCORD_BOT_TOKEN.

Testing Env Var

The TESTING env var, if present, enables/disables the following:

  • Dicecloud Client: Meteor debug logs enabled
  • cogs.publicity: Discord Bot List update disabled
  • config: ENVIRONMENT set to development by default if not manually set
  • Discord Application Commands: enables command sync debug logs and command testing guilds

Running

(venv) $ python dbot.py test
VSCode launch.json Template
  {
    "version": "0.2.0",
    "configurations": [
      {
        "name": "Run Avrae",
        "type": "python",
        "request": "launch",
        "program": "dbot.py",
        "console": "integratedTerminal",
        "env": {
          "DISCORD_BOT_TOKEN":" ",
          "DISCORD_OWNER_USER_ID": " ",
          "DICECLOUD_USER": " ",
          "DICECLOUD_PASS": " ",
          "DICECLOUD_TOKEN": " ",
          "DICECLOUDV2_USER": " ",
          "DICECLOUDV2_PASS": " ",
          "MONGO_URL": " ",
          "REDIS_URL": " ",
          "ENVIRONMENT": " ",
          "DDB_AUTH_SECRET": " ",
          "DYNAMO_REGION": " ",
          "DYNAMO_ENTITLEMENTS_TABLE": " ",
          "DDB_AUTH_SERVICE_URL": " ",
          "AWS_ACCESS_KEY_ID": " ",
          "AWS_SECRET_ACCESS_KEY": " ",
          "DDB_AUTH_WATERDEEP_SECRET": " ",
          "CHARACTER_COMPUTATION_ENDPOINT": " ",
          "DDB_WATERDEEP_URL": " ",
          "DDB_GAMELOG_ENDPOINT": " ",
          "DDB_CHARACTER_SERVICE_URL": " ",
          "DDB_SCDS_SERVICE_URL": " ",
          "LAUNCHDARKLY_SDK_KEY": " "
        }
      }
    ]
  }

Testing

This repo contains a pytest test suite that mocks a number of interactions between Avrae and the Discord API, and runs end-to-end tests between user input, bot output, and database state.

These tests can be found in tests/.

Dependencies

(venv) $ pip install -r tests/requirements.txt

Running

Tests can either be run using Docker Compose, or manually.

Docker

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

Once tests complete, it is recommended to clean up the containers with docker-compose down.

Manually

(venv) $ TESTING=1 pytest tests/

In either case, you should set NO_DICECLOUD=1.

Docs

Avrae uses Sphinx to generate documentation for the Aliasing API and Automation Engine. The source for this documentation can be found in docs/.

By default, each push to master will trigger a new build of the docs at https://avrae.readthedocs.io/en/latest/.

You can also build the docs manually:

# install dependencies
(venv) $ cd docs
(venv) $ pip install -r requirements.txt
# build and open browser
(venv) $ make preview
# build
(venv) $ make html

Committing, Formatting, and Linting

Avrae uses Black to format and lint its Python code. Black is automatically run on every commit via pre-commit hook, and takes its configuration options from the pyproject.toml file.

The pre-commit hook is installed by by running pre-commit install from the repo root. The hook's configuration is governed by the .pre-commit-config.yaml file.

Dependencies

In order to run pre-commit or black, they must be installed. These dependencies are contained within the test/requirements.txt file, and can be installed like so:

(venv) $ pip install -r test/requirements.txt

avrae.io's People

Contributors

cfi2017 avatar chrishamilton91 avatar croebh avatar dependabot-preview[bot] avatar dependabot[bot] avatar imgbotapp avatar seanstoves avatar storytellermahkasad avatar zhudotexe avatar zmckinnon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

avrae.io's Issues

WEB-033 When making homebrew spells on the Avrae dashboard there should be an additional "Other" option for the school of magic that you can input your own school for homebrew spells

Feature Request: When making homebrew spells on the Avrae dashboard there should be an additional "Other" option for the school of magic that you can input your own school for homebrew spells
Who would use it? People making homebrew spells with a new school of magic
How would it work? Just adding a new option that says "Other" that let's you type whatever you want in the field
Why should this be added? To give the right school of magic for homebrew spells so they don't have to input it in a different place

  • RiptideMatt#7191

Upvote - Dusk-Argentum#6530

Upvote - silverbass#2407

Upvote - RiptideMatt#7191

Upvote - NyxFacade#0329

Upvote - Infinidoge#1337

Upvote - TaterZ_OG#7587

Upvote - Loading...#8493

Upvote - Zekkle#9787

Upvote - Drevlin#1146

Upvote - TidusIV#2328

Votes: +10 / -0

WEB-055 On the commands lookup site on avrae.io, the argument `-mi` for the `!init attack` command is described as

What is the bug?: On the commands lookup site on avrae.io, the argument -mi for the !init attack command is described as

-mi - Minimum value on the attack roll.
However, when used the arguments sets a minimum for the damage roll, not the attack roll. I assume that that is intended and it's the info on the site that's wrong, if it's the other way around this would probably be something for <#336792750773239809> instead.
Severity: Trivial-Low
Steps to reproduce: Not really a bug but just wrong information. Running !a <any attack> -mi <value> should illustrate the issue.
Browser: Firefox 75.0
System: macOS 10.13.6
Context: avrae.io commands lookup page

  • MyrddinEmrys#0884
    Verification: 0

WEB-025 Character bios have scrollbars when not needed

What is the bug?: Character bios have scrollbars when not needed
Severity: Trivial
Steps to reproduce: Open dashboard, have a character, hover over image to see unusable scrollbars.
Browser: Chrome 74.0.3729.169 (Official Build) (64-bit)
System: Windows 7
Context: Bug happens on Avrae Dashboard

  • Caellorn#0718

Can Reproduce - Croebh#5603

Verification: 1

WEB-031 Homebrew list animates very slowly/laggily in Angular 8

Describe the bug
In large homebrew tomes/packs, animations (changing tabs, opening/closing accordion) animate at a low FPS.

Severity
Low

Context
/dashboard/homebrew/[spells|items]/*

To Reproduce
Steps to reproduce the behavior:

  1. Open a large pack/tome (tested on a 50-spell tome)
  2. Run animations

Browser
Chrome 76.0.3809.100

System
macOS 10.14.1

WEB-024 White text blends into light mode for transparent character backgrounds

What is the bug?: White text blends into light mode for transparent character backgrounds
Severity: Trivial
Steps to reproduce: Open dashboard, turn lightmode on, have a character image with transparent background, attempt to read their bio
Browser: 74.0.3729.169 (Official Build) (64-bit)
System: Windows 7
Context: Bug happens on Avrae Dashboard

  • Caellorn#0718
    Verification: 0

WEB-047 When importing attacks from JSON on the avrae dashboard, it returns an error. `Invalid attack (0): invalid automation`. Additionally, if you try and edit an attack you made, it fails to save the attack

What is the bug?: When importing attacks from JSON on the avrae dashboard, it returns an error. Invalid attack (0): invalid automation. Additionally, if you try and edit an attack you made, it fails to save the attack.
Severity: medium
Steps to reproduce: try and import an attack via JSON, even one you just made, and try and edit an existing attack.
Context: Attack automation on the Avrae dashboard

  • RiptideMatt#7191
    Verification: -1

WEB-052 Add notification on how to activate homebrew to first-time users (repost)

Feature Request: A notification modal on new packs/tomes
Who would use it? Users creating their first pack/tome, primarily
What part of the bot? Avrae.io
How would it work? It would inform users, with a modal so they have to atleast glance on it before continuing, that they need to !tome/pack NAME to activate the homebrew before they'll be able to utilize it in discord
Why should this be added? Everyday we get atleast one person wondering why they can't cast their homebrew spells, and this is the case for almost all of them

Originally posted by Croebh#5603, reposted because Taine freaked out

Upvote - Zekl#9787

Upvote - ZanMS#4517

Upvote - RestrictedCrocodile#4056

Votes: +3 / -0

WEB-022 Automation editor for spells doesn't allow for the position targetting setting to be used correctly.

What is the bug?: Automation editor for spells doesn't allow for the position targetting setting to be used correctly.
Severity: Medium
Steps to reproduce: Create a spell that targets 2 or more individuals, and add automation using the website. Cast the spell in combat, and it will target only the first.
Browser: Chrome 74.0.3729.131
System: Windows 7
Context: Position target feature of Avrae dashboard homebrew spell automation always uses 1 as the value even when another is given.

  • Caellorn#0718
    Verification: 0

WEB-032 GVAR folders on the dashboard

Feature Request: GVAR folders on the dashboard
Who would use it? People that make extensive use of GVARs and have a ton of big fat fatty ones taking up a bunch of space on their dashboard and want to keep things a little more organized.
What part of the bot? Website Dashboard
How would it work? Collapsible folders with customizable names like Github would probably do the trick.
Why should this be added? It can be hard to find the gvar you want in a long list of them, and it can be annoying to keep track of which ones are for which aliases, etc.

  • Marcus#3244

Upvote - Zekkle#9787

Upvote - Marcus#3244

Note - Marcus#3244

The ability to assign "nicknames" to GVARs would also be a great way to help keep things organized and make it easier to find and identify the GVAR you need to work with.

Upvote - R to the Ichie#6193

Upvote - Croebh#5603

Upvote - Infinidoge#1337

Upvote - Vampire Kitten#7118

Upvote - RocStar#6873

Upvote - joshjosh100#6969

Votes: +8 / -0

WEB-050 The dashboard is dashed. Not loading characters, tomes, packs, gvars, or anything from the looks of it

What is the bug?: The dashboard is dashed. Not loading characters, tomes, packs, gvars, or anything from the looks of it.
Severity: High (a broken feature)
Steps to reproduce: Try to load the dashboard.
Browser: Version 80.0.3987.149 (Official Build) (64-bit) with reports from others as well
System: Windows 7
Context: avrae.io/dashboard and all subpages.

  • Derixyleth#0636

Can Reproduce - Kortar#9227

Verification: 1

WEB-029 https://i.imgur.com/XjBzoWE.png I believe the highlighted text should read "add" instead of "dice"

What is the bug?: https://i.imgur.com/XjBzoWE.png I believe the highlighted text should read "add" instead of "dice"
Severity: Trivial
Steps to reproduce: Visit https://avrae.io/cheatsheets/aliasing
Context: The command run that the bug occurred in and any choice trees. If the bug is in a sheet import, attach the sheet.
Browser: Chrome 76.0.3809.100
System: Windows 10 Home

  • Connor#9897
    Verification: 0

WEB-053 Unable to add automation fields to some spells (reason unclear?)

What is the bug? Unable to add automation fields to some spells (reason unclear?)
Severity: Low/Medium
Steps to Reproduce: Unclear, but example json included later.
Context: Homebrew Spell Automation
System: Windows 7, Google Chrome Version 80.0.3987.163 (Official Build) (64-bit)

Example Json

{"name":"Comprehend Languages (S)","level":1,"school":"D","casttime":"1 action","range":"Self","duration":"1 hour","description":"For the duration, you understand the literal meaning of any spoken language that you hear. You also understand any written language that you see, but you must be touching the surface on which the words are written. It takes about 1 minute to read one page of text.\nThis spell doesn't decode secret messages in a text or a glyph, such as an arcane sigil, that isn't part of a written language.","classes":"Bard, Sorcerer, Warlock, Wizard","subclasses":"","ritual":true,"higherlevels":"If you cast this spell using a spell slot of 3rd level or higher, the duration is 8 hour. If you use a spell slot of 5th level or higher, the duration is 24 hours. Using a spell slot of 3rd level or higher grants a duration that doesn't require concentration.","concentration":false,"automation":null,"components":{"verbal":true,"somatic":true,"material":"a pinch of soot and salt"}}
  • silverbass#2407
    Verification: 0

WEB-030 Move the "You have unsaved changes!" dialogue box from the pack and tome editor from the bottom to the top. Currently, it blocks the "Create new Spell", "Import from Json", and "Create from Existing" buttons, requiring you to save and wait for the dialogue boxes to disappear

Feature Request: Move the "You have unsaved changes!" dialogue box from the pack and tome editor from the bottom to the top. Currently, it blocks the "Create new Spell", "Import from Json", and "Create from Existing" buttons, requiring you to save and wait for the dialogue boxes to disappear.
Who would use it? Anyone who makes tweaks or imports spells in rapid succession.
What part of the website? Homebrew
How would it work? The box would move to not block important buttons.
Why should this be added? All that time waiting adds up

  • silverbass#2407

Upvote - R to the Ichie#6193

Upvote - Marcus#3244

Upvote - Infinidoge#1337

Upvote - Zekkle#9787

Upvote - joshjosh100#8782

Votes: +5 / -0

WEB-034 Reorder the Components and Duration sections in tome editor, so that it matches the way the spell displays

Feature Request: Reorder the Components and Duration sections in tome editor, so that it matches the way the spell displays.
Who would use it? People making homebrew spells
How would it work? Field rearrangement
Why should this be added? Puts it in the same order as the spell displays, which makes it easier to enter in when reading the spell and entering it into Avrae

I've thrown together a quick example of how it might look: https://media.discordapp.net/attachments/434166145235419136/629513912563531777/unknown.png

  • silverbass#2407

Upvote - Derixyleth#0636

Upvote - Infinidoge#1337

Upvote - R to the Ichie#6193

Upvote - Zekkle#9787

Upvote - Marcus#3244

Upvote - silverbass#2407

Upvote - RiptideMatt#7191

Votes: +7 / -0

WEB-049 Allow portrait and description overrides via `!portrait update` and `!desc update` to show on the Avrae dashboard character list

Feature Request: Allow portrait and description overrides via !portrait update and !desc update to show on the Avrae dashboard character list.
Who would use it? Anyone using desc/portrait overrdes (mainly gsheet and beyond users)
How would it work? Send the data from the Avrae sheet to the Dashboard instead of the original sheet.
Why should this be added? Consistency mainly.

  • RiptideMatt#7191

Upvote - Croebh#5603

Upvote - RiptideMatt#7191

Upvote - R to the Ichie#6193

Upvote - RestrictedCrocodile#4056

Upvote - Brinjal#4037

Upvote - joshjosh100#6666

Upvote - Nitrogenocide#6033

Downvote - Bumblebee#4612

Votes: +7 / -1

WEB-023 Character images become massive when the window size becomes thin

What is the bug?: Character images become massive when the window size becomes thin
Severity: Trivial
Steps to reproduce: Open dashboard, have a character, decrease window width
Browser: 74.0.3729.169 (Official Build) (64-bit)
System: Windows 7
Context: Bug happens on Avrae Dashboard

  • Caellorn#0718
    Verification: 0

WEB-051 `resists` is not listed in the documentation for SimpleCombatant

What is the bug?: resists is not listed in the documentation for SimpleCombatant
Severity: Trivial/Low
Steps to reproduce: Visit https://avrae.readthedocs.io/en/latest/aliasing/api.html#simplecombat, see resists doesn't exist as an attribute
Context: Reading the documentation on how to get the resistances of a combatant
Browser: Firefox 74.0 (64-bit) (However likely browser agnostic)
System: Windows 10 Pro Version 10.0.18362 Build 18362

  • Infinidoge#1337
    Verification: 0

WEB-038 A way to have an additional target in attack and spell automation for the `To Hit` section

Feature Request: A way to have an additional target in attack and spell automation for the To Hit section.
Who would use it? Anyone using attacks or spells that heals you back when you hit with the attack
How would it work? Just adding the target option when in the To Hit menu for an attack/spell
Why should this be added? So that it would be easier to automate spells and attacks you may have that heal half back to you on a hit.

  • Riptidecord#7191

Upvote - Riptidecord#7191

Upvote - Mysterion#8664

Upvote - Infinidoge#1337

Upvote - 461743487499632652

Upvote - Dungeon Master Nick#1476

Upvote - Arenlor#0567

Upvote - joshjosh100#2597

Upvote - bobschnitzenheimer#2159

Votes: +8 / -0

AFR-510 A notification modal on new packs/tomes

Feature Request: A notification modal on new packs/tomes
Who would use it? Users creating their first pack/tome, primarily
What part of the bot? Avrae.io
How would it work? It would inform users, with a modal so they have to atleast glance on it before continuing, that they need to !tome/pack NAME to activate the homebrew before they'll be able to utilize it in discord
Why should this be added? Everyday we get atleast one person wondering why they can't cast their homebrew spells, and this is the case for almost all of them

  • Croebh#5603

Upvote - RiptideMatt#7191

Upvote - silverbass#2407

Upvote - Derixyleth#0636

Upvote - spamandtuna#9657

Upvote - R to the Ichie#6193

Upvote - Lightningcoma06#9969

Upvote - Kortar#9227

Upvote - Zekl#9787

Upvote - Miyagiyoda#4116

Upvote - Bumblebee#4612

Upvote - SlideXII#3580

Upvote - RestrictedCrocodile#4056

Votes: +12 / -0

WEB-037 adding a way to scale damage in the attack and save automation on the dashboard

Feature Request: adding a way to scale damage in the attack and save automation on the dashboard
Who would use it? anyone making custom attacks that scale like monk dice or cantrips
How would it work? adding either a way similar to how usave works with {scale} and have a new tab that stores the scaling numbers, or buttons to click like the โ€œscale like a cantripโ€ one with the spell automation side
Why should this be added? to better add attacks and saves with monk die scaling or other sorts of scaling

  • Riptidecord#7191

Upvote - Riptidecord#7191

Upvote - Zekl#7118

Upvote - Infinidoge#1337

Upvote - R to the Ichie#6193

Upvote - Kiroth#1446

Upvote - 184982889035857921

Upvote - bobschnitzenheimer#2159

Votes: +7 / -0

WEB-062 The Dashboard shuffles gvars

What is the bug? The Dashboard shuffles gvars
Severity: Low (inconvenience)
Steps to reproduce: Create several gvars, observe that they aren't alphanumerically sorted on the website and the dashboard often adjusts the order randomly when editing a gvar.
Browser: Multiple
System: Multiple
Context: The gvar Dashboard's sorting method.

  • Derixyleth#0636

Can Reproduce - Meandmeee97#6797

Verification: 2

WEB-045 These spells are missing from the "Create From Existing" option in the Avrae Dashboard's Spell Tome Editor

What is the bug?: These spells are missing from the "Create From Existing" option in the Avrae Dashboard's Spell Tome Editor
Branding Smite
Hideous Laughter
Tiny Hut
Irresistible Dance
Magnificent Mansion
Spare the Dying
Heroe's Feast
Hunter's Mark
Floating Disk
Acid Arrow
Arcanist's Magic Aura
Black Tentacles
Faithful Hound
Private Sanctum
Resilient Sphere
Secret Chest
Telepathic Bond
Instant Summons
Arcane Sword
(If I missed any just add a ~note, and I apologize for typos or duplicates)
Severity: Medium
Steps to Reproduce: Visit the website to try and create a spell with one of these
Context: Creating spells on the avrae website

  • RiptideMatt#7191
    Verification: 0

WEB-064 Make the Server Listing Editable

Feature Request: Make the Server Listing Editable
Who would use it? Anyone using the Workshop
How would it work? A checkbox system to choose which servers show in the Server dropdown.
Why should it be added? Reduce clutter and noise when interacting with the amazing Collection System

  • Mahkasad#5996

Upvote - R to the Ichie#6193

Note - R to the Ichie#6193

It would be nice if it only showed only those servers that you have permission to edit, if such a thing is even possible

Upvote - Spooky Riptidecord#7191

Upvote - Mahkasad#5996

Upvote - Tacky#8323

Upvote - Infinidoge#1337

Upvote - purplecharmanderz#6693

Upvote - Mobius#1442

Votes: +7 / -0

WEB-039 The ability to reorder items and spells in packs and tomes

Feature Request: The ability to reorder items and spells in packs and tomes
Who would use it? Homebrewers
What part of the bot? Pack and Tome
How would it work? Either click 'n dragging a spell/item to reorder, or having an up 'n down arrow listed when the spell is clicked on, maybe right above the name.
Why should it be added? Tomes and packs display spells and items in the order added, which really messes up organization if something gets added retroactively.

  • silverbass#2407

Upvote - silverbass#2407

Upvote - Teetengee#8785

Upvote - Derixyleth#0636

Upvote - R to the Ichie#6193

Upvote - Zekkle#9787

Upvote - RiptideMatt#7191

Upvote - Fantasy65#5747

Upvote - Drevlin#1146

Upvote - 621825552478634035

Upvote - joshjosh100#6969

Votes: +10 / -0

WEB-058 Tome and Pack editor preview to show proper field breaks

Feature Request: Tome and Pack editor preview to show proper field breaks
Who would use it: Homebrewers
How would it work: count characters when rendering the preview, and add the appropriate field breaks.
Why should this be added: More honest previews improves workflow.

  • silverbass#2407

Upvote - Derixyleth#0636

Upvote - silverbass#2407

Note - silverbass#2407

Example of such breaks: https://media.discordapp.net/attachments/513170363178287106/716409349970591864/image0.png

Upvote - R to the Ichie#6193

Upvote - RiptideMatt#7191

Upvote - Nerds and Dragons#2817

Upvote - Zekl#9787

Upvote - ๐ถ๐‘œ๐‘›๐‘“๐‘ข๐‘ ๐‘–๐‘œ๐‘›#4056

Upvote - Kortar#9227

Votes: +8 / -0

WEB-035 "Requires Attunement" checkbox and text field in pack editor, to match the way SRD items display in lookup

Feature Request: "Requires Attunement" checkbox and text field in pack editor, to match the way SRD items display in lookup.
Who would use it? People making homebrew items that require attunement
How would it work? New text field, default blank on existing tomes, that would display in a "Requires Attunement" field when looked up in avrae
Why should this be added? So that homebrew items are consistent in format with SRD ones.

I've thrown together a quick example of how it might look: https://cdn.discordapp.com/attachments/434166145235419136/629515135479971851/unknown.png

  • silverbass#2407

Upvote - Zekkle#9787

Upvote - Derixyleth#0636

Upvote - silverbass#2407

Upvote - Spooky RiptideMatt#7191

Upvote - R to the Ichie#6193

Upvote - Infinidoge#1337

Upvote - Drevlin#1146

Votes: +7 / -0

WEB-057 No `conc` check box for attack editor

What is the bug?: No conc check box for attack editor.
Severity: Medium-Low
Steps to Reprodcue: Use the Attack Editor to create an attack that creates an ieffect that requires concentration.
Browser: Chrome 81.0.4044.127 (Official Build) (64-bit)
System: Chrome OS 81.0.4044.127 (Official Build) (64-bit)
Context: Currently the only way to apply concentration to an ieffect made in the attack editor is to add "conc":"true" in the JSON manually. There should be a checkbox when you add an ieffect to add concentration.

  • R to the Ichie#6193
    Verification: 0

WEB-070 Have `Ctrl/Command+S` save the current code version

Feature Request: Have Ctrl/Command+S save the current code version
Who would use it? Aliasers
How would it work? https://michilehr.de/overwrite-cmds-and-ctrls-in-javascript/ for overriding, not sure how for the Monaco
Why should this be added? Improve workflow and UX

  • Croebh#5603

Upvote - Derixyleth#0636

Note - Croebh#5603

microsoft/monaco-editor#25 (comment)

Upvote - Nerds and Dragons#2817

Upvote - Croebh#5603

Upvote - alpha#1832

Upvote - Hopop#6751

Upvote - Lathaon#6649

Upvote - R to the Ichie#6193

Upvote - Infinidoge#1337

Upvote - Mobius#1442

Votes: +9 / -0

WEB-056 Make organization on the global variables page on the Avrae Dashboard easier

Feature Request: Make organization on the global variables page on the Avrae Dashboard easier.
Who would use it? Anyone using gvars
How would it work? Set them up similarly to how spells in a spell tome are organized. Have a drop down with a name that you can give the gvar so it is easily identifiable with the gvar address under it, then when you click on the drop down it shows the gvar in a format like the spell description, just make it wider.
Why should this be added? Make it easier to edit gvars and manage them, as currently the way they are organized is just a mess.

  • RiptideMatt#7191

Upvote - RiptideMatt#7191

Upvote - Poliphas#3955

Upvote - Kortar#9227

Upvote - R to the Ichie#6193

Upvote - dalmasont#6142

Upvote - Nerds and Dragons#2817

Upvote - RandomUser#1957

Upvote - Zekl#9787

Upvote - Dr Turtle#1771

Upvote - drownedcrown#3431

Upvote - Adalbรคr#3333

Votes: +11 / -0

WEB-063 Have the discord rich embed for workshop, tome, and pack links to provide a summary of the collection?

Feature Request: Have the discord rich embed for workshop, tome, and pack links to provide a summary of the collection?
Who would use it? Anyone sharing links
How would it work? Sorta like how dnd beyond does it? https://pastebin.com/uPHJBzGV
Why should it be added? Add clarity to what the user is clicking on

  • Croebh#5603

Upvote - spamandtuna#9657

Upvote - Croebh#5603

Upvote - Derixyleth#0636

Upvote - Riptidecord#7191

Upvote - Hopop#6751

Upvote - Infinidoge#1337

Upvote - R to the Ichie#6193

Upvote - bobschnitzenheimer#2159

Upvote - Nerds and Dragons#2817

Upvote - purplecharmanderz#6693

Votes: +10 / -0

WEB-036 The ability to create homebrew Races/Classes/Backgrounds on the website

Feature Request: The ability to create homebrew Races/Classes/Backgrounds on the website
Who would use it? DMs and players who choose to use homebrew content besides just items, spells, and creatures.
How would it work? Same as the current Item/Spell in the "Homebrew" section
Why should this be added? So that players can use all kinds of homebrew content

  • RNe Invictus#7968

Upvote - TidusIV#2328

Upvote - Infinidoge#1337

Upvote - Riptidecord#7191

Upvote - R to the Ichie#6193

Upvote - Steel#0420

Upvote - Rowlet the Tired#6873

Upvote - Fiery25123#1157

Upvote - bobschnitzenheimer#2159

Votes: +8 / -0

Update to Angular 8

We should update from Angular 7 to Angular 8. Hopefully this should be painless.

WEB-040 Adding a meta roll for the homebrew tome doesnt add a line for it in the spell editor

What is the bug?: Adding a meta roll for the homebrew tome doesnt add a line for it in the spell editor
Severity: medium
Steps to reproduce: Visit https://avrae.io/dashboard/homebrew/spells and add new spell. Go to editor and try to add a meta roll in drop down
Context: N/A
Browser: Chrome 74.0.3729.131
System: Windows 10 Home

This is the error from the console(f12)

    at iN.newMeta (new-effect-card.component.ts:91)
    at iN.addEffect (new-effect-card.component.ts:79)
    at Object.handleEvent (new-effect-card.component.ngfactory.js.pre-build-optimizer.js:73)
    at Object.handleEvent (core.js.pre-build-optimizer.js:43992)
    at Object.handleEvent (core.js.pre-build-optimizer.js:44773)
    at rl (core.js.pre-build-optimizer.js:29803)
    at core.js.pre-build-optimizer.js:42924
    at HTMLButtonElement.<anonymous> (platform-browser.js.pre-build-optimizer.js:2668)
    at HTMLButtonElement.l (helpers.js:74)
    at a.invokeTask (zone-evergreen.js.pre-build-optimizer.js:391)
    at Object.onInvokeTask (core.js.pre-build-optimizer.js:39679)
    at a.invokeTask (zone-evergreen.js.pre-build-optimizer.js:390)
    at s.runTask (zone-evergreen.js.pre-build-optimizer.js:168)
    at c.invokeTask [as invoke] (zone-evergreen.js.pre-build-optimizer.js:465)
    at y (zone-evergreen.js.pre-build-optimizer.js:1603)
    at HTMLButtonElement.k (zone-evergreen.js.pre-build-optimizer.js:1629)```

- TidusIV#2328
Verification: 0

WEB-066 Manual Sorting of Subcommands

Feature Request: Manual Sorting of Subcommands
Who would use it: Any workshop aliaser who utilizes the subcommands feature and doesn't want things to always be in chronological order according to when they were created.
How would it work? Ideally, add a "Sort" button into the editing that would then have an option to "Sort Alphabetically" and also allow for click+drag to rearrange things into the desired order (like organizing a youtube watch later list)
Why should this be added? So subcommands can be organized better and presented in the way the creator wants without having to plan out things that aren't even known yet.

  • Derixyleth#0636

Upvote - Croebh#5603

Upvote - Derixyleth#0636

Upvote - purplecharmanderz#6693

Upvote - Spooky Riptidecord#7191

Upvote - Zekl#1505

Upvote - Mobius#1442

Upvote - Lathaon#6649

Upvote - R to the Ichie#6193

Upvote - 400473976918245387

Upvote - xenonanomly#7265

Upvote - Nerds and Dragons#2817

Upvote - Retr0#5626

Upvote - Brinjal#4037

Upvote - emasirik#0420

Upvote - syrup#1965

Votes: +15 / -0

WEB-069 Cannot edit the documentation of a sub-alias that shares a name with a built-in command

What is the bug?: Cannot edit the documentation of a sub-alias that shares a name with a built-in command
Severity: Medium
Steps to reproduce: Create an alias in the workshop, give it a sub-alias with the name of a default command (e.g. a), after creating it, try to edit its documentation.
Browser: Chromium 85.0.4183.121 (Official Build) snap (64-bit)
System: Ubuntu 18.04.5 LTS
Context: Aliasing workshop

  • Brinjal#4037
    Verification: 0

WEB-060 Money Management

It could be very useful having a command to manage the PC money

I tried using current commands, but I didn't find anything useful...
Could "!money " command be thought for a future?

Thank you!

Upvote - forgivenknight77#7809

Votes: +1 / -0

WEB-065 Creator page for the workshop

Feature Request: Creator page for the workshop
Who would use it: aliasers, and users looking for other collections by the same author
How would it work? avrae.io/workshop/Croebh5603 or something, and it could include an editable blurb, and link to all of their collections
Why should this be added? I feel it would get a lot of use by users and aliasers alike

  • Croebh#5603

Upvote - Croebh#5603

Upvote - Riptidecord#7191

Upvote - Derixyleth#0636

Upvote - spamandtuna#9657

Upvote - Nerds and Dragons#2817

Upvote - R to the Ichie#6193

Upvote - Hopop#6751

Upvote - Mahkasad#5996

Upvote - Robbe#7964

Upvote - purplecharmanderz#6693

Upvote - Infinidoge#1337

Upvote - Mobius#1442

Upvote - bLu3#4021

Upvote - emasirik#0420

Upvote - MyrddinEmrys#0884

Votes: +15 / -0

WEB-059 Cannot login to the website

What is the bug?: Cannot login to the website
Severity: high
Steps to reproduce: go to the website and try to access the dashboard, telling it to login with your Discord account
Browser: Chrome version 84.0.4147.89
System: Android 10, build QQ3A.200705.002
Context: trying to login gives "Invalid OAuth state" error, even after clearing cache and restarting browser

  • R to the Ichie#6193
    Verification: 0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.