D:\SteamLibrary\steamapps\common\Scrap Mechanic\ or C:\Program Files (x86)\Steam\steamapps\common\Scrap Mechanic\)%APPDATA%\Axolot Games\Scrap Mechanic\User\User_*\Blueprints\\blueprint.json Load references/parts-database.json for 170+ parts with UUIDs, sizes. Load references/block-types.md for zaxis/bounds rules.
{
"bodies": [{"childs": [...]}],
"joints": [...], // optional
"version": 4
}
Each child: {"color":"HEX","controller":{...},"pos":{"x":x,"y":y,"z":z},"shapeId":"uuid","xaxis":1,"zaxis":-2}
| Type | zaxis | bounds | stretch |
|---|---|---|---|
| ------ | ------- | -------- | --------- |
Platform connector (295451dd-) | -2 | optional | no |
| Metal/Wood/Concrete blocks | 3 | required {x,y,z} | yes |
Never mix zaxis values between types.
controllers: [{"id":X}] = this component's output goes TO component Xcontrollers: null = endpoint (light, no forwarding)| mode | gate | behavior |
|---|---|---|
| ------ | ------ | ---------- |
| 0 | AND | all 1→1 |
| 1 | OR | any 1→1 |
| 2 | XOR | exactly one 1→1 |
| 3 | NAND | all 1→0. Single input = NOT gate |
| 4 | NOR | any 1→0 |
Board at z=2, xaxis=1, zaxis=-2
Bottom wheels: pos(board_x-1, -1, 4), zaxis=-2
Top wheels: pos(board_x+2, 3, 4), zaxis=2
Bearing joint: posA=posB=(board_x, -2, 2) bottom / (board_x, 3, 2) top
Counter bits → NAND inverters(single input=~X) →
Value-detecting AND gates(one per value) → Pixel-collecting OR gates → Lights
Each light has exactly ONE OR gate as input. OR gate collects from all value-ANDs where pixel should be ON.
Use scripts/blueprint_builder.py for programmatic blueprint generation. Key API:
Blueprint(name, version=4) — create blueprint.block/shape, x, y, z) — add static block (platform connector).metal(x, y, z, w, h, d) — add metal block with bounds.cube/hollow_cube/sphere/cylinder(...) — geometry.part/shape, x, y, z, mode, controllers) — interactive component.gate/type, x, y, z, inputs) — logic gate shortcut.add_wheel(side, body, board_x, board_y) — vehicle wheel with bearing.save_to(target_dir) — save to existing blueprint directory共 2 个版本