emerginginstance

Paperclip automation

Aug 16th, 2021 (edited)
790
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         pAIperclip Automation Engine
  3. // @namespace    http://tampermonkey.net/
  4. // @version      2.0
  5. // @description  Automation for paperclip game https://www.decisionproblem.com/paperclips/index2.html
  6. // @author       Bean
  7. // @match        https://www.decisionproblem.com/paperclips/index2.html
  8. // @icon         https://www.google.com/s2/favicons?domain=decisionproblem.com
  9. // @grant        none
  10. // @run-at       document-idle
  11. // ==/UserScript==
  12.  
  13.  
  14. // Automation for paperclip game https://www.decisionproblem.com/paperclips/index2.html
  15.  
  16. zClick = function (btn) {
  17.     try {
  18.         var zomBMC = document.querySelector(`#${btn}`);
  19.         if(! (zomBMC.disabled) ) {
  20.             zomBMC.click();
  21.         }  
  22.     } catch (e) {  
  23.     }
  24. }
  25.  
  26. zAuto = function() {
  27.     if(trust == 100 || harvesterFlag) {
  28.         clearInterval(zTogInt);
  29.         zClick('projectButton35');
  30.         zTogInt = setInterval(zAuto2, 1000);
  31.         return;
  32.     }
  33.         if(trust < 100) {
  34.         zProjects();
  35.     }
  36.     clipClick(100);
  37.     zClippers();
  38.     zCompute();
  39.     zSmartWire();
  40.     zSmartPrice();
  41.     for (let i = 0; i < 10; i++) {
  42.         setTimeout(zQuantum, i*100);
  43.     }
  44.     zYomi();
  45.     if(investmentEngineFlag) {
  46.         if(((adCost*3 < portTotal) && marketingLvl<10) || (avgRev > adCost/5)) {
  47.             zClick('btnExpandMarketing');
  48.         }
  49.     }
  50.     else {
  51.         zClick('btnExpandMarketing');
  52.     }
  53.     setTimeout(zStockMarket, 250);
  54. };
  55.  
  56. zAuto2 = function() {
  57.     if(spaceFlag) {
  58.         clearInterval(zTogInt);
  59.         zTogInt = setInterval(zAuto3, 1000);
  60.         return;
  61.     }
  62.     zCompute();
  63.     for (let i = 0; i < 10; i++) {
  64.         setTimeout(zQuantum, i*100);
  65.     };
  66.     zYomi();
  67.     zProjects();
  68.     zManageSolars();
  69.     zAutoSwarm(zSolarSwarm);
  70. }
  71.  
  72. zGetDemand = function(){
  73.     var dDemand = (harvesterLevel * dronePowerRate/100) + (wireDroneLevel * dronePowerRate/100);
  74.     var fDemand = (factoryLevel * factoryPowerRate/100);
  75.     return (dDemand + fDemand)*100;
  76. }
  77.  
  78. zBuyThings = function() {
  79.     if(!factoryFlag) return;
  80.     if(!harvesterFlag) return;
  81.     if(!wireDroneFlag) return;
  82.    
  83.     if(zGetDemand()>=((farmLevel*50)*0.9)) {
  84.         makeFarm(Math.floor(farmLevel/2) + 1);
  85.         if(wire == 0) {
  86.              if(harvesterLevel > wireDroneLevel) {
  87.                 makeWireDrone(1);
  88.             } else {
  89.                 makeHarvester(1);
  90.             }
  91.         }
  92.         return;
  93.     }
  94.  
  95.     if((clipRate > ((wireDroneCost + harvesterCost)*1000)) && wire == 0) {
  96.         zGetDrones();
  97.     }
  98.    
  99.         if(clipRate > 21364364999982055000) {
  100.         try {
  101.             if(project102.element.style.visibility == "visible" && !project102.flag) {
  102.                 return;
  103.             }
  104.         } catch (e) {
  105.         }
  106.     }
  107.    
  108.     if(clipRate*3 > factoryCost || (factoryLevel >= 10 && factoryLevel < 20 && clipRate*20 > factoryCost)) {
  109.         zClick('btnMakeFactory');
  110.         return;
  111.     }
  112.     if(factoryLevel == 4 && clipRate >= 300000000000) {
  113.         zClick('btnMakeFactory');
  114.             return;
  115.     }
  116.  
  117.    
  118.     try {
  119.         if(parseInt(document.getElementById('performance').innerHTML.replaceAll(',',''))>100
  120.         && factoryLevel<10) {
  121.  
  122.             zClick('btnMakeFactory');
  123.             return;
  124.         }
  125.     } catch (e) {};
  126.    
  127.     if(clipRate*10 > factoryCost && (!(factoryCost/1000) > harvesterCost)) {
  128.  
  129.         zClick('btnMakeFactory');
  130.         return;
  131.     }
  132.    
  133.     if(factoryCost > farmCost*10 || unusedClips > farmCost || clipRate*3 > farmCost) {
  134.         zClick('btnMakeFactory');
  135.     }
  136.    
  137.     zGetDrones();
  138.        
  139.         if((batteryLevel<1000) || (farmLevel > batteryLevel)) {
  140.             let newBattery = 1000-batteryLevel;
  141.             makeBattery(newBattery);
  142.         }
  143. }
  144.  
  145. zGetDrones = function () {
  146.      if(harvesterLevel > wireDroneLevel) {
  147.             makeWireDrone(Math.round(wireDroneLevel*0.1)<=1000000?1000000:Math.round(wireDroneLevel*0.1));
  148.         } else {
  149.             makeHarvester(Math.round(harvesterLevel*0.1)<=1000000?1000000:Math.round(harvesterLevel*0.1));
  150.         }
  151. }
  152.  
  153. zSolarSwarm = 150;
  154.  
  155. zManageSolars = function() {
  156.    
  157.     if(farmLevel == 0) {
  158.             makeFarm(1);
  159.     }
  160.     if(wireDroneFlag && wireDroneLevel == 0) {
  161.         makeWireDrone(1);
  162.         return;
  163.     }
  164.     if(harvesterFlag && harvesterLevel == 0) {
  165.         makeHarvester(1);
  166.         return;
  167.     }
  168.     if(factoryFlag && factoryLevel == 0){
  169.         makeFactory(1);
  170.         if(factoryLevel == 0) factoryLevel = 1;
  171.         return;
  172.     }
  173.    
  174.     if(!factoryFlag || !harvesterFlag || !wireDroneFlag) {
  175.         return;
  176.     }
  177.    
  178.     if(availableMatter == 0) {
  179.         zSolarSwarm = 199;
  180.         zBuyThings();
  181.         if((availableMatter == 0) && (acquiredMatter == 0) && (wire == 0) && (clipRate == 0)){
  182.             zSolarSwarm = 200;
  183.             factoryReboot();
  184.             if(memory >= 120) {
  185.                 wireDroneReboot();
  186.                 harvesterReboot();
  187.                 if(storedPower >= 10000000){
  188.                     farmReboot();
  189.                     return;
  190.                 }
  191.             }
  192.            
  193.         }
  194.         return;
  195.     } else {
  196.         zBuyThings();  
  197.     }
  198. };
  199.  
  200. zSpaceAutoSwarm = 190;
  201.  
  202. zProbeManageDelay = 5;
  203. zProbeManageDelayCount = 0;
  204. zAuto3 = function() {
  205.     if(!spaceFlag & !harvesterFlag){
  206.         clearInterval(zTogInt);
  207.         zTogInt = setInterval(zAuto, 1000);
  208.         return;
  209.     }
  210.    
  211.     zCompute();
  212.     if(clipRate == 0) {
  213.         zAutoSwarm(199);
  214.     } else {
  215.         zAutoSwarm(zSpaceAutoSwarm);
  216.     }
  217.     zClick('btnIncreaseProbeTrust');
  218.     if(maxTrust==probeTrust && !(probeTrust%10)) zClick('btnIncreaseMaxTrust');
  219.     for (let i = 0; i < 10; i++) {
  220.         setTimeout(zQuantum, i*100);
  221.     };
  222.     zYomi();
  223.     zProbeManageDelayCount++;
  224.     if(zProbeManageDelayCount == zProbeManageDelay){
  225.         zManageProbes();
  226.         zProbeManageDelayCount = 0;
  227.     }
  228.     makeProbe();
  229.     zProjects();
  230. }
  231. zResetProbe = function() {
  232.     for(let i = 0; i < probeTrust; i++) {
  233.         setTimeout(zProbeResetButtons, 50 * i);
  234.     }      
  235. }
  236. zProbeResetButtons = function() {
  237.     Array.from(document.querySelectorAll("button[id*=Lower]")).filter((function(e){return !e.id.includes('Price')})).filter(function (e){ return !e.disabled}).forEach(e => e.click());
  238. }
  239.  
  240. zSetProbe = function(speed, explore, rep, haz, fac, harv, wire, comb) {
  241.     if(probeSpeed > speed) zClick('btnLowerProbeSpeed');
  242.     if(probeNav > explore) zClick('btnLowerProbeNav');
  243.     if(probeRep > rep) zClick('btnLowerProbeRep');
  244.     if(probeHaz > haz) zClick('btnLowerProbeHaz');
  245.     if(probeFac > fac) zClick('btnLowerProbeFac');
  246.     if(probeHarv > harv) zClick('btnLowerProbeHarv');
  247.     if(probeWire > wire) zClick('btnLowerProbeWire');
  248.     if(probeCombat > comb) zClick('btnLowerProbeCombat');
  249.     if(probeSpeed > speed) zClick('btnLowerProbeSpeed');
  250.     if(probeNav > explore) zClick('btnLowerProbeNav');
  251.     if(probeRep > rep) zClick('btnLowerProbeRep');
  252.     if(probeHaz > haz) zClick('btnLowerProbeHaz');
  253.     if(probeFac > fac) zClick('btnLowerProbeFac');
  254.     if(probeHarv > harv) zClick('btnLowerProbeHarv');
  255.     if(probeWire > wire) zClick('btnLowerProbeWire');
  256.     if(probeCombat > comb) zClick('btnLowerProbeCombat');
  257.     if(probeSpeed < speed) zClick('btnRaiseProbeSpeed');
  258.     if(probeCombat < comb) zClick('btnRaiseProbeCombat');
  259.     if(probeSpeed < speed) zClick('btnRaiseProbeSpeed');
  260.     if(probeRep < rep) zClick('btnRaiseProbeRep');
  261.     if(probeRep < rep) zClick('btnRaiseProbeRep');
  262.     if(probeNav < explore) zClick('btnRaiseProbeNav');
  263.     if(probeHaz < haz) zClick('btnRaiseProbeHaz');
  264.     if(probeFac < fac) zClick('btnRaiseProbeFac');
  265.     if(probeHarv < harv) zClick('btnRaiseProbeHarv');
  266.     if(probeWire < wire) zClick('btnRaiseProbeWire');
  267.     if(probeNav < explore) zClick('btnRaiseProbeNav');
  268.     if(probeHaz < haz) zClick('btnRaiseProbeHaz');
  269.     if(probeFac < fac) zClick('btnRaiseProbeFac');
  270.     if(probeHarv < harv) zClick('btnRaiseProbeHarv');
  271.     if(probeWire < wire) zClick('btnRaiseProbeWire');
  272.     if(probeCombat < comb) zClick('btnRaiseProbeCombat');
  273.  
  274. }
  275.  
  276. zMakeDrones = function(speed, explore, rep, haz, fac, harv, wire, comb) {
  277.     for(let i = 0; i < probeTrust*2;i++) {
  278.         setTimeout((function(){
  279.             zSetProbe(speed, explore, rep, haz, fac, harv, wire, comb);
  280.             })
  281.         ,i*50);
  282.     }
  283. }
  284. zProbesRequire = true;
  285.  
  286. zDrifterCounter = 0;
  287. zDrifterCounterTrigger = 5;
  288. zdroneVersion = 0;
  289. zToggleBuild = 0;
  290. zManageProbes = function() {
  291.        
  292.         if(zdroneVersion == 0) {
  293.             zMakeDrones(1,1,(probeTrust-10),5,1,1,1,0);
  294.             zdroneVersion++;
  295.         }
  296.        
  297.         if(zdroneVersion == 1 && project131.flag) {
  298.             zDrifterCounter++;
  299.             if(zDrifterCounter = zDrifterCounterTrigger) zDrifterCounter = 0;
  300.             if(zDrifterCounter == zDrifterCounterTrigger-2) {
  301.                 zMakeDrones(6,0,0,8,0,0,0,6)
  302.             }
  303.             if(drifterCount/100 > probeCount) {
  304.                 zMakeDrones(0,0,(probeTrust-10),10,0,0,0,0);
  305.             } else {
  306.                 if(drifterCount > probeCount/4) {
  307.                     zMakeDrones(6,0,(probeTrust-16),5,0,0,0,5);
  308.                 } else {
  309.                     zToggleBuild++;
  310.                     if(zToggleBuild >= 5) {
  311.                         zToggleBuild = 0;
  312.                         zMakeDrones(1,1,(probeTrust-14),5,1,1,1,4);
  313.                     } else {
  314.                         zMakeDrones(0,0,(probeTrust-8),5,0,0,0,3);
  315.                     }
  316.                 }
  317.             }
  318.         } else {
  319.             zMakeDrones(1,1,(probeTrust-10),5,1,1,1,0)
  320.         }
  321. }
  322.  
  323. zSmartWire = function() {
  324.     if(wire <= 10000) {
  325.         buyWire();
  326.         return;
  327.     }
  328.     if((clipRate * 60) > wire) {
  329.        
  330.         for (let i = 0; i < 10; i++) {
  331.            
  332.             if((clipRate*2) > wire) buyWire();
  333.  
  334.             if(wireBasePrice > wireCost) {
  335.                 buyWire()
  336.             }
  337.  
  338.         }
  339.     } else if(wire< (clipRate*10)) {
  340.         buyWire();
  341.     }
  342. }
  343. zTogAllBool = true;
  344. zTogAll = function() {
  345.     if(zTogAllBool) {
  346.         clearTimeout(zTogInt);
  347.        
  348.     } else {
  349.         zTogInt = setInterval(zAuto, 1000);
  350.     }
  351.     zTogAllBool = !zTogAllBool;
  352. }
  353. zCompute = function () {
  354.     if(boredomFlag) zClick('btnEntertainSwarm');
  355.     try {
  356.         if(project125.element.style.visibility == "visible" && !project125.flag) {
  357.                 zClick('btnAddProc');
  358.                 return;
  359.  
  360.         }
  361.     } catch (e) {}
  362.     if(memory < 3) {zClick('btnAddMem'); return; }
  363.     if(processors <3) {zClick('btnAddProc'); return; }
  364.     if(memory < 4) {zClick('btnAddMem'); return; }
  365.     if(processors <5) {zClick('btnAddProc'); return; }
  366.     if(memory < 70) {zClick('btnAddMem'); return; }
  367.     if(processors < 20) {zClick('btnAddProc'); return; }
  368.     if(memory < 120) {zClick('btnAddMem'); return; }
  369.     if(processors < 75) {zClick('btnAddProc'); return; }
  370.     if(memory < 175) {zClick('btnAddMem'); return; }
  371.     if(processors < 400) {zClick('btnAddProc'); return; }
  372.     if(memory < 250) {zClick('btnAddMem'); return; }
  373.     zClick('btnAddProc');
  374.     zClick('btnAddProc');
  375.     zClick('btnAddProc');
  376.     zClick('btnAddProc');
  377.     zClick('btnAddProc');
  378. }
  379. zSmartPrice = function() {
  380.    
  381.     if(demand < 10) {
  382.         zClick('btnLowerPrice');
  383.         return;
  384.     }
  385.    
  386.     if(clips < 10000) {
  387.         if(avgSales < 100) {
  388.             zClick('btnLowerPrice')
  389.         } else {
  390.             zClick('btnRaisePrice');
  391.         }
  392.         return;
  393.     }
  394.    
  395.     if((clipRate * 2) > unsoldClips) {
  396.         zClick('btnRaisePrice');
  397.     } else {
  398.         if(avgSales < clipRate-1) {
  399.             zClick('btnLowerPrice')
  400.         } else {
  401.             zClick('btnRaisePrice');
  402.         }
  403.     }
  404. }
  405.  
  406. zQuantum = function() {
  407.     if (qChips[0].active == 1){
  408.         var q = 0;
  409.         for (var i = 0; i<qChips.length; i++){
  410.             q = q+qChips[i].value;
  411.         }
  412.         var qq = Math.ceil(q*360);
  413.         if(qq > 0) qComp();
  414.     }
  415. }
  416.  
  417. zStockCycle = 0;
  418. zStockCycleEnd = 120;
  419.  
  420. zStockMarket = function() {
  421.  
  422.     if(!investmentEngineFlag) return;
  423.    
  424.     if(portTotal > 640000000 || portTotal+funds > 640000000) {
  425.         zClick('btnWithdraw');
  426.         return;
  427.     }
  428.    
  429.     if(investLevel < 4) investStratElement.value='low';
  430.     if(investLevel == 4) {
  431.         investStratElement.value='med';
  432.     } else if(investLevel == 7) {
  433.         investStratElement.value='hi';
  434.     }
  435.     if(clipRate == 0){
  436.     zClick('btnWithdraw');
  437.     return;
  438.     }
  439.    
  440.     if(trust >= 95 && (portTotal < 564000000)) {
  441.         zClick('btnInvest');
  442.         return;    
  443.     }
  444.    
  445.     try {
  446.         if(project37.element.style.visibility == "visible" && !project37.flag) {
  447.             if(portTotal > 2000000) {
  448.                 zClick('btnWithdraw');
  449.                 return;
  450.             }
  451.         }
  452.     } catch (e) {}
  453.        
  454.     try {
  455.         if(project38.element.style.visibility == "visible" && !project38.flag) {
  456.             if(portTotal > 20000000) {
  457.                 zClick('btnWithdraw');
  458.                 return;
  459.             }
  460.         }
  461.     } catch (e) {}
  462.    
  463.     if(!megaClipperFlag) {
  464.         zClick('btnInvest');
  465.         return;
  466.     }
  467.    
  468.     try {
  469.         if(project40b.element.style.visibility == "visible" && (portTotal > 564000000)) {
  470.             if(portTotal > 20000000) {
  471.                 zClick('btnWithdraw');
  472.                 return;
  473.             }
  474.         }
  475.     } catch (e) {}
  476.    
  477.     zStockCycle++;
  478.     if(zStockCycle > zStockCycleEnd-2) { zClick('btnWithdraw');
  479.     } else {
  480.         zClick('btnInvest');
  481.     }
  482.     if(zStockCycle == zStockCycleEnd) {
  483.         zStockCycle = 0;
  484.     }
  485.        
  486. }
  487.  
  488. zYomi = function() {
  489.     if(!strategyEngineFlag) return;
  490.     let highest = 0;
  491.     Array.from(stratPickerElement).forEach(e => {if(e.value!=10) if(e.value>highest) highest=e.value});
  492.     if(highest>3) highest = 3;
  493.     stratPickerElement.value = highest;
  494.     zClick('btnNewTournament');
  495.     zClick('btnRunTournament');
  496. }
  497.  
  498. zClippers = function() {
  499.     try {
  500.         if(project38.element.style.visibility == "visible" && !project38.flag) {
  501.             if(portTotal > 20000000) {
  502.                 return;
  503.             }
  504.         }
  505.     } catch (e) {}
  506.     if(wire < 10000) return;
  507.    
  508.     if(megaClipperFlag) {
  509.         if(megaClipperCost * 10 < portTotal || megaClipperCost - funds > 640000000 || portTotal < 1000000) zClick('btnMakeMegaClipper');
  510.     } else {
  511.         zClick('btnMakeClipper');
  512.     }
  513.    
  514.     if(investLevel < 10) zClick('btnImproveInvestments');
  515. }
  516.  
  517. zAutoSwarm = function(number){
  518.     if(swarmFlag) {
  519.         if(document.getElementById('giftCountdown').innerHTML == '2 seconds' || document.getElementById('giftCountdown').innerHTML == '1 second') {
  520.             sliderElement.value  = 200;
  521.         } else {
  522.             sliderElement.value = number;
  523.         }
  524.     }
  525. }
  526.  
  527. zProjects = function() {
  528.     if(creativity < 0) creativity = 0;
  529.     if(!projectsFlag) return;
  530.     var zPhotonics = false;
  531.     Array.from(document.querySelectorAll('button[id*="projectButton"]')).filter((function(e){return e.innerHTML.includes('Photonic Chip');})).forEach(e => {if(!e.disabled){zPhotonics=true;e.click();}});
  532.     if(zPhotonics) return;
  533.     var zClicked = false;
  534.     Array.from(document.querySelectorAll('button.projectButton')).filter((function(e){return e.style.visibility=="visible"})).forEach(e => {
  535.        
  536.         if(e.innerHTML.includes('Threnody')) {
  537.             if(honor > 91117) {
  538.                 return;
  539.             }
  540.         }
  541.        
  542.         if(e.innerHTML.includes('AutoTourney')) return;
  543.        
  544.         if(e.innerHTML.includes('Universe Within')) e.click();
  545.        
  546.         if(e.innerHTML.includes('Monument to the Driftwar') && (honor < 91117) ) {
  547.             e.click(); zClicked = true;
  548.         }
  549.        
  550.         if(e.id!="projectButton217" && !zClicked && !e.disabled)
  551.         {
  552.             if(!window[e.id.replace('Button','')].flag || e.innerHTML.includes('honor') || e.id == 'projectButton40b') {
  553.                 e.click();zClicked=true;
  554.             }
  555.         }})
  556. }
  557.  
  558. zTogInt = setInterval(zAuto, 1000);
  559.  
  560. displayMessage('Automation enabled!');
Add Comment
Please, Sign In to add comment