Welcome to MetaScript Air, I'll be your captain for this flight... =D Short of a RainbowEncoder trick to structure your rolls to show you the failures, there isn't a built-in way to show the failures and the successes. Nor is there a built-in way to run a conditional output based on that number (conditionals in general are very limited to a handful of math tricks at best). But you can do both of those things with a couple of metascripts. You can get the 1s from a given roll by using a Plugger getDiceByVal() statement: {&eval}getDiceByVal($[[1]] 1 all total){&/eval} Then you can use that in an APILogic conditional check do see if the value is at least 1, and include the button if it is (btw, I think you left a closing parentheses off your button syntax): {{dmg2={&if {&eval}getDiceByVal($[[1]] 1 all total){&/eval} >= 1}[Gets Hot](!
#Gets-Hot )}} In order to make the metascripts work, however, we have to start the message with a bang (!), and then we have to include a {&simple} somewhere in the line (somewhere that survives conditional inclusion -- eg, don't put it in a conditional unless you conditionally want to sometimes output a simple message vs. sometimes let the message continue on to the script moderator). The final version of your line would look more like: !&{template:atkdmg} {{rname=Plasma Pistol}} {{range=12 inch}} {{damage=1}} {{dmg1flag=1}} {{dmg1flag=1}} {{dmg1=[[?{how many shots}d6>[[7-?{BS}]]]]}} {{dmg2flag=1}} {{dmg1type=Str 7, AP 4}} {{dmg2={&if {&eval}getDiceByVal($[[1]] 1 all total){&/eval} >= 1}[Gets Hot](!
#Gets-Hot )}} {{spelldesc_link=[To Wound](!
#To-Wound)}} {&simple} One other thing... if the button doesn't seem to want to work, I would look at retrieving it later. Currently, you're getting it with Roll20 syntax, so it gets returned immediately (before the metascripts get involved). If that turns into a problem, you can use an escaped version (a ZeroFrame construction): #^Gets-Hot ...where later in your line (out by the {&simple}) you include an escape construction: {&escape ^}