Crafting enhancement idea

I had a thought while playing the other day. It would be cool if the crafting menu gave recipes 3 states instead of 2 based on your ingredients on-hand: craftable (white), not craftable (grey), indirectly craftable (yellow). A recipe would be considered indirectly craftable if it was possible to craft with everything you’ve got on hand, but some intermediary crafting was required first. It might not be feasible/practical considering you can fail crafting and lose materials, and I imagine it would be a fair bit of recursive checking to see what is and isn’t indirectly craftable, but still, it’d be pretty cool being able to see what you could make with a few extra steps.

2 Likes

If you can craft it in two steps, we should probably rewrite the recipe to make it craftable in one step.
I think that is the main reason why arrow shaft/arrowhead was getting axed.

Actually, when he said that I thought of flour. I can’t convert cattails directly to flour. It requires the middle step of crafting the cattails into starch and then turning the starch to flour. Another thought is the knife spear. When I was starting out I thought ‘Where the hell can I find a spike?’ when it was actually craftable and I had the materials on hand but didn’t realize it.

So, based on what is suggested, my flour recipe would show up as yellow if I was near cattails.

I think it’s a good idea, as a player and non-coder. I often don’t craft things because I don’t know all of what I’m capable of crafting for this exact reason.

2 Likes

Yeah I had the exact same experience as you with the knife spear and spikes.

Perhaps another option instead of coding it into the game would be to write an offline tool that parses the recipes then generates a more extensive set of recipes with alternative ingredients (and crafting times), though there might be some data/gameplay considerations there I’m not thinking of.

This might be a fun one to tackle once I’m done with the Android build.

The chemical and electronics tabs, in particular, contain tons of intermediate items, so something like this would be pretty nice.

The downside, however, is that it would increase the time it would take for the menu to open a little bit. At worse, it would double the time to calculate the list, but there should be some ways to optimize it.

How many intermediate steps do you want to consider? At the worst case, you could have a highly skilled survivor with stacks of string, charcoal, metal lumps, rocks, leather, rags, long sticks, etc. He can build a katana from all that, but first he has to build a makeshift hammer, a charcoal forge, a crucible, a hammer, an anvil, metal tongs, a metalworking chisel, and a swag and die set.

Limiting the recursion to one pass is probably best, but it’s still going to take extra time and be annoying to code.

An option to input no recursion/ how many recursion (with a hard max prob) / maximum missing ingredients /tools would be nice. With the warning that increasing values will potentially increase menu time GREATLY

Should probably default back to no recursion, each time crafting menu is reopened.

How about implementing this as a sub command like (b)atch crafting? That way, it only calculates the possibility when you specifically check. It might also proceed to list everything you need to craft it from scratch, so you can see what you are missing to make one of it?

I like the idea of a global toggle, since it would make discovering possibilities easier when you’re just looking at what you could craft rather than going for something specific.

But I also like the idea of being able to pick a recipe I can’t craft, hit a button, and similar to the search function, get a list containing that recipe, the recipes of it’s craftable ingredients and tools, the recipe of the craftable ingredients and tools of those, and so on and so forth until the cycle gives no new items.

That way someone could just come and check, “Ok, I want to craft this thing, how the heck do I get from where I am to this?”. It seems like a really useful thing for new players learning those tricky things like going from zero to smithing.

1 Like

To be explicit, I’m suggesting the second thing Aabbcc just said.

I think a “search for craftable predicate path” is something to reasonable to implement. I’m not going to volunteer to do that, but that’s a fairly defined thing.

Just spitballing here: You highlight an item (say, the concrete mixer) and hit P. Checks the recipes for solder, lump of steel, chunk of steel, scrap metal, metal tank, pipes, small electric motor, heating element, and copper wire and shows any of those that you can make in yellow. If possible, it recurses on the ingredients for those items, and shows any of those you can craft, indented with >> in yellow, and add another > for each level of recursion.

I don’t think this would work for required tools, though: I don’t think it’s going to be feasible to figure all the ways you could craft an item with COOKING 1 when you want to make campfire hot dogs. Though you can already search against qualities, so maybe that could be added.

The one thing that annoys me of the “search for craftable predicate path” mode is that it wouldn’t work for some of the more convoluted crafting lines, those that have you making furniture in order to allow you to do things.

It’d still be pretty damn sweet even without being able to do those tho.

As for tools, those would be doable, what I’m not sure of is if they’d flood the list with too many matches and drown out the stuff you do want to craft, like the myriad of stuff with low cooking, for example.
If that’s the case, I think it would be better to not include them, and let the player do a search for tools of the needed quality if they need to make one.

I would also think that adding tools to the step would be a bit too much. If you think about it, there are many, many more items, but tools are more frequently shared among recipes. I think if you add tools, it would basically invalidate doing this at all because it would make almost all recipes ‘possibly craftable’.

Yeah, definitely a can of worms when you start looking at it in detail. But I feel like it’s something that could be broken down into stages, and even if the early stages aren’t particularly smart and don’t catch all cases with tools/furniture etc. it would still be pretty helpful in plenty of cases, eg. for the knife spear example where first you need to craft a spike.

I think the idea is adequately described at this point. I’ve certainly implemented stuff that was much more hazily defined. Go code and good luck! =)

Its doable, but it needs really good caching to work right. The thing that makes it really tricky is that you cant do a simple “if I can craft a hammer, just add it to a list of things I can craft”, because you might not have enough resources to do so if theres a different “maybe craft” on the same item, so you 3nd up needing to cache all kinds of crazy stuff.

I’d think it’s acceptable for you to run out of resources when you actually try to build your way back up the chain. a1studmuffin’s original complaint was “I didn’t even know this requirement item was craftable with the stuff I had at hand.”

If you’re trying to craft upgraded solar panels from a pile of solar cells, circuit boards, electronic scrap, copper wire, solder, and the project fails because you only have 7 circuit boards, you’re still in a better position for knowing that you can craft the power converters from amplifiers circuits and the amplifier circuits from circuit boards, electronic scrap, copper wire, and solder.

I want vehicle components to list what they do in the vehicle construction menu. I hate not knowing what most of the vehicle mods do.

Update to the latest experimentals. Vehicle part descriptions have been a thing for a couple of weeks now.

1 Like

But my internet is so slooooow DX but thanks for the useful advice. Lol