[quote=“Coolthulhu, post:3, topic:14050”]The problem is, a lot of that would have to be specifically implemented per recipe.
This isn’t exactly feasible with DDA monstrous recipe list.[/quote]
Not necessarily. You could start with the current implementation as the parent, but have code only if it detects the appropriate json for selected items, for example for MBR Vest:
“recipe_fail_result: makeshift_kelvar_vest”
“recipe_fail_msg: “You mess up on the details on the vest””
“recipe_fail_damage_level_max: 3”
In which case we get a “makeshift kelvar vest” that is damaged between 0 to 3 levels, which we can attempt to use again to make our MBR vest. Or with meat soup:
“recipe_fail_result: ruined_wet_meal”
“recipe_fail_msg: “Your cooking didn’t turn out right…””
“recipe_fail_alt_result: cooked_meat”
“recipe_fail_alt_mg: “Oops, you boiled away all of the water while cooking!””
With no entry for damage because it wouldn’t make sense, so we default to no damage to our ruined wet meal or cooked meat.
With something like an explosive, of course, we could do something more fun:
“recipe_fail_event: crafting_small_explosion”
“recipe_fail_msg: “You make a mistake while crafting and your grenade explodes!””
And my character gets a memorial of: “Died while making explosives. How typical.”
In an ideal world, we actually should be able to determine on the roll of crafting success, such that a “critical fail” loses us everything, a “normal fail” gets us less major consequences, and conversely, a critical success might get us something like a “quality machete” or “delicious bread.”
Once the code is in place, which doesn’t seem that difficult, its all json work and I imagine quite a few aspiring modders would be happy to put the rest of the work in. This shouldn’t impact balance either, at least without the ability to make better than what we have currently. The only difference is that rather than items disappearing completely, we get more randomized crap.