Macros make everything easier, but sometimes making macros can be a pain. The syntax can be confusing looking, and it all has to be done on one line, and iterating on one to get it just right can take forever. I wanted a better way to make my macros, so I made one! ⭐ easy macro generator Text entered on the left side is turned into roll20 syntax macros that use the default template. Begin a new macro with ! followed by the title, and then every line after that will be associated with that macro. Select the example and click load to see what is possible. data is stored in your local storage in your browser, so make sure you download and/or copy and paste anything important before you go clearing that browser data. ⭐pathfinder 2e I made this with pathfinder 2e in mind, so there are features that support that system, but there's not really anything there prohibiting you from making other macros with it. It probably breaks down if you're looking to make macros for non d20 based games though. ⭐examples In most of these examples I had defined the character's name as Swing Swordman and also defined an emoji to use in the header. input output chat ! Scimitar
melee 7 sweep
1d6+4 s forceful &{template:default} {{name= Swing Swordman **Scimitar**}} {{⚔️ Melee=[[1d20+7?{MAP|-0|-5|-10}+?{Sweep|0|1|2|3|4|5|6|7|8|9}[Sweep Bonus]]]}} {{ Damage=[[1d6+4+?{Forceful|0|1|2|3|4|5|6|7|8|9}[Forceful Bonus]+0?{Damage Bonus|0}[Damage Bonus]]] S Forceful}} {{ Damage​=[[10d6+0?{Damage Bonus|0}[Damage Bonus]]] Damage}} ! Shortbow
ranged 5 60ft
1d8 p
deadly d10 &{template:default} {{name= Swing Swordman **Shortbow**}} {{ Ranged=[[1d20+5?{MAP|-0|-5|-10}?{Range|5ft-60ft,-0|65ft-120ft,-2|125ft-180ft,-4|185ft-240ft,-6|245ft-300ft,-8}]]}} {{ Damage=[[1d8+0?{Damage Bonus|0}[Damage Bonus]]] P}} {{☠️ Deadly=[[1d10]]}} ! Fireball
reflex 17
8d6 fire
+1 2d6 fire
+2 4d6 fire
+3 6d6 fire
* x0|x0.5|x1|x2 &{template:default} {{name= Swing Swordman **Fireball**}} {{️ ⏳ Reflex=17}} {{  Damage=[[8d6+0?{Damage Bonus|0}[Damage Bonus]]] Fire}} ?{Heightened|+0,|+1 (2d6 fire),{{ Heighten +1=[[2d6]] Fire}}|+2 (4d6 fire),{{ Heighten +2​=[[4d6]] Fire}}|+3 (6d6 fire),{{ Heighten +3​​=[[6d6]] Fire}}}{{​=*x0|x0.5|x1|x2*}} ! Lightning Bolt
reflex 17
5d12 elec
+1 1d12 elec
+2 2d12 elec
+3 3d12 elec
* x0|x0.5|x1|x2 &{template:default} {{name= Swing Swordman **Lightning Bolt**}} {{️ ⏳ Reflex=17}} {{ ⚡ Damage=[[5d12+0?{Damage Bonus|0}[Damage Bonus]]] Elec}} ?{Heightened|+0,|+1 (1d12 elec),{{ Heighten +1=[[1d12]] Elec}}|+2 (2d12 elec),{{ Heighten +2​=[[2d12]] Elec}}|+3 (3d12 elec),{{ Heighten +3​​=[[3d12]] Elec}}}{{​=*x0|x0.5|x1|x2*}} ! Grim Tendrils
fort 17
3d4 negative
1 bleed
+1 2d4 negative
+1 1 bleed
+2 4d4 negative
+2 bleed
* S: 0.5x damage; no bleed
* CS: unaffected
* F: full damage
* CF: 2x negative and bleed &{template:default} {{name= Swing Swordman **Grim Tendrils**}} {{️&nbsp;&nbsp;Fort=17}} {{&nbsp;&nbsp;Damage=[[3d4+0?{Damage Bonus|0}[Damage Bonus]]] Negative}} {{&nbsp;&nbsp;Damage=[[1+0?{Damage Bonus|0}[Damage Bonus]]] Bleed}} ?{Heightened|+0,|+1 (2d4 negative),{{&nbsp;Heighten&nbsp;+1=[[2d4]] Negative[n]( <a href="https://i.imgur.com/brRjmYp.png)[[1]]" rel="nofollow">https://i.imgur.com/brRjmYp.png)[[1]]</a> Bleed&#125;&#125;|+2 (4d4 negative),{{&nbsp;Heighten&nbsp;+2&#8203;=[[4d4]] Negative[n]( <a href="https://i.imgur.com/brRjmYp.png)[[2]]" rel="nofollow">https://i.imgur.com/brRjmYp.png)[[2]]</a> Bleed&#125;&#125;}{{&#8203;=*S: 0.5x damage; no bleed*}} {{&#8203;&#8203;=*CS: unaffected*}} {{&#8203;&#8203;&#8203;=*F: full damage*}} {{&#8203;&#8203;&#8203;&#8203;=*CF: 2x negative and bleed*}} ! General Macro
Attack Roll: d20+5
Damage: 1d6+2 b
Damage: 1d6+2 b
Range: 120ft
Type: Magic
Strength: d1000
* Write a note here! &{template:default} {{name=**General Macro**}} {{Attack Roll=[[1d20+5]]}} {{Damage=[[1d6+2]] B}} {{Damage&#8203;=[[1d6+2]] B}} {{Range=[[120]]ft}} {{Type=Magic}} {{Strength=[[1d1000]]}} {{&#8203;=*Write a note here!*}} ⭐ why though My gaming group may be unique in that we prefer to keep our data and tools external, and only use roll20 for rolling dice and maps. We play pathfinder and the pathfinder playtest (and soon pf 2e) but with enough home brew that the internal character sheets don't really do it for us. As we got to the point where our characters have more complex abilities, we wanted to build better macros, but boy howdy is that tough. this tool eases the pain of making macros for all of our character abilities. ⭐that's all hopefully it's of some use to others! note that you probably can't do everything you can do in roll20 macros from this tool. also if something is broken or acting weird let me know but I can't promise I'll be able to fix anything. thanks!