Articles and Books

Quick and Dirty Avrae and DNDBeyond Commands

Discord is a great service for building quick chat groups, having video chats with multiple people (I’ve even used it to record podcasts), and much more. DNDBeyond has changed the way some of my Dungeons and Dragons groups play the game by allowing us to build character sheets online, giving quick access to information we used to pause games to look up in books, act as an online dice roller for parties where we can all see the results (with buffs added in), and now integrate and stream that to Discord using the Avrae Discord bot.

I don’t think anything has changed the way we play Dungeons and Dragons more since the move from basic to 1st edition or the move to 5e. One thing though, the APIs for DNDBeyond and the Avrae bot keep evolving but there are some really basic game play elements that I can go through to help anyone new to the system get started.

First, we’ll use DNDBeyond to link our accounts. Here, go to DNDBeyond, hover over the account name and click Account.

From the account screen, locate Discord and click Link account. If logged in with the Discord app, when prompted click to Authorize.

Now, if using Avrae we need to make sure the names match. Notice the below screen, once added, we’ll see our discord name. The part before the # needs to be the same as the username in DNDBeyond.

It’s easier to change in Discord than DNDBeyond. If need be, go to Discord, use the Preferences then My Account. There’s an Edit button there to change it.

If it’s changed, use the Unlink button back in DNDBeyond and then re-add. This time, when prompted click Not You and then add it again. Otherwise it won’t update the username.

Once added, let’s add the character we’ll be playing in the Discord channel for the game. First let’s grab the URL for our character. Browse to the character and just copy the URL to the clipboard (e.g. Command-C or Control-C).

Now click into the “TEXT Channels” in the Discord channel and then enter !beyond followed by the URL from the web page (notice that the bang or ! character informs Discord that we’re running a command):

!beyond https://www.dndbeyond.com/profile/KryptedCE...

Provided everything worked properly we then get prompted to load the character. Here, type yes.

The character is loaded. Now we can make changes on the character sheet and in Discord though. You know, like when you level up! So let’s look at our next command, updating the character. This is a hard one – to update from DNDBeyond to Discord, do !update.

!update

The next command to learn is help. We can do a help on any of the commands we’ll discuss, which include i, r, attack, check, cast, save, and g. That help screen will display any of the arguments or verbs for the command.

!help attack

Now, one of the most common things we use this bot for is battle. So let’s roll for initiative. To join in a battle let’s do !i for initiative and then use the join verb. Now, in the following I’m going to follow that up with adv which is short for advantage. We could also have done dis which is short for disadvantage:

!i join adv

Next, let’s do a basic dice roll. We could do this in DNDBeyond and if everything is set up right we’d just see the roll show up in Discord. But it’s good to know how to do a roll here as well. So the r is short for roll and let’s say we want to roll 2 10 sided dice and then put a +4 modifier. That would be:

!r 2d10 +4

Now let’s say the DM says do an athletics check. If the integration is working bidirectionally we should be able to just click the box in DNDBeyond that shows the modifier and it’ll do a dice roll there.

That would show up in Discord and indicate it was Rolled in <name of campaign>.

But let’s say we wanted to do the check in Discord without DNDBeyond. That would just be !check followed by the skill or attribute. So the athletics check would be:

!check athletics

Or let’s say we’re doing strength at a disadvantage, that might be:

!check STR DIS

Now to the fun stuff. We could look at DNDBeyond and see what options we have and even click on the buttons there to roll an attack roll. For that let’s say to hit we click on the +4 in the below screen or to roll that damage let’s say we click the 1d6+2.

If we did the results would appear automatically in Discord. We could also see what we can attack with using the attack command to see a list of options. That would be as follows:

!attack list

Let’s use the mace. Here we’ll follow that with a -t argument to identify the opponent (we should see those listed in their initiative as they joined the combat sequence and we’ll just use CU1 in the below example) and let’s say I can attack twice, so I’ll add “-rr 2” and let’s say I have advantage, so we’ll add adv to the end:

!attack Mace -t CU1 -rr 2 adv

So that’s attacking. Avrae will keep track if we’re blessed or poisoned or any of that, provided the -t was put in properly. Speaking of getting blessed, now let’s look at spell casting. First, let’s check out our spell book. That’s just !spellbook as follows:

!spellbook

Now let’s cast a spell. That command is cast and then the name of the spell in quotes. The spell will automatically cast at the lowest level available, but let’s say we have a particularly aggressive monk who keeps rushing into battle. I mean in 5e they are a bit of a tank so why not. To cure that monk, let’s cast cure wounds and let’s do it at level two by defining the -l and then an integer with the level number and then let’s identify the character (or target of the spell) using -t followed by the name in quotes:

!cast “cure wounds” -l 2 -t "character name"

When it isn’t our turn we sometimes have to make a saving throw or save against a given attribute. That’s just the save command:

!save dexterity

Whew, all that and we’re exhausted! Let’s take a long rest to get our spells back:

!game lr

Or a short rest using the shortened game to g

!g sr

And sometimes we might accidentally do something and need to fix it in Discord. Now, I think the easy way is to fix it on the character sheet and do a new !update but some specific game mechanics that can be done in the game include (using the !g command) to return spell slots:

!g ss 1 1

Or return hit points:

!g hp set 21

OK, so now we have those mechanics out of the way. We can then use a tool like owlbear rodeo or roll20 to do the virtual tabletop and apply fog of war (the virtual version of undrawn or covered up maps). I wrote this free little app to create super basic dungeons and dump them to the camera roll on an iPhone to generate quick and dirty maps: https://apps.apple.com/us/app/randomdungeongenerator/id1549919422

And so the modern Dungeons and Dragons toolkits abound! It’s great to have these new features and watch the tools evolve (more rapidly during a pandemic methinks). It’s also great to roll a real d20 on a real table and bust out 1st or 2nd edition books to argue about rules from time to time! But I do really enjoy the modern take of gaming. 🙂