curly4

VoxelLoop

Nov 15th, 2021
717
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. * VoxelLoop Gaming BustaBit Bot (VLG-BB)
  3. * Developed by CurtisVL
  4. */
  5.  
  6. //Version
  7. var version = 1.73;
  8.  
  9. //----------Site----------//
  10. var BustaBit = true;
  11. // true = using BustaBit - false = using CS:GO Crash
  12.  
  13.  
  14. //----------Bet amount----------//
  15. var autoBaseBetEnabled = true;
  16. // Default: false - Enable/Disable auto base bet. Described below.
  17.  
  18. var maxLossCount = 8;
  19. // Default: 5 - Max amount of loses to account for with autoBaseBetEnabled set to true.
  20.  
  21. var percentageOfTotal = 100;
  22. // Default: 100 - Percentage of total balance to use when max loss is hit. (100 = 100%)
  23.  
  24. var baseBet = 10;
  25. // Default: 100 - Manual base bet, only used when autoBaseBetEnabled is false.
  26.  
  27. var cashOut = 1.50;
  28. // Default: 1.13 - Cash out at this amount. Some modes will have a locked cash out.
  29.  
  30. var maxBet = 99999999;
  31. // The max amount to bet - The lower this number, the slower you will earn back your loses.
  32.  
  33.  
  34. //----------Crash Average----------//
  35. //(Only used in modes 1)
  36.  
  37. var highAverage = 1.85;
  38. // Default: 1.85 - Average multiplier to use the highAverageMultiplier.
  39.  
  40. var highAverageMultiplier = 2.0;
  41. // Default: 2.0 - Multiplier to use when crash average is above highAverage.
  42.  
  43. var lowAverage = 1.70;
  44. // Default: 1.70 - Average multiplier to use the lowAverageMultiplier.
  45.  
  46. var lowAverageMultiplier = 1.02;
  47. // Default: 1.05 - Multiplier to use when crash average is below lowAverage.
  48.  
  49. var waitForBeforeRecoveryEnabled = false;
  50. // Default: false - Wait for x multiplier to hit before placing the recovery bet.
  51.  
  52. var waitForBeforeRecovery = 1.30;
  53. // Default: 1.30 - Amount to wait for before placing recovery bet.
  54.  
  55. //----------Mode 2 Settings----------//
  56. var mode2multiplyBy = 1.16;
  57. // Default: 1.16 - Amount to multiply the base by on each loss.
  58.  
  59. var mode2waitAfterWin = 8;
  60. // Default: 8 - How many rounds to wait after a win before placing again. (0 to disable)
  61.  
  62. //----------Mode 3 Settings----------//
  63. var mode3cashOut = 2.1;
  64. // Default: 2.1 - Amount to cash out in mode 3.
  65.  
  66. //----------Misc----------//
  67. var maxNegative = 99999999;
  68. // The max amount to allow the profit to drop to before the bot will stop.
  69.  
  70. var randomBreak = 0;
  71. // Default: 0 - When a round starts, the bot will generate a number between 1 and 100.
  72. // If the generated number is smaller than the randomBreak, the bot will wait a game before betting.
  73.  
  74. var clearConsole = true;
  75. // Default: true - Clear the console after 500 minutes, usefull for running the bot on systems with low RAM.
  76.  
  77. var limitedConsole = false;
  78. // Default: false - Limited console output, useful for running the bot 24/7, helps keep the browser responsive.
  79.  
  80. var reserveAmount = 10000;
  81. // Default: 10000 - Amount to reserve after profiting.
  82.  
  83. //----------Modes----------//
  84. var mode = 4;
  85.  
  86. // 1 = Default - Mode will place a bet at the base amount and base multiplier. On loss, it will raise the bet by 4x and increase the multiplier to a max of 1.33x.
  87. // *Deprecated* 2 = 9x Seeker - Mode will place the base amount and 9x multiplier. On loss, it will raise the bet by mode2multiplyBy until a 10x is reached.
  88. // *Deprecated* 3 = Martingale - Multiplies on loss.
  89. // 4 = Modified Pluscoup - The real deal.
  90.  
  91. //Do not edit below this line!
  92.  
  93. var user;
  94. var startBalance = engine.getBalance();
  95. var currentGame = -1;
  96. var currentBet;
  97. var lastBet;
  98. var gameResult;
  99. var gameInside;
  100. var random;
  101. var takingBreak = false;
  102. var firstGame = true;
  103. var lossCount = 0;
  104. var winCount = 0;
  105. var currentMultiplier;
  106. var lossBalance = 0;
  107. var firstLoss = true;
  108. var lastResult;
  109. var currency;
  110. var useCrashAverage = true;
  111. var startup = true;
  112. var d = new Date();
  113. var startTime = d.getTime();
  114. var newdate;
  115. var timeplaying;
  116. var lastCrash;
  117. var betPlaced = false;
  118. var tempBet;
  119. var tempCrash;
  120. var gameAverage = 0;
  121. var currentGame = 0;
  122. var game1;
  123. var game2;
  124. var game3;
  125. var game4;
  126. var resetLoss;
  127. var waitTime = -1;
  128. var lossStreak;
  129. var temptime = 120;
  130. var firstGrab = true;
  131. var recovering = false;
  132. var excludeAmount = 0;
  133.  
  134. if(startup == true){
  135.     if(mode == 2 || mode == 3){
  136.         window.alert("These modes have been removed! Please use modes 1 or 4.");
  137.         engine.stop();
  138.     }
  139.    
  140.     printStartup();
  141.     startup = false;
  142. }
  143.  
  144. if(BustaBit == true){
  145.     user = engine.getUsername();
  146.     currency = "bits";
  147. }
  148. else{
  149.     user = engine.getSteamID();
  150.     currency = "coins";
  151. }
  152.  
  153. //Game Starting
  154. engine.on('game_starting', function(info){
  155.     currentGameID = info.game_id;
  156.     var random = randNum(1,100);
  157.    
  158.     if(game4 != null){
  159.         gameAverage = (((game1 + game2) + (game3 + game4)) / 4);
  160.     }
  161.     else{
  162.         gameAverage = 0;
  163.     }
  164.    
  165.     if(random < randomBreak){
  166.         takingBreak = true;
  167.         console.log("Taking a random break this round!");
  168.     }
  169.     else{
  170.         takingBreak = false;
  171.     }
  172.    
  173.     if(gameAverage != 0 && mode == 1){
  174.         console.log("Crash average: " + gameAverage + "x");
  175.     }
  176.    
  177.     //Mode 4 Exclude
  178.     if(mode == 4 & firstGame == true){
  179.         if((engine.getBalance() - (excludeAmount * 100)) >= ((reserveAmount * 2) * 100)){
  180.             mode4Exclude();
  181.         }
  182.     }
  183.    
  184.     function mode4Exclude(){
  185.         if((engine.getBalance() - (excludeAmount * 100)) >= ((reserveAmount * 2) * 100)){
  186.             console.log("Doubled exclude balance! Reserving balance for bust.");
  187.             excludeAmount += reserveAmount;
  188.         }
  189.         if((engine.getBalance() - (excludeAmount * 100)) >= ((reserveAmount * 2) * 100)){
  190.             mode4Exclude();
  191.         }
  192.     }
  193.    
  194.     //Auto base bet
  195.     if(autoBaseBetEnabled == true && lastResult == "WON" && mode != 4 || firstGame == true && mode != 4){
  196.         var divider = 100;
  197.         for (i = 0; i < maxLossCount; i++) {
  198.             if(mode == 1){
  199.                 divider += (100 * Math.pow(4, (i + 1)));
  200.             }
  201.             if(mode == 2){
  202.                 divider += (100 * Math.pow(mode2multiplyBy, (i + 1)));
  203.             }
  204.             if(mode == 3 || mode == 4){
  205.                 divider += (100 * Math.pow(2, (i + 1)));
  206.             }
  207.         }
  208.         baseBet = Math.min(Math.max(1, Math.floor((percentageOfTotal/100) * engine.getBalance() / divider)), maxBet * 100);
  209.     }
  210.    
  211.     //Mode 4 Auto base bet
  212.     if(autoBaseBetEnabled == true && lastResult == "WON" && mode == 4 || firstGame == true && mode == 4){
  213.         //var tempBalance = (engine.getBalance() - (excludeAmount * 100));
  214.         var divider = 100;
  215.         for (i = 0; i < maxLossCount; i++) {
  216.             if(mode == 4){
  217.                 divider += (100 * Math.pow(2, (i + 1)));
  218.             }
  219.         }
  220.         baseBet = Math.min(Math.max(1, Math.floor((percentageOfTotal/100) * (engine.getBalance() - (excludeAmount * 100)) / divider)), maxBet * 100);
  221.     }
  222.    
  223.     if(takingBreak == false){
  224.        
  225.         //Gamemode 1 (Default)
  226.         if(mode == 1){
  227.            
  228.             //Shutdown on max loss
  229.             if(lossCount > maxLossCount){
  230.                 console.log("Max loss count reached! Shutting down...");
  231.                 engine.stop();
  232.             }
  233.            
  234.             //Reset cooldown
  235.             if (resetLoss == true) {
  236.                 if (lossCount == 0) {
  237.                 resetLoss = false;
  238.             }
  239.             else {
  240.                 lossCount--;
  241.                 console.log('Waiting a few games! Games remaining: ' + lossCount);
  242.                 return;
  243.                 }
  244.             }
  245.            
  246.             //First Game
  247.             if(firstGame == true && betPlaced == false){
  248.                 currentBet = baseBet;
  249.                 currentMultiplier = cashOut;
  250.                 if(game4 == null){
  251.                     currentMultiplier = 1.02;
  252.                 }
  253.                 firstGame = false;
  254.                 placeBet();
  255.                 newdate = new Date();
  256.                 timeplaying = ((newdate.getTime() - startTime) / 1000) / 60;
  257.                 betPlaced = true;
  258.             }
  259.            
  260.             //On Lost
  261.             if(lastResult == "LOST" && betPlaced == false && firstGame == false){
  262.                
  263.                 if(firstLoss == true){
  264.                     lossBalance = 0;
  265.                     lossStreak = 0;
  266.                     firstLoss = false;
  267.                 }
  268.                
  269.                 if(lastCrash >= waitForBeforeRecovery && waitForBeforeRecoveryEnabled == true){
  270.                     var lastLoss = currentBet;
  271.                     lossBalance += lastLoss;
  272.                     lastLoss /= 4;
  273.                     lossStreak++;
  274.                    
  275.                     currentBet *= 4;
  276.                     currentMultiplier = 1 + (lossBalance / currentBet);
  277.                     console.log("Bet changed to: " + currentBet);
  278.                     if(game4 == null){
  279.                         currentMultiplier = 1.02;
  280.                     }
  281.                     placeBet();
  282.                     betPlaced = true;
  283.                 }
  284.                 else if (waitForBeforeRecoveryEnabled == true){
  285.                     console.log("Waiting for " + waitForBeforeRecovery + "x before placing recovery bet.");
  286.                     console.log("----------------------------");
  287.                 }
  288.                 else if (waitForBeforeRecoveryEnabled == false){
  289.                     var lastLoss = currentBet;
  290.                     lossBalance += lastLoss;
  291.                     lastLoss /= 4;
  292.                     lossStreak++;
  293.                    
  294.                     currentBet *= 4;
  295.                     currentMultiplier = 1 + (lossBalance / currentBet);
  296.                     console.log("Bet changed to: " + currentBet);
  297.                     if(game4 == null){
  298.                         currentMultiplier = 1.02;
  299.                     }
  300.                     placeBet();
  301.                     betPlaced = true;
  302.                 }
  303.             }
  304.            
  305.             //On Win
  306.             if(lastResult == "WON" && betPlaced == false){
  307.                
  308.                 currentBet = baseBet;
  309.                 currentMultiplier = cashOut;
  310.                 firstLoss = true;
  311.                
  312.                 if(lossCount == 0 && useCrashAverage == true && gameAverage != 0){
  313.                     if(gameAverage < highAverage){
  314.                         currentMultiplier = cashOut;
  315.                     }
  316.                     if(gameAverage >= highAverage){
  317.                         currentMultiplier = highAverageMultiplier;
  318.                     }
  319.                    
  320.                     if(gameAverage < lowAverage){
  321.                         currentMultiplier = lowAverageMultiplier;
  322.                     }
  323.                 }
  324.                
  325.                 if(game4 == null){
  326.                     currentMultiplier = 1.02;
  327.                 }
  328.            
  329.                 placeBet();
  330.                 betPlaced = true;
  331.             }
  332.         }
  333.        
  334.         //Gamemode 4 (Pluscoup Modified)
  335.         if(mode == 4){
  336.             //Shutdown on max loss
  337.             if(lossCount > maxLossCount){
  338.                 console.log("Max loss count reached! Shutting down...");
  339.                 engine.stop();
  340.             }
  341.            
  342.             //Reset cooldown
  343.             if (resetLoss == true) {
  344.                 if (lossCount == 0) {
  345.                 resetLoss = false;
  346.             }
  347.             else {
  348.                 lossCount--;
  349.                 console.log('Waiting a few games! Games remaining: ' + lossCount);
  350.                 return;
  351.                 }
  352.             }
  353.            
  354.             //First Game
  355.             if(firstGame == true && betPlaced == false){
  356.                 currentBet = baseBet;
  357.                 currentMultiplier = cashOut;
  358.                 firstGame = false;
  359.                 placeBet();
  360.                 newdate = new Date();
  361.                 timeplaying = ((newdate.getTime() - startTime) / 1000) / 60;
  362.                 betPlaced = true;
  363.             }
  364.            
  365.             //On Lost
  366.             if(lastResult == "LOST" && betPlaced == false){
  367.                 if(firstLoss == true){
  368.                     lossBalance = 0;
  369.                     firstLoss = false;
  370.                     recovering = true;
  371.                 }
  372.                 lossBalance += lastBet;
  373.                 Math.ceil(lossBalance);
  374.                 placeBet();
  375.                 betPlaced = true;
  376.                 console.log("Amount to recover: " + lossBalance);
  377.             }
  378.            
  379.             //On Win
  380.             if(lastResult == "WON" && betPlaced == false){
  381.                 if(excludeAmount < 0){
  382.                     excludeAmount = 0;
  383.                 }
  384.                
  385.                 if (recovering == true && lossBalance > 0){
  386.                     lossBalance -= ((currentBet * cashOut) - currentBet);
  387.                     Math.ceil(lossBalance);
  388.                     console.log("Amount to recover: " + lossBalance);
  389.                     currentBet *= 2;
  390.                     if((lossBalance * 2) < currentBet && lossBalance != 0){
  391.                         currentBet = (lossBalance * 2);
  392.                     }
  393.                     if (lossBalance <= 0) {
  394.                         currentBet = baseBet;
  395.                     }
  396.                 }
  397.                 else if(lossBalance <= 0 && recovering == true){
  398.                     lossBalance = 0;
  399.                     console.log("Loss recovered!");
  400.                     firstLoss = true;
  401.                     currentBet = baseBet;
  402.                     recovering = false;
  403.                    
  404.                     if((engine.getBalance() - (excludeAmount * 100)) >= ((reserveAmount * 2) * 100)){
  405.                         console.log("Doubled start balance! Reserving balance for bust.");
  406.                         excludeAmount += reserveAmount;
  407.                     }
  408.                 }
  409.                
  410.                 if(currentBet >= ((engine.getBalance() / 100) - excludeAmount)){
  411.                     console.log("Not enough balance to place next recovery bet!");
  412.                     if(excludeAmount > 0){
  413.                         excludeAmount -= reserveAmount;
  414.                         console.log("Using reserve balance...");
  415.                     }
  416.                     currentBet = baseBet;
  417.                     recovering = false;
  418.                     firstLoss = true;
  419.                     lossBalance = 0;
  420.                     placeBet();
  421.                     betPlaced = true;
  422.                 }
  423.                
  424.                 else{
  425.                     placeBet();
  426.                     betPlaced = true;
  427.                 }
  428.             }
  429.         }
  430.     }
  431. });
  432.  
  433. engine.on('cashed_out', function(data){
  434.    
  435. });
  436.  
  437. engine.on('game_crash', function(data){
  438.     betPlaced = false;
  439.     gameResult = engine.lastGamePlay();
  440.     gameInside = engine.lastGamePlayed();
  441.     lastCrash = (data.game_crash / 100);
  442.    
  443.     newdate = new Date();
  444.     timeplaying = ((newdate.getTime() - startTime) / 1000) / 60;
  445.    
  446.     if(takingBreak == true)
  447.     {
  448.         takingBreak = false;
  449.     }
  450.    
  451.     if(mode == 4 && gameResult == "WON"){
  452.         if((engine.getBalance() - (excludeAmount * 100)) >= ((reserveAmount * 2) * 100)){
  453.             console.log("Doubled exclude balance! Reserving balance for bust.");
  454.             excludeAmount += reserveAmount;
  455.         }
  456.     }
  457.    
  458.     if(gameResult == "WON" && gameInside == true){
  459.         lastResult = "WON";
  460.         winCount += 1;
  461.         lossCount = 0;
  462.         printResults();
  463.     }
  464.     else if(gameResult == "LOST" && gameInside == true){
  465.         lastResult = "LOST";
  466.         lossCount += 1;
  467.         winCount = 0;
  468.         printResults();
  469.     }
  470.    
  471.     if(clearConsole == true){
  472.         if(timeplaying == temptime){
  473.             temptime += 120;
  474.             console.clear();
  475.         }
  476.     }
  477.    
  478.     currentGame++;
  479.     tempCrash = (data.game_crash / 100);
  480.     if (tempCrash >= 2.0){
  481.         tempCrash = 2.0;
  482.     }
  483.     if (tempCrash < 1.0){
  484.         tempCrash = 1.0;
  485.     }
  486.     if (currentGame == 1){
  487.         game1 = tempCrash;
  488.     }
  489.     else if(currentGame == 2){
  490.         game2 = tempCrash;
  491.     }
  492.     else if(currentGame == 3){
  493.         game3 = tempCrash;
  494.     }
  495.     else if(currentGame == 4){
  496.         game4 = tempCrash;
  497.     }
  498.     else if(currentGame >= 5){
  499.         currentGame = 1;
  500.         game1 = tempCrash;
  501.     }
  502. });
  503.  
  504. function placeBet(){
  505.     if(((engine.getBalance() / 100) - currentBet) < ((startBalance / 100) - maxNegative)){
  506.         console.log('Max negative reached! Stopping bot.');
  507.         engine.stop();
  508.     }
  509.     if(currentBet > maxBet){
  510.         console.log("Max bet reached!");
  511.         currentBet = maxBet;
  512.     }
  513.     engine.placeBet(currentBet * 100, Math.round(currentMultiplier * 100), false);
  514.     console.log("----------------------------");
  515.     console.log("Betting " + currentBet + " " + currency + ", cash out at " + currentMultiplier + "x");
  516.     lastBet = currentBet;
  517. }
  518.  
  519. function printStartup(){
  520.     console.log("Bot started!");
  521.     console.log(" ");
  522.     console.log("VoxelLoop Bet-Bot");
  523.     console.log("Version " + version);
  524.     console.log("Start balance: ", (startBalance / 100));
  525.     console.log(" ");
  526. }
  527.  
  528. function printResults(){
  529.     if(limitedConsole == false){
  530.         if(currentGameID != null){
  531.             console.log("Game ID: ", currentGameID);
  532.         }
  533.         console.log("Crashed at: " + lastCrash + "x");
  534.         if(lastResult == "LOST"){
  535.             console.log("Result: %c LOST", 'background: #ffffff; color: #ff0000');
  536.         }
  537.         else{
  538.             console.log("Result: %c WON", 'background: #ffffff; color: #339933');
  539.         }
  540.         console.log("Win Count: ", winCount);
  541.         console.log("Loss Count: ", lossCount);
  542.         console.log(" ");
  543.         console.log('Session profit: ' + ((engine.getBalance() - startBalance) / 100).toFixed(2) + ' ' + currency + ' in ' + Math.round(timeplaying) + ' minutes.');
  544.         console.log(" ");
  545.         if(mode == 4 && excludeAmount != 0){
  546.             console.log("Reserve balance: " + excludeAmount);
  547.         }
  548.     }
  549.     else{
  550.         if(currentGameID != null){
  551.             console.log("Game ID: ", currentGameID);
  552.         }
  553.         console.log('Session profit: ' + ((engine.getBalance() - startBalance) / 100).toFixed(2) + ' ' + currency + ' in ' + Math.round(timeplaying) + ' minutes.');
  554.         if(mode == 4 && excludeAmount != 0){
  555.             console.log("Reserve balance: " + excludeAmount);
  556.         }
  557.     }
  558. }
  559.  
  560. function randNum(min,max)
  561. {
  562.     return Math.floor(Math.random()*(max-min+1)+min);
  563. }
Advertisement
Add Comment
Please, Sign In to add comment