Transforming furniture to return crafted item?

I’m working on a mod for which I’d like to use a mechanic I haven’t seen in the game.

The idea is: rather than work on a particular recipe for hours, the player will have to leave some recipes until they’re done. While the tool is doing its thing, the survivor could read a book or loot something, but they can’t have it finish prematurely.

Currently, this is feasible with making an item active and introducing a countdown until it’s done: use_action"type": "delayed_transform" and the transform_age property. This is useful for brewing and growth-type recipes.

However, it doesn’t help with those recipes that, according to their nature, must stay in the tool itself, like computations for a complex craftable item.

There are currently ways similar to what I’m looking for but not precisely so:

  • apparently, you can brew things, but I’ve never done so or seen it done, so I’m not sure this is what I need
  • there’s the autoclave-type action where you can store an item for some time and have it returned changed (which, I assume, is a type of transformation as well), but that mechanism appears to be restricted to the autoclave itself, without an opportunity to transfer the action without editing the engine

Furthermore, some of the recipes I’m going after include furniture and crafting_pseudo_item property which lets you use furniture in crafting. This is necessary from the perspective of being true-to-reality: for example, a particularly complex computation may require servers for separation of labor, not just the computer itself.

There’s also the example of a molecular forge, which is meant to be more balanced than the native in-game nanofabricator by requiring a few minutes for assembly: one simply can’t take the unfinished item with them, have said item finish building in their pocket, and get the complete item ready for use.

What I’d like to find out is:

  1. if it’s at all possible to transform the tool or furniture used in crafting
  2. if it’s possible to make it unusable while there’s an item inside of it
  3. if it’s possible to set the whole process up so that in the end, you receive exactly the item you’d set out to create, rather than, say, a random one from the list

In case none of the above is possible, I’d like to find out if there are ways this process could be feasibly abstracted without losing the sense of reliance on the high technology around the survivor – for example, that one can’t simply have a massive computation finish in an instant, and that one has to wait for the process to finish – without relying on pseudo-items.

2 Likes

This sounds amazing! It could also potentially build some of the ground for making more crafting automation within the game.
Cataclsym: Factorio Day Ahead.

The charcoal kiln has several “states”, It starts out as simply a “charcoal kiln”. Then you do a craft recipe which takes a “charcoal kiln” and some wood (or bones, or other carbon-containing items) and it becomes a “filled charcoal kiln”. Then you activate it and it becomes a “lit charcoal kiln”. Then after a period of time (I think it’s 2 hours), it becomes a “finished charcoal kiln”, which you can disassemble to get 200 charcoal and a “charcoal kiln”, bringing you back to the start of the cycle.

You could presumably do something similar, but have different paths for different products. Like a “3d printer” that has a few recipes. A '3d printer" plus a “knife sheath .gcode file” creates a “3d printer making a knife sheath”, while a “3d printer” plus a “arm guards .gcode file” creates a “3d printer making arm guards”. You might have to activate them to start the timer, but after some period of time, you’d have a “3d printer finished making a knife sheath”, which could be disassembled into a “3d printer” and a “plastic knife sheath”.

Or maybe you’d come back after the time and have a random chance to find a “3d printer finished making a plastic mess”, which you’d disassemble to get a “3d printer” and a “plastic chunk”. Because sometimes things just don’t work right and prints fail. Chance of a failed build would probably depend on your fabrication skill. Or maybe your computer skill if you created the .gcode file instead of finding it on a SD card or USB drive.

Oh, all of the recipes that start with the pinter and a .gcode file also need some number of charges of “plastic filament”. The exact number would depend on the mass of the finished object. The time required would pretty much also be dependent on the mass.

It’s not clear exactly what you’re trying to do, but you mention computer calculations. So you have a recipe with some sort of input data from an SD card or USB drive and a laptop. That makes a “laptop doing calculation”, which eventually becomes a “laptop finished doing calculation”, which disassembles into a “laptop computer” and a "USB drive containing ". Maybe a “USB drive containing a knife sheath .gcode file” that you can use on your 3d printer. :slight_smile:

2 Likes

Good advice. Thanks.

The kiln mechanism is a little clunky, but until a better option can be worked in, it should be fine.

It’s the other way around, currently: you “craft” the desired item (e.g. “3D printer making a knife sheath”), and after a set period of time you can activate it to turn it into something different (e.g. “3D printer making a knife sheath (finished)”).

The fact that this requires producing 3 or 4 distinct items and a non-simple web of interactions does not sit well with me, but there’s still room for improvement.

The current goal is to make a modder’s resource with in-game tools to allow for various computations: maybe it’s an AI-generated recipe, maybe you’re trying to break the code or hack into a black-box type device, maybe you’re searching for survivors on radiowaves… I’d like to provide common tools that would enable others to do such interactions.

Feel free to check it out and suggest changes.