Auto-login + 1000 clicks @1ms with anti-stuck protection
// ==UserScript==
// @name CryptoTapBot Auto-Clicker
// @namespace UserScripts
// @match https://cyptotapbot.fun/*
// @description Auto-login + 1000 clicks @1ms with anti-stuck protection
// @author Rubystance
// @license MIT
// @grant none
// @version 1.2
// ==/UserScript==
(function () {
'use strict';
const YOUR_EMAIL = "YOUR_FAUCETPAY_EMAIL_HERE"; // << YOUR_FAUCETPAY_EMAIL
const REF_LINK = "https://cyptotapbot.fun/[email protected]";
const CLICK_DELAY = 1;
const MAX_CLICKS = 1000;
const STUCK_TIMEOUT = 10000;
let isClicking = false;
let stuckTimer = null;
function checkReference() {
if (
window.location.href === "https://cyptotapbot.fun/" ||
window.location.href === "https://cyptotapbot.fun"
) {
console.log("[CTB] Redirecting to ref link...");
window.location.replace(REF_LINK);
}
}
function login() {
const input = document.querySelector('#login-email');
const btn = document.querySelector('#submit-btn');
if (!input || !btn) return;
if (input.value === "") {
input.value = YOUR_EMAIL;
input.dispatchEvent(new Event('input', { bubbles: true }));
console.log("[CTB] Email filled");
setTimeout(() => {
btn.click();
console.log("[CTB] Login clicked");
}, 800);
}
}
function performClicks() {
if (isClicking) return;
const clickArea = document.querySelector('.absolute.inset-8.rounded-full');
if (!clickArea) return;
isClicking = true;
let count = 0;
console.log("[CTB] Energy full → starting 1000 clicks @1ms");
const interval = setInterval(() => {
clickArea.click();
count++;
if (count >= MAX_CLICKS) {
clearInterval(interval);
isClicking = false;
console.log("[CTB] Click cycle finished");
}
}, CLICK_DELAY);
}
function monitorEnergy() {
const energyText = document.querySelector('#e-text');
if (!energyText) return;
if (energyText.innerText.includes("1000/1000")) {
performClicks();
if (!stuckTimer) {
stuckTimer = setTimeout(() => {
console.warn("[CTB] Stuck detected → reloading");
location.reload();
}, STUCK_TIMEOUT);
}
} else {
if (stuckTimer) {
clearTimeout(stuckTimer);
stuckTimer = null;
}
}
}
checkReference();
setInterval(login, 3000);
setInterval(monitorEnergy, 1000);
})();