// ==UserScript== // @name bloxd.io auto clicker, account gen (Draggable UI, Notifications, Right Default) // @namespace https://bloxd.io // @version 1.1 // @description Auto clicker for bloxd.io with draggable UI (defaults top right), notifications, arraylist, and simultaneous modules // @author MakeItOrBreakIt // @match https://staging.bloxd.io/* // @grant none // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/531448/bloxdio%20auto%20clicker%2C%20account%20gen%20%28Draggable%20UI%2C%20Notifications%2C%20Right%20Default%29.user.js // @updateURL https://update.greasyfork.icu/scripts/531448/bloxdio%20auto%20clicker%2C%20account%20gen%20%28Draggable%20UI%2C%20Notifications%2C%20Right%20Default%29.meta.js // ==/UserScript== (function () { const config = JSON.parse(localStorage.getItem('bloxdConfig')) || { leftClickKey: 'KeyR', rightClickKey: 'KeyF' }; let minCPS = 10, maxCPS = 15; let leftClickActive = false, rightClickActive = false; let leftClickInterval, rightClickInterval; let arraylistVisible = true; let arraylist = []; // Notification system function showNotification(msg, duration = 1800) { let notif = document.createElement("div"); notif.className = "bloxd-notification"; notif.textContent = msg; document.body.appendChild(notif); setTimeout(() => { notif.style.opacity = "0"; setTimeout(() => notif.remove(), 400); }, duration); } // Original click simulation: dispatchEvent on canvas const TARGET_SELECTOR = "#noa-canvas"; function simulateClick(button) { const element = document.querySelector(TARGET_SELECTOR); if (!element) return; element.dispatchEvent(new MouseEvent("mousedown", { button, bubbles: true })); element.dispatchEvent(new MouseEvent("mouseup", { button, bubbles: true })); if (button === 0) element.dispatchEvent(new MouseEvent("click", { button, bubbles: true })); if (button === 2) element.dispatchEvent(new MouseEvent("contextmenu", { button, bubbles: true })); } function randomInterval() { return 1000 / (Math.random() * (maxCPS - minCPS) + minCPS); } function startLeftClick() { if (leftClickActive) return; leftClickActive = true; function loop() { if (!leftClickActive) return; simulateClick(0); leftClickInterval = setTimeout(loop, randomInterval()); } loop(); updateArraylist(); } function stopLeftClick() { leftClickActive = false; clearTimeout(leftClickInterval); updateArraylist(); } function toggleLeftClick() { leftClickActive ? stopLeftClick() : startLeftClick(); } function startRightClick() { if (rightClickActive) return; rightClickActive = true; function loop() { if (!rightClickActive) return; simulateClick(2); rightClickInterval = setTimeout(loop, randomInterval()); } loop(); updateArraylist(); } function stopRightClick() { rightClickActive = false; clearTimeout(rightClickInterval); updateArraylist(); } function toggleRightClick() { rightClickActive ? stopRightClick() : startRightClick(); } function saveConfig() { localStorage.setItem('bloxdConfig', JSON.stringify(config)); } function clearCookies() { document.cookie.split(";").forEach(cookie => { document.cookie = cookie.split("=")[0] + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/"; }); setTimeout(() => location.reload(), 1000); } function updateArraylist() { arraylist = []; if (leftClickActive) arraylist.push("Auto Left Click"); if (rightClickActive) arraylist.push("Auto Right Click"); renderArraylist(); } function renderArraylist() { const arrDiv = document.getElementById("bloxd-arraylist"); arrDiv.innerHTML = arraylist.length ? arraylist.map(f => `${f}`).join("
") : `No features active`; arrDiv.style.display = arraylistVisible ? "block" : "none"; } function createUI() { // Load saved position or use default (right: 10px, top: 10px) let saved = JSON.parse(localStorage.getItem('bloxdUIPos') || '{}'); let useCustom = typeof saved.x === "number" && typeof saved.y === "number"; let startX = saved.x || 0, startY = saved.y || 10; // Main UI container let ui = document.createElement("div"); ui.id = "bloxd-ui-container"; if (useCustom) { ui.setAttribute("style", `position: fixed; top: ${startY}px; left: ${startX}px; right: auto; background: rgba(0,0,0,0.8); color: white; padding: 10px; border-radius: 8px; z-index: 9999; font-size: 14px; min-width: 320px; max-width: 440px; box-shadow: 0 2px 8px #0008; cursor: move;`); } else { ui.setAttribute("style", `position: fixed; top: 10px; right: 10px; left: auto; background: rgba(0,0,0,0.8); color: white; padding: 10px; border-radius: 8px; z-index: 9999; font-size: 14px; min-width: 320px; max-width: 440px; box-shadow: 0 2px 8px #0008; cursor: move;`); } ui.innerHTML = `
`; document.body.appendChild(ui); // Arraylist display let arrDiv = document.createElement("div"); arrDiv.id = "bloxd-arraylist"; arrDiv.className = "arraylist-container"; if (useCustom) { arrDiv.setAttribute("style", `position: fixed; top: ${startY+140}px; left: ${startX}px; right: auto; background: rgba(30,30,30,0.97); color: #00ffb0; padding: 10px 22px; border-radius: 8px; z-index: 10000; font-size: 16px; min-width: 120px; text-align: left; box-shadow: 0 2px 8px #0008; user-select: none; margin-top: 10px;`); } else { arrDiv.setAttribute("style", `position: fixed; top: 150px; right: 10px; left: auto; background: rgba(30,30,30,0.97); color: #00ffb0; padding: 10px 22px; border-radius: 8px; z-index: 10000; font-size: 16px; min-width: 120px; text-align: left; box-shadow: 0 2px 8px #0008; user-select: none; margin-top: 10px;`); } document.body.appendChild(arrDiv); // Drag logic let isDragging = false, dragOffsetX = 0, dragOffsetY = 0; ui.addEventListener('mousedown', function(e) { if (e.target.tagName === "INPUT" || e.target.tagName === "BUTTON") return; isDragging = true; dragOffsetX = e.clientX - ui.getBoundingClientRect().left; dragOffsetY = e.clientY - ui.getBoundingClientRect().top; document.body.style.userSelect = "none"; }); document.addEventListener('mousemove', function(e) { if (!isDragging) return; let x = e.clientX - dragOffsetX; let y = e.clientY - dragOffsetY; // Clamp to window x = Math.max(0, Math.min(window.innerWidth - ui.offsetWidth, x)); y = Math.max(0, Math.min(window.innerHeight - ui.offsetHeight, y)); ui.style.left = x + "px"; ui.style.top = y + "px"; ui.style.right = "auto"; // Move arraylist too arrDiv.style.left = x + "px"; arrDiv.style.top = (y + 140) + "px"; arrDiv.style.right = "auto"; }); document.addEventListener('mouseup', function(e) { if (isDragging) { isDragging = false; document.body.style.userSelect = ""; // Save position localStorage.setItem('bloxdUIPos', JSON.stringify({ x: parseInt(ui.style.left), y: parseInt(ui.style.top) })); } }); // Event listeners document.getElementById("leftClickToggle").onclick = () => { toggleLeftClick(); }; document.getElementById("rightClickToggle").onclick = () => { toggleRightClick(); }; document.getElementById("clearCookies").onclick = clearCookies; document.getElementById("minCPS").onchange = e => { minCPS = parseInt(e.target.value); }; document.getElementById("maxCPS").onchange = e => { maxCPS = parseInt(e.target.value); }; document.getElementById("saveKeys").onclick = () => { config.leftClickKey = document.getElementById("keyLeft").value; config.rightClickKey = document.getElementById("keyRight").value; saveConfig(); showNotification("Keybinds saved!"); }; document.getElementById("arraylistToggle").onclick = () => { arraylistVisible = !arraylistVisible; renderArraylist(); }; // Initial render updateArraylist(); } // Keybinds for toggling features document.addEventListener("keydown", (event) => { if (event.repeat || ["INPUT", "TEXTAREA"].includes(event.target.tagName) || event.target.isContentEditable) return; if (event.code === config.leftClickKey) toggleLeftClick(); if (event.code === config.rightClickKey) toggleRightClick(); }); if (!/Mobi|Android/i.test(navigator.userAgent)) { createUI(); } // Extra CSS for buttons/inputs and notifications const styles = ` #bloxd-ui-container .action-button { background-color: #444; color: white; border: none; padding: 9px 18px; border-radius: 6px; margin: 0 2px; cursor: pointer; font-size: 15px; transition: background-color 0.3s; } #bloxd-ui-container .action-button:hover { background-color: #888; } #bloxd-ui-container .action-button:active { background-color: #333; } #bloxd-ui-container .cps-label, #bloxd-ui-container .key-label { margin: 0 4px; font-size: 13px; } #bloxd-ui-container input[type="number"], #bloxd-ui-container input[type="text"] { padding: 4px 7px; font-size: 13px; width: 55px; margin-left: 2px; border-radius: 3px; border: 1px solid #333; background: #222; color: #fff; } #bloxd-arraylist .arraylist-item { color: #00ffb0; font-weight: bold; } .bloxd-notification { position: fixed; top: 20px; right: 20px; background: #222d; color: #fff; padding: 12px 24px; border-radius: 8px; font-size: 16px; z-index: 10001; box-shadow: 0 2px 8px #0008; opacity: 1; transition: opacity 0.4s; pointer-events: none; } `; let styleSheet = document.createElement("style"); styleSheet.type = "text/css"; styleSheet.innerText = styles; document.head.appendChild(styleSheet); })();