User:Akerus

From The Perfect Tower II
Jump to navigation Jump to search

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);
    });
})();

Summary

These scripts will upgrade your dusts to your specified tier and number of that tier. It will process ores, lums and (if set so) ingots. It will make sure that you've got enough resources to even reach your goal and will leave you with at least 1 resource of each tier, so that you never run out of a tier.

To use it, you have to set the global variables "target_dust_tier", "target_dust_count" and "dust_up_use_ingots" to your need. Either you set it in the "dust_up" script, tu run it manually or you set those values in one of your scripts and execute "dust_up_integrated".

Dust Up Scripts

Script Impulses Conditions Lines Source
dust_up
  • key 1
  • factory screen open
4
:global int target_dust_tier
:global double target_dust_count
:global double dust_up_use_ingots

key.1()

isopen("factory")

target_dust_tier = 8
target_dust_count = 350.0
dust_up_use_ingots = 1.0
executesync("dust_up_integrated")
B2R1c3RfdXABAAAABWtleS4xAQAAABJ0b3duLndpbmRvdy5pc29wZW4IY29uc3RhbnQEB2ZhY3RvcnkE
AAAADmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBB0YXJnZXRfZHVzdF90aWVyCGNvbnN0YW50AggAAAAR
Z2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEXRhcmdldF9kdXN0X2NvdW50CGNvbnN0YW50AwAAAAAA
4HVAEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBJkdXN0X3VwX3VzZV9pbmdvdHMIY29uc3RhbnQD
AAAAAAAA8D8TZ2VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFudAQSZHVzdF91cF9pbnRlZ3JhdGVk
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

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")
EmR1c3RfdXBfaW50ZWdyYXRlZAAAAAAAAAAADQAAABNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50
BBRkdXN0X2NvdW50X3Jlc291cmNlcxNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BBBkdXN0X2Nh
bGNfbmVlZGVkDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAARY29tcGFyaXNvbi5kb3VibGURZ2xv
YmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEF3Jlc291cmNlc19uZWVkZWRfdGllcl8xCGNvbnN0YW50BAE+
CGNvbnN0YW50AwAAAAAAAAAADmdsb2JhbC5pbnQuc2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGll
cghjb25zdGFudAIBAAAAEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcK
ZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRv
dWJsZRFnbG9iYWwuZG91YmxlLmdldAZjb25jYXQIY29uc3RhbnQEFnJlc291cmNlc19uZWVkZWRfdGll
cl8DaTJzDmFyaXRobWV0aWMuaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3Bf
dGllcghjb25zdGFudAQBKwhjb25zdGFudAIBAAAACGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAAABBA
CGNvbnN0YW50BAEtE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBGR1c3QOZ2xvYmFsLmludC5n
ZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AgoAAAAR
Y29tcGFyaXNvbi5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2lu
Zwhjb25zdGFudAQBPAhjb25zdGFudAMAAAAAAADwPxNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50
BBRkdXN0X3VwX3Byb2Nlc3NfbHVtcBNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BBNkdXN0X3Vw
X3Byb2Nlc3Nfb3JlE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29uc3RhbnQEFWR1c3RfdXBfcHJvY2Vzc19p
bmdvdBNnZW5lcmljLmV4ZWN1dGVzeW5jCGNvbnN0YW50BAtkdXN0X3VwX21peA5nbG9iYWwuaW50LnNl
dAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIOYXJpdGhtZXRpYy5pbnQOZ2xvYmFsLmludC5nZXQI
Y29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbnN0YW50BAErCGNvbnN0YW50AgEAAAAOZ2VuZXJp
Yy5nb3RvaWYIY29uc3RhbnQCBQAAAA5jb21wYXJpc29uLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFu
dAQRZHVzdF91cF9sb29wX3RpZXIIY29uc3RhbnQEATwOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEHRh
cmdldF9kdXN0X3RpZXITZ2VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFudAQQZHVzdF91cF9maW5hbGl6
ZQ==
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
:global double dust_up_use_ingots

resources_tier_10 = max(0.0,(dust_up_use_ingots * count("ingot",10)) + count("dust", 10) + count("ore",10) + (count("lump",9) * 2.0) - 1.0)
resources_tier_9 = max(0.0,(dust_up_use_ingots * count("ingot",9)) + count("dust", 9) + count("ore",9) + (count("lump",8) * 2.0) - 1.0)
resources_tier_8 = max(0.0,(dust_up_use_ingots * count("ingot",8)) + count("dust", 8) + count("ore",8) + (count("lump",7) * 2.0) - 1.0)
resources_tier_7 = max(0.0,(dust_up_use_ingots * count("ingot",7)) + count("dust", 7) + count("ore",7) + (count("lump",6) * 2.0) - 1.0)
resources_tier_6 = max(0.0,(dust_up_use_ingots * count("ingot",6)) + count("dust", 6) + count("ore",6) + (count("lump",5) * 2.0) - 1.0)
resources_tier_5 = max(0.0,(dust_up_use_ingots * count("ingot",5)) + count("dust", 5) + count("ore",5) + (count("lump",4) * 2.0) - 1.0)
resources_tier_4 = max(0.0,(dust_up_use_ingots * count("ingot",4)) + count("dust", 4) + count("ore",4) + (count("lump",3) * 2.0) - 1.0)
resources_tier_3 = max(0.0,(dust_up_use_ingots * count("ingot",3)) + count("dust", 3) + count("ore",3) + (count("lump",2) * 2.0) - 1.0)
resources_tier_2 = max(0.0,(dust_up_use_ingots * count("ingot",2)) + count("dust", 2) + count("ore",2) + (count("lump",1) * 2.0) - 1.0)
resources_tier_1 = max(0.0,(dust_up_use_ingots * count("ingot",1)) + count("dust", 1) + count("ore",1) - 1.0)
FGR1c3RfY291bnRfcmVzb3VyY2VzAAAAAAAAAAAKAAAAEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50
BBFyZXNvdXJjZXNfdGllcl8xMApkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMu
ZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91Ymxl
EWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBJkdXN0X3VwX3VzZV9p
bmdvdHMIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5nb3QIY29uc3Rh
bnQCCgAAAAhjb25zdGFudAQBKxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARkdXN0CGNvbnN0
YW50AgoAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQDb3JlCGNvbnN0
YW50AgoAAAAIY29uc3RhbnQEASsRYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhj
b25zdGFudAQEbHVtcAhjb25zdGFudAIJAAAACGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAAAABACGNv
bnN0YW50BAEtCGNvbnN0YW50AwAAAAAAAPA/EWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBByZXNv
dXJjZXNfdGllcl85CmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAARYXJpdGhtZXRpYy5kb3VibGUR
YXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGht
ZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEEmR1c3RfdXBfdXNlX2luZ290cwhj
b25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVpbmdvdAhjb25zdGFudAIJAAAA
CGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBGR1c3QIY29uc3RhbnQCCQAA
AAhjb25zdGFudAQBKxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BANvcmUIY29uc3RhbnQCCQAA
AAhjb25zdGFudAQBKxFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50
BARsdW1wCGNvbnN0YW50AggAAAAIY29uc3RhbnQEASoIY29uc3RhbnQDAAAAAAAAAEAIY29uc3RhbnQE
AS0IY29uc3RhbnQDAAAAAAAA8D8RZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEHJlc291cmNlc190
aWVyXzgKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1l
dGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRv
dWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQSZHVzdF91cF91c2VfaW5nb3RzCGNvbnN0YW50
BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWluZ290CGNvbnN0YW50AggAAAAIY29uc3Rh
bnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEZHVzdAhjb25zdGFudAIIAAAACGNvbnN0
YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEA29yZQhjb25zdGFudAIIAAAACGNvbnN0
YW50BAErEWFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBGx1bXAI
Y29uc3RhbnQCBwAAAAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQBLQhjb25z
dGFudAMAAAAAAADwPxFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFudAQQcmVzb3VyY2VzX3RpZXJfNwpk
b3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91
YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWds
b2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBJkdXN0X3VwX3VzZV9pbmdvdHMIY29uc3RhbnQEASoTZmFj
dG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5nb3QIY29uc3RhbnQCBwAAAAhjb25zdGFudAQBKxNm
YWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARkdXN0CGNvbnN0YW50AgcAAAAIY29uc3RhbnQEASsT
ZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQDb3JlCGNvbnN0YW50AgcAAAAIY29uc3RhbnQEASsR
YXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEbHVtcAhjb25zdGFu
dAIGAAAACGNvbnN0YW50BAEqCGNvbnN0YW50AwAAAAAAAABACGNvbnN0YW50BAEtCGNvbnN0YW50AwAA
AAAAAPA/EWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBByZXNvdXJjZXNfdGllcl82CmRvdWJsZS5t
YXgIY29uc3RhbnQDAAAAAAAAAAARYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJp
dGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRv
dWJsZS5nZXQIY29uc3RhbnQEEmR1c3RfdXBfdXNlX2luZ290cwhjb25zdGFudAQBKhNmYWN0b3J5Lml0
ZW1zLmNvdW50CGNvbnN0YW50BAVpbmdvdAhjb25zdGFudAIGAAAACGNvbnN0YW50BAErE2ZhY3Rvcnku
aXRlbXMuY291bnQIY29uc3RhbnQEBGR1c3QIY29uc3RhbnQCBgAAAAhjb25zdGFudAQBKxNmYWN0b3J5
Lml0ZW1zLmNvdW50CGNvbnN0YW50BANvcmUIY29uc3RhbnQCBgAAAAhjb25zdGFudAQBKxFhcml0aG1l
dGljLmRvdWJsZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARsdW1wCGNvbnN0YW50AgUAAAAI
Y29uc3RhbnQEASoIY29uc3RhbnQDAAAAAAAAAEAIY29uc3RhbnQEAS0IY29uc3RhbnQDAAAAAAAA8D8R
Z2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEEHJlc291cmNlc190aWVyXzUKZG91YmxlLm1heAhjb25z
dGFudAMAAAAAAAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGlj
LmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdl
dAhjb25zdGFudAQSZHVzdF91cF91c2VfaW5nb3RzCGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291
bnQIY29uc3RhbnQEBWluZ290CGNvbnN0YW50AgUAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5j
b3VudAhjb25zdGFudAQEZHVzdAhjb25zdGFudAIFAAAACGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMu
Y291bnQIY29uc3RhbnQEA29yZQhjb25zdGFudAIFAAAACGNvbnN0YW50BAErEWFyaXRobWV0aWMuZG91
YmxlE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBGx1bXAIY29uc3RhbnQCBAAAAAhjb25zdGFu
dAQBKghjb25zdGFudAMAAAAAAAAAQAhjb25zdGFudAQBLQhjb25zdGFudAMAAAAAAADwPxFnbG9iYWwu
ZG91YmxlLnNldAhjb25zdGFudAQQcmVzb3VyY2VzX3RpZXJfNApkb3VibGUubWF4CGNvbnN0YW50AwAA
AAAAAAAAEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91Ymxl
EWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0
YW50BBJkdXN0X3VwX3VzZV9pbmdvdHMIY29uc3RhbnQEASoTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25z
dGFudAQFaW5nb3QIY29uc3RhbnQCBAAAAAhjb25zdGFudAQBKxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNv
bnN0YW50BARkdXN0CGNvbnN0YW50AgQAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhj
b25zdGFudAQDb3JlCGNvbnN0YW50AgQAAAAIY29uc3RhbnQEASsRYXJpdGhtZXRpYy5kb3VibGUTZmFj
dG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEbHVtcAhjb25zdGFudAIDAAAACGNvbnN0YW50BAEqCGNv
bnN0YW50AwAAAAAAAABACGNvbnN0YW50BAEtCGNvbnN0YW50AwAAAAAAAPA/EWdsb2JhbC5kb3VibGUu
c2V0CGNvbnN0YW50BBByZXNvdXJjZXNfdGllcl8zCmRvdWJsZS5tYXgIY29uc3RhbnQDAAAAAAAAAAAR
YXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURYXJpdGht
ZXRpYy5kb3VibGURYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEEmR1
c3RfdXBfdXNlX2luZ290cwhjb25zdGFudAQBKhNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BAVp
bmdvdAhjb25zdGFudAIDAAAACGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQE
BGR1c3QIY29uc3RhbnQCAwAAAAhjb25zdGFudAQBKxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50
BANvcmUIY29uc3RhbnQCAwAAAAhjb25zdGFudAQBKxFhcml0aG1ldGljLmRvdWJsZRNmYWN0b3J5Lml0
ZW1zLmNvdW50CGNvbnN0YW50BARsdW1wCGNvbnN0YW50AgIAAAAIY29uc3RhbnQEASoIY29uc3RhbnQD
AAAAAAAAAEAIY29uc3RhbnQEAS0IY29uc3RhbnQDAAAAAAAA8D8RZ2xvYmFsLmRvdWJsZS5zZXQIY29u
c3RhbnQEEHJlc291cmNlc190aWVyXzIKZG91YmxlLm1heAhjb25zdGFudAMAAAAAAAAAABFhcml0aG1l
dGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRv
dWJsZRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQSZHVzdF91cF91
c2VfaW5nb3RzCGNvbnN0YW50BAEqE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWluZ290CGNv
bnN0YW50AgIAAAAIY29uc3RhbnQEASsTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQEZHVzdAhj
b25zdGFudAICAAAACGNvbnN0YW50BAErE2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEA29yZQhj
b25zdGFudAICAAAACGNvbnN0YW50BAErEWFyaXRobWV0aWMuZG91YmxlE2ZhY3RvcnkuaXRlbXMuY291
bnQIY29uc3RhbnQEBGx1bXAIY29uc3RhbnQCAQAAAAhjb25zdGFudAQBKghjb25zdGFudAMAAAAAAAAA
QAhjb25zdGFudAQBLQhjb25zdGFudAMAAAAAAADwPxFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFudAQQ
cmVzb3VyY2VzX3RpZXJfMQpkb3VibGUubWF4CGNvbnN0YW50AwAAAAAAAAAAEWFyaXRobWV0aWMuZG91
YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWFyaXRobWV0aWMuZG91YmxlEWds
b2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBJkdXN0X3VwX3VzZV9pbmdvdHMIY29uc3RhbnQEASoTZmFj
dG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5nb3QIY29uc3RhbnQCAQAAAAhjb25zdGFudAQBKxNm
YWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARkdXN0CGNvbnN0YW50AgEAAAAIY29uc3RhbnQEASsT
ZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQDb3JlCGNvbnN0YW50AgEAAAAIY29uc3RhbnQEAS0I
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 13
; Process lumps into dust
: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)
gotoif(99, number_lumps < 1.0)
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(end)
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
end: waitwhile(active("mixer"))
FGR1c3RfdXBfcHJvY2Vzc19sdW1wAAAAAAAAAAANAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMA
AAAOY29tcGFyaXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVy
CGNvbnN0YW50BAI9PQhjb25zdGFudAIBAAAAEGxvY2FsLmRvdWJsZS5zZXQIY29uc3RhbnQEDG51bWJl
cl9sdW1wcxNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BARsdW1wDmFyaXRobWV0aWMuaW50Dmds
b2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllcghjb25zdGFudAQBLQhjb25zdGFu
dAIBAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AgkAAAARY29tcGFyaXNvbi5kb3VibGURYXJpdGht
ZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQMbnVtYmVyX2x1bXBzCGNvbnN0YW50
BAEqCGNvbnN0YW50AwAAAAAAAABACGNvbnN0YW50BAE+EWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50
BA9kdXN0X3VwX21pc3NpbmcOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCYwAAABFjb21wYXJpc29uLmRv
dWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAxudW1iZXJfbHVtcHMIY29uc3RhbnQEATwIY29u
c3RhbnQDAAAAAAAA8D8RZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25z
dGFudAQFbWl4ZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BARsdW1wDmFyaXRobWV0aWMuaW50Dmds
b2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllcghjb25zdGFudAQBLQhjb25zdGFu
dAIBAAAAEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEDG51bWJlcl9sdW1wcwhjb25zdGFudAQFbWl4
ZXIRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZxFhcml0aG1ldGljLmRv
dWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW5nCGNvbnN0YW50BAEt
EWFyaXRobWV0aWMuZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEDG51bWJlcl9sdW1wcwhj
b25zdGFudAQBKghjb25zdGFudAMAAAAAAAAAQAxnZW5lcmljLmdvdG8IY29uc3RhbnQCDQAAABBsb2Nh
bC5kb3VibGUuc2V0CGNvbnN0YW50BBBudW1iZXJfbHVtcF91c2VkC2RvdWJsZS5jZWlsEWFyaXRobWV0
aWMuZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcIY29uc3Rh
bnQEAS8IY29uc3RhbnQDAAAAAAAAAEARZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFj
dGl2ZQhjb25zdGFudAQFbWl4ZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BARsdW1wDmFyaXRobWV0
aWMuaW50Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllcghjb25zdGFudAQB
LQhjb25zdGFudAIBAAAAEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEEG51bWJlcl9sdW1wX3VzZWQI
Y29uc3RhbnQEBW1peGVyEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcI
Y29uc3RhbnQDAAAAAAAAAAARZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhj
b25zdGFudAQFbWl4ZXI=
dust_up_process_ore 12
; Process ore into dust
: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)
gotoif(99, number_ore < 1.0)
waitwhile(active("crusher"))
processall: produce("ore", dust_up_loop_tier, number_ore, "crusher")
dust_up_missing = dust_up_missing - number_ore
goto(end)
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
end: waitwhile(active("crusher"))
E2R1c3RfdXBfcHJvY2Vzc19vcmUAAAAAAAAAAAwAAAAQbG9jYWwuZG91YmxlLnNldAhjb25zdGFudAQK
bnVtYmVyX29yZRNmYWN0b3J5Lml0ZW1zLmNvdW50CGNvbnN0YW50BANvcmUOZ2xvYmFsLmludC5nZXQI
Y29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AggAAAARY29t
cGFyaXNvbi5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQKbnVtYmVyX29yZQhjb25zdGFu
dAQBPhFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW5nDmdlbmVyaWMuZ290
b2lmCGNvbnN0YW50AmMAAAARY29tcGFyaXNvbi5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFu
dAQKbnVtYmVyX29yZQhjb25zdGFudAQBPAhjb25zdGFudAMAAAAAAADwPxFnZW5lcmljLndhaXR3aGls
ZRZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BAdjcnVzaGVyD2ZhY3RvcnkucHJvZHVjZQhj
b25zdGFudAQDb3JlDmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllchBsb2Nh
bC5kb3VibGUuZ2V0CGNvbnN0YW50BApudW1iZXJfb3JlCGNvbnN0YW50BAdjcnVzaGVyEWdsb2JhbC5k
b3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcRYXJpdGhtZXRpYy5kb3VibGURZ2xvYmFs
LmRvdWJsZS5nZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZwhjb25zdGFudAQBLRBsb2NhbC5kb3Vi
bGUuZ2V0CGNvbnN0YW50BApudW1iZXJfb3JlDGdlbmVyaWMuZ290bwhjb25zdGFudAIMAAAAEGxvY2Fs
LmRvdWJsZS5zZXQIY29uc3RhbnQED251bWJlcl9vcmVfdXNlZBFnbG9iYWwuZG91YmxlLmdldAhjb25z
dGFudAQPZHVzdF91cF9taXNzaW5nEWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3Rp
dmUIY29uc3RhbnQEB2NydXNoZXIPZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BANvcmUOZ2xvYmFsLmlu
dC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQE
D251bWJlcl9vcmVfdXNlZAhjb25zdGFudAQHY3J1c2hlchFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFu
dAQPZHVzdF91cF9taXNzaW5nCGNvbnN0YW50AwAAAAAAAAAAEWdlbmVyaWMud2FpdHdoaWxlFmZhY3Rv
cnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQEB2NydXNoZXI=
dust_up_process_ingot 13
; Process ingots into dust
:global int dust_up_loop_tier
:global double dust_up_missing
:local double number_ingot
:local double number_ingot_used
:global double dust_up_use_ingots

gotoif(99, dust_up_use_ingots < 1.0)
number_ingot = count("ingot",dust_up_loop_tier)
gotoif(processpartially, number_ingot > dust_up_missing)
gotoif(99, number_ingot < 1.0)
waitwhile(active("crusher"))
processall: produce("ingot", dust_up_loop_tier, number_ingot, "crusher")
dust_up_missing = dust_up_missing - number_ingot
goto(end)
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
end: waitwhile(active("crusher"))
FWR1c3RfdXBfcHJvY2Vzc19pbmdvdAAAAAAAAAAADQAAAA5nZW5lcmljLmdvdG9pZghjb25zdGFudAJj
AAAAEWNvbXBhcmlzb24uZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBJkdXN0X3VwX3Vz
ZV9pbmdvdHMIY29uc3RhbnQEATwIY29uc3RhbnQDAAAAAAAA8D8QbG9jYWwuZG91YmxlLnNldAhjb25z
dGFudAQMbnVtYmVyX2luZ290E2ZhY3RvcnkuaXRlbXMuY291bnQIY29uc3RhbnQEBWluZ290Dmdsb2Jh
bC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllcg5nZW5lcmljLmdvdG9pZghjb25zdGFu
dAIJAAAAEWNvbXBhcmlzb24uZG91YmxlEGxvY2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEDG51bWJlcl9p
bmdvdAhjb25zdGFudAQBPhFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQPZHVzdF91cF9taXNzaW5n
DmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAARY29tcGFyaXNvbi5kb3VibGUQbG9jYWwuZG91Ymxl
LmdldAhjb25zdGFudAQMbnVtYmVyX2luZ290CGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/EWdl
bmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3RhbnQEB2NydXNoZXIPZmFj
dG9yeS5wcm9kdWNlCGNvbnN0YW50BAVpbmdvdA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF91
cF9sb29wX3RpZXIQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQMbnVtYmVyX2luZ290CGNvbnN0YW50
BAdjcnVzaGVyEWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcRYXJpdGht
ZXRpYy5kb3VibGURZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZwhjb25z
dGFudAQBLRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAxudW1iZXJfaW5nb3QMZ2VuZXJpYy5nb3Rv
CGNvbnN0YW50Ag0AAAAQbG9jYWwuZG91YmxlLnNldAhjb25zdGFudAQRbnVtYmVyX2luZ290X3VzZWQR
Z2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQED2R1c3RfdXBfbWlzc2luZxFnZW5lcmljLndhaXR3aGls
ZRZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BAdjcnVzaGVyD2ZhY3RvcnkucHJvZHVjZQhj
b25zdGFudAQFaW5nb3QOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyEGxv
Y2FsLmRvdWJsZS5nZXQIY29uc3RhbnQEEW51bWJlcl9pbmdvdF91c2VkCGNvbnN0YW50BAdjcnVzaGVy
EWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcIY29uc3RhbnQDAAAAAAAA
AAARZ2VuZXJpYy53YWl0d2hpbGUWZmFjdG9yeS5tYWNoaW5lLmFjdGl2ZQhjb25zdGFudAQHY3J1c2hl
cg==
dust_up_mix 10
: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(finish, 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)
finish: waitwhile(active("mixer"))
C2R1c3RfdXBfbWl4AAAAAAAAAAAKAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAAOY29tcGFy
aXNvbi5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbnN0YW50
BAI+PQhjb25zdGFudAIKAAAAEWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUI
Y29uc3RhbnQEBW1peGVyEGxvY2FsLmRvdWJsZS5zZXQIY29uc3RhbnQECG1peF9sZWZ0EWdsb2JhbC5k
b3VibGUuZ2V0BmNvbmNhdAhjb25zdGFudAQWcmVzb3VyY2VzX25lZWRlZF90aWVyXwNpMnMOYXJpdGht
ZXRpYy5pbnQOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbnN0YW50
BAErCGNvbnN0YW50AgEAAAAOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCCgAAABFjb21wYXJpc29uLmRv
dWJsZRBsb2NhbC5kb3VibGUuZ2V0CGNvbnN0YW50BAhtaXhfbGVmdAhjb25zdGFudAQBPAhjb25zdGFu
dAMAAAAAAADwPxBsb2NhbC5kb3VibGUuc2V0CGNvbnN0YW50BAdtaXhfbm93CmRvdWJsZS5taW4QbG9j
YWwuZG91YmxlLmdldAhjb25zdGFudAQIbWl4X2xlZnQTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFu
dAQEZHVzdA5hcml0aG1ldGljLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29w
X3RpZXIIY29uc3RhbnQEASsIY29uc3RhbnQCAQAAAA1mYWN0b3J5LmNyYWZ0CGNvbnN0YW50BARsdW1w
Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBFkdXN0X3VwX2xvb3BfdGllchBsb2NhbC5kb3VibGUuZ2V0
CGNvbnN0YW50BAdtaXhfbm93D2ZhY3RvcnkucHJvZHVjZQhjb25zdGFudAQEbHVtcA5nbG9iYWwuaW50
LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQH
bWl4X25vdwhjb25zdGFudAQFbWl4ZXIQbG9jYWwuZG91YmxlLnNldAhjb25zdGFudAQIbWl4X2xlZnQR
YXJpdGhtZXRpYy5kb3VibGUQbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQIbWl4X2xlZnQIY29uc3Rh
bnQEAS0QbG9jYWwuZG91YmxlLmdldAhjb25zdGFudAQHbWl4X25vdwxnZW5lcmljLmdvdG8IY29uc3Rh
bnQCBAAAABFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5Lm1hY2hpbmUuYWN0aXZlCGNvbnN0YW50BAVt
aXhlcg==
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
:global double dust_up_use_ingots

gotoif(99, dust_up_loop_tier != target_dust_tier)
dust_up_missing = max(0.0, target_dust_count - count("dust", dust_up_loop_tier) - (count("ingot", dust_up_loop_tier) * dust_up_use_ingots))
gotoif(99, dust_up_missing < 1.0)
executesync("dust_up_process_lump")
executesync("dust_up_process_ore")
EGR1c3RfdXBfZmluYWxpemUAAAAAAAAAAAUAAAAOZ2VuZXJpYy5nb3RvaWYIY29uc3RhbnQCYwAAAA5j
b21wYXJpc29uLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIIY29u
c3RhbnQEAiE9Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0YW50BBB0YXJnZXRfZHVzdF90aWVyEWdsb2JhbC5k
b3VibGUuc2V0CGNvbnN0YW50BA9kdXN0X3VwX21pc3NpbmcKZG91YmxlLm1heAhjb25zdGFudAMAAAAA
AAAAABFhcml0aG1ldGljLmRvdWJsZRFhcml0aG1ldGljLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhj
b25zdGFudAQRdGFyZ2V0X2R1c3RfY291bnQIY29uc3RhbnQEAS0TZmFjdG9yeS5pdGVtcy5jb3VudAhj
b25zdGFudAQEZHVzdA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQRZHVzdF91cF9sb29wX3RpZXIIY29u
c3RhbnQEAS0RYXJpdGhtZXRpYy5kb3VibGUTZmFjdG9yeS5pdGVtcy5jb3VudAhjb25zdGFudAQFaW5n
b3QOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEWR1c3RfdXBfbG9vcF90aWVyCGNvbnN0YW50BAEqEWds
b2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBJkdXN0X3VwX3VzZV9pbmdvdHMOZ2VuZXJpYy5nb3RvaWYI
Y29uc3RhbnQCYwAAABFjb21wYXJpc29uLmRvdWJsZRFnbG9iYWwuZG91YmxlLmdldAhjb25zdGFudAQP
ZHVzdF91cF9taXNzaW5nCGNvbnN0YW50BAE8CGNvbnN0YW50AwAAAAAAAPA/E2dlbmVyaWMuZXhlY3V0
ZXN5bmMIY29uc3RhbnQEFGR1c3RfdXBfcHJvY2Vzc19sdW1wE2dlbmVyaWMuZXhlY3V0ZXN5bmMIY29u
c3RhbnQEE2R1c3RfdXBfcHJvY2Vzc19vcmU=

Examples of integrating the Dust Up scripts


Name Impulses Conditions Lines Code
Troylaurin's crafting scripts:

"craft ingot"

as of 2021-01-19

14
: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
:global double dust_up_use_ingots

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 = ceil(global.double.get("craft_count:ingot"))
dust_up_use_ingots = 0.0
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")
waitwhile(active("oven"))
goto(99)
bad: craft_require_tier = global.int.get("craft_tier:ingot")
craft_require_count = global.double.get("craft_count:ingot")
craft_status = 412
C2NyYWZ0IGluZ290AAAAAAAAAAAOAAAADmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAAPY29tcGFy
aXNvbi5ib29sD2NvbXBhcmlzb24uYm9vbA9jb21wYXJpc29uLmJvb2wOY29tcGFyaXNvbi5pbnQOZ2xv
YmFsLmludC5nZXQIY29uc3RhbnQEEGNyYWZ0X3RpZXI6aW5nb3QIY29uc3RhbnQEATwIY29uc3RhbnQC
AQAAAAhjb25zdGFudAQBfA5jb21wYXJpc29uLmludA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3Jh
ZnRfdGllcjppbmdvdAhjb25zdGFudAQBPghjb25zdGFudAIKAAAACGNvbnN0YW50BAF8EWNvbXBhcmlz
b24uZG91YmxlEWdsb2JhbC5kb3VibGUuZ2V0CGNvbnN0YW50BBFjcmFmdF9jb3VudDppbmdvdAhjb25z
dGFudAQCPD0IY29uc3RhbnQDAAAAAAAAAAAIY29uc3RhbnQEAXwOY29tcGFyaXNvbi5pbnQOZ2xvYmFs
LmludC5nZXQIY29uc3RhbnQEDGNyYWZ0X3N0YXR1cwhjb25zdGFudAQBPghjb25zdGFudALHAAAADmdl
bmVyaWMuZ290b2lmCGNvbnN0YW50AmMAAAARY29tcGFyaXNvbi5kb3VibGURZ2xvYmFsLmRvdWJsZS5n
ZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW50OmluZ290CGNvbnN0YW50BAI8PRNmYWN0b3J5Lml0ZW1zLmNv
dW50CGNvbnN0YW50BAVpbmdvdA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRfdGllcjppbmdv
dA5nbG9iYWwuaW50LnNldAhjb25zdGFudAQQdGFyZ2V0X2R1c3RfdGllcg5nbG9iYWwuaW50LmdldAhj
b25zdGFudAQQY3JhZnRfdGllcjppbmdvdBFnbG9iYWwuZG91YmxlLnNldAhjb25zdGFudAQRdGFyZ2V0
X2R1c3RfY291bnQLZG91YmxlLmNlaWwRZ2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEEWNyYWZ0X2Nv
dW50OmluZ290EWdsb2JhbC5kb3VibGUuc2V0CGNvbnN0YW50BBJkdXN0X3VwX3VzZV9pbmdvdHMIY29u
c3RhbnQDAAAAAAAAAAATZ2VuZXJpYy5leGVjdXRlc3luYwhjb25zdGFudAQSZHVzdF91cF9pbnRlZ3Jh
dGVkDmdlbmVyaWMuZ290b2lmCGNvbnN0YW50AgwAAAARY29tcGFyaXNvbi5kb3VibGURZ2xvYmFsLmRv
dWJsZS5nZXQIY29uc3RhbnQEF3Jlc291cmNlc19uZWVkZWRfdGllcl8xCGNvbnN0YW50BAE+CGNvbnN0
YW50AwAAAAAAAAAAEWdlbmVyaWMud2FpdHdoaWxlFmZhY3RvcnkubWFjaGluZS5hY3RpdmUIY29uc3Rh
bnQEBG92ZW4PZmFjdG9yeS5wcm9kdWNlCGNvbnN0YW50BARkdXN0Dmdsb2JhbC5pbnQuZ2V0CGNvbnN0
YW50BBBjcmFmdF90aWVyOmluZ290C2RvdWJsZS5jZWlsEWFyaXRobWV0aWMuZG91YmxlEWdsb2JhbC5k
b3VibGUuZ2V0CGNvbnN0YW50BBFjcmFmdF9jb3VudDppbmdvdAhjb25zdGFudAQBLRNmYWN0b3J5Lml0
ZW1zLmNvdW50CGNvbnN0YW50BAVpbmdvdA5nbG9iYWwuaW50LmdldAhjb25zdGFudAQQY3JhZnRfdGll
cjppbmdvdAhjb25zdGFudAQEb3ZlbhFnZW5lcmljLndhaXR3aGlsZRZmYWN0b3J5Lm1hY2hpbmUuYWN0
aXZlCGNvbnN0YW50BARvdmVuDGdlbmVyaWMuZ290bwhjb25zdGFudAJjAAAADmdsb2JhbC5pbnQuc2V0
CGNvbnN0YW50BBJjcmFmdF9yZXF1aXJlX3RpZXIOZ2xvYmFsLmludC5nZXQIY29uc3RhbnQEEGNyYWZ0
X3RpZXI6aW5nb3QRZ2xvYmFsLmRvdWJsZS5zZXQIY29uc3RhbnQEE2NyYWZ0X3JlcXVpcmVfY291bnQR
Z2xvYmFsLmRvdWJsZS5nZXQIY29uc3RhbnQEEWNyYWZ0X2NvdW50OmluZ290Dmdsb2JhbC5pbnQuc2V0
CGNvbnN0YW50BAxjcmFmdF9zdGF0dXMIY29uc3RhbnQCnAEAAA==