Skip to content
k-mods.com

Production Modeler

Draw your factory, calculate its flows, and test it with your own game data.

Build a factory graph. Connect recipes and buildings. Calculate material flow, machine counts, and power without giving up control of the layout.

The browser and desktop app share the same model format and calculation core. Desktop also provides local calculation, file-based storage, and bundled Satisfactory+ and Vanilla game data. This guide covers the 1.2.0 workflow; changes are listed in the changelog.

The desktop download page shows the available builds and a feature tour. Local desktop planning needs no account. If downloads cannot load, choose Check again. Older versions below the downloads lists every earlier build and release that is still stored, newest first, with a download for each platform. Each site keeps a fixed amount of storage for them; once it is full, the oldest version is deleted automatically.

  • Empty model: choose every recipe and connection yourself.
  • Automatic plan: choose a target part and rate, then review a proposed chain.

A recipe node can represent several machines. Its constraints and connections determine how many are needed. Automatic planning creates the same editable nodes; it does not lock you into the proposed layout.

Choose an automatic starting point in the creation wizard, or select Plan automatically in the canvas palette.

The optional first step accepts a Satisfactory .sav file. Its unlocked recipe paths are matched exactly against the loaded catalog, and the resulting recipe and production-machine filters stay with the model. They constrain the wizard, later automatic plans, catalog-backed palette entries and machine choices. The palette shows when this filter is active and lets you remove it. A production machine counts as unlocked when the save holds a build recipe of the milestone or research that unlocks it. The filter keeps what that analysis found, so upload the save again after an update to refresh it.

Only the matched catalog IDs are saved. The save binary is processed in memory and is not stored in the model or browser draft. In the web app it goes to the public savegame analyzer; the desktop app parses it locally and can do so offline.

  1. Pick the output part and rate.
  2. Review recipe choices and alternate recipes.
  3. Choose whether to attach resource sources.
  4. Apply the plan and check Messages for unresolved inputs or loops.

The target becomes a limit on the root output. The solver sizes the upstream chain. One Undo removes the entire addition.

Planning again in a model that already makes a part feeds the new chain from those machines instead of building a second chain beside them. They grow to cover the extra demand. Plan 30 Iron Rods, then 15 Iron Plates, and one Iron Ingot producer serves both. Locked machines, machines with a machine count limit, extractors with a fixed count and outputs that carry a limit stay as they are, and the target you ask for always gets a node of its own. Only machines in the open container are used, and a byproduct is only taken by a plan with Byproduct Reuse. Messages tells you how many existing nodes the plan used. Switch off Use existing production on the Rules & review step to keep a separate chain.

Planning uses the loaded catalog locally. It prefers extraction for mined resources and avoids packaging loops as production steps. A wiki item or recipe can prefill the target.

Part, machine and recipe names follow the language you picked for the site. The modeler asks the service for the catalog in that language and swaps it out when you switch, so nothing has to be reloaded by hand. The desktop app and an imported game-data pack follow the same language, as long as the pack carries its translations. Text the game data was never translated into stays English, and so does a pack exported before translations existed.

  1. Select a game-data pack in the Datapacks tab of the Modeler home page. Activate stays on that page. Ready to plan opens model creation with the selected pack.

  2. Confirm the data, name the model, and review its settings. Choose an empty or automatic starting point and finish the review step.

  3. Double-click empty canvas to open the palette. Right-click works too. There is no separate + Add toolbar button.

  4. Search for a recipe or building and place it. Drag from an output port to a compatible input to connect two nodes.

  5. Select a node to open the Inspector on desktop. On narrow screens, select the node and choose Edit. Set a fixed rate for a production target, or a capacity ceiling for an upper limit.

  6. Check Summary and Messages. Use Calculate for an immediate solve. Calculate refreshes every connected group, including unchanged groups with a previous error. Automatic calculation reuses unchanged results.

  7. Choose Save. The model then appears under Your Models on the home page, at the top level of the library or in the folder you gave it. Export a .ksfmd file for a portable backup.

Recipes without a known production rate, such as one-off Space Elevator phase recipes, are kept for existing model references but are absent from the palette and automatic planning. The modeler does not assign them a made-up cycle time.

The palette is a small panel you can drag out of the way, and it leaves the canvas visible and usable underneath. It opens with the search field ready, so you can type straight away. Results are a grid of tiles; the arrow keys move through them in both directions and Enter places the highlighted one.

Palette search covers names, inputs, and outputs. Filters narrow results by mod, machine tier, progression tier, and alternate recipes. Drop a dragged connection on empty space to get compatible choices and connect the new node automatically.

The header’s Switch model button, or Ctrl + O, opens a catalog of the models you had open recently, every model of yours on this device or in the cloud, and the public ones, each card saying what the model delivers and needs and where it lives; hover a card for the long description. Search by name, folder, tag or product, filter by where a model lives or by folder, sort by change or name, and press Enter for the first match. The top row starts a New model, opens the overview or the public library. An unsaved plan still asks before you leave it.

The header’s Game data control switches installed packs without losing the graph, unsaved edits, viewport, or undo/redo history. Reload selected data rereads an edited pack. See Game data before testing a different mod combination.

  • Left ports: inputs. Right ports: outputs.
  • Solid rates: items per minute. Fluids and gases: cubic metres per minute.
  • Header chevron: inline controls. Inspector: the same node’s detailed settings.
  • Limit badge: an explicit constraint, not necessarily the calculated flow.
  • Unknown value: unresolved, not zero.

Decimal display rounds exact values directly, including very large integers. Changing the display precision never changes the calculation. If an exact result is too long for the supported number format, the affected connected group shows a calculation error. Independent groups still calculate normally.

Recipe nodes can show rates or machine counts. Values remain exact internally; rounding only changes their display. Configure precision in Number formats.

Unconnected inputs need a supply. Select a diagnostic in Messages to reveal the affected node, even inside another container.

Clock scales recipe speed and reads in percent, as in the game. 100% is rated speed; 200% doubles input and output for the same machine count. The Inspector names the building’s range, such as 1%–250%, and offers presets from 50% to 250%. Power follows the building’s own rules.

Somersloops boost output without scaling material input in the same way. Slot count, amplification, and power costs depend on the building.

Both controls respect the selected game’s limits. Tune them on an expanded node or in the Inspector. Multi-selection can apply one change to eligible machines as a single undo step. The Summary includes supported shard and slot totals.

  • Manual: solve entered equalities.
  • Full: add limits, maximize flows and honor connection priority.

New models start in Full. A model that already uses None (calculated values left blank) or Basic (Full without connection priority) keeps its mode and still offers it in Settings; new models no longer pick them. Change modes in Settings. Relevant edits schedule a solve; Calculate starts one immediately. Long-running solves can be stopped without deleting the model.

A fixed rate requires an exact flow. A capacity ceiling only caps it. In Basic and Full, entering a fixed recipe count such as 2 plans its output at the configured clock and sizes the Auto recipes downstream. Unfixed upstream sources grow to supply it. If an upstream limit leaves a shortage, the downstream plan stays visible and Messages reports the missing input. Connections show what the upstream chain can supply; the fixed recipe’s input shows what the plan needs. The planned output requires that missing supply before it can run in the game. Explicit port rates, downstream limits and recycling-loop balances still apply. An unlimited alternate feed does not reset the downstream plan to one building: automatic defaults remain large enough to carry your fixed production target.

When exact values ask for less than a pinned supply makes, the group is still calculated. The consumers take what they need, Auto recipes between them are sized to that, and the rest shows as surplus on the output that makes it, like a belt that backs up in the game. Example: Brass Ingot fixed at 150 per minute and Fan Blades fixed at 15 per minute. A supply too small for an exact rate is still reported as a conflict, and Manual mode keeps every value strict. Missing recipes and unsupported behavior are reported in Messages. Return flows in recycling loops are used before external supply, without growing a loop to replace supply it does not need.

When one output feeds several consumers, exact values are served first. That includes a rate or count fixed several nodes further down a chain. What is left is shared evenly between the Auto chains, and every later split shares its part the same way. Example: 108 Brass Plates feed Fan Blades fixed at 15 per minute, Brass Pipes and a Brass Drive. The Fan Blades take 24, and the pipes and the drive get 42 each. A consumer with a ceiling takes at most its ceiling. Two machines that serve equally well run alike, and a source you drew with a count keeps it while what it feeds can take its output. To let one connection take what it can before the others, change the connection order in Full mode. Between dead ends, whose output goes nowhere, the order has no effect and they share evenly.

When several connections feed one input and a demand fixes how much it takes, the connections deliver in turn, like a merger in the game. No input stands at 0 while another supplies everything, even one that draws more from outside. Example: two Packaged Water machines, one on canisters made from Plastic and one on canisters brought in from outside, deliver 60 each into an exact 120 Sink. A source split towards such a merge runs down to its turn rather than push the rest into its other connections. What a loop returns still comes first, and a connection order you changed in Full mode keeps that order. A recipe with no input connected that feeds a merge runs one building, like an extractor drawn at 1.

When the same material can reach a consumer along more than one route, Basic and Full use what the model already makes before making more. A co-product that would otherwise back up is used first, and of the plans that waste the least, the one that draws the least from outside wins. Example: 900 Carbon Powder per minute from Distilled Natural Gas, whose Natural Gas feeds Condensed Graphene while Petroleum Coke takes both its Heavy Oil Residue and the Residue that Diluted Bitumen makes from its Asphalt. That needs 3.6 distillers and 216 m³ of Purified Crude Oil, where Condensed Graphene alone needed 6 distillers. A connection order you changed in Full mode decides between routes that waste equally little. A recipe does not run only to turn material that backs up into other material that backs up.

To decide yourself how an output splits, give a connection a share in the Inspector, for example 25 percent. Connections without a share stay on Auto and split what the set shares leave. The shares of one output may add up to at most 100 percent, and to exactly 100 percent when every connection has one.

App version, game-data version, and saved model revision are different values. Include the details from Help and about when reporting unexpected results.

Splitters and mergers route one part. Pipeline junctions route fluids or gases. Existing factories group a sub-factory, scale it by a count and can state the MW they consume or generate. Sub-models place another model as one node that scales like a recipe. Storage and buffers represent throughput, not inventory filling over time.

Search the catalog for extractors, generators, assemblies, and mod-specific buildings. Their controls depend on the selected pack. The special-buildings reference covers Modular Miners, Slug Hatcheries, Refined Power, FaxIT, and their limits.