@alzie What I'm saying is they only matter when you roll them. Once you're looking at final results, they are what they are and it doesn't matter where they came from. They do matter for explodes but that's still an intermediary step (one of the bunch I mentioned when I said its a bad system for a MU). What you're talking about with the result types is what I'm getting at, basically.
Codewise, I think your basic roll would be easy, ie something like:
+roll ring+skill : <Name> rolled <skill> with <ring> and keeps <ringval>: [success/strife] [success] [blank] <- you can still make the dice origin clear if you want to by labeling or color-coding these, if you want
What I was getting into above with 'automated' versions was saving people manually picking through, ie something like:
+roll ring+skill vs TN: <Name> rolled <skill> with <ring> vs a TN of <#> and [Succeeded/Failed]! with [#] successes, [#] opportunity and gaining [#] strife
This would be the shell command for all automated versions. The code would basically be two loops. The first would go to kept dice/ring OR TN (ie, for x,x=<ring or succCount=TN,x++), the second would loop through whatever was leftover (if you got to TN before ring). Each loop would then prioritize the dice to take, ie for the first loop: succ/opp, succ, succ/strife, opp, opp/strife (I'm ignoring explosions for now, they add some further complexity to this structure but the core idea stays the same)
The second loop would probably be defined by a switch (like I was talking about above). IE /succ would keep the above priority for both, but /opp would change it to succ/opp,opp,opp/strife,succ.
What I was getting into above about how unfortunately branching that logic is, because you have many scenarios: 'I want maximum successes no matter what' 'I want TN successes and then opportunity' 'I want TN then opportunity but not at the cost of strife' and 'I'm a crazy shugenja and I actually want strife BURN FUCKERS BURN!'
Also, you said you had your old code and the thing you did in sheet with the rings was really cool. Did you still have that?
I have my old code I think, but the +sheet isn't terribly relevant since the visuals/formatting were based on stat stuff that no longer exists. I was proud of my Ring thing too, but it's based on the whole attribute-ring pairing that 1-4E had (ie Air = Reflexes/Awareness). In 5E rings are just rings and there aren't any substats.