Skip to content

Instantly share code, notes, and snippets.

@eliask
Forked from pfmoore/factorio-recipe-parser.lua
Last active September 10, 2021 15:41
Show Gist options
  • Save eliask/958425b18faf35016a43139226a2abc0 to your computer and use it in GitHub Desktop.
Save eliask/958425b18faf35016a43139226a2abc0 to your computer and use it in GitHub Desktop.
Parse the Factorio recipe files to create a CSV of recipes
--[[ Usage
Windows:
lua factorio-recipe-parser.lua "C:/Apps/Factorio/data/base/prototypes/recipe/"
Steam on macOS:
lua factorio-recipe-parser.lua ~/"Library/Application Support/Steam/steamapps/common/Factorio/factorio.app/Contents/"
NB: json.lua is from https://gist.github.com/tylerneylon/59f4bcf316be525b30ab
]]--
local json = require "json"
data = {}
data["extend"] = function (data, t)
for n, recipe in ipairs(t) do
print(json.stringify(recipe))
end
end
-- file list is current as of 0.15.26:
files = {
"ammo",
"capsule",
"demo-furnace-recipe",
"demo-recipe",
"demo-turret",
"equipment",
"fluid-recipe",
"furnace-recipe",
"inserter",
"module",
"recipe",
"turret",
}
for i, f in ipairs(files) do
dofile(arg[1] .. "/data/base/prototypes/recipe/" .. f .. ".lua")
end
--[[ json.lua
A compact pure-Lua JSON library.
The main functions are: json.stringify, json.parse.
## json.stringify:
This expects the following to be true of any tables being encoded:
* They only have string or number keys. Number keys must be represented as
strings in json; this is part of the json spec.
* They are not recursive. Such a structure cannot be specified in json.
A Lua table is considered to be an array if and only if its set of keys is a
consecutive sequence of positive integers starting at 1. Arrays are encoded like
so: `[2, 3, false, "hi"]`. Any other type of Lua table is encoded as a json
object, encoded like so: `{"key1": 2, "key2": false}`.
Because the Lua nil value cannot be a key, and as a table value is considerd
equivalent to a missing key, there is no way to express the json "null" value in
a Lua table. The only way this will output "null" is if your entire input obj is
nil itself.
An empty Lua table, {}, could be considered either a json object or array -
it's an ambiguous edge case. We choose to treat this as an object as it is the
more general type.
To be clear, none of the above considerations is a limitation of this code.
Rather, it is what we get when we completely observe the json specification for
as arbitrary a Lua object as json is capable of expressing.
## json.parse:
This function parses json, with the exception that it does not pay attention to
\u-escaped unicode code points in strings.
It is difficult for Lua to return null as a value. In order to prevent the loss
of keys with a null value in a json string, this function uses the one-off
table value json.null (which is just an empty table) to indicate null values.
This way you can check if a value is null with the conditional
`val == json.null`.
If you have control over the data and are using Lua, I would recommend just
avoiding null values in your data to begin with.
--]]
local json = {}
-- Internal functions.
local function kind_of(obj)
if type(obj) ~= 'table' then return type(obj) end
local i = 1
for _ in pairs(obj) do
if obj[i] ~= nil then i = i + 1 else return 'table' end
end
if i == 1 then return 'table' else return 'array' end
end
local function escape_str(s)
local in_char = {'\\', '"', '/', '\b', '\f', '\n', '\r', '\t'}
local out_char = {'\\', '"', '/', 'b', 'f', 'n', 'r', 't'}
for i, c in ipairs(in_char) do
s = s:gsub(c, '\\' .. out_char[i])
end
return s
end
-- Returns pos, did_find; there are two cases:
-- 1. Delimiter found: pos = pos after leading space + delim; did_find = true.
-- 2. Delimiter not found: pos = pos after leading space; did_find = false.
-- This throws an error if err_if_missing is true and the delim is not found.
local function skip_delim(str, pos, delim, err_if_missing)
pos = pos + #str:match('^%s*', pos)
if str:sub(pos, pos) ~= delim then
if err_if_missing then
error('Expected ' .. delim .. ' near position ' .. pos)
end
return pos, false
end
return pos + 1, true
end
-- Expects the given pos to be the first character after the opening quote.
-- Returns val, pos; the returned pos is after the closing quote character.
local function parse_str_val(str, pos, val)
val = val or ''
local early_end_error = 'End of input found while parsing string.'
if pos > #str then error(early_end_error) end
local c = str:sub(pos, pos)
if c == '"' then return val, pos + 1 end
if c ~= '\\' then return parse_str_val(str, pos + 1, val .. c) end
-- We must have a \ character.
local esc_map = {b = '\b', f = '\f', n = '\n', r = '\r', t = '\t'}
local nextc = str:sub(pos + 1, pos + 1)
if not nextc then error(early_end_error) end
return parse_str_val(str, pos + 2, val .. (esc_map[nextc] or nextc))
end
-- Returns val, pos; the returned pos is after the number's final character.
local function parse_num_val(str, pos)
local num_str = str:match('^-?%d+%.?%d*[eE]?[+-]?%d*', pos)
local val = tonumber(num_str)
if not val then error('Error parsing number at position ' .. pos .. '.') end
return val, pos + #num_str
end
-- Public values and functions.
function json.stringify(obj, as_key)
local s = {} -- We'll build the string as an array of strings to be concatenated.
local kind = kind_of(obj) -- This is 'array' if it's an array or type(obj) otherwise.
if kind == 'array' then
if as_key then error('Can\'t encode array as key.') end
s[#s + 1] = '['
for i, val in ipairs(obj) do
if i > 1 then s[#s + 1] = ', ' end
s[#s + 1] = json.stringify(val)
end
s[#s + 1] = ']'
elseif kind == 'table' then
if as_key then error('Can\'t encode table as key.') end
s[#s + 1] = '{'
for k, v in pairs(obj) do
if #s > 1 then s[#s + 1] = ', ' end
s[#s + 1] = json.stringify(k, true)
s[#s + 1] = ':'
s[#s + 1] = json.stringify(v)
end
s[#s + 1] = '}'
elseif kind == 'string' then
return '"' .. escape_str(obj) .. '"'
elseif kind == 'number' then
if as_key then return '"' .. tostring(obj) .. '"' end
return tostring(obj)
elseif kind == 'boolean' then
return tostring(obj)
elseif kind == 'nil' then
return 'null'
else
error('Unjsonifiable type: ' .. kind .. '.')
end
return table.concat(s)
end
json.null = {} -- This is a one-off table to represent the null value.
function json.parse(str, pos, end_delim)
pos = pos or 1
if pos > #str then error('Reached unexpected end of input.') end
local pos = pos + #str:match('^%s*', pos) -- Skip whitespace.
local first = str:sub(pos, pos)
if first == '{' then -- Parse an object.
local obj, key, delim_found = {}, true, true
pos = pos + 1
while true do
key, pos = json.parse(str, pos, '}')
if key == nil then return obj, pos end
if not delim_found then error('Comma missing between object items.') end
pos = skip_delim(str, pos, ':', true) -- true -> error if missing.
obj[key], pos = json.parse(str, pos)
pos, delim_found = skip_delim(str, pos, ',')
end
elseif first == '[' then -- Parse an array.
local arr, val, delim_found = {}, true, true
pos = pos + 1
while true do
val, pos = json.parse(str, pos, ']')
if val == nil then return arr, pos end
if not delim_found then error('Comma missing between array items.') end
arr[#arr + 1] = val
pos, delim_found = skip_delim(str, pos, ',')
end
elseif first == '"' then -- Parse a string.
return parse_str_val(str, pos + 1)
elseif first == '-' or first:match('%d') then -- Parse a number.
return parse_num_val(str, pos)
elseif first == end_delim then -- End of an object or array.
return nil, pos + 1
else -- Parse true, false, or null.
local literals = {['true'] = true, ['false'] = false, ['null'] = json.null}
for lit_str, lit_val in pairs(literals) do
local lit_end = pos + #lit_str - 1
if str:sub(pos, lit_end) == lit_str then return lit_val, lit_end + 1 end
end
local pos_info_str = 'position ' .. pos .. ': ' .. str:sub(pos, pos + 10)
error('Invalid json syntax starting at ' .. pos_info_str)
end
end
return json
{"name":"piercing-rounds-magazine", "type":"recipe", "result":"piercing-rounds-magazine", "ingredients":[["firearm-magazine", 1], ["steel-plate", 1], ["copper-plate", 5]], "energy_required":3, "enabled":false}
{"name":"uranium-rounds-magazine", "type":"recipe", "result":"uranium-rounds-magazine", "ingredients":[["piercing-rounds-magazine", 1], ["uranium-238", 1]], "energy_required":10, "enabled":false}
{"name":"rocket", "type":"recipe", "result":"rocket", "ingredients":[["electronic-circuit", 1], ["explosives", 1], ["iron-plate", 2]], "energy_required":8, "enabled":false}
{"name":"explosive-rocket", "type":"recipe", "result":"explosive-rocket", "ingredients":[["rocket", 1], ["explosives", 2]], "energy_required":8, "enabled":false}
{"name":"atomic-bomb", "type":"recipe", "result":"atomic-bomb", "ingredients":[["processing-unit", 20], ["explosives", 10], ["uranium-235", 30]], "energy_required":50, "enabled":false}
{"name":"shotgun-shell", "type":"recipe", "result":"shotgun-shell", "ingredients":[["copper-plate", 2], ["iron-plate", 2]], "energy_required":3, "enabled":false}
{"name":"piercing-shotgun-shell", "type":"recipe", "result":"piercing-shotgun-shell", "ingredients":[["shotgun-shell", 2], ["copper-plate", 5], ["steel-plate", 2]], "energy_required":8, "enabled":false}
{"name":"railgun-dart", "type":"recipe", "result":"railgun-dart", "ingredients":[["steel-plate", 5], ["electronic-circuit", 5]], "energy_required":8, "enabled":false}
{"name":"cannon-shell", "type":"recipe", "normal":{"ingredients":[["steel-plate", 2], ["plastic-bar", 2], ["explosives", 1]], "energy_required":8, "result":"cannon-shell", "enabled":false}, "expensive":{"ingredients":[["steel-plate", 4], ["plastic-bar", 4], ["explosives", 1]], "energy_required":8, "result":"cannon-shell", "enabled":false}}
{"name":"explosive-cannon-shell", "type":"recipe", "normal":{"ingredients":[["steel-plate", 2], ["plastic-bar", 2], ["explosives", 2]], "energy_required":8, "result":"explosive-cannon-shell", "enabled":false}, "expensive":{"ingredients":[["steel-plate", 4], ["plastic-bar", 4], ["explosives", 2]], "energy_required":8, "result":"explosive-cannon-shell", "enabled":false}}
{"name":"uranium-cannon-shell", "type":"recipe", "result":"uranium-cannon-shell", "ingredients":[["cannon-shell", 1], ["uranium-238", 1]], "energy_required":12, "enabled":false}
{"name":"explosive-uranium-cannon-shell", "type":"recipe", "result":"explosive-uranium-cannon-shell", "ingredients":[["explosive-cannon-shell", 1], ["uranium-238", 1]], "energy_required":12, "enabled":false}
{"name":"flamethrower-ammo", "type":"recipe", "result":"flamethrower-ammo", "enabled":false, "ingredients":[{"name":"steel-plate", "type":"item", "amount":5}, {"name":"light-oil", "type":"fluid", "amount":50}, {"name":"heavy-oil", "type":"fluid", "amount":50}], "energy_required":6, "crafting_machine_tint":{"tertiary":{"a":0, "r":0.685, "g":0.329, "b":0}, "secondary":{"a":0, "r":0.655, "g":0, "b":0}, "primary":{"a":0, "r":0.845, "g":0.533, "b":0}}, "category":"chemistry"}
{"name":"poison-capsule", "type":"recipe", "result":"poison-capsule", "ingredients":[["steel-plate", 3], ["electronic-circuit", 3], ["coal", 10]], "energy_required":8, "enabled":false}
{"name":"slowdown-capsule", "type":"recipe", "result":"slowdown-capsule", "ingredients":[["steel-plate", 2], ["electronic-circuit", 2], ["coal", 5]], "energy_required":8, "enabled":false}
{"name":"grenade", "type":"recipe", "result":"grenade", "ingredients":[["iron-plate", 5], ["coal", 10]], "energy_required":8, "enabled":false}
{"name":"cluster-grenade", "type":"recipe", "result":"cluster-grenade", "ingredients":[["grenade", 7], ["explosives", 5], ["steel-plate", 5]], "energy_required":8, "enabled":false}
{"name":"defender-capsule", "type":"recipe", "result":"defender-capsule", "ingredients":[["piercing-rounds-magazine", 1], ["electronic-circuit", 2], ["iron-gear-wheel", 3]], "energy_required":8, "enabled":false}
{"name":"distractor-capsule", "type":"recipe", "result":"distractor-capsule", "ingredients":[["defender-capsule", 4], ["advanced-circuit", 3]], "energy_required":15, "enabled":false}
{"name":"destroyer-capsule", "type":"recipe", "result":"destroyer-capsule", "ingredients":[["distractor-capsule", 4], ["speed-module", 1]], "energy_required":15, "enabled":false}
{"name":"discharge-defense-remote", "type":"recipe", "result":"discharge-defense-remote", "ingredients":[["electronic-circuit", 1]], "enabled":false}
{"name":"copper-plate", "type":"recipe", "result":"copper-plate", "ingredients":[["copper-ore", 1]], "energy_required":3.5, "category":"smelting"}
{"name":"iron-plate", "type":"recipe", "result":"iron-plate", "ingredients":[["iron-ore", 1]], "energy_required":3.5, "category":"smelting"}
{"name":"stone-brick", "type":"recipe", "result":"stone-brick", "ingredients":[["stone", 2]], "enabled":true, "energy_required":3.5, "category":"smelting"}
{"name":"wood", "type":"recipe", "result":"wood", "ingredients":[["raw-wood", 1]], "result_count":2}
{"name":"wooden-chest", "type":"recipe", "result":"wooden-chest", "ingredients":[["wood", 4]], "requester_paste_multiplier":4}
{"name":"iron-stick", "type":"recipe", "result":"iron-stick", "ingredients":[["iron-plate", 1]], "result_count":2}
{"name":"iron-axe", "type":"recipe", "result":"iron-axe", "ingredients":[["iron-stick", 2], ["iron-plate", 3]]}
{"name":"stone-furnace", "type":"recipe", "result":"stone-furnace", "ingredients":[["stone", 5]]}
{"name":"boiler", "type":"recipe", "result":"boiler", "ingredients":[["stone-furnace", 1], ["pipe", 4]]}
{"name":"steam-engine", "type":"recipe", "normal":{"ingredients":[["iron-gear-wheel", 8], ["pipe", 5], ["iron-plate", 10]], "result":"steam-engine"}, "expensive":{"ingredients":[["iron-gear-wheel", 10], ["pipe", 5], ["iron-plate", 50]], "result":"steam-engine"}}
{"name":"iron-gear-wheel", "type":"recipe", "normal":{"ingredients":[["iron-plate", 2]], "result":"iron-gear-wheel"}, "expensive":{"ingredients":[["iron-plate", 4]], "result":"iron-gear-wheel"}}
{"name":"electronic-circuit", "type":"recipe", "normal":{"ingredients":[["iron-plate", 1], ["copper-cable", 3]], "result":"electronic-circuit", "requester_paste_multiplier":50}, "expensive":{"ingredients":[["iron-plate", 2], ["copper-cable", 10]], "result":"electronic-circuit", "requester_paste_multiplier":50}}
{"name":"transport-belt", "type":"recipe", "result":"transport-belt", "ingredients":[["iron-plate", 1], ["iron-gear-wheel", 1]], "requester_paste_multiplier":20, "result_count":2}
{"name":"electric-mining-drill", "type":"recipe", "normal":{"ingredients":[["electronic-circuit", 3], ["iron-gear-wheel", 5], ["iron-plate", 10]], "result":"electric-mining-drill", "energy_required":2}, "expensive":{"ingredients":[["electronic-circuit", 5], ["iron-gear-wheel", 10], ["iron-plate", 20]], "result":"electric-mining-drill", "energy_required":2}}
{"name":"burner-mining-drill", "type":"recipe", "normal":{"ingredients":[["iron-gear-wheel", 3], ["stone-furnace", 1], ["iron-plate", 3]], "result":"burner-mining-drill", "energy_required":2}, "expensive":{"ingredients":[["iron-gear-wheel", 6], ["stone-furnace", 2], ["iron-plate", 6]], "result":"burner-mining-drill", "energy_required":4}}
{"name":"inserter", "type":"recipe", "result":"inserter", "ingredients":[["electronic-circuit", 1], ["iron-gear-wheel", 1], ["iron-plate", 1]], "requester_paste_multiplier":15}
{"name":"burner-inserter", "type":"recipe", "result":"burner-inserter", "ingredients":[["iron-plate", 1], ["iron-gear-wheel", 1]], "requester_paste_multiplier":15}
{"name":"pipe", "type":"recipe", "normal":{"ingredients":[["iron-plate", 1]], "result":"pipe", "requester_paste_multiplier":15}, "expensive":{"ingredients":[["iron-plate", 2]], "result":"pipe", "requester_paste_multiplier":15}}
{"name":"offshore-pump", "type":"recipe", "result":"offshore-pump", "ingredients":[["electronic-circuit", 2], ["pipe", 1], ["iron-gear-wheel", 1]]}
{"name":"copper-cable", "type":"recipe", "result":"copper-cable", "ingredients":[["copper-plate", 1]], "result_count":2}
{"name":"small-electric-pole", "type":"recipe", "result":"small-electric-pole", "ingredients":[["wood", 2], ["copper-cable", 2]], "requester_paste_multiplier":4, "result_count":2}
{"name":"pistol", "type":"recipe", "result":"pistol", "ingredients":[["copper-plate", 5], ["iron-plate", 5]], "energy_required":5}
{"name":"submachine-gun", "type":"recipe", "normal":{"ingredients":[["iron-gear-wheel", 10], ["copper-plate", 5], ["iron-plate", 10]], "energy_required":10, "result":"submachine-gun", "enabled":false}, "expensive":{"ingredients":[["iron-gear-wheel", 15], ["copper-plate", 20], ["iron-plate", 30]], "energy_required":10, "result":"submachine-gun", "enabled":false}}
{"name":"firearm-magazine", "type":"recipe", "result":"firearm-magazine", "ingredients":[["iron-plate", 4]], "result_count":1, "energy_required":1}
{"name":"light-armor", "type":"recipe", "result":"light-armor", "ingredients":[["iron-plate", 40]], "energy_required":3, "enabled":true}
{"name":"radar", "type":"recipe", "result":"radar", "ingredients":[["electronic-circuit", 5], ["iron-gear-wheel", 5], ["iron-plate", 10]], "requester_paste_multiplier":4}
{"name":"small-lamp", "type":"recipe", "result":"small-lamp", "ingredients":[["electronic-circuit", 1], ["iron-stick", 3], ["iron-plate", 1]], "enabled":false}
{"name":"pipe-to-ground", "type":"recipe", "result":"pipe-to-ground", "ingredients":[["pipe", 10], ["iron-plate", 5]], "result_count":2}
{"name":"assembling-machine-1", "type":"recipe", "result":"assembling-machine-1", "ingredients":[["electronic-circuit", 3], ["iron-gear-wheel", 5], ["iron-plate", 9]], "enabled":false}
{"name":"repair-pack", "type":"recipe", "result":"repair-pack", "ingredients":[["electronic-circuit", 2], ["iron-gear-wheel", 2]]}
{"name":"gun-turret", "type":"recipe", "result":"gun-turret", "ingredients":[["iron-gear-wheel", 10], ["copper-plate", 10], ["iron-plate", 20]], "energy_required":8, "enabled":false}
{"name":"night-vision-equipment", "type":"recipe", "result":"night-vision-equipment", "ingredients":[["advanced-circuit", 5], ["steel-plate", 10]], "energy_required":10, "enabled":false}
{"name":"energy-shield-equipment", "type":"recipe", "result":"energy-shield-equipment", "ingredients":[["advanced-circuit", 5], ["steel-plate", 10]], "energy_required":10, "enabled":false}
{"name":"energy-shield-mk2-equipment", "type":"recipe", "result":"energy-shield-mk2-equipment", "ingredients":[["energy-shield-equipment", 10], ["processing-unit", 10]], "energy_required":10, "enabled":false}
{"name":"battery-equipment", "type":"recipe", "result":"battery-equipment", "ingredients":[["battery", 5], ["steel-plate", 10]], "energy_required":10, "enabled":false}
{"name":"battery-mk2-equipment", "type":"recipe", "result":"battery-mk2-equipment", "ingredients":[["battery-equipment", 10], ["processing-unit", 20]], "energy_required":10, "enabled":false}
{"name":"solar-panel-equipment", "type":"recipe", "result":"solar-panel-equipment", "ingredients":[["solar-panel", 5], ["advanced-circuit", 1], ["steel-plate", 5]], "energy_required":10, "enabled":false}
{"name":"fusion-reactor-equipment", "type":"recipe", "result":"fusion-reactor-equipment", "ingredients":[["processing-unit", 250]], "energy_required":10, "enabled":false}
{"name":"personal-laser-defense-equipment", "type":"recipe", "result":"personal-laser-defense-equipment", "ingredients":[["processing-unit", 1], ["steel-plate", 5], ["laser-turret", 5]], "energy_required":10, "enabled":false}
{"name":"discharge-defense-equipment", "type":"recipe", "result":"discharge-defense-equipment", "ingredients":[["processing-unit", 5], ["steel-plate", 20], ["laser-turret", 10]], "energy_required":10, "enabled":false}
{"name":"exoskeleton-equipment", "type":"recipe", "result":"exoskeleton-equipment", "ingredients":[["processing-unit", 10], ["electric-engine-unit", 30], ["steel-plate", 20]], "energy_required":10, "enabled":false}
{"name":"personal-roboport-equipment", "type":"recipe", "result":"personal-roboport-equipment", "ingredients":[["advanced-circuit", 10], ["iron-gear-wheel", 40], ["steel-plate", 20], ["battery", 45]], "energy_required":10, "enabled":false}
{"name":"personal-roboport-mk2-equipment", "type":"recipe", "result":"personal-roboport-mk2-equipment", "ingredients":[["personal-roboport-equipment", 5], ["processing-unit", 100]], "energy_required":20, "enabled":false}
{"name":"basic-oil-processing", "type":"recipe", "ingredients":[{"name":"crude-oil", "type":"fluid", "amount":100}], "subgroup":"fluid-recipes", "category":"oil-processing", "results":[{"name":"heavy-oil", "type":"fluid", "amount":30}, {"name":"light-oil", "type":"fluid", "amount":30}, {"name":"petroleum-gas", "type":"fluid", "amount":40}], "icon":"__base__\/graphics\/icons\/fluid\/basic-oil-processing.png", "order":"a[oil-processing]-a[basic-oil-processing]", "enabled":false, "energy_required":5}
{"name":"advanced-oil-processing", "type":"recipe", "ingredients":[{"name":"water", "type":"fluid", "amount":50}, {"name":"crude-oil", "type":"fluid", "amount":100}], "subgroup":"fluid-recipes", "category":"oil-processing", "results":[{"name":"heavy-oil", "type":"fluid", "amount":10}, {"name":"light-oil", "type":"fluid", "amount":45}, {"name":"petroleum-gas", "type":"fluid", "amount":55}], "icon":"__base__\/graphics\/icons\/fluid\/advanced-oil-processing.png", "order":"a[oil-processing]-b[advanced-oil-processing]", "enabled":false, "energy_required":5}
{"name":"coal-liquefaction", "type":"recipe", "ingredients":[{"name":"coal", "type":"item", "amount":10}, {"name":"heavy-oil", "type":"fluid", "amount":25}, {"name":"steam", "type":"fluid", "amount":50}], "subgroup":"fluid-recipes", "category":"oil-processing", "results":[{"name":"heavy-oil", "type":"fluid", "amount":35}, {"name":"light-oil", "type":"fluid", "amount":15}, {"name":"petroleum-gas", "type":"fluid", "amount":20}], "allow_decomposition":false, "icon":"__base__\/graphics\/icons\/fluid\/coal-liquefaction.png", "order":"a[oil-processing]-c[coal-liquefaction]", "enabled":false, "energy_required":5}
{"name":"heavy-oil-cracking", "type":"recipe", "ingredients":[{"name":"water", "type":"fluid", "amount":30}, {"name":"heavy-oil", "type":"fluid", "amount":40}], "subgroup":"fluid-recipes", "crafting_machine_tint":{"tertiary":{"a":0, "r":0.87, "g":0.365, "b":0}, "secondary":{"a":0, "r":0.722, "g":0.465, "b":0.19}, "primary":{"a":0, "r":0.29, "g":0.027, "b":0}}, "category":"chemistry", "results":[{"name":"light-oil", "type":"fluid", "amount":30}], "order":"b[fluid-chemistry]-a[heavy-oil-cracking]", "icon":"__base__\/graphics\/icons\/fluid\/heavy-oil-cracking.png", "main_product":"", "enabled":false, "energy_required":3}
{"name":"light-oil-cracking", "type":"recipe", "ingredients":[{"name":"water", "type":"fluid", "amount":30}, {"name":"light-oil", "type":"fluid", "amount":30}], "subgroup":"fluid-recipes", "crafting_machine_tint":{"tertiary":{"a":0, "r":0.835, "g":0.551, "b":0}, "secondary":{"a":0, "r":0.795, "g":0.805, "b":0.605}, "primary":{"a":0, "r":0.785, "g":0.406, "b":0}}, "category":"chemistry", "results":[{"name":"petroleum-gas", "type":"fluid", "amount":20}], "order":"b[fluid-chemistry]-b[light-oil-cracking]", "icon":"__base__\/graphics\/icons\/fluid\/light-oil-cracking.png", "main_product":"", "enabled":false, "energy_required":3}
{"name":"sulfuric-acid", "type":"recipe", "ingredients":[{"name":"sulfur", "type":"item", "amount":5}, {"name":"iron-plate", "type":"item", "amount":1}, {"name":"water", "type":"fluid", "amount":100}], "subgroup":"fluid-recipes", "crafting_machine_tint":{"tertiary":{"a":0, "r":0.564, "g":0.795, "b":0}, "secondary":{"a":0, "r":0.103, "g":0.94, "b":0}, "primary":{"a":0, "r":0.875, "g":0.735, "b":0}}, "category":"chemistry", "results":[{"name":"sulfuric-acid", "type":"fluid", "amount":50}], "enabled":false, "energy_required":1}
{"name":"plastic-bar", "type":"recipe", "ingredients":[{"name":"petroleum-gas", "type":"fluid", "amount":20}, {"name":"coal", "type":"item", "amount":1}], "crafting_machine_tint":{"tertiary":{"a":0, "r":0.305, "g":0.305, "b":0.305}, "secondary":{"a":0, "r":0.4, "g":0.4, "b":0.4}, "primary":{"a":0, "r":0.498, "g":0.498, "b":0.498}}, "category":"chemistry", "results":[{"name":"plastic-bar", "type":"item", "amount":2}], "enabled":false, "requester_paste_multiplier":4, "energy_required":1}
{"name":"solid-fuel-from-light-oil", "type":"recipe", "ingredients":[{"name":"light-oil", "type":"fluid", "amount":10}], "subgroup":"fluid-recipes", "crafting_machine_tint":{"tertiary":{"a":0, "r":0.61, "g":0.348, "b":0}, "secondary":{"a":0, "r":0.735, "g":0.546, "b":0.325}, "primary":{"a":0, "r":0.27, "g":0.122, "b":0}}, "category":"chemistry", "results":[{"name":"solid-fuel", "type":"item", "amount":1}], "icon":"__base__\/graphics\/icons\/solid-fuel-from-light-oil.png", "order":"b[fluid-chemistry]-c[solid-fuel-from-light-oil]", "enabled":false, "energy_required":3}
{"name":"solid-fuel-from-petroleum-gas", "type":"recipe", "ingredients":[{"name":"petroleum-gas", "type":"fluid", "amount":20}], "subgroup":"fluid-recipes", "crafting_machine_tint":{"tertiary":{"a":0, "r":0.469, "g":0.145, "b":0.695}, "secondary":{"a":0.361, "r":0.589, "g":0.54, "b":0.615}, "primary":{"a":0, "r":0.331, "g":0.075, "b":0.51}}, "category":"chemistry", "results":[{"name":"solid-fuel", "type":"item", "amount":1}], "icon":"__base__\/graphics\/icons\/solid-fuel-from-petroleum-gas.png", "order":"b[fluid-chemistry]-d[solid-fuel-from-petroleum-gas]", "enabled":false, "energy_required":3}
{"name":"solid-fuel-from-heavy-oil", "type":"recipe", "ingredients":[{"name":"heavy-oil", "type":"fluid", "amount":20}], "subgroup":"fluid-recipes", "crafting_machine_tint":{"tertiary":{"a":0, "r":0.435, "g":0.144, "b":0.135}, "secondary":{"a":0, "r":0.47, "g":0.215, "b":0.19}, "primary":{"a":0, "r":0.16, "g":0.095, "b":0.095}}, "category":"chemistry", "results":[{"name":"solid-fuel", "type":"item", "amount":1}], "icon":"__base__\/graphics\/icons\/solid-fuel-from-heavy-oil.png", "order":"b[fluid-chemistry]-e[solid-fuel-from-heavy-oil]", "enabled":false, "energy_required":3}
{"name":"sulfur", "type":"recipe", "results":[{"name":"sulfur", "type":"item", "amount":2}], "energy_required":1, "ingredients":[{"name":"water", "type":"fluid", "amount":30}, {"name":"petroleum-gas", "type":"fluid", "amount":30}], "enabled":false, "crafting_machine_tint":{"tertiary":{"a":0, "r":0.96, "g":0.806, "b":0}, "secondary":{"a":0, "r":0.812, "g":1, "b":0}, "primary":{"a":0, "r":1, "g":0.659, "b":0}}, "category":"chemistry"}
{"name":"lubricant", "type":"recipe", "ingredients":[{"name":"heavy-oil", "type":"fluid", "amount":10}], "subgroup":"fluid-recipes", "crafting_machine_tint":{"tertiary":{"a":0, "r":0.026, "g":0.52, "b":0}, "secondary":{"a":0, "r":0.071, "g":0.64, "b":0}, "primary":{"a":0, "r":0, "g":0.26, "b":0.01}}, "category":"chemistry", "results":[{"name":"lubricant", "type":"fluid", "amount":10}], "enabled":false, "energy_required":1}
{"name":"empty-barrel", "type":"recipe", "results":[{"name":"empty-barrel", "type":"item", "amount":1}], "enabled":false, "ingredients":[{"name":"steel-plate", "type":"item", "amount":1}], "subgroup":"intermediate-product", "energy_required":1, "category":"crafting"}
{"name":"steel-plate", "type":"recipe", "expensive":{"ingredients":[["iron-plate", 10]], "energy_required":35, "result":"steel-plate", "enabled":false}, "normal":{"ingredients":[["iron-plate", 5]], "energy_required":17.5, "result":"steel-plate", "enabled":false}, "category":"smelting"}
{"name":"long-handed-inserter", "type":"recipe", "result":"long-handed-inserter", "ingredients":[["iron-gear-wheel", 1], ["iron-plate", 1], ["inserter", 1]], "requester_paste_multiplier":4, "enabled":false}
{"name":"fast-inserter", "type":"recipe", "result":"fast-inserter", "ingredients":[["electronic-circuit", 2], ["iron-plate", 2], ["inserter", 1]], "requester_paste_multiplier":4, "enabled":false}
{"name":"filter-inserter", "type":"recipe", "result":"filter-inserter", "ingredients":[["fast-inserter", 1], ["electronic-circuit", 4]], "requester_paste_multiplier":4, "enabled":false}
{"name":"stack-inserter", "type":"recipe", "result":"stack-inserter", "ingredients":[["iron-gear-wheel", 15], ["electronic-circuit", 15], ["advanced-circuit", 1], ["fast-inserter", 1]], "requester_paste_multiplier":4, "enabled":false}
{"name":"stack-filter-inserter", "type":"recipe", "result":"stack-filter-inserter", "ingredients":[["stack-inserter", 1], ["electronic-circuit", 5]], "requester_paste_multiplier":4, "enabled":false}
{"name":"speed-module", "type":"recipe", "result":"speed-module", "ingredients":[["advanced-circuit", 5], ["electronic-circuit", 5]], "energy_required":15, "enabled":false}
{"name":"speed-module-2", "type":"recipe", "result":"speed-module-2", "ingredients":[["speed-module", 4], ["advanced-circuit", 5], ["processing-unit", 5]], "energy_required":30, "enabled":false}
{"name":"speed-module-3", "type":"recipe", "result":"speed-module-3", "ingredients":[["speed-module-2", 5], ["advanced-circuit", 5], ["processing-unit", 5]], "energy_required":60, "enabled":false}
{"name":"productivity-module", "type":"recipe", "result":"productivity-module", "ingredients":[["advanced-circuit", 5], ["electronic-circuit", 5]], "energy_required":15, "enabled":false}
{"name":"productivity-module-2", "type":"recipe", "result":"productivity-module-2", "ingredients":[["productivity-module", 4], ["advanced-circuit", 5], ["processing-unit", 5]], "energy_required":30, "enabled":false}
{"name":"productivity-module-3", "type":"recipe", "result":"productivity-module-3", "ingredients":[["productivity-module-2", 5], ["advanced-circuit", 5], ["processing-unit", 5]], "energy_required":60, "enabled":false}
{"name":"effectivity-module", "type":"recipe", "result":"effectivity-module", "ingredients":[["advanced-circuit", 5], ["electronic-circuit", 5]], "energy_required":15, "enabled":false}
{"name":"effectivity-module-2", "type":"recipe", "result":"effectivity-module-2", "ingredients":[["effectivity-module", 4], ["advanced-circuit", 5], ["processing-unit", 5]], "energy_required":30, "enabled":false}
{"name":"effectivity-module-3", "type":"recipe", "result":"effectivity-module-3", "ingredients":[["effectivity-module-2", 5], ["advanced-circuit", 5], ["processing-unit", 5]], "energy_required":60, "enabled":false}
{"name":"player-port", "type":"recipe", "result":"player-port", "ingredients":[["electronic-circuit", 10], ["iron-gear-wheel", 5], ["iron-plate", 1]], "enabled":false}
{"name":"fast-transport-belt", "type":"recipe", "result":"fast-transport-belt", "ingredients":[["iron-gear-wheel", 5], ["transport-belt", 1]], "enabled":false}
{"name":"express-transport-belt", "type":"recipe", "expensive":{"ingredients":[["iron-gear-wheel", 20], ["fast-transport-belt", 1], {"name":"lubricant", "type":"fluid", "amount":20}], "requester_paste_multiplier":20, "result":"express-transport-belt", "enabled":false}, "normal":{"ingredients":[["iron-gear-wheel", 10], ["fast-transport-belt", 1], {"name":"lubricant", "type":"fluid", "amount":20}], "result":"express-transport-belt", "enabled":false}, "category":"crafting-with-fluid"}
{"name":"solar-panel", "type":"recipe", "result":"solar-panel", "ingredients":[["steel-plate", 5], ["electronic-circuit", 15], ["copper-plate", 5]], "enabled":false, "energy_required":10}
{"name":"assembling-machine-2", "type":"recipe", "normal":{"ingredients":[["iron-plate", 9], ["electronic-circuit", 3], ["iron-gear-wheel", 5], ["assembling-machine-1", 1]], "requester_paste_multiplier":4, "result":"assembling-machine-2", "enabled":false}, "expensive":{"ingredients":[["iron-plate", 20], ["electronic-circuit", 5], ["iron-gear-wheel", 10], ["assembling-machine-1", 1]], "requester_paste_multiplier":4, "result":"assembling-machine-2", "enabled":false}}
{"name":"assembling-machine-3", "type":"recipe", "result":"assembling-machine-3", "ingredients":[["speed-module", 4], ["assembling-machine-2", 2]], "enabled":false}
{"name":"car", "type":"recipe", "result":"car", "ingredients":[["engine-unit", 8], ["iron-plate", 20], ["steel-plate", 5]], "enabled":false}
{"name":"tank", "type":"recipe", "normal":{"ingredients":[["engine-unit", 32], ["steel-plate", 50], ["iron-gear-wheel", 15], ["advanced-circuit", 10]], "result":"tank", "enabled":false}, "expensive":{"ingredients":[["engine-unit", 64], ["steel-plate", 100], ["iron-gear-wheel", 30], ["advanced-circuit", 20]], "result":"tank", "enabled":false}}
{"name":"rail", "type":"recipe", "result":"rail", "ingredients":[["stone", 1], ["iron-stick", 1], ["steel-plate", 1]], "result_count":2, "requester_paste_multiplier":4, "enabled":false}
{"name":"locomotive", "type":"recipe", "result":"locomotive", "ingredients":[["engine-unit", 20], ["electronic-circuit", 10], ["steel-plate", 30]], "enabled":false}
{"name":"cargo-wagon", "type":"recipe", "result":"cargo-wagon", "ingredients":[["iron-gear-wheel", 10], ["iron-plate", 20], ["steel-plate", 20]], "enabled":false}
{"name":"fluid-wagon", "type":"recipe", "result":"fluid-wagon", "ingredients":[["iron-gear-wheel", 10], ["steel-plate", 16], ["pipe", 8], ["storage-tank", 3]], "energy_required":1.5, "enabled":false}
{"name":"train-stop", "type":"recipe", "result":"train-stop", "ingredients":[["electronic-circuit", 5], ["iron-plate", 10], ["steel-plate", 3]], "enabled":false}
{"name":"rail-signal", "type":"recipe", "result":"rail-signal", "ingredients":[["electronic-circuit", 1], ["iron-plate", 5]], "requester_paste_multiplier":4, "enabled":false}
{"name":"rail-chain-signal", "type":"recipe", "result":"rail-chain-signal", "ingredients":[["electronic-circuit", 1], ["iron-plate", 5]], "requester_paste_multiplier":4, "enabled":false}
{"name":"heavy-armor", "type":"recipe", "result":"heavy-armor", "ingredients":[["copper-plate", 100], ["steel-plate", 50]], "energy_required":8, "enabled":false}
{"name":"modular-armor", "type":"recipe", "result":"modular-armor", "ingredients":[["advanced-circuit", 30], ["steel-plate", 50]], "energy_required":15, "enabled":false}
{"name":"power-armor", "type":"recipe", "result":"power-armor", "ingredients":[["processing-unit", 40], ["electric-engine-unit", 20], ["steel-plate", 40]], "energy_required":20, "requester_paste_multiplier":1, "enabled":false}
{"name":"power-armor-mk2", "type":"recipe", "result":"power-armor-mk2", "ingredients":[["effectivity-module-3", 5], ["speed-module-3", 5], ["processing-unit", 40], ["steel-plate", 40]], "energy_required":25, "requester_paste_multiplier":1, "enabled":false}
{"name":"iron-chest", "type":"recipe", "result":"iron-chest", "ingredients":[["iron-plate", 8]], "requester_paste_multiplier":4, "enabled":true}
{"name":"steel-chest", "type":"recipe", "result":"steel-chest", "ingredients":[["steel-plate", 8]], "requester_paste_multiplier":4, "enabled":false}
{"name":"stone-wall", "type":"recipe", "result":"stone-wall", "ingredients":[["stone-brick", 5]], "enabled":false}
{"name":"gate", "type":"recipe", "result":"gate", "ingredients":[["stone-wall", 1], ["steel-plate", 2], ["electronic-circuit", 2]], "enabled":false}
{"name":"flamethrower", "type":"recipe", "result":"flamethrower", "ingredients":[["steel-plate", 5], ["iron-gear-wheel", 10]], "energy_required":10, "enabled":false}
{"name":"land-mine", "type":"recipe", "result":"land-mine", "ingredients":[["steel-plate", 1], ["explosives", 2]], "result_count":4, "energy_required":5, "enabled":false}
{"name":"rocket-launcher", "type":"recipe", "result":"rocket-launcher", "ingredients":[["iron-plate", 5], ["iron-gear-wheel", 5], ["electronic-circuit", 5]], "energy_required":10, "enabled":false}
{"name":"shotgun", "type":"recipe", "result":"shotgun", "ingredients":[["iron-plate", 15], ["iron-gear-wheel", 5], ["copper-plate", 10], ["wood", 5]], "energy_required":10, "enabled":false}
{"name":"combat-shotgun", "type":"recipe", "result":"combat-shotgun", "ingredients":[["steel-plate", 15], ["iron-gear-wheel", 5], ["copper-plate", 10], ["wood", 10]], "energy_required":10, "enabled":false}
{"name":"railgun", "type":"recipe", "result":"railgun", "ingredients":[["steel-plate", 15], ["copper-plate", 15], ["electronic-circuit", 10], ["advanced-circuit", 5]], "energy_required":8, "enabled":false}
{"name":"science-pack-1", "type":"recipe", "result":"science-pack-1", "ingredients":[["copper-plate", 1], ["iron-gear-wheel", 1]], "energy_required":5}
{"name":"science-pack-2", "type":"recipe", "result":"science-pack-2", "ingredients":[["inserter", 1], ["transport-belt", 1]], "energy_required":6}
{"name":"science-pack-3", "type":"recipe", "result":"science-pack-3", "ingredients":[["advanced-circuit", 1], ["engine-unit", 1], ["electric-mining-drill", 1]], "energy_required":12, "enabled":false}
{"name":"military-science-pack", "type":"recipe", "result":"military-science-pack", "ingredients":[["piercing-rounds-magazine", 1], ["grenade", 1], ["gun-turret", 1]], "result_count":2, "energy_required":10, "enabled":false}
{"name":"production-science-pack", "type":"recipe", "result":"production-science-pack", "ingredients":[["electric-engine-unit", 1], ["assembling-machine-1", 1], ["electric-furnace", 1]], "result_count":2, "energy_required":14, "enabled":false}
{"name":"high-tech-science-pack", "type":"recipe", "result":"high-tech-science-pack", "ingredients":[["battery", 1], ["processing-unit", 3], ["speed-module", 1], ["copper-cable", 30]], "result_count":2, "energy_required":14, "enabled":false}
{"name":"lab", "type":"recipe", "result":"lab", "ingredients":[["electronic-circuit", 10], ["iron-gear-wheel", 10], ["transport-belt", 4]], "energy_required":3}
{"name":"red-wire", "type":"recipe", "result":"red-wire", "ingredients":[["electronic-circuit", 1], ["copper-cable", 1]], "enabled":false}
{"name":"green-wire", "type":"recipe", "result":"green-wire", "ingredients":[["electronic-circuit", 1], ["copper-cable", 1]], "enabled":false}
{"name":"underground-belt", "type":"recipe", "result":"underground-belt", "energy_required":1, "ingredients":[["iron-plate", 10], ["transport-belt", 5]], "result_count":2, "requester_paste_multiplier":4, "enabled":false}
{"name":"fast-underground-belt", "type":"recipe", "result":"fast-underground-belt", "ingredients":[["iron-gear-wheel", 40], ["underground-belt", 2]], "result_count":2, "requester_paste_multiplier":4, "enabled":false}
{"name":"express-underground-belt", "type":"recipe", "result":"express-underground-belt", "ingredients":[["iron-gear-wheel", 80], ["fast-underground-belt", 2], {"name":"lubricant", "type":"fluid", "amount":40}], "result_count":2, "enabled":false, "category":"crafting-with-fluid"}
{"name":"loader", "type":"recipe", "result":"loader", "ingredients":[["inserter", 5], ["electronic-circuit", 5], ["iron-gear-wheel", 5], ["iron-plate", 5], ["transport-belt", 5]], "energy_required":1, "enabled":false}
{"name":"fast-loader", "type":"recipe", "result":"fast-loader", "ingredients":[["fast-transport-belt", 5], ["loader", 1]], "energy_required":3, "enabled":false}
{"name":"express-loader", "type":"recipe", "result":"express-loader", "ingredients":[["express-transport-belt", 5], ["fast-loader", 1]], "energy_required":10, "enabled":false}
{"name":"splitter", "type":"recipe", "result":"splitter", "ingredients":[["electronic-circuit", 5], ["iron-plate", 5], ["transport-belt", 4]], "energy_required":1, "requester_paste_multiplier":4, "enabled":false}
{"name":"fast-splitter", "type":"recipe", "result":"fast-splitter", "ingredients":[["splitter", 1], ["iron-gear-wheel", 10], ["electronic-circuit", 10]], "energy_required":2, "requester_paste_multiplier":4, "enabled":false}
{"name":"express-splitter", "type":"recipe", "result":"express-splitter", "ingredients":[["fast-splitter", 1], ["iron-gear-wheel", 10], ["advanced-circuit", 10], {"name":"lubricant", "type":"fluid", "amount":80}], "energy_required":2, "enabled":false, "category":"crafting-with-fluid"}
{"name":"advanced-circuit", "type":"recipe", "normal":{"result":"advanced-circuit", "ingredients":[["electronic-circuit", 2], ["plastic-bar", 2], ["copper-cable", 4]], "energy_required":6, "requester_paste_multiplier":5, "enabled":false}, "expensive":{"result":"advanced-circuit", "ingredients":[["electronic-circuit", 2], ["plastic-bar", 4], ["copper-cable", 8]], "energy_required":6, "requester_paste_multiplier":5, "enabled":false}}
{"name":"processing-unit", "type":"recipe", "expensive":{"ingredients":[["electronic-circuit", 20], ["advanced-circuit", 2], {"name":"sulfuric-acid", "type":"fluid", "amount":10}], "energy_required":10, "result":"processing-unit", "enabled":false}, "normal":{"ingredients":[["electronic-circuit", 20], ["advanced-circuit", 2], {"name":"sulfuric-acid", "type":"fluid", "amount":5}], "energy_required":10, "result":"processing-unit", "enabled":false}, "category":"crafting-with-fluid"}
{"name":"logistic-robot", "type":"recipe", "result":"logistic-robot", "ingredients":[["flying-robot-frame", 1], ["advanced-circuit", 2]], "enabled":false}
{"name":"construction-robot", "type":"recipe", "result":"construction-robot", "ingredients":[["flying-robot-frame", 1], ["electronic-circuit", 2]], "enabled":false}
{"name":"logistic-chest-passive-provider", "type":"recipe", "result":"logistic-chest-passive-provider", "ingredients":[["steel-chest", 1], ["electronic-circuit", 3], ["advanced-circuit", 1]], "requester_paste_multiplier":4, "enabled":false}
{"name":"logistic-chest-active-provider", "type":"recipe", "result":"logistic-chest-active-provider", "ingredients":[["steel-chest", 1], ["electronic-circuit", 3], ["advanced-circuit", 1]], "requester_paste_multiplier":4, "enabled":false}
{"name":"logistic-chest-storage", "type":"recipe", "result":"logistic-chest-storage", "ingredients":[["steel-chest", 1], ["electronic-circuit", 3], ["advanced-circuit", 1]], "requester_paste_multiplier":4, "enabled":false}
{"name":"logistic-chest-requester", "type":"recipe", "result":"logistic-chest-requester", "ingredients":[["steel-chest", 1], ["electronic-circuit", 3], ["advanced-circuit", 1]], "requester_paste_multiplier":4, "enabled":false}
{"name":"rocket-silo", "type":"recipe", "result":"rocket-silo", "ingredients":[["steel-plate", 1000], ["concrete", 1000], ["pipe", 100], ["processing-unit", 200], ["electric-engine-unit", 200]], "energy_required":30, "requester_paste_multiplier":1, "enabled":false}
{"name":"roboport", "type":"recipe", "result":"roboport", "ingredients":[["steel-plate", 45], ["iron-gear-wheel", 45], ["advanced-circuit", 45]], "energy_required":10, "enabled":false}
{"name":"steel-axe", "type":"recipe", "result":"steel-axe", "ingredients":[["steel-plate", 5], ["iron-stick", 2]], "requester_paste_multiplier":4, "enabled":false}
{"name":"big-electric-pole", "type":"recipe", "result":"big-electric-pole", "ingredients":[["steel-plate", 5], ["copper-plate", 5]], "requester_paste_multiplier":4, "enabled":false}
{"name":"substation", "type":"recipe", "result":"substation", "ingredients":[["steel-plate", 10], ["advanced-circuit", 5], ["copper-plate", 5]], "enabled":false}
{"name":"medium-electric-pole", "type":"recipe", "result":"medium-electric-pole", "ingredients":[["steel-plate", 2], ["copper-plate", 2]], "requester_paste_multiplier":4, "enabled":false}
{"name":"accumulator", "type":"recipe", "result":"accumulator", "ingredients":[["iron-plate", 2], ["battery", 5]], "enabled":false, "energy_required":10}
{"name":"steel-furnace", "type":"recipe", "result":"steel-furnace", "ingredients":[["steel-plate", 6], ["stone-brick", 10]], "enabled":false, "energy_required":3}
{"name":"electric-furnace", "type":"recipe", "result":"electric-furnace", "ingredients":[["steel-plate", 10], ["advanced-circuit", 5], ["stone-brick", 10]], "enabled":false, "energy_required":5}
{"name":"beacon", "type":"recipe", "result":"beacon", "ingredients":[["electronic-circuit", 20], ["advanced-circuit", 20], ["steel-plate", 10], ["copper-cable", 10]], "energy_required":15, "enabled":false}
{"name":"pumpjack", "type":"recipe", "result":"pumpjack", "ingredients":[["steel-plate", 5], ["iron-gear-wheel", 10], ["electronic-circuit", 5], ["pipe", 10]], "enabled":false, "energy_required":5}
{"name":"oil-refinery", "type":"recipe", "result":"oil-refinery", "ingredients":[["steel-plate", 15], ["iron-gear-wheel", 10], ["stone-brick", 10], ["electronic-circuit", 10], ["pipe", 10]], "enabled":false, "energy_required":10}
{"name":"engine-unit", "type":"recipe", "result":"engine-unit", "ingredients":[["steel-plate", 1], ["iron-gear-wheel", 1], ["pipe", 2]], "enabled":false, "category":"advanced-crafting", "energy_required":10}
{"name":"electric-engine-unit", "type":"recipe", "result":"electric-engine-unit", "ingredients":[["engine-unit", 1], {"name":"lubricant", "type":"fluid", "amount":15}, ["electronic-circuit", 2]], "enabled":false, "energy_required":10, "category":"crafting-with-fluid"}
{"name":"flying-robot-frame", "type":"recipe", "result":"flying-robot-frame", "ingredients":[["electric-engine-unit", 1], ["battery", 2], ["steel-plate", 1], ["electronic-circuit", 3]], "enabled":false, "energy_required":20}
{"name":"explosives", "type":"recipe", "expensive":{"ingredients":[{"name":"sulfur", "type":"item", "amount":2}, {"name":"coal", "type":"item", "amount":2}, {"name":"water", "type":"fluid", "amount":10}], "enabled":false, "result":"explosives", "energy_required":5}, "normal":{"ingredients":[{"name":"sulfur", "type":"item", "amount":1}, {"name":"coal", "type":"item", "amount":1}, {"name":"water", "type":"fluid", "amount":10}], "enabled":false, "result":"explosives", "energy_required":5}, "crafting_machine_tint":{"tertiary":{"a":0, "r":0, "g":0.288, "b":0.365}, "secondary":{"a":0.898, "r":0, "g":0.441, "b":0.659}, "primary":{"a":0, "r":0.955, "g":0.945, "b":0}}, "category":"chemistry"}
{"name":"battery", "type":"recipe", "crafting_machine_tint":{"tertiary":{"a":0, "r":0.43, "g":0.805, "b":0.726}, "secondary":{"a":0.357, "r":0, "g":0.68, "b":0.894}, "primary":{"a":0, "r":0.97, "g":0.611, "b":0}}, "expensive":{"ingredients":[{"name":"sulfuric-acid", "type":"fluid", "amount":40}, ["iron-plate", 1], ["copper-plate", 1]], "enabled":false, "result":"battery", "energy_required":5}, "normal":{"ingredients":[{"name":"sulfuric-acid", "type":"fluid", "amount":20}, ["iron-plate", 1], ["copper-plate", 1]], "enabled":false, "result":"battery", "energy_required":5}, "category":"chemistry"}
{"name":"storage-tank", "type":"recipe", "result":"storage-tank", "ingredients":[["iron-plate", 20], ["steel-plate", 5]], "enabled":false, "energy_required":3}
{"name":"pump", "type":"recipe", "result":"pump", "ingredients":[["engine-unit", 1], ["steel-plate", 1], ["pipe", 1]], "enabled":false, "energy_required":2}
{"name":"chemical-plant", "type":"recipe", "result":"chemical-plant", "ingredients":[["steel-plate", 5], ["iron-gear-wheel", 5], ["electronic-circuit", 5], ["pipe", 5]], "enabled":false, "energy_required":5}
{"name":"small-plane", "type":"recipe", "result":"small-plane", "ingredients":[["plastic-bar", 100], ["advanced-circuit", 200], ["electric-engine-unit", 20], ["battery", 100]], "category":"crafting", "enabled":false, "energy_required":30}
{"name":"arithmetic-combinator", "type":"recipe", "result":"arithmetic-combinator", "ingredients":[["copper-cable", 5], ["electronic-circuit", 5]], "enabled":false}
{"name":"decider-combinator", "type":"recipe", "result":"decider-combinator", "ingredients":[["copper-cable", 5], ["electronic-circuit", 5]], "enabled":false}
{"name":"constant-combinator", "type":"recipe", "result":"constant-combinator", "ingredients":[["copper-cable", 5], ["electronic-circuit", 2]], "enabled":false}
{"name":"power-switch", "type":"recipe", "result":"power-switch", "ingredients":[["iron-plate", 5], ["copper-cable", 5], ["electronic-circuit", 2]], "energy_required":2, "enabled":false}
{"name":"programmable-speaker", "type":"recipe", "result":"programmable-speaker", "ingredients":[["iron-plate", 5], ["copper-cable", 5], ["electronic-circuit", 4]], "energy_required":2, "enabled":false}
{"name":"low-density-structure", "type":"recipe", "expensive":{"ingredients":[["steel-plate", 10], ["copper-plate", 10], ["plastic-bar", 10]], "enabled":false, "result":"low-density-structure", "energy_required":30}, "normal":{"ingredients":[["steel-plate", 10], ["copper-plate", 5], ["plastic-bar", 5]], "enabled":false, "result":"low-density-structure", "energy_required":30}, "category":"crafting"}
{"name":"rocket-fuel", "type":"recipe", "result":"rocket-fuel", "ingredients":[["solid-fuel", 10]], "category":"crafting", "enabled":false, "energy_required":30}
{"name":"rocket-control-unit", "type":"recipe", "result":"rocket-control-unit", "ingredients":[["processing-unit", 1], ["speed-module", 1]], "category":"crafting", "enabled":false, "energy_required":30}
{"name":"rocket-part", "type":"recipe", "result":"rocket-part", "category":"rocket-building", "ingredients":[["low-density-structure", 10], ["rocket-fuel", 10], ["rocket-control-unit", 10]], "enabled":false, "hidden":true, "energy_required":3}
{"name":"satellite", "type":"recipe", "result":"satellite", "ingredients":[["low-density-structure", 100], ["solar-panel", 100], ["accumulator", 100], ["radar", 5], ["processing-unit", 100], ["rocket-fuel", 50]], "category":"crafting", "enabled":false, "energy_required":3}
{"name":"concrete", "type":"recipe", "result":"concrete", "result_count":10, "ingredients":[["stone-brick", 5], ["iron-ore", 1], {"name":"water", "type":"fluid", "amount":100}], "category":"crafting-with-fluid", "enabled":false, "energy_required":10}
{"name":"hazard-concrete", "type":"recipe", "result":"hazard-concrete", "result_count":10, "ingredients":[["concrete", 10]], "category":"crafting", "enabled":false, "energy_required":0.25}
{"name":"landfill", "type":"recipe", "result":"landfill", "result_count":1, "ingredients":[["stone", 20]], "category":"crafting", "enabled":false, "energy_required":0.5}
{"name":"electric-energy-interface", "type":"recipe", "result":"electric-energy-interface", "ingredients":[["iron-plate", 2], ["electronic-circuit", 5]], "enabled":false, "energy_required":0.5}
{"name":"nuclear-reactor", "type":"recipe", "result":"nuclear-reactor", "ingredients":[["concrete", 500], ["steel-plate", 500], ["advanced-circuit", 500], ["copper-plate", 500]], "enabled":false, "requester_paste_multiplier":1, "energy_required":4}
{"name":"centrifuge", "type":"recipe", "result":"centrifuge", "ingredients":[["concrete", 100], ["steel-plate", 50], ["advanced-circuit", 100], ["iron-gear-wheel", 100]], "enabled":false, "requester_paste_multiplier":2, "energy_required":4}
{"name":"uranium-processing", "type":"recipe", "ingredients":[["uranium-ore", 10]], "subgroup":"raw-material", "enabled":false, "results":[{"name":"uranium-235", "amount":1, "probability":0.007}, {"name":"uranium-238", "amount":1, "probability":0.993}], "icon":"__base__\/graphics\/icons\/uranium-processing.png", "order":"h[uranium-processing]", "category":"centrifuging", "energy_required":10}
{"name":"kovarex-enrichment-process", "type":"recipe", "ingredients":[["uranium-235", 40], ["uranium-238", 5]], "subgroup":"intermediate-product", "enabled":false, "order":"r[uranium-processing]-c[kovarex-enrichment-process]", "results":[{"name":"uranium-235", "amount":41}, {"name":"uranium-238", "amount":2}], "allow_decomposition":false, "icon":"__base__\/graphics\/icons\/kovarex-enrichment-process.png", "main_product":"", "category":"centrifuging", "energy_required":50}
{"name":"nuclear-fuel-reprocessing", "type":"recipe", "ingredients":[["used-up-uranium-fuel-cell", 5]], "subgroup":"intermediate-product", "enabled":false, "order":"r[uranium-processing]-b[nuclear-fuel-reprocessing]", "results":[{"name":"uranium-238", "amount":3}], "allow_decomposition":false, "icon":"__base__\/graphics\/icons\/nuclear-fuel-reprocessing.png", "main_product":"", "category":"centrifuging", "energy_required":50}
{"name":"uranium-fuel-cell", "type":"recipe", "result":"uranium-fuel-cell", "ingredients":[["iron-plate", 10], ["uranium-235", 1], ["uranium-238", 19]], "result_count":10, "enabled":false, "energy_required":10}
{"name":"heat-exchanger", "type":"recipe", "result":"heat-exchanger", "ingredients":[["steel-plate", 10], ["copper-plate", 100], ["pipe", 10]], "enabled":false}
{"name":"heat-pipe", "type":"recipe", "result":"heat-pipe", "ingredients":[["steel-plate", 10], ["copper-plate", 20]], "enabled":false}
{"name":"steam-turbine", "type":"recipe", "result":"steam-turbine", "ingredients":[["iron-gear-wheel", 50], ["copper-plate", 50], ["pipe", 20]], "enabled":false}
{"name":"laser-turret", "type":"recipe", "result":"laser-turret", "ingredients":[["steel-plate", 20], ["electronic-circuit", 20], ["battery", 12]], "energy_required":20, "enabled":false}
{"name":"flamethrower-turret", "type":"recipe", "result":"flamethrower-turret", "ingredients":[["steel-plate", 30], ["iron-gear-wheel", 15], ["pipe", 10], ["engine-unit", 5]], "energy_required":20, "enabled":false}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment