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

5e Alternate Initiative Macro

So my party and I are going to try out Mike Mearls' homebrew initiative and I am trying to create a macro for it.  So far the macro I have asks how many of each die they want to roll, rolls them and puts the result in the tracker.  The problem that I am having is that if 0 isn't entered when they want to roll none of that type, it still rolls one die. I would like for it to not roll any if no value is entered.  This is the first macro I have ever tried to make on here so I have no idea what I am doing.  Thanks for any help!   Here is the macro as I have it  @{selected|token_name}'s initiative - [[?{Number of d12}d12 + ?{Number of d10}d10 + ?{Number of d8}d8 + ?{Number of d6}d6 + ?{Number of d4}d4 &{tracker}]] And yes, I have it targeting a token because I need it to work for all of my creatures as well. Thanks again!
Noah C. said: So my party and I are going to try out Mike Mearls' homebrew initiative and I am trying to create a macro for it.  So far the macro I have asks how many of each die they want to roll, rolls them and puts the result in the tracker.  The problem that I am having is that if 0 isn't entered when they want to roll none of that type, it still rolls one die. I would like for it to not roll any if no value is entered.  This is the first macro I have ever tried to make on here so I have no idea what I am doing.  Thanks for any help!   Here is the macro as I have it  @{selected|token_name}'s initiative - [[?{Number of d12}d12 + ?{Number of d10}d10 + ?{Number of d8}d8 + ?{Number of d6}d6 + ?{Number of d4}d4 &{tracker}]] And yes, I have it targeting a token because I need it to work for all of my creatures as well. Thanks again! You may try changing your macro just a little @{selected|token_name}'s initiative - [[?{Number of d12|0}d12 + ?{Number of d10|0}d10 + ?{Number of d8|0}d8 + ?{Number of d6|0}d6 + ?{Number of d4|0}d4 &{tracker}]]
Oh man. That worked like a charm. Thanks very much.
I went a little over the top and created macros for each set of options (bonus action notwithstanding).. Melee Roll /w gm &{template:npc} {{normal=1}} {{name=Initiative}} {{rname=Melee}} {{mod=}} {{r1=[[1d8 &{tracker}]]}} etc. Then stacked them into a macro that gets sent to all my players when rolling initiative &{template:default} {{name=Initiative}} {{Move Only=[1d6](!&13;#Move)}} {{Melee Attack=[1d8](!&13;#Melee)}} {{Ranged Attack=[1d4](!&13;#Ranged)}} {{Cast Spell=[1d12](!&13;#Spell)}}{{Move & Melee=[1d6+1d8](!&13;#Move-Melee)}} {{Move & Ranged=[1d6+1d10](!&13;#Move-Ranged)}} {{Move & Cast=[1d6+d12](!&13;#Move-Spell)}} This lets me call for initiative each round with a single click, and each player is able to choose which roll to make from a list like so:
Man that is fancy. I am going to try to implement that. Thanks!
1500494241
The Aaron
Pro
API Scripter
You can actually take advantage of a little known &{tracker} feature, the ability to adjust the existing score using &{tracker:+}: I tried setting this up for fun.  It turns out you can't use :+ inside a button, sadly, but you can use it in an ability, so I whipped up a way to do it using a character named InitSys: &{template:default} {{name=Initiative }} {{Reset=[0](~InitSys|reset) }} {{Ranged=[1d4](~InitSys|ranged)[D](~InitSys|rangedD)[A](~InitSys|rangedA) }} {{Move=[1d6](~InitSys|move)[D](~InitSys|moveD)[A](~InitSys|moveA) }} {{Swap=[1d6](~InitSys|swap)[D](~InitSys|swapD)[A](~InitSys|swapA) }} {{Other=[1d6](~InitSys|else)[D](~InitSys|elseD)[A](~InitSys|elseA) }} {{Melee=[1d8](~InitSys|melee)[D](~InitSys|meleeD)[A](~InitSys|meleeA) }} {{Spell=[1d10](~InitSys|spell)[D](~InitSys|spellD)[A](~InitSys|spellA) }} {{Surprised=[+10](~InitSys|surprised) }} And here's a list of abilities and their values: reset @{selected|token_name} clears to [[0 &{tracker} ]] move @{selected|token_name} will move: +[[1d6 &{tracker:+}]] melee @{selected|token_name} will melee attack +[[1d8 &{tracker:+}]] moveD @{selected|token_name} will move (disadvantage): +[[2d6kh1 &{tracker:+}]] moveA @{selected|token_name} will move (advantage): +[[2d6kl1 &{tracker:+}]] meleeD @{selected|token_name} will melee attack (disadvantage) +[[2d8kh1 &{tracker:+}]] meleeA @{selected|token_name} will melee attack (advantage) +[[2d8kl1 &{tracker:+}]] ranged @{selected|token_name} will ranged attack +[[1d4 &{tracker:+}]] rangedD @{selected|token_name} will ranged attack (disadvantage) +[[2d4kh1 &{tracker:+}]] rangedA @{selected|token_name} will ranged attack (advantage) +[[2d4kl1 &{tracker:+}]] spell @{selected|token_name} will cast a spell +[[1d10 &{tracker:+}]] spellD @{selected|token_name} will cast a spell (disadvantage) +[[2d10kh1 &{tracker:+}]] spellA @{selected|token_name} will cast a spell (advantage) +[[2d10kl1 &{tracker:+}]] swap @{selected|token_name} will swap gear: +[[1d6 &{tracker:+}]] swapD @{selected|token_name} will swap gear (disadvantage): +[[2d6kh1 &{tracker:+}]] swapA @{selected|token_name} will swap gear (advantage): +[[2d6kl1 &{tracker:+}]] else @{selected|token_name} will ?{something else}: +[[1d6 &{tracker:+}]] elseD @{selected|token_name} will ?{something else} (disadvantage): +[[2d6kh1 &{tracker:+}]] elseA @{selected|token_name} will ?{something else} (advantage): +[[2d6kl1 &{tracker:+}]] surprised @{selected|token_name} is surprised: +[[10 &{tracker:+}]] The nice thing about using a character to hold the abilities is you can move it between games with the Character Vault or Transmogrifier, if you have access to either. For pro subscribers, here's an API script that sets up the character and the template as a macro named #init: on('ready',function(){ "use strict";     const abilities= {         reset: '@{selected|token_name} clears to [[0 &{tracker} ]]',         move: '@{selected|token_name} will move: +[[1d6 &{tracker:+}]]',         melee: '@{selected|token_name} will melee attack +[[1d8 &{tracker:+}]]',         moveD: '@{selected|token_name} will move (disadvantage): +[[2d6kh1 &{tracker:+}]]',         moveA: '@{selected|token_name} will move (advantage): +[[2d6kl1 &{tracker:+}]]',         meleeD: '@{selected|token_name} will melee attack (disadvantage) +[[2d8kh1 &{tracker:+}]]',         meleeA: '@{selected|token_name} will melee attack (advantage) +[[2d8kl1 &{tracker:+}]]',         ranged: '@{selected|token_name} will ranged attack +[[1d4 &{tracker:+}]]',         rangedD: '@{selected|token_name} will ranged attack (disadvantage) +[[2d4kh1 &{tracker:+}]]',         rangedA: '@{selected|token_name} will ranged attack (advantage) +[[2d4kl1 &{tracker:+}]]',         spell: '@{selected|token_name} will cast a spell +[[1d10 &{tracker:+}]]',         spellD: '@{selected|token_name} will cast a spell (disadvantage) +[[2d10kh1 &{tracker:+}]]',         spellA: '@{selected|token_name} will cast a spell (advantage) +[[2d10kl1 &{tracker:+}]]',         swap: '@{selected|token_name} will swap gear: +[[1d6 &{tracker:+}]]',         swapD: '@{selected|token_name} will swap gear (disadvantage): +[[2d6kh1 &{tracker:+}]]',         swapA: '@{selected|token_name} will swap gear (advantage): +[[2d6kl1 &{tracker:+}]]',         else: '@{selected|token_name} will ?{something else}: +[[1d6 &{tracker:+}]]',         elseD: '@{selected|token_name} will ?{something else} (disadvantage): +[[2d6kh1 &{tracker:+}]]',         elseA: '@{selected|token_name} will ?{something else} (advantage): +[[2d6kl1 &{tracker:+}]]', surprised: '@{selected|token_name} is surprised: +[[10 &{tracker:+}]]'     };     if(!findObjs({type:'character',name:'InitSys'}).length){         let character = createObj('character',{name:'InitSys'});         _.each(abilities,(v,k)=>createObj('ability',{             characterid: character.id,             name: k,             action: v         })); let gm=_.chain(findObjs({type:'player'})) .filter((p)=>playerIsGM(p.id)) .first() .value();         createObj('macro',{             name: 'init', playerid: gm.id,             action: `&{template:default} {{name=Initiative }} {{Reset=[0](~InitSys|reset) }} {{Ranged=[1d4](~InitSys|ranged)[D](~InitSys|rangedD)[A](~InitSys|rangedA) }} {{Move=[1d6](~InitSys|move)[D](~InitSys|moveD)[A](~InitSys|moveA) }} {{Swap=[1d6](~InitSys|swap)[D](~InitSys|swapD)[A](~InitSys|swapA) }} {{Other=[1d6](~InitSys|else)[D](~InitSys|elseD)[A](~InitSys|elseA) }} {{Melee=[1d8](~InitSys|melee)[D](~InitSys|meleeD)[A](~InitSys|meleeA) }} {{Spell=[1d10](~InitSys|spell)[D](~InitSys|spellD)[A](~InitSys|spellA) }} {{Surprised=[+10](~InitSys|surprised) }}`,             visibleto: 'all' }); } }); If you've got GroupInitiative installed, you might find these commands handy: Clear all in turn order to 0: !group-init --adjust -100000 0 Sort turn order: !group-init --sort Configure to be ascending initiative (just once, to get this set up): !group-init-config --sort-option|Ascending