
So the system is this: players roll a positive and a negative d6. Whatever result comes up modifies their Ability score.
Example: A thief with DEX 15 has to pick a routine lock. The player rolls and gets +6 and -2, so the result is 15+6-2=an effective DEX of 19.
I already have a macro that does routine rolls like this. But neither I nor my players could figure out how to handle rolling with Advantage/Disadvantage. In these situations, the players roll extra dice (how many depends on how good or bad the situation is.) HOWEVER, only the best (or worst) pair are used in the final calculation.
Example: Same thief is trying to climb a rope in the rain while guards shoot at them. The GM declares that they have "Three Levels of Disadvantage," meaning they have to roll three extra dice, still taking the worst pairing. They roll and get +4, -1, -3, -5. The worst pairing would be +4 and -5.
In a perfect Roll20 Macro, the players would also be able to assign the extra dice however they wished. For example, in an Advantage situation, players would likely want to roll extra positive AND negative dice to get the best odds.
Example: Same player is trying to sneak through a warehouse with a "borrowed" guard's uniform. The GM grants "Two Levels of Advantage." The player chooses one extra positive and one extra negative. They roll: +3, +6, -2, -1. The best possible result here is +6, -1 so the player (or ideally Roll20) chooses that to add to their DEX.
Final wrinkle: On a +6, -1 the player has scored a Critical Success. The positive d6 explodes (add and reroll), but still must subtract the -1 from whatever comes up on the exploding die. Explosions continue on each 6 rolled (and end on anything +1 through +5.)
For Critical Failures (a roll of +1, -6) they get -5 to their Attribute, or half normal Attribute (whichever is worse.)