First, that's an elegant solution, Rainbow! Stashing that one away in my "RainbowEncoder Examples" bookmark folder. =D As for the original question, if scripts are available then there are a few ways to do it with the Metascript Toolbox. Here are just 2: Re-Use the Roll One limit to doing a modulo operation on the original roll is that you can't use a roll for further inline roll math operations outside of its hierarchy of nesting. That's a mouthful. Let's just say: you can't do math on reused rolls. You can report their value, but you can't use them in another roll. But metascripts can extract the value and run another round of inline rolls. Here is an example: !&{template:default}{{name=Proof of Concept}} [\][\] [[[[[[1d100]] - (@{WeaponSkill} + ?{Modifier|0}) ]]/10]] - ($[[2]] % 1) \]\] {{d100=$[[0]]}} {{Target=[\][\]@{WeaponSkill} + ?{Modifier} \]\] }}{{d100-Target=$[[1]]}} {{Div by 10=$[[2]]}} {{Final=$[[3]]}} {&simple} That's a lot of verbiage just to unpack the various parts for reporting. The key bit is the roll, which is really in two parts. First, the rolls that happen immediately (the original stack of nested inline rolls): [[[[[[1d100]] - (@{WeaponSkill} + ?{Modifier|0}) ]]/10]] The levels of nesting are there for later reporting (pulling out the d100 roll by using roll $0, etc.). If you didn't want (or need) to report those individual values, you could collapse all of that to a single roll and just adjust the roll marker index in the modulo operation (the next portion). The next portion... is... the result of the first set of inline rolls performing a modulo-1 to get just the decimal portion, which we subtract: [\][\] ...previous stuff... - ($[[2]] % 1) \]\] Here is an example of this working: If you go this route, you could further dress things up by using APILogic (part of the Toolbox) to test if the final answer was positive or negative, and labeling it "Degrees of Success" or "Degrees of Failure". Use MathOps to Truncate the Result In MathOps (another metascript in the Toolbox) you can perform a truncation operation to remove the decimal portion of a number and just return the integer (in effect, always rounding toward 0). That is even simpler than the above, and would look like this: !&{template:default}{{name=Proof of Concept}} [[[[[[1d100]]-(@{WeaponSkill} + ?{Modifier|0}) ]]/10]] {{d100=$[[0]]}} {{Target=[\][\]@{WeaponSkill} + ?{Modifier|0} \]\] }}{{d100-Target=$[[1]]}} {{Div by 10=$[[2]]}} {{Final={&math trunc($[[2]])} }} {&simple} We no longer need the second set of rolls (I left the roll in the "Target" template part just to let you hover over the result to see the math, if you wanted, but in practice you probably wouldn't need this line of reporting). Instead, all of the work is done in the MathOps {&math} tag, found in the "Final" template part. Here is an example of this working: Again, you could use APILogic to further dress this up, and/or you could put the MathOps operation in an inline roll, itself, if uniformity of the final presentation of numbers was important.