Another API-dependent solution would be the Meta Toolbox, if you wanted to go that route. I managed to get the below output using the following solution... This requires a mule (an ability) on a character set up like this: TreasureRow={{Treasure=get\.MuleBoy.TreasureDeck.TreasureRowContent/get}} TreasureRowContent=[\\][\\]1t[TreasureDeck-CRget.MuleBoy.TreasureDeck.TreasureDeckTable/get] \\]\\] {\&if get.MuleBoy.TreasureDeck.RowCount/get > 1}%NEWLINE%get\\.MuleBoy.TreasureDeck.TreasureRowContent/get set\.MuleBoy.TreasureDeck.RowCount = {\& math get.MuleBoy.TreasureDeck.RowCount/get - 1}/set{\&end} RowCount=1 TreasureDeckTable=1-4 (the last two will change with every run of the macro) I named that mule "TreasureDeck" and put it on a character called "MuleBoy" to which anyone who runs the below macro will need access. To run it, use the following macro: !&{template:default}{{name=Treasure Horde!}}get\.MuleBoy.TreasureDeck.TreasureRow/get set.MuleBoy.TreasureDeck.RowCount=?{How many times?|1}/set set.MuleBoy.TreasureDeck.TreasureDeckTable=?{CR?|1-4|5-8|9-12|13-16|17-20}/set {&mule MuleBoy.TreasureDeck}{&simple} I obviously had to mock up tables, but here is some example output (2 runs, the first time asking for 4 rolls against table 1-4, then asking for 5 rolls against table 5-8): My table entries had inline rolls, themselves, and you can see that they expanded/rolled to give immediate results. REQUIRED SCRIPTS: ZeroFrame, APILogic, Muler... probably SelectManager