RESEARCH
Canteen Factory — production — sources & research
Evidence, decoding details and open questions for this article.
← Canteen Factory — production
View source evidence
Recovered from game v30, build 254. A source match confirms the stored value; it does not confirm live gameplay behavior.
{
"formulas": [
{
"id": 278986,
"name": "Stick -> KitchenFire",
"root_id": 105745,
"inputs": [
{
"resource_id": 284894,
"resource_variation_id": null,
"name": "Stick",
"count": 1
}
],
"outputs": [
{
"resource_id": 279350,
"resource_variation_id": null,
"name": "KitchenFire",
"count": 5
}
],
"work_iterations": 0,
"partial_output": false,
"required_equipment_category_id": null,
"resource_source_category_ids": [],
"referencing_workspot_ids": [
307103
],
"source": {
"asset_file": "resources.assets",
"path_id": 278986,
"class": "FormulaStepBehaviour",
"hierarchy_path": "Canteen Maker/FormulaSteps/Stick -> KitchenFire",
"fields": [
"Inputs",
"Outputs",
"WorkIterations",
"RequiredEquipmentCategory"
]
}
},
{
"id": 287240,
"name": "DriedCanteen -> OvenCanteen",
"root_id": 105745,
"inputs": [
{
"resource_id": 284027,
"resource_variation_id": null,
"name": "DriedCanteen",
"count": 1
}
],
"outputs": [
{
"resource_id": 284029,
"resource_variation_id": null,
"name": "OvenCanteen",
"count": 1
}
],
"work_iterations": 0,
"partial_output": false,
"required_equipment_category_id": null,
"resource_source_category_ids": [],
"referencing_workspot_ids": [
280742,
285811,
317984
],
"source": {
"asset_file": "resources.assets",
"path_id": 287240,
"class": "FormulaStepBehaviour",
"hierarchy_path": "Canteen Maker/FormulaSteps/DriedCanteen -> OvenCanteen",
"fields": [
"Inputs",
"Outputs",
"WorkIterations",
"RequiredEquipmentCategory"
]
}
},
{
"id": 289591,
"name": "RawCanteen -> DryingCanteen",
"root_id": 105745,
"inputs": [
{
"resource_id": 284030,
"resource_variation_id": null,
"name": "RawCanteen",
"count": 1
}
],
"outputs": [
{
"resource_id": 284028,
"resource_variation_id": null,
"name": "DryingCanteen",
"count": 1
}
],
"work_iterations": 0,
"partial_output": false,
"required_equipment_category_id": null,
"resource_source_category_ids": [],
"referencing_workspot_ids": [
279152
],
"source": {
"asset_file": "resources.assets",
"path_id": 289591,
"class": "FormulaStepBehaviour",
"hierarchy_path": "Canteen Maker/FormulaSteps/RawCanteen -> DryingCanteen",
"fields": [
"Inputs",
"Outputs",
"WorkIterations",
"RequiredEquipmentCategory"
]
}
},
{
"id": 310628,
"name": "OvenCanteen + KitchenFire -> AlmostCanteen",
"root_id": 105745,
"inputs": [
{
"resource_id": 284029,
"resource_variation_id": null,
"name": "OvenCanteen",
"count": 1
},
{
"resource_id": 279350,
"resource_variation_id": null,
"name": "KitchenFire",
"count": 1
}
],
"outputs": [
{
"resource_id": 284031,
"resource_variation_id": null,
"name": "AlmostCanteen",
"count": 1
}
],
"work_iterations": 0,
"partial_output": false,
"required_equipment_category_id": null,
"resource_source_category_ids": [],
"referencing_workspot_ids": [
303463,
310747,
321381
],
"source": {
"asset_file": "resources.assets",
"path_id": 310628,
"class": "FormulaStepBehaviour",
"hierarchy_path": "Canteen Maker/FormulaSteps/OvenCanteen + KitchenFire -> AlmostCanteen",
"fields": [
"Inputs",
"Outputs",
"WorkIterations",
"RequiredEquipmentCategory"
]
}
},
{
"id": 312502,
"name": "DryingCanteen -> DriedCanteen",
"root_id": 105745,
"inputs": [
{
"resource_id": 284028,
"resource_variation_id": null,
"name": "DryingCanteen",
"count": 1
}
],
"outputs": [
{
"resource_id": 284027,
"resource_variation_id": null,
"name": "DriedCanteen",
"count": 1
}
],
"work_iterations": 0,
"partial_output": false,
"required_equipment_category_id": null,
"resource_source_category_ids": [],
"referencing_workspot_ids": [
282834,
311295,
314817
],
"source": {
"asset_file": "resources.assets",
"path_id": 312502,
"class": "FormulaStepBehaviour",
"hierarchy_path": "Canteen Maker/FormulaSteps/DryingCanteen -> DriedCanteen",
"fields": [
"Inputs",
"Outputs",
"WorkIterations",
"RequiredEquipmentCategory"
]
}
},
{
"id": 319294,
"name": "Glass + KitchenFire -> RawCanteen",
"root_id": 105745,
"inputs": [
{
"resource_id": 309166,
"resource_variation_id": null,
"name": "Glass Pane",
"count": 2
},
{
"resource_id": 279350,
"resource_variation_id": null,
"name": "KitchenFire",
"count": 1
}
],
"outputs": [
{
"resource_id": 284030,
"resource_variation_id": null,
"name": "RawCanteen",
"count": 1
}
],
"work_iterations": 0,
"partial_output": false,
"required_equipment_category_id": null,
"resource_source_category_ids": [],
"referencing_workspot_ids": [
306452
],
"source": {
"asset_file": "resources.assets",
"path_id": 319294,
"class": "FormulaStepBehaviour",
"hierarchy_path": "Canteen Maker/FormulaSteps/Glass + KitchenFire -> RawCanteen",
"fields": [
"Inputs",
"Outputs",
"WorkIterations",
"RequiredEquipmentCategory"
]
}
},
{
"id": 321963,
"name": "AlmostCanteen + Reed -> Canteen",
"root_id": 105745,
"inputs": [
{
"resource_id": 284031,
"resource_variation_id": null,
"name": "AlmostCanteen",
"count": 1
},
{
"resource_id": 312704,
"resource_variation_id": null,
"name": "Reed Bunch",
"count": 1
}
],
"outputs": [
{
"resource_id": 300130,
"resource_variation_id": null,
"name": "Canteen",
"count": 1
}
],
"work_iterations": 0,
"partial_output": false,
"required_equipment_category_id": null,
"resource_source_category_ids": [],
"referencing_workspot_ids": [
291447,
299569
],
"source": {
"asset_file": "resources.assets",
"path_id": 321963,
"class": "FormulaStepBehaviour",
"hierarchy_path": "Canteen Maker/FormulaSteps/AlmostCanteen + Reed -> Canteen",
"fields": [
"Inputs",
"Outputs",
"WorkIterations",
"RequiredEquipmentCategory"
]
}
}
],
"derived_balances": [
{
"inputs": [
{
"resource_id": 309166,
"name": "Glass Pane",
"count": 10
},
{
"resource_id": 284894,
"name": "Stick",
"count": 2
},
{
"resource_id": 312704,
"name": "Reed Bunch",
"count": 5
}
],
"outputs": [
{
"resource_id": 300130,
"name": "Canteen",
"count": 5
}
],
"formula_ids": [
278986,
287240,
289591,
310628,
312502,
319294,
321963
],
"equipment_category_ids": [],
"caveats": [],
"status": "derived_from_serialized_formula_graph; not measured throughput"
}
]
}Gameplay checks
- Observe a full production cycle and compare actual materials consumed and produced.
- Verify whether all recovered branches are active for this building.
- Measure timing with a fixed workforce and nearby storage.
- Check equipment requirements, capacity limits and unused leftovers.
Material balance, not production speed
These ratios eliminate intermediate states. Worker availability, equipment, storage, hauling and animation timing still need gameplay checks.