Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

What macros should a DM that aspires to be a professional have ready?

Hey everyone, my name's Ted and I'm trying my hand on professional paid DM'ing. As the title says, what macros and general tools on Roll20 should I have mastered for my sessions? Thank you in advance!
1635778401

Edited 1635778487
You can charge for a session but if you aren't literally gods miracle on earth in that session the players will just brigade your session posts and get you a bad reputation.  Best to start out free till you feel you are providing a huge quality experience.  You can usually tell this by having players join random one shots and then begging to join your future sessions, when you get to this point then you can start thinking about a patreon or some sort of pay system.  If you start charging before you ever provide quality experiences, you will just trash your reptutation.   As for macros, sure there are features and macros that can really boost your reactiveness and productivity in the live session, but the true force multiplier that gets random people to pay you to keep letting them play at your table is quality storytelling, voice acting, and showmanship.  People over the internet are generally dicks if you tell them no for even simple stuff, I trully do not know how any DM keeps a rep charging for sessions.   Also if you don't have a huge library of adventures fully setup and ready to go with a pristine streamlined prep system, you can't really justify the time spent prepping and running the sessions vs flippin patties at Mcdonalds.  
1635778669

Edited 1635778849
DM Eddie said: You can charge for a session but if you aren't literally gods miracle on earth in that session the players will just brigade your session posts and get you a bad reputation.  Best to start out free till you feel you are providing a huge quality experience.  You can usually tell this by having players join random one shots and then begging to join your future sessions, when you get to this point then you can start thinking about a patreon or some sort of pay system.  If you start charging before you ever provide quality experiences, you will just trash your reptutation.   As for macros, sure there are features and macros that can really boost your reactiveness and productivity in the live session, but the true force multiplier that gets random people to pay you to keep letting them play at your table is quality storytelling, voice acting, and showmanship.  People over the internet are generally dicks if you tell them no for even simple stuff, I trully do not know how any DM keeps a rep charging for sessions.   Also if you don't have a huge library of adventures fully setup and ready to go with a pristine streamlined prep system, you can't really justify the time spent prepping and running the sessions vs flippin patties at Mcdonalds.   Oh I've DM'd over a dozen campaigns in the past 3 years, I think I am capable enough as a DM. I was just wondering what Roll20 macros are good/necessary to have.
1635782411

Edited 1635782505
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Hi Ted, My advice would be to automate tedious tasks . You don't want the play experience to get bogged down with repetition and delays. Since you are a Pro subscriber, I think the focus should more be upon Scripts first, and then the macros to run them. You want a master macro to handle things like lighting, vision, nameplate display, information display, all the things you might need to open a sheet or token settings window for. Here is a subset of one that I use. Use it as a starting point. These require Token Mod and Supernotes from the One Click install: /w gm &{template:npcaction} {{rname=Game Menu}} {{description=**Nameplate** [On](!token-mod --set showplayers_name|yes showname|yes) | [Off](!token-mod --set showplayers_name|no showname|yes) | [Hide](!token-mod --set showplayers_name|no showname|no) **Vision** [On](!token-mod --set has_bright_light_vision|on has_night_vision|on light_angle|360) | [Off](!token-mod --set has_bright_light_vision|off has_night_vision|off light_angle|360) | [GM](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|10 light_angle|360) [Touch](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|5 light_angle|360) | [Blindfighting](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|10 light_angle|360) [Darkvision](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|60 light_angle|360 night_vision_effect|nocturnal) | [DV90](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|90 light_angle|360 night_vision_effect|nocturnal) | [DV120](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|120 light_angle|360 night_vision_effect|nocturnal) | [DV off](!token-mod --set has_bright_light_vision|on has_night_vision|off night_vision_distance|0 light_angle|360) **Light** [Off](!token-mod --set emits_bright_light|off emits_low_light|off light_angle|360) | [On](!token-mod --set emits_bright_light|on emits_low_light|on light_angle|360) | [Spot](!token-mod --set emits_bright_light|on bright_light_distance|5 low_light_distance|0 light_angle|360) | [Moon](!token-mod --set set emits_bright_light|off emits_low_light|on low_light_distance|=200 light_angle|360) | [Stars](!token-mod --set emits_bright_light|off emits_low_light|on low_light_distance|=100 light_angle|360) [Candle](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|2 low_light_distance|5 light_angle|360) | [Lamp](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|15 low_light_distance|15 light_angle|360) | [Torch](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|20 low_light_distance|20 light_angle|360) [Hooded Lantern](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|30 low_light_distance|30 light_angle|360) | [Bullseye Lantern](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|60 low_light_distance|60 light_angle|90) [*Light*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|20 low_light_distance|20 light_angle|360) | [*Daylight*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|60 low_light_distance|60 light_angle|360) | [*Dancing*](!token-mod --set emits_bright_light|off emits_low_light|on bright_light_distance|0 low_light_distance|10 light_angle|360) | [*Faerie Fire*](!token-mod --set emits_bright_light|off emits_low_light|on bright_light_distance|0 low_light_distance|10 statusmarkers|purple light_angle|360) [*Gem of Brightness*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|30 low_light_distance|30 light_angle|360) [Fix Transparency Bug](!token-mod --set has_bright_light_vision|true has_limit_field_of_vision|true limit_field_of_vision_total|0 controlledby|+GM) **To GM** [Notes](!gmnote) | [Bio](!gmnote --bio) | [Char Note](!gmnote --charnote) | [Avatar](!gmnote --avatar) | [Image](!gmnote --image) **To Players** [Notes](!pcnote) | [Bio](!pcnote --bio) | [Char Note](!pcnote --charnote) | [Avatar](!pcnote --avatar) | [Image](!pcnote --image) }}&{noerror} This produces: The name plate and lighting commands should be self explanatory. The last section sends notes to the gm or player, based on their location in the token or sheet. To tighten the display of the  Chat Menu  above, I use the Stylus extension and this style:  Inline Links on OGL Roll Templates  -  [install]
keithcurtis said: Hi Ted, My advice would be to automate tedious tasks . You don't want the play experience to get bogged down with repetition and delays. Since you are a Pro subscriber, I think the focus should more be upon Scripts first, and then the macros to run them. You want a master macro to handle things like lighting, vision, nameplate display, information display, all the things you might need to open a sheet or token settings window for. Here is a subset of one that I use. Use it as a starting point. These require Token Mod and Supernotes from the One Click install: /w gm &{template:npcaction} {{rname=Game Menu}} {{description=**Nameplate** [On](!token-mod --set showplayers_name|yes showname|yes) | [Off](!token-mod --set showplayers_name|no showname|yes) | [Hide](!token-mod --set showplayers_name|no showname|no) **Vision** [On](!token-mod --set has_bright_light_vision|on has_night_vision|on light_angle|360) | [Off](!token-mod --set has_bright_light_vision|off has_night_vision|off light_angle|360) | [GM](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|10 light_angle|360) [Touch](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|5 light_angle|360) | [Blindfighting](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|10 light_angle|360) [Darkvision](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|60 light_angle|360 night_vision_effect|nocturnal) | [DV90](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|90 light_angle|360 night_vision_effect|nocturnal) | [DV120](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|120 light_angle|360 night_vision_effect|nocturnal) | [DV off](!token-mod --set has_bright_light_vision|on has_night_vision|off night_vision_distance|0 light_angle|360) **Light** [Off](!token-mod --set emits_bright_light|off emits_low_light|off light_angle|360) | [On](!token-mod --set emits_bright_light|on emits_low_light|on light_angle|360) | [Spot](!token-mod --set emits_bright_light|on bright_light_distance|5 low_light_distance|0 light_angle|360) | [Moon](!token-mod --set set emits_bright_light|off emits_low_light|on low_light_distance|=200 light_angle|360) | [Stars](!token-mod --set emits_bright_light|off emits_low_light|on low_light_distance|=100 light_angle|360) [Candle](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|2 low_light_distance|5 light_angle|360) | [Lamp](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|15 low_light_distance|15 light_angle|360) | [Torch](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|20 low_light_distance|20 light_angle|360) [Hooded Lantern](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|30 low_light_distance|30 light_angle|360) | [Bullseye Lantern](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|60 low_light_distance|60 light_angle|90) [*Light*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|20 low_light_distance|20 light_angle|360) | [*Daylight*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|60 low_light_distance|60 light_angle|360) | [*Dancing*](!token-mod --set emits_bright_light|off emits_low_light|on bright_light_distance|0 low_light_distance|10 light_angle|360) | [*Faerie Fire*](!token-mod --set emits_bright_light|off emits_low_light|on bright_light_distance|0 low_light_distance|10 statusmarkers|purple light_angle|360) [*Gem of Brightness*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|30 low_light_distance|30 light_angle|360) [Fix Transparency Bug](!token-mod --set has_bright_light_vision|true has_limit_field_of_vision|true limit_field_of_vision_total|0 controlledby|+GM) **To GM** [Notes](!gmnote) | [Bio](!gmnote --bio) | [Char Note](!gmnote --charnote) | [Avatar](!gmnote --avatar) | [Image](!gmnote --image) **To Players** [Notes](!pcnote) | [Bio](!pcnote --bio) | [Char Note](!pcnote --charnote) | [Avatar](!pcnote --avatar) | [Image](!pcnote --image) }}&{noerror} This produces: The name plate and lighting commands should be self explanatory. The last section sends notes to the gm or player, based on their location in the token or sheet. To tighten the display of the  Chat Menu  above, I use the Stylus extension and this style:  Inline Links on OGL Roll Templates  -  [install] Thank you so much for this!
The lighting is all in LDL correct?  last time I ran a script like this UDL did not work.  
1635799271
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
No, it's all UDL. I've been running UDL exclusively for 3-4 months now. The macros are pulled from my Game Menu. I have very few issues with UDL, but I run it fairly lean. I don't use colored light or tinted vision, and only use Explorer mode when it's important (as opposed to Advanced Dynamic Lighting (LDL), when it was "not at all").
There is one simple macro that I have found really useful for players if done as a token action, initiative.  Set it up for each character so they have to have their token selected to see it on the screen and it pretty much guarentees that they will roll initiative and it will appear on the turn order first time,.  It may seem a small thing but the number of times I've had players not select heir tokens or de select them when they try and roll their intiative then re roll and get a very low one, and while you can add it manually or change the number, it all takes time when all they want to do at that point is hit something.
1635826791
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Also, look into the Group Initiative API. Handy for large groups of monsters. Another time-saving Script is Token Action Maker (if you are using the D&D 5th Edition by Roll20 Sheet). One click and it creates a full suite of token action buttons for the selected monsters.
1635855599

Edited 1635855714
I find token action maker to be a script that looks neat mechanically and on paper but all it really does for me is clutter up the token action bar needlessly because the npc sheet is already open for many other reasons so why clutter the bar up.  Same for giving it to players, it constantly has to be redone for players who edit their sheets alot and global modifiers screw it up too so all the script really does is clutter up Token actions.   If anything, instead of token action maker script, the real best advice in that department is to host sessions with a very large monitor or multiple monitors.  My primary monitor is a wrap around super wide and I have 3 more monitors, 1 runs discord, 1 runs campaign notes, 1 runs source books, and the central monitor is roll20.  And learn how to minimize and maximize sheets.  
1635859602

Edited 1635859623
GiGs
Pro
Sheet Author
API Scripter
It's not a macro, but I would test out dynamic lighting in all the ways you plan to use it, with friends and volunteers before you run a game for money. That's the #1 thing that will frequently fail someone and bring a session to a grinding halt, so you want to be as experienced at handling problems as you can be. (Alternatively - choose not to use it...)
GiGs said: It's not a macro, but I would test out dynamic lighting in all the ways you plan to use it, with friends and volunteers before you run a game for money. That's the #1 thing that will frequently fail someone and bring a session to a grinding halt, so you want to be as experienced at handling problems as you can be. (Alternatively - choose not to use it...) I agree with GiGs here - Because UDL will determine what your players can see, it's central to their experience. With UDL, I think less is more (people want to see the maps and art, and the authenticity of a mostly blind experience does not pay off). The other suggestion I would have is to consider how much "control" you want to give your players over the table top, and set up macros/buttons to make that fun. For example, I use TokenMod macros so players can add status effects to monsters/NPCs for their own spells and abilities. This gets them clicking around interactively on the TT and sets up for a certain kind of user experience. It also takes that upkeep off my plate as a GM. However, this may not be the game-play atmosphere you're after, and so it may not be your bag.
1635863187

Edited 1635866388
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
DM Eddie said: I find token action maker to be a script that looks neat mechanically and on paper but all it really does for me is clutter up the token action bar needlessly because the npc sheet is already open for many other reasons so why clutter the bar up.  Same for giving it to players, it constantly has to be redone for players who edit their sheets a lot and global modifiers screw it up too so all the script really does is clutter up Token actions.   If anything, instead of token action maker script, the real best advice in that department is to host sessions with a very large monitor or multiple monitors.  My primary monitor is a wrap around super wide and I have 3 more monitors, 1 runs discord, 1 runs campaign notes, 1 runs source books, and the central monitor is roll20.  And learn how to minimize and maximize sheets.   As the developer of the script, I'd like to address these concerns. :) The point of the script is to not have to open the sheet unless necessary. If there is a compelling reason to have the sheet open, you can minimize it with a double-click on the title (as you mention). There are enough positive comments on the feedback thread to let me know that the clutter you mention is not an issue for many. It's worth a try. The script is configurable so you can create only the type of token action you really need: just attacks, for instance, or just spells.  The global modifier issue you mention is addressed in the feedback thread. PC sheets have too many exceptions to handle save and skill checks well at higher levels. It is recommended not to use it for PCs, or at least past a certain level. However, for NPC sheets, you get the same roll you would get from clicking on the sheet. Since this thread is about GMing, this should not be an issue. In all but a few homebrew cases, DMs control NPC sheets. For players who do use the script, they should be aware of the limitations of global mods (there's little I can do to fix that, due to the sheet architecture, and global mods do work on attacks), and if they make a lot of changes, a simple macro refreshes all of their actions.  The script may not be for all, but it's a mainstay for some and worth considering for the purposes of this thread.
1635959878
Gold
Forum Champion
Color Emote (API script, configure it nicely).... Is essential.  I don't know how GM's go without this.  I don't know how this isn't a standard Feature of roll20. Helps RP and highlights the Characters, immensely. This puts a lot of text RP power in the player's hands for them to type things even while other people are talking on voice.  ColorEmote is what's happening in the Roll20 chat in my Dune screenshot here: Click pic to enlarge to full screen. The API Script is written by The Aaron arcane scriptomancer volunteer in roll20 community.
1635995622
GiGs
Pro
Sheet Author
API Scripter
What's ColorEmote doing in that screenshot?
1636005228
Victor B.
Pro
Sheet Author
API Scripter
You need to figure out what APIs you want. What tasks do you want to automate.  And not just APIs but macros that can speed you along.  In this, google is your friend.  I'm very light on APIs and macros because the characters like rolling.  So I don't feel the need to automate everything.  Once you have the list of what you want to automate, then look at Roll20 Documentation.  Some of it can be done via roll tables.  Some of it can be macros calling APIs. Some of it pure macros.  Start with what you want to automate.  
1636007580

Edited 1636007752
Gold
Forum Champion
GiGs said: What's ColorEmote doing in that screenshot? ColorEmote is what's happening in the Roll20 chat in my Dune screenshot here: It happens to be 100% of the visible Roll20 Chat Posts in that particular screenshot.  It shows the Token that's acting/speaking, with a color-background of the Player's choice (it's pulled from one of the Aura colors).  The Token+ColorBackground can be doing/saying/running any macros producing text that you want. In my case the macro is effectively like this: Show The Token in gargantuan maximum size that fits; Show the color background from Aura 1 of that Token's linked Character; Print the text: CHARACTERNAME says, " {Query the Player for what their Character will say?} " If it wasn't clear before, now pop up the screenshot full-size and see some variations among the 3 examples in my chat. So it could include queries, or not.  When a Player hits the button, or the GM triggers Color-Emote on an NPC: it could say in chat, [TokenPicture with color] NAME has STRENGTH of 15, INTELLIGENCE of 12, CONSTITUTION of 9. Or, [TokenPicture with color] You see a MONSTERNAME.
I kinda want ColorEmote but instead of emotes have it be all of each players chat.  So if player 1 has a pink color set, their chat entries and rolls are all with a pink background, and Player 2 has a black background.  I suppose this would be a style and not an api script though.  
1636034671
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
If you like ColorEmote, you could look into the Dialog script. It does similar but is a bit tighter in size and handles languages as well.
1636044465
Gold
Forum Champion
keithcurtis said: If you like ColorEmote, you could look into the Dialog script. It does similar but is a bit tighter in size and handles languages as well. Interesting. I'm reticient to rewrite my macros (that trigger this). But based on your recommendation I'll look into it after Roll20CON.
1636045992
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
I completely understand. It can be a hassle to re-write automation (particularly if it works). Here's the thread on Dialog , for reference. We now return you to your regularly scheduled thread... :)
keithcurtis said: I completely understand. It can be a hassle to re-write automation (particularly if it works). Here's the thread on Dialog , for reference. We now return you to your regularly scheduled thread... :) Is the type field for responding large or as small as the query fields?  I know that there are style extensions people can install to solve this but I can't get 8 players to have functional browsers let alone install extensions.  
1636060329
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
For easiest use, it uses a query field. How does coloremote work?
1636063450

Edited 1636063603
Gold
Forum Champion
keithcurtis said: For easiest use, it uses a query field. How does coloremote work? Same, a Query field (in roll20) is a small field with (unlimited?) overflow.   You can type a long message, you just can't see your whole message while you're typing it. I have a few players that have asked for a larger typing box. There are ways around this, but like keith said, "for easiest use". A workaround would be, have ColorEmote print the text of a Field from the Character Sheet... which could be a larger free-text area.  Then it has trouble with Hard Returns though, coloremote doesn't like Hard Returns in the text.
Honestly think we should request a feature to color code chat outputs.