Skip to content

Instantly share code, notes, and snippets.

@dsetzer
Created April 26, 2020 04:20
Show Gist options
  • Save dsetzer/68a766f069e534a79808db127f80e129 to your computer and use it in GitHub Desktop.
Save dsetzer/68a766f069e534a79808db127f80e129 to your computer and use it in GitHub Desktop.
Krampus v11
var config = {
};
/*
~~~~~~ Krampus v11 final ~~~~~~
~~ gamblebot for Bustabit.com
~ a fork of CorpseKey v8-prealpha
~~ by MathWins aka Gambletron5000 aka Neti
CHANGABLE SETTING(s) NOT TESTED, BEWARE CHANGING
set ChaseStrength var below from 1-100 (tested default: 35)*/
var ChaseStrength = 35;
/*
set the CorpseKey var below from 165-660 (tested default: 369)
*/
var CorpseKey=600;
/*
Do not change anything below this line unless you know what you are doing
*/
var currentPayout = 0
window.gt = {};
/* Use maxBetDivide during early alpha testing*/
gt.initialbankroll = userInfo.balance;
gt.balancedigits = (((gt.initialbankroll) + "").length - 2);
gt.maxBetDivide=((ChaseStrength+((CorpseKey/ChaseStrength)*(CorpseKey/ChaseStrength)))*(gt.balancedigits/0.8));
gt.history = [];
gt.historybet = [];
gt.historymulti = [];
gt.initialbankroll = userInfo.balance;
gt.revolvingbankroll = gt.initialbankroll;
gt.balancehistory = [];
gt.gamenumber = gt.balancehistory.length;
gt.currentbet = 0;
gt.currentmulti = 0;
gt.previousvalidbet = 0;
gt.previousvalidmulti = 0;
gt.previousbet = 0;
gt.previousmulti = 0;
gt.maxBet = 2500;
gt.lastGame = "NA";
gt.streak = 1;
gt.balance = gt.initialbankroll;
gt.reverseMartingale = false;
gt.lowestbalance = gt.initialbankroll
gt.highestbalance = gt.initialbankroll
gt.streakleftovers = 0;
gt.profit = 0;
gt.masterbalance = gt.initialbankroll;
gt.totalProfit = 0;
gt.suitableprofitfor = 1;
gt.strength=ChaseStrength;
gt.corpseKey=CorpseKey; /* this will change */
gt.corpseKeyOG=CorpseKey; /* this wont change */
function betFunc() {
gt.balancedigits = (((gt.balance) + "").length - 2);
gt.maxBetDivide=((gt.strength+((gt.corpseKeyOG/gt.strength)*(gt.corpseKeyOG/gt.strength)))*(gt.balancedigits/0.8));
if (gt.balancehistory <= 2) {
gt.currentbet = 100;
gt.previousvalidbet = 100;
gt.currentmulti = gt.corpseKey;
gt.previousvalidmulti = gt.corpseKey;
} else {
if (gt.history[0]<197){
gt.corpseKey+=(197-(gt.history[0]));
gt.history[0]==100?gt.corpseKey+=49:null;
gt.history[0]==0?gt.corpseKey+=51:null;
if (gt.corpseKey<165){
/* future */
}
} else {
/* 49.51x is opposite 1.00x and 0x */
/* gt.corpseKey/=(1+((gt.history[0]-197)/(4951-101)));*/
/* gt.corpseKey/=(1+((gt.history[0]-197)/1000));*/
/* 10x*3.9=40 20x=79 30x=118 49.51x=197 */
gt.corpseKey-=(((gt.history[0]/100)>49.51?49.51:(gt.history[0]/100))*3.978);
if (gt.corpseKey>660){
gt.corpseKey/=(1+((gt.history[0]-197)/(4951-101)));
}
/* 49.51x */
gt.history[0]>4951?gt.corpseKey-=49:null;
/* 99.98x */
gt.history[0]>9998?gt.corpseKey-=51:null;
/* nyan */
gt.history[0]>100000?gt.corpseKey-=1000:null;
}
gt.corpseKey=Math.round(gt.corpseKey);
gt.corpseKey<165?gt.corpseKey=165:null;
gt.corpseKey>1320?gt.corpseKey=1320:null;
}
gt.maxBet = (((gt.balance / (gt.strength+((gt.corpseKeyOG/100) * (gt.balancedigits*(gt.corpseKeyOG/100)))))+(gt.balance / (gt.strength+((gt.corpseKey/100) * (gt.balancedigits*(gt.corpseKey/100))))))/2);
gt.minBet = (gt.maxBet / (gt.strength*(gt.corpseKeyOG/gt.strength)));
gt.minBet < 100 ? gt.minBet = 100 : null;
gt.currentmulti = gt.corpseKey;
if (gt.streak < 0 && gt.streak > ((((-1)-(Math.round(gt.previousvalidmulti/100)))+((-1)-(Math.round(gt.corpseKey/100)))+((-1)-(Math.round(gt.corpseKeyOG/100))))/3)) {
gt.currentbet = (gt.minBet*(gt.corpseKeyOG/(103-gt.strength)));
} else if (gt.streak <= ((((-1)-(Math.round(gt.previousvalidmulti/100)))+((-1)-(Math.round(gt.corpseKey/100)))+((-1)-(Math.round(gt.corpseKeyOG/100))))/3)) {
gt.currentbet = (((gt.minBet * ((gt.corpseKeyOG/100) ** (Math.abs(gt.streak)/(Math.round(gt.corpseKeyOG/100)))))+(gt.minBet * ((gt.previousvalidmulti/100) ** (Math.abs(gt.streak)/(Math.round(gt.previousvalidmulti/100))))))/2);
} else if (gt.streak>0) {
/* Winning streaks */
gt.currentbet = (((gt.previousvalidbet/(gt.corpseKey/100)) + (gt.minBet) + (gt.minBet))/(gt.corpseKey/100));
gt.streak==1?gt.currentmulti = (((gt.previousvalidmulti/1.5)+(gt.corpseKey/1.5))/2):null;
gt.streak==2?gt.currentmulti = (((gt.previousvalidmulti/1.25)+(gt.corpseKey/1.25))/2):null;
gt.streak>=3?gt.currentmulti = (((gt.previousvalidmulti/1.1225)+(gt.corpseKey/1.225))/2):null;
gt.streak>=3?gt.currentbet = (gt.minBet):null;
}
if (gt.streak < 0){
if (gt.currentbet >= (gt.maxBet/(gt.strength/(gt.corpseKey/100)))){
if (gt.streak<((((-1)-(Math.round(gt.previousvalidmulti/100)))+((-1)-(Math.round(gt.corpseKey/100)))+((-1)-(Math.round(gt.corpseKeyOG/100))))/3)){
gt.currentmulti = ((gt.corpseKey/1)+((Math.abs(gt.streak))*(gt.strength*(gt.corpseKey/(gt.strength*8)))));
}
} else if (gt.currentbet >= (gt.maxBet/(gt.strength))){
if (gt.streak<((((-1)-(Math.round(gt.previousvalidmulti/100)))+((-1)-(Math.round(gt.corpseKey/100)))+((-1)-(Math.round(gt.corpseKeyOG/100))))/3)){
gt.currentmulti = ((gt.corpseKey/1)+((Math.abs(gt.streak))*(gt.strength*(gt.corpseKey/(gt.strength*16)))));
}
} else if (gt.currentbet >= (gt.maxBet/(gt.strength*(gt.corpseKey/100)))){
if (gt.streak<((((-1)-(Math.round(gt.previousvalidmulti/100)))+((-1)-(Math.round(gt.corpseKey/100)))+((-1)-(Math.round(gt.corpseKeyOG/100))))/3)){
gt.currentmulti = ((gt.corpseKey/1)+((Math.abs(gt.streak))*(gt.strength*(gt.corpseKey/(gt.strength*32)))));
}
}
}
gt.currentbet > gt.maxBet ? gt.currentbet = gt.maxBet : null;
gt.currentbet < gt.minBet ? gt.currentbet = gt.minBet : null;
// an absolute max bet check hardcoded of 1/xth balance - where x is the multi you are chasing just in case any funny business happens we can chase for longer
gt.currentbet > (gt.balance/(gt.currentmulti/100)) ? gt.currentbet = (gt.balance/(gt.currentmulti/100)) : null;
gt.currentbet < 100 ? gt.currentbet = 100 : null;
gt.currentmulti < Math.round(gt.corpseKey/1.5) ? gt.currentmulti = Math.round(gt.corpseKey/1.5) : null;
}
//--------------------------------------------------------------------------------------------------
engine.on("GAME_STARTING", function() {
betFunc();
gt.currentbet > (gt.balance / gt.maxBetDivide) ? gt.currentbet = (gt.balance / gt.maxBetDivide) : null;
if (gt.currentbet >= 100 && gt.currentmulti >= 100) {
gt.currentbet > (gt.balance / 4) ? gt.currentbet = (gt.balance / 4) : null;
log('Currentbet:',Math.round(gt.currentbet/100),' and Cashout:', Math.round(gt.currentmulti)/100 + 'x', ' Key:', gt.corpseKey);
engine.bet(Math.round(gt.currentbet / 100) * 100, Math.round(gt.currentmulti)/100);
}
});
engine.on("GAME_ENDED", function() {
var lastGame = engine.history.first()
gt.history.reverse();
gt.history.push(lastGame.bust*100);
if (!lastGame.wager) {return;}
//-------------------------------------------
gt.history.reverse();
gt.profit += (gt.balance - userInfo.balance);
gt.balance = userInfo.balance;
gt.balancehistory.reverse();
gt.balancehistory.push(gt.balance);
gt.balancehistory.reverse();
if (!lastGame.cashedAt) { // LOST
if (gt.streak > -1) {
gt.streak = -1;
} else {
gt.streak--
}
}
else { // WON
if (gt.streak < 1) {
gt.streak = 1;
} else {
gt.streak++
}
}
gt.maxBet = parseInt(gt.balance / 100);
gt.previousbet = gt.historybet[0];
gt.previousmulti = gt.historymulti[0];
if (gt.historybet[0] >= 100 && gt.historymulti[0] >= 100) {
gt.previousvalidbet = gt.historybet[0];
gt.previousvalidmulti = gt.historymulti[0];
}
gt.currentbet = 0;
gt.currentmulti = 0;
if (gt.balancehistory.length > 1) {
betFunc();
}
gt.historybet.reverse();
gt.historybet.push(gt.currentbet);
gt.historybet.reverse();
gt.historymulti.reverse();
gt.historymulti.push(gt.currentmulti);
gt.historymulti.reverse();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment