AI Craftapalooza Parts

From The Perfect Tower II
Revision as of 08:28, 27 January 2021 by Troylaurin (talk | contribs) (→‎Parts scripts)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Parts scripts

Chips (1)

Chip recipe.png

Name Lines Code
craft 3:1 20
CWNyYWZ0IDM6MQAAAAAAAAAAFAAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuMRBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My4xDmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIFAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/E2dlbmVy
aWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEDGNyYWZ0IDM6MTppbhBsb2NhbC5kb3VibGUuc2V0CGNvbnN0
YW50BAhib2FyZF9oaRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVj
b3VudAhjb25zdGFudAQBKgNpMmQOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQIY29uc3RhbnQC
AigNAAhjb25zdGFudAQBLw5hcml0aG1ldGljLmludAhjb25zdGFudAIKAAAACGNvbnN0YW50BANwb3cN
bG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQDbW9kCGNvbnN0YW50AgoAAAAQbG9j
YWwuZG91YmxlLnNldAhjb25zdGFudAQKY2lyY3VpdF9oaRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5k
b3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKgNpMmQOYXJpdGhtZXRpYy5pbnQOYXJp
dGhtZXRpYy5pbnQIY29uc3RhbnQCpGwDAAhjb25zdGFudAQBLw5hcml0aG1ldGljLmludAhjb25zdGFu
dAIKAAAACGNvbnN0YW50BANwb3cNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQD
bW9kCGNvbnN0YW50AgoAAAAOZ2xvYmFsLmludC5zZXQIY29uc3RhbnQEEGNyYWZ0X3RpZXI6aW5nb3QO
YXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25z
dGFudAICAAAAEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBFjcmFmdF9jb3VudDppbmdvdBFhcml0
aG1ldGljLmRvdWJsZQpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91Ymxl
EGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQECGJvYXJkX2hpCGNvbnN0YW50BAEtEWFyaXRobWV0aWMu
ZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQE
ASoRYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFcGxhdGUOYXJp
dGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFu
dAICAAAACGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEDXBsYXRlLmNpcmN1
aXQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghj
b25zdGFudAICAAAACGNvbnN0YW50BAErCmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAALZG91Ymxl
LmNlaWwRYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhj
b25zdGFudAQKY2lyY3VpdF9oaQhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91
YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqEWFyaXRobWV0aWMuZG91
YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWNhYmxlDmFyaXRobWV0aWMuaW50DWxvY2Fs
LmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQB
KxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAdjaXJjdWl0DmFyaXRobWV0aWMuaW50DWxvY2Fs
LmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQB
Lwhjb25zdGFudAMAAAAAAAAAQBNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BAtjcmFmdCBpbmdv
dA5nZW5lcmljLmdvdG9pZghjb25zdGFudAJjAAAADmNvbXBhcmlzb24uaW50Dmdsb2JhbC5pbnQuZ2V0
CGNvbnN0YW50BAxjcmFmdF9zdGF0dXMIY29uc3RhbnQEAT4IY29uc3RhbnQCxwAAABBsb2NhbC5kb3Vi
bGUuc2V0CGNvbnN0YW50BAhib2FyZF9sbxFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0
CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKgNpMmQOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5p
bnQIY29uc3RhbnQCmjANAAhjb25zdGFudAQBLw5hcml0aG1ldGljLmludAhjb25zdGFudAIKAAAACGNv
bnN0YW50BANwb3cNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQDbW9kCGNvbnN0
YW50AgoAAAAQbG9jYWwuZG91YmxlLnNldAhjb25zdGFudAQKY2lyY3VpdF9sbxFhcml0aG1ldGljLmRv
dWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25zdGFudAMA
AAAAAAAAQA5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQY3JhZnRfdGllcjppbmdvdA5hcml0aG1ldGlj
LmludA5hcml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEq
CGNvbnN0YW50AgIAAAAIY29uc3RhbnQEAS0IY29uc3RhbnQCAQAAABFnbG9iYWwuZG91YmxlLnNldAhj
b25zdGFudAQRY3JhZnRfY291bnQ6aW5nb3QRYXJpdGhtZXRpYy5kb3VibGUKZG91YmxlLm1heAhjb25z
dGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAhi
b2FyZF9sbwhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25z
dGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqEWFyaXRobWV0aWMuZG91YmxlE2ZhY3Rvcnku
aXRlbXMuY291bnQIY29uc3RhbnQEBXBsYXRlDmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMuaW50DWxv
Y2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFu
dAQBLQhjb25zdGFudAIBAAAACGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQE
DXBsYXRlLmNpcmN1aXQOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhj
b25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAEtCGNvbnN0YW50
AgEAAAAIY29uc3RhbnQEASsKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAAAtkb3VibGUuY2VpbBFh
cml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50
BApjaXJjdWl0X2xvCGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0
CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoRYXJpdGhtZXRpYy5kb3VibGUTZmFj
dG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFY2FibGUOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5p
bnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNv
bnN0YW50BAEtCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25z
dGFudAQHY2lyY3VpdA5hcml0aG1ldGljLmludA5hcml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNv
bnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAIY29uc3RhbnQEAS0IY29uc3RhbnQC
AQAAAAhjb25zdGFudAQBLwhjb25zdGFudAMAAAAAAAAAQBNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0
YW50BAtjcmFmdCBpbmdvdA5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQY3JhZnRfc3RhdHVzOjMuMQhj
b25zdGFudAIBAAAAD2dlbmVyaWMuZXhlY3V0ZQhjb25zdGFudAQPY3JhZnQgMzoxOmJvYXJkD2dlbmVy
aWMuZXhlY3V0ZQhjb25zdGFudAQRY3JhZnQgMzoxOmNpcmN1aXQRZ2VuZXJpYy53YWl0dW50aWwPY29t
cGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA9jb21wYXJpc29uLmJvb2wPY29tcGFyaXNvbi5ib29s
DmNvbXBhcmlzb24uaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBBjcmFmdF9zdGF0dXM6My4xCGNv
bnN0YW50BAI+PQhjb25zdGFudAIHAAAACGNvbnN0YW50BAEmEWNvbXBhcmlzb24uZG91YmxlE2ZhY3Rv
cnkuaXRlbXMuY291bnQIY29uc3RhbnQEDXBsYXRlLmNpcmN1aXQOYXJpdGhtZXRpYy5pbnQOYXJpdGht
ZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAIC
AAAACGNvbnN0YW50BAEtCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEAj49EGxvY2FsLmRvdWJsZS5nZXQI
Y29uc3RhbnQECGJvYXJkX2xvCGNvbnN0YW50BAEmEWNvbXBhcmlzb24uZG91YmxlE2ZhY3RvcnkuaXRl
bXMuY291bnQIY29uc3RhbnQEDXBsYXRlLmNpcmN1aXQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50Lmdl
dAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAI+PRBsb2Nh
bC5kb3VibGUuZ2V0CGNvbnN0YW50BAhib2FyZF9oaQhjb25zdGFudAQBJhFjb21wYXJpc29uLmRvdWJs
ZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAdjaXJjdWl0DmFyaXRobWV0aWMuaW50DmFyaXRo
bWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQC
AgAAAAhjb25zdGFudAQBLQhjb25zdGFudAIBAAAACGNvbnN0YW50BAI+PRBsb2NhbC5kb3VibGUuZ2V0
CGNvbnN0YW50BApjaXJjdWl0X2xvCGNvbnN0YW50BAEmEWNvbXBhcmlzb24uZG91YmxlE2ZhY3Rvcnku
aXRlbXMuY291bnQIY29uc3RhbnQEB2NpcmN1aXQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhj
b25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAI+PRBsb2NhbC5k
b3VibGUuZ2V0CGNvbnN0YW50BApjaXJjdWl0X2hpDWZhY3RvcnkuY3JhZnQIY29uc3RhbnQEBGNoaXAN
bG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3Vu
dA==
; Chips
:global double craft_inventory
:local int tier
:local double count
:local double board_lo
:local double board_hi
:local double circuit_lo
:local double circuit_hi

tier = global.int.get("craft_tier:3.1")
count = global.double.get("craft_count:3.1")
gotoif(99, tier < 1 | tier > 5 | count < 1.0)

; Verify ingot resources
; Also craft lower tier chips for input
executesync("craft 3:1:in")

; Ensure we have enough ingots (hi)
board_hi = count * i2d((862210 / (10 ^ tier)) % 10)
circuit_hi = count * i2d((224420 / (10 ^ tier)) % 10)
global.int.set("craft_tier:ingot", tier * 2)
global.double.set("craft_count:ingot", max(0.0, board_hi - craft_inventory * (count("plate", tier * 2) + count("plate.circuit", tier * 2))) + max(0.0, ceil((circuit_hi - craft_inventory * (count("cable", tier * 2) + count("circuit", tier * 2)))/2.0)))
executesync("craft ingot")
gotoif(99, global.int.get("craft_status") > 199)

; Ensure we have enough ingots (lo)
board_lo = count * i2d((864410 / (10 ^ tier)) % 10)
circuit_lo = count * 2.0
global.int.set("craft_tier:ingot", tier * 2 - 1)
global.double.set("craft_count:ingot", max(0.0, board_lo - craft_inventory * (count("plate", tier * 2 - 1) + count("plate.circuit", tier * 2 - 1))) + max(0.0, ceil((circuit_lo - craft_inventory * (count("cable", tier * 2 - 1) + count("circuit", tier * 2 - 1)))/2.0)))
executesync("craft ingot")

global.int.set("craft_status:3.1", 1)
execute("craft 3:1:board")
execute("craft 3:1:circuit")

waituntil(global.int.get("craft_status:3.1") >= 7 & count("plate.circuit", tier * 2 - 1) >= board_lo & count("plate.circuit", tier * 2) >= board_hi & count("circuit", tier * 2 - 1) >= circuit_lo & count("circuit", tier * 2) >= circuit_hi)
craft("chip", tier, count)


craft 3:1:in 18
DGNyYWZ0IDM6MTppbgAAAAAAAAAAEgAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2Jh
bC5pbnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuMRBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50
BAVjb3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My4xDmdsb2JhbC5p
bnQuc2V0CGNvbnN0YW50BBBjcmFmdF90aWVyOmluZ290DmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5n
ZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAABFnbG9iYWwuZG91YmxlLnNl
dAhjb25zdGFudAQRY3JhZnRfY291bnQ6aW5nb3QRYXJpdGhtZXRpYy5kb3VibGUKZG91YmxlLm1heAhj
b25zdGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5k
b3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKgNpMmQOYXJpdGhtZXRpYy5pbnQOYXJp
dGhtZXRpYy5pbnQIY29uc3RhbnQCAigNAAhjb25zdGFudAQBLw5hcml0aG1ldGljLmludAhjb25zdGFu
dAIKAAAACGNvbnN0YW50BANwb3cNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQD
bW9kCGNvbnN0YW50AgoAAAAIY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJs
ZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhFhcml0aG1ldGljLmRvdWJs
ZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVwbGF0ZQ5hcml0aG1ldGljLmludA1sb2NhbC5p
bnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAIY29uc3RhbnQEASsT
ZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQNcGxhdGUuY2lyY3VpdA5hcml0aG1ldGljLmludA1s
b2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAIY29uc3Rh
bnQEASsKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAAAtkb3VibGUuY2VpbBFhcml0aG1ldGljLmRv
dWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNv
bnN0YW50BAVjb3VudAhjb25zdGFudAQBKgNpMmQOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQI
Y29uc3RhbnQCpGwDAAhjb25zdGFudAQBLw5hcml0aG1ldGljLmludAhjb25zdGFudAIKAAAACGNvbnN0
YW50BANwb3cNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQDbW9kCGNvbnN0YW50
AgoAAAAIY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3Rh
bnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0
ZW1zLmNvdW50CGNvbnN0YW50BAVjYWJsZQ5hcml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0
YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVt
cy5jb3VudAhjb25zdGFudAQHY2lyY3VpdA5hcml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0
YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAIY29uc3RhbnQEAS8IY29uc3RhbnQDAAAA
AAAAAEAOZ2xvYmFsLmludC5zZXQIY29uc3RhbnQEEmNyYWZ0X3ZlcmlmeTppbmdvdAhjb25zdGFudAIB
AAAAE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEC2NyYWZ0IGluZ290DmdlbmVyaWMuZ290b2lm
CGNvbnN0YW50AmMAAAAOY29tcGFyaXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEDGNyYWZ0
X3N0YXR1cwhjb25zdGFudAQBPghjb25zdGFudALHAAAADmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBBj
cmFmdF90aWVyOmluZ290DmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQI
Y29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQBLQhjb25zdGFu
dAIBAAAAEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBFjcmFmdF9jb3VudDppbmdvdBFhcml0aG1l
dGljLmRvdWJsZQpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEWFy
aXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEq
A2kyZA5hcml0aG1ldGljLmludA5hcml0aG1ldGljLmludAhjb25zdGFudAKaMA0ACGNvbnN0YW50BAEv
DmFyaXRobWV0aWMuaW50CGNvbnN0YW50AgoAAAAIY29uc3RhbnQEA3Bvdw1sb2NhbC5pbnQuZ2V0CGNv
bnN0YW50BAR0aWVyCGNvbnN0YW50BANtb2QIY29uc3RhbnQCCgAAAAhjb25zdGFudAQBLRFhcml0aG1l
dGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0
YW50BAEqEWFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBXBsYXRl
DmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXII
Y29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQBLQhjb25zdGFudAIBAAAACGNvbnN0YW50
BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEDXBsYXRlLmNpcmN1aXQOYXJpdGhtZXRpYy5p
bnQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghj
b25zdGFudAICAAAACGNvbnN0YW50BAEtCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEASsKZG91YmxlLm1h
eAhjb25zdGFudAMAAAAAAAAAAAtkb3VibGUuY2VpbBFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGlj
LmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhj
b25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFn
bG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqEWFyaXRo
bWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWNhYmxlDmFyaXRobWV0aWMu
aW50DmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoI
Y29uc3RhbnQCAgAAAAhjb25zdGFudAQBLQhjb25zdGFudAIBAAAACGNvbnN0YW50BAErE2ZhY3Rvcnku
aXRlbXMuY291bnQIY29uc3RhbnQEB2NpcmN1aXQOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQN
bG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0
YW50BAEtCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEAS8IY29uc3RhbnQDAAAAAAAAAEAOZ2xvYmFsLmlu
dC5zZXQIY29uc3RhbnQEEmNyYWZ0X3ZlcmlmeTppbmdvdAhjb25zdGFudAIBAAAAE2dlbmVyaWMuZXhl
Y3V0ZXN5bmMIY29uc3RhbnQEC2NyYWZ0IGluZ290DmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAAO
Y29tcGFyaXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEDGNyYWZ0X3N0YXR1cwhjb25zdGFu
dAQBPghjb25zdGFudALHAAAADmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuMQ5h
cml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEtCGNvbnN0
YW50AgEAAAARZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQED2NyYWZ0X2NvdW50OjMuMRFhcml0aG1l
dGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUu
Z2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQB
KhFhcml0aG1ldGljLmRvdWJsZQxkb3VibGUuZmxvb3IRYXJpdGhtZXRpYy5kb3VibGUIY29uc3RhbnQD
AAAAABBFJEEIY29uc3RhbnQEAS8RYXJpdGhtZXRpYy5kb3VibGUIY29uc3RhbnQDAAAAAAAAJEAIY29u
c3RhbnQEA3BvdwNpMmQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQDbW9kCGNv
bnN0YW50AwAAAAAAACRACGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUu
Z2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3Vu
dAhjb25zdGFudAQEY2hpcA5hcml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVy
CGNvbnN0YW50BAEtCGNvbnN0YW50AgEAAAATZ2VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFudAQJY3Jh
ZnQgMzoxDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAAOY29tcGFyaXNvbi5pbnQOZ2xvYmFsLmlu
dC5nZXQIY29uc3RhbnQEDGNyYWZ0X3N0YXR1cwhjb25zdGFudAQBPghjb25zdGFudALHAAAADmdsb2Jh
bC5pbnQuc2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuMQ1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0
aWVyEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BA9jcmFmdF9jb3VudDozLjEQbG9jYWwuZG91Ymxl
LmdldAhjb25zdGFudAQFY291bnQ=
:global double craft_inventory
:local int tier
:local double count

tier = global.int.get("craft_tier:3.1")
count = global.double.get("craft_count:3.1")

; Ingots (hi)
;   board_hi = global.double.get("craft_count:3.1") * i2d((862210 / (10 ^ mytier)) % 10)
;   circuit_hi = global.double.get("craft_count:3.1") * i2d((224420 / (10 ^ mytier)) % 10)
global.int.set("craft_tier:ingot", tier * 2)
global.double.set("craft_count:ingot", max(0.0, count * i2d((862210 / (10 ^ tier)) % 10) - craft_inventory * (count("plate", tier * 2) + count("plate.circuit", tier * 2))) + max(0.0, ceil((count * i2d((224420 / (10 ^ tier)) % 10) - craft_inventory * (count("cable", tier * 2) + count("circuit", tier * 2)))/2.0)))
global.int.set("craft_verify:ingot", 1)
executesync("craft ingot")
gotoif(99, global.int.get("craft_status") > 199)

; Ingots (lo)
;   board_lo = global.double.get("craft_count:3.1") * i2d((864410 / (10 ^ mytier)) % 10)
;   circuit_lo = global.double.get("craft_count:3.1") * 2.0
global.int.set("craft_tier:ingot", tier * 2 - 1)
global.double.set("craft_count:ingot", max(0.0, count * i2d((864410 / (10 ^ tier)) % 10) - craft_inventory * (count("plate", tier * 2 - 1) + count("plate.circuit", tier * 2 - 1))) + max(0.0, ceil((count*2.0 - craft_inventory * (count("cable", tier * 2 - 1) + count("circuit", tier * 2 - 1)))/2.0)))
global.int.set("craft_verify:ingot", 1)
executesync("craft ingot")
gotoif(99, global.int.get("craft_status") > 199)

; Input chips
global.int.set("craft_tier:3.1", tier - 1)
global.double.set("craft_count:3.1", count * 2.0 * (floor(664200.0 / (10.0 ^ i2d(tier))) % 10.0) - craft_inventory * count("chip", tier - 1))
executesync("craft 3:1")
gotoif(99, global.int.get("craft_status") > 199)

; Restore state for this tier
global.int.set("craft_tier:3.1", tier)
global.double.set("craft_count:3.1", count)


craft 3:1:board 16
D2NyYWZ0IDM6MTpib2FyZAAAAAAAAAAAEAAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmds
b2JhbC5pbnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuMRBsb2NhbC5kb3VibGUuc2V0CGNvbnN0
YW50BAhib2FyZF9sbxFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQP
Y3JhZnRfY291bnQ6My4xCGNvbnN0YW50BAEqA2kyZA5hcml0aG1ldGljLmludA5hcml0aG1ldGljLmlu
dAhjb25zdGFudAKaMA0ACGNvbnN0YW50BAEvDmFyaXRobWV0aWMuaW50CGNvbnN0YW50AgoAAAAIY29u
c3RhbnQEA3Bvdw1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BANtb2QIY29uc3Rh
bnQCCgAAABBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAhib2FyZF9oaRFhcml0aG1ldGljLmRvdWJs
ZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My4xCGNvbnN0YW50BAEqA2ky
ZA5hcml0aG1ldGljLmludA5hcml0aG1ldGljLmludAhjb25zdGFudAICKA0ACGNvbnN0YW50BAEvDmFy
aXRobWV0aWMuaW50CGNvbnN0YW50AgoAAAAIY29uc3RhbnQEA3Bvdw1sb2NhbC5pbnQuZ2V0CGNvbnN0
YW50BAR0aWVyCGNvbnN0YW50BANtb2QIY29uc3RhbnQCCgAAAA5nZW5lcmljLmdvdG9pZghjb25zdGFu
dAIHAAAAEWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQECGJvYXJkX2xv
CGNvbnN0YW50BAI8PRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQP
Y3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqEWFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMu
Y291bnQIY29uc3RhbnQEDXBsYXRlLmNpcmN1aXQOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQN
bG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0
YW50BAEtCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFu
dAQFcGxhdGUOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFu
dAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAEtCGNvbnN0YW50AgEAAAAR
Z2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQHcHJlc3Nlcg9m
YWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBWluZ290DmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMuaW50
DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25z
dGFudAQBLQhjb25zdGFudAIBAAAAEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29u
c3RhbnQECGJvYXJkX2xvCGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUu
Z2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoRYXJpdGhtZXRpYy5kb3VibGUT
ZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQNcGxhdGUuY2lyY3VpdA5hcml0aG1ldGljLmludA5h
cml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0
YW50AgIAAAAIY29uc3RhbnQEAS0IY29uc3RhbnQCAQAAAAhjb25zdGFudAQBKxNmYWN0b3J5Lml0ZW1z
LmNvdW50CGNvbnN0YW50BAVwbGF0ZQ5hcml0aG1ldGljLmludA5hcml0aG1ldGljLmludA1sb2NhbC5p
bnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAIY29uc3RhbnQEAS0I
Y29uc3RhbnQCAQAAAAhjb25zdGFudAQHcHJlc3Nlcg5nZW5lcmljLmdvdG9pZghjb25zdGFudAIKAAAA
EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQECGJvYXJkX2hpCGNvbnN0
YW50BAI8PRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRf
aW52ZW50b3J5CGNvbnN0YW50BAEqEWFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQI
Y29uc3RhbnQEDXBsYXRlLmNpcmN1aXQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFu
dAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMu
Y291bnQIY29uc3RhbnQEBXBsYXRlDmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQE
BHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAABFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5Lm1h
Y2hpbmUuYWN0aXZlCGNvbnN0YW50BAdwcmVzc2VyD2ZhY3RvcnkucHJvZHVjZQhjb25zdGFudAQFaW5n
b3QOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghj
b25zdGFudAICAAAAEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQECGJv
YXJkX2hpCGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0
YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoRYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5p
dGVtcy5jb3VudAhjb25zdGFudAQNcGxhdGUuY2lyY3VpdA5hcml0aG1ldGljLmludA1sb2NhbC5pbnQu
Z2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAIY29uc3RhbnQEASsTZmFj
dG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFcGxhdGUOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50Lmdl
dAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAdwcmVzc2Vy
DmdlbmVyaWMuZ290b2lmCGNvbnN0YW50Ag0AAAARY29tcGFyaXNvbi5kb3VibGUQbG9jYWwuZG91Ymxl
LmdldAhjb25zdGFudAQIYm9hcmRfbG8IY29uc3RhbnQEAjw9EWFyaXRobWV0aWMuZG91YmxlEWdsb2Jh
bC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5p
dGVtcy5jb3VudAhjb25zdGFudAQNcGxhdGUuY2lyY3VpdA5hcml0aG1ldGljLmludA5hcml0aG1ldGlj
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAI
Y29uc3RhbnQEAS0IY29uc3RhbnQCAQAAABFnZW5lcmljLndhaXR3aGlsZQ9jb21wYXJpc29uLmJvb2wW
ZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQIcmVmaW5lcnkIY29uc3RhbnQEAXwRY29tcGFy
aXNvbi5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFcGxhdGUOYXJpdGhtZXRpYy5p
bnQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghj
b25zdGFudAICAAAACGNvbnN0YW50BAEtCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEATwRYXJpdGhtZXRp
Yy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQIYm9hcmRfbG8IY29uc3RhbnQEAS0RYXJp
dGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhj
b25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BA1wbGF0ZS5jaXJjdWl0DmFyaXRo
bWV0aWMuaW50DmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3Rh
bnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQBLQhjb25zdGFudAIBAAAAD2ZhY3RvcnkucHJvZHVj
ZQhjb25zdGFudAQFcGxhdGUOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50Lmdl
dAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAEtCGNvbnN0
YW50AgEAAAARYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQIYm9hcmRf
bG8IY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQE
D2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BA1w
bGF0ZS5jaXJjdWl0DmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29u
c3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQBLQhjb25zdGFudAIB
AAAACGNvbnN0YW50BAhyZWZpbmVyeQ5nZW5lcmljLmdvdG9pZghjb25zdGFudAIQAAAAEWNvbXBhcmlz
b24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQECGJvYXJkX2hpCGNvbnN0YW50BAI8PRFh
cml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5
CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEDXBsYXRlLmNpcmN1aXQOYXJp
dGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFu
dAICAAAAEWdlbmVyaWMud2FpdHdoaWxlD2NvbXBhcmlzb24uYm9vbBZmYWN0b3J5Lm1hY2hpbmUuYWN0
aXZlCGNvbnN0YW50BAhyZWZpbmVyeQhjb25zdGFudAQBfBFjb21wYXJpc29uLmRvdWJsZRNmYWN0b3J5
Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVwbGF0ZQ5hcml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNv
bnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAAIY29uc3RhbnQEATwRYXJpdGhtZXRp
Yy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQIYm9hcmRfaGkIY29uc3RhbnQEAS0RYXJp
dGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhj
b25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BA1wbGF0ZS5jaXJjdWl0DmFyaXRo
bWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQC
AgAAAA9mYWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBXBsYXRlDmFyaXRobWV0aWMuaW50DWxvY2FsLmlu
dC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAABFhcml0aG1ldGljLmRv
dWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAhib2FyZF9oaQhjb25zdGFudAQBLRFhcml0aG1l
dGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0
YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEDXBsYXRlLmNpcmN1aXQOYXJpdGhtZXRp
Yy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAA
CGNvbnN0YW50BAhyZWZpbmVyeQ5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQY3JhZnRfc3RhdHVzOjMu
MQ5hcml0aG1ldGljLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRfc3RhdHVzOjMuMQhj
b25zdGFudAQBKwhjb25zdGFudAICAAAA
:global double craft_inventory
:local int tier
:local double board_lo
:local double board_hi

tier = global.int.get("craft_tier:3.1")
board_lo = global.double.get("craft_count:3.1") * i2d((864410 / (10 ^ tier)) % 10)
board_hi = global.double.get("craft_count:3.1") * i2d((862210 / (10 ^ tier)) % 10)

; Craft plates
lo1: gotoif(hi1, board_lo <= craft_inventory * (count("plate.circuit", tier * 2 - 1) + count("plate", tier * 2 - 1)))
   waitwhile(active("presser"))
   produce("ingot", tier * 2 - 1, board_lo - craft_inventory * (count("plate.circuit", tier * 2 - 1) + count("plate", tier * 2 - 1)), "presser")

hi1: gotoif(lo2, board_hi <= craft_inventory * (count("plate.circuit", tier * 2) + count("plate", tier * 2)))
   waitwhile(active("presser"))
   produce("ingot", tier * 2, board_hi - craft_inventory * (count("plate.circuit", tier * 2) + count("plate", tier * 2)), "presser")

; Craft circuit boards
lo2: gotoif(hi2, board_lo <= craft_inventory * (count("plate.circuit", tier * 2 - 1)))
   waitwhile(active("refinery") | count("plate", tier * 2 - 1) < board_lo - craft_inventory * (count("plate.circuit", tier * 2 - 1)))
   produce("plate", tier * 2 - 1, board_lo - craft_inventory * (count("plate.circuit", tier * 2 - 1)), "refinery")

hi2: gotoif(end, board_hi <= craft_inventory * (count("plate.circuit", tier * 2)))
   waitwhile(active("refinery") | count("plate", tier * 2) < board_hi - craft_inventory * (count("plate.circuit", tier * 2)))
   produce("plate", tier * 2, board_hi - craft_inventory * (count("plate.circuit", tier * 2)), "refinery")

end: global.int.set("craft_status:3.1", global.int.get("craft_status:3.1") + 2)


craft 3:1:circuit 16
EWNyYWZ0IDM6MTpjaXJjdWl0AAAAAAAAAAAQAAAADWxvY2FsLmludC5zZXQIY29uc3RhbnQEBHRpZXIO
Z2xvYmFsLmludC5nZXQIY29uc3RhbnQEDmNyYWZ0X3RpZXI6My4xEGxvY2FsLmRvdWJsZS5zZXQIY29u
c3RhbnQECmNpcmN1aXRfbG8RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3Rh
bnQED2NyYWZ0X2NvdW50OjMuMQhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQBBsb2NhbC5kb3Vi
bGUuc2V0CGNvbnN0YW50BApjaXJjdWl0X2hpEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUu
Z2V0CGNvbnN0YW50BA9jcmFmdF9jb3VudDozLjEIY29uc3RhbnQEASoDaTJkDmFyaXRobWV0aWMuaW50
DmFyaXRobWV0aWMuaW50CGNvbnN0YW50AqRsAwAIY29uc3RhbnQEAS8OYXJpdGhtZXRpYy5pbnQIY29u
c3RhbnQCCgAAAAhjb25zdGFudAQDcG93DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3Rh
bnQEA21vZAhjb25zdGFudAIKAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AgcAAAARY29tcGFyaXNv
bi5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQKY2lyY3VpdF9sbwhjb25zdGFudAQCPD0R
YXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9y
eQhjb25zdGFudAQBKhFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50
BAdjaXJjdWl0DmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3Rh
bnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQBLQhjb25zdGFudAIBAAAA
CGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWNhYmxlDmFyaXRobWV0aWMu
aW50DmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoI
Y29uc3RhbnQCAgAAAAhjb25zdGFudAQBLQhjb25zdGFudAIBAAAAEWdlbmVyaWMud2FpdHdoaWxlFmZh
Y3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQECHJlZmluZXJ5D2ZhY3RvcnkucHJvZHVjZQhjb25z
dGFudAQFaW5nb3QOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25z
dGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAEtCGNvbnN0YW50AgEA
AAALZG91YmxlLmNlaWwRYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91
YmxlLmdldAhjb25zdGFudAQKY2lyY3VpdF9sbwhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFn
bG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqEWFyaXRo
bWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEB2NpcmN1aXQOYXJpdGhtZXRp
Yy5pbnQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQB
Kghjb25zdGFudAICAAAACGNvbnN0YW50BAEtCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEASsTZmFjdG9y
eS5pdGVtcy5jb3VudAhjb25zdGFudAQFY2FibGUOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQN
bG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0
YW50BAEtCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEAS8IY29uc3RhbnQDAAAAAAAAAEAIY29uc3RhbnQE
CHJlZmluZXJ5DmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AgoAAAARY29tcGFyaXNvbi5kb3VibGUQbG9j
YWwuZG91YmxlLmdldAhjb25zdGFudAQKY2lyY3VpdF9oaQhjb25zdGFudAQCPD0RYXJpdGhtZXRpYy5k
b3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQB
KhFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAdjaXJjdWl0DmFy
aXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3Rh
bnQCAgAAAAhjb25zdGFudAQBKxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVjYWJsZQ5hcml0
aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50
AgIAAAARZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQIcmVm
aW5lcnkPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BAVpbmdvdA5hcml0aG1ldGljLmludA1sb2NhbC5p
bnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIAAAALZG91YmxlLmNlaWwR
YXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFu
dAQKY2lyY3VpdF9oaQhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdl
dAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqEWFyaXRobWV0aWMuZG91YmxlE2Zh
Y3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEB2NpcmN1aXQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50
LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAErE2Zh
Y3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWNhYmxlDmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5n
ZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQBLwhjb25z
dGFudAMAAAAAAAAAQAhjb25zdGFudAQIcmVmaW5lcnkOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCDQAA
ABFjb21wYXJpc29uLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BApjaXJjdWl0X2xvCGNv
bnN0YW50BAI8PRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3Jh
ZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEB2NpcmN1
aXQOYXJpdGhtZXRpYy5pbnQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGll
cghjb25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAEtCGNvbnN0YW50AgEAAAARZ2VuZXJp
Yy53YWl0d2hpbGUPY29tcGFyaXNvbi5ib29sEWNvbXBhcmlzb24uZG91YmxlE2ZhY3RvcnkuaXRlbXMu
Y291bnQIY29uc3RhbnQEBWNhYmxlDmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMuaW50DWxvY2FsLmlu
dC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQBLQhj
b25zdGFudAIBAAAACGNvbnN0YW50BAE8EWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQI
Y29uc3RhbnQECmNpcmN1aXRfbG8IY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRv
dWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1z
LmNvdW50CGNvbnN0YW50BAdjaXJjdWl0DmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMuaW50DWxvY2Fs
LmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhjb25zdGFudAQB
LQhjb25zdGFudAIBAAAACGNvbnN0YW50BAF8FmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQE
CWFzc2VtYmxlcg9mYWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBWNhYmxlDmFyaXRobWV0aWMuaW50DmFy
aXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3Rh
bnQCAgAAAAhjb25zdGFudAQBLQhjb25zdGFudAIBAAAAEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQECmNpcmN1aXRfbG8IY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGUR
Z2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0
b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAdjaXJjdWl0DmFyaXRobWV0aWMuaW50DmFyaXRobWV0aWMu
aW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAAAAhj
b25zdGFudAQBLQhjb25zdGFudAIBAAAACGNvbnN0YW50BAlhc3NlbWJsZXIOZ2VuZXJpYy5nb3RvaWYI
Y29uc3RhbnQCEAAAABFjb21wYXJpc29uLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BApj
aXJjdWl0X2hpCGNvbnN0YW50BAI8PRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhj
b25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29u
c3RhbnQEB2NpcmN1aXQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghj
b25zdGFudAQBKghjb25zdGFudAICAAAAEWdlbmVyaWMud2FpdHdoaWxlD2NvbXBhcmlzb24uYm9vbBFj
b21wYXJpc29uLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVjYWJsZQ5hcml0aG1l
dGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNvbnN0YW50AgIA
AAAIY29uc3RhbnQEATwRYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQK
Y2lyY3VpdF9oaQhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhj
b25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29u
c3RhbnQEB2NpcmN1aXQOYXJpdGhtZXRpYy5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghj
b25zdGFudAQBKghjb25zdGFudAICAAAACGNvbnN0YW50BAF8FmZhY3RvcnkubWFjaGluZS5hY3RpdmUI
Y29uc3RhbnQECWFzc2VtYmxlcg9mYWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBWNhYmxlDmFyaXRobWV0
aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEASoIY29uc3RhbnQCAgAA
ABFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BApjaXJjdWl0X2hpCGNv
bnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFm
dF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQHY2lyY3Vp
dA5hcml0aG1ldGljLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEqCGNv
bnN0YW50AgIAAAAIY29uc3RhbnQECWFzc2VtYmxlcg5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQY3Jh
ZnRfc3RhdHVzOjMuMQ5hcml0aG1ldGljLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRf
c3RhdHVzOjMuMQhjb25zdGFudAQBKwhjb25zdGFudAIEAAAA
:global double craft_inventory
:local int tier
:local double circuit_lo
:local double circuit_hi

tier = global.int.get("craft_tier:3.1")
circuit_lo = global.double.get("craft_count:3.1") * 2.0
circuit_hi = global.double.get("craft_count:3.1") * i2d((224420 / (10 ^ tier)) % 10)

; Craft cables
lo1: gotoif(hi1, circuit_lo <= craft_inventory * (count("circuit", tier * 2 - 1) + count("cable", tier * 2 - 1)))
	waitwhile(active("refinery"))
	produce("ingot", tier * 2 - 1, ceil((circuit_lo - craft_inventory * (count("circuit", tier * 2 - 1) + count("cable", tier * 2 - 1))) / 2.0), "refinery")

hi1: gotoif(lo2, circuit_hi <= craft_inventory * (count("circuit", tier * 2) + count("cable", tier * 2)))
	waitwhile(active("refinery"))
	produce("ingot", tier * 2, ceil((circuit_hi - craft_inventory * (count("circuit", tier * 2) + count("cable", tier * 2))) / 2.0), "refinery")

; Craft circuit wires
lo2: gotoif(hi2, circuit_lo <= craft_inventory * count("circuit", tier * 2 - 1))
   waitwhile(count("cable", tier * 2 - 1) < circuit_lo - craft_inventory * count("circuit", tier * 2 - 1) | active("assembler"))
   produce("cable", tier * 2 - 1, circuit_lo - craft_inventory * count("circuit", tier * 2 - 1), "assembler")

hi2: gotoif(end, circuit_hi <= craft_inventory * count("circuit", tier * 2))
   waitwhile(count("cable", tier * 2) < circuit_hi - craft_inventory * count("circuit", tier * 2) | active("assembler"))
   produce("cable", tier * 2, circuit_hi - craft_inventory * count("circuit", tier * 2), "assembler")

end: global.int.set("craft_status:3.1", global.int.get("craft_status:3.1") + 4)


Plates (2)

Gold plate.png

Name Lines Code
craft 3:2 9
CWNyYWZ0IDM6MgAAAAAAAAAACQAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuMhBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My4yDmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/Dmdsb2Jh
bC5pbnQuc2V0CGNvbnN0YW50BBBjcmFmdF90aWVyOmluZ290DWxvY2FsLmludC5nZXQIY29uc3RhbnQE
BHRpZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW50OmluZ290EGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50E2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEC2NyYWZ0
IGluZ290DmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAAOY29tcGFyaXNvbi5pbnQOZ2xvYmFsLmlu
dC5nZXQIY29uc3RhbnQEDGNyYWZ0X3N0YXR1cwhjb25zdGFudAQBPghjb25zdGFudALHAAAAEWdlbmVy
aWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQEB3ByZXNzZXIPZmFjdG9y
eS5wcm9kdWNlCGNvbnN0YW50BAVpbmdvdA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEGxvY2Fs
LmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAdwcmVzc2Vy
; Regular plates
:global int craft_status
:local double count
:local int tier

tier = global.int.get("craft_tier:3.2")
count = global.double.get("craft_count:3.2")
gotoif(99, tier < 1 | tier > 10 | count < 1.0)

global.int.set("craft_tier:ingot", tier)
global.double.set("craft_count:ingot", count)
executesync("craft ingot")
gotoif(99, craft_status > 199)

waitwhile(active("presser"))
produce("ingot", tier, count, "presser")


Dense plates (3)

Dense gold plate.png

Name Lines Code
craft 3:3 14
CWNyYWZ0IDM6MwAAAAAAAAAADgAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuMxBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My4zDmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/EGxvY2Fs
LmRvdWJsZS5zZXQIY29uc3RhbnQEBnBsYXRlcxFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRv
dWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25zdGFudAMA
AAAAAAAiQAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25z
dGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3Rh
bnQEC3BsYXRlLnN0YWNrDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIOZ2xvYmFsLmludC5zZXQI
Y29uc3RhbnQEEGNyYWZ0X3RpZXI6aW5nb3QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchFnbG9i
YWwuZG91YmxlLnNldAhjb25zdGFudAQRY3JhZnRfY291bnQ6aW5nb3QRYXJpdGhtZXRpYy5kb3VibGUQ
bG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQGcGxhdGVzCGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91
YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoT
ZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFcGxhdGUNbG9jYWwuaW50LmdldAhjb25zdGFudAQE
dGllchNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BAtjcmFmdCBpbmdvdA5nZW5lcmljLmdvdG9p
Zghjb25zdGFudAJjAAAADmNvbXBhcmlzb24uaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BAxjcmFm
dF9zdGF0dXMIY29uc3RhbnQEAT4IY29uc3RhbnQCxwAAAA5nZW5lcmljLmdvdG9pZghjb25zdGFudAIM
AAAAEWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBnBsYXRlcwhjb25z
dGFudAQCPD0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0
X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVwbGF0ZQ1s
b2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGlu
ZS5hY3RpdmUIY29uc3RhbnQEB3ByZXNzZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BAVpbmdvdA1s
b2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5n
ZXQIY29uc3RhbnQEBnBsYXRlcwhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91
YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMu
Y291bnQIY29uc3RhbnQEBXBsYXRlDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQE
B3ByZXNzZXIRZ2VuZXJpYy53YWl0d2hpbGUPY29tcGFyaXNvbi5ib29sEWNvbXBhcmlzb24uZG91Ymxl
E2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBXBsYXRlDWxvY2FsLmludC5nZXQIY29uc3RhbnQE
BHRpZXIIY29uc3RhbnQEATwQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQGcGxhdGVzCGNvbnN0YW50
BAF8FmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQEB3ByZXNzZXINZmFjdG9yeS5jcmFmdAhj
b25zdGFudAQLcGxhdGUuc3RhY2sNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchFhcml0aG1ldGlj
LmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBLRFhcml0aG1l
dGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0
YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEC3BsYXRlLnN0YWNrDWxvY2FsLmludC5n
ZXQIY29uc3RhbnQEBHRpZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BAtwbGF0ZS5zdGFjaw1sb2Nh
bC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNv
bnN0YW50BAdwcmVzc2Vy
; Dense plates
:global double craft_inventory
:local int tier
:local double count
:local double plates

tier = global.int.get("craft_tier:3.3")
count = global.double.get("craft_count:3.3")
gotoif(99, tier < 1 | tier > 10 | count < 1.0)

plates = count * 9.0 - craft_inventory * count("plate.stack", tier)

global.int.set("craft_tier:ingot", tier)
global.double.set("craft_count:ingot", plates - craft_inventory * count("plate", tier))
executesync("craft ingot")
gotoif(99, global.int.get("craft_status") > 199)

plates: gotoif(stacks, plates <= craft_inventory * count("plate", tier))
  waitwhile(active("presser"))
  produce("ingot", tier, plates - craft_inventory * count("plate", tier), "presser")

stacks: waitwhile(count("plate", tier) < plates | active("presser"))
  craft("plate.stack", tier, count - craft_inventory * count("plate.stack", tier))
  produce("plate.stack", tier, count, "presser")


Blocks (4)

Gold block.png

Name Lines Code
craft 3:4 10
CWNyYWZ0IDM6NAAAAAAAAAAACgAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuNBBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My40DmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/EGxvY2Fs
LmRvdWJsZS5zZXQIY29uc3RhbnQEDnBsYXRlc3BlcmJsb2NrEWFyaXRobWV0aWMuZG91YmxlCGNvbnN0
YW50AwAAAAAAABBACGNvbnN0YW50BAEqDGRvdWJsZS5yb3VuZBFhcml0aG1ldGljLmRvdWJsZRFhcml0
aG1ldGljLmRvdWJsZQhjb25zdGFudAMAADBkBQsfQghjb25zdGFudAQBLxFhcml0aG1ldGljLmRvdWJs
ZQhjb25zdGFudAMAAAAAAAAkQAhjb25zdGFudAQDcG93A2kyZA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50
BAR0aWVyCGNvbnN0YW50BANtb2QIY29uc3RhbnQDAAAAAAAAJEAOZ2xvYmFsLmludC5zZXQIY29uc3Rh
bnQEDmNyYWZ0X3RpZXI6My4zDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIRZ2xvYmFsLmRvdWJs
ZS5zZXQIY29uc3RhbnQED2NyYWZ0X2NvdW50OjMuMxFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGlj
LmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKhBsb2NhbC5k
b3VibGUuZ2V0CGNvbnN0YW50BA5wbGF0ZXNwZXJibG9jawhjb25zdGFudAQBLRFhcml0aG1ldGljLmRv
dWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEq
E2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEC3BsYXRlLmRlbnNlDWxvY2FsLmludC5nZXQIY29u
c3RhbnQEBHRpZXITZ2VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFudAQJY3JhZnQgMzozDmdlbmVyaWMu
Z290b2lmCGNvbnN0YW50AmMAAAAOY29tcGFyaXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQE
DGNyYWZ0X3N0YXR1cwhjb25zdGFudAQBPghjb25zdGFudALHAAAAEWdlbmVyaWMud2FpdHdoaWxlEWNv
bXBhcmlzb24uZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEC3BsYXRlLmRlbnNlDWxv
Y2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEATwRYXJpdGhtZXRpYy5kb3VibGUQbG9j
YWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29uc3RhbnQEASoQbG9jYWwuZG91YmxlLmdldAhj
b25zdGFudAQOcGxhdGVzcGVyYmxvY2sNZmFjdG9yeS5jcmFmdAhjb25zdGFudAQFYmxvY2sNbG9jYWwu
aW50LmdldAhjb25zdGFudAQEdGllchBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudA==
; Blocks
:global double craft_inventory
:local int tier
:local double count
:local double platesperblock
:local double stacks
:local double plates

tier = global.int.get("craft_tier:3.4")
count = global.double.get("craft_count:3.4")
gotoif(99, tier < 1 | tier > 10 | count < 1.0)

plates: platesperblock = 4.0 * round((33332222220.0 / (10.0 ^ i2d(tier))) % 10.0)
  global.int.set("craft_tier:3.3", tier)
  global.double.set("craft_count:3.3", count * platesperblock - craft_inventory * count("plate.dense", tier))
  executesync("craft 3:3")
gotoif(99, global.int.get("craft_status") > 199)

waitwhile(count("plate.dense", tier) < count * platesperblock)
craft("block", tier, count)


Cables (5)

Golden cable.png

Name Lines Code
craft 3:5 9
CWNyYWZ0IDM6NQAAAAAAAAAACQAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuNRBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My41DmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/Dmdsb2Jh
bC5pbnQuc2V0CGNvbnN0YW50BBBjcmFmdF90aWVyOmluZ290DWxvY2FsLmludC5nZXQIY29uc3RhbnQE
BHRpZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW50OmluZ290EWFyaXRobWV0
aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEvCGNvbnN0
YW50AwAAAAAAAABAE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEC2NyYWZ0IGluZ290DmdlbmVy
aWMuZ290b2lmCGNvbnN0YW50AmMAAAAOY29tcGFyaXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3Rh
bnQEDGNyYWZ0X3N0YXR1cwhjb25zdGFudAQBPghjb25zdGFudALHAAAAEWdlbmVyaWMud2FpdHdoaWxl
FmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQECHJlZmluZXJ5D2ZhY3RvcnkucHJvZHVjZQhj
b25zdGFudAQFaW5nb3QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcgtkb3VibGUuY2VpbBFhcml0
aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBLwhj
b25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQIcmVmaW5lcnk=
; Cables
:global double craft_inventory
:local int tier
:local double count

tier = global.int.get("craft_tier:3.5")
count = global.double.get("craft_count:3.5")
gotoif(99, tier < 1 | tier > 10 | count < 1.0)

global.int.set("craft_tier:ingot", tier)
global.double.set("craft_count:ingot", count / 2.0)
executesync("craft ingot")
gotoif(99, global.int.get("craft_status") > 199)

waitwhile(active("refinery"))
produce("ingot", tier, ceil(count / 2.0), "refinery")


Insulated cables (6)

Golden insulated cable.png

Name Lines Code
craft 3:6 21
CWNyYWZ0IDM6NgAAAAAAAAAAFQAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuNhBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My42DmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/EGxvY2Fs
LmRvdWJsZS5zZXQIY29uc3RhbnQEBmNhYmxlcxFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUu
Z2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKgpkb3VibGUubWF4CmRvdWJsZS5tYXgIY29uc3Rh
bnQDAAAAAAAA8D8RYXJpdGhtZXRpYy5kb3VibGUDaTJkDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRp
ZXIIY29uc3RhbnQEAS0IY29uc3RhbnQDAAAAAAAAAEAKZG91YmxlLm1heBFhcml0aG1ldGljLmRvdWJs
ZQhjb25zdGFudAMAAAAAAAAkQAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZQhjb25zdGFudAMA
AAAAAAAUQAhjb25zdGFudAQBKhFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZQNpMmQN
bG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLQhjb25zdGFudAMAAAAAAAAgQAhj
b25zdGFudAQDcG93CGNvbnN0YW50AwAAAAAAAABAC2RvdWJsZS5jZWlsEWFyaXRobWV0aWMuZG91Ymxl
EWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlA2kyZA1sb2NhbC5pbnQuZ2V0CGNvbnN0
YW50BAR0aWVyCGNvbnN0YW50BAEtCGNvbnN0YW50AwAAAAAAAPA/CGNvbnN0YW50BANwb3cIY29uc3Rh
bnQDAAAAAAAA+D8IY29uc3RhbnQEAS0IY29uc3RhbnQDAAAAAAAAJkAQbG9jYWwuZG91YmxlLnNldAhj
b25zdGFudAQGcnViYmVyEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQE
BWNvdW50CGNvbnN0YW50BAEqCmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAARYXJpdGhtZXRpYy5k
b3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUIY29uc3RhbnQDAAAAAAAAAEAI
Y29uc3RhbnQEASoDaTJkDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEAS0IY29u
c3RhbnQDAAAAAAAAEEAIY29uc3RhbnQEAS0KZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0
aG1ldGljLmRvdWJsZQhjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJs
ZRFhcml0aG1ldGljLmRvdWJsZQNpMmQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFu
dAQBLQhjb25zdGFudAMAAAAAAAAgQAhjb25zdGFudAQBKhFhcml0aG1ldGljLmRvdWJsZQNpMmQNbG9j
YWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLQhjb25zdGFudAMAAAAAAAAiQA5nZW5l
cmljLmdvdG9pZghjb25zdGFudAIKAAAAEWNvbXBhcmlzb24uZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291
bnQIY29uc3RhbnQEBnJ1YmJlcghjb25zdGFudAIBAAAACGNvbnN0YW50BAI+PRFhcml0aG1ldGljLmRv
dWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAZydWJiZXIIY29uc3RhbnQEAS0RYXJpdGhtZXRp
Yy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFu
dAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAxwbGF0ZS5ydWJiZXIIY29uc3RhbnQCAQAA
AA5nbG9iYWwuaW50LnNldAhjb25zdGFudAQMY3JhZnRfc3RhdHVzCGNvbnN0YW50ApwBAAAOZ2xvYmFs
LmludC5zZXQIY29uc3RhbnQEEmNyYWZ0X3JlcXVpcmVfdGllcghjb25zdGFudAL/////EWdsb2JhbC5k
b3VibGUuc2V0CGNvbnN0YW50BBNjcmFmdF9yZXF1aXJlX2NvdW50EGxvY2FsLmRvdWJsZS5nZXQIY29u
c3RhbnQEBnJ1YmJlcg5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQY3JhZnRfdGllcjppbmdvdA1sb2Nh
bC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBFjcmFmdF9j
b3VudDppbmdvdBFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUu
Z2V0CGNvbnN0YW50BAZjYWJsZXMIY29uc3RhbnQEAS0TZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFu
dAQFY2FibGUNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLwhjb25zdGFudAMA
AAAAAAAAQBNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BAtjcmFmdCBpbmdvdA5nZW5lcmljLmdv
dG9pZghjb25zdGFudAJjAAAADmNvbXBhcmlzb24uaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BAxj
cmFmdF9zdGF0dXMIY29uc3RhbnQEAT4IY29uc3RhbnQCxwAAAA5nZW5lcmljLmdvdG9pZghjb25zdGFu
dAIRAAAAEWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBmNhYmxlcwhj
b25zdGFudAQCPD0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2Ny
YWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVjYWJs
ZQ1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFj
aGluZS5hY3RpdmUIY29uc3RhbnQECHJlZmluZXJ5D2ZhY3RvcnkucHJvZHVjZQhjb25zdGFudAQFaW5n
b3QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcgtkb3VibGUuY2VpbBFhcml0aG1ldGljLmRvdWJs
ZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAZjYWJsZXMIY29uc3Rh
bnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2lu
dmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVjYWJsZQ1sb2Nh
bC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEvCGNvbnN0YW50AwAAAAAAAABACGNvbnN0
YW50BAhyZWZpbmVyeQ5nZW5lcmljLmdvdG9pZghjb25zdGFudAIUAAAAEWNvbXBhcmlzb24uZG91Ymxl
EGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBnJ1YmJlcghjb25zdGFudAQCPD0TZmFjdG9yeS5pdGVt
cy5jb3VudAhjb25zdGFudAQMcGxhdGUucnViYmVyCGNvbnN0YW50AgEAAAARZ2VuZXJpYy53YWl0d2hp
bGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQHcHJlc3Nlcg9mYWN0b3J5LnByb2R1Y2UI
Y29uc3RhbnQEBnJ1YmJlcg1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEWFyaXRobWV0aWMuZG91
YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBnJ1YmJlcghjb25zdGFudAQBLRFhcml0aG1ldGlj
LmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50
BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEDHBsYXRlLnJ1YmJlcghjb25zdGFudAIBAAAA
CGNvbnN0YW50BAdwcmVzc2VyEWdlbmVyaWMud2FpdHVudGlsD2NvbXBhcmlzb24uYm9vbBFjb21wYXJp
c29uLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVjYWJsZQ1sb2NhbC5pbnQuZ2V0
CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAI+PRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAZjYWJs
ZXMIY29uc3RhbnQEASYRY29tcGFyaXNvbi5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFu
dAQMcGxhdGUucnViYmVyCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEAj49EGxvY2FsLmRvdWJsZS5nZXQI
Y29uc3RhbnQEBnJ1YmJlcg1mYWN0b3J5LmNyYWZ0CGNvbnN0YW50BA9jYWJsZS5pbnN1bGF0ZWQNbG9j
YWwuaW50LmdldAhjb25zdGFudAQEdGllchBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudA==
; Insulated cables
:global double craft_inventory
:local int tier
:local double count
:local double cables
:local double rubber

tier = global.int.get("craft_tier:3.6")
count = global.double.get("craft_count:3.6")
gotoif(99, tier < 1 | tier > 10 | count < 1.0)

cables = count * max(max(1.0, i2d(tier) - 2.0), max(10.0 - (5.0 * ((i2d(tier) - 8.0) ^ 2.0)), ceil(((i2d(tier) - 1.0) ^ 1.5) - 11.0)))
rubber = count * max(0.0, ((2.0 * i2d(tier)) - 4.0) - max(0.0, 2.0 - ((i2d(tier) - 8.0) * (i2d(tier) - 9.0))))

gotoif(ingots, count("rubber", 1) >= rubber - craft_inventory * count("plate.rubber", 1))
  global.int.set("craft_status", 412)
  global.int.set("craft_require_tier", -1)
  global.double.set("craft_require_count", rubber)

ingots: global.int.set("craft_tier:ingot", tier)
  global.double.set("craft_count:ingot", (cables - count("cable", tier)) / 2.0)
  executesync("craft ingot")
check: gotoif(99, global.int.get("craft_status") > 199)

cables: gotoif(rubber, cables <= craft_inventory * count("cable", tier))
  waitwhile(active("refinery"))
  produce("ingot", tier, ceil((cables - craft_inventory * count("cable", tier)) / 2.0), "refinery")

rubber: gotoif(craft, rubber <= count("plate.rubber", 1))
  waitwhile(active("presser"))
  produce("rubber", tier, rubber - craft_inventory * count("plate.rubber", 1), "presser")

craft: waituntil(count("cable", tier) >= cables & count("plate.rubber", 1) >= rubber)
craft("cable.insulated", tier, count)


Rods (7)

Golden rod.png

Name Lines Code
craft 3:7 9
CWNyYWZ0IDM6NwAAAAAAAAAACQAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuNxBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My43DmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/Dmdsb2Jh
bC5pbnQuc2V0CGNvbnN0YW50BBBjcmFmdF90aWVyOmluZ290DWxvY2FsLmludC5nZXQIY29uc3RhbnQE
BHRpZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW50OmluZ290EWFyaXRobWV0
aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEvCGNvbnN0
YW50AwAAAAAAAABAE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEC2NyYWZ0IGluZ290DmdlbmVy
aWMuZ290b2lmCGNvbnN0YW50AmMAAAAOY29tcGFyaXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3Rh
bnQEDGNyYWZ0X3N0YXR1cwhjb25zdGFudAQBPghjb25zdGFudALHAAAAEWdlbmVyaWMud2FpdHdoaWxl
FmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQECHJlZmluZXJ5D2ZhY3RvcnkucHJvZHVjZQhj
b25zdGFudAQFaW5nb3QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcgtkb3VibGUuY2VpbBFhcml0
aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBLwhj
b25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQGc2hhcGVy
; Rods
:global double craft_inventory
:local int tier
:local double count

tier = global.int.get("craft_tier:3.7")
count = global.double.get("craft_count:3.7")
gotoif(99, tier < 1 | tier > 10 | count < 1.0)

global.int.set("craft_tier:ingot", tier)
global.double.set("craft_count:ingot", count / 2.0)
executesync("craft ingot")
gotoif(99, global.int.get("craft_status") > 199)

waitwhile(active("refinery"))
produce("ingot", tier, ceil(count / 2.0), "shaper")


Motors (8)

Golden motor.png

Name Lines Code
craft 3:8 20
CWNyYWZ0IDM6OAAAAAAAAAAAFAAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuOBBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My44DmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/EGxvY2Fs
LmRvdWJsZS5zZXQIY29uc3RhbnQEBHJvZHMRYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3Vi
bGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29uc3RhbnQEASoIY29uc3RhbnQDAAAA
AAAAAEAIY29uc3RhbnQEASsKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAAAtkb3VibGUuY2VpbBFh
cml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50
BAVjb3VudAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25z
dGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3Rh
bnQEBXNjcmV3DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEAS8IY29uc3RhbnQD
AAAAAAAAEEAOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCCQAAABFjb21wYXJpc29uLmRvdWJsZRBsb2Nh
bC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQCPD0TZmFjdG9yeS5pdGVtcy5jb3Vu
dAhjb25zdGFudAQGcnViYmVyCGNvbnN0YW50AgEAAAAOZ2xvYmFsLmludC5zZXQIY29uc3RhbnQEDGNy
YWZ0X3N0YXR1cwhjb25zdGFudAKcAQAADmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBJjcmFmdF9yZXF1
aXJlX3RpZXIIY29uc3RhbnQC/////xFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFudAQTY3JhZnRfcmVx
dWlyZV9jb3VudBBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudA5nbG9iYWwuaW50LnNldAhj
b25zdGFudAQQY3JhZnRfdGllcjppbmdvdA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEWdsb2Jh
bC5kb3VibGUuc2V0CGNvbnN0YW50BBFjcmFmdF9jb3VudDppbmdvdBFhcml0aG1ldGljLmRvdWJsZRFh
cml0aG1ldGljLmRvdWJsZQpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAC2RvdWJsZS5jZWlsEWFy
aXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQE
BHJvZHMIY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3Rh
bnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50
BANyb2QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLwhjb25zdGFudAMAAAAA
AAAAQAhjb25zdGFudAQBKwpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAC2RvdWJsZS5jZWlsEWFy
aXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQE
BWNvdW50CGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0
YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoRYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5p
dGVtcy5jb3VudAhjb25zdGFudAQFY2FibGUNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBKxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAR3aXJlDWxvY2FsLmludC5nZXQIY29u
c3RhbnQEBHRpZXIIY29uc3RhbnQEAS8IY29uc3RhbnQDAAAAAAAAAEAIY29uc3RhbnQEASsKZG91Ymxl
Lm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBs
b2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAQ
QAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQP
Y3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBXBs
YXRlDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXITZ2VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFu
dAQLY3JhZnQgaW5nb3QOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCYwAAAA5jb21wYXJpc29uLmludA5n
bG9iYWwuaW50LmdldAhjb25zdGFudAQMY3JhZnRfc3RhdHVzCGNvbnN0YW50BAE+CGNvbnN0YW50AscA
AAAOZ2xvYmFsLmludC5zZXQIY29uc3RhbnQEEGNyYWZ0X3N0YXR1czozLjgIY29uc3RhbnQCAQAAAA9n
ZW5lcmljLmV4ZWN1dGUIY29uc3RhbnQEDmNyYWZ0IDM6ODpyb2RzD2dlbmVyaWMuZXhlY3V0ZQhjb25z
dGFudAQOY3JhZnQgMzo4OndpcmUOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCEwAAABFjb21wYXJpc29u
LmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhj
b25zdGFudAQBKghjb25zdGFudAMAAAAAAAAQQAhjb25zdGFudAQCPD0RYXJpdGhtZXRpYy5kb3VibGUR
Z2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0
b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVwbGF0ZQ1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVy
EWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQEB3ByZXNzZXIP
ZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BAVpbmdvdA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVy
EWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3Rh
bnQEBWNvdW50CGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAAABBACGNvbnN0YW50BAEtEWFyaXRobWV0
aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3Rh
bnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFcGxhdGUNbG9jYWwuaW50LmdldAhjb25z
dGFudAQEdGllcghjb25zdGFudAQHcHJlc3NlchFnZW5lcmljLndhaXR1bnRpbA9jb21wYXJpc29uLmJv
b2wPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA9jb21wYXJpc29uLmJvb2wOY29tcGFyaXNv
bi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEGNyYWZ0X3N0YXR1czozLjgIY29uc3RhbnQEAj49
CGNvbnN0YW50AgcAAAAIY29uc3RhbnQEASYRY29tcGFyaXNvbi5kb3VibGUTZmFjdG9yeS5pdGVtcy5j
b3VudAhjb25zdGFudAQFcGxhdGUNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQC
Pj0RYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29uc3Rh
bnQEASoIY29uc3RhbnQDAAAAAAAAEEAIY29uc3RhbnQEASYRY29tcGFyaXNvbi5kb3VibGUTZmFjdG9y
eS5pdGVtcy5jb3VudAhjb25zdGFudAQDcm9kDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29u
c3RhbnQEAj49EWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50
CGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAAAABACGNvbnN0YW50BAEmEWNvbXBhcmlzb24uZG91Ymxl
E2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBXNjcmV3DWxvY2FsLmludC5nZXQIY29uc3RhbnQE
BHRpZXIIY29uc3RhbnQEAj49EGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50
BAEmEWNvbXBhcmlzb24uZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBHdpcmUNbG9j
YWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQCPj0QbG9jYWwuZG91YmxlLmdldAhjb25z
dGFudAQFY291bnQNZmFjdG9yeS5jcmFmdAhjb25zdGFudAQFbW90b3INbG9jYWwuaW50LmdldAhjb25z
dGFudAQEdGllchBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudA==
; Motor
:global double craft_inventory
:local int tier
:local double count
:local double rods
:local double plates

tier = global.int.get("craft_tier:3.8")
count = global.double.get("craft_count:3.8")
gotoif(99, tier < 1 | tier > 10 | count < 1.0)

; ingots
rods = count * 2.0 + max(0.0, ceil((count - craft_inventory * count("screw", tier))/4.0))
;rods:  produce("ingot", tier, ceil((rods - craft_inventory * count("rod", tier))/2.0), "shaper")
;wires: produce("ingot", tier, ceil((count - craft_inventory * (count("cable", tier) + count("wire", tier)))/2.0), "refinery")
;plates: produce("ingot", tier, count * 4.0 - craft_inventory * count("plate", tier), "presser")

gotoif(ingots, count <= count("rubber", 1))
  global.int.set("craft_status", 412)
  global.int.set("craft_require_tier", -1)
  global.double.set("craft_require_count", count)

ingots: global.int.set("craft_tier:ingot", tier)
  global.double.set("craft_count:ingot", max(0.0, ceil((rods - craft_inventory * count("rod", tier))/2.0)) + max(0.0, ceil((count - craft_inventory * (count("cable", tier) + count("wire", tier)))/2.0)) + max(0.0, count * 4.0 - craft_inventory * count("plate", tier)))
  executesync("craft ingot")
gotoif(99, global.int.get("craft_status") > 199)

global.int.set("craft_status:3.8", 1)
execute("craft 3:8:rods")
execute("craft 3:8:wire")

; plates
;plates = count * 4.0

gotoif(wait, count * 4.0 <= craft_inventory * count("plate", tier))
waitwhile(active("presser"))
produce("ingot", tier, count * 4.0 - craft_inventory * count("plate", tier), "presser")

wait: waituntil(global.int.get("craft_status:3.8") >= 7 & count("plate", tier) >= count * 4.0 & count("rod", tier) >= count * 2.0 & count("screw", tier) >= count & count("wire", tier) >= count)
craft("motor", tier, count)


craft 3:8:rods 10
DmNyYWZ0IDM6ODpyb2RzAAAAAAAAAAAKAAAADWxvY2FsLmludC5zZXQIY29uc3RhbnQEBHRpZXIOZ2xv
YmFsLmludC5nZXQIY29uc3RhbnQEDmNyYWZ0X3RpZXI6My44EGxvY2FsLmRvdWJsZS5zZXQIY29uc3Rh
bnQEBWNvdW50EWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9jb3VudDozLjgQbG9jYWwu
ZG91YmxlLnNldAhjb25zdGFudAQEcm9kcxFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJs
ZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25zdGFudAMAAAAA
AAAAQAhjb25zdGFudAQBKwpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAC2RvdWJsZS5jZWlsEWFy
aXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQE
BWNvdW50CGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0
YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFu
dAQFc2NyZXcNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLwhjb25zdGFudAMA
AAAAAAAQQA5nZW5lcmljLmdvdG9pZghjb25zdGFudAIHAAAAEWNvbXBhcmlzb24uZG91YmxlEGxvY2Fs
LmRvdWJsZS5nZXQIY29uc3RhbnQEBHJvZHMIY29uc3RhbnQEAjw9EWFyaXRobWV0aWMuZG91YmxlEWds
b2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9y
eS5pdGVtcy5jb3VudAhjb25zdGFudAQDcm9kDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIRZ2Vu
ZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQGc2hhcGVyD2ZhY3Rv
cnkucHJvZHVjZQhjb25zdGFudAQFaW5nb3QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcgtkb3Vi
bGUuY2VpbBFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0
CGNvbnN0YW50BARyb2RzCGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUu
Z2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3Vu
dAhjb25zdGFudAQDcm9kDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEAS8IY29u
c3RhbnQDAAAAAAAAAEAIY29uc3RhbnQEBnNoYXBlcg5nZW5lcmljLmdvdG9pZghjb25zdGFudAIKAAAA
EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50
BAI8PRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52
ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBXNjcmV3DWxvY2Fs
LmludC5nZXQIY29uc3RhbnQEBHRpZXIRZ2VuZXJpYy53YWl0d2hpbGUPY29tcGFyaXNvbi5ib29sEWNv
bXBhcmlzb24uZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEA3JvZA1sb2NhbC5pbnQu
Z2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8EWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMu
ZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEtEWFyaXRobWV0
aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3Rh
bnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFc2NyZXcNbG9jYWwuaW50LmdldAhjb25z
dGFudAQEdGllcghjb25zdGFudAQBLwhjb25zdGFudAMAAAAAAAAQQAhjb25zdGFudAQBfBZmYWN0b3J5
Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BAZjdXR0ZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BANy
b2QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcgtkb3VibGUuY2VpbBFhcml0aG1ldGljLmRvdWJs
ZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFu
dAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52
ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBXNjcmV3DWxvY2Fs
LmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEAS8IY29uc3RhbnQDAAAAAAAAEEAIY29uc3Rh
bnQEBmN1dHRlcg5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQY3JhZnRfc3RhdHVzOjMuOA5hcml0aG1l
dGljLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRfc3RhdHVzOjMuOAhjb25zdGFudAQB
Kwhjb25zdGFudAICAAAA
:global double craft_inventory
:local int tier
:local double count
:local double rods
;:local double screws

; rods & screws
tier = global.int.get("craft_tier:3.8")
count = global.double.get("craft_count:3.8")
;screws = count
rods = count * 2.0 + max(0.0, ceil((count - craft_inventory * count("screw", tier))/4.0))

rods: gotoif(screws, rods <= craft_inventory * count("rod", tier))
waitwhile(active("shaper"))
produce("ingot", tier, ceil((rods - craft_inventory * count("rod", tier))/2.0), "shaper")

screws: gotoif(end, count <= craft_inventory * count("screw", tier))
waitwhile(count("rod", tier) < (count - craft_inventory * count("screw", tier))/4.0 | active("cutter"))
produce("rod", tier, ceil((count - craft_inventory * count("screw", tier))/4.0), "cutter")

end: global.int.set("craft_status:3.8", global.int.get("craft_status:3.8") + 2)


craft 3:8:wire 9
DmNyYWZ0IDM6ODp3aXJlAAAAAAAAAAAJAAAADWxvY2FsLmludC5zZXQIY29uc3RhbnQEBHRpZXIOZ2xv
YmFsLmludC5nZXQIY29uc3RhbnQEDmNyYWZ0X3RpZXI6My44EGxvY2FsLmRvdWJsZS5zZXQIY29uc3Rh
bnQEBWNvdW50EWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9jb3VudDozLjgOZ2VuZXJp
Yy5nb3RvaWYIY29uc3RhbnQCBgAAABFjb21wYXJpc29uLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNv
bnN0YW50BAVjb3VudAhjb25zdGFudAQCPD0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5n
ZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhFhcml0aG1ldGljLmRvdWJsZRNm
YWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVjYWJsZQ1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0
aWVyCGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBHdpcmUNbG9jYWwuaW50
LmdldAhjb25zdGFudAQEdGllchFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZl
CGNvbnN0YW50BAhyZWZpbmVyeQ9mYWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBWluZ290DWxvY2FsLmlu
dC5nZXQIY29uc3RhbnQEBHRpZXILZG91YmxlLmNlaWwRYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRp
Yy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29uc3RhbnQEAS0RYXJpdGht
ZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25z
dGFudAQBKhFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVjYWJs
ZQ1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291
bnQIY29uc3RhbnQEBHdpcmUNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLwhj
b25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQIcmVmaW5lcnkOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQC
CQAAABFjb21wYXJpc29uLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25z
dGFudAQCPD0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0
X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAR3aXJlDWxv
Y2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIRZ2VuZXJpYy53YWl0d2hpbGUPY29tcGFyaXNvbi5ib29s
EWNvbXBhcmlzb24uZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWNhYmxlDWxvY2Fs
LmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEATwRYXJpdGhtZXRpYy5kb3VibGURYXJpdGht
ZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29uc3RhbnQEAS0QbG9j
YWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGUR
Z2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0
b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAR3aXJlDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXII
Y29uc3RhbnQEAXwWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQIcmVmaW5lcnkPZmFjdG9y
eS5wcm9kdWNlCGNvbnN0YW50BAVjYWJsZQ1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEWFyaXRo
bWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEtEWFy
aXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkI
Y29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEd2lyZQ1sb2NhbC5pbnQuZ2V0
CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAhyZWZpbmVyeQ5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQ
Y3JhZnRfc3RhdHVzOjMuOA5hcml0aG1ldGljLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3Jh
ZnRfc3RhdHVzOjMuOAhjb25zdGFudAQBKwhjb25zdGFudAIEAAAA
:global double craft_inventory
:local int tier
:local double count

; rods & screws
tier = global.int.get("craft_tier:3.8")
count = global.double.get("craft_count:3.8")

gotoif(wire, count <= craft_inventory * (count("cable", tier) + count("wire", tier)))
waitwhile(active("refinery"))
produce("ingot", tier, ceil((count - craft_inventory * (count("cable", tier) + count("wire", tier)))/2.0), "refinery")

wire: gotoif(end, count <= craft_inventory * count("wire", tier))
waitwhile(count("cable", tier) < count - count - craft_inventory * count("wire", tier) | active("refinery"))
produce("cable", tier, count - craft_inventory * count("wire", tier), "refinery")

end: global.int.set("craft_status:3.8", global.int.get("craft_status:3.8") + 4)


Pumps (9)

Golden pump.png

Name Lines Code
craft 3:9 10
CWNyYWZ0IDM6OQAAAAAAAAAACgAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2JhbC5p
bnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuORBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAVj
b3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My45DmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAAPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29u
LmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAI
Y29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/E2dlbmVy
aWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEDGNyYWZ0IDM6OTppbg5nZW5lcmljLmdvdG9pZghjb25zdGFu
dAJjAAAADmNvbXBhcmlzb24uaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BAxjcmFmdF9zdGF0dXMI
Y29uc3RhbnQEAT4IY29uc3RhbnQCxwAAAA5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQY3JhZnRfc3Rh
dHVzOjMuOQhjb25zdGFudAIBAAAAD2dlbmVyaWMuZXhlY3V0ZQhjb25zdGFudAQQY3JhZnQgMzo5OnBs
YXRlcw9nZW5lcmljLmV4ZWN1dGUIY29uc3RhbnQED2NyYWZ0IDM6OTpyaW5ncxFnZW5lcmljLndhaXR1
bnRpbA9jb21wYXJpc29uLmJvb2wPY29tcGFyaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA5jb21wYXJp
c29uLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRfc3RhdHVzOjMuOQhjb25zdGFudAQC
Pj0IY29uc3RhbnQCBwAAAAhjb25zdGFudAQBJhFjb21wYXJpc29uLmRvdWJsZRNmYWN0b3J5Lml0ZW1z
LmNvdW50CGNvbnN0YW50BAVwbGF0ZQ1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50
BAI+PRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25z
dGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQBJhFjb21wYXJpc29uLmRvdWJsZRNmYWN0
b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAxwbGF0ZS5ydWJiZXIIY29uc3RhbnQCAQAAAAhjb25zdGFu
dAQCPj0RYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29u
c3RhbnQEASoIY29uc3RhbnQDAAAAAAAAEEAIY29uc3RhbnQEASYRY29tcGFyaXNvbi5kb3VibGUTZmFj
dG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEcmluZw1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVy
CGNvbnN0YW50BAI+PRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVj
b3VudAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQA1mYWN0b3J5LmNyYWZ0CGNvbnN0YW50BARw
dW1wDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQF
Y291bnQ=
; Pumps
:global double craft_inventory
:local int tier
:local double count
:local double rubber
:local double rods

tier = global.int.get("craft_tier:3.9")
count = global.double.get("craft_count:3.9")
gotoif(99, tier < 1 | tier > 10 | count < 1.0)

executesync("craft 3:9:in")
gotoif(99, global.int.get("craft_status") > 199)

global.int.set("craft_status:3.9", 1)
execute("craft 3:9:plates")
execute("craft 3:9:rings")

waituntil(global.int.get("craft_status:3.9") >= 7 & count("plate", tier) >= count*2.0 & count("plate.rubber", 1) >= count*4.0 & count("ring", tier) >= count*2.0)
craft("pump", tier, count)


craft 3:9:in 16
DGNyYWZ0IDM6OTppbgAAAAAAAAAAEAAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmdsb2Jh
bC5pbnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuORBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50
BAVjb3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My45EGxvY2FsLmRv
dWJsZS5zZXQIY29uc3RhbnQEBnJ1YmJlchFhcml0aG1ldGljLmRvdWJsZQpkb3VibGUubWF4CGNvbnN0
YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNv
dW50CGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50
BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQF
bW90b3INbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBKwpkb3VibGUubWF4CGNv
bnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAAABBACGNvbnN0
YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9p
bnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQMcGxhdGUucnVi
YmVyDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCCAAA
ABFjb21wYXJpc29uLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAZydWJiZXIIY29uc3Rh
bnQEAjw9E2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBnJ1YmJlcghjb25zdGFudAIBAAAADmds
b2JhbC5pbnQuc2V0CGNvbnN0YW50BAxjcmFmdF9zdGF0dXMIY29uc3RhbnQCnAEAAA5nbG9iYWwuaW50
LnNldAhjb25zdGFudAQSY3JhZnRfcmVxdWlyZV90aWVyCGNvbnN0YW50Av////8RZ2xvYmFsLmRvdWJs
ZS5zZXQIY29uc3RhbnQEE2NyYWZ0X3JlcXVpcmVfY291bnQQbG9jYWwuZG91YmxlLmdldAhjb25zdGFu
dAQGcnViYmVyDmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBBjcmFmdF90aWVyOmluZ290DWxvY2FsLmlu
dC5nZXQIY29uc3RhbnQEBHRpZXIQbG9jYWwuZG91YmxlLnNldAhjb25zdGFudAQKbmVlZF9wdW1wcwpk
b3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5n
ZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3Vi
bGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5j
b3VudAhjb25zdGFudAQFbW90b3INbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchBsb2NhbC5kb3Vi
bGUuc2V0CGNvbnN0YW50BARyb2RzEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlCmRv
dWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAARYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3Vi
bGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29uc3RhbnQEASoIY29uc3RhbnQDAAAA
AAAAAEAIY29uc3RhbnQEAS0TZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEcmluZw1sb2NhbC5p
bnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAErEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRv
dWJsZS5nZXQIY29uc3RhbnQECm5lZWRfcHVtcHMIY29uc3RhbnQEASoIY29uc3RhbnQDAAAAAAAAAEAI
Y29uc3RhbnQEASsKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAAAtkb3VibGUuY2VpbBFhcml0aG1l
dGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BApuZWVk
X3B1bXBzCGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0
YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFu
dAQFc2NyZXcNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLwhjb25zdGFudAMA
AAAAAAAQQBFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFudAQRY3JhZnRfY291bnQ6aW5nb3QRYXJpdGht
ZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFh
cml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5k
b3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25z
dGFudAQBKxFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BApuZWVkX3B1
bXBzCGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAAABBACGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91
YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoT
ZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFcGxhdGUNbG9jYWwuaW50LmdldAhjb25zdGFudAQE
dGllcghjb25zdGFudAQBKwpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAC2RvdWJsZS5jZWlsEWFy
aXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQE
BHJvZHMIY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3Rh
bnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50
BANyb2QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLwhjb25zdGFudAMAAAAA
AAAAQAhjb25zdGFudAQBKwpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAC2RvdWJsZS5jZWlsEWFy
aXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQE
BWNvdW50CGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0
YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoRYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5p
dGVtcy5jb3VudAhjb25zdGFudAQFY2FibGUNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQBKxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAR3aXJlDWxvY2FsLmludC5nZXQIY29u
c3RhbnQEBHRpZXIIY29uc3RhbnQEAS8IY29uc3RhbnQDAAAAAAAAAEATZ2VuZXJpYy5leGVjdXRlc3lu
Ywhjb25zdGFudAQLY3JhZnQgaW5nb3QOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCYwAAAA5jb21wYXJp
c29uLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQMY3JhZnRfc3RhdHVzCGNvbnN0YW50BAE+CGNv
bnN0YW50AscAAAAOZ2xvYmFsLmludC5zZXQIY29uc3RhbnQEDmNyYWZ0X3RpZXI6My44DWxvY2FsLmlu
dC5nZXQIY29uc3RhbnQEBHRpZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQED2NyYWZ0X2NvdW50
OjMuOBFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25z
dGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRf
aW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBW1vdG9yDWxv
Y2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXITZ2VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFudAQJY3Jh
ZnQgMzo4
:global double craft_inventory
:local int tier
:local double count
:local double rubber
:local double need_pumps
:local double rods
:local double plates

tier = global.int.get("craft_tier:3.9")
count = global.double.get("craft_count:3.9")

; rubber and ingots
rubber = max(0.0, count - craft_inventory * count("motor", tier)) + max(0.0, count*4.0 - craft_inventory * count("plate.rubber", tier))
gotoif(ingots, rubber <= count("rubber", 1))
  global.int.set("craft_status", 412)
  global.int.set("craft_require_tier", -1)
  global.double.set("craft_require_count", rubber)

ingots: global.int.set("craft_tier:ingot", tier)
; plates: count*2.0 - craft_inventory * count("plate", tier)
; rods = count * 2.0 - count("ring", tier)
; rings: ceil((rods - craft_inventory * count("rod", tier))/2.0)
; motors...
;    rods = count * 2.0 + max(0.0, ceil((count - craft_inventory * count("screw", tier))/4.0))
;    global.double.set("craft_count:ingot", max(0.0, ceil((rods - craft_inventory * count("rod", tier))/2.0)) + max(0.0, ceil((count - craft_inventory * (count("cable", tier) + count("wire", tier)))/2.0)) + max(0.0, count * 4.0 - craft_inventory * count("plate", tier)))
  need_pumps = max(0.0, count - craft_inventory * count("motor", tier))
  rods = max(0.0, count * 2.0 - count("ring", tier)) + need_pumps * 2.0 + max(0.0, ceil((need_pumps - craft_inventory * count("screw", tier))/4.0))
  global.double.set("craft_count:ingot", max(0.0, count*2.0 + need_pumps * 4.0 - craft_inventory * count("plate", tier)) + max(0.0, ceil((rods - craft_inventory * count("rod", tier))/2.0)) + max(0.0, ceil((count - craft_inventory * (count("cable", tier) + count("wire", tier)))/2.0)))
  executesync("craft ingot")
gotoif(99, global.int.get("craft_status") > 199)

global.int.set("craft_tier:3.8", tier)
global.double.set("craft_count:3.8", count - craft_inventory * count("motor", tier))
executesync("craft 3:8")


craft 3:9:plates 9
EGNyYWZ0IDM6OTpwbGF0ZXMAAAAAAAAAAAkAAAANbG9jYWwuaW50LnNldAhjb25zdGFudAQEdGllcg5n
bG9iYWwuaW50LmdldAhjb25zdGFudAQOY3JhZnRfdGllcjozLjkQbG9jYWwuZG91YmxlLnNldAhjb25z
dGFudAQFY291bnQRZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2NyYWZ0X2NvdW50OjMuOQ5nZW5l
cmljLmdvdG9pZghjb25zdGFudAIGAAAAEWNvbXBhcmlzb24uZG91YmxlEWFyaXRobWV0aWMuZG91Ymxl
EGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAA
AABACGNvbnN0YW50BAE8EWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50
BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQF
cGxhdGUNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5
Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BAdwcmVzc2VyD2ZhY3RvcnkucHJvZHVjZQhjb25zdGFudAQF
aW5nb3QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1l
dGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25z
dGFudAMAAAAAAAAAQAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdl
dAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQI
Y29uc3RhbnQEBXBsYXRlDWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEB3ByZXNz
ZXIOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCCQAAABFjb21wYXJpc29uLmRvdWJsZRFhcml0aG1ldGlj
LmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25zdGFu
dAMAAAAAAAAQQAhjb25zdGFudAQBPBFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhj
b25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29u
c3RhbnQEDHBsYXRlLnJ1YmJlcg1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyEWdlbmVyaWMud2Fp
dHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQEB3ByZXNzZXIPZmFjdG9yeS5wcm9k
dWNlCGNvbnN0YW50BAZydWJiZXIIY29uc3RhbnQCAQAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1l
dGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25z
dGFudAMAAAAAAAAQQAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdl
dAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQI
Y29uc3RhbnQEDHBsYXRlLnJ1YmJlcg1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50
BAdwcmVzc2VyDmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBBjcmFmdF9zdGF0dXM6My45DmFyaXRobWV0
aWMuaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBBjcmFmdF9zdGF0dXM6My45CGNvbnN0YW50BAEr
CGNvbnN0YW50AgIAAAA=
:global double craft_inventory
:local int tier
:local double count

tier = global.int.get("craft_tier:3.9")
count = global.double.get("craft_count:3.9")

;plates = count * 2.0
plates: gotoif(rubber, count*2.0 < craft_inventory * count("plate", tier))
  waitwhile(active("presser"))
  produce("ingot", tier, count*2.0 - craft_inventory * count("plate", tier), "presser")

rubber: gotoif(end, count*4.0 < craft_inventory * count("plate.rubber", tier))
waitwhile(active("presser"))
  produce("rubber", 1, count*4.0 - craft_inventory * count("plate.rubber", tier), "presser")

end: global.int.set("craft_status:3.9", global.int.get("craft_status:3.9") + 2)


craft 3:9:rings 10
D2NyYWZ0IDM6OTpyaW5ncwAAAAAAAAAACgAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmds
b2JhbC5pbnQuZ2V0CGNvbnN0YW50BA5jcmFmdF90aWVyOjMuORBsb2NhbC5kb3VibGUuc2V0CGNvbnN0
YW50BAVjb3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfY291bnQ6My45EGxvY2Fs
LmRvdWJsZS5zZXQIY29uc3RhbnQEBHJvZHMRYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3Vi
bGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29uc3RhbnQEASoIY29uc3RhbnQDAAAA
AAAAAEAIY29uc3RhbnQEAS0TZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEcmluZw1sb2NhbC5p
bnQuZ2V0CGNvbnN0YW50BAR0aWVyDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AgcAAAARY29tcGFyaXNv
bi5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQEcm9kcwhjb25zdGFudAQBPBFhcml0aG1l
dGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0
YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEA3JvZA1sb2NhbC5pbnQuZ2V0CGNvbnN0
YW50BAR0aWVyEWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQE
BnNoYXBlcg9mYWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBWluZ290DWxvY2FsLmludC5nZXQIY29uc3Rh
bnQEBHRpZXILZG91YmxlLmNlaWwRYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUQbG9j
YWwuZG91YmxlLmdldAhjb25zdGFudAQEcm9kcwhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJsZRFn
bG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3Rv
cnkuaXRlbXMuY291bnQIY29uc3RhbnQEA3JvZA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNv
bnN0YW50BAEvCGNvbnN0YW50AwAAAAAAAABACGNvbnN0YW50BAZzaGFwZXIOZ2VuZXJpYy5nb3RvaWYI
Y29uc3RhbnQCCgAAABFjb21wYXJpc29uLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3Vi
bGUuZ2V0CGNvbnN0YW50BAVjb3VudAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFu
dAQBPBFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52
ZW50b3J5CGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBHJpbmcNbG9jYWwu
aW50LmdldAhjb25zdGFudAQEdGllchFnZW5lcmljLndhaXR3aGlsZQ9jb21wYXJpc29uLmJvb2wRY29t
cGFyaXNvbi5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQDcm9kDWxvY2FsLmludC5n
ZXQIY29uc3RhbnQEBHRpZXIIY29uc3RhbnQEATwQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQEcm9k
cwhjb25zdGFudAQBfBZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BAZzaGFwZXIPZmFjdG9y
eS5wcm9kdWNlCGNvbnN0YW50BANyb2QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchFhcml0aG1l
dGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAVjb3Vu
dAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQBLRFhcml0aG1ldGljLmRvdWJs
ZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPY3JhZnRfaW52ZW50b3J5CGNvbnN0YW50BAEqE2Zh
Y3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBHJpbmcNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGll
cghjb25zdGFudAQGc2hhcGVyDmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBBjcmFmdF9zdGF0dXM6My45
DmFyaXRobWV0aWMuaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBBjcmFmdF9zdGF0dXM6My45CGNv
bnN0YW50BAErCGNvbnN0YW50AgQAAAA=
:global double craft_inventory
:local int tier
:local double count
:local double rods

tier = global.int.get("craft_tier:3.9")
count = global.double.get("craft_count:3.9")

; 2 rings
rods = count * 2.0 - count("ring", tier)
rods: gotoif(rings, rods < craft_inventory * count("rod", tier))
  waitwhile(active("shaper"))
  produce("ingot", tier, ceil((rods - craft_inventory * count("rod", tier))/2.0), "shaper")

rings: gotoif(end, count*2.0 < craft_inventory * count("ring", tier))
  waitwhile(count("rod", tier) < rods | active("shaper"))
  produce("rod", tier, count*2.0 - craft_inventory * count("ring", tier), "shaper")

end: global.int.set("craft_status:3.9", global.int.get("craft_status:3.9") + 4)


Wires

(pic)

Name Lines Code
craft part:wire 9
D2NyYWZ0IHBhcnQ6d2lyZQAAAAAAAAAACQAAAA1sb2NhbC5pbnQuc2V0CGNvbnN0YW50BAR0aWVyDmds
b2JhbC5pbnQuZ2V0CGNvbnN0YW50BA9jcmFmdF90aWVyOndpcmUQbG9jYWwuZG91YmxlLnNldAhjb25z
dGFudAQFY291bnQRZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEEGNyYWZ0X2NvdW50OndpcmUOZ2Vu
ZXJpYy5nb3RvaWYIY29uc3RhbnQCYwAAAA9jb21wYXJpc29uLmJvb2wPY29tcGFyaXNvbi5ib29sD2Nv
bXBhcmlzb24uYm9vbA5jb21wYXJpc29uLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNv
bnN0YW50BAE8CGNvbnN0YW50AgEAAAAIY29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50
LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNv
bXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAE8
CGNvbnN0YW50AwAAAAAAAPA/CGNvbnN0YW50BAF8DmNvbXBhcmlzb24uaW50Dmdsb2JhbC5pbnQuZ2V0
CGNvbnN0YW50BAxjcmFmdF9zdGF0dXMIY29uc3RhbnQEAT4IY29uc3RhbnQCxwAAAA5nZW5lcmljLmdv
dG9pZghjb25zdGFudAIIAAAAEWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3Rh
bnQEBWNvdW50CGNvbnN0YW50BAE8EWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNv
bnN0YW50BA9jcmFmdF9pbnZlbnRvcnkIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25z
dGFudAQFY2FibGUNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchFnZW5lcmljLndhaXR3aGlsZRZm
YWN0b3J5Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BAhyZWZpbmVyeQ9mYWN0b3J5LnByb2R1Y2UIY29u
c3RhbnQEBWluZ290DWxvY2FsLmludC5nZXQIY29uc3RhbnQEBHRpZXILZG91YmxlLmNlaWwRYXJpdGht
ZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291
bnQIY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQE
D2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVj
YWJsZQ1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyCGNvbnN0YW50BAEvCGNvbnN0YW50AwAAAAAA
AABACGNvbnN0YW50BAhyZWZpbmVyeRFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5Lm1hY2hpbmUuYWN0
aXZlCGNvbnN0YW50BAhyZWZpbmVyeQ9mYWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBWNhYmxlDWxvY2Fs
LmludC5nZXQIY29uc3RhbnQEBHRpZXIQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQIY29u
c3RhbnQECHJlZmluZXJ5EWdlbmVyaWMud2FpdHVudGlsEWNvbXBhcmlzb24uZG91YmxlE2ZhY3Rvcnku
aXRlbXMuY291bnQIY29uc3RhbnQEBHdpcmUNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25z
dGFudAQCPj0QbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQFY291bnQ=
:global double craft_inventory
:local int tier
:local double count

tier = global.int.get("craft_tier:wire")
count = global.double.get("craft_count:wire")
gotoif(99, tier < 1 | tier > 10 | count < 1.0 | global.int.get("craft_status") > 199)

cables: gotoif(wires, count < craft_inventory * count("cable", tier))
  waitwhile(active("refinery"))
  produce("ingot", tier, ceil((count - craft_inventory * count("cable", tier)) / 2.0), "refinery")
  waitwhile(active("refinery"))

wires: produce("cable", tier, count, "refinery")
  waituntil(count("wire", tier) >= count)


Screws

(pic)

Name Lines Code
craft part:screw 12
EGNyYWZ0IHBhcnQ6c2NyZXcAAAAAAAAAAAwAAAANbG9jYWwuaW50LnNldAhjb25zdGFudAQEdGllcg5n
bG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRfdGllcjpzY3JldxBsb2NhbC5kb3VibGUuc2V0CGNv
bnN0YW50BAVjb3VudBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQRY3JhZnRfY291bnQ6c2NyZXcO
Z2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCYwAAAA9jb21wYXJpc29uLmJvb2wPY29tcGFyaXNvbi5ib29s
D2NvbXBhcmlzb24uYm9vbA5jb21wYXJpc29uLmludA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVy
CGNvbnN0YW50BAE8CGNvbnN0YW50AgEAAAAIY29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQNbG9jYWwu
aW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8
EWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50
BAE8CGNvbnN0YW50AwAAAAAAAPA/CGNvbnN0YW50BAF8DmNvbXBhcmlzb24uaW50Dmdsb2JhbC5pbnQu
Z2V0CGNvbnN0YW50BAxjcmFmdF9zdGF0dXMIY29uc3RhbnQEAT4IY29uc3RhbnQCxwAAABBsb2NhbC5k
b3VibGUuc2V0CGNvbnN0YW50BARyb2RzC2RvdWJsZS5jZWlsEWFyaXRobWV0aWMuZG91YmxlEGxvY2Fs
LmRvdWJsZS5nZXQIY29uc3RhbnQEBWNvdW50CGNvbnN0YW50BAEvCGNvbnN0YW50AwAAAAAAABBADmdl
bmVyaWMuZ290b2lmCGNvbnN0YW50AgkAAAARY29tcGFyaXNvbi5kb3VibGUQbG9jYWwuZG91YmxlLmdl
dAhjb25zdGFudAQEcm9kcwhjb25zdGFudAQCPD0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJs
ZS5nZXQIY29uc3RhbnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNv
dW50CGNvbnN0YW50BANyb2QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllchFnZW5lcmljLndhaXR3
aGlsZRZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BAZzaGFwZXIPZmFjdG9yeS5wcm9kdWNl
CGNvbnN0YW50BAVpbmdvdA1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAR0aWVyC2RvdWJsZS5jZWlsEWFy
aXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQE
BHJvZHMIY29uc3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3Rh
bnQED2NyYWZ0X2ludmVudG9yeQhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50
BANyb2QNbG9jYWwuaW50LmdldAhjb25zdGFudAQEdGllcghjb25zdGFudAQBLwhjb25zdGFudAMAAAAA
AAAAQAhjb25zdGFudAQGc2hhcGVyEWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3Rp
dmUIY29uc3RhbnQEBnNoYXBlchFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZl
CGNvbnN0YW50BAZjdXR0ZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BANyb2QNbG9jYWwuaW50Lmdl
dAhjb25zdGFudAQEdGllchBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BARyb2RzCGNvbnN0YW50BAZj
dXR0ZXIRZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQGY3V0
dGVyDGdlbmVyaWMud2FpdAhjb25zdGFudAMAAAAAAAAAAA==
:global double craft_inventory
:local int tier
:local double count

tier = global.int.get("craft_tier:screw")
count = global.double.get("craft_count:screw")
gotoif(99, tier < 1 | tier > 10 | count < 1.0 | global.int.get("craft_status") > 199)

:local double rods
rods = ceil(count / 4.0)

rods: gotoif(screws, rods <= craft_inventory * count("rod", tier))
waitwhile(active("shaper"))
produce("ingot", tier, ceil((rods - craft_inventory * count("rod", tier)) / 2.0), "shaper")
waitwhile(active("shaper"))

screws: waitwhile(active("cutter"))
produce("rod", tier, rods, "cutter")
waitwhile(active("cutter"))

wait(0.0)