Crafting failure: don't just destroy components

Currently, when failing to craft an item, you just lose all ingredients, which doesn’t make much sense in some cases. For example, failing at making clothes just destroys all the cloth you used, and failing to make a Deluxe Sandwich means my starving survivor will throw out perfectly good bread, cheese, meat, and veggies just because he somehow failed to make them into a sandwich.

For some recipes there could be special items that can only be obtained by failing. For example, failing to make a vest could give a new “misshapen vest” item that has worse encumbrance and protection, but can be cut up to regain some materials. Failing to prepare food could give burnt food that has negative morale and lower nutrition, quench, and vitamins, but can still be eaten if you’re desperate enough.

Not a bad idea. I’d like for instead of the item simply disappearing, for its components to be left behind; scrap metal, conductors, thread, and the like.

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=“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.

yeah no, the recipe list is HUGE. unless you are doing it yourself don’t expect anyone to do that for all possible recipes.

Well, you shouldn’t need to. If the recipe doesn’t have a specified fail state it should just fall back to the default result we have now, with the randomly destroying the components and all.

Anything where that default failure makes sense wouldn’t need to be changed at all, and the remainder would just be rainy-day modding work that could be done bit by bit to improve this or that recipe’s failures. Not strictly necessary work that has to be done or else, but a nice thing to have.

The point is that without someone dedicated to those changes, we’d have 10 items that fail in some new way and n-10 ones that just fail like they do now.

Oh no doubt, that would be the initial state of things. I’d expect modders to make use of it, though, and even if the feature never got touched by anyone ever again (which I suspect is unlikely) having just 10 recipes that did something interesting on failure would still be better than 0.

I’ll be content with automatic randomized results more varied than “components perfectly fine” and “never usable again”. How about randomly applying a regular “disassemble” or “cut up” action or just some damage levels on random components on crafting failure? Messages could be generic like “some components fall apart” or “are damaged”.

Most frustrating when the components are hard to collect, more so when your end game goal is ruined because of that.
Some high level crafts have a chance to fail even when you have decent intelligence.

While there could be other solutions, maybe we can have a switch in the options menu that disables this feature?
[hr]

You reminds me, the materials are all consumed when the job is done. Which is also unrealistic so why bother destroying them in the first place?

For example, you are making a sonic screwdriver which is super hard to make. You will need 1 week to finish it. In the last hour, you suddenly have a different ideal and cancel the job. You lose nothing except your time.

And let’s forget how you can salvage ingredients from half-cooked food.

The point is that without someone dedicated to those changes, we’d have 10 items that fail in some new way and n-10 ones that just fail like they do now.[/quote]

While it’ll be slightly inconsistent, I don’t see how its a major issue myself. Even if say, only MBR vests fail in a special way, its just something unique. But I agree with Mantar, I truly do believe modders would immediately make use of it.

While it’ll be slightly inconsistent, I don’t see how its a major issue myself. Even if say, only MBR vests fail in a special way, its just something unique. But I agree with Mantar, I truly do believe modders would immediately make use of it.[/quote]
The issue is that adding and maintaining a feature like this has significant devlopment overhead, and if it’s only used by a handful of items, it isn’t worth doing.
If we had a system for mass-applying this sort of effect it would be worthwhile, but if it requires annotating every recipe the cost vs benefit is low.

This is the same issue as nutrition, we don’t want to annotate evey single food item with a table of nutrition data.

[quote=“Kevin Granade, post:12, topic:14050”]The issue is that adding and maintaining a feature like this has significant devlopment overhead, and if it’s only used by a handful of items, it isn’t worth doing.
If we had a system for mass-applying this sort of effect it would be worthwhile, but if it requires annotating every recipe the cost vs benefit is low.

This is the same issue as nutrition, we don’t want to annotate evey single food item with a table of nutrition data.[/quote]

That was what my point was: it doesn’t need to be annotated. if there isn’t a json entry for special behavior, it is simply ignored and uses default behavior. The rest would be up to the others.

The game says “and you lose some of the materials”. Actually you lose all. We could only lose some of the ingredients.