Comparing numbers, greater than or equal to, and return only one of two dice rolls So, using Mike deBoston's trick for comparing values without the API , I came up with an inline-heavy trick to cut off dice progression for a skill/spell/ability once a certain level requirement is met. The example use case for this is Pathfinder v1, for a spell that has a maximum die level determined by caster/class level, with a threshold where the die level stops increasing at a certain caster/class level. Part 1 of the comparison starts with just whether the caster/class level is below the threshold: [[ [[ [[ floor([[ {-1000, (@{CharacterName|class-#-level}+1)}<X]]/2)]]*@{CharacterName|class-#-level}]]dY]] Where # is (class-1) in the Pathfinder sheet, typically the 1st class if not multiclassing, and Y is the die (ex: d4, d6...). X is the level cutoff. We're comparing to see if the class level is less than the cutoff, using "<X". True returns "2", and False returns "1". We need to make those results, "1" for True and "0" for False, so we divide the result by 2, and then wrap that part in a "floor()". Then we take the floored equation, which now outputs either 1 or 0, and multiply by the class level, which will return either 0 or the class level. Part 2 of the comparison is the inverse of what we did above, finding whether the caster/class level is above the threshold: [[ ([[ {-1000, (@{CharacterName|class-#-level})}>X]]*X)dY ]] The same identifiers from the above equation are the same here, with # being (class-1), Y is the die, and X is the level cutoff. In this case, since we're going >X, True already returns "1" and False returns "0". Which we then multiply by the level cutoff, getting either 0 or (level)d(Y) as a result. Part 3: Combine the two equations with "+" , and wrap in one more set of double brackets, to get the whole roll: [[ [[ [[ [[ floor([[ {-1000, (@{CharacterName|class-#-level}+1)}<X]]/2)]]*@{CharacterName|class-#-level}]]dY]] + [[ ([[ {-1000, (@{CharacterName|class-#-level})}>X]]*X)dY ]] ]] The final result for my current Pathfinder v1 character, Uro, who is a Fire domain Cleric with the ability to cast Burning Hands, with a damage die of 1d4 per caster level, and a threshold of level 5/max 5d4, looks like this: [[ [[ [[ [[ floor([[ {-1000, (@{Uro|class-0-level}+1)}<5]]/2)]]*@{Uro|class-0-level}]]d4]] + [[ ([[ {-1000, (@{Uro|class-0-level})}>5]]*5)d4 ]] ]] Below level 5, hovering over the result in chat looks like "Rolling ## + 0 = ##+0". Over level 5, the hover result in chat looks like "Rolling 0 +## = 0 +##". In both cases '##' represents the half of the die roll equation that was allowed to go off. So ideally one would want to use some of the other tricks lying around if it is necessary to see the individual dice rolls, but this was meant to be a means of "set it and forget it". The Pathfinder v1 sheet gets pretty busy and it's nice to only have to adjust it when adding new abilities instead of also when fixing old ones every level-up or two. Much like the macro someone came up with for setting/forgetting the bonus for Blessed Healer (was gonna link it for posterity but now I can't find it :\ [edit: found it , and it's actually more similar to the solution in the reply below this post, I just didn't understand it well at the time]). If someone else has a better/cleaner version, then by all means share it/point me at it!