8.2 Connectivity, Port Visuals & Parallel Crafting
Modules are allowed to be placed disconnected from each other. However, it is the responsibility of the game engine to ensure that disconnected/unpowered modules do not function:- Electrical Wires & Power: Wires must connect a Power Plant to consumer machines (
refinery,assembler,compute_node) to power them. Power Plants consume coal directly from the user’s global fuel stockpile (reactor_coal). The system automatically refuels the generator from the player’s Storage or Loot Box to top up the fuel level to 100.0 if it falls below maximum capacity.[!IMPORTANT] Power Grid Connection Requirement: Consumer modules (
refinery,assembler,compute_node,storage) are offline and inactive unless they are powered. They must be connected to apower_plantusingpower_wires (or placed directly adjacent to apower_plant). If you do not lay downpower_wiremodules on the grid to link them, your consumers will remain unpowered and all crafting/refining operations will stall. Always design your layout with power wire networks. Omnidirectional Power Rules: The backend validation logic for the power grid is fully omnidirectional. Apower_plantoutputs power natively to all 8 adjacent tiles (including diagonals in the flood fill), meaning it can share an edge with any consumer or wire from any direction. Similarly,power_wiremodules automatically form networks with any adjacent wire or consumer, even if they turn corners. Any visual directionality (such as wires looking like straight lines) in the front-end client does not restrict the backend power solver. - Cargo Conveyors: Cargo ports must align and face matching input/output ports of adjacent modules or connectors to route materials.
- Per-Building Parallel Crafting: Instead of a global queue, each Refinery and Assembler manages its own local crafting queue in
settings.craftingQueue. Multiple buildings can craft items in parallel if they are powered, routed, and have materials. - Physical Resource Routing Rules: To craft any recipe in a building’s queue, there must be a valid connection path routing the required inputs to that building, and a valid path routing the output to a storage container (Storage/Elevator or Hub Storage Box).
[!IMPORTANT] Output Routing Requirement: Both Refineries and Assemblers must have their output ports connected (via conveyors/connectors) to an active, powered
storage(Inventory Elevator) or ahub_box(Hub Box). If there is no valid output route to a storage container, the production operation cannot unload and the building will remain'stalled_no_route'. Connector Input Port Placement: Connectors pushing items into a machine’s input port can be placed adjacent to the machine, pushing directly onto the exterior 1x1 boundary tile of that port. The machine will auto-consume the item as it lands on the port tile. You do not need to place the Connector module directly over the inner footprint of the machine.- Raw Ores / Fuel must be routed from the
loot_boxmodule (which acts as the gateway to the match rewards stockpile). - Refined & Intermediate Components must be routed from a
storage(elevator) module (which acts as the gateway to the global storage stockpile), a preceding producing module, or a localhub_boxthat receives those items. - Sorters act as routing nodes for material flow. Sorters forward material availability checks from their configured exit ports (matching the filtered resources) to their input port, allowing filtered items to flow from their sources to their destinations through sorters.
- Raw Ores / Fuel must be routed from the
- Crafting Item Statuses: Each item in a building’s queue has a
statusfield updated in real-time by the simulator:'crafting': Building is powered, routed, has ingredients, and is actively processing the item.'stalled_no_route': Building is offline (unpowered) or lacks required input/output conveyor connections.'stalled_no_materials': Building is powered and routed, but ingredients are missing from connected source storage containers.'pending': The item is waiting in line behind other active/stalled items in the queue.
- Port Visual Status Toggling: Unused or inactive connections (ports that do not lead to an active adjacent module, connector, or wire) are automatically dimmed to
30% opacityon the visualizer UI. When a module is connected to an active neighbor and enabled, its ports transition to full brightness:- Cyan Dots: Glow at full brightness for active electrical output ports.
- Yellow Arrows (
^,v,<,>): Glow at full brightness for active cargo transporter ports in the direction of flow.