Canvas
Place nodes, connect ports, and keep large factory graphs readable.
- Double-click empty space: open the node palette at that position.
- Right-click empty space: open the same palette. Settings, Interaction can make the double-click zoom in there or do nothing, and the right-click do nothing. Insert, and A while single-key shortcuts are on, still open the palette.
- Left-drag empty space: pan. Mouse wheel: zoom around the cursor. To pan with the wheel instead, set it in Settings, Interaction; Ctrl + wheel (Cmd on a Mac) then zooms.
- Right-drag: draw a selection box. Shift or Control: extend selection.
- Middle-click: paste the copied selection.
You can also hold Shift and left-drag empty space to draw a selection box. By default both selection boxes include every card they overlap, even if part of the card extends outside the box. You do not need to enclose the whole card. To pick only the cards fully inside the box, set Selection box picks in Settings, Interaction.
The toolbar no longer has a + Add button. Palette keyboard access remains available; see Keyboard shortcuts.
Hover a palette entry for its full card. A recipe or a building shows its description and its inputs and outputs with the rate per minute. A recipe names every building it is produced in, with its picture, like the details below the list; a long list shows the first few and counts the rest. The card also shows the cycle time, the power it draws or makes, and its tier, mod and alternate marks. A special node explains what it is, how it is used and why it exists. The recent chips above the catalog show the same card.
The palette’s right column sorts the catalog into categories read from the game data: raw resources, liquids, gases, fuel, nuclear, organic, farming, packaging, Space Elevator parts, alternate recipes, power, and one entry per producing machine. Each category has an icon; a machine shows its building, so a mod machine gets one too. Mod packs sort the same way, and the counts follow the search. The list itself is grouped under the same headings, each entry once under its first category; anything without one is listed under Other at the end. Turn Add a node by category off in Settings for the flat list without the category column.
Click an entry and the panel grows downward with its details: inputs and outputs per minute and per cycle (liquids and gases in m³), how many recipes make or use each part, the buildings it is produced in with the power they draw or make, the cycle time, cycles per minute and energy per cycle, the part’s stack size, sink points and energy value, extraction rates per node purity, fuels, build cost, the milestone or research that unlocks it and a link to its wiki page. The card stays compact: its header holds the name, the building icon, the badges, a wiki link, Use recipe and X, each part sits on one line with its rate per minute (the amount per cycle is in its tooltip), and the rest is laid out as labelled chip rows. X closes the details, and Use recipe adds the selected entry. Double-click an entry or press Enter to add it directly.
Every tile and list row has the same height and the same order: the entry’s icon, its name, the icon of the building it runs in (hover it for the name), then the parts it moves on one line. The search bar above the list has a clear button; press / or Ctrl + F anywhere in the panel to jump to it, and Escape empties it before a second Escape closes the panel. Below it, filter chips narrow the list by type (recipes or buildings), alternates, favorites only, mod, tier, progression tier, and by which fields the search covers. Each active filter, the picked category included, shows as a chip that removes it, and Reset all clears them all while keeping what you typed.
Star any entry to make it a favorite: a recipe, a building such as a miner, or a special node. It moves to the top of its list at once, in every category and in the plain list, and the Favorites category, always the first one under All, collects them all. Favorites only shows your favorites of every kind and nothing else. A picked category that the filters leave empty stays picked with 0, so the empty list says why. Favorites are kept per device.
Click a part in the details to list the recipes that make or use it, and
Back to return to your search. Type in: or out: to search only inputs or
outputs: a prefix covers the words after it, so in:coal out:steel ingot finds
what turns coal into Steel Ingots.
Select a node to highlight its connected wires. Right-click it for editing, copying, selecting its chain, merging identical buildings, disconnecting, or deleting. Double-click a node to edit it in the Inspector. On narrow screens, select it and choose Edit to open the panel. Double-click a container to enter it.
Merge identical buildings in the right-click menu folds duplicates into one node. It helps after you add a second output next to an existing chain and end up with two nodes making the same ingredient: merged, they become one node that feeds both products, and the solver sizes it to the total. Right-click inside a selection of several nodes to merge every group of identical buildings in that selection, or right-click a single node to merge every building in its container that is identical to it. The entry only shows when there is something to merge.
Buildings are identical when they run the same recipe or mine the same resource with the same settings: machine, clock, Somersloops, purity, boosters, fuel, built state, and whether the building count is fixed. The first of them in the model stays where it is, keeps its title, and takes over every connection of the others. Connections that would then join the same two ports twice become one, and a connection between two merged buildings disappears. Connections that move lose their custom route, and the kept building’s own connections stay first on a shared port. A port that was open on one building and wired on another ends up wired, so what the open one took from outside now comes through that connection.
Limits add up exactly. Building count limits, extractor counts, and port limits are summed. A group stays apart when only some of its buildings have a building count limit or a limit on the same port, when those port limits bind differently (exact, at most, or at least), when a connection leaving it has a set share (the old percentages described a different split), or when shares of one outside port would end up on the same connection. Locked buildings are left as they are, and so are buildings connected to a locked one or wired into a port that a locked building’s connection uses, because a lock keeps its connections in order. A notice tells you how many nodes were merged and how many groups stayed apart. Undo splits them again in one step.
The bottom-left controls show the live zoom percentage. Use Zoom out and Zoom in to change it, or Fit canvas to view to frame your selection. With nothing selected, it fits the current container. These controls also work in read-only models.
A canvas with more than 120 cards is drawn lighter so panning and zooming stay smooth. The dashes on the connections of a selection stand still, built connections keep their green line without the glow, and cards leave out the overclock lightning and the Somersloop stripes; their colours still show each state. Below 35% zoom its cards show only their outline and connection labels are hidden, because both are too small to read. Zoom in to read them again, or turn on Larger text when zoomed out in Settings, Appearance to keep each card’s name and main figure on screen.
A model opens on the view it was saved with, and each container keeps its own. To see every card whenever a model opens instead, choose Fit everything under When a model opens in Settings, Interaction. The saved view stays in the model until you pan or zoom yourself.
The bottom-right Minimap shows nodes, connections, selected nodes, and the visible area. Click it to move the view without changing zoom. Focus it and use arrow keys to pan, or Enter / Space to fit the current container. Collapse it with the header button. It starts collapsed when the canvas is narrow or short, and shrinks to stay within the available space when opened.
Use Arrange or L to lay out the selected nodes along their connections. Arrow keys nudge the selection; hold Shift for larger steps.
Undo takes back up to 100 changes; Undo steps in Settings, Interaction allows 10 to 1000. The steps last while the model is open and are not saved with it.
The panel beside the canvas
Section titled “The panel beside the canvas”The side panel has three tabs:
- Summary: totals for the model, container, or selection.
- Inspector: settings for the selected node or connection.
- Messages: calculation errors, warnings, and other diagnostics.
Selecting a node opens the Inspector on desktop. On narrow screens, use Edit to open it. Selecting a diagnostic reveals its node, including nodes inside another container. Repeated diagnostics are grouped; copy the list when reporting a problem.
The panel can be resized or hidden. On narrow screens, open it with the summary button and close it to return to the full canvas. The button shows when errors or warnings are waiting.
Game-data and model-status notices sit above the canvas, not above the side panel. A long-running solve also offers a stop action there. See Panels for each tab’s controls.
Connections
Section titled “Connections”- Drag from an output port to a compatible input port.
- Drop on empty space instead to open a filtered palette.
- Pick a compatible node to place it already connected.
Arrowheads point into the receiving port. Select a node or connection to see its highlighted wires flow from source to target. If your system requests reduced motion, flow and loading spinners run more slowly. Decorative node effects stay disabled.
Ports can carry several connections. In Full mode, their order controls priority where allocation is required. Reorder connections in the Inspector.
A port limit can be an exact rate, an upper bound or a lower bound. A ceiling does not force production to reach it. A lower bound is the least the port must move: above it the port runs like Auto, up to whatever else limits the plan, and with nothing else to size the plan it settles at the minimum. When the connected group cannot reach it, Messages names the port and the rate it can reach. Limits also work on supported non-recipe buildings, not just ordinary recipe nodes. Click a port’s rate to type a limit right in the row. Press Enter to apply it or Escape to keep the old value. The icon next to the rate (equals, less-than-or-equal or greater-than-or-equal) switches between an exact rate and the bound you chose in the Inspector. In Manual mode every limit is solved as an exact rate.
Every number field in the modeler also takes a short calculation. Type 2*10
for 20 per minute, or use +, -, / and parentheses, such as (60+30)/2.
The field works the result out exactly when you press Enter or leave it, and
keeps only the result. Multiplication and division come before addition and
subtraction. An unfinished calculation such as 2* keeps the old value.
An output the recipe only rolls for, such as the off-colour slugs of a hatchery, wears its chance per cycle as a small badge next to its name. The port tooltip repeats it, and notes when a pity mechanic raises the long-run share above the single roll. The rate shown is the expected yield.
A solved connection shows an automatic estimate of the belt or pipe needed for its rate. The badge shows when more than one line is needed. It is not a picker for assigning a particular transport to the connection.
Copied selections use the system clipboard, so they can move between models, tabs, or windows. Browser clipboard permissions may be required.
For an input, choose Plan automatically to create its supply chain. The wizard starts with that part and its required per-minute amount. The chain’s final producer appears at the point where you dropped the connection, with suppliers arranged to its left. Existing nodes, pan and zoom stay where you left them. On the review step, Add another target keeps the current part and rate and starts the next one. All targets are planned together: chains that need the same intermediates or resources share one production step and one input. Modular Miners the planner places merge both outputs onto one belt.
How should it plan? on the review step picks the recipes with the Planner’s strategies: Shortest Path (the default), Shortest Chain, Fewest Resources, Low Power, Balanced and Byproduct Reuse. Pick up to two; with two, the plan weighs both. Byproduct Reuse is an add-on: byproducts are reused first and the other choice covers the rest, and on its own it plans Balanced. The choice is remembered for the next plan.
Keyboard focus highlights the wire itself. A focused label has its own small outline, and broken connections keep their error colour.
Grab a connection’s rate label and drag it wherever it is easiest to read. This
moves only the label, not the wire or its waypoints, and does not recalculate
the model. Labels move freely even when the connection grid is on. Their
positions are saved with the model, including desktop saves and .ksfmd files.
Double click a label to put it back in the middle of its connection. You can undo or redo a move or reset. With the label focused, arrow keys move it by ten canvas pixels, Shift plus an arrow moves it by one, and Home resets it. Escape cancels a drag. Read-only models keep their labels in the saved positions.
Click a label to select its connection. Right-click a connection or its label, or press the menu key or Shift+F10 on a focused label, for the connection menu: select the source, the target or the whole chain, serve the connection earlier or later at its split or merge, reset the label, or delete the connection. The menu takes the focus and the arrow keys move through it. Read-only models offer the selection entries only.
Waypoints
Section titled “Waypoints”- Double-click a connection to add a waypoint.
- Double-right-click a waypoint to remove it.
- Double-right-click a connection to delete it.
- Move both endpoints together to move their waypoints with them.
Drag a connection’s rate label to adjust its routing. Double-click the label to reset its manual placement. Label changes can be undone and saved with the model.
Choose curves, direct lines, or orthogonal routing in Settings.
The decorative background grid is not a snap target. Two working grids control placement:
- Building grid: snaps nodes.
- Connection grid: snaps waypoints.
Each has independent X and Y spacing. Apply a grid to the whole model, current existing factory, or selection. Nudging follows the building grid when it is enabled. Review the scope before applying a grid to existing work.
Node status and quick controls
Section titled “Node status and quick controls”The Fixed building count field in a node header sets exactly that many buildings running at the configured clock. It is not an item rate or a count of installed buildings allowed to idle. Clear it to return to Auto. Recipe nodes take it, and so do extractors and Modular Miners, where it says how many of them stand on the node.
A fixed count is a plan, so what it produces is meant to be used: the chain behind it grows to consume it, including source counts drawn as a single building, rather than leaving that production unused. Connected upstream limits still apply. If a fixed count needs more than its supply can provide, the whole connected group shows N/A until the conflict is resolved. The error reports the requested buildings and the reachable building-equivalents, not items per minute. Increase the upstream supply, allow an extractor’s count to grow, or lower the fixed count or clock. Changing the downstream node to Auto does not override a fixed upstream ceiling.
Use the checkmark at the bottom of a node to mark it Built. This tracks what you have built in the game and is kept with the saved model. Built cards have a uniform green outline and glow, with no extra stripe along the top. When both ends of a connection are built, the line turns green and its rate label gains a matching highlight. Clearing Built on either end restores the normal connection styling. Diagnostic icons remain visible on built connections.
The lock beside it protects a node from moving, editing, connecting, disconnecting, or deleting. You can still select a locked node and inspect its details. Unlock it before making changes; its lock state is also saved.
Machine nodes keep their quick controls in a compact bottom section, visible even when recipe details are collapsed:
- Power: a pill showing the calculated power use or production.
- Buildings and clock: a pill showing the calculated machine count and
per-building clock percentage, such as 1 × 20%. Use its copy button to copy
just the percentage number for the game’s clock input. The copied value has
up to six decimal places, without a
%sign, even if the card displays a rounded value or fraction. Copying also works on locked nodes and read-only models. - Clock setting: edit the percentage beside the Power Shard icon to change the configured clock. This can differ from the calculated per-building clock.
- Somersloops: click the pill to add one, up to the machine’s slot limit. Clicking again at the limit resets it to zero.
Available controls depend on the building. The Inspector keeps the detailed settings.
Existing factories
Section titled “Existing factories”An Existing Factory groups part of a factory, for example one smelting site of a larger plan or a section you have already built. Double-click to enter; press Escape or use the Leave button in the top left corner of the canvas to get back out. Each container keeps its own pan and zoom. Select All affects the container you are currently viewing.
Set a count to scale a repeated section instead of drawing the same sub-factory repeatedly. Give it a title and pick an icon from the item and building images in the Inspector so it reads as the site it stands for.
An existing factory does not need anything inside it. Leave it empty and set a rate on each of its ports, on the canvas or in the Inspector: that is what one such factory takes in and hands out per minute, so there is no ceiling or exact to choose. The count in the card’s footer chip is where the plan starts: the calculation grows it when it needs more factories, the way it grows an unfixed miner, and the chip shows the calculated count after an arrow when they differ. With nothing pulling on the factory it stays at the count you drew. The factory’s own limit caps the count. Once machines stand inside, the same port rates are limits on the boundary again and the count is yours.
What machines inside deliver to a boundary port with nothing wired outside leaves the model, like any unused output; a rate pinned on that port sizes them. Wired on both sides, the pin reads once across the boundary.
An existing factory can also state its power: enter the MW it consumes or generates and the summary counts that alongside the machines in the model. Machines placed inside the container are still counted on their own, so the stated MW is for what is not drawn.
Older models that used an outpost or a blueprint open as existing factories with everything in place; only the inputs move ahead of the outputs.
Wiring a container
Section titled “Wiring a container”A container’s ports are the same ports on both sides. Inputs always come before outputs; a new input slots in ahead of the outputs. Inside the container each port stands as a node of its own, the way a model’s inputs and outputs do, so you place it where its belt arrives or leaves instead of reading every port off one card:
- On the overview, connect a supply to the container’s input (for example Iron Ore into a smelting factory). Add ports in the inspector as needed.
- Enter the container. That input is a From outside node: drag from it into your first machines, the ore is available there.
- Connect your last machines to a To outside node, the container’s output.
- Back on the overview, the container’s output feeds the rest of the plan.
Inside, the palette offers Factory input and Factory output in place of Model Input and Model Output, which belong to the top level only: placing one adds the port to the container and stands it where you dropped it, and dragging a connection onto empty canvas offers the matching one already wired. Drag a port node where it reads best; delete it, or use the bin in its header, to remove the port from the container. Adding a port in the Inspector puts a new node inside in the same way. Inputs start in a column on the left and outputs on the right until you move them.
Nothing needs to be typed twice: an input takes its part from the belt that reaches it outside and hands the same part on inside. The count multiplies what its machines make, so its ports show the total that crosses; a counted factory’s port shows that total first and the rate one factory states beneath it.
The header trail shows where you are. Use it to return to a parent container. A closed container shows a summary without requiring you to enter it.
Reusing a model in another model
Section titled “Reusing a model in another model”A model can stand in another model as one node, a Sub-model, and scale like a recipe. First say what the model offers:
- In the model you want to reuse, place Model Input nodes for the parts it takes from outside and Model Output nodes for the parts it delivers. Each carries one part; connect them to the machines that use or make it. Several nodes of the same part pool into one entry.
- Solve the model as usual. The Sub-models tab in the panel shows the interface that results: each part with the rate one copy of the model moves, and the power one copy draws and makes.
Then, in the plan that uses it, choose Sub-model (Exp) in the palette: the panel turns into the model catalog (the arrow in its header goes back to the node list) and you pick the model there: your own models, the ones saved on this device, or a public one. As a grid each tile shows the parts as icons, green for what the model delivers and red for what it needs; the detailed list names them with the tags and folder. Hover a card for the long card with size, buildings and revision. Search by name, tag, folder or product, filter by where a model lives, and hide the ones without an interface with Placeable only. Type a name and press Enter to place the first match. The model is solved on its own once and placed as a node whose ports carry those rates. Ask for 60 plates from a model that makes 30 and the calculation counts two copies; the inputs scale with them, and so does the power. Whole copies are the default; the Inspector offers the fraction, a copy limit as a ceiling or an exact count. A sub-model cannot be overclocked or slooped. It can be locked and marked as built like any other node.
Open model in the node’s header, in its context menu or in the Inspector shows the model it stands for: a new browser tab, or on the desktop the same window with a way back to the plan in the header. The desktop saves your plan first; if that save fails, you stay on the plan and Messages says why. Refresh reads the model again. When a plan opens, every placed model is compared with the model it stands for and brought up to date if that model changed; Messages lists what was refreshed and what could not be read. Ports of parts that stay keep their connections.
A model cannot be placed inside itself, directly or through another model.
Saving part of a plan as a blueprint
Section titled “Saving part of a plan as a blueprint”A blueprint is a selection kept under a name so you can place it again in any plan. Select the nodes, then choose Save as blueprint in the canvas toolbar or in a node’s context menu, and give it a name, an icon and a colour. The name and icon are suggested from the selection’s end product: the part a Model Output declares, or otherwise the part left open on an output port, with the rate the last calculation put on it, such as “Iron Plate 60/min”. Type over it if you want another name. The selected nodes and the connections between them are saved as they stand; a container brings what is inside it. Built and locked marks are not part of a blueprint, because they belong to the plan the selection came from. Blueprints always stay on this device, without a limit, and are mirrored to your account while you are signed in; see Blueprints in your account.
Blueprints in the toolbar, or the Blueprint entry in the palette, turns the palette panel into the blueprint catalog; the arrow in its header goes back to the node list, and the panel can be dragged around like the palette. Like the palette it has a grid and a detailed list: a grid tile shows the parts as icons, green for what the blueprint delivers and red for what it needs, and the list names them. The choice is remembered and shared with the sub-model picker. Each card shows how many nodes it holds; hover it for the long card with connections, buildings and when it was saved. A blueprint saved with other game data says so and can still be placed. Every card offers two ways of placing it:
- Production line puts the nodes back as they were copied, editable like any other node, at the point where you opened the palette, and completes their interface: at the top level a Model Input for every part the selection wants and a Model Output for every part it delivers, wired to every port of that part. Inside an existing factory the same open ports become factory ports instead, and a Model Input or Model Output among the placed nodes becomes a factory port standing where the node stood.
- Existing factory folds them into one existing factory that wears the blueprint’s name and icon. Every port the selection left open becomes a port of the factory, one per part and direction, already wired to the machines that need it. Enter the factory to see the nodes inside; the factory is counted and limited like any other existing factory.
Either way it is one step for undo. Search by name or part; Enter places the first match as a production line. The pencil renames a blueprint or changes its icon and colour, the bin removes it from this device and from your account.
Aligning a port
Section titled “Aligning a port”Choose Align to connection in the Inspector to move the node vertically until its port lines up with the connected port. Horizontal placement stays unchanged. If the port has several connections, the first one is used.
Finding a node
Section titled “Finding a node”Find a node in the toolbar, or Ctrl + F, opens a catalog of every node in the whole model, containers included. Each card shows the node’s name, kind and building, the parts on its ports, the container it stands in and how many connections it has; hover a card for the long description with its clock, limit, count and built or locked state. Search by name, building or part, narrow by kind or by container, then choose a card or press Enter for the highlighted one: the canvas enters its container and travels to it.
