Miniblox.io GUI

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.

  1. // ==UserScript==
  2. // @name Miniblox.io GUI
  3. // @namespace http://tampermonkey.net/
  4. // @version 2.0.4-clean
  5. // @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.
  6. // @match https://miniblox.io/*
  7. // @grant none
  8. // @run-at document-end
  9. // ==/UserScript==
  10.  
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. function createButton(text) {
  16. const btn = document.createElement('button');
  17. btn.textContent = text;
  18. btn.style.background = "linear-gradient(45deg, #6a11cb, #2575fc)";
  19. btn.style.border = "none";
  20. btn.style.borderRadius = "4px";
  21. btn.style.padding = "8px 12px";
  22. btn.style.color = "#fff";
  23. btn.style.cursor = "pointer";
  24. btn.style.margin = "5px 0";
  25. btn.style.transition = "background 0.2s ease";
  26. btn.addEventListener('mouseover', () => {
  27. btn.style.background = "linear-gradient(45deg, #2575fc, #6a11cb)";
  28. });
  29. btn.addEventListener('mouseout', () => {
  30. btn.style.background = "linear-gradient(45deg, #6a11cb, #2575fc)";
  31. });
  32. return btn;
  33. }
  34.  
  35. if (!document.body) return;
  36. const guiContainer = document.createElement('div');
  37. guiContainer.id = "customGuiContainer";
  38. guiContainer.style.position = "fixed";
  39. guiContainer.style.top = "10px";
  40. guiContainer.style.right = "10px";
  41. guiContainer.style.width = "280px";
  42. guiContainer.style.height = "380px";
  43. guiContainer.style.minWidth = "150px";
  44. guiContainer.style.minHeight = "150px";
  45. guiContainer.style.background = "rgba(20,20,20,0.8)";
  46. guiContainer.style.backdropFilter = "blur(8px)";
  47. guiContainer.style.border = "1px solid rgba(255,255,255,0.2)";
  48. guiContainer.style.borderRadius = "10px";
  49. guiContainer.style.boxShadow = "0 6px 12px rgba(0,0,0,0.5)";
  50. guiContainer.style.fontFamily = "'Segoe UI', Tahoma, Geneva, Verdana, sans-serif";
  51. guiContainer.style.color = "#fff";
  52. guiContainer.style.padding = "15px";
  53. guiContainer.style.overflow = "auto";
  54. guiContainer.style.transition = "all 0.3s ease";
  55. guiContainer.style.zIndex = "100000";
  56. document.body.appendChild(guiContainer);
  57.  
  58. const header = document.createElement('div');
  59. header.textContent = "Miniblox.io GUI";
  60. header.style.cursor = "move";
  61. header.style.background = "rgba(255,255,255,0.1)";
  62. header.style.padding = "10px";
  63. header.style.borderRadius = "6px";
  64. header.style.fontWeight = "bold";
  65. header.style.fontSize = "16px";
  66. header.style.textAlign = "center";
  67. header.style.marginBottom = "15px";
  68. guiContainer.appendChild(header);
  69.  
  70. header.addEventListener('mousedown', startDrag);
  71. function startDrag(e) {
  72. e.preventDefault();
  73. let startX = e.clientX, startY = e.clientY;
  74. const rect = guiContainer.getBoundingClientRect();
  75. const offsetX = startX - rect.left, offsetY = startY - rect.top;
  76. function onMouseMove(e) {
  77. guiContainer.style.left = (e.clientX - offsetX) + "px";
  78. guiContainer.style.top = (e.clientY - offsetY) + "px";
  79. guiContainer.style.right = "auto";
  80. }
  81. function onMouseUp() {
  82. document.removeEventListener('mousemove', onMouseMove);
  83. document.removeEventListener('mouseup', onMouseUp);
  84. }
  85. document.addEventListener('mousemove', onMouseMove);
  86. document.addEventListener('mouseup', onMouseUp);
  87. }
  88.  
  89. const resizeHandle = document.createElement('div');
  90. resizeHandle.style.width = "15px";
  91. resizeHandle.style.height = "15px";
  92. resizeHandle.style.background = "rgba(255,255,255,0.4)";
  93. resizeHandle.style.position = "absolute";
  94. resizeHandle.style.right = "5px";
  95. resizeHandle.style.bottom = "5px";
  96. resizeHandle.style.cursor = "se-resize";
  97. resizeHandle.style.borderRadius = "3px";
  98. guiContainer.appendChild(resizeHandle);
  99.  
  100. resizeHandle.addEventListener('mousedown', startResize);
  101. function startResize(e) {
  102. e.preventDefault();
  103. e.stopPropagation();
  104. let startX = e.clientX, startY = e.clientY;
  105. const startWidth = guiContainer.offsetWidth, startHeight = guiContainer.offsetHeight;
  106. function onMouseMove(e) {
  107. let newWidth = startWidth + (e.clientX - startX);
  108. let newHeight = startHeight + (e.clientY - startY);
  109. if(newWidth < 150) newWidth = 150;
  110. if(newHeight < 150) newHeight = 150;
  111. guiContainer.style.width = newWidth + "px";
  112. guiContainer.style.height = newHeight + "px";
  113. }
  114. function onMouseUp() {
  115. document.removeEventListener('mousemove', onMouseMove);
  116. document.removeEventListener('mouseup', onMouseUp);
  117. }
  118. document.addEventListener('mousemove', onMouseMove);
  119. document.addEventListener('mouseup', onMouseUp);
  120. }
  121.  
  122. const content = document.createElement('div');
  123. content.style.fontSize = "14px";
  124. guiContainer.appendChild(content);
  125.  
  126. const fpsDisplay = document.createElement('div');
  127. fpsDisplay.textContent = "FPS: Calculating...";
  128. fpsDisplay.style.marginBottom = "10px";
  129. content.appendChild(fpsDisplay);
  130.  
  131. let lastFrameTime = performance.now(), frameCount = 0;
  132. function updateFPS() {
  133. const now = performance.now();
  134. frameCount++;
  135. if (now - lastFrameTime >= 1000) {
  136. fpsDisplay.textContent = "FPS: " + frameCount;
  137. frameCount = 0;
  138. lastFrameTime = now;
  139. }
  140. requestAnimationFrame(updateFPS);
  141. }
  142. requestAnimationFrame(updateFPS);
  143.  
  144. const cursorLabel = document.createElement('label');
  145. cursorLabel.textContent = "Cursor URL:";
  146. content.appendChild(cursorLabel);
  147.  
  148. const cursorInput = document.createElement('input');
  149. cursorInput.type = "text";
  150. cursorInput.placeholder = "Paste image URL here";
  151. cursorInput.style.width = "100%";
  152. cursorInput.style.margin = "5px 0 10px 0";
  153. cursorInput.style.padding = "6px";
  154. cursorInput.style.borderRadius = "4px";
  155. cursorInput.style.border = "1px solid #ccc";
  156. content.appendChild(cursorInput);
  157.  
  158. const setCursorButton = createButton("Set Cursor");
  159. setCursorButton.addEventListener('click', function() {
  160. const url = cursorInput.value.trim();
  161. if(url) {
  162. document.body.style.cursor = `url(${url}), auto`;
  163. } else {
  164. alert("Please enter a valid URL");
  165. }
  166. });
  167. content.appendChild(setCursorButton);
  168.  
  169. const resetCursorButton = createButton("Reset Cursor");
  170. resetCursorButton.style.marginLeft = "5px";
  171. resetCursorButton.addEventListener('click', function() {
  172. document.body.style.cursor = "auto";
  173. cursorInput.value = "";
  174. });
  175. content.appendChild(resetCursorButton);
  176.  
  177. const fpsUnlockerLabel = document.createElement('div');
  178. fpsUnlockerLabel.textContent = "FPS Unlocker:";
  179. fpsUnlockerLabel.style.marginTop = "15px";
  180. content.appendChild(fpsUnlockerLabel);
  181.  
  182. const fpsUnlockerToggle = createButton("Enable FPS Unlocker");
  183. content.appendChild(fpsUnlockerToggle);
  184.  
  185. let fpsUnlockerEnabled = false;
  186. const originalRAF = window.requestAnimationFrame;
  187. fpsUnlockerToggle.addEventListener('click', function() {
  188. fpsUnlockerEnabled = !fpsUnlockerEnabled;
  189. if(fpsUnlockerEnabled) {
  190. fpsUnlockerToggle.textContent = "Disable FPS Unlocker";
  191. window.requestAnimationFrame = function(callback) {
  192. return setTimeout(function() {
  193. callback(performance.now());
  194. }, 0);
  195. };
  196. } else {
  197. fpsUnlockerToggle.textContent = "Enable FPS Unlocker";
  198. window.requestAnimationFrame = originalRAF;
  199. }
  200. });
  201.  
  202. const autoSprintLabel = document.createElement('div');
  203. autoSprintLabel.textContent = "Auto Sprint:";
  204. autoSprintLabel.style.marginTop = "15px";
  205. content.appendChild(autoSprintLabel);
  206.  
  207. const autoSprintToggle = createButton("Enable Auto Sprint");
  208. content.appendChild(autoSprintToggle);
  209.  
  210. let autoSprintEnabled = false, autoSprintInterval = null;
  211. autoSprintToggle.addEventListener('click', function() {
  212. autoSprintEnabled = !autoSprintEnabled;
  213. if(autoSprintEnabled) {
  214. autoSprintToggle.textContent = "Disable Auto Sprint";
  215. autoSprintInterval = setInterval(function() {
  216. const event = new KeyboardEvent('keydown', {
  217. key: 'Shift',
  218. code: 'ShiftLeft',
  219. keyCode: 16,
  220. bubbles: true
  221. });
  222. document.dispatchEvent(event);
  223. }, 100);
  224. } else {
  225. autoSprintToggle.textContent = "Enable Auto Sprint";
  226. clearInterval(autoSprintInterval);
  227. const event = new KeyboardEvent('keyup', {
  228. key: 'Shift',
  229. code: 'ShiftLeft',
  230. keyCode: 16,
  231. bubbles: true
  232. });
  233. document.dispatchEvent(event);
  234. }
  235. });
  236.  
  237. const autoclickerLabel = document.createElement('div');
  238. autoclickerLabel.textContent = "Autoclicker:";
  239. autoclickerLabel.style.marginTop = "15px";
  240. content.appendChild(autoclickerLabel);
  241.  
  242. const autoclickerToggle = createButton("Enable Autoclicker");
  243. content.appendChild(autoclickerToggle);
  244.  
  245. let autoclickerEnabled = false;
  246. autoclickerToggle.addEventListener('click', function() {
  247. autoclickerEnabled = !autoclickerEnabled;
  248. if (autoclickerEnabled) {
  249. autoclickerToggle.textContent = "Disable Autoclicker";
  250. autoClicker();
  251. } else {
  252. autoclickerToggle.textContent = "Enable Autoclicker";
  253. }
  254. });
  255.  
  256. function autoClicker() {
  257. if (!autoclickerEnabled) return;
  258. const canvas = document.querySelector('canvas');
  259. if (canvas) {
  260. const mousedownEvent = new MouseEvent('mousedown', { bubbles: true, cancelable: true, view: window });
  261. canvas.dispatchEvent(mousedownEvent);
  262. setTimeout(() => {
  263. const mouseupEvent = new MouseEvent('mouseup', { bubbles: true, cancelable: true, view: window });
  264. canvas.dispatchEvent(mouseupEvent);
  265. }, 20);
  266. }
  267. const randomDelay = Math.random() * (150 - 80) + 80;
  268. setTimeout(autoClicker, randomDelay);
  269. }
  270.  
  271. const bunnyHopLabel = document.createElement('div');
  272. bunnyHopLabel.textContent = "Auto Bunny Hop:";
  273. bunnyHopLabel.style.marginTop = "15px";
  274. content.appendChild(bunnyHopLabel);
  275.  
  276. const bunnyHopToggle = createButton("Enable Auto Bunny Hop");
  277. content.appendChild(bunnyHopToggle);
  278.  
  279. let autoBunnyHopEnabled = false;
  280. let bunnyHopInterval = null;
  281. bunnyHopToggle.addEventListener('click', function() {
  282. autoBunnyHopEnabled = !autoBunnyHopEnabled;
  283. if (autoBunnyHopEnabled) {
  284. bunnyHopToggle.textContent = "Disable Auto Bunny Hop";
  285. bunnyHopInterval = setInterval(() => {
  286. const jumpKeyDown = new KeyboardEvent('keydown', {
  287. key: ' ',
  288. code: 'Space',
  289. keyCode: 32,
  290. bubbles: true
  291. });
  292. document.dispatchEvent(jumpKeyDown);
  293. setTimeout(() => {
  294. const jumpKeyUp = new KeyboardEvent('keyup', {
  295. key: ' ',
  296. code: 'Space',
  297. keyCode: 32,
  298. bubbles: true
  299. });
  300. document.dispatchEvent(jumpKeyUp);
  301. }, 20);
  302. }, 50);
  303. } else {
  304. bunnyHopToggle.textContent = "Enable Auto Bunny Hop";
  305. clearInterval(bunnyHopInterval);
  306. }
  307. });
  308.  
  309. const espLabel = document.createElement('div');
  310. espLabel.textContent = "ESP:";
  311. espLabel.style.marginTop = "15px";
  312. content.appendChild(espLabel);
  313.  
  314. const espToggle = createButton("Enable ESP");
  315. content.appendChild(espToggle);
  316.  
  317. let espEnabled = false;
  318. espToggle.addEventListener('click', function() {
  319. espEnabled = !espEnabled;
  320. if (espEnabled) {
  321. espToggle.textContent = "Disable ESP";
  322. updateESP();
  323. } else {
  324. espToggle.textContent = "Enable ESP";
  325. document.querySelectorAll('.esp-overlay').forEach(el => el.remove());
  326. }
  327. });
  328.  
  329. function updateESP() {
  330. if (!espEnabled) return;
  331. document.querySelectorAll('.esp-overlay').forEach(el => el.remove());
  332. const enemies = document.querySelectorAll('.player');
  333. enemies.forEach(enemy => {
  334. const rect = enemy.getBoundingClientRect();
  335. if (rect.width && rect.height) {
  336. const overlay = document.createElement('div');
  337. overlay.className = "esp-overlay";
  338. overlay.style.position = "fixed";
  339. overlay.style.left = rect.left + "px";
  340. overlay.style.top = rect.top + "px";
  341. overlay.style.width = rect.width + "px";
  342. overlay.style.height = rect.height + "px";
  343. overlay.style.border = "2px solid lime";
  344. overlay.style.zIndex = "1000000";
  345. overlay.style.pointerEvents = "none";
  346. document.body.appendChild(overlay);
  347. }
  348. });
  349. requestAnimationFrame(updateESP);
  350. }
  351.  
  352. document.addEventListener('keydown', function(e) {
  353. if (e.code === 'ShiftRight') {
  354. guiContainer.style.display = (guiContainer.style.display === 'none') ? 'block' : 'none';
  355. }
  356. });
  357. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址