Difference between revisions of "User:Akerus"

From The Perfect Tower II
Jump to navigation Jump to search
(Added integration example)
(Fix integration into "craft ingot")
Line 207: Line 207:
 
|dust_count_resources
 
|dust_count_resources
 
|
 
|
 
  
 
|
 
|
Line 534: Line 533:
 
|dust_up_mix
 
|dust_up_mix
 
|
 
|
 
  
 
|
 
|
Line 621: Line 619:
 
|}
 
|}
  
=== Examples of integrating the Dust Up scripts ===
+
===Examples of integrating the Dust Up scripts===
 
<br />
 
<br />
 
{| class="wikitable"
 
{| class="wikitable"
Line 654: Line 652:
  
 
target_dust_tier = global.int.get("craft_tier:ingot")
 
target_dust_tier = global.int.get("craft_tier:ingot")
target_dust_count = max(0.0, global.double.get("craft_count:ingot") - ((count("ingot", global.int.get("craft_tier:ingot")) + count("dust", global.int.get("craft_tier:ingot"))) - 1.0))
+
target_dust_count = global.double.get("craft_count:ingot")
 
executesync("dust_up_integrated")
 
executesync("dust_up_integrated")
 
gotoif(bad, resources_needed_tier_1 > 0.0)
 
gotoif(bad, resources_needed_tier_1 > 0.0)
Line 681: Line 679:
 
GllcjppbmdvdA5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQdGFyZ2V0X2R1c3RfdGllcg5nbG9iYWwu
 
GllcjppbmdvdA5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQdGFyZ2V0X2R1c3RfdGllcg5nbG9iYWwu
 
aW50LmdldAhjb25zdGFudAQQY3JhZnRfdGllcjppbmdvdBFnbG9iYWwuZG91YmxlLnNldAhjb25zdGF
 
aW50LmdldAhjb25zdGFudAQQY3JhZnRfdGllcjppbmdvdBFnbG9iYWwuZG91YmxlLnNldAhjb25zdGF
udAQRdGFyZ2V0X2R1c3RfY291bnQKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0aG1ldG
+
udAQRdGFyZ2V0X2R1c3RfY291bnQRZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW
ljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQRY3JhZnRfY291bnQ6aW5nb3QIY29uc
+
50OmluZ290E2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEEmR1c3RfdXBfaW50ZWdyYXRlZA5nZ
3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVtcy5j
+
W5lcmljLmdvdG9pZghjb25zdGFudAILAAAAEWNvbXBhcmlzb24uZG91YmxlEWdsb2JhbC5kb3VibGUu
b3VudAhjb25zdGFudAQFaW5nb3QOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEGNyYWZ0X3RpZXI6aW5
+
Z2V0CGNvbnN0YW50BBdyZXNvdXJjZXNfbmVlZGVkX3RpZXJfMQhjb25zdGFudAQBPghjb25zdGFudAM
nb3QIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEZHVzdA5nbG9iYWwuaW
+
AAAAAAAAAABFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BA
50LmdldAhjb25zdGFudAQQY3JhZnRfdGllcjppbmdvdAhjb25zdGFudAQBLQhjb25zdGFudAMAAAAAA
+
RvdmVuD2ZhY3RvcnkucHJvZHVjZQhjb25zdGFudAQEZHVzdA5nbG9iYWwuaW50LmdldAhjb25zdGFud
ADwPxNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BBJkdXN0X3VwX2ludGVncmF0ZWQOZ2VuZXJp
+
AQQY3JhZnRfdGllcjppbmdvdAtkb3VibGUuY2VpbBFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91
Yy5nb3RvaWYIY29uc3RhbnQCCwAAABFjb21wYXJpc29uLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAh
+
YmxlLmdldAhjb25zdGFudAQRY3JhZnRfY291bnQ6aW5nb3QIY29uc3RhbnQEAS0TZmFjdG9yeS5pdGV
jb25zdGFudAQXcmVzb3VyY2VzX25lZWRlZF90aWVyXzEIY29uc3RhbnQEAT4IY29uc3RhbnQDAAAAAA
+
tcy5jb3VudAhjb25zdGFudAQFaW5nb3QOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEGNyYWZ0X3RpZX
AAAAARZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQEb3Zlb
+
I6aW5nb3QIY29uc3RhbnQEBG92ZW4RZ2VuZXJpYy53YWl0dW50aWwRY29tcGFyaXNvbi5kb3VibGUTZ
g9mYWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBGR1c3QOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEGNy
+
mFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5nb3QOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQE
YWZ0X3RpZXI6aW5nb3QLZG91YmxlLmNlaWwRYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5
+
EGNyYWZ0X3RpZXI6aW5nb3QIY29uc3RhbnQEAj49EWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBF
nZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW50OmluZ290CGNvbnN0YW50BAEtE2ZhY3RvcnkuaXRlbXMuY2
+
jcmFmdF9jb3VudDppbmdvdAxnZW5lcmljLmdvdG8IY29uc3RhbnQCYwAAAA5nbG9iYWwuaW50LnNldA
91bnQIY29uc3RhbnQEBWluZ290Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBBjcmFmdF90aWVyOmluZ
+
hjb25zdGFudAQSY3JhZnRfcmVxdWlyZV90aWVyDmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBBjcmFmd
290CGNvbnN0YW50BARvdmVuEWdlbmVyaWMud2FpdHVudGlsEWNvbXBhcmlzb24uZG91YmxlE2ZhY3Rv
+
F90aWVyOmluZ290EWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBNjcmFmdF9yZXF1aXJlX2NvdW50
cnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWluZ290Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBBjcmF
+
EWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBFjcmFmdF9jb3VudDppbmdvdA5nbG9iYWwuaW50LnN
mdF90aWVyOmluZ290CGNvbnN0YW50BAI+PRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQRY3JhZn
+
ldAhjb25zdGFudAQMY3JhZnRfc3RhdHVzCGNvbnN0YW50ApwBAAA=
RfY291bnQ6aW5nb3QMZ2VuZXJpYy5nb3RvCGNvbnN0YW50AmMAAAAOZ2xvYmFsLmludC5zZXQIY29uc
 
3RhbnQEEmNyYWZ0X3JlcXVpcmVfdGllcg5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRfdGll
 
cjppbmdvdBFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFudAQTY3JhZnRfcmVxdWlyZV9jb3VudBFnbG9
 
iYWwuZG91YmxlLmdldAhjb25zdGFudAQRY3JhZnRfY291bnQ6aW5nb3QOZ2xvYmFsLmludC5zZXQIY2
 
9uc3RhbnQEDGNyYWZ0X3N0YXR1cwhjb25zdGFudAKcAQAA
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|}
 
|}
 
|}
 
|}

Revision as of 10:16, 19 January 2021

A collection of helpful scripts This page structure (and the tamperscript) is copied directly from user Troylaurin https://www.perfecttower2.com/wiki/index.php?title=User:Troylaurin

Click to copy (tamperscript)
// ==UserScript==
// @name         Click to copy on <pre> tags
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Add click to copy buttons to <pre> tags
// @author       Troy.Laurin@gmail.com
// @match        https://www.perfecttower2.com/wiki/*
// @grant        GM_addStyle
// @require      https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js
// @require      http://code.jquery.com/jquery-3.5.1.slim.min.js
// ==/UserScript==

(function() {
    'use strict';

    // ------------------------------------------
    // CSS part injected in the page
    GM_addStyle(" \
.precontainer { \
position: relative; \
} \
.copy-btn { \
background: #DDD; \
font-family: monospace; \
font-weight: bolder; \
margin: 0; \
opacity: 0; \
padding: 4px; \
position: absolute; \
right: 1px; \
top: 1px; \
cursor: pointer; \
-webkit-transition: opacity 0.3s ease-in-out; \
-o-transition: opacity 0.3s ease-in-out; \
transition: opacity 0.3s ease-in-out; \
} \
.precontainer:hover >.copy-btn { \
opacity: 1; \
} \
table { width: 100% } \
");

    $('pre').wrap('<div class="precontainer"></div>');
    $('pre').before($('<span class="copy-btn">&lt;/&gt;</span>'));

    new ClipboardJS('.copy-btn', {
        text: function(trigger) {
            return $(trigger.nextElementSibling).text();
        }
    })
        .on('success',function (e) {
        $(e.trigger).html("&lt;copied/&gt;")
        setTimeout(function() {
            $(e.trigger).html("&lt;/&gt;");
        }, 3000);
    })
        .on('error',function (e) {
        $(e.trigger).html("Error!")
        setTimeout(function() {
            $(e.trigger).html("&lt;/&gt;");
        }, 3000);
    });
})();


Dust Up Scripts

Script Impulses Conditions Lines Source
dust_up
  • key 1
  • factory screen open
15
:global double resources_needed_tier_1
:global int target_dust_tier
:global double target_dust_count
:global int dust_up_loop_tier
:global double dust_up_missing

key.1()

isopen("factory")

target_dust_tier = 8
target_dust_count = 350.0
executesync("dust_count_resources")
executesync("dust_calc_needed")
gotoif(99, resources_needed_tier_1 > 0.0)
dust_up_loop_tier = 1
loop: dust_up_missing = max(0.0, (global.double.get("resources_needed_tier_" . i2s(dust_up_loop_tier + 1)) * 4.0) - count("dust", dust_up_loop_tier))
gotoif(mix, dust_up_missing < 1.0)
executesync("dust_up_process_lump")
executesync("dust_up_process_ore")
executesync("dust_up_process_ingot")
mix: executesync("dust_up_mix")
dust_up_loop_tier = dust_up_loop_tier + 1
gotoif(loop, dust_up_loop_tier < target_dust_tier)
executesync("dust_up_finalize")
B2R1c3RfdXABAAAABWtleS4xAQAAABJ0b3duLndpbmRvdy5pc29wZW4IY29uc3RhbnQEB2ZhY3Rvcnk
PAAAADmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBB0YXJnZXRfZHVzdF90aWVyCGNvbnN0YW50AggAAA
ARZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEXRhcmdldF9kdXN0X2NvdW50CGNvbnN0YW50AwAAA
AAA4HVAE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEFGR1c3RfY291bnRfcmVzb3VyY2VzE2dl
bmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEEGR1c3RfY2FsY19uZWVkZWQOZ2VuZXJpYy5nb3RvaWY
IY29uc3RhbnQCYwAAABFjb21wYXJpc29uLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudA
QXcmVzb3VyY2VzX25lZWRlZF90aWVyXzEIY29uc3RhbnQEAT4IY29uc3RhbnQDAAAAAAAAAAAOZ2xvY
mFsLmludC5zZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbnN0YW50AgEAAAARZ2xvYmFs
LmRvdWJsZS5zZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZwpkb3VibGUubWF4CGNvbnN0YW50AwA
AAAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2
V0BmNvbmNhdAhjb25zdGFudAQWcmVzb3VyY2VzX25lZWRlZF90aWVyXwNpMnMOYXJpdGhtZXRpYy5pb
nQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbnN0YW50BAErCGNv
bnN0YW50AgEAAAAIY29uc3RhbnQEASoIY29uc3RhbnQDAAAAAAAAEEAIY29uc3RhbnQEAS0TZmFjdG9
yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEZHVzdA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF
91cF9sb29wX3RpZXIOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCDAAAABFjb21wYXJpc29uLmRvdWJsZ
RFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW5nCGNvbnN0YW50BAE8CGNv
bnN0YW50AwAAAAAAAPA/E2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEFGR1c3RfdXBfcHJvY2V
zc19sdW1wE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEE2R1c3RfdXBfcHJvY2Vzc19vcmUTZ2
VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFudAQVZHVzdF91cF9wcm9jZXNzX2luZ290E2dlbmVyaWMuZ
XhlY3V0ZXN5bmMIY29uc3RhbnQEC2R1c3RfdXBfbWl4Dmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBFk
dXN0X3VwX2xvb3BfdGllcg5hcml0aG1ldGljLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHV
zdF91cF9sb29wX3RpZXIIY29uc3RhbnQEASsIY29uc3RhbnQCAQAAAA5nZW5lcmljLmdvdG9pZghjb2
5zdGFudAIHAAAADmNvbXBhcmlzb24uaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX
2xvb3BfdGllcghjb25zdGFudAQBPA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQdGFyZ2V0X2R1c3Rf
dGllchNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BBBkdXN0X3VwX2ZpbmFsaXpl
dust_up_integrated
13
:global double dust_up_missing
:global int dust_up_loop_tier
:global double resources_needed_tier_1
:global double target_dust_count
:global int target_dust_tier

3: executesync("dust_count_resources")
4: executesync("dust_calc_needed")
5: gotoif(99, resources_needed_tier_1 > 0.0)
6: dust_up_loop_tier = 1
7: dust_up_missing = double.max(0.0, (global.double.get("resources_needed_tier_" . i2s(dust_up_loop_tier + 1)) * 4.0) - count("dust", dust_up_loop_tier))
8: gotoif(12, dust_up_missing < 1.0)
9: executesync("dust_up_process_lump")
10: executesync("dust_up_process_ore")
11: executesync("dust_up_process_ingot")
12: executesync("dust_up_mix")
13: dust_up_loop_tier = dust_up_loop_tier + 1
14: gotoif(7, dust_up_loop_tier < target_dust_tier)
15: executesync("dust_up_finalize")
EmR1c3RfdXBfaW50ZWdyYXRlZAAAAAAAAAAADQAAABNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW5
0BBRkdXN0X2NvdW50X3Jlc291cmNlcxNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BBBkdXN0X2
NhbGNfbmVlZGVkDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAARY29tcGFyaXNvbi5kb3VibGURZ
2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEF3Jlc291cmNlc19uZWVkZWRfdGllcl8xCGNvbnN0YW50
BAE+CGNvbnN0YW50AwAAAAAAAAAADmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3B
fdGllcghjb25zdGFudAIBAAAAEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3
NpbmcKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ld
GljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAZjb25jYXQIY29uc3RhbnQEFnJlc291cmNlc19uZWVk
ZWRfdGllcl8DaTJzDmFyaXRobWV0aWMuaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3V
wX2xvb3BfdGllcghjb25zdGFudAQBKwhjb25zdGFudAIBAAAACGNvbnN0YW50BAEqCGNvbnN0YW50Aw
AAAAAAABBACGNvbnN0YW50BAEtE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBGR1c3QOZ2xvY
mFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyDmdlbmVyaWMuZ290b2lmCGNvbnN0
YW50AgoAAAARY29tcGFyaXNvbi5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2R1c3R
fdXBfbWlzc2luZwhjb25zdGFudAQBPAhjb25zdGFudAMAAAAAAADwPxNnZW5lcmljLmV4ZWN1dGVzeW
5jCGNvbnN0YW50BBRkdXN0X3VwX3Byb2Nlc3NfbHVtcBNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0Y
W50BBNkdXN0X3VwX3Byb2Nlc3Nfb3JlE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEFWR1c3Rf
dXBfcHJvY2Vzc19pbmdvdBNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BAtkdXN0X3VwX21peA5
nbG9iYWwuaW50LnNldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIOYXJpdGhtZXRpYy5pbnQOZ2
xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbnN0YW50BAErCGNvbnN0Y
W50AgEAAAAOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCBQAAAA5jb21wYXJpc29uLmludA5nbG9iYWwu
aW50LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIIY29uc3RhbnQEATwOZ2xvYmFsLmludC5
nZXQIY29uc3RhbnQEEHRhcmdldF9kdXN0X3RpZXITZ2VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFudA
QQZHVzdF91cF9maW5hbGl6ZQ==
dust_count_resources 10
:global double resources_tier_10
:global double resources_tier_9
:global double resources_tier_8
:global double resources_tier_7
:global double resources_tier_6
:global double resources_tier_5
:global double resources_tier_4
:global double resources_tier_3
:global double resources_tier_2
:global double resources_tier_1

resources_tier_10 = max(0.0,count("ingot",10) + double.max(0.0, count("dust", 10)) + count("ore",10) + (count("lump",9) * 2.0) - 1.0)
resources_tier_9 = max(0.0,count("ingot",9) + double.max(0.0, count("dust", 9)) + count("ore",9) + (count("lump",8) * 2.0) - 1.0)
resources_tier_8 = max(0.0,count("ingot",8) + double.max(0.0, count("dust", 8)) + count("ore",8) + (count("lump",7) * 2.0) - 1.0)
resources_tier_7 = max(0.0,count("ingot",7) + double.max(0.0, count("dust", 7)) + count("ore",7) + (count("lump",6) * 2.0) - 1.0)
resources_tier_6 = max(0.0,count("ingot",6) + double.max(0.0, count("dust", 6)) + count("ore",6) + (count("lump",5) * 2.0) - 1.0)
resources_tier_5 = max(0.0,count("ingot",5) + double.max(0.0, count("dust", 5)) + count("ore",5) + (count("lump",4) * 2.0) - 1.0)
resources_tier_4 = max(0.0,count("ingot",4) + double.max(0.0, count("dust", 4)) + count("ore",4) + (count("lump",3) * 2.0) - 1.0)
resources_tier_3 = max(0.0,count("ingot",3) + double.max(0.0, count("dust", 3)) + count("ore",3) + (count("lump",2) * 2.0) - 1.0)
resources_tier_2 = max(0.0,count("ingot",2) + double.max(0.0, count("dust", 2)) + count("ore",2) + (count("lump",1) * 2.0) - 1.0)
resources_tier_1 = max(0.0,count("ingot",1) + double.max(0.0, count("dust", 1)) + count("ore",1) - 1.0)
FGR1c3RfY291bnRfcmVzb3VyY2VzAAAAAAAAAAAKAAAAEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW5
0BBFyZXNvdXJjZXNfdGllcl8xMApkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aW
MuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91Y
mxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWluZ290CGNvbnN0YW50AgoAAAAIY29uc3Rh
bnQEASsKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN
0YW50BARkdXN0CGNvbnN0YW50AgoAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhjb2
5zdGFudAQDb3JlCGNvbnN0YW50AgoAAAAIY29uc3RhbnQEASsRYXJpdGhtZXRpYy5kb3VibGUTZmFjd
G9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEbHVtcAhjb25zdGFudAIJAAAACGNvbnN0YW50BAEqCGNv
bnN0YW50AwAAAAAAAABACGNvbnN0YW50BAEtCGNvbnN0YW50AwAAAAAAAPA/EWdsb2JhbC5kb3VibGU
uc2V0CGNvbnN0YW50BBByZXNvdXJjZXNfdGllcl85CmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAA
ARYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpd
GhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5nb3QIY29uc3RhbnQC
CQAAAAhjb25zdGFudAQBKwpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAE2ZhY3RvcnkuaXRlbXM
uY291bnQIY29uc3RhbnQEBGR1c3QIY29uc3RhbnQCCQAAAAhjb25zdGFudAQBKxNmYWN0b3J5Lml0ZW
1zLmNvdW50CGNvbnN0YW50BANvcmUIY29uc3RhbnQCCQAAAAhjb25zdGFudAQBKxFhcml0aG1ldGljL
mRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARsdW1wCGNvbnN0YW50AggAAAAIY29u
c3RhbnQEASoIY29uc3RhbnQDAAAAAAAAAEAIY29uc3RhbnQEAS0IY29uc3RhbnQDAAAAAAAA8D8RZ2x
vYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEHJlc291cmNlc190aWVyXzgKZG91YmxlLm1heAhjb25zdG
FudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljL
mRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVpbmdv
dAhjb25zdGFudAIIAAAACGNvbnN0YW50BAErCmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAATZmF
jdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEZHVzdAhjb25zdGFudAIIAAAACGNvbnN0YW50BAErE2
ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEA29yZQhjb25zdGFudAIIAAAACGNvbnN0YW50BAErE
WFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBGx1bXAIY29uc3Rh
bnQCBwAAAAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQBLQhjb25zdGFudAM
AAAAAAADwPxFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFudAQQcmVzb3VyY2VzX3RpZXJfNwpkb3VibG
UubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlE
WFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29u
c3RhbnQEBWluZ290CGNvbnN0YW50AgcAAAAIY29uc3RhbnQEASsKZG91YmxlLm1heAhjb25zdGFudAM
AAAAAAAAAABNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARkdXN0CGNvbnN0YW50AgcAAAAIY2
9uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQDb3JlCGNvbnN0YW50AgcAAAAIY
29uc3RhbnQEASsRYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQE
bHVtcAhjb25zdGFudAIGAAAACGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAAAABACGNvbnN0YW50BAE
tCGNvbnN0YW50AwAAAAAAAPA/EWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBByZXNvdXJjZXNfdG
llcl82CmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAARYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZ
XRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVt
cy5jb3VudAhjb25zdGFudAQFaW5nb3QIY29uc3RhbnQCBgAAAAhjb25zdGFudAQBKwpkb3VibGUubWF
4CGNvbnN0YW50AwAAAAAAAAAAE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBGR1c3QIY29uc3
RhbnQCBgAAAAhjb25zdGFudAQBKxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BANvcmUIY29uc
3RhbnQCBgAAAAhjb25zdGFudAQBKxFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50
CGNvbnN0YW50BARsdW1wCGNvbnN0YW50AgUAAAAIY29uc3RhbnQEASoIY29uc3RhbnQDAAAAAAAAAEA
IY29uc3RhbnQEAS0IY29uc3RhbnQDAAAAAAAA8D8RZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEH
Jlc291cmNlc190aWVyXzUKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvd
WJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRNm
YWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVpbmdvdAhjb25zdGFudAIFAAAACGNvbnN0YW50BAE
rCmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAATZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudA
QEZHVzdAhjb25zdGFudAIFAAAACGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3Rhb
nQEA29yZQhjb25zdGFudAIFAAAACGNvbnN0YW50BAErEWFyaXRobWV0aWMuZG91YmxlE2ZhY3Rvcnku
aXRlbXMuY291bnQIY29uc3RhbnQEBGx1bXAIY29uc3RhbnQCBAAAAAhjb25zdGFudAQBKghjb25zdGF
udAMAAAAAAAAAQAhjb25zdGFudAQBLQhjb25zdGFudAMAAAAAAADwPxFnbG9iYWwuZG91YmxlLnNldA
hjb25zdGFudAQQcmVzb3VyY2VzX3RpZXJfNApkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFya
XRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0
aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWluZ290CGNvbnN0YW50AgQAAAA
IY29uc3RhbnQEASsKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABNmYWN0b3J5Lml0ZW1zLmNvdW
50CGNvbnN0YW50BARkdXN0CGNvbnN0YW50AgQAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb
3VudAhjb25zdGFudAQDb3JlCGNvbnN0YW50AgQAAAAIY29uc3RhbnQEASsRYXJpdGhtZXRpYy5kb3Vi
bGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEbHVtcAhjb25zdGFudAIDAAAACGNvbnN0YW5
0BAEqCGNvbnN0YW50AwAAAAAAAABACGNvbnN0YW50BAEtCGNvbnN0YW50AwAAAAAAAPA/EWdsb2JhbC
5kb3VibGUuc2V0CGNvbnN0YW50BBByZXNvdXJjZXNfdGllcl8zCmRvdWJsZS5tYXgIY29uc3RhbnQDA
AAAAAAAAAARYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3Vi
bGURYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5nb3QIY29
uc3RhbnQCAwAAAAhjb25zdGFudAQBKwpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAE2ZhY3Rvcn
kuaXRlbXMuY291bnQIY29uc3RhbnQEBGR1c3QIY29uc3RhbnQCAwAAAAhjb25zdGFudAQBKxNmYWN0b
3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BANvcmUIY29uc3RhbnQCAwAAAAhjb25zdGFudAQBKxFhcml0
aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARsdW1wCGNvbnN0YW50AgI
AAAAIY29uc3RhbnQEASoIY29uc3RhbnQDAAAAAAAAAEAIY29uc3RhbnQEAS0IY29uc3RhbnQDAAAAAA
AA8D8RZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEHJlc291cmNlc190aWVyXzIKZG91YmxlLm1he
Ahjb25zdGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0
aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW5
0BAVpbmdvdAhjb25zdGFudAICAAAACGNvbnN0YW50BAErCmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAA
AAAAATZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEZHVzdAhjb25zdGFudAICAAAACGNvbnN0Y
W50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEA29yZQhjb25zdGFudAICAAAACGNvbnN0
YW50BAErEWFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBGx1bXA
IY29uc3RhbnQCAQAAAAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQBLQhjb2
5zdGFudAMAAAAAAADwPxFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFudAQQcmVzb3VyY2VzX3RpZXJfM
Qpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMu
ZG91YmxlEWFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWluZ29
0CGNvbnN0YW50AgEAAAAIY29uc3RhbnQEASsKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABNmYW
N0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARkdXN0CGNvbnN0YW50AgEAAAAIY29uc3RhbnQEASsTZ
mFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQDb3JlCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEAS0I
Y29uc3RhbnQDAAAAAAAA8D8=
dust_calc_needed 11
:global double target_dust_count
:global int target_dust_tier
:local int loop_tier

loop_tier = 11
targettier: loop_tier = loop_tier - 1
gotoif(skip, loop_tier > target_dust_tier)
global.double.set("resources_needed_tier_" . i2s(loop_tier), double.max(0.0, target_dust_count - global.double.get("resources_tier_" . i2s(loop_tier))))
goto(continueloop)
smalltiers: global.double.set("resources_needed_tier_" . i2s(loop_tier), double.max(0.0, (global.double.get("resources_needed_tier_" . i2s(loop_tier + 1)) * 4.0) - global.double.get("resources_tier_" . i2s(loop_tier))))
continueloop: loop_tier = loop_tier - 1
gotoif(smalltiers, loop_tier > 0)
goto(99)
skip: global.double.set("resources_needed_tier_" . i2s(loop_tier), 0.0)
goto(targettier)
EGR1c3RfY2FsY19uZWVkZWQAAAAAAAAAAAsAAAANbG9jYWwuaW50LnNldAhjb25zdGFudAQJbG9vcF9
0aWVyCGNvbnN0YW50AgsAAAANbG9jYWwuaW50LnNldAhjb25zdGFudAQJbG9vcF90aWVyDmFyaXRobW
V0aWMuaW50DWxvY2FsLmludC5nZXQIY29uc3RhbnQECWxvb3BfdGllcghjb25zdGFudAQBLQhjb25zd
GFudAIBAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AgoAAAAOY29tcGFyaXNvbi5pbnQNbG9jYWwu
aW50LmdldAhjb25zdGFudAQJbG9vcF90aWVyCGNvbnN0YW50BAE+Dmdsb2JhbC5pbnQuZ2V0CGNvbnN
0YW50BBB0YXJnZXRfZHVzdF90aWVyEWdsb2JhbC5kb3VibGUuc2V0BmNvbmNhdAhjb25zdGFudAQWcm
Vzb3VyY2VzX25lZWRlZF90aWVyXwNpMnMNbG9jYWwuaW50LmdldAhjb25zdGFudAQJbG9vcF90aWVyC
mRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAARYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJs
ZS5nZXQIY29uc3RhbnQEEXRhcmdldF9kdXN0X2NvdW50CGNvbnN0YW50BAEtEWdsb2JhbC5kb3VibGU
uZ2V0BmNvbmNhdAhjb25zdGFudAQPcmVzb3VyY2VzX3RpZXJfA2kycw1sb2NhbC5pbnQuZ2V0CGNvbn
N0YW50BAlsb29wX3RpZXIMZ2VuZXJpYy5nb3RvCGNvbnN0YW50AgcAAAARZ2xvYmFsLmRvdWJsZS5zZ
XQGY29uY2F0CGNvbnN0YW50BBZyZXNvdXJjZXNfbmVlZGVkX3RpZXJfA2kycw1sb2NhbC5pbnQuZ2V0
CGNvbnN0YW50BAlsb29wX3RpZXIKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0aG1ldGl
jLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAZjb25jYXQIY29uc3Rhbn
QEFnJlc291cmNlc19uZWVkZWRfdGllcl8DaTJzDmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZXQIY
29uc3RhbnQECWxvb3BfdGllcghjb25zdGFudAQBKwhjb25zdGFudAIBAAAACGNvbnN0YW50BAEqCGNv
bnN0YW50AwAAAAAAABBACGNvbnN0YW50BAEtEWdsb2JhbC5kb3VibGUuZ2V0BmNvbmNhdAhjb25zdGF
udAQPcmVzb3VyY2VzX3RpZXJfA2kycw1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAlsb29wX3RpZXINbG
9jYWwuaW50LnNldAhjb25zdGFudAQJbG9vcF90aWVyDmFyaXRobWV0aWMuaW50DWxvY2FsLmludC5nZ
XQIY29uc3RhbnQECWxvb3BfdGllcghjb25zdGFudAQBLQhjb25zdGFudAIBAAAADmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AgYAAAAOY29tcGFyaXNvbi5pbnQNbG9jYWwuaW50LmdldAhjb25zdGFudAQJbG9
vcF90aWVyCGNvbnN0YW50BAE+CGNvbnN0YW50AgAAAAAMZ2VuZXJpYy5nb3RvCGNvbnN0YW50AmMAAA
ARZ2xvYmFsLmRvdWJsZS5zZXQGY29uY2F0CGNvbnN0YW50BBZyZXNvdXJjZXNfbmVlZGVkX3RpZXJfA
2kycw1sb2NhbC5pbnQuZ2V0CGNvbnN0YW50BAlsb29wX3RpZXIIY29uc3RhbnQDAAAAAAAAAAAMZ2Vu
ZXJpYy5nb3RvCGNvbnN0YW50AgIAAAA=
dust_up_process_lump 11
:global int dust_up_loop_tier
:global double dust_up_missing
:local double number_lumps
:local double number_lump_used

gotoif(99, dust_up_loop_tier == 1)
number_lumps = count("lump",dust_up_loop_tier - 1)
gotoif(processpartially, number_lumps * 2.0 > dust_up_missing)
waitwhile(active("mixer"))
processall: produce("lump", dust_up_loop_tier - 1, number_lumps, "mixer")
dust_up_missing = dust_up_missing - (number_lumps * 2.0)
goto(99)
processpartially: number_lump_used = ceil(dust_up_missing / 2.0)
waitwhile(active("mixer"))
produce("lump", dust_up_loop_tier - 1, number_lump_used, "mixer")
dust_up_missing = 0.0
FGR1c3RfdXBfcHJvY2Vzc19sdW1wAAAAAAAAAAALAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmM
AAAAOY29tcGFyaXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aW
VyCGNvbnN0YW50BAI9PQhjb25zdGFudAIBAAAAEGxvY2FsLmRvdWJsZS5zZXQIY29uc3RhbnQEDG51b
WJlcl9sdW1wcxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARsdW1wDmFyaXRobWV0aWMuaW50
Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllcghjb25zdGFudAQBLQhjb25
zdGFudAIBAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AggAAAARY29tcGFyaXNvbi5kb3VibGURYX
JpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQMbnVtYmVyX2x1bXBzCGNvb
nN0YW50BAEqCGNvbnN0YW50AwAAAAAAAABACGNvbnN0YW50BAE+EWdsb2JhbC5kb3VibGUuZ2V0CGNv
bnN0YW50BA9kdXN0X3VwX21pc3NpbmcRZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmF
jdGl2ZQhjb25zdGFudAQFbWl4ZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BARsdW1wDmFyaXRobW
V0aWMuaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllcghjb25zdGFud
AQBLQhjb25zdGFudAIBAAAAEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEDG51bWJlcl9sdW1wcwhj
b25zdGFudAQFbWl4ZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZxF
hcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW
5nCGNvbnN0YW50BAEtEWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQED
G51bWJlcl9sdW1wcwhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAxnZW5lcmljLmdvdG8IY29u
c3RhbnQCYwAAABBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BBBudW1iZXJfbHVtcF91c2VkC2RvdWJ
sZS5jZWlsEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9kdXN0X3
VwX21pc3NpbmcIY29uc3RhbnQEAS8IY29uc3RhbnQDAAAAAAAAAEARZ2VuZXJpYy53YWl0d2hpbGUWZ
mFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQFbWl4ZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0
YW50BARsdW1wDmFyaXRobWV0aWMuaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2x
vb3BfdGllcghjb25zdGFudAQBLQhjb25zdGFudAIBAAAAEGxvY2FsLmRvdWJsZS5nZXQIY29uc3Rhbn
QEEG51bWJlcl9sdW1wX3VzZWQIY29uc3RhbnQEBW1peGVyEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0Y
W50BA9kdXN0X3VwX21pc3NpbmcIY29uc3RhbnQDAAAAAAAAAAA=
dust_up_process_ore 10
:global int dust_up_loop_tier
:global double dust_up_missing
:local double number_ore
:local double number_ore_used

number_ore = count("ore",dust_up_loop_tier)
gotoif(processpartially, number_ore > dust_up_missing)
waitwhile(active("crusher"))
processall: produce("ore", dust_up_loop_tier, number_ore, "crusher")
dust_up_missing = dust_up_missing - number_ore
goto(99)
processpartially: number_ore_used = dust_up_missing
waitwhile(active("crusher"))
produce("ore", dust_up_loop_tier, number_ore_used, "crusher")
dust_up_missing = 0.0
E2R1c3RfdXBfcHJvY2Vzc19vcmUAAAAAAAAAAAoAAAAQbG9jYWwuZG91YmxlLnNldAhjb25zdGFudAQ
KbnVtYmVyX29yZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BANvcmUOZ2xvYmFsLmludC5nZX
QIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AgcAAAARY
29tcGFyaXNvbi5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQKbnVtYmVyX29yZQhjb25z
dGFudAQBPhFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW5nEWdlbmVyaWM
ud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQEB2NydXNoZXIPZmFjdG9yeS
5wcm9kdWNlCGNvbnN0YW50BANvcmUOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vc
F90aWVyEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQECm51bWJlcl9vcmUIY29uc3RhbnQEB2NydXNo
ZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZxFhcml0aG1ldGljLmR
vdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW5nCGNvbnN0YW50BA
EtEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQECm51bWJlcl9vcmUMZ2VuZXJpYy5nb3RvCGNvbnN0Y
W50AmMAAAAQbG9jYWwuZG91YmxlLnNldAhjb25zdGFudAQPbnVtYmVyX29yZV91c2VkEWdsb2JhbC5k
b3VibGUuZ2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcRZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9
yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQHY3J1c2hlcg9mYWN0b3J5LnByb2R1Y2UIY29uc3Rhbn
QEA29yZQ5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIQbG9jYWwuZG91Y
mxlLmdldAhjb25zdGFudAQPbnVtYmVyX29yZV91c2VkCGNvbnN0YW50BAdjcnVzaGVyEWdsb2JhbC5k
b3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcIY29uc3RhbnQDAAAAAAAAAAA=
dust_up_process_ingot 10
:global int dust_up_loop_tier
:global double dust_up_missing
:local double number_ingot
:local double number_ingot_used

number_ingot = count("ingot",dust_up_loop_tier)
gotoif(processpartially, number_ingot > dust_up_missing)
waitwhile(active("crusher"))
processall: produce("ingot", dust_up_loop_tier, number_ingot, "crusher")
dust_up_missing = dust_up_missing - number_ingot
goto(99)
processpartially: number_ingot_used = dust_up_missing
waitwhile(active("crusher"))
produce("ingot", dust_up_loop_tier, number_ingot_used, "crusher")
dust_up_missing = 0.0
FWR1c3RfdXBfcHJvY2Vzc19pbmdvdAAAAAAAAAAACgAAABBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW5
0BAxudW1iZXJfaW5nb3QTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5nb3QOZ2xvYmFsLm
ludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50A
gcAAAARY29tcGFyaXNvbi5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQMbnVtYmVyX2lu
Z290CGNvbnN0YW50BAE+EWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3Npbmc
RZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQHY3J1c2hlcg
9mYWN0b3J5LnByb2R1Y2UIY29uc3RhbnQEBWluZ290Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkd
XN0X3VwX2xvb3BfdGllchBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAxudW1iZXJfaW5nb3QIY29u
c3RhbnQEB2NydXNoZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZxF
hcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW
5nCGNvbnN0YW50BAEtEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEDG51bWJlcl9pbmdvdAxnZW5lc
mljLmdvdG8IY29uc3RhbnQCYwAAABBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BBFudW1iZXJfaW5n
b3RfdXNlZBFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW5nEWdlbmVyaWM
ud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQEB2NydXNoZXIPZmFjdG9yeS
5wcm9kdWNlCGNvbnN0YW50BAVpbmdvdA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF91cF9sb
29wX3RpZXIQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQRbnVtYmVyX2luZ290X3VzZWQIY29uc3Rh
bnQEB2NydXNoZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZwhjb25
zdGFudAMAAAAAAAAAAA==
dust_up_mix 9
:global int dust_up_loop_tier
:local double mix_left
:local double mix_now

gotoif(99, dust_up_loop_tier >= 10)
waitwhile(active("mixer"))
mix_left = global.double.get("resources_needed_tier_" . i2s(dust_up_loop_tier + 1))
loop: gotoif(99, mix_left < 1.0)
mix_now = min(mix_left, count("dust", dust_up_loop_tier + 1))
craft("lump", dust_up_loop_tier, mix_now)
produce("lump", dust_up_loop_tier, mix_now, "mixer")
mix_left = mix_left - mix_now
goto(loop)
C2R1c3RfdXBfbWl4AAAAAAAAAAAJAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAAOY29tcGF
yaXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbnN0YW
50BAI+PQhjb25zdGFudAIKAAAAEWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3Rpd
mUIY29uc3RhbnQEBW1peGVyEGxvY2FsLmRvdWJsZS5zZXQIY29uc3RhbnQECG1peF9sZWZ0EWdsb2Jh
bC5kb3VibGUuZ2V0BmNvbmNhdAhjb25zdGFudAQWcmVzb3VyY2VzX25lZWRlZF90aWVyXwNpMnMOYXJ
pdGhtZXRpYy5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbn
N0YW50BAErCGNvbnN0YW50AgEAAAAOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCYwAAABFjb21wYXJpc
29uLmRvdWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAhtaXhfbGVmdAhjb25zdGFudAQBPAhj
b25zdGFudAMAAAAAAADwPxBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAdtaXhfbm93CmRvdWJsZS5
taW4QbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQIbWl4X2xlZnQTZmFjdG9yeS5pdGVtcy5jb3VudA
hjb25zdGFudAQEZHVzdA5hcml0aG1ldGljLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzd
F91cF9sb29wX3RpZXIIY29uc3RhbnQEASsIY29uc3RhbnQCAQAAAA1mYWN0b3J5LmNyYWZ0CGNvbnN0
YW50BARsdW1wDmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllchBsb2NhbC5
kb3VibGUuZ2V0CGNvbnN0YW50BAdtaXhfbm93D2ZhY3RvcnkucHJvZHVjZQhjb25zdGFudAQEbHVtcA
5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIQbG9jYWwuZG91YmxlLmdld
Ahjb25zdGFudAQHbWl4X25vdwhjb25zdGFudAQFbWl4ZXIQbG9jYWwuZG91YmxlLnNldAhjb25zdGFu
dAQIbWl4X2xlZnQRYXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQIbWl
4X2xlZnQIY29uc3RhbnQEAS0QbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQHbWl4X25vdwxnZW5lcm
ljLmdvdG8IY29uc3RhbnQCBAAAAA==
dust_up_finalize 5
:global int target_dust_tier
:global double target_dust_count
:global int dust_up_loop_tier
:global double dust_up_missing

gotoif(99, dust_up_loop_tier != target_dust_tier)
dust_up_missing = max(0.0, global.double.get("resources_needed_tier_" . i2s(dust_up_loop_tier)) - count("dust", dust_up_loop_tier) - count("ingot", dust_up_loop_tier))
gotoif(99, dust_up_missing < 1.0)
executesync("dust_up_process_lump")
executesync("dust_up_process_ore")
EGR1c3RfdXBfZmluYWxpemUAAAAAAAAAAAUAAAAOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCYwAAAA5
jb21wYXJpc29uLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIIY2
9uc3RhbnQEAiE9Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBB0YXJnZXRfZHVzdF90aWVyEWdsb2Jhb
C5kb3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcKZG91YmxlLm1heAhjb25zdGFudAMA
AAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmd
ldAZjb25jYXQIY29uc3RhbnQEFnJlc291cmNlc19uZWVkZWRfdGllcl8DaTJzDmdsb2JhbC5pbnQuZ2
V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllcghjb25zdGFudAQBLRNmYWN0b3J5Lml0ZW1zLmNvd
W50CGNvbnN0YW50BARkdXN0Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGll
cghjb25zdGFudAQBLRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVpbmdvdA5nbG9iYWwuaW5
0LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCYw
AAABFjb21wYXJpc29uLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9ta
XNzaW5nCGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/E2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29u
c3RhbnQEFGR1c3RfdXBfcHJvY2Vzc19sdW1wE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEE2R
1c3RfdXBfcHJvY2Vzc19vcmU=

Examples of integrating the Dust Up scripts


Name Impulses Conditions Lines Code
Troylaurin's crafting scripts:

"craft ingot"

as of 2021-01-19

13
:global double craft_require_count
:global int craft_require_tier
:global int craft_status
:global double resources_needed_tier_1
:global int target_dust_tier
:global double target_dust_count

gotoif(99, (((global.int.get("craft_tier:ingot") < 1) | (global.int.get("craft_tier:ingot") > 10)) | (global.double.get("craft_count:ingot") <= 0.0)) | (craft_status > 199))

gotoif(99, global.double.get("craft_count:ingot") <= count("ingot", global.int.get("craft_tier:ingot")))

target_dust_tier = global.int.get("craft_tier:ingot")
target_dust_count = global.double.get("craft_count:ingot")
executesync("dust_up_integrated")
gotoif(bad, resources_needed_tier_1 > 0.0)

waitwhile(active("oven"))
produce("dust", global.int.get("craft_tier:ingot"), ceil(global.double.get("craft_count:ingot") - count("ingot", global.int.get("craft_tier:ingot"))), "oven")
waituntil(count("ingot", global.int.get("craft_tier:ingot")) >= global.double.get("craft_count:ingot"))
goto(99)
bad: craft_require_tier = global.int.get("craft_tier:ingot")
craft_require_count = global.double.get("craft_count:ingot")
craft_status = 412
C2NyYWZ0IGluZ290AAAAAAAAAAANAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAAPY29tcGF
yaXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA9jb21wYXJpc29uLmJvb2wOY29tcGFyaXNvbi5pbnQOZ2
xvYmFsLmludC5nZXQIY29uc3RhbnQEEGNyYWZ0X3RpZXI6aW5nb3QIY29uc3RhbnQEATwIY29uc3Rhb
nQCAQAAAAhjb25zdGFudAQBfA5jb21wYXJpc29uLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQ
Y3JhZnRfdGllcjppbmdvdAhjb25zdGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXB
hcmlzb24uZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBFjcmFmdF9jb3VudDppbmdvdA
hjb25zdGFudAQCPD0IY29uc3RhbnQDAAAAAAAAAAAIY29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQOZ
2xvYmFsLmludC5nZXQIY29uc3RhbnQEDGNyYWZ0X3N0YXR1cwhjb25zdGFudAQBPghjb25zdGFudALH
AAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAARY29tcGFyaXNvbi5kb3VibGURZ2xvYmFsLmR
vdWJsZS5nZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW50OmluZ290CGNvbnN0YW50BAI8PRNmYWN0b3J5Lm
l0ZW1zLmNvdW50CGNvbnN0YW50BAVpbmdvdA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRfd
GllcjppbmdvdA5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQdGFyZ2V0X2R1c3RfdGllcg5nbG9iYWwu
aW50LmdldAhjb25zdGFudAQQY3JhZnRfdGllcjppbmdvdBFnbG9iYWwuZG91YmxlLnNldAhjb25zdGF
udAQRdGFyZ2V0X2R1c3RfY291bnQRZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW
50OmluZ290E2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEEmR1c3RfdXBfaW50ZWdyYXRlZA5nZ
W5lcmljLmdvdG9pZghjb25zdGFudAILAAAAEWNvbXBhcmlzb24uZG91YmxlEWdsb2JhbC5kb3VibGUu
Z2V0CGNvbnN0YW50BBdyZXNvdXJjZXNfbmVlZGVkX3RpZXJfMQhjb25zdGFudAQBPghjb25zdGFudAM
AAAAAAAAAABFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BA
RvdmVuD2ZhY3RvcnkucHJvZHVjZQhjb25zdGFudAQEZHVzdA5nbG9iYWwuaW50LmdldAhjb25zdGFud
AQQY3JhZnRfdGllcjppbmdvdAtkb3VibGUuY2VpbBFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91
YmxlLmdldAhjb25zdGFudAQRY3JhZnRfY291bnQ6aW5nb3QIY29uc3RhbnQEAS0TZmFjdG9yeS5pdGV
tcy5jb3VudAhjb25zdGFudAQFaW5nb3QOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEGNyYWZ0X3RpZX
I6aW5nb3QIY29uc3RhbnQEBG92ZW4RZ2VuZXJpYy53YWl0dW50aWwRY29tcGFyaXNvbi5kb3VibGUTZ
mFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5nb3QOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQE
EGNyYWZ0X3RpZXI6aW5nb3QIY29uc3RhbnQEAj49EWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBF
jcmFmdF9jb3VudDppbmdvdAxnZW5lcmljLmdvdG8IY29uc3RhbnQCYwAAAA5nbG9iYWwuaW50LnNldA
hjb25zdGFudAQSY3JhZnRfcmVxdWlyZV90aWVyDmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBBjcmFmd
F90aWVyOmluZ290EWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBNjcmFmdF9yZXF1aXJlX2NvdW50
EWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBFjcmFmdF9jb3VudDppbmdvdA5nbG9iYWwuaW50LnN
ldAhjb25zdGFudAQMY3JhZnRfc3RhdHVzCGNvbnN0YW50ApwBAAA=