OK, the extra embedded inline rolls were causing a problem with the processing of the rolls. You (apparently) needed them because your queries had a space before the number... which meant that you had to convert them TO a number so that their values could be concatenated (as strings, again) to become a LARGER number... Somewhere in either the spaces or the extra inline rolls Roll20 was barfing. We can simplify both at the same time... just by removing the spaces from the query values, then removing the extra inline rolls. Here is the working syntax (mocked up and tested in my game): Macro1 !setattr --charid -Oekif8xCmQ_UKIdgW6H --DCVariable|?{DC Reached|DC 10,1|DC15,2|DC 20,3} Macro2 !rt[Delimiter:BR] &{template:default} {{name=Foraging Plants}}{{You Found =[\[\@(VariableStorage|DCVariable)t[\?{Biome|Arctic,1|Blightshore,2|Coast,3|Desert,4|Feywild,5|Forest,6|Grasslands,7|Hill,8|Mountain,9|Savannah,10|Swamp,11|Urban,12|Underground,13|Volcanos,14}@(VariableStorage|DCVariable)\]\]\] }} Combined #macro1 #macro2 {&delay .4} Notice that after the commas of the queries I have removed the space that prepended the numeric values. If we can guarantee that the values already LOOK like numbers (even though they're stored as text on the sheet), they will function as numeric components of an inline roll. A Note on Table Returns RecursiveTables is powerful for returning multiple elements from a table, but its true power comes from its ability to expand nested inline rolls from table returns. That is, if the thing you get back from the table, itself, contains another roll, RT will expand that inline roll... trying to get a "full/final" rendering of all of the rolling that needs to happen. However, in using it, you do have to frame your command line as being owned by RT... Your command becomes a call TO RecursiveTable to have it do all of the work (it begins with "!rt"). The MetascriptToolbox also offers a way to get any or all (multiple) returns from an inline roll, but doesn't need to own the message. It can expose those items in a command line devoted to another script, or in a command line just intended for the chat output. For example: ![[3t[33]]].items({&nl}) {&simple} The operative syntax is the ".items()" attached to an inline roll (or roll marker), within which you put your delimiter. In this case, I used the meta tag for a "new line". Or, as a part of a template, like what you want to do: !&{template:default} {{name=Foraging Plants}} {{You find=[[3t[33]]].items({&nl}) }}{&simple} So your actual command line for macro2 (taking into account the variable storage you want to do) would be: !&{template:default} {{name=Foraging Plants}}{{You Found =[\[\@(VariableStorage|DCVariable)t[\?{Biome|Arctic,1|Blightshore,2|Coast,3|Desert,4|Feywild,5|Forest,6|Grasslands,7|Hill,8|Mountain,9|Savannah,10|Swamp,11|Urban,12|Underground,13|Volcanos,14}@(VariableStorage|DCVariable)\]\]\].items({&nl}) }} Again, if you have a need of the recursive power of RecursiveTables (ie, you have table returns that, themselves, have further inline rolls), you might want to use the RT version. The Metascript Toolbox offers ways to recurse over nested inline rolls, but it can require an extra step of setup (using metascript tags attached to the returned inline rolls in the table). It can take a little experimentation to determine the best path forward for what matches your needs. For example, if each of the entries in the table had a basic inline roll attached to it (ie, instead of just "Gillyweed" the first entry was "Gillyweed [[1d6]]"), the Toolbox would automatically roll those results for you with no further setup: On the other hand, if the entry was "Gillyweed [[3t[33]]]", requiring a further 3 rolls against the table, then the entry would require the ".items({&nl})" syntax to extract the values: (I added another line break following the name just so the new entries would start on their own line.) Now, if "Gillyweed" comes up, it will automatically roll 3 more times against the same table: Again, this is just to demonstrate the tradeoffs of the various approaches of the Toolbox vs RecursiveTables. I know you don't need THIS kind of flexibility in this case, but maybe the Toolbox version of your command line reads more easily to your eye. The point is: RT can do the recursion natively (without extra verbiage) but has to own the message; where the Toolbox potentially requires a little more verbiage/setup in the tables, but then frees you to use the results in any command line. As far as the ease of either approach, YMMV.