@Chime Awesome, after working off of your examples and adjusting a bit, it looks like I have a working rudimentary dice roller hifive:
CMD_DICE: $+dice *d*:@remit %L=<Dice> %N rolled %0d%1 for [die(%0, %1)]
CMD_ADICE [R]: $^\+adice ([0-9]+)d([0-9]+)\+?(-?[0-9]+)?$:@remit %L=<Dice> %N rolled %1d%2[if(strlen(%3),if(gte(%3, 2),+,-)%3,)] for [add(die(%1, %2),%3)].
While it seems to be working, the adice is doing something strange, it's adding an extra '-' to the output and I can't tell why:
Dice:
<Dice> Famine rolled 3d10 for 14
<Dice> Famine rolled 3d10 for 15
<Dice> Famine rolled 3d12 for 28
Adice:
<Dice> Famine rolled 2d6+4 for 11.
<Dice> Famine rolled 2d6--4 for 4.
I'm also a bit puzzled why I basically had to +1 the %s in the adice.
ETA:
got it checking an attribute off of my bit. Look at me go!
&tdice dco=$+check *:@remit %L=<Dice> %N checked %0 for die(1, [get(%N/%0)]).