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 .
×
Create a free account

Automatic Successes

I've noticed that there is an "f" command, for removing successes on a certain roll (or below/above), but there doesn't seem to be a corresponding command for adding an additional success on a certain roll (or below/above). Is this just something we'll need to keep waiting on, or is there a "fix" that would allow this without getting heavy into the API system?
1662684549
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Can you give some examples? I assume you are talking about die roll construction? AFAIK, the "f" code is used to count failures, not remove them. Beyond that, can you describe what it is you are trying to accomplish? Some of our folks are very clever and might be able to suggest another way to achieve your goal if the syntax you are looking at cannot be used for the purpose you need.
This is the current formula I'm using: Rolling Test [[?{Dice Pool|1}d10>?{Target Number|7}f1]] successes With this, every dice roll over the target number will display as a success, and every dice which rolls a 1 will not only not count as a success, but will subtract 1 from the total successes, which can result in negative numbers. I'm wondering if there is a similar command which would add an additional success on a critical. I've read some posts about it, but the most recent was something like 6 years ago.
1662684962

Edited 1662685157
timmaugh
Forum Champion
API Scripter
You have it already...? I mean, the 'f' comes into play when you're dealing with a success-based die roll. When you're dealing with a success-based die roll, you already have the "threshold" you're aiming for in the main part of the roll: [[4d6>3]] That will count a success for every roll at/above 3. Add the 'f' to that, along with a number or a comparison, and you get the corresponding way to remove successes: [[4d6>3f1]] Will give you a success for everything at/above 3, but remove one for every roll resulting in a 1. If you're looking to say something like "roll 4d6 and get a +1 for everything at/above 3, but an EXTRA +1 for each 6"... there are math-y ways to accomplish SOME rolls like that, but they tend to be highly oriented to the goal at hand. So if the above information doesn't answer your question, maybe you could state your specific need to see if someone has a way to solve it. EDIT: Wow, double ninja'd. Must be typing slow, tonight.
     If you're looking to say something like "roll 4d6 and get a +1 for everything at/above 3, but an EXTRA +1 for each 6"... there are math-y ways to      accomplish SOME rolls like that, but they tend to be highly oriented to the goal at hand. Yeah, that was basically what I was wondering. If, since there is a   command for a "critical failure" which removes successes, if there was an opposite command which would add an additional +1 on a "critical success", but if it's hard to do, it might just be best to leave it be.
1662686826
timmaugh
Forum Champion
API Scripter
You might need someone like RainbowEncoder to give you a definitive solution (if can even be done, short of a rollable table, which I don't think solves all of your requirements, anyway). If scripts are available, you can do this with Plugger + ZeroFrame. I know you don't have a Pro tag beside your name, but if the game-creator is a Pro subscriber, then scripts are available to you. In any case, for those who might happen on this who are Pro subs, this is the basic way to do something like this: !&{template:default}[[?{Dice pool?|1}d10>?{Target Number|7}f1cs>9]]{{name=Proof Of Concept}}{{Base Roll=$[[0]]}}{{Number of Criticals={&eval}getDiceByVal($[[0]] >1 crit count){&/eval}}}{{Final Result=[\][\]$[[0]].value + {&eval}getDiceByVal($[[0]] >1 crit count){&/eval}\]\]}} {&simple} You can replace the '9' with whatever critical success you want, or with a query for the threshold. The EVAL line basically is going to count the number of crit dice in Roll $0 which are also over 1 (in other words, all of the crit dice). I can go more in depth if scripts are available, but chances are they are not... so... someone light the RainbowEncoder beacon.
1662687311

Edited 1662687510
Oosh
Sheet Author
API Scripter
Edit - ninjaaaaaaaaad, should probably learn to hit F5 when I've been AFK for a while. I'll bet Rainbow's happy to get two mentions in a row though! So.... if you want +2 / +1 / 0, that can be done pretty easily: [[?{Dice Pool|1}d10>?{Target Number|7}f1 + ?{Dice Pool}]] successes This adds the number of dice thrown to the total, effectively increasing the value of each throw by 1 and bumping the scale up from -1 / 0 / 1 If you want +2 / +1 / 0 / -1, that's much harder since the parser isn't designed to handle 4 comparison groups. RainbowEncoder is probably your only hope there.
I fear my reputation is taking on a life of it's own. As the others have stated this kind of multi-success/failure macro is difficult to accomplish due to limits on comparisons and rollable tables. There is a way to do this with /roll or /gmroll commands /roll [[?{Dice Pool|1}d10>10]]*2 + (?{Dice Pool}-$[[0]])d9>?{Target Number|7}f1cs0 This works by checking for crits first and then rolling the non-crits normally but this doesn't work as an inline roll since the value of a specific inline roll can only be used by one other inline roll. If inline rolls are required the only true solution involves creating a rollable table for every possible target value but if you did have rollable tables target1 to target10 you could use [[?{Dice Pool|1}t[target?{Target Number|7}] ]] As an example target7 would have values -1, 0, 1, 2 with weightings of 1, 5, 3,  1 Without creating rollable tables the closest you can get is an analogue of the /roll version but due to the limits of roll duplication you have to specify the entire range of possibilities. This limits the amount of crits you can roll to an amount equal to how many you're willing to type, also it gets slower the higher you go. This monstrosity supports a maximum of 20 crits &{template:default} {{[[ (?{Dice Pool|1}-$[[22]])d9>?{Target Number|7}f1cs0sa + 2*$[[43]]d0>0 ]] Successes}} $[[[[{ {?{Dice Pool}d10>10},{20} }kl1+1]]]]] [[[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[ [[0]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] [[20]][[19]][[18]][[17]][[16]][[15]][[14]][[13]][[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]][[0]] [[20]][[19]][[18]][[17]][[16]][[15]][[14]][[13]][[12]][[11]][[10]][[9]][[8]][[7]][[6]][[5]][[4]][[3]][[2]][[1]][[0]] None of these solutions are ideal but they all work to varying degrees.
1662731634
Gauss
Forum Champion
RainbowEncoder said: I fear my reputation is taking on a life of it's own. As the others have stated this kind of multi-success/failure macro is difficult to accomplish due to limits on comparisons and rollable tables. We all bow before the mighty intellect of RainbowEncoder whose name is spoken of with awe in hushed tones.  Seriously, you are the topic of conversations because of your wizardry. We really are in awe of you. You make things possible that most of us could never dream of. 
The Table idea works perfectly for what we need. Thank you so much!
It, weirdly enough, makes "successes" look like crit fails, because they're colored red. Which isn't a huge deal, but it's kind of funny.