// ==UserScript==
// @name Hi-Lo Multiply Strategy - Martingale based/Customisable/Low-
High profit-risk settings/
// @version 1.2
// @description Play Hi-Lo with fixed target profit - Easily customisable
strategies - Low/High/Super-High profit/risk presets included
// @description Toggle strategy by selecting stake values below, default
target is 0.00000048 first 4 rolls, 42 streak lose
// @description Can lose up to 40-50 times (depending on bet strat)
consecutively in one game before losing - Probability of loss per game (0.81^40 =
0.013% to 0.81^50 = 0.0026%)
// @description Please sign up using my ref link if not already:
https://freebitco.in/?r=529225
// @description I'm a poor student so a donation is greatly appreciated when
you make money with the script! -> BTC 18hYAkW64ndoPUWFXVv9MoRK5A414xwCPe
// @author rorg314
// @match https://freebitco.in/?op=home
// @match https://freebitco.in/?op=home#
// @match https://freebitco.in/
// @match https://freebitco.in/*
// @require
http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @namespace https://greasyfork.org/users/583382
// ==/UserScript==
//Variables
var start_multiplier = '5';
var repeatCurrent = 0;
var stopped = false;
var startbalance=0;
var maxWait = 100;
var stopBefore = 1;
var startValue = 0.00000007;
var succg = 0;
var failg = 0;
var rollsmax = 0;
//Button triggers
var $loButton = $("#double_your_btc_bet_lo_button"), $hiButton = $
("#double_your_btc_bet_hi_button");
var $multiplier = $('#double_your_btc_payout_multiplier');
//----------//----------//----------//----------// STAKE
VALUES //----------//----------//----------//----------//
//Several presets given below, see also the stratergy calculator linked in
description //
//WARNING NON EXPONENTIAL NUMBERS - MUST BE CONVERTED TO BTC (1 = 0.00000001 btc)
var number =
[12,15,19,19,19,22,27,34,42,53,66,83,103,129,161,202,252,315,394,492,615,769,961,12
02,1502,1878,2347,2934,3667,4584,5730,7163,8953,11192,13990,17487,21859,27324,34155
,42693,53367,66708]; var npnumber=4; //DEFAULT HIGH//Profit 0.00000048 first 4 / 42
roll lose
//var number =
[5,6,7,9,11,11,13,16,20,25,31,39,49,61,76,95,119,149,186,233,291,364,455,568,710,88
8,1110,1387,1734,2168,2710,3387,4234,5292,6615,8269,10336,12920,16150,20188,25235,3
1544,39430,49287]; var npnumber=7; // DEFAULT MED// - 0.00000020 profit on first 7
rolls / 44 roll lose
//var number =
[2,2,3,3,4,4,5,6,8,10,12,15,19,24,30,37,47,58,73,91,114,142,178,222,278,347,434,543
,678,848,1060,1325,1656,2070,2588,3235,4043,5054,6318,7897,9871,12339,15424,19280,2
4100,30125,37656,47070,58838,73547]; var npnumber=7; //DEFAULT LOW//Profit
0.00000005 on first 7 rolls / 50 roll lose
//Some other strats
//var number =
[10,10,10,10,11,13,17,21,26,33,41,51,64,80,100,125,156,195,244,305,381,476,595,744,
930,1163,1453,1817,2271,2839,3548,4435,5544,6930,8663,10828,13535,16919,21149,26436
,33045,41306,51633,64541]; var npnumber=2; //Profit 0.00000040 first 2 roll / 44
roll lose
//var number =
[22,28,28,28,28,34,43,53,67,83,104,130,163,203,254,318,397,496,620,775,969,1211,151
4,1893,2366,2957,3697,4621,5776,7220,9025,11281,14102,17627,22034,27542,34428,43035
,53794,67242]; var npnumber=3; // 0.000000088 profit first 3 rolls / 40 lose streak
// HIGHER RISK
//var number =
[5,7,8,8,8,10,12,15,19,24,30,37,46,58,72,90,113,141,176,220,275,344,430,538,672,840
,1050,1313,1641,2051,2564,3205,4006,5008,6260,7825,9781,12226,15283,19103,23879,298
49,37311,46639,58299,72873,91092,113865]; var npnumber=4; // Profit 0.00000020
first 4 / 48 lose streak
//Super high profit strats - USE AT YOUR OWN RISK
//var number =
[130,162,203,203,203,226,282,353,441,551,689,861,1077,1346,1682,2103,2629,3286,4107
,5134,6418,8022,10028,12535,15668,19585,24482,30602,38253,47816,59770,74712,93390,1
16738]; var npnumber = 4; ~0.00000500 profit first 4; 34 streak lose (~0.1% chance
of lose per game) - Profit incredibly fast 0.001 btc in ~100 games, but probability
of loss high! I have won 0.02 in one streak and then promptly lost 0.01 it with two
34+ roll streaks in quick sucsession so it's not foolproof
//var number =
[56,70,88,110,137,137,150,188,235,293,367,458,573,716,895,1119,1399,1748,2185,2732,
3415,4268,5335,6669,8336,10420,13025,16282,20352,25440,31800,39750,49688,62110,7763
7,97046,121308]; var npnumber = 6; 0.00000250 first 6, 37 lose streak //both of
these high risk so use at your own risk!! Profit extremely fast and setup to lose
after 0.005 btc spend
//var number =
[31,38,48,60,60,60,75,94,117,146,183,229,286,357,447,558,698,872,1090,1363,1704,213
0,2662,3328,4160,5200,6500,8125,10156,12695,15869,19836,24795,30994,38742,48428,605
35,75668,94585,118232]; var npnumber = 5; //Profit 0.000001000 first 5, 40 streak
lose
var stake = 0.00000001;
var maxTries = number.length;
//
//----------//----------//----------//----------//
FUNCTIONS //----------//----------//----------//----------//
//Multiply function ---------------------
function multiply() {
//Stake index
repeatCurrent++;
if (repeatCurrent > rollsmax){rollsmax = repeatCurrent} //Count highest
number of rolls played so far
if (repeatCurrent > maxTries){reset(); return $lobutton;} //reset if reach
end of stakes with no win - LOSE MONEY
//Set stake value based on repeat number (convert # to btc 1 = 0.00000001
btc)
stake = (number[repeatCurrent-1])*0.00000001;
$("#double_your_btc_stake").val(stake.toFixed(8));
$multiplier.val('5');
return $hiButton;
} //multiply end -----------------------
//Get random wait
function getRandomWait() {
var wait = Math.floor(Math.random() * maxWait) +200; return wait;
}
//Start, Stop and Reset functions
function startGame() {
startbalance = $("#balance").text();
console.log("Game started!");
reset();
$loButton.trigger("click");
}
function stopGame() {
console.log("Game will stop soon! Let me finish.");
stopped = true;
}
function reset(multiplier) {
repeatCurrent = 0;
}
//Stop before freeroll timer end
function stopBeforeRedirect() {
var minutes = parseInt($("title").text());
if (minutes < stopBefore) {
console.log("Approaching redirect! Stop the game so we don't get redirected
while loosing.");
stopGame();
return true;
}
return false;
}
//Generate random string for client seed
function generateRandomString(comb, minLength, maxLength) {
let randomString = '';
let characters = '';
let numbers = '0123456789';
let upperCaseLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let lowerCaseLetters = 'abcdefghijklmnopqrstuvwxyz';
let length = Math.floor(Math.random() * (maxLength - minLength + 1)) +
minLength;
if (comb == 'random') comb = Math.floor(Math.random() * 7);
switch (comb) {
case 1:
characters = numbers;
break;
case 2:
characters = upperCaseLetters;
break;
case 3:
characters = lowerCaseLetters;
break;
case 4:
characters = numbers + upperCaseLetters;
break;
case 5:
characters = numbers + lowerCaseLetters;
break;
case 6:
characters = upperCaseLetters + lowerCaseLetters;
break;
default:
characters = numbers + upperCaseLetters + lowerCaseLetters;
for (let i = 0; i < length; i++) {
randomString += characters.charAt(Math.floor(Math.random() *
characters.length));
return randomString;
//Get html element id
function id(id) {
return document.getElementById(id);
}
//Check if bet button clicked
function isBetButtonDisabled(mod) {
return id('double_your_btc_bet_' + mod + '_button').getAttribute('disabled');
}
//----------//----------//----------//----------// BET TRIGGERING
SYSTEM //----------//----------//----------//----------//
//Buttons
$("#double_your_btc_bet_lose").unbind();
$("#double_your_btc_bet_win").unbind();
//Store previous balance
var balance_prev = parseFloat( $("#balance").text() ) || 0;
//Checking if win/lost
$("#double_your_btc_bet_lose").bind("DOMSubtreeModified", function(event) {
if ($(event.currentTarget).is(':contains("lose")')) {
//Previous bet was lost
//Call multiply fn using variable, after random wait
var btn = multiply();
setTimeout(function() {btn.trigger("click");}, getRandomWait());
}
});
$("#double_your_btc_bet_win").bind("DOMSubtreeModified", function(event) {
if ($(event.currentTarget).is(':contains("win")')) {
//Previous bet was won
//Stop if near reload
if (stopBeforeRedirect()) {
return;
}
//Count games won max profit
if (repeatCurrent > npnumber){failg++;}
else{succg++;}
//Reload page if rolled close to max
if(rollsmax > (maxTries-2)){window.location.reload(); reset();
startGame(); };
//Reset and start game again
reset(); var btn = multiply();
setTimeout(function() {btn.trigger("click");}, getRandomWait());
}
});
//-----------------//----------------//-----------------// STAT
UPDATE //----------------//-----------------//----------------//
//Stat config values//
let isBetButtonClicked = false;
let rollsCount = 0;
let starterBalance = 0;
let statTableExists = false;
let rollStat = {
update: function() {
let currentBalance = (Number(parseFloat(id('balance').textContent)) +
Number(parseFloat(id('bonus_account_balance').textContent))).toFixed(8);
let profit = (currentBalance - starterBalance).toFixed(8);
rollsCount += 1;
//Stat values
if (statTableExists === false) this.setTable(currentBalance);
id('stat-rolls-count').innerHTML = '<span style="color:#039">Rolls
played : </span>' + rollsCount;
id('stat-starter-balance').innerHTML = '<span style="color:#039">Starter
balance : </span>' + starterBalance;
id('stat-current-balance').innerHTML = '<span style="color:#039">Current
balance : </span>' + currentBalance;
id('stat-profit1').innerHTML = '<span style="color:#039">Profit : </span>'
+ profit;
id('stat-profit2').innerHTML = '<span style="color:#039"># Max :
</span>' + succg; //number of games with high profit
id('stat-profit3').innerHTML = '<span style="color:#039"># Min :
</span>' + failg; //number with min profit
id('stat-rollsmax').innerHTML = '<span style="color:#039">Highest roll
#: </span>' + rollsmax + '/' + maxTries; //Most rolls played in one game
},
setTable: function(currentBalance){
let hStyle = [];
hStyle = document.getElementsByTagName('head');
//Display values under multiply game
id('double_your_btc_main_container_outer').insertAdjacentHTML('afterend',
'<table style = "border:none;background:none; width:968px; text-align:center; font-
weight:bold;margin-bottom:0px;font-size:14px;color:#333"><tr
style="padding:0px;height:36px;line-height:36px"><td id="stat-rolls-count"><span
style="color:#039">Rolls played : </span>' + rollsCount + '</td><td id="stat-
starter-balance"><span style="color:#039">Starter balance : </span>' +
starterBalance + '</td><td id="stat-current-balance"><span
style="color:#039">Current balance : </span>' + currentBalance + '</td><td
id="stat-profit2"><span style="color:#039"># won max : </span>' + succg + '</td><td
id="stat-profit3"><span style="color:#039"># won min : </span>' + failg + '</td><td
id="stat-rollsmax"><span style="color:#039">Most lost : </span>' + rollsmax +'/'+
maxTries + '</td><td id="stat-profit1"><span style="color:#039">Profit : </span>' +
(currentBalance - starterBalance).toFixed(8) );
statTableExists = true;
}
};
//Check button clicked and change seed - update rollstats
function init(mod) {
if (isBetButtonDisabled(mod) == 'disabled') {
isBetButtonClicked = true;
return
} else {
if (isBetButtonClicked === true) {
id('next_client_seed').value = generateRandomString('random', 3, 20);
rollStat.update();
isBetButtonClicked = false;
} else {
return
}
}
}
id('double_your_btc_bet_hi_button').addEventListener("DOMSubtreeModified",
function() {
init('hi');
});
id('double_your_btc_bet_lo_button').addEventListener("DOMSubtreeModified",
function() {
init('lo');
});
starterBalance = (Number(parseFloat(id('balance').textContent)) +
Number(parseFloat(id('bonus_account_balance').textContent))).toFixed(8);
rollStat.setTable(starterBalance);
//----------------//----------------//
START //--------------//----------------//---------------//----------------//------
------------------------------------------
startGame();