How about: [[ ?{How many}d?{What die|4|6|8|10|12|20}>?{Target Number} ]] You can replace any of those queries with hard coded values if some of the data never changes. edit: oh hang on, I see that you can have a pool of dice of different values... let me just tweak... Something like: [[ {?{d4s|0}d4,?{d6s|0}d6,?{d8s|0}d8,?{d10s|0}d10,?{d12s|0}d12,?{d20s|0}d20}>?{Target Number} ]] Although that only counts the grouped rolls as successes or failures, is it individual dice that need to beat the target or each group of the pool? If it is each individual die then your way is likely the best although you could substitute the target for a single repeated query so that you can have a flexible roll with only one query for the target: [[ ?{d4s|0}d4>?{Target Number} + ?{d6s|0}d6>?{Target Number} + ?{d8s|0}d8>?{Target Number} + ?{d10s|0}d10>?{Target Number} + ?{d12s|0}d12>?{Target Number} + ?{d20s|0}d20>?{Target Number} ]]