I was afraid that is where you were going to go with it. There are two options: 1) Modify the above, then make a Template where you pull the result out. 2) Use a Success/Failure style Rollable Table, then set it in a template. Here is an example of #1: &{template:default} {{name=Example}} {{Roll=$[[0.computed]]}} {{Red/Green=[[1d[[{[[1d20cf<0cs>21+?{Bonus?|0}]],0}>10]]cf<0cs>1]]}} While the above is accurate, I realized I was overthinking it. This should give you exactly what you want: [[1d20cf<[[{9-(?{Bonus?|0}),0}kh1]]cs>[[{10-(?{Bonus?}),1}kh1]]+?{Bonus?}]] Explanation: 1d20cf<9cs>10 is an inequality, similar to X<Y in math. It is solvable. So if something is on one side we can subtract it from that side and put it on the other. In this case: (1d20+modifier)<9 and (1d20+modifier)>20 becomes: (1d20)<(9-modifier) and (1d20)>(10-modifier) But because this is Roll20 we have to do some other things to make it work out, the above is just the math concept. [[1d20cf<[[{9-(?{Bonus?|0}),0}kh1]]cs>[[{10-(?{Bonus?}),1}kh1]]+?{Bonus?}]] First, we wrap the query in parenthesis because we are using subtraction. This protects against a negative bonus. Roll20 doesn't like double negatives. Second, we need to put a limit on how low these modifiers will take the 9 and 10. Below 0 and things break. Since anything below 0 is going to be a failure and anything above a 1 is going to be a success, we can cap them off with keep high (kh1). {9-(?{Bonus?|0}),0}kh1 and {10-(?{Bonus?|0}),1}kh1 Next, wrap them in inline brackets to get them to process before the cf< and cs> process. [[{9-(?{Bonus?|0}),0}kh1]] and [[ {10-(?{Bonus?|0}),1}kh1]] Finally, we add back in everything else: [[1d20cf< cs> and +?{Bonus?} Giving us: [[1d20cf<[[{9-(?{Bonus?|0}),0}kh1]]cs>[[{10-(?{Bonus?}),1}kh1]]+?{Bonus?}]] Note: we don't need to put |0 in every query, just the first. It will reuse the first query's output.