# recipes.toml # # First real-content iteration of the production tree. Quantities and # durations are a first guess; the balancing pass will tune them and assign # real unlock_at_station_level values (everything is unlocked for now so the # full tree is testable). # # Input chain per game phase — each phase adds exactly one new base input: # # early iron_ore + copper_ore -> ingots -> copper_wire, steel_plate, # circuit_board # mid + titanium_ore -> titanium_frame; assembler-made # mechanical_parts, targeting_unit, # drive_unit # late + advanced_alloy -> reinforced_plating, capital_core. # advanced_alloy CANNOT be mined; it only # comes from reprocessing salvaged scrap, # so capital production requires combat. # # Run tools/verify_recipes.py after editing to check that every consumed # item has a producer and every item has a visuals.toml entry. # ----------------------------------------------------------------------------- # Mining (tier 0) # ----------------------------------------------------------------------------- [[recipe]] id = "mine_iron_ore" building = "miner" inputs = [] outputs = [{item = "iron_ore", amount = 1}] duration_seconds = 1.0 [[recipe]] id = "mine_copper_ore" building = "miner" inputs = [] outputs = [{item = "copper_ore", amount = 1}] duration_seconds = 1.5 # Titanium is the midgame ore: mined three times slower than iron. [[recipe]] id = "mine_titanium_ore" building = "miner" inputs = [] outputs = [{item = "titanium_ore", amount = 1}] duration_seconds = 3.0 # ----------------------------------------------------------------------------- # Smelting (tier 1) # ----------------------------------------------------------------------------- [[recipe]] id = "iron_ingot" building = "smelter" inputs = [{item = "iron_ore", amount = 2}] outputs = [{item = "iron_ingot", amount = 1}] duration_seconds = 2.0 [[recipe]] id = "copper_ingot" building = "smelter" inputs = [{item = "copper_ore", amount = 2}] outputs = [{item = "copper_ingot", amount = 1}] duration_seconds = 2.5 [[recipe]] id = "titanium_ingot" building = "smelter" inputs = [{item = "titanium_ore", amount = 3}] outputs = [{item = "titanium_ingot", amount = 1}] duration_seconds = 4.0 # ----------------------------------------------------------------------------- # Reprocessing # # The only source of advanced_alloy: salvaged scrap from destroyed ships. # ----------------------------------------------------------------------------- [[recipe]] id = "reprocessing_cycle" building = "reprocessing_plant" inputs = [{item = "scrap", amount = 5}] duration_seconds = 3.0 [[recipe.outputs]] item = "iron_ingot" amount = 2 probability = 0.45 [[recipe.outputs]] item = "copper_ingot" amount = 1 probability = 0.25 [[recipe.outputs]] item = "titanium_ingot" amount = 1 probability = 0.15 [[recipe.outputs]] item = "advanced_alloy" amount = 1 probability = 0.15 # ----------------------------------------------------------------------------- # Basic components (tier 2, early game) # ----------------------------------------------------------------------------- [[recipe]] id = "copper_wire" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "copper_ingot", amount = 1}] outputs = [{item = "copper_wire", amount = 2}] duration_seconds = 1.5 [[recipe]] id = "steel_plate" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "iron_ingot", amount = 2}] outputs = [{item = "steel_plate", amount = 1}] duration_seconds = 2.0 [[recipe]] id = "circuit_board" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "iron_ingot", amount = 1}, {item = "copper_wire", amount = 2}] outputs = [{item = "circuit_board", amount = 1}] duration_seconds = 2.0 [[recipe]] id = "building_blocks" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "iron_ingot", amount = 4}] outputs = [{item = "building_block", amount = 10}] duration_seconds = 4.0 # ----------------------------------------------------------------------------- # Advanced components (tier 3, midgame) # ----------------------------------------------------------------------------- [[recipe]] id = "mechanical_parts" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "steel_plate", amount = 1}, {item = "iron_ingot", amount = 1}] outputs = [{item = "mechanical_parts", amount = 2}] duration_seconds = 2.5 [[recipe]] id = "targeting_unit" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "circuit_board", amount = 2}, {item = "copper_wire", amount = 1}] outputs = [{item = "targeting_unit", amount = 1}] duration_seconds = 3.0 [[recipe]] id = "drive_unit" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "steel_plate", amount = 1}, {item = "mechanical_parts", amount = 1}, {item = "circuit_board", amount = 1}, ] outputs = [{item = "drive_unit", amount = 1}] duration_seconds = 4.0 [[recipe]] id = "titanium_frame" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "titanium_ingot", amount = 2}, {item = "steel_plate", amount = 1}] outputs = [{item = "titanium_frame", amount = 1}] duration_seconds = 4.0 # ----------------------------------------------------------------------------- # Capital components (tier 4, lategame — gated on advanced_alloy) # ----------------------------------------------------------------------------- [[recipe]] id = "reinforced_plating" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "steel_plate", amount = 2}, {item = "advanced_alloy", amount = 1}] outputs = [{item = "reinforced_plating", amount = 1}] duration_seconds = 5.0 [[recipe]] id = "capital_core" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "targeting_unit", amount = 1}, {item = "drive_unit", amount = 1}, {item = "advanced_alloy", amount = 2}, ] outputs = [{item = "capital_core", amount = 1}] duration_seconds = 8.0 # ----------------------------------------------------------------------------- # Module items — early game # ----------------------------------------------------------------------------- [[recipe]] id = "laser_cannon_s_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "iron_ingot", amount = 2}, {item = "circuit_board", amount = 1}] outputs = [{item = "laser_cannon_s_module", amount = 1}] duration_seconds = 3.0 [[recipe]] id = "salvager_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "steel_plate", amount = 1}, {item = "circuit_board", amount = 1}] outputs = [{item = "salvager_module", amount = 1}] duration_seconds = 4.0 [[recipe]] id = "repair_tool_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "circuit_board", amount = 2}, {item = "copper_wire", amount = 1}] outputs = [{item = "repair_tool_module", amount = 1}] duration_seconds = 4.0 [[recipe]] id = "armor_plates_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "steel_plate", amount = 2}] outputs = [{item = "armor_plates_module", amount = 1}] duration_seconds = 3.0 [[recipe]] id = "sensor_booster_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "circuit_board", amount = 1}, {item = "copper_wire", amount = 2}] outputs = [{item = "sensor_booster_module", amount = 1}] duration_seconds = 3.0 [[recipe]] id = "maneuvering_thrusters_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "mechanical_parts", amount = 1}, {item = "copper_wire", amount = 1}] outputs = [{item = "maneuvering_thrusters_module", amount = 1}] duration_seconds = 3.0 # ----------------------------------------------------------------------------- # Module items — midgame # ----------------------------------------------------------------------------- [[recipe]] id = "afterburner_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "drive_unit", amount = 1}, {item = "steel_plate", amount = 1}] outputs = [{item = "afterburner_module", amount = 1}] duration_seconds = 4.0 [[recipe]] id = "weapon_upgrade_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "targeting_unit", amount = 1}, {item = "steel_plate", amount = 1}] outputs = [{item = "weapon_upgrade_module", amount = 1}] duration_seconds = 4.0 [[recipe]] id = "weapon_primer_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "targeting_unit", amount = 1}, {item = "copper_wire", amount = 2}] outputs = [{item = "weapon_primer_module", amount = 1}] duration_seconds = 4.0 [[recipe]] id = "weapon_stabilizer_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "targeting_unit", amount = 1}, {item = "mechanical_parts", amount = 1}] outputs = [{item = "weapon_stabilizer_module", amount = 1}] duration_seconds = 4.0 [[recipe]] id = "laser_cannon_m_module" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "targeting_unit", amount = 1}, {item = "titanium_frame", amount = 1}] outputs = [{item = "laser_cannon_m_module", amount = 1}] duration_seconds = 6.0 [[recipe]] id = "drone_bay_module" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "titanium_frame", amount = 1}, {item = "mechanical_parts", amount = 1}, {item = "circuit_board", amount = 1}, ] outputs = [{item = "drone_bay_module", amount = 1}] duration_seconds = 6.0 # ----------------------------------------------------------------------------- # Module items — lategame # ----------------------------------------------------------------------------- [[recipe]] id = "laser_cannon_l_module" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "targeting_unit", amount = 2}, {item = "reinforced_plating", amount = 2}, {item = "titanium_frame", amount = 1}, ] outputs = [{item = "laser_cannon_l_module", amount = 1}] duration_seconds = 12.0 [[recipe]] id = "drone_hangar_module" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "capital_core", amount = 1}, {item = "titanium_frame", amount = 2}, {item = "reinforced_plating", amount = 2}, ] outputs = [{item = "drone_hangar_module", amount = 1}] duration_seconds = 20.0 # ----------------------------------------------------------------------------- # Ship hulls # ----------------------------------------------------------------------------- [[recipe]] id = "drone_hull" unlock_at_station_level = -1 building = "assembler" inputs = [{item = "iron_ingot", amount = 5}, {item = "circuit_board", amount = 1}] outputs = [{item = "drone_hull", amount = 1}] duration_seconds = 4.0 [[recipe]] id = "frigate_hull" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "steel_plate", amount = 3}, {item = "mechanical_parts", amount = 1}, {item = "circuit_board", amount = 1}, ] outputs = [{item = "frigate_hull", amount = 1}] duration_seconds = 8.0 [[recipe]] id = "destroyer_hull" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "steel_plate", amount = 5}, {item = "mechanical_parts", amount = 2}, {item = "circuit_board", amount = 1}, ] outputs = [{item = "destroyer_hull", amount = 1}] duration_seconds = 10.0 [[recipe]] id = "cruiser_hull" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "titanium_frame", amount = 2}, {item = "steel_plate", amount = 4}, {item = "drive_unit", amount = 1}, ] outputs = [{item = "cruiser_hull", amount = 1}] duration_seconds = 15.0 [[recipe]] id = "battlecruiser_hull" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "titanium_frame", amount = 3}, {item = "steel_plate", amount = 6}, {item = "drive_unit", amount = 1}, {item = "targeting_unit", amount = 1}, ] outputs = [{item = "battlecruiser_hull", amount = 1}] duration_seconds = 20.0 [[recipe]] id = "battleship_hull" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "titanium_frame", amount = 4}, {item = "reinforced_plating", amount = 2}, {item = "drive_unit", amount = 2}, ] outputs = [{item = "battleship_hull", amount = 1}] duration_seconds = 30.0 [[recipe]] id = "dreadnought_hull" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "capital_core", amount = 1}, {item = "titanium_frame", amount = 6}, {item = "reinforced_plating", amount = 4}, {item = "drive_unit", amount = 2}, ] outputs = [{item = "dreadnought_hull", amount = 1}] duration_seconds = 60.0 [[recipe]] id = "carrier_hull" unlock_at_station_level = -1 building = "assembler" inputs = [ {item = "capital_core", amount = 1}, {item = "titanium_frame", amount = 5}, {item = "reinforced_plating", amount = 3}, {item = "drive_unit", amount = 2}, ] outputs = [{item = "carrier_hull", amount = 1}] duration_seconds = 60.0