Logic parts become real parts, packed into as few 4×4×4 frame quarters as possible and joined face to face where they can be. Every other part (sliders, toggles, sensors, thrusters…) becomes a labelled cable stub on the blueprint's edge. Where it fits, the stubs come out side by side as one row of parallel cables; otherwise inputs leave through one face and outputs through the opposite face, each group in a row. Logic parts and internal cables are black; input cables and labels green, outputs red. Several tries run in parallel and the smallest layout wins.
Flat stands every logic part on a floor of frame quarters that holds them, none on top of another (top up where it can, otherwise on a side). Wires use the fewest levels they can, up to four, like a multi-layer circuit board with the parts on its bottom layer: they run straight where they can and change level over their ends. Each label lies on the floor beside its cable end.
Copy this into a .json file. It uses the aupbuilder schema, so it imports here and on aupbuilder.arkadhub.com.
This follows the game's own rule (in-game manual, "Component Delay"): the game runs at 60 ticks per second and every component takes one tick to pass a signal on — a lever through 10 Data Routers reaches a Datameter after 11 ticks. Each tick, every block computes from what all blocks output on the previous tick, so any feedback loop is legal, just as in the game.
Blocks marked STATE also remember values across ticks. Use an Initializer on outputs that drive thrusters or decouplers — circuits output junk for a few ticks while their paths fill up.
Drag an output dot onto an input dot to wire them. An output already in use will refuse a second wire — clone it with a Data Router first, same as the real part.
Click a node or wire to select it, then press Delete/Backspace to remove it. Shift- or Ctrl-click adds blocks to the selection, Shift-drag on empty canvas box-selects, and Ctrl+A selects everything; drag any selected block to move the group.
Ctrl+C / Ctrl+X / Ctrl+V copy, cut and paste the selected blocks. Wires between blocks in the group are kept; wires leading out of it are not. Pastes land where you last clicked on the canvas.
Drag empty canvas to pan; Ctrl + scroll (or pinch) zooms at the cursor, and the zoom bar has Fit and 1:1. When the circuit is bigger than the view, a minimap appears above the zoom bar: click or drag it to move the view.
Clear empties the canvas, notes included, and resets the zoom; for a few seconds afterwards the button reads Undo clear.
The right-hand panel holds the design's notes. They travel in the circuit JSON as notes: Export writes them and Import reads them back. Collapse the panel with » when you need the room.
Blueprint turns the circuit into an in-game .bp blueprint.
Red square ports are power ports; drag between two of them to lay a power cable. Each tick, cables, Power Routers, closed Fuse Boxes and unblocked Power Blockers join ports into one circuit. A circuit is powered while its generators cover demand or its batteries still hold charge; unpowered sensors read 0 and actuators stop. The game files leave every P/s figure and battery capacity out, so set power_ps, gen_ps and capacity from each part's in-game tooltip.
Every part here exists in the game (checked against its Localization.csv). There is no NOR gate in the game — build it as OR → NOT. Condition: unwired True reads 1, unwired False reads 0. Differentiator: current value minus the value interval ticks earlier. Hover a part or port to read the game's own text for it. Sensors and controls take their reading as a setting.
The BPS indicator follows the game's own formula: log2(distance ÷ stopping distance) ÷ 6, eased in over a few ticks. The ETA System also follows the game's code, which the shipped game doesn't use: there is no ETA System part to place. It outputs seconds, not the 0..1 its port text claims, and its mode knob picks which. Mode 0 is the time left before you must brake if you accelerate at full until then, 1 is the braking itself, and 2 is the whole trip. On a collision course (it cannot stop in time) modes 1 and 2 give the time to impact and its readout turns red. Not modelled: fuel, heat, physics, and Frame Quarter With Ports chains (one tick for the whole chain).