Ok, it seems that there was a miscommunication on my part. ;)
Take for example... this recipe.
<recipe1> known:false result:{type:"item", id:2, amount:2} <materials> {type:"item", id:1, amount:3, cons:true} <materials> goldCost:0 success:100 successGain:1 level:1 category:Alchemology xp:10 xpDeprac:2 craftLevel:1 pxp:2 craftMultiple:true<recipe1>Each time its crafted, it will 100% succeed or 100% fail. Consuming all materials each time.
Success = I get 3 of something.
Failure = I get nothing.
But, in this recipe: (if it worked this way)
<recipe1> known:false <result> {type:"item", id:2, amount:1, success:100, successGain:0} {type:"item", id:3, amount:1, success:50, successGain:1} {type:"item", id:4, amount:1, success:25, successGain:1} <result> <materials> {type:"item", id:1, amount:3, cons:true} <materials> goldCost:0 level:1 category:Alchemology xp:10 xpDeprac:2 craftLevel:1 pxp:2 craftMultiple:true<recipe1>I can get anywhere between 1 or 3 different items on success... And I am guaranteed to get at least one. Because its 100% success.
Of course, for this to work, it will also require that recipes have their own names, rather than using the name of the resulting item. And that each resulting item is reported as success or failure. Rather than just one. (There can be a soft limit imposed)