// ==UserScript== // @name Freebitco.in - Auto Roll (no captcha) - Status Console - Human Behavior - All Bonuses - Jun 2020 // @description 0. BEST AUTOROLL SCRIPT IN JUN 2020 1. Auto Roll 2. Status Console 3. Close ADS 4. Human Simulation 5. Multiply game 6. Lottery tickets 7. Bonus 1000% 8. Rewards RP 9. Slower in the night 10. Undetectable 11.TopDown Config - made by dany-veneno in 2018 for private use, published in 2020, constantly updated. // @author dany-veneno // @icon https://bit.ly/3bY0vU9 // @match https://freebitco.in/* // @grant none // @create 2018-05-27 // @lastmodified 2020-06-01 // @version 2.7.4 // @namespace https://greasyfork.org/users/572366 // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js // @license NTP // @supportURL https://bit.ly/3d1kW48 // @home-url https://bit.ly/2M4BNH7 // @home-url2 https://bit.ly/2zn0b4p // @homepageURL https://greasyfork.org/en/scripts/404112 // @copyright 2018-2020, dany-veneno // @run-at document-end // @note 2020-06-01-V.2.7.4 Captcha error // @note 2020-06-01-V.2.7.3 Bug fix - rollback on random click on button // @note 2020-06-01-V.2.7.2 Bug fix on rewards function // @note 2020-06-01-V.2.7.1 Add Bonus Status in the box && name && description // @note 2020-06-01-V.2.7 Click on Roll Button at random position && cookie for rewardsBonuses! // @note 2020-06-01-V.2.6 Bug Fixes && FreeRoll interval etc. && Count distance from jackpot corrected (road to multiply) // @note 2020-05-29-V.2.5.3 Night mode more sleepy && added a 2h delay in daymode // @note 2020-05-29-V.2.5.2 Body Focus // @note 2020-05-28-V.2.5.1 Add rate link && StatusBox texts // @note 2020-05-28-V.2.5 Code Cleaned and optimized, all code in separate functions // @note 2020-05-28-V.2.2.2 Promo_Mode Flag && Bonus1000 flag // @note 2020-05-27-V.2.2.1 Script Name // @note 2020-05-27-V.2.2 ExecutionsNum && Script Name && Description // @note 2020-05-27-V.2.1 First Execution fast Roll && Staus title && link to config how to // @note 2020-05-27-V.2.0.1 Minor changes and fixes // @note 2020-05-27-V.2.0.0 MAJOR: STATUS CONSOLE && ADS remove // @note 2020-05-26-V.1.9.1 Outputs && default loglevel to 4 // @note 2020-05-26-V.1.9 Timings in Roll && Sleep between buying RP && Colors && fixes // @note 2020-05-26-V.1.8 Hour format update && reduced lottery tickets number && fixes // @note 2020-05-25-V.1.7 Added logging && changed timings && verifying all good && faster on RPActive // @downloadURL none // ==/UserScript== //////////// // CONFIG // //////////// // >>>>>>>>>>>>>> // // *** Bonuses var REWARDS = true; //decide if auto buy rewards bonuses, or not ***When true, it will activate RP promotions*** var BONUS1000 = true; //decide if to buy 1000% bonus or not. It costs 4600 RP. *** When BONUS1000 = false and REWARDS = true, you'll increase RP. *** var PROMO_MODE = true; // decide if play faster when some promo (bonus RP or 1000% is active, or not. // *** Lottery var LOTTERY = true; //decide if auto buy lottery tickets, or not. ***When true, It will buy lottery tickets 7% of the times *** var LOTTERY_MAX_TICKETS = 20; // Max ticket to buy // *** Multiply Game ** Wait for version 3.0 to activate it. var MULTIPLY = false; //decide if play Multiply games or not ***It's a doubling technique. Play at your risk *** ***When true, it's played randomly*** var MAX_ROLLS_AT_MULTIPLY = 1000; //how many rolls in multiply. // ** Logging var LOGGING = 5; //0 is no messages, 5 is debug // <<<<<<<<<<<<<< // // System Variables // // >>>>>>>>>>>>>>>> // var css_reset='font-weight: reset; color:reset'; var css_bold='font-weight:bold;'; var script_output = ""; var script_output_msg_1 = ""; var script_output_msg_2 = ""; var script_output_msg_css = ""; var reward = {}; var ads_closed=0; //number of ads closed, increasing var rolling_mode="Day"; //night, day, promo var dateTimeFormat = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'short', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: false }); var script_version = GM_info.script.version; var totJack = getCookie("totJack"); var tot_exec = getCookie("executions"); var last_multiply = getCookie("last_multiply") var isBonusActive = false; var rand = 0; // <<<<<<<<<<<<<<<< // (function() { 'use strict'; if (LOGGING > 0) console.log("%c<<<<<<<<<< Script Begin >>>>>>>>>>", 'font-weight:bold; color: green'); // Initialize the Status Panel panelInit(); // Lottery function // It will plan to buy few lottery tickets, more less 7% of the times lottery(); // Reward function // it will call the roll function, that call the multiply function. // Call the freeRoll setInterval(function(){ setTimeout(function(){ rewards(); }, 3000 ); setTimeout(function(){ freeRoll(); }, 5000 ); setTimeout(function(){ showStatus(); }, 1000 ); }(), 900000); setInterval(function(){ // Close the reveals mode closePopupInterval($('.close-reveal-modal')); closePopupInterval($('.pushpad_deny_button')); }, 30000); //Close Ads but not always setTimeout(function(){ closeRandomPopupInterval($('div.close_daily_jackpot_main_container_div'),30); closeRandomPopupInterval($('i.fa.fa-times-circle.close_deposit_promo_message'),40); closeRandomPopupInterval($('div#lambo_contest_msg a.close'),10); //lambo contest closeRandomPopupInterval($('div#earn_btc_msg a.close'),20); closeRandomPopupInterval($('div#enable_2fa_msg_alert a.close'),30); closeRandomPopupInterval($("[id^='hide_rp_promo']"),50); }, 20000) //Show elapsed time every 10 min. setInterval(function(){ showStatus(); }, 900000); // Activate DOM Monitors // First, check all played numbers, even in multiply, and check if it's 8888. To have a measure when to play *jackpot*. $('#previous_roll').on('DOMSubtreeModified', function(){ var rolled = $('#previous_roll').html(); if (rolled > 0 && rolled <= 10000 && rolled != 8888){ //if (LOGGING > 4) console.log("prevNumber rolled: "+rolled); totJack++; setCookie("totJack", totJack, "365"); //console.log(document.cookie); } else if (rolled == 8888) { setCookie("totJack", 0, "365"); if (LOGGING > 0) console.log("************** 8888 **************"); } }); // Give info about jackpot $('#multiplier_fifth_digit').on('click', function(){ showStatus(); }); } )(); function panelInit () { // Create the Div on the page script_output_msg_css = ""; script_output = script_output_msg_css + '
'; script_output += '

AutoRoll Status v.'+script_version+'

'; script_output += '
'; script_output += 'Executions #'+tot_exec+'
'; script_output += 'Ads Closed: 0
'; script_output += 'Bonus: Wait
'; script_output += 'Mode: Wait
'; script_output += '
'; script_output += '
'; script_output += '

'; script_output += '

'; script_output += '

Donations are welcome, btc address: 3FwAazZDEuy3ER4NQVp4Yqo6kDxCFntwS8 - Config HowTo - Rate - © daniele-veneno 2018-2020

'; $('#reward_points_bonuses_main_div').prepend(script_output); } function rewards() { var points = parseInt($('.user_reward_points').text().replace(',',"")); var bonustime = {}; var t = missingTime(); var d = new Date(); var _min = 20; if ($("#bonus_container_free_points").length != 0) { bonustime.text = $('#bonus_span_free_points').text(); bonustime.hour = parseInt(bonustime.text.split(":")[0]); bonustime.min = parseInt(bonustime.text.split(":")[1]); bonustime.sec = parseInt(bonustime.text.split(":")[2]); bonustime.current = bonustime.hour * 3600 + bonustime.min * 60 + bonustime.sec; isBonusActive = true; } else bonustime.current = 0; var last_bonus = Date.parse(getCookie("last_bonus")); var last_bonus_diff = Math.floor(d - last_bonus); if (LOGGING > 4) console.log("%c[Debug] lastBonus diff: "+last_bonus_diff+" -- last_bonus: "+last_bonus+" -- d: "+d.getTime(), 'color:grey'); if (LOGGING > 4) console.log("Bonus missing seconds: "+bonustime.current+" -- Reward Points avail: "+points+" -- missingTime: "+t[0]); if (Boolean(isBonusActive)) { if (LOGGING > 3) console.log("%cPromo RP is active!", 'color: grey'); if(Boolean(PROMO_MODE)) $("#script_output_title_msg_mode").text("Promo"); $('#script_output_title_bonus_wait_hours').text('Active '+bonustime.hour+'h'); setCookie("last_bonus", d, 7); } else { // Buy Bonus if missing less then 10 minutes before roll and has passed at least 24h from the last one if (Boolean(REWARDS) && t[0]<_min && t[0] > 0 && last_bonus_diff > 86400000) { $('.rewards_link').not('.hide_menu').click(); if (reward.points < 12) { if (LOGGING > 2) console.log("No enough points to buy bonus. Less then 12. Waiting for points in next rolls"); } else if (points < 120) { if (LOGGING > 1) console.log("buying bonus 1RP"); setTimeout(function(){ RedeemRPProduct('free_points_1')},random(2000,16000)); } else if (points < 600) { if (LOGGING > 1) console.log("buying bonus 10RP"); setTimeout(function(){ RedeemRPProduct('free_points_10')},random(2000,16000)); } else if (points < 1200) { if (LOGGING > 1) console.log("buying bonus 50RP"); setTimeout(function(){ RedeemRPProduct('free_points_50')},random(2000,16000)); } else { if (LOGGING > 1) console.log("buying bonus 100RP"); setTimeout(function(){ RedeemRPProduct('free_points_100')},random(2000,16000)); } if ($('#bonus_span_fp_bonus').length === 0) if (points >= 4600 && Boolean(BONUS1000) ) { if (LOGGING > 1) console.log("buying bonus 1000% roll"); setTimeout(function(){ RedeemRPProduct('fp_bonus_1000')},random(15000,35000)); } //Back to the main page setTimeout(function(){ $('.free_play_link').not('.hide_menu').click(); }, random(1000,3000)); // Update Status Menu $("#script_output_title_msg_mode").text("promo"); } else { //getting colors var c1 = 'red'; var c2 = 'red' var min_before_roll = 20; if (last_bonus_diff < 86400000) { if (LOGGING > 3) console.log('Not buying RP. Wait 24hours before buy again'); $('#script_output_title_bonus_wait_hours').text('Wait '+Math.floor(last_bonus_diff/1000/60/60)+"h"); } if (t[0] >= min_before_roll) { if (LOGGING > 3) console.log('Not buying RP. Wait '+Math.floor(t[0]-min_before_roll)+'m'); $('#script_output_title_bonus_wait_hours').text('Wait Roll'); } else if (t[0] < 0){ if (LOGGING > 3) console.log('%cError getting missing time.','color:red'); $('#script_output_title_bonus_wait_hours').text('Err001'); $('#script_output_title_bonus_wait_hours').removeClass('true').addClass('false'); } else c2 = 'green'; if (Boolean(REWARDS)) { c1 = 'green'; } else { if (LOGGING > 3) console.log('Not buying RP. Not Active by config'); $('#script_output_title_bonus_wait_hours').text('Not Active'); $('#script_output_title_bonus_wait_hours').removeClass('true').addClass('false'); } if (LOGGING > 3) console.log('Not buying RPBonuses: Setting Variable is: %c'+Boolean(REWARDS)+' %c -- %c and missing minutes are: %c '+t[0]+' %c(<'+min_before_roll+')', 'color:'+c1, 'color:reset; font-weight:bold', 'font-weight: reset', 'color:'+c2, 'color:reset; font-weight:bold'); } } } function freeRoll() { var d = new Date(); var h = d.getHours(); var rand=0; var r=0; var tot_btc_winning_rolling = getCookie('tot_btc_winning_rolling'); var tot_lottery_winning_rolling = getCookie('tot_lottery_winning_rolling'); var tot_rp_winning_rolling = getCookie('tot_rp_winning_rolling'); var executions = getCookie('executions'); if (! (tot_btc_winning_rolling > 0)) tot_btc_winning_rolling = 0; if (! (tot_lottery_winning_rolling > 0)) tot_lottery_winning_rolling = 0; if (! (tot_rp_winning_rolling > 0)) tot_rp_winning_rolling = 0; if (! (executions > 0)) executions = 0; if ($('#free_play_form_button').is(':visible') && ! $('#play_without_captchas_button').is(':visible')) { r=random(1,100); $('body').focus(); if (h <= 6 || h>=22) { //from 22 to 7am if (r <= 30) rand=random(3000,7200000); else rand=random(1000000,3600000); rolling_mode="Night"; } else { if (r <= 10) rand=random(9000,7200000); // xx%, long wait, more than hour else if (r <= 30) rand=random(6000,1800000); // long but not longest else if (r <= 71) rand=random(3000,1200000); // xx% cases medium else rand=random(500,60000); // xx% cases fast roll rolling_mode="Day"; } if (Boolean(isBonusActive) && Boolean(PROMO_MODE) ) { //If promo is active, roll faster if (r <= 5) rand=random(9000,3600000); else if (r <= 20) rand=random(6000,1500000); else if (r <= 40) rand=random(3000,1000000); else rand=random(500,240000); rolling_mode="Promo"; } if (tot_btc_winning_rolling == 0) { rand=random(1000,2000); if (LOGGING > 2) console.log('>>>>> First Execution, fast ROLL'); } $("#script_output_title_msg_mode").text(rolling_mode); //rand = rand(1000,2000); d.setSeconds(d.getSeconds() + rand/1000); var [{ value: year },,{ value: month },,{ value: day },,{ value: hour },,{ value: minute }] = dateTimeFormat .formatToParts(d); $('#script_output_title_msg_roll').html('Roll at '+hour+':'+minute+''); if (LOGGING > 2) console.log('%c+++Will roll in '+rand/1000/60+' minutes','color:green'); if (LOGGING > 4) console.log('[Debug][freeRoll] Hour:'+h+'; r:'+r); setTimeout(function(){ $('.free_play_link').not('.hide_menu').click();}, 1800); setTimeout(function(){ //Duplicate the visibility chek to avoid error when humans roll and don't refresh. if ($('#free_play_form_button').is(':visible') && ! $('#play_without_captchas_button').is(':visible')){ $('body').focus(); //Update Status on page $('#script_output_title_msg_roll').html('++ Rolling NOW!'); // Status on page if (LOGGING > 2) console.log('%c+++ROLL!','color:purple; font-weight: bold'); setTimeout(function(){ // var event= $.Event('click'); // event.ClientX = random(20,100).toFixed(0); // event.ClientY = random(5,42).toFixed(0); // if (LOGGING > 4) console.log('[Debug][freeRoll] Clicking at position: '+event.ClientX+':'+event.ClientY); $('#free_play_form_button').click(); }, 500); setTimeout(function(){ var win_btc = $('#winnings').text(); var win_lottery = $('#fp_lottery_tickets_won').text(); var win_rp = $('#fp_reward_points_won').text(); executions++; //Update Status on page $('#script_output_title_msg_roll').html('++ Rolled'); // Status on page $('#script_output_title_executions_num').text(executions); setCookie('executions', executions, 365); if (LOGGING > 2) console.log('%cExecution number: '+executions,'font-weight:bold; color:green'); if (LOGGING > 2) console.log('%cGot '+win_btc+' btc, '+win_lottery+' tickets and '+win_rp+' RP!','font-weight:bold; color:green'); if (win_btc > 0) { tot_btc_winning_rolling = parseFloat(parseFloat(tot_btc_winning_rolling) + parseFloat(win_btc)).toFixed(8); setCookie('tot_btc_winning_rolling', tot_btc_winning_rolling, 365); if (LOGGING > 2) console.log('%cBTC Won totally with script %c'+tot_btc_winning_rolling,'color: gray', 'font-weight:bold'); } else { if (LOGGING > 1) console.log(''+'%cSome error retrieving Roll Winnings. Winning btc was: '+win_btc, 'color: red'); } if (win_lottery > 0) { tot_lottery_winning_rolling = parseFloat(parseFloat(tot_lottery_winning_rolling) + parseFloat(win_lottery)).toFixed(0); setCookie('tot_lottery_winning_rolling', tot_lottery_winning_rolling, 365); if (LOGGING > 2) console.log('%cTickets Won with script %c'+tot_lottery_winning_rolling,'color: gray', 'font-weight:bold'); } else { if (LOGGING > 1) console.log(''+'%cSome error retrieving Roll Winnings. Winning lottery was: '+win_btc, 'color: red'); } if (win_rp > 0) { tot_rp_winning_rolling = parseFloat(parseFloat(tot_rp_winning_rolling) + parseFloat(win_rp)).toFixed(0); setCookie('tot_rp_winning_rolling', tot_rp_winning_rolling, 365); if (LOGGING > 2) console.log('%cRP Won with script %c'+tot_rp_winning_rolling,'color: gray', 'font-weight:bold'); } else { if (LOGGING > 1) console.log(''+'%cSome error retrieving Roll Winnings. Winning RP was: '+win_btc, 'color: red'); } }, 6999); } else { if (LOGGING > 3) console.log('Already Rolled..'); //Update Status on page $('#script_output_title_msg_roll').html('Already Rolled'); // Status on page setTimeout(function(){ location.reload(); }, 30000); } },rand); var rand1=rand+random(900000,1800000); rand=random(0,1000); if (rand < 500) { if (LOGGING > 2) console.log('[Debug][freeRoll] Reload page after roll in '+rand1/1000/60+' minutes!'); setTimeout(function(){ location.reload(); }, rand1); } else if (rand > 900 && Boolean(MULTIPLY) && h>=8) { if (LOGGING > 0) console.log('Will multiply in '+rand1/1000/60+' minutes!'); setTimeout(function(){ multiply(); }, rand1); } else { if (LOGGING > 2) console.log('No action after roll. Rand was '+rand); } } else if ($('#play_without_captchas_button').is(':visible')){ $('#script_output_title_msg_roll').html('Captcha Error'); } else { $('#script_output_title_msg_roll').html('Waiting Next Roll'); //$("#script_output_title_msg_mode").text("Wait"); if (LOGGING > 2) console.log("No roll"); } } function lottery () { //Plan buying lottery ticket if(Boolean(LOTTERY)){ var r=random(1,100); var d = new Date(); var h = d.getHours(); if (r > 90 && h>=7) { rand=random(1,LOTTERY_MAX_TICKETS).toFixed(0); //Tickets to buy if (LOGGING > 2) console.log("Buy "+ rand + " lottery tickets in some time...."); if(parseInt($('#balance').text().split(".")[1]) > rand) { $('lottery_link hide_menu').click(); setTimeout(function(){ $('#lottery_tickets_purchase_count').val(rand); setTimeout(function(){ $('#purchase_lottery_tickets_button').click(); if (LOGGING > 2) console.log("Bought "+ rand + " lottery tickets"); }, random(2000,20000)); }, random(40000,2700000)); } } } } function missingTime () { var min = 0; var sec = 0; var str = ""; str = $('title').text().split(" ")[0]; if (LOGGING > 4) console.log("%c[Debug] [missingTime] string: "+str, 'color: grey'); if (str.length <= 7 && str.length >= 3) { min = str.split(':')[0]; if (min.length > 0) min = min.replace('m',''); sec = str.split(':')[1]; if (sec.length > 0) sec = sec.replace('s',''); } else { min = -1; sec = -1; } return [min,sec]; } function random(min,max){ return min + (max - min) * Math.random(); } function closePopupInterval (target) { if (target.is(':visible')) { setTimeout(function(){ if (LOGGING > 3) console.log("%cClose ADS", 'color: grey'); target.click(); ads_closed ++; $('#script_output_title_ads_closed_num').text(ads_closed); }, random (500,120000)); } else { //if (LOGGING > 4) console.log("%cNot visible: "+target.attr('id')+" "+target.attr('class'), 'color: grey'); } } function closeRandomPopupInterval (target, randomness) { var rand = random(1,100); if (rand < randomness && target.is(':visible')) { setTimeout(function(){ if (LOGGING > 3) console.log("%cClose Random ADS", 'color: grey'); target.click(); ads_closed ++; $('#script_output_title_ads_closed_num').text(ads_closed); }, random (500,120000)); } else { //if (LOGGING > 4) console.log("%cNot visible: "+target.attr('id')+" "+target.attr('class'), 'color: grey'); } } function showStatus(){ var t=missingTime(); var date = new Date(); var [{ value: month },,{ value: day },,{ value: year },,{ value: hour },,{ value: minute }] = dateTimeFormat .formatToParts(date ); var ca='red'; var cb='red'; var cc='red'; var css='font-weight: bold; color:'; var c1='purple'; var c2='olive'; var c3='brown'; var c4='teal'; if (LOGGING > 0) console.log(">>>>>>>>>>%c Status:%c ["+hour+":"+minute+"]", css_bold+'color:'+c1, css_bold); //Rewards and multiply infos and colors if (Boolean(REWARDS)) ca = 'green'; if (Boolean(MULTIPLY)) cb='green'; if (Boolean(LOTTERY)) cc='green'; var cssa='font-weight: bold; color:'+ca; var cssb='font-weight: bold; color:'+cb; var cssc='font-weight: bold; color:'+cc; if (LOGGING > 0) console.log(">>>>>>>>>> Buying Rewards: "+"%c"+Boolean(REWARDS)+""+"%c; Playing Multiply: "+"%c"+Boolean(MULTIPLY)+""+"%c; Buying Lottery: "+"%c"+Boolean(LOTTERY), cssa, css_reset,cssb, css_reset, cssc); if (t[0] > 0 || t[1] > 0) { if (LOGGING > 0) console.log(">>>>>>>>>> Missing "+"%c"+t[0]+" min "+t[1]+" sec"+"%c for next roll",css_bold+"color:"+c1,css_reset); } // Free Roll total Winnings via cookie var tot_btc_winning_rolling = getCookie('tot_btc_winning_rolling'); var tot_lottery_winning_rolling = getCookie('tot_lottery_winning_rolling'); var tot_rp_winning_rolling = getCookie('tot_rp_winning_rolling'); if (! (tot_btc_winning_rolling > 0)) tot_btc_winning_rolling = 0; if (! (tot_lottery_winning_rolling > 0)) tot_lottery_winning_rolling = 0; if (! (tot_rp_winning_rolling > 0)) tot_rp_winning_rolling = 0; if (LOGGING > 0) console.log(">>>>>>>>>> BTC won with script: "+"%c"+tot_btc_winning_rolling, css_bold+'color:'+c4); if (LOGGING > 0) console.log(">>>>>>>>>> Tickets won with script: "+"%c"+tot_lottery_winning_rolling, css_bold+'color:'+c4); if (LOGGING > 0) console.log(">>>>>>>>>> RP won with script: "+"%c"+tot_rp_winning_rolling, css_bold+'color:'+c4); if (LOGGING > 0) console.log(">>>>>>>>>> Rolls from last 8888: "+"%c"+totJack, css_bold+'color:'+c2); // Update Status Message OnPage script_output_msg_2 = "Config: "; script_output_msg_2 += "REWARDS <> "; script_output_msg_2 += "MULTIPLY <> "; script_output_msg_2 += "LOTTERY <> "; script_output_msg_2 += "BONUS1000"; script_output_msg_2 += "
"; script_output_msg_2 += " Auto Roll Script Winnings: "; script_output_msg_2 += ""+tot_btc_winning_rolling+" btc; "; script_output_msg_2 += ""+tot_lottery_winning_rolling+" tickets; "; script_output_msg_2 += ""+tot_rp_winning_rolling+" RP."; $('#script_output_msg_2').html(script_output_msg_2); } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0; i 2) console.log('bonus balance: '+bonustime_balance+'; wager remaining: '+bonustime_wager_remaining); } if (LOGGING > 2) console.log('total balance: '+balance); setTimeout(function(){ $('.free_play_link').not('.hide_menu').click(); }, random(900000,1200000)); }