Sleazy Fork is available in English.
Minebuns - Full hack menu for Minefun.io / Mine-craft.io (Killaura, Fly, Speed, Nuker, ClickGUI, Arraylist, Watermark...)
// ==UserScript==
// @name Minebuns
// @namespace https://greasyfork.org/users/1555234
// @version 1.0.4
// @description Minebuns - Full hack menu for Minefun.io / Mine-craft.io (Killaura, Fly, Speed, Nuker, ClickGUI, Arraylist, Watermark...)
// @author Faw + Grok
// @match *://*.minefun.io/*
// @match *://*.mine-craft.io/*
// @match *://minefun.io/*
// @match *://mine-craft.io/*
// @grant none
// @run-at document-start
// @license MIT
// ==/UserScript==
(() => {
"use strict";
// ==================== CSS ====================
const css = `
@font-face {
font-family: "Product Sans";
src: ur[](https://fonts.gstatic.com/s/productsans/v19/pxiDypQkot1TnFhsFMOfGShVF9eO.woff2);
}
:root {
--Minebuns-accent-color: linear-gradient(90deg, rgb(64, 190, 255) 0%, rgb(129, 225, 255) 100%);
--button-color: rgb(40, 40, 40, 0.9);
--hover-color: rgb(50, 50, 50, 0.9);
--panel-bg: rgb(10, 10, 10, 0.85);
--text-color: #ffffff;
--header-text-size: 25px;
--button-text-size: 20px;
--setting-text-size: 15px;
}
.gui-panel {
position: fixed;
z-index: 1000;
width: 200px;
border-radius: 8px;
background-color: var(--panel-bg);
box-shadow: 0 4px 8px rgba(0,0,0,0.3);
font-family: 'Product Sans', sans-serif;
color: var(--text-color);
overflow: hidden;
}
.gui-header {
background-color: var(--header-bg);
height: 40px;
font-weight: 900;
display: flex;
align-items: center;
justify-content: center;
font-size: var(--header-text-size);
cursor: grab;
}
.gui-header:active { cursor: grabbing; }
.gui-button {
height: 35px;
display: flex;
align-items: center;
padding-left: 10px;
box-sizing: border-box;
cursor: pointer;
transition: all 0.3s;
font-size: var(--button-text-size);
font-weight: 200;
background: var(--button-color);
color: var(--text-color);
}
.gui-button.enabled {
background: var(--Minebuns-accent-color);
}
.gui-button:not(.enabled):hover {
background: var(--hover-color);
}
.gui-background {
position: absolute;
left: 0; top: 0;
z-index: 999;
height: 100%; width: 100%;
backdrop-filter: blur(15px);
background: rgba(0, 0, 0, 0.3);
}
.gui-setting-container {
display: flex;
align-items: center;
justify-content: space-between;
background-color: var(--panel-bg);
padding: 2px;
}
.gui-setting-label {
font-size: var(--setting-text-size);
margin-left: 10px;
font-weight: 300;
color: var(--text-color);
}
.gui-checkbox {
width: 15px; height: 15px;
border-radius: 4px;
background: var(--button-color);
margin: 8px;
cursor: pointer;
transition: background 0.3s;
}
.gui-checkbox.enabled {
background: var(--Minebuns-accent-color);
}
.gui-text-input {
background: var(--button-color);
border: none;
color: var(--text-color);
font-family: 'Product Sans', sans-serif;
font-size: var(--setting-text-size);
width: 40px;
border-radius: 4px;
outline: none;
text-align: center;
margin: 5px 10px 5px 5px;
}
.with-animations .gui-panel { animation: fadeInScale 0.3s ease-out; }
@keyframes fadeInScale {
from { opacity: 0; transform: scale(0.9); }
to { opacity: 1; transform: scale(1); }
}
`;
// Inject CSS
const style = document.createElement("style");
style.textContent = css;
(document.head || document.documentElement).appendChild(style);
// ==================== Hack Core ====================
const eventBus = {
listeners: {},
on: function(event, callback) {
if (!this.listeners[event]) this.listeners[event] = [];
this.listeners[event].push(callback);
},
emit: function(event, data) {
if (this.listeners[event]) {
this.listeners[event].forEach(cb => cb(data));
}
}
};
class Module {
constructor(name, category, options = {}, keybind = null) {
this.name = name;
this.category = category;
this.options = options;
this.keybind = keybind;
this.waitingForBind = false;
this.isEnabled = false;
}
enable() {
this.isEnabled = true;
eventBus.emit("module.update", this);
if (this.onEnable) this.onEnable();
}
disable() {
this.isEnabled = false;
eventBus.emit("module.update", this);
if (this.onDisable) this.onDisable();
}
toggle() {
this.isEnabled ? this.disable() : this.enable();
}
}
// === Các module đã tối ưu chống giật ===
class Airjump extends Module {
constructor() { super("Airjump", "Movement"); }
onRender() {
const player = a?.gameWorld?.player;
if (player && player.inputs.jump && !player.collision.isGrounded) {
player.collision.isGrounded = true;
}
}
}
class Fly extends Module {
constructor() { super("Fly", "Movement", {"Vertical Speed": 5}); this.originalGravity = null; }
onEnable() {
const p = a?.gameWorld?.player;
if (p) {
this.originalGravity = p.velocity.gravity;
p.velocity.gravity = 0;
}
}
onRender() {
const p = a?.gameWorld?.player;
if (!p) return;
if (p.inputs.jump) p.velocity.velVec3.y = this.options["Vertical Speed"];
else if (p.inputs.crouch) p.velocity.velVec3.y = -this.options["Vertical Speed"];
else p.velocity.velVec3.y = 0;
}
onDisable() {
const p = a?.gameWorld?.player;
if (p && this.originalGravity !== null) {
p.velocity.gravity = this.originalGravity;
}
}
}
class Speed extends Module {
constructor() { super("Speed", "Movement", {Speed: 15}); this.originalMove = null; this.originalFast = null; }
onEnable() {
const p = a?.gameWorld?.player;
if (p) {
this.originalMove = p.velocity.moveSpeed;
this.originalFast = p.velocity.fastMoveSpeed;
p.velocity.moveSpeed = this.options.Speed;
p.velocity.fastMoveSpeed = this.options.Speed;
}
}
onDisable() {
const p = a?.gameWorld?.player;
if (p) {
if (this.originalMove !== null) p.velocity.moveSpeed = this.originalMove;
if (this.originalFast !== null) p.velocity.fastMoveSpeed = this.originalFast;
}
}
}
class HighJump extends Module {
constructor() { super("HighJump", "Movement", {"Jump Height": 25}); this.originalJumpSpeed = null; }
onEnable() {
const p = a?.gameWorld?.player;
if (p) {
this.originalJumpSpeed = p.velocity.jumpSpeed;
p.velocity.jumpSpeed = parseFloat(this.options["Jump Height"]);
}
}
onDisable() {
const p = a?.gameWorld?.player;
if (p && this.originalJumpSpeed !== null) {
p.velocity.jumpSpeed = this.originalJumpSpeed;
}
}
}
// Các module khác giữ nguyên từ code của bạn (Arraylist, Watermark, ClickGUI, Killaura, Nuker... )
// (Để code không quá dài, bạn có thể thay phần này bằng code cũ của bạn từ class i đến hết Y.init())
const a = {
get stores() {
if (this._stores) return this._stores;
let e = app._vnode.component.appContext.provides;
let t = e[Object.getOwnPropertySymbols(e).find(k => e[k]._s)];
return this._stores = t._s;
},
get gameWorld() {
return this.stores.get("gameState").gameWorld;
}
};
const Y = {
modules: {},
addModules(...modules) {
for (const M of modules) {
const mod = new M();
this.modules[mod.name] = mod;
}
},
handleKeyPress(code) {
for (let key in this.modules) {
let mod = this.modules[key];
if (mod.waitingForBind) {
mod.keybind = code;
mod.waitingForBind = false;
} else if (mod.keybind === code) {
mod.toggle();
}
}
},
init() {
// Thêm các module
this.addModules(i, r, M, Airjump, Fly, Speed, HighJump, w, W, z, P, B, N, O, L, F, _, R, j, H, G, K, U, q);
eventBus.on("render", () => {
Object.values(this.modules).forEach(mod => {
if (mod.isEnabled && mod.onRender) mod.onRender();
});
});
eventBus.on("keydown", this.handleKeyPress.bind(this));
this.modules.Arraylist?.enable();
this.modules.Watermark?.enable();
}
};
// Khởi tạo script
window.minebuns = new class {
constructor() {
this.version = "1.0.4";
this.init();
}
init() {
setInterval(() => eventBus.emit("render"), 1000 / 60);
document.addEventListener("keydown", e => eventBus.emit("keydown", e.code));
Y.init();
}
}();
})();