No entries match.
DECIDER low_iron
WHEN iron-plate < 100 OR copper-plate < 100
OUT signal-check = 1
OUT signal-each = input FROM red
ELSE concrete = input
Named blocks; the body is the decider page syntax. AND / OR join conditions, inline or on new lines. OUT signal = input FROM red/green copies the matching input off one wire. ELSE outputs fire while the condition is false - needs 2.1.
ARITH double
signal-check * 2 -> signal-A
operand OP operand -> output. OP is + - * / % ^ << >> AND OR XOR.
CONST limits
iron-plate (epic) = 100
SECTION fuel
coal = 200
OFF
One signal = count per line; a (quality) tier is optional. SECTION [name] starts a new logistic section. OFF disables the whole combinator. Counts may be hex (0x80000000-0xFFFFFFFF wrap to the negative int32 they denote), a k/m/g magnitude, or a 5:00 clock - see Numbers below.
SELECT pick
MAX index signal-I
MAX / MIN [index n|signal], COUNT -> s, 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
WHEN signal-check > 0
COLOR red
One condition; optional COLOR red / green / blue / yellow / cyan / magenta / orange / white.
PANEL status
SHOW "OK" ICON iron-plate WHEN signal-check = 0
Message rows; the first row whose condition matches is shown. Drop the text for an icon-only row: SHOW ICON signal WHEN condition.
SPEAKER alarm
WHEN signal-check > 0
ALERT "Iron low!" ICON iron-plate
Map alert with an optional icon.
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
RADAR beacon
UNIVERSE signal-7
Bare: every radar shares the surface channel. UNIVERSE <signal> joins the named cross-surface channel instead; same-channel radars connect anywhere (2.1).
STOP station
READ train
LIMIT signal-L
READ train | READ stopped -> s | READ count -> s. LIMIT signal sets the train limit.
REACTOR core
READ temperature -> signal-T
READ fuel and/or READ temperature -> signal.
MACHINE mall
assembler-2
SET recipe
READ finished -> signal-F
Crafting machine; one type line (assembler-1/2/3, chem-plant, refinery, centrifuge, biochamber, crusher, foundry, em-plant, cryo-plant, stone/steel/electric-furnace, recycler). SET recipe crafts the highest item signal on the wire (not furnace types; they follow their input). WHEN enables; READ contents / ingredients / finished -> s / working -> s.
CHEST mall
requester
SET requests FROM BUFFERS TRASH
READ contents
A logistics chest; one type line: requester / buffer / provider / passive / storage. SET requests takes the wire's item signals as requests (requester/buffer chests only), with optional FROM BUFFERS and TRASH; READ contents reports what it holds. WHEN enables it.
RAIL gate
chain
WHEN signal-check > 0
GREEN signal-open
A rail signal; an optional CHAIN line makes it a chain signal instead. RED/GREEN/YELLOW <signal> picks which signal carries each state; WHEN condition closes (turns red) the signal.
LATCH hold
SET signal-set = 1
RESET signal-clear > 0
OUT signal-held = 1
One-decider memory; SET turns it on when its condition holds, RESET turns it off. The held signal loops back through its own value, so it banks while the SET condition stays. Out value cannot be 0.
INSERTER grab
WHEN iron-plate < 100
WHEN condition enables inserters, pumps and power switches (PUMP / SWITCH, same shape).
BELT gate
WHEN signal-check > 0
READ contents pulse
WHEN condition and/or READ contents [pulse|hold|entire].
LUT fill ON signal-S
0..130 -> signal-red
LUT pick LOCK
iron-plate < 100 -> restock
iron-plate >= 100 -> wait
LUT space UPCYCLE
iron-plate -> iron-gear-wheel
A lookup table; lowers to a candidate CONST plus a DECIDER. Actions: ON key rows are lo..hi -> sig (half-open) or 5 -> sig (exact), and = value emits that value instead of 1; no ON rows are conditions (AND/OR allowed); LATCH rows are product low..high -> recipe hysteresis with an auto feedback wire. Append LOCK to range/criteria to make an exclusive priority decoder: only the earliest row whose condition holds fires (reads earlier rows over a green feedback wire). UPCYCLE spawns all five quality tiers per ingredient -> product row for Space Age recycling. Inputs read green by default; wiring them on red flips the candidate table to green.
MATH cap
MIN iron-plate, 8 -> signal-L
MIN/MAX of two operands (signals or numbers, one row per block); lowers to a DECIDER picking the winner via ELSE plus a fold ARITH renaming it onto the output signal (2 combinators, 2 ticks); clamping against a constant back onto the same signal (MIN iron-plate, 8 -> iron-plate) skips the fold and is a single decider. Wire cap.in from your source and read the result at cap.out. No wire/quality filters and no wildcards in the row.
WIRE red: low_iron.out -> double.in
WIRE green: limits -> double.in
WIRE green: limits => double.in
Chains allowed; single-connector entities connect by bare name. Wires are undirected. A => hop is a one-way diode: it inserts an arith pass-through, so signals flow left to right only (one tick delay) and the two sides stay separate networks.
CONST stock
iron-plate (epic) = 100
legendary = 5
DECIDER q
WHEN iron-plate (red legendary) < 100
OUT signal-each = input
A (tier) after a signal sets its quality: normal / uncommon / rare / epic / legendary. Pair it with a wire color in one paren - (red legendary). A bare tier word is the quality signal itself. SELECT QUALITY FILTER / QUALITY TRANSFER read and move quality.
ASSERT tick 4
counter.out signal-A = 5
ASSERT settled
gate signal-check = 1
Sim-checked expectations that render pass/fail under the editor. The header takes tick n (or a bare tick count / 5:00 clock) to check after n steps, or settled to check once every output repeats two ticks in a row. One block [.in|.out] signal cmp number check per line; tick 0 checks before any step.
PARAM # paste-time prompts; numbers bind by value
100 = "Gate threshold"
PARAM asks for a number when the blueprint is pasted; the matching = "" line is the prompt. Numbers bind by value-match, so any block using 100 waits on that one answer.
REPEAT i = 1..3
CONST pow$i
signal-$i = $(1 << i)
END
REPEAT unrolls the lines inside once per value: i = 1..3 a range, i = a, b, c a list. $i substitutes the value, $(expr) evaluates + - * / % << >> on it. DEFINE name args... END saves reusable lines; USE name values... stamps them with $args filled in.
POLE relay
AT 14, 0
FACING east
AT x, y pins an entity at an exact tile; unpinned blocks lay out around the pinned ones. FACING north/east/south/west rotates it - east/west turn a combinator sideways.
# a comment on its own line
DECIDER hub # header comment becomes the description
# starts a comment. recipe:iron-plate forces the signal type (item: / fluid: / virtual: / recipe: / entity: / asteroid-chunk: / space-location: / quality:). "nothing" is the empty condition signal (reads as 0), e.g. WHEN nothing < 5.
iron-plate = 9k
signal-clock < 5:00
threshold = 1.5m
Numbers read anywhere a count or constant does. A k/m/g suffix means thousand / million / billion, so 9k = 9000 and 1.5m = 1500000. A M:SS or H:MM:SS clock converts to ticks at 60 per second, so 5:00 = 18000 and 1:30:00 = 324000. Plain decimals and hex work too. Use these in CONST counts, DECIDER conditions, ARITH operands, RANDOM every and ASSERT.