You are on page 1of 17

Introduction

Hello! This is a guide on how to use Avrae’s Dashboard to make custom attacks for more
complicated features such as sharpshooter, or to add modifiers (Such as elemental affinity) to
spells. There is also a short FAQ at the end of this document as well as some examples of
attacks that I have made.

Requirements

This tutorial will take you roughly 15 mins - 1 hour, as some of the things may be a little bit
tricky and in depth. Once you get the hang of it though, it’s easy to implement other custom
attacks!

This guide assumes you have the knowledge of most avrae commands, including the ones used
to make a custom counter.

This will also require you to have at least one character loaded in avrae, as we will be
referencing your character’s stats when making a custom attack.

Programming knowledge is not needed, however it will help you understand the process of
making a custom attack better. I will be including pictures as part of the guide - While the
documentation is useful, most of it is in code and might not be easily understandable.

The documentation link is provided here: https://avrae.readthedocs.io/en/stable/

I will be referencing important parts of this extensive document in this guide. Reading it in it’s
entirety is not required to use this tutorial.

The user interface makes it easy to add your own attacks, with an option to import or export the
attacks.

When adding custom attacks, make sure to add a note in the description stating what the
mechanical action is (For example: OOC: Firebolt)
What is Avrae Dashboard?

Basically, when you load your data into avrae, it gets stored online (which is why you can just
run !update to update your characters). Avrae dashboard is a web based interface that allows
you to modify and manage your data loaded into Avrae.

You may access the dashboard at this link: https://avrae.io/dashboard (Sign in with your discord
account that you used Avrae with)
Layout of the dashboard

1. Your characters: Clicking on this will show the character screen

2. Alias workshop and customization, for alias commands. We will NOT be using this, so
feel free to ignore it for now. I will not be covering this in the tutorial.

3. Homebrew content is for custom spells. This can also be an existing spell - As D&D
beyond requires you to purchase the books online to use certain spells, it’s mostly for
people (like me) that have a physical copy of the book, and would like to manually add in
spells and details. I will not be covering this in the tutorial.

4. Character selection - If you have a character already, there should be something in this
box. I currently have 7 characters loaded up into Avrae, which is why there are 7 Icons /
Characters. The characters portrait is the same as the one you set in D&D beyond or
google sheets while loading the character in.
Accessing your attacks and character sheet

After hovering over a character in the character section, you


should see something like this. Your character name is at the
top, with a slight summary of your character based on the
details you entered.

The book icon, when clicked, links back to your character


sheet that you loaded in (Google sheets or D&D beyond,
depending on what you used)

Upon clicking the wrench icon to the right, you will access a
popup whereby you can view all your custom attacks.

Attack selection screen

Take note:
All attacks loaded in from your character sheet will not appear here. Do not be alarmed if
you do not find your normal attacks in this list.

There is a dropdown menu, having all your custom attacks. If this is your first time here (And
you have never made any custom attacks), the dropdown menu will only have 1 item. Click the
new button to start making your attack!
Making Custom Attacks

Advanced options (Display text)

Upon selecting an attack or clicking the new button in the dropdown, this screen should appear.

Click the “Advanced Options” to show this screen. This will be most of the flavor text for your
attack.

Most of these should be self explanatory. I added arrows to show which part here maps to the
actual display in avrae when you use the attack.

Your character MUST have an attack name for it to be saved.

1. Name of attack: It affects the name of the attack, as well as the display text

2. Display: This line will be displayed when you use the attack, in bold. The format is like
this:
<Character name> <flavor text> “a” <Name of attack>

Check the proper noun button if you do not want “a” in the display text.
Note that entering nothing in the flavor text defaults it to “attacks with”.

3. Thumbnail URL: This URL is a small image or gif that shows up when you use the
attack. I google up most of the gifs or images. Note that it is important it is a direct
image link. Make sure the image URL ends in a .gif/.png/.jpg or any image format. Right
clicking an image and selecting “View image in a new tab” on web browsers is one of the
ways you can ensure this URL is a direct link
4. Flavor Text: Whatever that is typed here will be shown in italics under the display text.

5. Critical Hit Options: This is mostly applicable to attacks by certain classes, or magical
weapons that add damage on a critical hit.

Crit On indicates the number you have to roll, and you may add additional dice rolls in
the Extra Crit Damage section.

Automation
This is the most tricky part of the tutorial. Essentially what Automation here means is basically
all the rolls, damage, and other effects added on to the attack. Do give yourself more time for
this, as navigating the menus can get confusing.

I will start by explaining how to do a simple attack, then move on to attacks that need the target
to make a save.

Under Automation, there should be a dropdown menu. This will be how you add most of the
effects for Avrae to automate your attacks.

Attack and Damage (Preset)

Scroll the dropdown bar until you see this. Then click on it. The developers of Avrae have
included a preset for simple attacks.

You should see this under automation.


Click on target, and it should open up and show an attack effect. What you want to do is to click
and expand the tree (Basically all the buttons with a small grey arrow beside it) - Looking at it
from one glance helps a lot. The fully expanded tree will look like this:

The Cyan Icons: There are two icons I highlighted in the picture. The first one, beside the
custom attack bonus, will be an IntExpression. The 2nd one, with the curly braces denotes an
AnnotatedString.

IntExpressions are like your normal math expressions. They can be with, or without curly
braces.

AnnotatedStrings are a string that could include variables and functions, and are much more
flexible when it comes to processing them. Variables and functions MUST be within 2 curly
braces.

Refer to the below link for a list of all the variables you can use. Most of these reference your
character.
https://avrae.readthedocs.io/en/latest/aliasing/api.html#cvar-table

For example, in an IntExpression, you type “proficiencyBonus” to reference your proficiency


bonus (With or without curly braces in between). You may put operators anywhere in between
variables or numbers. For example: proficiencyBonus / 2 is half your proficiency bonus. If you
need to multiply, use an asterisk (*) instead of an X

For an annotated string, to refer to your proficiencyBonus, you need to type


{proficiencyBonus} (with the curly braces.) This is more versatile as it can include saved
variables (covered later in this tutorial) in the string itself.
You can also use math functions and operators, but surround them with double curly braces.
1. Target of attacks

This is mostly applicable ONLY if your DM uses Avrae to track combat, via Avrae’s init
tracker. Some DMs may use this, or track initiative separately themselves. In this case,
you do not need to bother about this. However, if your DM uses the init tracker, your
attacks will be made towards certain targets (By a command such as !a attack -t goblin1)

There are 4 options in this dropdown:

All (usually saves): Make 1 attack roll, and apply it to ALL targets.

Each (usually attacks): Make 1 attack roll separately for each target.

Caster: This attack will affect the caster. It might be self-healing, or for example rage.

Position: This attack will affect the person at initiative X. Usually unused and requires
the init tracker.

The first 2 are the most common, and you will be using it for the most of your attacks.
Feel free to keep it at default, or change it to something that suits your attack!

2. Custom Attack Bonus

Make sure you know what is an IntExpression and an AnnotatedString first!

To make sure your attack sums up the right bonuses, you would want to always have
this checked. Take note that this is an IntExpression.

Usually, you want to reference proficiencyBonus + the attack modifier of a certain stat.
Refer to the cvar table linked above for a list of all the variables you can reference. For
example, for the sharpshooter feat, since you are firing a bow, the expression for that
would be:

proficiencyBonus + dexterityMod - 5

If it’s a spell, you can quickly reference your spellcasting ability as well. In this case, the
expression is:

proficiencyBonus + spell
3. What to do on a hit and miss

After filling the sections above, all that’s left is to add the damage! The damage is an
AnnotatedString. As such, when referencing variables, remember to include your curly
braces, or the command will run into an error!

The type can be put in square brackets beside the variable. For example, if I were to do
1d8 fire damage, and 1d4 + dexterityMod piercing damage, the string would look like
this:

1d8[fire] + 1d4[piercing] + {dexterityMod}[piercing]

You might notice there is nothing in the part where it says On Miss, other than to add a
new effect. This miss applies to Nat 1 rolls, and rolls that do not hit the target AC if a
target was specified. This mostly won’t get any use, but might be used to re-flavour Nat
1 misses.

After that, your attack should be done! Click on the save buttons (Make sure to
ALWAYS save! You don’t want your work to be lost)

You can direct message Avrae, and test your attack by switching to the character in
question, and typing the command !a <attack name>!

To remove something from the automation, you have to click on the red trash can icon
on the bottom of a block after you expanded it.
Save for Half (Preset)

Another useful preset, this preset is usually used for spells. If your DM uses Avrae’s init tracker,
the targets will roll the saves automatically.

Most of this is the same as attacks, so it should be somewhat familiar if you have coded an
attack.

What is different here is the save stat: This is the saving throw that needs to be made, and can
be selected from the drop down menu.

There’s another field afterwards to add your own custom DC. In most cases though, it will be
proficiencyBonus + spell. This is useful also if you need another DC, for example in the case of
a dragonborn’s breath weapon.

You now have enough info on how to make a custom attack. However, should you look towards
more customization, I will briefly explain the other effects.
Automation extras (Other effects)

You may note that in both the Attack and Damage Preset as well as the Save for Half preset
has a branching tree of effects. This would be known as nesting one effect within another. The
way you do this is search whether the added effect allows you to add a new effect. For example,
the On Miss portion of the Attack and Damage Preset.

This allows you to do many things. For example, when a condition is met, do an extra attack.
You might need other effects, and these are listed below. Note that this is purely optional, and
the 2 presets are sufficient for most characters. But if you are looking for more customization,
read on!

Roll

This is a simple dice roll in avrae, and the syntax should be no different from what you use when
rolling dice normally. Name represents the name of the roll, and the dice formula is an
AnnotatedString.

Checking the hidden box will hide the dice roll. Normally, this box wouldn’t need to be toggled,
as you always want your dice rolls to show.

Text

An AnnotatedString, this is one of the most straightforward effects. This text will always be
displayed at the bottom of an attack, when output by Avrae.
Variable

This effect consists of 2 IntExpressions The name of the variable is important here. It will store
a value that can be used later. On Error is the value that would be used when there is a
computing error.

Condition

This effect is a little complicated, and often used hand in hand with variables or other effects. A
condition is an IntExpression. This must be a comparative statement. It has 2 results: True and
False.

I have not gone in depth in testing with this, but positive numbers are usually treated as True,
and negatives are treated as false. Usually, you want to compare this with a variable. For
example, a player’s current level.

In this case, the condition would be something like

level >= 10

>= is a comparison symbol, and the above statement is like asking a question: Is level above or
equal to 10?

If the statement is true, the part titled “On true” will be activated, while if the statement is false,
the part titled “On False” will be activated.

You can add various effects, including another condition block. Experiment around!
Counter

This block is useful IF you want to remove spell slots after the attack (in the case of re-flavoured
spells.)

You can use a custom counter that you may have set up before (You need to use separate
commands for this), or spell slot (This is linked to your character). Do make sure if you have the
resources left first to make the attack. The error behaviour will cause this block to do different
things based on what is selected, if it has an error computing the amount.

Lastly, amount is an IntExpression that represents the number of that resource expended. If
you want to use this attack even if you don’t have enough resources, you may check the allow
overflow button. The counter will go negative or completely use up as much resources,
depending on how you set it up initially.

For example, if I wanted to spend 3 sorcery points, and I have a custom counter called
SorceryPoints.

I would select to use a custom counter named SorceryPoints.

Then, in the amount field, I would type 3, as I use 3 sorcery points. I would not check allow
overflow, because sorcery points cannot go below 0. For the Error Behaviour, I will select “Stop
Execution”, since I want it to stop processing if I don’t have enough sorcery points.
And we’re done!
I had fun writing this, and I hope you will have fun making your own custom attacks! Feel free to
direct message me on discord, if you need help with some of the commands. My advice is to
save every time you make a change, and test it as you go along. You can also export and share
your attacks with others! I will include a short section below for a quick FAQ, and some of the
attacks I made for Avrae (you may use this for reference)

Quick FAQ (Will be updated as I get more questions)


Who are you and why did you write this guide?

I go by Cindy in the D&D community, and you can direct message me at Cinderella#6462. I had
fun programming my own custom attacks, and we’ll be using Avrae for a while, so I made this
quick tutorial.

Have fun!
Code snippets
To use these, import JSON in the attack screen, and then copy and paste the following codes
in. They are long, but once you import them in you can see how I programmed the automation.
Text size is made small on purpose (Do let me know if these don’t work)

Cinders Ashenhart - Ashenhart Special {"name":"Ashenhart


Special","automation":[{"type":"target","meta":[],"target":"
each","effects":[{"type":"attack","meta":[],"hit":[{"type":"d
amage","meta":[],"damage":"2d10mi2[fire]+{charismaMo
d}[fire]","overheal":false}],"miss":[],"attackBonus":"spell
+
proficiencyBonus"}]},{"type":"target","meta":[],"target":"e
ach","effects":[{"type":"attack","meta":[],"hit":[{"type":"da
mage","meta":[],"damage":"2d6mi2[fire]+{charismaMod}
","overheal":false}],"miss":[],"attackBonus":"spell +
proficiencyBonus"},{"type":"attack","meta":[],"hit":[{"type"
:"damage","meta":[],"damage":"2d6mi2[fire]","overheal":f
alse}],"miss":[],"attackBonus":"spell +
proficiencyBonus"},{"type":"attack","meta":[],"hit":[{"type"
:"damage","meta":[],"damage":"2d6mi2[fire]","overheal":f
alse}],"miss":[],"attackBonus":"spell +
proficiencyBonus"}]},{"type":"counter","meta":[],"counter"
:{"slot":2},"amount":"1","allowOverflow":false,"errorBeha
viour":"warn"},{"type":"counter","meta":[],"counter":"Sorc
ery
points","amount":"2","allowOverflow":false,"errorBehavio
ur":"warn"},{"type":"text","meta":[],"text":"\"Spirits of
flame, I call upon thee. Ignite my foes and set them
ablaze!\"\n\nCinders shouts, shrugging off her injuries
as she raises her staff and conjures a massive bolt of
flame. The bolt accelerates and shortly after splits into 5
smaller bolts, each burning with vengeance as they fly
towards the enemy.
"}],"_v":2,"proper":true,"verb":"chants an incantation and
casts her spell.","phrase":"(OOC: Quickened Scorching
Ray with firebolt. Bonus action: Scorching ray is cast at
level 2, with the first ray having elemental affinity.
Action: Firebolt. Total costs: Lv 2 spell slot, 2 sorc
points)","thumb":"https://affinityforanime.files.wordpress.
com/2012/06/shanaiii10.jpg"}]
Cinders Ashenhart - Grand Flare {"name":"Grand
Flare","automation":[{"type":"roll","meta":[],"dice":"8d6mi
2[fire] +
{charismaMod}[fire]","name":"damage","hidden":false},{"
type":"roll","meta":[],"dice":"2d6mi2[fire]","name":"damag
e2","hidden":false},{"type":"roll","meta":[],"dice":"2d6mi2[
fire]","name":"damage3","hidden":false},{"type":"target","
meta":[],"target":"all","effects":[{"type":"save","meta":[],"s
tat":"dex","fail":[{"type":"damage","meta":[],"damage":"{d
amage}","overheal":false}],"success":[{"type":"damage",
"meta":[],"damage":"({damage})/2","overheal":false}]}]},{"
type":"target","meta":[],"target":"all","effects":[{"type":"sa
ve","meta":[],"stat":"dex","fail":[{"type":"damage","meta":[
],"damage":"{damage2}","overheal":false}],"success":[{"t
ype":"damage","meta":[],"damage":"({damage2})/2","ove
rheal":false}],"dc":""}]},{"type":"target","meta":[],"target":"
all","effects":[{"type":"save","meta":[],"stat":"dex","fail":[{"
type":"damage","meta":[],"damage":"{damage3}","overh
eal":false}],"success":[{"type":"damage","meta":[],"dama
ge":"({damage3})/2","overheal":false}]}]},{"type":"text","m
eta":[],"text":"Roll 3 saves, DC {8 + spell +
proficiencyBonus}. 1st save for fireball, 2nd and 3rd
save for 2 melf minute
meteors."},{"type":"counter","meta":[],"counter":{"slot":3},
"amount":"1","allowOverflow":false,"errorBehaviour":"wa
rn"},{"type":"counter","meta":[],"counter":"Sorcery
points","amount":"2","allowOverflow":false,"errorBehavio
ur":"warn"},{"type":"text","meta":[],"text":"\"Bloom before
me, Crimson Lotus, and reduce my enemies to
ashes!\"\nCinders chants an incantation, as 2 orbs
surrounding her begin to swirl up rapidly around her
staff. As the orbs reach the tip they accelerate towards
a single point, as a bigger sphere of flame follows
behind. As they impact the target, the spheres expand
and finally explodes in the shape of a lotus
flower.\n\nWith a stoic expression, Cinders watches
over the flames."}],"_v":2,"proper":true,"verb":"an
incantation and casts her spell.","phrase":"(OOC:
Quickened Fireball at 3rd level, with 2 melf minute
meteors used. Action: Quickened Fireball Bonus action:
Direct 2 Melf Minute Meteors to hit the enemy. Total
resources: 3rd level spell slot, 2 sorcery points, 2 melf
minute meteors (Melf minute meteors MUST be casted
before this
action))","thumb":"https://i.imgur.com/MA9k7ZZ.gif"}
Celerity - Super Serious bowshot {"name":"super serious
bowshot","automation":[{"type":"text","meta":[]
,"text":"Shortbow with Sharpshooter, attacking
in
style."},{"type":"target","meta":[],"target":"each
","effects":[{"type":"attack","meta":[],"hit":[{"typ
e":"damage","meta":[],"damage":"1d6[piercing
]+ {dexterityMod} + 10 [sharpshooter
bonus]","overheal":false},{"type":"text","meta":
[],"text":"And it swiftly hits the
mark."}],"miss":[{"type":"text","meta":[],"text":"
The arrow... swiftly misses the
target."}],"attackBonus":"dexterityMod +
proficiencyBonus -
5"}]}],"_v":2,"proper":true,"verb":"lines up
a","phrase":"Swiftly the arrows
fly.","thumb":"http://24.media.tumblr.com/198
0eacaab2929954387023985d34a99/tumblr_
mv4kg0ZVGT1sawx0po1_500.gif"}

You might also like