Material Tags and Crafting Outcomes

Here’s a crafting question for the team (@sdee maybe?) I was just wondering if the following will be implemented in-game – if not, consider this a suggestion!

Will there be any way for yourselves/modders to set the produced item from a recipe to be altered by tags on the materials used?

This would allow for wood-type furniture (pine vs oak, for example) or different item qualities based on what you’ve got gathered. Here’s a small graphic of what I mean:


Given a common BOW recipe, using wood tagged as ‘YEW’ will give rise to a longbow, while ‘JUNIPER’ will give you a hunter’s bow, and other woods will give a regular bow

While the above example is a really simple case, the outcomes can be made a lot more complex by modders when multiple item types are used to create a recipe.
e.g.: Crafting a ‘Meat Stew’ Recipe with Rabbit meat + Vegetable + Vegetable gives Rabbit Stew, whereas if you craft the same thing with only squirrel meat in your stockpile, you’ll get Squirrel Stew.

Why do I bring this up?
Firstly, I find it can add variation to the game - you’ve already implemented different wood types, so we might as well find ways of taking advantage of resource types!
Secondly, I see it as a way of creating new gameplay choices - why settle in plains when you can settle by the river? Perhaps there’s more desirable trees growing in the plains, or maybe the boulders yield a different type of stone.

How do I see this being implemented?
As follows:

"ingredients": [
      {
         "material" : "wood resource",
         "count" : 1
      }
  ],

  "produces": [
      {
         "item_from_material":"stonehearth:weapon:bow", 
      }
  ]

‘item_from_material’ does the reverse of ‘material’, removing the need for specific uris for each case, using the input tags to select the output item from a list of applicable items (in this case, a bow). Variants are specified within bow.json

Hope that made sense…

What are your thoughts?

8 Likes

This sounds pretty great to me in concept. Even just at the level of being able to designate variants on a theme relatively easily (names, descriptions and visuals), it would be nice to have.

I can see it requiring some work on the workshop dialog GUI end though. In the case of the carpenter, imagine you have 30 recipes and each has 3 variants. Do you display that as 90 recipes (each with it’s own icon)? Do you display 30 recipes with some sort of switch to designate the variant you want? Or maybe the crafter just makes a random variant (given that the materials are available)?

4 Likes

this one fits most with the current system, as “fine” furniture is just a “random” at the moment…

2 Likes

It would somewhat be random, as @8BitCrab suggested

One base recipe would be displayed with different variants produced, much like the fine items

The ratio of item types you produce would correlate with the resources you have at hand. Unless, of course, this can be controlled in other ways or stockpile management is changed.

In the case that you’re crafting ten chairs, if you have 60% oak, 30% juniper, and 10% pine, you would likely end up with 6 oak chairs, 3 juniper chairs, and 1 pine chair – assuming a random wood distribution in your stockpile.

If you sort your stockpiles in such a way that the carpenter’s nearest pile only contains juniper, you’d expect all 10 to be juniper chairs.

Likewise, if you restrict all of your woodcutting to a pine forest you should expect 10 pine chairs.

2 Likes

what about this, in the recipe list you see the base item for instance chair, then before deciding on crafting you can choose either to go random or a fixed material only,
also should be fun an option to try to create fine item with a chance of failure depending on the skill of the carpenter.

3 Likes