// ==UserScript==
// @name Miniblox.io GUI
// @namespace http://tampermonkey.net/
// @version 2.0.4-clean
// @description GUI for miniblox.io with FPS display, cursor changer, FPS unlocker, auto sprint, autoclicker, constant auto bunny hop, and ESP overlays. Right Shift toggles the GUI.
// @match https://miniblox.io/*
// @grant none
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
function createButton(text) {
const btn = document.createElement('button');
btn.textContent = text;
btn.style.background = "linear-gradient(45deg, #6a11cb, #2575fc)";
btn.style.border = "none";
btn.style.borderRadius = "4px";
btn.style.padding = "8px 12px";
btn.style.color = "#fff";
btn.style.cursor = "pointer";
btn.style.margin = "5px 0";
btn.style.transition = "background 0.2s ease";
btn.addEventListener('mouseover', () => {
btn.style.background = "linear-gradient(45deg, #2575fc, #6a11cb)";
});
btn.addEventListener('mouseout', () => {
btn.style.background = "linear-gradient(45deg, #6a11cb, #2575fc)";
});
return btn;
}
if (!document.body) return;
const guiContainer = document.createElement('div');
guiContainer.id = "customGuiContainer";
guiContainer.style.position = "fixed";
guiContainer.style.top = "10px";
guiContainer.style.right = "10px";
guiContainer.style.width = "280px";
guiContainer.style.height = "380px";
guiContainer.style.minWidth = "150px";
guiContainer.style.minHeight = "150px";
guiContainer.style.background = "rgba(20,20,20,0.8)";
guiContainer.style.backdropFilter = "blur(8px)";
guiContainer.style.border = "1px solid rgba(255,255,255,0.2)";
guiContainer.style.borderRadius = "10px";
guiContainer.style.boxShadow = "0 6px 12px rgba(0,0,0,0.5)";
guiContainer.style.fontFamily = "'Segoe UI', Tahoma, Geneva, Verdana, sans-serif";
guiContainer.style.color = "#fff";
guiContainer.style.padding = "15px";
guiContainer.style.overflow = "auto";
guiContainer.style.transition = "all 0.3s ease";
guiContainer.style.zIndex = "100000";
document.body.appendChild(guiContainer);
const header = document.createElement('div');
header.textContent = "Miniblox.io GUI";
header.style.cursor = "move";
header.style.background = "rgba(255,255,255,0.1)";
header.style.padding = "10px";
header.style.borderRadius = "6px";
header.style.fontWeight = "bold";
header.style.fontSize = "16px";
header.style.textAlign = "center";
header.style.marginBottom = "15px";
guiContainer.appendChild(header);
header.addEventListener('mousedown', startDrag);
function startDrag(e) {
e.preventDefault();
let startX = e.clientX, startY = e.clientY;
const rect = guiContainer.getBoundingClientRect();
const offsetX = startX - rect.left, offsetY = startY - rect.top;
function onMouseMove(e) {
guiContainer.style.left = (e.clientX - offsetX) + "px";
guiContainer.style.top = (e.clientY - offsetY) + "px";
guiContainer.style.right = "auto";
}
function onMouseUp() {
document.removeEventListener('mousemove', onMouseMove);
document.removeEventListener('mouseup', onMouseUp);
}
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
}
const resizeHandle = document.createElement('div');
resizeHandle.style.width = "15px";
resizeHandle.style.height = "15px";
resizeHandle.style.background = "rgba(255,255,255,0.4)";
resizeHandle.style.position = "absolute";
resizeHandle.style.right = "5px";
resizeHandle.style.bottom = "5px";
resizeHandle.style.cursor = "se-resize";
resizeHandle.style.borderRadius = "3px";
guiContainer.appendChild(resizeHandle);
resizeHandle.addEventListener('mousedown', startResize);
function startResize(e) {
e.preventDefault();
e.stopPropagation();
let startX = e.clientX, startY = e.clientY;
const startWidth = guiContainer.offsetWidth, startHeight = guiContainer.offsetHeight;
function onMouseMove(e) {
let newWidth = startWidth + (e.clientX - startX);
let newHeight = startHeight + (e.clientY - startY);
if(newWidth < 150) newWidth = 150;
if(newHeight < 150) newHeight = 150;
guiContainer.style.width = newWidth + "px";
guiContainer.style.height = newHeight + "px";
}
function onMouseUp() {
document.removeEventListener('mousemove', onMouseMove);
document.removeEventListener('mouseup', onMouseUp);
}
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
}
const content = document.createElement('div');
content.style.fontSize = "14px";
guiContainer.appendChild(content);
const fpsDisplay = document.createElement('div');
fpsDisplay.textContent = "FPS: Calculating...";
fpsDisplay.style.marginBottom = "10px";
content.appendChild(fpsDisplay);
let lastFrameTime = performance.now(), frameCount = 0;
function updateFPS() {
const now = performance.now();
frameCount++;
if (now - lastFrameTime >= 1000) {
fpsDisplay.textContent = "FPS: " + frameCount;
frameCount = 0;
lastFrameTime = now;
}
requestAnimationFrame(updateFPS);
}
requestAnimationFrame(updateFPS);
const cursorLabel = document.createElement('label');
cursorLabel.textContent = "Cursor URL:";
content.appendChild(cursorLabel);
const cursorInput = document.createElement('input');
cursorInput.type = "text";
cursorInput.placeholder = "Paste image URL here";
cursorInput.style.width = "100%";
cursorInput.style.margin = "5px 0 10px 0";
cursorInput.style.padding = "6px";
cursorInput.style.borderRadius = "4px";
cursorInput.style.border = "1px solid #ccc";
content.appendChild(cursorInput);
const setCursorButton = createButton("Set Cursor");
setCursorButton.addEventListener('click', function() {
const url = cursorInput.value.trim();
if(url) {
document.body.style.cursor = `url(${url}), auto`;
} else {
alert("Please enter a valid URL");
}
});
content.appendChild(setCursorButton);
const resetCursorButton = createButton("Reset Cursor");
resetCursorButton.style.marginLeft = "5px";
resetCursorButton.addEventListener('click', function() {
document.body.style.cursor = "auto";
cursorInput.value = "";
});
content.appendChild(resetCursorButton);
const fpsUnlockerLabel = document.createElement('div');
fpsUnlockerLabel.textContent = "FPS Unlocker:";
fpsUnlockerLabel.style.marginTop = "15px";
content.appendChild(fpsUnlockerLabel);
const fpsUnlockerToggle = createButton("Enable FPS Unlocker");
content.appendChild(fpsUnlockerToggle);
let fpsUnlockerEnabled = false;
const originalRAF = window.requestAnimationFrame;
fpsUnlockerToggle.addEventListener('click', function() {
fpsUnlockerEnabled = !fpsUnlockerEnabled;
if(fpsUnlockerEnabled) {
fpsUnlockerToggle.textContent = "Disable FPS Unlocker";
window.requestAnimationFrame = function(callback) {
return setTimeout(function() {
callback(performance.now());
}, 0);
};
} else {
fpsUnlockerToggle.textContent = "Enable FPS Unlocker";
window.requestAnimationFrame = originalRAF;
}
});
const autoSprintLabel = document.createElement('div');
autoSprintLabel.textContent = "Auto Sprint:";
autoSprintLabel.style.marginTop = "15px";
content.appendChild(autoSprintLabel);
const autoSprintToggle = createButton("Enable Auto Sprint");
content.appendChild(autoSprintToggle);
let autoSprintEnabled = false, autoSprintInterval = null;
autoSprintToggle.addEventListener('click', function() {
autoSprintEnabled = !autoSprintEnabled;
if(autoSprintEnabled) {
autoSprintToggle.textContent = "Disable Auto Sprint";
autoSprintInterval = setInterval(function() {
const event = new KeyboardEvent('keydown', {
key: 'Shift',
code: 'ShiftLeft',
keyCode: 16,
bubbles: true
});
document.dispatchEvent(event);
}, 100);
} else {
autoSprintToggle.textContent = "Enable Auto Sprint";
clearInterval(autoSprintInterval);
const event = new KeyboardEvent('keyup', {
key: 'Shift',
code: 'ShiftLeft',
keyCode: 16,
bubbles: true
});
document.dispatchEvent(event);
}
});
const autoclickerLabel = document.createElement('div');
autoclickerLabel.textContent = "Autoclicker:";
autoclickerLabel.style.marginTop = "15px";
content.appendChild(autoclickerLabel);
const autoclickerToggle = createButton("Enable Autoclicker");
content.appendChild(autoclickerToggle);
let autoclickerEnabled = false;
autoclickerToggle.addEventListener('click', function() {
autoclickerEnabled = !autoclickerEnabled;
if (autoclickerEnabled) {
autoclickerToggle.textContent = "Disable Autoclicker";
autoClicker();
} else {
autoclickerToggle.textContent = "Enable Autoclicker";
}
});
function autoClicker() {
if (!autoclickerEnabled) return;
const canvas = document.querySelector('canvas');
if (canvas) {
const mousedownEvent = new MouseEvent('mousedown', { bubbles: true, cancelable: true, view: window });
canvas.dispatchEvent(mousedownEvent);
setTimeout(() => {
const mouseupEvent = new MouseEvent('mouseup', { bubbles: true, cancelable: true, view: window });
canvas.dispatchEvent(mouseupEvent);
}, 20);
}
const randomDelay = Math.random() * (150 - 80) + 80;
setTimeout(autoClicker, randomDelay);
}
const bunnyHopLabel = document.createElement('div');
bunnyHopLabel.textContent = "Auto Bunny Hop:";
bunnyHopLabel.style.marginTop = "15px";
content.appendChild(bunnyHopLabel);
const bunnyHopToggle = createButton("Enable Auto Bunny Hop");
content.appendChild(bunnyHopToggle);
let autoBunnyHopEnabled = false;
let bunnyHopInterval = null;
bunnyHopToggle.addEventListener('click', function() {
autoBunnyHopEnabled = !autoBunnyHopEnabled;
if (autoBunnyHopEnabled) {
bunnyHopToggle.textContent = "Disable Auto Bunny Hop";
bunnyHopInterval = setInterval(() => {
const jumpKeyDown = new KeyboardEvent('keydown', {
key: ' ',
code: 'Space',
keyCode: 32,
bubbles: true
});
document.dispatchEvent(jumpKeyDown);
setTimeout(() => {
const jumpKeyUp = new KeyboardEvent('keyup', {
key: ' ',
code: 'Space',
keyCode: 32,
bubbles: true
});
document.dispatchEvent(jumpKeyUp);
}, 20);
}, 50);
} else {
bunnyHopToggle.textContent = "Enable Auto Bunny Hop";
clearInterval(bunnyHopInterval);
}
});
const espLabel = document.createElement('div');
espLabel.textContent = "ESP:";
espLabel.style.marginTop = "15px";
content.appendChild(espLabel);
const espToggle = createButton("Enable ESP");
content.appendChild(espToggle);
let espEnabled = false;
espToggle.addEventListener('click', function() {
espEnabled = !espEnabled;
if (espEnabled) {
espToggle.textContent = "Disable ESP";
updateESP();
} else {
espToggle.textContent = "Enable ESP";
document.querySelectorAll('.esp-overlay').forEach(el => el.remove());
}
});
function updateESP() {
if (!espEnabled) return;
document.querySelectorAll('.esp-overlay').forEach(el => el.remove());
const enemies = document.querySelectorAll('.player');
enemies.forEach(enemy => {
const rect = enemy.getBoundingClientRect();
if (rect.width && rect.height) {
const overlay = document.createElement('div');
overlay.className = "esp-overlay";
overlay.style.position = "fixed";
overlay.style.left = rect.left + "px";
overlay.style.top = rect.top + "px";
overlay.style.width = rect.width + "px";
overlay.style.height = rect.height + "px";
overlay.style.border = "2px solid lime";
overlay.style.zIndex = "1000000";
overlay.style.pointerEvents = "none";
document.body.appendChild(overlay);
}
});
requestAnimationFrame(updateESP);
}
document.addEventListener('keydown', function(e) {
if (e.code === 'ShiftRight') {
guiContainer.style.display = (guiContainer.style.display === 'none') ? 'block' : 'none';
}
});
})();