You can do something like this: /w gm &{template:default} {{name=Attack on @{target|t1|token_name}, @{target|t1|hp|max} health pool}} [[ floor([[ {[[1d?{Max damage|100%,100|75%,75|50%,50|25%,25}]],?{Minimum|10%,10|25%,25}}kh1 ]]/100*@{target|t1|hp|max}) ]] {{Initial Roll = $[[0]]%}} {{Adjusted Roll = $[[1]]%}} {{Damage = $[[2]]HP}} This changes it to a @{target} call so you don't have to remember to select the right token before you run it (you'd probably have an NPC selected if you're rolling their damage). Note the two different ways of doing minimum and maximum - the max is as you had it, it changes the actual roll so that you still have an even spread of damage - 1d75 / 100 has an even chance of doing anywhere from 1% - 75% damage. The keep highest 1 operator is instead bumping the roll up to 10% if it's below 10. So you'd have a higher chance of getting hit for 10% damage than anything else: rolls from 1-10% all do 10%, rolls from 11%-75% do what they say. I thought I'd do that to see which one you wanted to use - but you probably want them to match. For a flat distribution (like the max you currently have) the math for a 10% minimum & 75% maximum makes it something like 1d(75 - 10) + 10 or 1d(?{Max} - ?{Min}) + ?{Min} This rolls 1d65 and gives an even spread of 10%-75% rolls. Figured I'd give you the option though, since maybe you want to leave the full 1d100 roll in, making your maximum cap much more likely to be hit - if you set it at 50% on a 1d100 roll, for example, a player has a 50% chance of taking 50% damage, making damage less swingy. It entirely depends on how you want it to work, and what the HP pools are like. 5e tends to favour more predictable damage, other games not so much. Edit - also changed from round to floor, I just realised. 5e habit, you may prefer Round