Jump to content

NEW Crash Script - with a shit load of options


Dinscore
 Share

Recommended Posts

On 12/22/2022 at 2:18 PM, Xcelibdjiwb said:

Is it possible to change currency without stop bet first?

Example : I bet with DAI, after meet stoploss then script change automaticly to use TRON for next bet

Please help and guide from senior

still no luck for this one. Why you want to change from one currency to other currency?

Link to comment
Share on other sites

this one is easy if you are doing it clientside.  Because of the sandboxed environment that the script runs in otherwise you will only have access to that properties and objects they expose for you which isn't much.

ss.wallet.current = 'TRX'

you are wrong here with the new update you can get 50 games from the sandboxed scripts.

 

The only way to get the 2000 is from a client side script.

Link to comment
Share on other sites

7 hours ago, Skele said:

this one is easy if you are doing it clientside.  Because of the sandboxed environment that the script runs in otherwise you will only have access to that properties and objects they expose for you which isn't much.

ss.wallet.current = 'TRX'

you are wrong here with the new update you can get 50 games from the sandboxed scripts.

 

The only way to get the 2000 is from a client side script.

FYI@Xcelibdjiwbskele solution work with injections. But will not work in bc box scripts. And also you can not use

currency.currencyName -  it only dislpay currency 

if you try

currency.currencyName = "TRX" 

so it won't work

Edited by Mariana__
Link to comment
Share on other sites

  • 4 weeks later...
  • 4 weeks later...
  • 1 month later...

Using @Skelecrash script that was modified by @Bigmattyboywith some dialed in settings on hash dice.  Awesome stuff.  Big thanks guys for getting this out there.

Screenshot 2023-03-20 at 12-49-22 Hash Dice Online Slot - Play online for real money.png

Link to comment
Share on other sites

  • 5 weeks later...
On 12/9/2021 at 4:19 AM, Skele said:

kind of lack luster.  I have several scripts but one of main things i did was add better logging image.png.f86dda1f2d8720599e6fee5c49f4b07a.png

I also added a feature that after two losses in a row, it will pause until it sees at least 1 win.  You sometimes miss a win on the 3rd game true.  But i no longer have to deal with 13 game losing streaks.  It will take two and then just wait it out for green pastures.  I need to change my script back to straight amounts for better, currently i use a percentage of my bank roll for the bet and then this one is the typical double it on loss. I will post it in its own message

var config = {
    betPercentage: {
        label: 'percentage of total coins to bet',
        value: 0.25,
        type: 'number'
    },
    payout: {
        label: 'payout',
        value: 2,
        type: 'number'
    },
    onLoseTitle: {
        label: 'On Lose',
        type: 'title'
    },
    onLoss: {
        label: '',
        value: 'increase',
        type: 'radio',
        options: [{
                value: 'reset',
                label: 'Return to base bet'
            }, {
                value: 'increase',
                label: 'Increase bet by (loss multiplier)'
            }
        ]
    },
    lossMultiplier: {
        label: 'loss multiplier',
        value: 2,
        type: 'number'
    },
    onWinTitle: {
        label: 'On Win',
        type: 'title'
    },
    onWin: {
        label: '',
        value: 'reset',
        type: 'radio',
        options: [{
                value: 'reset',
                label: 'Return to base bet'
            }, {
                value: 'increase',
                label: 'Increase bet by (win multiplier)'
            }
        ]
    },
    winMultiplier: {
        label: 'win multiplier',
        value: 1,
        type: 'number'
    },
    otherConditionsTitle: {
        label: 'Other Stopping Conditions',
        type: 'title'
    },    
    winGoalAmount: {
        label: 'Stop once you have made this much',
        value: currency.amount * 2,
        type: 'number'
    },
    lossStopAmount: {
        label: 'Stop betting after losing this much without a win.',
        value: 0,
        type: 'number'
    },    
    otherConditionsTitle: {
        label: 'Experimentle Please Ignore',
        type: 'title'
    },
    loggingLevel: {
        label: 'logging level',
        value: 'compact',
        type: 'radio',
        options: [{
                value: 'info',
                label: 'info'
            }, {
                value: 'compact',
                label: 'compact'
            }, {
                value: 'verbose',
                label: 'verbose'
            }
        ]
    }
};
// deleted input parameters
var stop = 0;
var lossesForBreak = 0;
var roundsToBreakFor = 0;

// end deleted parameters
var totalWagers = 0;
var netProfit = 0;
var totalWins = 0;
var totalLoses = 0;
var longestWinStreak = 0;
var longestLoseStreak = 0;
var currentStreak = 0;
var loseStreak = 0;
var numberOfRoundsToSkip = 0;
var currentBet = GetNewBaseBet();
var totalNumberOfGames = 0;
var originalbalance = currency.amount;
var runningbalance = currency.amount;
var consequetiveLostBets = 0;
var lossStopAmountVar = config.lossStopAmount.value;

function main() {

    game.onBet = function () {

        // if we are set to skip rounds then do so.
        if (numberOfRoundsToSkip > 0) {
            numberOfRoundsToSkip -= 1;
            log.info('Skipping round to relax, and the next ' + numberOfRoundsToSkip + ' rounds.');
            return;
        } else {
        
                if(totalNumberOfGames == 0)
                {
                    // this is so we account for the first round.
                    currentBet = GetNewBaseBet();
                }
                
                if(loseStreak >= 2)
                {
                    if(game.history[0].crash > 200)
                    {
                        loseStreak = 0;
                    }
                    else
                    {
                        log.info('Not betting until current loseStreak is over.');
                        return;
                    }                    
                }

            log.info('Placed bet for the amount of ' + currentBet);
            game.bet(currentBet, config.payout.value).then(function (payout) {
                runningbalance -= currentBet;
                totalWagers += currentBet;
                totalNumberOfGames += 1;

                if (payout > 1) {
                    var netwin = currentBet * config.payout.value - currentBet;
                    consequetiveLostBets = 0;
                    if(config.loggingLevel.value != 'compact')
                    {
                        LogMessage('We won a net profit of: ' + netwin.toFixed(8), 'success');
                    }
                    netProfit += netwin;
                    runningbalance += netwin + currentBet;

                    if (loseStreak > 0) {
                        loseStreak = 0;
                    }

                    currentStreak += 1;
                    totalWins += 1;

                    LogSummary('true', currentBet);

                    if (config.onWin.value === 'reset') {
                        currentBet = GetNewBaseBet();
                    } else {
                        currentBet *= config.winMultiplier.value;
                    }

                    LogMessage('We won, so next bet will be ' + currentBet.toFixed(8) + ' ' + currency.currencyName, 'success');
                } else {
                        log.error('We lost a net amount of: ' + currentBet.toFixed(8));
                        netProfit -= currentBet;
                        loseStreak += 1;
                        currentStreak = 0;
                        totalLoses += 1;
                        consequetiveLostBets += currentBet;

                        LogSummary('false', currentBet);

                        if (config.onLoss.value == 'reset') {
                            currentBet = GetNewBaseBet();
                        } else {
                            currentBet *= config.lossMultiplier.value;
                        }
                            LogMessage('We lost, so next bet will be ' + currentBet.toFixed(8) + ' ' + currency.currencyName, 'failure');            
                    }

                    if (currentStreak > longestWinStreak) {
                        longestWinStreak = currentStreak;
                    }
                    if (loseStreak > longestLoseStreak) {
                        longestLoseStreak = loseStreak;
                    }

                    recordStats();

                    if (config.winGoalAmount.value != 0 && netProfit > config.winGoalAmount.value) {
                        // we have earned enough stop and quit.
                        log.success('The net profits ' + netProfit.toFixed(8) + ' which triggers stop the for making enough.');
                        game.stop();
                    }
                    if (lossStopAmountVar != 0 && consequetiveLostBets > (lossStopAmountVar)) {
                        // the point of this is to limit the bleed so you don't loose too much.
                        log.error('The net profits ' + netProfit.toFixed(8) + ' which triggers stop for losing enough. The next bet would be ' + currentBet.toFixed(8) + '.');
                        game.stop();
                    }
                }
            );
        }
    };
    }

    function recordStats() {
        if (config.loggingLevel.value != 'compact') {
            LogMessage('total wagers: ' + totalWagers.toFixed(8), 'info');
            LogMessage('Net Profit: ' + netProfit.toFixed(8), 'info');
            LogMessage('Current win streak: ' + currentStreak, 'info');
            LogMessage('Current Lose streak: ' + loseStreak, 'info');
            LogMessage('Total wins: ' + totalWins, 'info');
            LogMessage('Total Losses: ' + totalLoses, 'info');
            LogMessage('Longest win streak: ' + longestWinStreak, 'info');
            LogMessage('Longest lose streak: ' + longestLoseStreak, 'info');
        }
    }

    function GetNewBaseBet() {
        var returnValue = 0;
        returnValue = runningbalance * (config.betPercentage.value / 100);

        if(returnValue > currency.minAmount)
        {
            LogMessage('Recalculating base bet to ' + returnValue.toFixed(8) + ' which is ' + config.betPercentage.value + ' percent of ' + runningbalance.toFixed(8), 'info');
        }
        else
        {
            LogMessage('The recalculated bet amount ' + returnValue.toFixed(8) + ' is lower than the minimum allowed bet.  Setting bet to the minimum allowable amount of ' + currency.minAmount, 'info');
            returnValue = currency.minAmount;
        }

        return returnValue;
    }

    function LogSummary(wasWinner, betAmount) {
        if (config.loggingLevel.value == 'compact') {
            if (wasWinner == 'true') {
                var winAmount = (betAmount * config.payout.value) - betAmount;
                log.success('Winner!! You won ' + winAmount.toFixed(8));
            } else {
                log.error('Loser!! You lost ' + betAmount.toFixed(8));
            }
            var winPercentage = (totalWins / totalNumberOfGames) * 100;
            var losePercentage = (totalLoses / totalNumberOfGames) * 100;

            log.info('Total Games: ' + totalNumberOfGames);
            log.info('Wins: ' + totalWins + '(' + winPercentage.toFixed(2) + ' % )');
            log.info('Loses: ' + totalLoses + '(' + losePercentage.toFixed(2) + ' % )');

            var netNumber = runningbalance - originalbalance;
            var netPecentage = (netNumber / originalbalance) * 100;

            if (originalbalance < runningbalance) {
                log.success('Total Profit: ' + netNumber.toFixed(8) + '(' + netPecentage.toFixed(2) + '%)');
            } else {
                log.error('Total Profit: ' + netNumber.toFixed(8) + '(' + netPecentage.toFixed(2) + '%)');
            }
        }

    }

    /// Determines whether or not to log an event or not to make it easier later
    function LogMessage(message, loggingLevel) {
        if (message) {

            if (config.loggingLevel.value != 'compact') {
                switch (loggingLevel) {
                case 'success':
                    log.success(message);
                    break;
                case 'failure':
                    log.error(message);
                    break;
                case 'info':
                    log.info(message);
                    break;
                case 'compact':
                    break;
                case 'verbose':
                    if (isVerbose)
                        log.info(message);
                    break;
                }
            } else {
                switch (loggingLevel) {
                case 'success':
                    log.success(message);
                    break;
                case 'failure':
                    log.error(message);
                    break;
                case 'compact':
                    log.info(message);
                    break;
                case 'info':
                    break;
                case 'verbose':
                    break;
                }
            }
        }
    }

I on average double up every few hours with this, but there are times where it goes into a run away nose dive so i don't leave it unattended without a stop loss amount set.  But that stop loss is calculated from the last win and not from the session so it will stop before it eats all of the profits away.

nice script
(Stop betting after losing this much without a win.) is not working with me and it is happened many times that i have 10 loses or more , one green and 2 reds for 7 times in row 😞 
any chance to get stop loss enabled ? thanks so much 

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...
  • 1 month later...
  • 3 months later...
On 12/6/2021 at 4:26 AM, Dinscore said:
// The Cookie Monster script.
// created by Cookie High <-- Loves tips
// This script gives you multiple options for both your bets and your payouts on both wins and losses.
// Play around with the settings and find what works for you best.
//
// The defaults settings are the ones I am useing. I have ran it for 5 days.
// I have an average daily return of 3.96%. I notice the days where my win percentage is lower I have retuns
// closer to 5%.
//
// Don't bet more than you can lose. With a 2.1% payout my minimum bet can be doubled 20 times before I go
// broke. The longes losing streak I have seen is 13. Give your self plenty of room and you are less likely
// to loss it all.
//
// Bot safely and go make some money!!!
// Dont forget to friend and tip me. 🙂
 
var config = {
  scriptTitle: {label: 'This script was compiled by Cookie High. Tips are greatly apprciated! Now go make it rain!', type: 'title'},
  baseBet: {label: 'Starting Bet:', value: currency.minAmount, type: 'number'},
  maxBet: {label: 'Maximum Bet:', value: 10000, type: 'number'},
  minBet: {label: 'Minimum Bet:', value: 0, type: 'number'},
  stopBet: {label: 'Stop if Bet is Greater Than:', value: 1e8, type: 'number'},
  basePayout: {label: 'Starting Payout:', value: 2.1, type: 'number'},
  maxPayout: {label: 'Maximum Payout:', value: 10, type: 'number'},
  minPayout: {label: 'Minimum Payout:', value: 2, type: 'number'},
  stopPayout: {label: 'Stop if Payout is Greater Than:', value: 1e8, type: 'number'},
  winRepeat: {label: 'Reset After Win Streak of:', value: 2, type: 'number'},
 
  onBetLossTitle: {label: 'Loss Bet Settings', type: 'title'},
    onBetLoss: {label: '', value: '3', type: 'radio',
      options: [
        {value: '0', label: 'Return to Starting Bet'},
        {value: '1', label: 'Add to Bet'},
        {value: '2', label: 'Subtract From Bet'},
        {value: '3', label: 'Multiply Bet By'},
        {value: '4', label: 'Divide Bet By'}
      ]
    },
  addBetLoss: { label: 'Increase Bet By:', value: 0, type: 'number' },
  subBetLoss: { label: 'Decrease Bet By:', value: 0, type: 'number' },
  mulBetLoss: { label: 'Multiply Bet By:', value: 2, type: 'number' },
  divBetLoss: { label: 'Divide Bet By:', value: 1, type: 'number' },
 
  onPayoutLossTitle :{label: 'Loss Payout Settings', type: 'title'},
    onPayoutLoss: {label: '', value: '0', type: 'radio',
      options: [
        {value: '0', label: 'Return to Starting Payout'},
        {value: '1', label: 'Add to Payout'},
        {value: '2', label: 'Subtract From Payout'},
        {value: '3', label: 'Multiply Payout By'},
        {value: '4', label: 'Divide Payout By'}
      ]
    },
  addPayoutLoss: { label: 'Increase Payout By:', value: 0, type: 'number' },
  subPayoutLoss: { label: 'Decrease Payout By:', value: 0, type: 'number' },
  mulPayoutLoss: { label: 'Multiply Payout By:', value: 1, type: 'number' },
  divPayoutLoss: { label: 'Divide Payout By:', value: 1, type: 'number' },
 
  onBetWinTitle: {label: 'Win Bet Settings', type: 'title'},
    onBetWin: {label: '', value: '0', type: 'radio',
      options: [
        {value: '0', label: 'Return to Starting Bet'},
        {value: '1', label: 'Add to Bet'},
        {value: '2', label: 'Subtract From Bet'},
        {value: '3', label: 'Multiply Bet By'},
        {value: '4', label: 'Divide Bet By'}
      ]
    },
  addBetWin: { label: 'Increase Bet By:', value: 0, type: 'number' },
  subBetWin: { label: 'Decrease Bet By:', value: 0, type: 'number' },
  mulBetWin: { label: 'Multiply Bet By:', value: 1, type: 'number' },
  divBetWin: { label: 'Divide Bet By:', value: 1, type: 'number' },
 
  onPayoutWinTitle :{label: 'Win Payout Settings', type: 'title'},
    onPayoutWin: {label: '', value: '3', type: 'radio',
      options: [
        {value: '0', label: 'Return to Starting Payout'},
        {value: '1', label: 'Add to Payout'},
        {value: '2', label: 'Subtract From Payout'},
        {value: '3', label: 'Multiply Payout By'},
        {value: '4', label: 'Divide Payout By'}
      ]
    },
  addPayoutWin: { label: 'Increase Payout By:', value: 0, type: 'number' },
  subPayoutWin: { label: 'Decrease Payout By:', value: 0, type: 'number' },
  mulPayoutWin: { label: 'Multiply Payout By:', value: 2, type: 'number' },
  divPayoutWin: { label: 'Divide Payout By:', value: 1, type: 'number' },
 
}
 
function main (){
  var baseBet = config.baseBet.value;
  var maxBet = config.maxBet.value;
  var minBet = config.maxBet.value;
  var basePayout = config.minPayout.value;
  var maxPayout = config.maxPayout.value;
  var minPayout = config.minPayout.value;
  var currentBet = config.baseBet.value;
  var currentPayout = config.basePayout.value;
  var onBetWin = config.onBetWin.value;
  var addBetWin = config.addBetWin.value;
  var subBetWin = config.subBetWin.value;
  var mulBetWin = config.mulBetWin.value;
  var divBetWin = config.divBetWin.value;
  var onPayoutWin = config.onPayoutWin.value;
  var addPayoutWin = config.addPayoutWin.value;
  var subPayoutWin = config.subPayoutWin.value;
  var mulPayoutWin = config.mulPayoutWin.value;
  var divPayoutWin = config.divPayoutWin.value;
  var onBetLoss = config.onBetLoss.value;
  var addBetLoss = config.addBetLoss.value;
  var subBetLoss = config.subBetLoss.value;
  var mulBetLoss = config.mulBetLoss.value;
  var divBetLoss = config.divBetLoss.value;
  var onPayoutLoss = config.onPayoutLoss.value;
  var addPayoutLoss = config.addPayoutLoss.value;
  var subPayoutLoss = config.subPayoutLoss.value;
  var mulPayoutLoss = config.mulPayoutLoss.value;
  var divPayoutLoss = config.divPayoutLoss.value;
  var stopPayout = config.stopPayout.value;
  var stopBet = config.stopBet.value;
  var winRepeatCount = config.winRepeat.value
  var winRepeatSet = 1
  var winRepProvision = 0
  var gameStatus = 1
  var gameCounter = 1
 
  game.onBet = function () {
    log.success('Placing Bet For: ' + currentBet + ', At Payout: '+ currentPayout)
   
    game.bet(currentBet, currentPayout).then(function (payout)
        {if (payout > 1)
            {if(!gameStatus)
                {counterReset(true)}
                    log.success('Winner, Winner, Chicken Dinner!')
                        gameStarter(onBetWinSwitch(onBetWin),onPayoutWinSwitch(onPayoutWin))
            }
        else
            {if(gameStatus)
                {gameStatus--}
                    winRepCountReset(true)
                        log.error('We lost that one.')
                            gameStarter(onBetLossSwitch(onBetLoss),onPayoutLossSwitch(onPayoutLoss))
                                gameCounter++
            }
        })
 
function gameStarter(calculatedBet, calculatedPayout)
    {if (currentBet > stopBet)
        {log.error('The bot was stopped because the max bet was reached!');
            game.stop();}
    else
    if (currentPayout > stopPayout)
        {log.error('The bot was stopped because the max payout was reached!');
            game.stop();}
                currentBet = calculatedBet
                currentPayout = calculatedPayout
    }
 
function onBetWinSwitch (switchValue)
{switch(switchValue)
    {case '0':
        return baseBet
      break;
    case '1':
        if(!gameStatus)
            {if(!winRepeatCount)
                {gameStatus++
                    winRepCountReset(true)  
                        return baseBet
                }
            else
                {winRepeatCount--
                    winRepProvision++
                        winRepeatSet--
                        {if (currentBet + (addBetWin) > maxBet)
                            {return maxBet,
                            log.error('Maximum bet reached!')}
                        else
                            return currentBet + (addBetWin)
                        }
                }
            }
        else
            {return baseBet}
                break;
    case '2':
        if(!gameStatus)
            {if(!winRepeatCount)
                {gameStatus++
                    winRepCountReset(true)  
                        return baseBet}
            else
                {winRepeatCount--
                    winRepProvision++
                        winRepeatSet--
                            {if (currentBet - (subBetWin) < minBet)
                                {return minBet,
                                log.error('Minimum bet reached!')}
                            else                        
                                return currentBet - (subBetWin)
                            }
                }
            }
        else
            {return baseBet}
                break;
    case '3':
        if(!gameStatus)
            {if(!winRepeatCount)
                {gameStatus++
                    winRepCountReset(true)  
                        return baseBet}
            else
                {winRepeatCount--
                    winRepProvision++
                        winRepeatSet--
                            {if (currentBet * (mulBetWin) > maxBet)
                                {return maxBet,
                                log.error('Maximum bet reached!')}
                            else                        
                                return currentBet * (mulBetWin)
                            }
                }
            }
    else
    {return baseBet}
        break;
 
        case '4':
        if(!gameStatus)
            {if(!winRepeatCount)
                {gameStatus++
                winRepCountReset(true)  
                    return baseBet}
            else
                {winRepeatCount--
                winRepProvision++
                winRepeatSet--
                    {if (currentBet / (divBetWin) < minBet)
                        {return minBet,
                        log.error('Minimum bet reached!')}
                    else
                        return currentBet / (divBetWin)
                    }
                }
            }
    else
        {return baseBet}
            break;
                           
                   
                   
    }
}
               
function onPayoutWinSwitch (switchValue)
    {switch(switchValue)
        {case '0':
            return basePayout
                break;
        case '1':
            if(!gameStatus)
                {if(!winRepeatCount)
                    {gameStatus++
                        winRepCountReset(true)  
                            return basePayout
                    }
                else
                    {winRepeatCount--
                    winRepProvision++
                    winRepeatSet--
                        {if (currentPayout + (addPayoutWin) > maxPayout)
                            {return maxPayout,
                            log.error('Maximum payout reached!')}
                        else
                            return currentPayout + (addPayoutWin)
                        }
                    }
                }
        else
            {return basePayout}
                break;
        case '2':
            if(!gameStatus)
                {if(!winRepeatCount)
                    {gameStatus++
                    winRepCountReset(true)  
                        return basePayout}
                else
                    {winRepeatCount--
                    winRepProvision++
                    winRepeatSet--
                        {if (currentPayout - (subPayoutWin) < minPayout)
                            {return minPayout,
                            log.error('Minimum payout reached!')}
                        else
                            return currentPayout - (subPayoutWin)
                        }
                    }
                }
            else
                {return basePayout}
                    break;
        case '3':
            if(!gameStatus)
                {if(!winRepeatCount)
                    {gameStatus++
                    winRepCountReset(true)  
                        return basePayout}
                else
                    {winRepeatCount--
                    winRepProvision++
                    winRepeatSet--
                        {if (currentPayout * (mulPayoutWin) > maxPayout)
                            {return maxPayout,
                            log.error('Maximum payout reached!')}
                        else    
                            return currentPayout * (mulPayoutWin)
                        }
                    }
                }
        case '4':
            if(!gameStatus)
                {if(!winRepeatCount)
                    {gameStatus++
                    winRepCountReset(true)  
                        return basePayout}
                else
                    {winRepeatCount--
                    winRepProvision++
                    winRepeatSet--
                        {if (currentPayout / (divPayoutWin) < minPayout)
                            {return minPayout,
                            log.error('Minimum payout reached!')}
                        else  
                            return currentPayout / (divPayoutWin)
                        }
                    }
                }
        else
            {return basePayout}
                break;
    }
}}
function onBetLossSwitch (switchValue)
    {switch(switchValue)
        {case '0':
            return baseBet
                break;
        case '1':
            {if (currentBet + (addBetLoss) > maxBet)
                {return maxBet,
                log.error('Maximum bet reached!')}
            else
                return currentBet + (addBetLoss)}
                break;
        case '2':
            {if (currentBet - (subBetLoss) < minBet)
                {return minBet,
                log.error('Minimum bet reached!')}
            else
                return currentBet - (subBetLoss)}
                break;
        case '3':
            {if (currentBet * (mulBetLoss) > maxBet)
                {return maxBet,
                log.error('Maximum bet reached!')}
            else
                return currentBet * (mulBetLoss)}
                break;
        case '4':
            {if (currentBet / (divBetLoss) < minBet)
                {return minBet,
                log.error('Minimum bet reached!')}
            else
                return currentBet / (divBetLoss)}
                break;
        }  
    }
function onPayoutLossSwitch (switchValue)
    {switch(switchValue)
        {case '0':
            return basePayout
                break;
        case '1':
            {if (currentPayout + (addPayoutLoss) > maxPayout)
                {return maxPayout,
                log.error('Maximum payout reached!')}
            else
                return currentPayout + (addPayoutLoss)}
                break;
        case '2':
            {if (currentPayout - (subPayoutLoss) < minPayout)
                {return minPayout,
                log.error('Minimum payout reached!')}
            else
                return currentPayout - (subPayoutLoss)}
                break;
        case '3':
            {if (currentPayout * (mulPayoutLoss) > maxPayout)
                {return maxPayout,
                log.error('Maximum payout reached!')}
            else
            return currentPayout * (mulPayoutLoss)}
                break;
        case '4':
            {if (currentPayout / (divPayoutLoss) < minPayout)
                {return minPayout ,
                log.error('Minimum payout reached!')}
            else
            return currentPayout / (divPayoutLoss)}
                break;
        }
    }
function counterReset(itsZero)
    {if(itsZero)
        {gameCounter--
        if(!gameCounter)
            {gameCounter++
            return}
                counterReset(true)
        }
    }
function winRepCountReset(itsZero)
    {if(!winRepProvision)
        {return}
            if(itsZero)
            {winRepeatCount++
                winRepProvision--
                    if(!winRepProvision)
                        {return}
                            winRepCountReset(true)
            }
    }
}

Hi,

Great script, thanks for sharing here.

I have one small request that, Could you pls add a feature to above Script  that after two losses in a row, it should pause until it sees at least 1 win. 

One more feature If possible, Payout goes to 10x automatically if lose streak cross 17 till lose recovered.

 

Thanks in advance.

Link to comment
Share on other sites

  • 2 weeks later...
On 12/9/2021 at 8:49 AM, Skele said:

kind of lack luster.  I have several scripts but one of main things i did was add better logging image.png.f86dda1f2d8720599e6fee5c49f4b07a.png

I also added a feature that after two losses in a row, it will pause until it sees at least 1 win.  You sometimes miss a win on the 3rd game true.  But i no longer have to deal with 13 game losing streaks.  It will take two and then just wait it out for green pastures.  I need to change my script back to straight amounts for better, currently i use a percentage of my bank roll for the bet and then this one is the typical double it on loss. I will post it in its own message

var config = {
    betPercentage: {
        label: 'percentage of total coins to bet',
        value: 0.25,
        type: 'number'
    },
    payout: {
        label: 'payout',
        value: 2,
        type: 'number'
    },
    onLoseTitle: {
        label: 'On Lose',
        type: 'title'
    },
    onLoss: {
        label: '',
        value: 'increase',
        type: 'radio',
        options: [{
                value: 'reset',
                label: 'Return to base bet'
            }, {
                value: 'increase',
                label: 'Increase bet by (loss multiplier)'
            }
        ]
    },
    lossMultiplier: {
        label: 'loss multiplier',
        value: 2,
        type: 'number'
    },
    onWinTitle: {
        label: 'On Win',
        type: 'title'
    },
    onWin: {
        label: '',
        value: 'reset',
        type: 'radio',
        options: [{
                value: 'reset',
                label: 'Return to base bet'
            }, {
                value: 'increase',
                label: 'Increase bet by (win multiplier)'
            }
        ]
    },
    winMultiplier: {
        label: 'win multiplier',
        value: 1,
        type: 'number'
    },
    otherConditionsTitle: {
        label: 'Other Stopping Conditions',
        type: 'title'
    },    
    winGoalAmount: {
        label: 'Stop once you have made this much',
        value: currency.amount * 2,
        type: 'number'
    },
    lossStopAmount: {
        label: 'Stop betting after losing this much without a win.',
        value: 0,
        type: 'number'
    },    
    otherConditionsTitle: {
        label: 'Experimentle Please Ignore',
        type: 'title'
    },
    loggingLevel: {
        label: 'logging level',
        value: 'compact',
        type: 'radio',
        options: [{
                value: 'info',
                label: 'info'
            }, {
                value: 'compact',
                label: 'compact'
            }, {
                value: 'verbose',
                label: 'verbose'
            }
        ]
    }
};
// deleted input parameters
var stop = 0;
var lossesForBreak = 0;
var roundsToBreakFor = 0;

// end deleted parameters
var totalWagers = 0;
var netProfit = 0;
var totalWins = 0;
var totalLoses = 0;
var longestWinStreak = 0;
var longestLoseStreak = 0;
var currentStreak = 0;
var loseStreak = 0;
var numberOfRoundsToSkip = 0;
var currentBet = GetNewBaseBet();
var totalNumberOfGames = 0;
var originalbalance = currency.amount;
var runningbalance = currency.amount;
var consequetiveLostBets = 0;
var lossStopAmountVar = config.lossStopAmount.value;

function main() {

    game.onBet = function () {

        // if we are set to skip rounds then do so.
        if (numberOfRoundsToSkip > 0) {
            numberOfRoundsToSkip -= 1;
            log.info('Skipping round to relax, and the next ' + numberOfRoundsToSkip + ' rounds.');
            return;
        } else {
        
                if(totalNumberOfGames == 0)
                {
                    // this is so we account for the first round.
                    currentBet = GetNewBaseBet();
                }
                
                if(loseStreak >= 2)
                {
                    if(game.history[0].crash > 200)
                    {
                        loseStreak = 0;
                    }
                    else
                    {
                        log.info('Not betting until current loseStreak is over.');
                        return;
                    }                    
                }

            log.info('Placed bet for the amount of ' + currentBet);
            game.bet(currentBet, config.payout.value).then(function (payout) {
                runningbalance -= currentBet;
                totalWagers += currentBet;
                totalNumberOfGames += 1;

                if (payout > 1) {
                    var netwin = currentBet * config.payout.value - currentBet;
                    consequetiveLostBets = 0;
                    if(config.loggingLevel.value != 'compact')
                    {
                        LogMessage('We won a net profit of: ' + netwin.toFixed(8), 'success');
                    }
                    netProfit += netwin;
                    runningbalance += netwin + currentBet;

                    if (loseStreak > 0) {
                        loseStreak = 0;
                    }

                    currentStreak += 1;
                    totalWins += 1;

                    LogSummary('true', currentBet);

                    if (config.onWin.value === 'reset') {
                        currentBet = GetNewBaseBet();
                    } else {
                        currentBet *= config.winMultiplier.value;
                    }

                    LogMessage('We won, so next bet will be ' + currentBet.toFixed(8) + ' ' + currency.currencyName, 'success');
                } else {
                        log.error('We lost a net amount of: ' + currentBet.toFixed(8));
                        netProfit -= currentBet;
                        loseStreak += 1;
                        currentStreak = 0;
                        totalLoses += 1;
                        consequetiveLostBets += currentBet;

                        LogSummary('false', currentBet);

                        if (config.onLoss.value == 'reset') {
                            currentBet = GetNewBaseBet();
                        } else {
                            currentBet *= config.lossMultiplier.value;
                        }
                            LogMessage('We lost, so next bet will be ' + currentBet.toFixed(8) + ' ' + currency.currencyName, 'failure');            
                    }

                    if (currentStreak > longestWinStreak) {
                        longestWinStreak = currentStreak;
                    }
                    if (loseStreak > longestLoseStreak) {
                        longestLoseStreak = loseStreak;
                    }

                    recordStats();

                    if (config.winGoalAmount.value != 0 && netProfit > config.winGoalAmount.value) {
                        // we have earned enough stop and quit.
                        log.success('The net profits ' + netProfit.toFixed(8) + ' which triggers stop the for making enough.');
                        game.stop();
                    }
                    if (lossStopAmountVar != 0 && consequetiveLostBets > (lossStopAmountVar)) {
                        // the point of this is to limit the bleed so you don't loose too much.
                        log.error('The net profits ' + netProfit.toFixed(8) + ' which triggers stop for losing enough. The next bet would be ' + currentBet.toFixed(8) + '.');
                        game.stop();
                    }
                }
            );
        }
    };
    }

    function recordStats() {
        if (config.loggingLevel.value != 'compact') {
            LogMessage('total wagers: ' + totalWagers.toFixed(8), 'info');
            LogMessage('Net Profit: ' + netProfit.toFixed(8), 'info');
            LogMessage('Current win streak: ' + currentStreak, 'info');
            LogMessage('Current Lose streak: ' + loseStreak, 'info');
            LogMessage('Total wins: ' + totalWins, 'info');
            LogMessage('Total Losses: ' + totalLoses, 'info');
            LogMessage('Longest win streak: ' + longestWinStreak, 'info');
            LogMessage('Longest lose streak: ' + longestLoseStreak, 'info');
        }
    }

    function GetNewBaseBet() {
        var returnValue = 0;
        returnValue = runningbalance * (config.betPercentage.value / 100);

        if(returnValue > currency.minAmount)
        {
            LogMessage('Recalculating base bet to ' + returnValue.toFixed(8) + ' which is ' + config.betPercentage.value + ' percent of ' + runningbalance.toFixed(8), 'info');
        }
        else
        {
            LogMessage('The recalculated bet amount ' + returnValue.toFixed(8) + ' is lower than the minimum allowed bet.  Setting bet to the minimum allowable amount of ' + currency.minAmount, 'info');
            returnValue = currency.minAmount;
        }

        return returnValue;
    }

    function LogSummary(wasWinner, betAmount) {
        if (config.loggingLevel.value == 'compact') {
            if (wasWinner == 'true') {
                var winAmount = (betAmount * config.payout.value) - betAmount;
                log.success('Winner!! You won ' + winAmount.toFixed(8));
            } else {
                log.error('Loser!! You lost ' + betAmount.toFixed(8));
            }
            var winPercentage = (totalWins / totalNumberOfGames) * 100;
            var losePercentage = (totalLoses / totalNumberOfGames) * 100;

            log.info('Total Games: ' + totalNumberOfGames);
            log.info('Wins: ' + totalWins + '(' + winPercentage.toFixed(2) + ' % )');
            log.info('Loses: ' + totalLoses + '(' + losePercentage.toFixed(2) + ' % )');

            var netNumber = runningbalance - originalbalance;
            var netPecentage = (netNumber / originalbalance) * 100;

            if (originalbalance < runningbalance) {
                log.success('Total Profit: ' + netNumber.toFixed(8) + '(' + netPecentage.toFixed(2) + '%)');
            } else {
                log.error('Total Profit: ' + netNumber.toFixed(8) + '(' + netPecentage.toFixed(2) + '%)');
            }
        }

    }

    /// Determines whether or not to log an event or not to make it easier later
    function LogMessage(message, loggingLevel) {
        if (message) {

            if (config.loggingLevel.value != 'compact') {
                switch (loggingLevel) {
                case 'success':
                    log.success(message);
                    break;
                case 'failure':
                    log.error(message);
                    break;
                case 'info':
                    log.info(message);
                    break;
                case 'compact':
                    break;
                case 'verbose':
                    if (isVerbose)
                        log.info(message);
                    break;
                }
            } else {
                switch (loggingLevel) {
                case 'success':
                    log.success(message);
                    break;
                case 'failure':
                    log.error(message);
                    break;
                case 'compact':
                    log.info(message);
                    break;
                case 'info':
                    break;
                case 'verbose':
                    break;
                }
            }
        }
    }

I on average double up every few hours with this, but there are times where it goes into a run away nose dive so i don't leave it unattended without a stop loss amount set.  But that stop loss is calculated from the last win and not from the session so it will stop before it eats all of the profits away.

Thanks for the great script @Skele,

 

Could you please add one more function to this script 2nd payout like below script

 

var config = {
  baseBet: { label: "Base Bet", value: currency.minAmount, type: "number" },
  basePayout: { label: "Base Payout", value: 2, type: "number" },
  newPayout: { label: "New Payout", value: 1.25, type: "number" },
  stop: { label: "Stop If Next Bet >", value: 1e8, type: "number" },
  onLoseTitle: { label: "On Lose", type: "title" },
  onLoss: {
    label: "",
    value: "increase",
    type: "radio",
    options: [      
      { value: "increase", label: "Increase bet by (loss multiplier)" },
    ],
  },
  lossMultiplier: { label: "loss multiplier", value: 6, type: "number" },
  onWinTitle: { label: "On Win", type: "title" },
  onWin: {
    label: "",
    value: "reset",
    type: "radio",
    options: [
      { value: "reset", label: "Return to base bet" },      
    ],
  },
};
function main() {
  var currentBet = config.baseBet.value;
  var currentPayout = config.basePayout.value;
  game.onBet = function () {
    game.bet(currentBet, currentPayout).then(function (payout) {
      if (payout > 1) {
        if (config.onWin.value === "reset") {
          currentBet = config.baseBet.value;
          currentPayout = config. basePayout.value;
        }
        log.success(
          "We won payout " + " " +currentPayout +  "X " +  "so next bet will be " +
            currentBet +
            " " +
            currency.currencyName
        );
      } else {
        if (config.onLoss.value === "reset") {
          currentBet = config.baseBet.value;
          currentPayout = config.basePayout.value;
        } else {
          currentBet *= config.lossMultiplier.value;
          currentPayout = config.newPayout.value;
        }
        log.error(
          "We lost payout " + " " +currentPayout +  "X " +  "so next bet will be " +
            currentBet +
            " " +
            currency.currencyName
        );
      }
      if (currentBet > config.stop.value) {
        log.error(
          "Was about to bet " + currentBet + " which triggers the stop"
        );
        game.stop();
      }
    });
  };
}
Link to comment
Share on other sites

  • 2 weeks later...
On 12/9/2021 at 8:49 AM, Skele said:

kind of lack luster.  I have several scripts but one of main things i did was add better logging image.png.f86dda1f2d8720599e6fee5c49f4b07a.png

I also added a feature that after two losses in a row, it will pause until it sees at least 1 win.  You sometimes miss a win on the 3rd game true.  But i no longer have to deal with 13 game losing streaks.  It will take two and then just wait it out for green pastures.  I need to change my script back to straight amounts for better, currently i use a percentage of my bank roll for the bet and then this one is the typical double it on loss. I will post it in its own message

var config = {
    betPercentage: {
        label: 'percentage of total coins to bet',
        value: 0.25,
        type: 'number'
    },
    payout: {
        label: 'payout',
        value: 2,
        type: 'number'
    },
    onLoseTitle: {
        label: 'On Lose',
        type: 'title'
    },
    onLoss: {
        label: '',
        value: 'increase',
        type: 'radio',
        options: [{
                value: 'reset',
                label: 'Return to base bet'
            }, {
                value: 'increase',
                label: 'Increase bet by (loss multiplier)'
            }
        ]
    },
    lossMultiplier: {
        label: 'loss multiplier',
        value: 2,
        type: 'number'
    },
    onWinTitle: {
        label: 'On Win',
        type: 'title'
    },
    onWin: {
        label: '',
        value: 'reset',
        type: 'radio',
        options: [{
                value: 'reset',
                label: 'Return to base bet'
            }, {
                value: 'increase',
                label: 'Increase bet by (win multiplier)'
            }
        ]
    },
    winMultiplier: {
        label: 'win multiplier',
        value: 1,
        type: 'number'
    },
    otherConditionsTitle: {
        label: 'Other Stopping Conditions',
        type: 'title'
    },    
    winGoalAmount: {
        label: 'Stop once you have made this much',
        value: currency.amount * 2,
        type: 'number'
    },
    lossStopAmount: {
        label: 'Stop betting after losing this much without a win.',
        value: 0,
        type: 'number'
    },    
    otherConditionsTitle: {
        label: 'Experimentle Please Ignore',
        type: 'title'
    },
    loggingLevel: {
        label: 'logging level',
        value: 'compact',
        type: 'radio',
        options: [{
                value: 'info',
                label: 'info'
            }, {
                value: 'compact',
                label: 'compact'
            }, {
                value: 'verbose',
                label: 'verbose'
            }
        ]
    }
};
// deleted input parameters
var stop = 0;
var lossesForBreak = 0;
var roundsToBreakFor = 0;

// end deleted parameters
var totalWagers = 0;
var netProfit = 0;
var totalWins = 0;
var totalLoses = 0;
var longestWinStreak = 0;
var longestLoseStreak = 0;
var currentStreak = 0;
var loseStreak = 0;
var numberOfRoundsToSkip = 0;
var currentBet = GetNewBaseBet();
var totalNumberOfGames = 0;
var originalbalance = currency.amount;
var runningbalance = currency.amount;
var consequetiveLostBets = 0;
var lossStopAmountVar = config.lossStopAmount.value;

function main() {

    game.onBet = function () {

        // if we are set to skip rounds then do so.
        if (numberOfRoundsToSkip > 0) {
            numberOfRoundsToSkip -= 1;
            log.info('Skipping round to relax, and the next ' + numberOfRoundsToSkip + ' rounds.');
            return;
        } else {
        
                if(totalNumberOfGames == 0)
                {
                    // this is so we account for the first round.
                    currentBet = GetNewBaseBet();
                }
                
                if(loseStreak >= 2)
                {
                    if(game.history[0].crash > 200)
                    {
                        loseStreak = 0;
                    }
                    else
                    {
                        log.info('Not betting until current loseStreak is over.');
                        return;
                    }                    
                }

            log.info('Placed bet for the amount of ' + currentBet);
            game.bet(currentBet, config.payout.value).then(function (payout) {
                runningbalance -= currentBet;
                totalWagers += currentBet;
                totalNumberOfGames += 1;

                if (payout > 1) {
                    var netwin = currentBet * config.payout.value - currentBet;
                    consequetiveLostBets = 0;
                    if(config.loggingLevel.value != 'compact')
                    {
                        LogMessage('We won a net profit of: ' + netwin.toFixed(8), 'success');
                    }
                    netProfit += netwin;
                    runningbalance += netwin + currentBet;

                    if (loseStreak > 0) {
                        loseStreak = 0;
                    }

                    currentStreak += 1;
                    totalWins += 1;

                    LogSummary('true', currentBet);

                    if (config.onWin.value === 'reset') {
                        currentBet = GetNewBaseBet();
                    } else {
                        currentBet *= config.winMultiplier.value;
                    }

                    LogMessage('We won, so next bet will be ' + currentBet.toFixed(8) + ' ' + currency.currencyName, 'success');
                } else {
                        log.error('We lost a net amount of: ' + currentBet.toFixed(8));
                        netProfit -= currentBet;
                        loseStreak += 1;
                        currentStreak = 0;
                        totalLoses += 1;
                        consequetiveLostBets += currentBet;

                        LogSummary('false', currentBet);

                        if (config.onLoss.value == 'reset') {
                            currentBet = GetNewBaseBet();
                        } else {
                            currentBet *= config.lossMultiplier.value;
                        }
                            LogMessage('We lost, so next bet will be ' + currentBet.toFixed(8) + ' ' + currency.currencyName, 'failure');            
                    }

                    if (currentStreak > longestWinStreak) {
                        longestWinStreak = currentStreak;
                    }
                    if (loseStreak > longestLoseStreak) {
                        longestLoseStreak = loseStreak;
                    }

                    recordStats();

                    if (config.winGoalAmount.value != 0 && netProfit > config.winGoalAmount.value) {
                        // we have earned enough stop and quit.
                        log.success('The net profits ' + netProfit.toFixed(8) + ' which triggers stop the for making enough.');
                        game.stop();
                    }
                    if (lossStopAmountVar != 0 && consequetiveLostBets > (lossStopAmountVar)) {
                        // the point of this is to limit the bleed so you don't loose too much.
                        log.error('The net profits ' + netProfit.toFixed(8) + ' which triggers stop for losing enough. The next bet would be ' + currentBet.toFixed(8) + '.');
                        game.stop();
                    }
                }
            );
        }
    };
    }

    function recordStats() {
        if (config.loggingLevel.value != 'compact') {
            LogMessage('total wagers: ' + totalWagers.toFixed(8), 'info');
            LogMessage('Net Profit: ' + netProfit.toFixed(8), 'info');
            LogMessage('Current win streak: ' + currentStreak, 'info');
            LogMessage('Current Lose streak: ' + loseStreak, 'info');
            LogMessage('Total wins: ' + totalWins, 'info');
            LogMessage('Total Losses: ' + totalLoses, 'info');
            LogMessage('Longest win streak: ' + longestWinStreak, 'info');
            LogMessage('Longest lose streak: ' + longestLoseStreak, 'info');
        }
    }

    function GetNewBaseBet() {
        var returnValue = 0;
        returnValue = runningbalance * (config.betPercentage.value / 100);

        if(returnValue > currency.minAmount)
        {
            LogMessage('Recalculating base bet to ' + returnValue.toFixed(8) + ' which is ' + config.betPercentage.value + ' percent of ' + runningbalance.toFixed(8), 'info');
        }
        else
        {
            LogMessage('The recalculated bet amount ' + returnValue.toFixed(8) + ' is lower than the minimum allowed bet.  Setting bet to the minimum allowable amount of ' + currency.minAmount, 'info');
            returnValue = currency.minAmount;
        }

        return returnValue;
    }

    function LogSummary(wasWinner, betAmount) {
        if (config.loggingLevel.value == 'compact') {
            if (wasWinner == 'true') {
                var winAmount = (betAmount * config.payout.value) - betAmount;
                log.success('Winner!! You won ' + winAmount.toFixed(8));
            } else {
                log.error('Loser!! You lost ' + betAmount.toFixed(8));
            }
            var winPercentage = (totalWins / totalNumberOfGames) * 100;
            var losePercentage = (totalLoses / totalNumberOfGames) * 100;

            log.info('Total Games: ' + totalNumberOfGames);
            log.info('Wins: ' + totalWins + '(' + winPercentage.toFixed(2) + ' % )');
            log.info('Loses: ' + totalLoses + '(' + losePercentage.toFixed(2) + ' % )');

            var netNumber = runningbalance - originalbalance;
            var netPecentage = (netNumber / originalbalance) * 100;

            if (originalbalance < runningbalance) {
                log.success('Total Profit: ' + netNumber.toFixed(8) + '(' + netPecentage.toFixed(2) + '%)');
            } else {
                log.error('Total Profit: ' + netNumber.toFixed(8) + '(' + netPecentage.toFixed(2) + '%)');
            }
        }

    }

    /// Determines whether or not to log an event or not to make it easier later
    function LogMessage(message, loggingLevel) {
        if (message) {

            if (config.loggingLevel.value != 'compact') {
                switch (loggingLevel) {
                case 'success':
                    log.success(message);
                    break;
                case 'failure':
                    log.error(message);
                    break;
                case 'info':
                    log.info(message);
                    break;
                case 'compact':
                    break;
                case 'verbose':
                    if (isVerbose)
                        log.info(message);
                    break;
                }
            } else {
                switch (loggingLevel) {
                case 'success':
                    log.success(message);
                    break;
                case 'failure':
                    log.error(message);
                    break;
                case 'compact':
                    log.info(message);
                    break;
                case 'info':
                    break;
                case 'verbose':
                    break;
                }
            }
        }
    }

I on average double up every few hours with this, but there are times where it goes into a run away nose dive so i don't leave it unattended without a stop loss amount set.  But that stop loss is calculated from the last win and not from the session so it will stop before it eats all of the profits away.

@Skele Excellent script, we have stop loss by amount, also could you please add stop loss (Reset actually) by number of loses  with reset function (Game should continue with base bet & base payout once it reached desired number of loses, without stopping the game)

Link to comment
Share on other sites

You need to be a member in order to leave a comment

Sign up for a new account in our community. It's easy!

Register a new account

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...