Roll20 Condition Macros

Condition Macros

In my Dungeons and Dragons games on Roll20, I’m using a macro which allows me to click on a token, and set a Condition by clicking just two buttons, which saves the time of looking up what effects the Condition has on a particular character, NPC, or creature.

The macro can be used with any subscription level, though the example below uses an API script.  The API scripts are available if you have a Pro subscription, but you can still easily use this macro without it. This macro uses the API script “TokenMod”, which will automatically add the a status marker to the token, indicating the Condition.  But this macro is still handy, as it will still put the condition in the chat for all to see. If you don’t have access to the API scripts, you’ll just need to remove the line that refers to TokenMod in the individual macros for each condition.

Image 1  is what you’ll see on the Roll20 GM screen when the macros are set up. The Conditions macro is included in my macro Quick Bar at the bottom of the screen. When I click it, it brings the list of conditions up in the chat window. I’ve set it so that only I can see the list by starting the macro with “/w gm”. This tells the chat to only show me (the GM) the macro output in chat.

Image 1: GM Screen with Quick Bar at the bottom, and the Conditions macro in the chat.

Macro Setup

Image 2: Roll20 Collection List

In Roll20, in the menu on the upper right hand of the screen, you select the Collection button, which will bring up the list of Macros, Decks, and Rollable Tables you’ve set up for your games. When you click the +Add button, it brings up an empty macro. You’ll be making a number of macros for this, and while it can be a little time consuming to set up, believe me when I say it’s going to save you plenty of time in your games.

The Conditions Macro

The first macro to set up will be the “Conditions” macro. This is the macro that outputs the individual macro buttons in the chat for you to select from.

In order for it to work, it needs to be one continuous paragraph with no line breaks. In the name field, I’ve named it “Conditions”. What this macro does is call up the list of buttons in the chat, and connects each button to another macro.

Each button in the macro is formated like this: ” [<Button Name>](!&#13;#<Macro>) “.  [<Button Name>] makes the button in the chat, and pressing it tells the (!&#13;#<Macro>) command to activate that macro.

Image 3: The Conditions Macro

And in the Macro menu in the Roll20 settings, I’ve checked “In Bar”, so that I have it ready to go in the Quick Bar at the bottom of my Roll20 screen, as shown in the image 1 above.

Image 4: Macro checked to be added to Quick Bar

If you want to copy and paste the conditions macro, here it is:

/w gm  Conditions: [Blinded](!&#13;#y-Condition-Blinded) [Charmed](!&#13;#y-Condition-Charmed) [Deafened](!&#13;#y-Condition-Deafened) [Dying](!&#13;#y-Condition-Dying)  [Frightened](!&#13;#y-Condition-Frightened) [Grappled](!&#13;#y-Condition-Grappled)[Incapacitated](!&#13;#y-Condition-Incapacitated) [Invisible](!&#13;#y-Condition-Invisible) [Paralyzed](!&#13;#y-Condition-Paralyzed) [Petrified](!&#13;#y-Condition-Petrified) [Poisoned](!&#13;#y-Condition-Poisoned) [Restrained](!&#13;#y-Condition-Restrained)  [Stunned](!&#13;#y-Condition-Stunned) [Unconscious](!&#13;#y-Condition-Unconscious) [Remove Conditions](!&#13;#Remove-Conditions)

Once you’ve typed or copied this into the macro, it’s important that you never, ever, open it again. When you open the macro, it reformats and inserts line breaks, which breaks the macro. You can just fix it by backspacing it so that it’s one continuous paragraph again, or just copy and paste it from the original source again.

The Remove Conditions Macro automatically removes the Status Marker icon(s) from the selected token. If you’re not using the TokenMod API, you don’t need to leave it in the macro.

The Condition Macros

I’ve named each macro “y-Condition-<Condition>”, as shown above in the Conditions macro. I’ve added that “y” so that the condition macros are lower on my list of macros in the Collection list. Once I’ve created them, I shouldn’t need to see them or open them again. I’ve left Remove Conditions without the “y”, because I like to have it higher in my collection. It’s a personal decision, and you can set it up another way if you wish.

The description includes the text of what the condition does to the affected character or NPC. Using the The token-mod API automatically gives the token the status marker icon I’ve chosen for the condition, which allows anyone watching the screen to see which tokens are affected. In the example below, I’ve selected a miner, and poisoned him by clicking the Poisoned button in the chat window. Remember to select the token you wish to give a condition to.

You can see the message in the chat window that tells everyone who has been affected by the condition, and below that, the effects of the condition.

Image 5: Output from using the Poisoned Condition on a Miner. Why did you poison that poor miner?

The code for Condition-Poisoned is shown below. It consists of three lines. The first is the message that the token has been affected. The second outputs the condition itself. The third uses token-mod to set the status marker for the condition. The full list of Condition Macros will be listed below at the end of this post, for easy cut and paste.

Note: if you are not using the token-mod API, you should delete the line in the macro that refers to it. 

@{selected|token_name} has been poisoned! {selected|token_id}&{template:npcaction} {{name=Condition: Poisoned!}} {{description= You are poisoned! You have disadvantage on ability checks and attack rolls!}} @{selected|charname_output}

!token-mod –set statusmarkers|!drink-me

Here’s how it looks when you create the macro in Roll20:

Image 6: The Condition Poisoned macro

The macro above, with the TokenMod API, uses the “drink-me” status marker for poison. That’s my choice, and you can change that to any available status marker. Here’s a list by Bryan W. of all of the available status markers in Roll20 (more can be purchased or added through API scripts, though I haven’t done that at this time). Here’s the list without clicking:

Image 7: Status Guide by Byran W

Remove Conditions Macro

If you’re using the TokenMod API, when a condition ends, you can click the Remove-Conditions button (either in in the chat, or by adding it to the Quick Bar), and it will automatically remove the status marker(s) using token-mod. Even though it’s in my Conditions Macro, I like to leave Remove Conditions in my Quick Bar, because it will remove all the status markers on the selected token, regardless if they were added by the Conditions Macro, or manually added. I use status markers for plenty of things, and the ability to quickly remove them is nice.

The Remove-Conditions macro is:

!token-mod –set statusmarkers|=blue|-blue

Conditions List for Copy/Paste into your Macros

Remember to edit out the line starting with !token-mod if you’re not using the TokenMod API


Name: y-Condition-Blinded


@{selected|token_name} is blinded!
{selected|token_id}&{template:npcaction} {{name=Condition: Blinded!}} {{description= You are blinded! You cannot see and automatically fail any ability check that requires sight. You have disadvantage on attack rolls. Attack rolls against you have advantage!}}
!token-mod –set statusmarkers|!bleeding-eye


Name: y-Condition-Blinded


@{selected|token_name} has been charmed!
{selected|token_id}&{template:npcaction} {{name=Condition: Charmed!}} {{description= Charmer has advantage on any ability check to interact socially with you. You cannot attack your charmer or traget with harmful abilities or magic.}} @{selected|charname_output}
!token-mod –set statusmarkers|!chained-heart


Name: y-Condition-Deafened


@{selected|token_name} is deafened!
{selected|token_id}&{template:npcaction} {{name=Condition: Deafened!}} {{description= You cannot hear and automatically fail any ability check that requires hearing!}} @{selected|charname_output}
!token-mod –set statusmarkers|!screaming



Name: y-Condition-Dying


@{selected|token_name} is dying!
{selected|token_id}&{template:npcaction} {{name=Condition: Dying!}} {{description= You are dying! You suffer from the unconscious condition, and need to start making Death saving throws!

On your next turns, you must roll a 1d20.

20 = Regain 1 hp
10-19 = Success
2-9 = Failure
1 = Two failures.

Taking damage gives you a failure. A Critical Hit gives you two failures.
Three successes means you are stablized.
Three failures means you are dead!!

The gods be with you… }} @{selected|charname_output}
!token-mod –set statusmarkers|!death-zone



Name: y-Condition-Frightened


@{selected|token_name} is frightened!
{selected|token_id}&{template:npcaction} {{name=Condition: Frightened!!}} {{description= While the source of your fear is in line of sight, you have disadvantage on attack and ability rolls. You cannot willingly move closer to the source of your fear.}} @{selected|charname_output}
!token-mod –set statusmarkers|!tread


Name: y-Condition-Grappled


@{selected|token_name} has been grappled!
{selected|token_id}&{template:npcaction} {{name=Condition: Grappled!!}} {{description= Your speed is reduced to sero and you cannot benefit from any bonus to speed. The condition ends if the grappler is incapacitated or if you are removed from reach of the grappler or grappling effect.}} @{selected|charname_output}
!token-mod –set statusmarkers|!padlock


Name: y-Condition-Incapacitated


@{selected|token_name} is incapacitated!
{selected|token_id}&{template:npcaction} {{name=Condition: Incapacitated!}} {{description= You are incapacitated!
You cannot take actions or reactions!}} @{selected|charname_output}
!token-mod –set statusmarkers|!back-pain


Name: y-Condition-Invisible


@{selected|token_name} is invisible!
{selected|token_id}&{template:npcaction} {{name=Condition: Invisible!}} {{description= You are invisible! You cannot be seen without the aid of magic or special senses. Your location can be detected by noise or tracks left behind. You have advantage on attack rolls. Attack rolls against you have disadvantage. }} @{selected|charname_output}
!token-mod –set statusmarkers|!half-haze


Name: y-Condition-Paralyzed


@{selected|token_name} is paralyzed!

{selected|token_id}&{template:npcaction} {{name=Condition: Paralyzed!}} {{description= You are paralyzed! You automatically fail strength and dexterity saving throws. Attack rolls have advantage against you. Any attack within 5 ft. is a Critical Hit! You cannot move or speak.}} @{selected|charname_output}
!token-mod –set statusmarkers|!archery-target


Name: y-Condition-Petrified


@{selected|token_name} has been petrified!
{selected|token_id}&{template:npcaction} {{name=Condition: Petrified!}} {{description= You are petrified! You automatically fail strength and dexterity saving throws. You have resistance to all damage! Attack rolls against you have advantage. You cannot move or speak, and are unaware of your surroundings.}} @{selected|charname_output}
!token-mod –set statusmarkers|!aura


Name: y-Condition-Restrained


@{selected|token_name} is restrained!
{selected|token_id}&{template:npcaction} {{name=Condition: Restrained!}} {{description= You are restrained! You have disadvantage on your dexterity saving throws. You have disadvantage on attack rolls. Attack rolls against you have advanatge! Your speed is zero and you cannot benefit from any bonus.}} @{selected|charname_output}
!token-mod –set statusmarkers|!fishing-net


Name: y-Condition-Stunned


@{selected|token_name} is stunned!
{selected|token_id}&{template:npcaction} {{name=Condition: Stunned!}} {{description= You are Stunned! You automatically fail Strength and Dexterity saving throws. You cannot make take actions or reactions. You can speak only falteringly, and cannot move. Attack rolls against you have advantage!}} @{selected|charname_output}
!token-mod –set statusmarkers|!broken-shield


Name: y-Condition-Unconscious


@{selected|token_name} is unconscious!
{selected|token_id}&{template:npcaction} {{name=Condition: Unconscious!}} {{description= You are unconscious! You drop everything and go prone. You automatically fail strength and dexterity saving throws. Attack rolls have advantage against you. If your attacker is within 5 ft., they score a Critical Hit! You cannot move or speak.}} @{selected|charname_output}
!token-mod –set statusmarkers|!sleepy




Like it? Share it! Facebooktwittergoogle_plusredditpinterestlinkedinmail

Roll20 When You Can’t Get It Together

My usual “real life” group occasionally has “real life” things happen to it. We try to play every Monday night, but sometimes one or more of us can’t make it. Sometimes, that’s not a problem, we can carry on without a player for a session, especially with the way the campaign is currently going (look for a post on splitting the party in time and space soon). But tonight’s session was supposed to be a big one. Really important stuff happening here! I didn’t want to move forward without the whole party present. Normally, that would just mean we would take the night off, but the past two weeks, I had some personal issues that stopped me from attending the game, and I’m the GM. Skipping tonight would have meant three weeks without playing with this group.

Unofficial Lost Mines of Phandelver Battlemap!

We opted to play anyway, in Roll20. I ran Lost Mines of Phandelver for those of us who were able to make it. It had pre-generated characters (and I added a few more) ready to go.  And it was good practice for my future Roll20 campaigns, since I’ve been getting more and more involved in creating and running campaigns there.

For a group like mine, it’s a good alternative. Some of us live a little far away, and while we don’t mind traveling on a weekly basis to get our game on, it’s nice to be able to stay home and still play a one-shot, or an alternate campaign. Nobody had to drive.

And using Roll20 for this is really easy. For the past two years, before I started getting serious with it, I used Roll20 to play with my brothers online. We didn’t get fancy at all. We just used it for the battlegrid, the dice rolling, and the ability to play in hangouts (which is sadly being discontinued, so now we use Discord for voice chat). And that’s really all you need. Maybe start a really simple backup campaign in Roll20. A Base Account costs nothing, and will still give you the ability to throw together a quick game, invite your players to join the game and  give them some characters to build,  throw together some maps, they don’t need to be great, or even good. I mean, look at what I did above. That was a minute using the drawing tool to throw together a battlemap for the Goblin Ambush at the start of Lost Mines. They didn’t include one, so I made my own.

Official Lost Mines of Phandelver BattleMap!

Not fancy. But functional. The rest of the module is fairly fancy though. I mean, it looks great.

But as I was saying, you don’t need great maps to have great fun. All you need are some people, some dice, and the ability to drag and drop, click a mouse, and have fun.

I’ll talk more soon about Roll20, but I just wanted to throw this idea out there. Go ahead and get an account if you don’t already have one. Get in there and mess around a little, and then throw together something for your players for those nights that you can’t get it together.

Some links to get you started:


Roll20 Wiki:

Like it? Share it! Facebooktwittergoogle_plusredditpinterestlinkedinmail