Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×

Attempting a "Proven Value" or How to adjust bulk rolled dice to meet a flat value without API

Hi there, I'm a long-time Macro guy and I've come up against something which has me somewhat stumped. I'm hoping the experts beyond my skills know enough to assist. I will also stress that my intent is to avoid using APIs. So, We'll start out with a basic understanding of my goal. [[  [[{1d6,0d1+4}kh1]][p4] + [[{1d6,0d1+4}kh1]][p4]  ]] What this does is it rolls two instances of 1d6, checks whether it exceeds the value of '4', and then keeps the highest value of the two and adds them together, marked at the end with [p4] for readability In this instance this would be '2d6 with proven 4'. Put another way, this rolls a dice, and gives you a flat minimum value of 4 WITHOUT rerolling the dice, as the result could theoretically wind up higher than normal. another form of the same concept: [[{1d10, 1d10, 0d1+6, 0d1+6}kh2]][p6] Here we are effectively rolling 2d10s, checking each dice against '6', and keeping the highest values. This would be 2d10 with Proven 6 [marked as such] Now let me stress, this is functional, but I'm attempting to change its format to one in which I do not have to separate each d10 or d8 into its own instance, with its own paired 0d1+X to resolve. If I hypothetically wanted a Fireball's damage of 8d6 but modified to have Proven 4, I'd need to manually separate out each dice. Additionally if I needed to copy this for use in multiple places, it would require a decent bit of upkeep for each new location. Currently my ideas involve using the "matching" (eg. 2d6m or 3d8mt) inline roll checker and setting a minimum or maximum value (eg. 1d10<4 or 2d4f>2) to determine success/failure rates, then using $[[0]] or similar re-referential code to modify the numbers to suit my needs, to no avail. All that said, I must ask, is there a more concise way to achieve and modify a bulk "proven" value than doing each dice individually?
1773756579
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Unfortunately, I don't think there's any way to do this short of an API script or custom character sheet (both pro+ features)
1773774956

Edited 1773775179
Gauss
Forum Champion
Yes, you can do this but it is unwieldy and ugly.  Basically, you leverage on/off switches for multiple entries.  [[{1d6,0d1+4}kh1]]*[[{?{How many dice?|1|2|3|4|5|6|7|8},0}>1]] +[[{1d6,0d1+4}kh1]]*[[{?{How many dice?},0}>2]] +[[{1d6,0d1+4}kh1]]*[[{?{How many dice?},0}>3]] +[[{1d6,0d1+4}kh1]]*[[{?{How many dice?},0}>4]] and so on.... This allows you to turn on the number of groups you want.  You can set this up via attributes to make it easier.  @{d6} = [[{1d6,0d1+4}kh1]] That gives us:  @{d6}*[[{?{How many dice?|1|2|3|4|5|6|7|8},0}>1]] + @{d6}*[[{?{How many dice?},0}>2]] + @{d6}*[[{?{How many dice?},0}>3]] ................. That way if you need to modify d6s you can do that quicker.  Similarly, you can modify the how many dice check by putting that into an attribute also. 
Some alternatives that are a bit nicer would be Counting how many dice beat the proven value and using that number to roll the excess and add the minimum value. For 8d6 proven 4 it would look like [[ [[8d6>[[4 + 1]] ]]d(6-4)cf0 + 8*4 ]] But it's a little slower and you don't get the 'real' rolls Doing a single sub-roll group roll [[ {8d6 +{ {4} }+{ {4} }+{ {4} }+{ {4} }+{ {4} }+{ {4} }+{ {4} }+{ {4} } }k8 ]] The only rolls are the 'real' rolls, they don't have to be divided but you do need a +{ {4} } for each die rolled. However having extras of the proven value doesn't cause any problems so you could replace the 8's with a query to roll fewer dice Doing a single sub-roll group roll with a rollable table for proven value [[ {8d6 + 8t[proven4] }k8 ]] Most of the advantages of the previous roll plus not having to repeat the proven value. However you do need to create a rollable table with a single entry of the proven value and then a different table for each proven value you need. Finally there is an open suggestion for a custom dice syntax that would also solve this quite nicely. So consider adding your vote and voice to it.
1773861580
Gauss
Forum Champion
Thanks RainbowEncoder :)