Circuit Builder

Describe combinators and wires as text, paste a complete circuit into the game

Start typing a signal, item or fluid name and pick from the dropdown with Enter or Tab. Esc closes it.
Syntax
DECIDER low_iron         named blocks; body is the decider page syntax
  WHEN iron-plate < 100  indentation is optional
  OUT signal-check = 1

ARITH double             operand OP operand -> output
  signal-check * 2 -> signal-A   + - * / % ^ << >> AND OR XOR

CONST limits             one signal = count per line; OFF disables it
  iron-plate (epic) = 100
  SECTION fuel           SECTION [name] starts a new logistic section

SELECT pick              MAX/MIN [index n|signal], COUNT -> s,
  MAX index signal-I     RANDOM every n, STACK SIZE, ROCKET CAPACITY,
                         QUALITY FILTER >= rare, QUALITY TRANSFER epic -> s,
                         TIME game -> s [day -> s] [length -> s]  (2.1)

LAMP warn                one condition; optional COLOR red/green/blue/
  WHEN signal-check > 0  yellow/cyan/magenta/orange/white
  COLOR red

PANEL status             message rows, first matching condition shows
  SHOW "OK" ICON iron-plate WHEN signal-check = 0

SPEAKER alarm            map alert with optional icon
  WHEN signal-check > 0
  ALERT "Iron low!" ICON iron-plate

POLE relay               wire relay; one type line: small/medium/big/substation
ACCUM charge             OUT signal — charge % output (default signal-A)
ROBOPORT logi            READ logistics (default) or READ robots
RADAR net                no body; every radar shares one channel
STOP station             READ train | READ stopped -> s | READ count -> s
  LIMIT signal-L         LIMIT signal sets the train limit
REACTOR core             READ fuel and/or READ temperature -> signal
  READ temperature -> signal-T
INSERTER grab            WHEN condition enables inserters, pumps and
  WHEN iron-plate < 100  power switches (PUMP / SWITCH, same shape)
BELT gate                WHEN condition and/or READ contents [pulse|hold|entire]

WIRE red: low_iron.out -> double.in    chains allowed; single-connector
WIRE green: limits -> double.in        entities connect by bare name
# comment
# a comment on a block header becomes the entity description
# recipe:iron-plate forces the signal type (item:/fluid:/virtual:/recipe:)
Blueprint string
  • Import with the blueprint import button (or Ctrl+V after copying in game).
  • Paste an existing combinator blueprint above to edit it as text.
  • Combinators paste in one row, in the order you declare them.
  • Wires are undirected; .in and .out pick the combinator connector.
  • A wire spanning more than 9 tiles in the row gets a warning — relay it in game.
  • ELSE outputs and SELECT TIME need Factorio 2.1; everything else works on 2.0 too.
What this circuit does
Wiring diagram
Simulation
CONST blocks feed the inputs; outputs appear one tick after their inputs change. RANDOM uses a fixed seed. Stack size, rocket capacity and quality ops are not simulated.