I'll check it out .. but for the moment, here is what I've got: The button <button type="action" name="act_CONadv">+</button> The script on('clicked:CONadv', (info) => { startRoll("&{template:BXDH_General}{{calltype=[[2]]}}{{name=@{character_name}}}{{action=ABILITY CHECK}}{{detail=Constitution}}{{roll1=[[?{Character Advantage|None,1d20|Advantage,2d20kh1|Disadvantage,2d20kl1} + 5 + @{Level} - @{encpoints} + @{CONm} + ?{Any Additional Modifiers|0}]]}}{{roll3=[[?{Using any Fate?|0}]]}}!modattr --silent --charid @{character_id} --LUK|-{{roll2=[[?{Using any Luck?|0}]]}}!!!", (results) => { const total = results.results.roll1.result const luck = results.results.roll2.result const fate = results.results.roll3.result const computed = total + (luck * 5) + (fate * 5) finishRoll( results.rollId, { roll1: computed } ); }); }); and it points to a template; simplified version for reference (variable of note in bold): <rolltemplate class="sheet-rolltemplate-BXDH_General"> <div class="container"> {{#rollTotal() calltype 2}} <div><h1>{{name}}</h1></div> <div><h2>{{action}}{{#detail}}<br>{{detail}}{{/detail}}</h2></div> <div><h3><center> {{#rollGreater() roll2 0}}Luck Points: {{roll2}}<br>{{/rollGreater() roll2 0}} {{#rollGreater() roll3 0}}Fate Points: {{roll3}}<br>{{/rollGreater() roll3 0}} Roll Total: {{computed::roll1}} </center></h3></div> {{#rollGreater() computed::roll1 19}} <div class="success"><h4>Success</h4></div> {{/rollGreater() computed::roll1 19}} {{#^rollGreater() computed::roll1 19}} <div class="failure"><h4>Failure</h4></div> {{/^rollGreater() computed::roll1 19}} {{/rollTotal() calltype 2}} </div> </rolltemplate> and as I'm writing this i realize i don't need chatsetattr at all, but it works!