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

Daggerheart Roller Macro Help

So I have a macro for the base Action Rolls, /roll 2d12 + ( ?{Modifier|0} ) Is there a way to have it display a critical which would be anytime the two dice roll the same number? Like have the numbers be green or glow or something to be very noticeable? Also is there a way to make the die numbers displayed different colors (Yellow/Purple)?
There's no easy way to roll two numbers, display them separately, and also add them together and  compare them to see if they are the same number. (We'll see if RainbowEncoder posts something ingenious that does exactly that, because it involves Reusing Rolls , which I still can't fully wrap my head around.) Here is a macro for Daggerheart rolls , which allows for adding/subtracting 1d6 for advantage/disadvantage, as well as adding a modifier: &{template:default} {{name=Duality}} {{Hope=$[[0.computed]]}} {{Fear=$[[1.computed]]}} {{Total=[[ [[1d12[Hope] ]] + [[1d12[Fear] ?]] ?{Advantage|Regular, |Advantage,+ 1d6|Disadvantage,- 1d6} + ?{Modifier?|0}}}]] }} (Example Roll with Advantage and a +3 modifier) d I'm guessing that once Daggerheart is officially released and a character sheet becomes available on Roll20, it'll have Custom Roll Parsing  built in to simplify all of those rolls.  As far as changing the colors of the dice, the answer is no, you cannot change the die numbers to display different colors.  The colors that are displayed in chat for dice rolls are hard-coded: Red = lowest die roll  Green = highest die roll Blue = both lowest and highest die roll Grey = die that is not included in final result (rerolled or dropped)
Using the macro Jarren provided as a basis with a mix of Roll duplication and Toggleable template fields ends up with this monster &{template:default} {{name= [[[ $[[13]][Hope] + $[[52]][Fear] ?{Advantage|Regular, |Advantage,+ 1d6|Disadvantage,- 1d6} +(?{Modifier?|0}) ]]] $[[$[[66]]]] [[[[[ [[ {0,$[[25]]}=$[[65]]*79 ]] $[[$[[0]]]] [[1d12 Hope]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] $[[37]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] $[[$[[39]]]] [[ [[1d12 Fear]]+39 ]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] $[[78]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]]]]] }} {{name=Duality}} {{Hope=$[[0.computed]]}} {{Fear=$[[38.computed]]}} [[[ [[0]] {{Critical!}} ]]] {{Total=$[[53.computed]]}} It will state "Crtical!" when both dice are equal. Looking like this
Magic! You're not going to be able to convince me otherwise.
Holy cow, nice job both of you!
1711757306

Edited 1711757350
vÍnce
Pro
Sheet Author
RainbowEncoder said: Using the macro Jarren provided as a basis with a mix of Roll duplication and Toggleable template fields ends up with this monster &{template:default} {{name= [[[ $[[13]][Hope] + $[[52]][Fear] ?{Advantage|Regular, |Advantage,+ 1d6|Disadvantage,- 1d6} +(?{Modifier?|0}) ]]] $[[$[[66]]]] [[[[[ [[ {0,$[[25]]}=$[[65]]*79 ]] $[[$[[0]]]] [[1d12 Hope]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] $[[37]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] $[[$[[39]]]] [[ [[1d12 Fear]]+39 ]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] [[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]] $[[78]] [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ 0 ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]]]]] }} {{name=Duality}} {{Hope=$[[0.computed]]}} {{Fear=$[[38.computed]]}} [[[ [[0]] {{Critical!}} ]]] {{Total=$[[53.computed]]}} What the hay? I'm 100% positive that no one else on the planet would have come up with this solution. Therefore RainbowEncoder must be an alien... ;P
1711841651

Edited 1711841711
David M.
Pro
API Scripter
I was playing around with a Daggerheart Duality Dice scriptcard, and I figured I'd share it for those with a Pro account. It queries for adv/disadvantage and modifier, checks for critical successes, and allows for re-rolling of individual dice and/or all of the dice. Example output: Here's the macro. Obviously requires that Scriptcards is installed in your game.&nbsp; !script {{ --#title|Duality Dice --#titleFontSize|20px --#titleCardBottomBorder|#ffffff --#oddRowBackground|#444444 --#evenRowBackground|#444444 --#bodyFontSize|20px --#evenRowFontColor|#ffffff --#oddRowFontColor|#ffffff --#titlecardBackgroundImage|linear-gradient(#999999, black) --+|[hr #ffffff] --:ASSIGN URLs TO DICE ARRAYS| --&gt;ConfigureURLs| --&amp;rollType|All --=rerollNum|0 --:RerollReentry| Reentry passes either "Hope", "Fear", or "All" to denote what is rerolled --?[$rerollNum] -ne 0|[ --&amp;rollType|[&amp;reentryval] --]| --:ROLL DICE| --?"[&amp;rollType]" -eq "Hope" -or "[&amp;rollType]" -eq "All"|[ --=hopeDieRoll|1d12 --=hopeIndex|[$hopeDieRoll]-1 --]| --?"[&amp;rollType]" -eq "Fear" -or "[&amp;rollType]" -eq "All"|[ --=fearDieRoll|1d12 --=fearIndex|[$fearDieRoll]-1 --]| --?"[&amp;rollType]" -eq "Advantage" -or "[&amp;rollType]" -eq "All"|[ --=advDieRoll|1d6 --=advIndex|[$advDieRoll]-1 --&amp;advantageQuery|?{Roll with Adv/Disadv?|None|Advantage|Disadvantage} --]| --=modifier|?{Modifier|0} --:CONFIGURE OUTPUT BASED ON ADV/DISADV| --&amp;rerollStr|[rbutton:#000000:#e2bf67:20px]Reroll::RerollReentry;Hope[/rbutton] &nbsp; &nbsp; [rbutton:#FFFFFF:#713030:20px]Reroll::RerollReentry;Fear[/rbutton] --&amp;diceStr|[img width=64 height=64][@hopeDiceArr([$hopeIndex.Raw])][/img] + [img width=64 height=64][@fearDiceArr([$fearIndex.Raw])][/img] --?"[&amp;advantageQuery]" -eq "None"|[ --=total|[$hopeDieRoll]+[$fearDieRoll] + [$modifier] --&amp;diceStr|+ + [$modifier.Raw] --&amp;advStr| --]| --?"[&amp;advantageQuery]" -eq "Advantage"|[ --=total|[$hopeDieRoll]+[$fearDieRoll] + [$advDieRoll] + [$modifier] --&amp;diceStr|+ + [img width=55 height=55][@advDiceArr([$advIndex.Raw])][/img] + [$modifier.Raw] --&amp;rerollStr|+ &nbsp;&nbsp; [rbutton:#FFFFFF:#3988bf:20px]Reroll::RerollReentry;Advantage[/rbutton] --&amp;advStr|(Advantage) --]| --?"[&amp;advantageQuery]" -eq "Disadvantage"|[ --=total|[$hopeDieRoll]+[$fearDieRoll] - [$advDieRoll] + [$modifier] --&amp;diceStr|+ − [img width=55 height=55][@advDiceArr([$advIndex.Raw])][/img] + [$modifier.Raw] --&amp;rerollStr|+ &nbsp;&nbsp; [rbutton:#FFFFFF:#3988bf:20px]Reroll::RerollReentry;Advantage[/rbutton] --&amp;advStr|(Disadvantage) --]| --:PRINT RESULTS| --+|[&amp;diceStr] --+|[&amp;rerollStr] --#leftSub|[&amp;advStr] --?[$rerollNum] -gt 0|[ --#rightSub|reroll #[$rerollNum] --]| --+|[hr #ffffff] --+|[rbutton:#000000:#ffffff:16px]Reroll All::RerollReentry;All[/rbutton] --+|[hr #ffffff] --?[$hopeDieRoll] -gt [$fearDieRoll]|[ --+|Total: [$total] with [img width=64 height=30][&amp;hopeLabelURL][/img] --]| --?[$hopeDieRoll] -lt [$fearDieRoll]|[ --+Total:|[$total] with [img width=64 height=30][&amp;fearLabelURL][/img] --]| --?[$hopeDieRoll] -eq [$fearDieRoll]|[ --+|[c][#009900]Critical Success![/#][/c] --]| --=rerollNum|[$rerollNum] + 1 --X| End Macro --:FUNCTIONS| --:ConfigureURLs| --:Hope Dice| assigns URLs to array --~|array;define;hopeDiceArr;<a href="https://s3.amazonaws.com/files.d20.io/images/386684787/pLnNqty6KSOAiRB4oLszvw/max.png?1711770174;https://s3.amazonaws.com/files.d20.io/images/386684766/0oY4y0j71SStvELQWRw4zg/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684769/Ynj80moMR_UxPrGF-jFGQw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684768/gYSq8iPvxGCtZv1vFV5puw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684772/3S30DV2ppNkDhMW64UE8-w/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684777/1AgV_bchNfYX2hwajLu0Qw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684770/c6YYtBUlwonaACsSwjbNJA/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684785/IFIci57lDHz9Nt0DJ_03ww/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684773/NW-euYoSrCuaPfoDEosy_w/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684780/BPUmHeovI3xVYJweh24RLg/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684767/bJZx3C7cp58hIHF7H8Sqbw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684764/_Tr2qAm2WENnOVPeuOv0yw/max.png?1711770173" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/386684787/pLnNqty6KSOAiRB4oLszvw/max.png?1711770174;https://s3.amazonaws.com/files.d20.io/images/386684766/0oY4y0j71SStvELQWRw4zg/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684769/Ynj80moMR_UxPrGF-jFGQw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684768/gYSq8iPvxGCtZv1vFV5puw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684772/3S30DV2ppNkDhMW64UE8-w/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684777/1AgV_bchNfYX2hwajLu0Qw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684770/c6YYtBUlwonaACsSwjbNJA/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684785/IFIci57lDHz9Nt0DJ_03ww/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684773/NW-euYoSrCuaPfoDEosy_w/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684780/BPUmHeovI3xVYJweh24RLg/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684767/bJZx3C7cp58hIHF7H8Sqbw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684764/_Tr2qAm2WENnOVPeuOv0yw/max.png?1711770173</a> --:Fear Dice| assigns URLs to array --~|array;define;fearDiceArr;<a href="https://s3.amazonaws.com/files.d20.io/images/386684782/LOYKMtIHsNQvaL1h48xWCg/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684779/mb7pq_d4QXx5X7ENj_FiqA/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684786/7PeBPzF4WvUr4YboKs4EIw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684778/3lg3zRIdZjbfiVMJsuM_fw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684771/yeA-fd75wgQg82Wgocqb_g/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684776/h0wXfQDPP-2zLKmOOuOwSQ/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684781/HOE8OXqyjALj8fCrpDHD1w/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684783/ONl_cTRUZJnUN6Cj32COSg/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684765/-FH7nyFQQNeznkAgRMHYzw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684775/lIk7T5QvZTQlO6tHCx-cTA/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684774/fvyaG_Ubbs2MA3oD47DJEQ/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684784/hc3VuGTPem3NGCRF1jYl6w/max.png?1711770173" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/386684782/LOYKMtIHsNQvaL1h48xWCg/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684779/mb7pq_d4QXx5X7ENj_FiqA/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684786/7PeBPzF4WvUr4YboKs4EIw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684778/3lg3zRIdZjbfiVMJsuM_fw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684771/yeA-fd75wgQg82Wgocqb_g/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684776/h0wXfQDPP-2zLKmOOuOwSQ/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684781/HOE8OXqyjALj8fCrpDHD1w/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684783/ONl_cTRUZJnUN6Cj32COSg/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684765/-FH7nyFQQNeznkAgRMHYzw/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684775/lIk7T5QvZTQlO6tHCx-cTA/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684774/fvyaG_Ubbs2MA3oD47DJEQ/max.png?1711770173;https://s3.amazonaws.com/files.d20.io/images/386684784/hc3VuGTPem3NGCRF1jYl6w/max.png?1711770173</a> --:Adv/DisAdv Dice| assigns URLs to array --~|array;define;advDiceArr;<a href="https://s3.amazonaws.com/files.d20.io/images/386767136/uKTWuK0C9C8yx6vc5lK69w/max.png?1711824117;https://s3.amazonaws.com/files.d20.io/images/386767147/LySQue9UmI7NRS_ji4XSBA/max.png?1711824119;https://s3.amazonaws.com/files.d20.io/images/386767156/TIItDLMrCgWi969ieNTG3A/max.png?1711824122;https://s3.amazonaws.com/files.d20.io/images/386767164/gHuyDu2bjTyJGEM60GvsSg/max.png?1711824127;https://s3.amazonaws.com/files.d20.io/images/386767171/PXKBpxxWBJ9PszLtNkRpmw/max.png?1711824131;https://s3.amazonaws.com/files.d20.io/images/386767217/Vd1Kz7B4sza5VuBcvic7JQ/max.png?1711824133" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/386767136/uKTWuK0C9C8yx6vc5lK69w/max.png?1711824117;https://s3.amazonaws.com/files.d20.io/images/386767147/LySQue9UmI7NRS_ji4XSBA/max.png?1711824119;https://s3.amazonaws.com/files.d20.io/images/386767156/TIItDLMrCgWi969ieNTG3A/max.png?1711824122;https://s3.amazonaws.com/files.d20.io/images/386767164/gHuyDu2bjTyJGEM60GvsSg/max.png?1711824127;https://s3.amazonaws.com/files.d20.io/images/386767171/PXKBpxxWBJ9PszLtNkRpmw/max.png?1711824131;https://s3.amazonaws.com/files.d20.io/images/386767217/Vd1Kz7B4sza5VuBcvic7JQ/max.png?1711824133</a> --:Hope/Fear labels| --&amp;hopeLabelURL|<a href="https://s3.amazonaws.com/files.d20.io/images/386775694/kdj_HkaacGCzFq0FZ5dgZw/max.png?1711827386" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/386775694/kdj_HkaacGCzFq0FZ5dgZw/max.png?1711827386</a> --&amp;fearLabelURL|<a href="https://s3.amazonaws.com/files.d20.io/images/386771482/nWlYQtdkBocgVKrtSJLxQA/max.png?1711825760" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/386771482/nWlYQtdkBocgVKrtSJLxQA/max.png?1711825760</a> --&lt;| }}
That's awesome man!
1713275797

Edited 1713279389
Any update to the duality dice query now that the advantage/disadvantage are rolling another hope dice instead of the 1d6? So far i have solved for this by splitting the macro into 3 macros, one for normal, advantage, and disadvantage with a callout to check the dropped value on the advantage results for a critical match.
1713279266
timmaugh
Pro
API Scripter
That is...&nbsp; ...wow. I second vince's declaration about RainbowEncoder's other-worldly origins. =D Here is a metascript option for the same effect, again using Jarren's original template command line as a starting point: !&amp;{template:default} [[ [[1d12[Hope] ]] + [[1d12[Fear] ]] ?{Advantage|Regular, |Advantage,+ 1d6|Disadvantage,- 1d6} + ?{Modifier?|0}}}]] {{name=Duality}} {{Hope=$[[0]]}} {{Fear=$[[1]]}} {&amp;if $[[0]] = $[[1]]} {{Critical!}}{&amp;end} {{Total=$[[2]] }}{&amp;simple} This uses APILogic to evaluate the values of the rolls and only output the "Critical!" line if the dice are equivalent. Here is an example of consecutive runs where one time there was no critical scored, and the next time there was. Required Scripts MetaScriptToolbox
1713481722
David M.
Pro
API Scripter
Joshua D. said: Any update to the duality dice query now that the advantage/disadvantage are rolling another hope dice instead of the 1d6? So far i have solved for this by splitting the macro into 3 macros, one for normal, advantage, and disadvantage with a callout to check the dropped value on the advantage results for a critical match. I hadn't seen that update. I don't actually play it currently, but I've been interested in the mechanics. I'll take a look at it this weekend and see if I can make the SC macro current.