Skip to content

Smelter

Refines raw ore into metal stock, one unit at a time, following a recipe you choose. A script sets the recipe, feeds ore in from a bin, and drains the finished metal out to another.

Stats: Power in variable · Input buffer 50 · Output buffer 50 · Recipes 7 available

How to obtain: Requires the Ore Refinement research (Oxygen 5). Buy from the Shop for 650 cr.

Access: self / get_component(id) · Like every component, exposes .id and .name.

The outpost where this building is deployed, as an OutpostRef.

Every recipe this smelter has been given a blueprint for. Returns Recipe objects with .tier, .id, .name, .inputs, .output_item, .output_count, .duration_game_hours, and .power_draw. Locked recipes do not appear. Day-1 starts with "smelt_iron_ingot" only; more arrive as blueprints unlock.

Returns: List of unlocked Recipe objects

Find one unlocked recipe by id. Returns its Recipe object, or None.

Returns: Recipe or None

Select which recipe the smelter should run. Call self.set_recipe("smelt_iron_ingot") or pass a Recipe from list_recipes().

Returns: ActionResult · Outcomes: "ok" / "unknown_recipe" / "offline" (transient) / "recipe_locked" / "busy" (transient) / "material_mismatch"

Unset the current recipe and leave the smelter idle. Empty latched buffers clear back to no material.

Returns: ActionResult · Outcomes: "ok" / "busy" / "material_present"

Current recipe id, or the empty string if none set. The seven recipes: "smelt_iron_ingot", "smelt_glass", "smelt_titanium_ingot", "smelt_cobalt_ingot", "smelt_rare_earth_core", "smelt_neutronium_bar", "smelt_lead_ingot".

Returns: String

Input requirements for the current recipe as a dict {item_id: count_per_craft}. Empty dict if no recipe is set.

Returns: Dict

True while the smelter is actively processing a unit. Use before set_recipe() to avoid the "busy" rejection.

Returns: Boolean

Progress toward the next completed unit (0-1). Resets to 0 when a unit completes and a new one starts.

Returns: Number (0-1)

Units currently in the input buffer waiting to be smelted / in the output buffer waiting to be drained.

Returns: Number

Loads ore into the Smelter. At home it can use Inventory; remote Smelters must connect a local Storage Bin or Warehouse. Pull material with self.input.take(item_id, count). Failed transfers leave the source cargo unchanged. Requires Auto Feeders research. See InputSlot.

Sends refined material out of the Smelter. At home it can use Inventory; remote Smelters must connect a local Storage Bin or Warehouse. Send material with self.output.send(item_id, count). Failed transfers leave the output unchanged. See OutputSlot.

peek_command() · next_command() · command_count() · clear_commands() (SELF ONLY): see Script Commands.