☰

Ste_2 client

we do a hack

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

Tendrás que instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Tendrás que instalar una extensión como Tampermonkey antes de poder instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name         Ste_2 client
// @namespace    *://minefun.io/*
// @version      2.5.0
// @author       ryuu tyou
// @description  we do a hack
// @match        *://minefun.io/*
// @grant        none
// @license      MIT
// ==/UserScript==

(() => {
    // ------------------------------ Event bus ------------------------------
    var c={listeners:{},activeKeys:new Set,on:function(e,t){(this.listeners[e]||(this.listeners[e]=[])).push(t)},remove:function(e,t){if(this.listeners[e])this.listeners[e]=this.listeners[e].filter(i=>i!==t)},emit:function(e,t){if(this.listeners[e])this.listeners[e].forEach(i=>i(t))},trackKey:function(e,t,i){if(e==="keydown")h.handleKeyPress(i);if(e==="keydown"&&!this.activeKeys.has(t)){this.activeKeys.add(t);this.emit("keyPress",{key:t,code:i})}if(e==="keyup"&&this.activeKeys.has(t)){this.activeKeys.delete(t);this.emit("keyRelease",{key:t,code:i})}}};

    // ═══════════════════════════════════════════════════
    // PERMANENT WATERMARK (ALWAYS VISIBLE - TOP LEFT)
    // ═══════════════════════════════════════════════════
    var watermarkEl = document.createElement("div");
    watermarkEl.id = "nv-permanent-watermark";
    watermarkEl.innerHTML = "Ste_2 client";
    watermarkEl.style.cssText = `
        position: fixed;
        top: 8px;
        left: 8px;
        z-index: 9999999;
        font-family: 'Product Sans', 'Segoe UI', sans-serif;
        font-size: 22px;
        font-weight: 800;
        letter-spacing: 1px;
        background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
        text-shadow: 0 0 20px rgba(79,172,254,0.35), 0 0 40px rgba(79,172,254,0.15);
        pointer-events: none;
        user-select: none;
        opacity: 1;
        transition: opacity 0.4s ease;
    `;
    document.head.insertAdjacentHTML('beforeend', `@font-face{font-family:"Product Sans";src:url(https://fonts.gstatic.com/s/productsans/v19/pxiDypQkot1TnFhsFMOfGShVF9eO.woff2)}`);
    // Wait for body to exist
    var watermarkObserver = new MutationObserver(() => {
        if(document.body && !document.getElementById("nv-permanent-watermark")) {
            document.body.appendChild(watermarkEl);
            watermarkObserver.disconnect();
        }
    });
    watermarkObserver.observe(document.documentElement, {childList: true, subtree: true});
    // Fallback
    if(document.readyState === 'complete' || document.readyState === 'interactive') {
        setTimeout(() => { if(document.body && !document.getElementById("nv-permanent-watermark")) document.body.appendChild(watermarkEl); }, 500);
    } else {
        document.addEventListener('DOMContentLoaded', () => {
            setTimeout(() => { if(document.body && !document.getElementById("nv-permanent-watermark")) document.body.appendChild(watermarkEl); }, 500);
        });
    }

    // ═══════════════════════════════════════════════════
    // MODERN NOTIFICATION SYSTEM (STAYS FOREVER)
    // ═══════════════════════════════════════════════════
    var notificationContainer=null;
    var notificationIdCounter = 0;

    function showNotification(e, t, i) {
        if(!notificationContainer){
            notificationContainer=document.createElement("div");
            notificationContainer.style.cssText="position:fixed;bottom:20px;right:20px;z-index:10000;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none;";
            document.body.appendChild(notificationContainer)
        }
        let n=document.createElement("div");
        n.className="nv-notification";
        n.id = "nv-notif-" + (notificationIdCounter++);
        let s=t?"#4ade80":i?"#fbbf24":"#ff5555";
        let icon = t?"✓":i?"⚠":"✕";
        n.style.cssText=`
            background:linear-gradient(135deg, rgba(12,12,24,0.92) 0%, rgba(8,8,18,0.88) 100%);
            backdrop-filter:blur(12px);
            -webkit-backdrop-filter:blur(12px);
            border:1px solid rgba(79,172,254,0.12);
            color:white;
            padding:10px 18px 10px 14px;
            border-radius:10px;
            font-family:'Product Sans','Segoe UI',sans-serif;
            font-size:13.5px;
            box-shadow:0 8px 32px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.04);
            transform:translateX(120%);
            transition:all 0.35s cubic-bezier(0.2,0.9,0.4,1.1);
            pointer-events:none;
            max-width:300px;
            white-space:nowrap;
            display:flex;
            align-items:center;
            gap:10px;
            border-left:3px solid ${s};
        `;
        n.innerHTML=`
            <span style="display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:${s}22;color:${s};font-size:13px;font-weight:bold;flex-shrink:0;">${icon}</span>
            <span style="color:#e8e8f0;font-weight:400;">${e}</span>
        `;
        notificationContainer.appendChild(n);
        setTimeout(()=>{n.style.transform="translateX(0)"},10);
        // ⚠️ NOTIFICATION STAYS FOREVER — NO AUTO-DISMISS
        // Remove old notifications if more than 12 exist (cleanup)
        let all = notificationContainer.querySelectorAll('.nv-notification');
        if(all.length > 12) {
            for(let k = 0; k < all.length - 12; k++) {
                let old = all[k];
                if(old && old.parentNode) old.parentNode.removeChild(old);
            }
        }
    }

    // ------------------------------ Base Module ------------------------------
    var a=class{constructor(e,t,i,n){this.name=e;this.category=t;this.options=i||{};this.keybind=n||null;this.waitingForBind=false;this.isEnabled=false;this.toggle=this.toggle.bind(this)}onEnable(){}onDisable(){}onRender(){}onSettingUpdate(){}enable(){this.isEnabled=true;c.emit("module.update",this);this.onEnable()}disable(){this.isEnabled=false;c.emit("module.update",this);this.onDisable()}toggle(){if(this.isEnabled){this.disable();showNotification(this.name+" disabled",false)}else{this.enable();showNotification(this.name+" enabled",true)}}};
    var o={get stores(){if(this._stores)return this._stores;let e=app._vnode.component.appContext.provides;let t=e[Object.getOwnPropertySymbols(e).find(i=>e[i]._s)];return this._stores=t._s},get gameWorld(){return this.stores.get("gameState").gameWorld}};
    var x={normalizeVector(e){let t=e.x*e.x+e.y*e.y+e.z*e.z;if(t>0){let i=1/Math.sqrt(t);return[e.x*i,e.y*i,e.z*i]}return e},distanceBetween(e,t){let i=t.x-e.x,n=t.y-e.y,a=t.z-e.z;return i*i+n*n+a*a},distanceBetweenSqrt(e,t){return Math.sqrt(this.distanceBetween(e,t))},calculateDistance(e,t){return Math.hypot(t.x-e.x,t.y-e.y,t.z-e.z)},calculateDistanceArr(e,t){return Math.hypot(t[0]-e[0],t[1]-e[1],t[2]-e[2])}};
    var m={getClosestPlayer(){let e=o.gameWorld.player.position,t=o.gameWorld.server.players,i=[];t.forEach((n,a)=>{let s=x.distanceBetween(e,{x:n._model.position.x,y:n._model.position.y,z:n._model.position.z});n.id=a;i.push({player:n,distance:s})});i.sort((n,a)=>n.distance-a.distance);return i.map(n=>n.player)[0]},hexToRgb(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},getCssRule(e){for(let t of document.styleSheets)for(let i of t.cssRules||[])if(i.selectorText?.includes(e))return i;return null},openOtherItem(e){let t=Object.values(o.gameWorld.player.position).map(Math.floor),i=o.gameWorld.systemsManager.activeSystems.find(n=>n?.openOtherItem);o.stores.get("inventoryState").setBackpackStates(0);setTimeout(()=>{i.openOtherItem(t,e)},100)}};
    var p={toServer:{TIME_STEP_INFO:1,REQUEST_RESPAWN:4,GOT_DAMAGE:27,PARKOUR_REQUEST_RESPAWN:1004,ONE_BLOCK_REQUEST_RESPAWN:1552,BED_WARS_REQUEST_RESPAWN:1600,SANDBOX_REQUEST_RESPAWN:1700},toClient:{SET_WALK_MODE:41,SET_INVISIBLE_MODE:42},listeners:{},packetListener(e,t){Object.values(this.listeners).forEach(i=>{let n=i(e,t);if(n!=null)t=n});o.gameWorld.server.msgsToSend.push(e,t)},init(){c.on("render",()=>{if(o?.gameWorld?.server?.sendData&&o.gameWorld.server.sendData!==this.packetListener){this._ogSend=o.gameWorld.server.sendData;o.gameWorld.server.sendData=this.packetListener.bind(this)}})}};

    // ================== GUI SYSTEM ==================
    var E=class{constructor(e,t){this.module=e;this.container=t;this.components=[];this.initialized=false;this.isOpen=false}initialize(){if(this.initialized||!this.module?.options)return;Object.keys(this.module.options).forEach(e=>{let t=this.module.options[e],i=typeof t,n=e.match(/\((\d+)-(\d+)\)/);if(Array.isArray(t))this.addModeCycler(e);else if(n)this.addSlider(e,parseInt(n[1]),parseInt(n[2]));else if(e.toLowerCase().includes("color"))this.addColorPicker(e);else if(i==="boolean"||t==="true"||t==="false")this.addCheckbox(e);else if(i==="string"||e.includes("Fade"))this.addNumberInput(e);else this.addNumberInput(e)});this.addKeybind();this.components.forEach(e=>e.style.display="none");this.initialized=true}toggle(){this.isOpen=!this.isOpen;this.components.forEach(e=>{e.style.display=this.isOpen?"flex":"none";this.container.style.marginBottom=this.isOpen?"5px":"0px"})}addModeCycler(e){let t=document.createElement("div");t.className="nv-setting-container";let i=document.createElement("span");i.className="nv-setting-label";i.textContent=e;let n=document.createElement("div");n.textContent=this.module.options[e][0];n.style.cssText=`background:var(--button-color);color:var(--nv-text);padding:4px 10px;border-radius:4px;cursor:pointer;font-size:12px;font-family:monospace;text-align:center;min-width:55px;user-select:none;margin:4px 8px;transition:0.2s;border:1px solid rgba(255,255,255,0.1);`;n.addEventListener("click",()=>{let a=this.module.options[e];a.push(a.shift());n.textContent=a[0];c.emit("setting.update",this.module)});n.addEventListener("mouseenter",()=>n.style.background="var(--hover-color)");n.addEventListener("mouseleave",()=>n.style.background="var(--button-color)");t.appendChild(i);t.appendChild(n);this.container.appendChild(t);this.components.push(t)}addSlider(e,t,i){let n=document.createElement("div");n.className="nv-setting-container";let a=e.replace(/\(\d+-\d+\)/,"").trim(),o=document.createElement("span");o.className="nv-setting-label";o.textContent=a;let s=document.createElement("div");s.style.display="flex";s.style.alignItems="center";s.style.gap="6px";s.style.marginRight="5px";let l=document.createElement("span");l.style.color="var(--nv-text)";l.style.fontSize="12px";l.style.fontFamily="monospace";l.textContent=this.module.options[e];let r=document.createElement("input");r.type="range";r.min=t;r.max=i;r.value=this.module.options[e];r.className="nv-slider";r.style.width="60px";r.addEventListener("input",d=>{let u=Number(d.target.value);l.textContent=u;this.module.options[e]=u;c.emit("setting.update",this.module)});s.appendChild(r);s.appendChild(l);n.appendChild(o);n.appendChild(s);this.container.appendChild(n);this.components.push(n)}addNumberInput(e){let t=document.createElement("div");t.className="nv-setting-container";let i=document.createElement("span");i.className="nv-setting-label";i.textContent=e;if(e.includes("Fade"))t.title="(only 1-100)";let n=document.createElement("input");n.type="text";n.className="nv-text-input";n.value=this.module.options[e];n.style.width="35px";n.style.fontSize="12px";let a=n.value;n.addEventListener("input",()=>{let o=n.value.trim();if(!isNaN(o)&&o!==""){a=o;this.module.options[e]=Number(o);c.emit("setting.update",this.module)}});n.addEventListener("blur",()=>{if(isNaN(n.value)||n.value.trim()==="")n.value=a});n.addEventListener("keydown",o=>{if(o.key==="Enter")n.blur()});t.appendChild(i);t.appendChild(n);this.container.appendChild(t);this.components.push(t)}addStringInput(e){let t=document.createElement("div");t.className="nv-setting-container";let i=document.createElement("span");i.className="nv-setting-label";i.textContent=e;let n=document.createElement("input");n.type="text";n.className="nv-text-input";n.value=this.module.options[e];n.addEventListener("input",()=>{this.module.options[e]=n.value.trim();c.emit("setting.update",this.module)});t.appendChild(i);t.appendChild(n);this.container.appendChild(t);this.components.push(t)}addCheckbox(e){let t=document.createElement("div");t.className="nv-setting-container";let i=document.createElement("span");i.className="nv-setting-label";i.textContent=e;let n=document.createElement("div");n.className="nv-checkbox";n.style.width="13px";n.style.height="13px";n.style.margin="7px";let a=this.module.options[e]===true||this.module.options[e]==="true";n.classList.toggle("enabled",a);n.addEventListener("click",()=>{let o=!n.classList.contains("enabled");n.classList.toggle("enabled",o);this.module.options[e]=o;c.emit("setting.update",this.module)});t.appendChild(i);t.appendChild(n);this.container.appendChild(t);this.components.push(t)}addColorPicker(e){let t=document.createElement("div");t.className="nv-setting-container";let i=document.createElement("span");i.className="nv-setting-label";i.textContent=e;let n=document.createElement("div");n.className="nv-color-picker";n.style.background=this.module.options[e];n.style.width="13px";n.style.height="13px";n.style.margin="7px";let a=document.createElement("input");a.type="color";a.className="nv-color-input";n.appendChild(a);a.addEventListener("input",o=>{n.style.background=o.target.value;this.module.options[e]=o.target.value;c.emit("setting.update",this.module)});n.addEventListener("click",()=>a.click());t.appendChild(i);t.appendChild(n);this.container.appendChild(t);this.components.push(t)}addKeybind(){let e=document.createElement("div");e.className="nv-setting-container";let t=document.createElement("span");t.className="nv-setting-label";t.textContent="Keybind";let i=document.createElement("div");i.className="gui-keybind-display";i.textContent=this.module.keybind||"None";i.style.cssText=`background:var(--button-color);padding:2px 6px;border-radius:3px;cursor:pointer;font-family:monospace;margin-right:8px;transition:0.1s;font-size:11px;`;i.addEventListener("click",()=>{i.textContent="press...";let n=a=>{a.stopPropagation();a.preventDefault();let o=a.code;if(o==="Escape")this.module.keybind=null;else this.module.keybind=o;i.textContent=this.module.keybind||"None";document.removeEventListener("keydown",n);this.module.waitingForBind=false};document.addEventListener("keydown",n);this.module.waitingForBind=true});e.appendChild(t);e.appendChild(i);this.container.appendChild(e);this.components.push(e)}};

    // ================== MODERN PANEL ==================
    var S=class{
        constructor(e,t={top:"200px",left:"200px"}){this.categoryName=e;this.panel=document.createElement("div");this.panel.className="nv-panel";this.panel.style.top=t.top;this.panel.style.left=t.left;this.header=document.createElement("div");this.header.className="nv-header";let i={"Combat":"⚔️","Movement":"","Visual":"️","Misc":"","Menus":"","Fun":"🎆","World":"","AntiBan":"🛡️"},n=i[e]||"️";this.header.innerHTML=`<span class="nv-header-icon">${n}</span><span class="nv-header-title">${e}</span><span class="nv-header-glow"></span>`;this.panel.appendChild(this.header);document.body.appendChild(this.panel);this.buttons=[];this.setupDragHandling()}
        setupDragHandling(){let e=false,t=0,i=0;this.header.addEventListener("mousedown",n=>{e=true;t=n.clientX-this.panel.offsetLeft;i=n.clientY-this.panel.offsetTop;this.panel.style.transition='none'});document.addEventListener("mousemove",n=>{if(e){this.panel.style.left=n.clientX-t+"px";this.panel.style.top=n.clientY-i+"px"}});document.addEventListener("mouseup",()=>{e=false;this.panel.style.transition=''})}
        addButton(e){
            let t=document.createElement("div");t.className="nv-btn-wrap";
            let i=document.createElement("div");i.className=`nv-btn ${e.isEnabled?"active":""}`;
            i.innerHTML=`<span class="nv-btn-indicator"></span><span class="nv-btn-name">${e.name}</span><span class="nv-btn-toggle ${e.isEnabled?'on':'off'}"></span>`;
            let n=new E(e,t);i._guiSettings=n;
            i.addEventListener("mousedown",a=>{
                if(a.button===0){e.toggle();i.classList.toggle("active",e.isEnabled);let o=i.querySelector('.nv-btn-toggle');if(o)o.className=`nv-btn-toggle ${e.isEnabled?'on':'off'}`}
                else if(a.button===1){i.querySelector('.nv-btn-name').textContent="waiting..";e.waitingForBind=true;let o=s=>{if(e.waitingForBind){s.preventDefault();s.stopPropagation();if(s.code==="Escape")e.keybind=null;else e.keybind=s.code;e.waitingForBind=false;i.querySelector('.nv-btn-name').textContent=e.name;document.removeEventListener("keydown",o)}};document.addEventListener("keydown",o)}
            });
            i.addEventListener("contextmenu",a=>{a.preventDefault();if(i._guiSettings){i._guiSettings.initialize();i._guiSettings.toggle()}});
            i.setAttribute("tabindex",-1);t.appendChild(i);this.panel.appendChild(t);this.buttons.push(i);return i
        }
        show(){this.panel.style.display="block"}hide(){this.panel.style.display="none"}
    };

    function ce(e){let t=document.createElement("style");t.textContent=e;document.head.appendChild(t)}
    ce(`
@font-face{font-family:"Product Sans";src:url(https://fonts.gstatic.com/s/productsans/v19/pxiDypQkot1TnFhsFMOfGShVF9eO.woff2)}
:root{
    --nv-accent:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);
    --nv-accent-solid:#4facfe;
    --nv-accent-glow:rgba(79,172,254,0.4);
    --nv-bg:rgba(12,12,18,0.82);
    --nv-bg-hover:rgba(30,35,50,0.85);
    --nv-bg-panel:rgba(8,8,16,0.75);
    --nv-text:#5dade2;
    --nv-text-dim:rgba(93,173,226,0.7);
    --nv-border:rgba(79,172,254,0.15);
    --nv-shadow:0 8px 32px rgba(0,0,0,0.5);
    --nv-header-size:15px;
    --nv-btn-size:14px;
    --nv-setting-size:12px;
    --button-color:rgba(255,255,255,0.06);
    --hover-color:rgba(79,172,254,0.15);
    --header-bg:rgba(5,5,10,0.95);
    --panel-bg:rgba(8,8,16,0.75);
}
.nv-panel{position:fixed;z-index:1000;width:185px;background:var(--nv-bg-panel);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--nv-border);border-radius:12px;box-shadow:var(--nv-shadow),inset 0 1px 0 rgba(255,255,255,0.05);font-family:'Product Sans',sans-serif;color:var(--nv-text);overflow:visible;transition:opacity 0.25s ease,transform 0.25s ease}
.nv-header{position:relative;height:36px;display:flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,rgba(79,172,254,0.12) 0%,rgba(0,242,254,0.05) 100%);border-bottom:1px solid var(--nv-border);border-radius:12px 12px 0 0;cursor:grab;user-select:none;overflow:hidden}
.nv-header:active{cursor:grabbing}
.nv-header-icon{font-size:16px;filter:drop-shadow(0 0 4px var(--nv-accent-glow))}
.nv-header-title{font-size:var(--nv-header-size);font-weight:700;letter-spacing:0.5px;background:var(--nv-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.nv-header-glow{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:60%;height:2px;background:var(--nv-accent);border-radius:2px;opacity:0.6;filter:blur(1px)}
.nv-btn-wrap{background:transparent;display:flex;flex-direction:column;margin:0 4px}
.nv-btn{position:relative;height:34px;display:flex;align-items:center;gap:8px;padding:0 10px 0 6px;margin:1px 0;cursor:pointer;border-radius:8px;background:rgba(255,255,255,0.03);border:1px solid transparent;transition:all 0.2s cubic-bezier(0.2,0.9,0.4,1);user-select:none}
.nv-btn:hover{background:rgba(79,172,254,0.08);border-color:rgba(79,172,254,0.15);transform:translateX(2px)}
.nv-btn.active{background:linear-gradient(135deg,rgba(79,172,254,0.18) 0%,rgba(0,242,254,0.10) 100%);border-color:rgba(79,172,254,0.25);box-shadow:inset 0 0 12px rgba(79,172,254,0.08)}
.nv-btn-indicator{width:3px;height:16px;border-radius:3px;background:rgba(255,255,255,0.1);transition:all 0.3s;flex-shrink:0}
.nv-btn.active .nv-btn-indicator{background:var(--nv-accent-solid);box-shadow:0 0 8px var(--nv-accent-glow);height:20px}
.nv-btn-name{flex:1;font-size:var(--nv-btn-size);font-weight:400;color:var(--nv-text);letter-spacing:0.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nv-btn.active .nv-btn-name{color:#ffffff;text-shadow:0 0 8px rgba(79,172,254,0.3)}
.nv-btn-toggle{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:all 0.3s}
.nv-btn-toggle.off{background:rgba(255,255,255,0.15);box-shadow:none}
.nv-btn-toggle.on{background:var(--nv-accent-solid);box-shadow:0 0 10px var(--nv-accent-glow)}
.nv-overlay{position:fixed;left:0;top:0;z-index:999;width:100%;height:100%;backdrop-filter:blur(8px) saturate(1.2);-webkit-backdrop-filter:blur(8px) saturate(1.2);background:rgba(0,0,0,0.25);animation:nvFadeIn 0.3s ease}
.nv-setting-container{display:flex;align-items:center;justify-content:space-between;background:rgba(0,0,0,0.3);padding:2px 4px;margin:1px 0;border-radius:5px}
.nv-setting-label{font-size:var(--nv-setting-size);margin-left:4px;font-weight:300;color:var(--nv-text-dim)}
.nv-checkbox{width:13px;height:13px;border-radius:4px;background:rgba(255,255,255,0.08);position:relative;margin:7px;cursor:pointer;transition:background 0.3s,box-shadow 0.3s}
.nv-checkbox.enabled{background:var(--nv-accent-solid);box-shadow:0 0 8px var(--nv-accent-glow)}
.nv-color-picker{width:13px;height:13px;border-radius:4px;position:relative;margin:7px;cursor:pointer}
.nv-color-input{width:18px;height:18px;opacity:0;cursor:pointer}
.nv-text-input{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);color:var(--nv-text);font-family:'Product Sans',sans-serif;font-size:var(--nv-setting-size);width:35px;border-radius:5px;outline:none;text-align:center;margin:4px;margin-right:6px;transition:border-color 0.2s}
.nv-text-input:hover,.nv-text-input:focus{border-color:var(--nv-accent-solid)}
.nv-slider{-webkit-appearance:none;width:60px;height:3px;border-radius:3px;background:rgba(255,255,255,0.1);outline:none;opacity:0.8;transition:opacity .2s}
.nv-slider:hover{opacity:1}
.nv-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;border-radius:50%;background:var(--nv-accent-solid);box-shadow:0 0 6px var(--nv-accent-glow);cursor:pointer}
#liq-keystrokes{position:fixed;top:100px;left:20px;display:flex;flex-direction:column;gap:4px;font-family:'Product Sans',sans-serif;user-select:none;transform-origin:top left;z-index:9999}
@keyframes nvFadeIn{from{opacity:0}to{opacity:1}}
@keyframes nvSlideDown{from{opacity:0;transform:scaleY(0.85)}to{opacity:1;transform:scaleY(1)}}
.with-animations .nv-panel{animation:nvFadeIn 0.25s ease-out}
.with-animations .nv-overlay{animation:nvFadeIn 0.3s ease}
.with-animations .nv-setting-container{will-change:transform,opacity;transform-origin:top;animation:nvSlideDown 0.2s ease-out forwards}
`);

    // ================== 🛡️ ANTIBAN ==================
    var ModAntiBan = class extends a {
        constructor() {
            super("AntiBan", "AntiBan", {
                "Auto Disable Combat": true,
                "Tab Blur Protection": true,
                "Console Cloak": true,
                "Smooth Rotations": true,
                "Randomize Delays": true,
                "Jitter MS (±)": 25,
                "Staff Detection": true,
                "Auto Hide GUI": true
            });
            this._staffKeywords = ["admin","mod","staff","helper","support","gm","owner","dev","operator","op","trial","spectator","watch"];
            this._suspectPlayers = [];
            this._lastScan = 0;
            this._ogConsole = {};
            this._blurred = false;
            this._scanInterval = null;
            this._consoleCleanInterval = null;
            this._moduleTimers = {};
            this._onBlur = () => { this._blurred = true; if(this.options["Tab Blur Protection"] && this.isEnabled) this.handleBlur(); };
            this._onFocus = () => { this._blurred = false; if(this.options["Tab Blur Protection"] && this.isEnabled) this.handleFocus(); };
        }
        onEnable() {
            if (this.options["Staff Detection"]) {
                this._scanInterval = setInterval(() => this.scanForStaff(), 3000);
                this.scanForStaff();
            }
            if (this.options["Console Cloak"]) {
                this._ogConsole = { log: console.log, warn: console.warn, error: console.error, info: console.info };
                const self = this;
                const filter = (args) => { const str = Array.from(args).join(' ').toLowerCase(); return str.includes('neonviper') || str.includes('tvclient') || str.includes('hack') || str.includes('cheat') || str.includes('module') || str.includes('killaura') || str.includes('aimbot'); };
                console.log = function() { if (!filter(arguments)) self._ogConsole.log.apply(console, arguments); };
                console.warn = function() { if (!filter(arguments)) self._ogConsole.warn.apply(console, arguments); };
                console.error = function() { if (!filter(arguments)) self._ogConsole.error.apply(console, arguments); };
                console.info = function() { if (!filter(arguments)) self._ogConsole.info.apply(console, arguments); };
                this._consoleCleanInterval = setInterval(() => { try { console.clear(); } catch(e) {} }, 30000);
            }
            if (this.options["Tab Blur Protection"]) { window.addEventListener("blur", this._onBlur); window.addEventListener("focus", this._onFocus); }
            if (this.options["Randomize Delays"]) {
                const killaura = h.modules["Killaura"];
                if (killaura && killaura.options && killaura.options["Delay"]) {
                    this._moduleTimers.killaura = killaura.options["Delay"];
                    const jitter = parseInt(this.options["Jitter MS (±)"]) || 25;
                    Object.defineProperty(killaura.options, "Delay", {
                        get: () => { const base = this._moduleTimers.killaura; return base + Math.floor(Math.random() * jitter * 2 - jitter); },
                        set: (val) => { this._moduleTimers.killaura = val; },
                        configurable: true
                    });
                }
            }
            if (this.options["Smooth Rotations"]) {
                const aimbot = h.modules["Aimbot"];
                if (aimbot && aimbot.aimAtEnemy) {
                    const smoothFactor = 0.35 + Math.random() * 0.3;
                    aimbot.aimAtEnemy = function() {
                        const e = o.gameWorld.player, t = o.gameWorld.server.players;
                        if (!e || !t) return;
                        const i = aimbot.getClosestEnemy(e, t);
                        if (i) {
                            const s = i.model.position, n = e.position;
                            const l = { x: s.x - n.x, z: s.z - n.z };
                            const d = Math.atan2(l.x, l.z);
                            const u = parseFloat(aimbot.options["Y Offset"] || "-0.7");
                            const y = s.y + u - n.y;
                            const f = Math.hypot(l.x, l.z);
                            let g = Math.atan2(y, f);
                            g = Math.max(Math.min(g, Math.PI / 2), -Math.PI / 2);
                            let b = (d + Math.PI) % (2 * Math.PI);
                            if (window._lastAimYaw !== undefined) { let yawDiff = b - window._lastAimYaw; if (yawDiff > Math.PI) yawDiff -= 2 * Math.PI; if (yawDiff < -Math.PI) yawDiff += 2 * Math.PI; b = window._lastAimYaw + yawDiff * smoothFactor; }
                            if (window._lastAimPitch !== undefined) { g = window._lastAimPitch + (g - window._lastAimPitch) * smoothFactor; }
                            window._lastAimYaw = b; window._lastAimPitch = g;
                            e.rotation.y = b; e.rotation.x = g;
                        }
                    };
                }
            }
            showNotification("🛡️ AntiBan active", true);
        }
        scanForStaff() {
            this._lastScan = Date.now();
            if (!o?.gameWorld?.server?.players) return;
            const players = o.gameWorld.server.players;
            players.forEach((p, id) => {
                if (!p || !p.name) return;
                const name = p.name.toLowerCase();
                const isStaff = this._staffKeywords.some(kw => name.includes(kw) || name.replace(/[^a-z0-9]/g, '').includes(kw));
                if (isStaff && !this._suspectPlayers.includes(id)) {
                    this._suspectPlayers.push(id);
                    showNotification(`⚠️ Staff detected: ${p.name}`, false, true);
                    if (this.options["Auto Disable Combat"]) this.disableCombatModules();
                    if (this.options["Auto Hide GUI"]) this.hideGUI();
                }
            });
        }
        handleBlur() { if (this._blurred) { this.disableCombatModules(); showNotification("⚠️ Tab blurred - modules disabled", false, true); } }
        handleFocus() { showNotification("✅ Tab focused - re-enable manually", true); }
        disableCombatModules() { ["Killaura","Aimbot","Rangeclick beta","GunModifier","Fly","Speed","NoClip","Timer"].forEach(name => { const mod = h.modules[name]; if(mod && mod.isEnabled) try{mod.disable()}catch(e){} }); }
        hideGUI() { const clickGUI = h.modules["ClickGUI"]; if(clickGUI && clickGUI.isEnabled) try{clickGUI.onDisable(false)}catch(e){} }
        onDisable() {
            if(this._ogConsole.log){console.log=this._ogConsole.log;console.warn=this._ogConsole.warn;console.error=this._ogConsole.error;console.info=this._ogConsole.info;this._ogConsole={}}
            if(this._scanInterval)clearInterval(this._scanInterval);
            if(this._consoleCleanInterval)clearInterval(this._consoleCleanInterval);
            window.removeEventListener("blur",this._onBlur);window.removeEventListener("focus",this._onFocus);
            if(this._moduleTimers.killaura){const k=h.modules["Killaura"];if(k&&k.options){delete k.options.Delay;k.options.Delay=this._moduleTimers.killaura}}
            this._suspectPlayers=[];this._blurred=false;window._lastAimYaw=undefined;window._lastAimPitch=undefined;
        }
    };

    // ================== VISUAL ==================
    var ModArraylist = class extends a {
        constructor(){super("Arraylist","Visual");this.namesMap={};this.arraylistContainer=null;this.initialized=false}
        update(e,t){
            if(t){if(!this.namesMap[e]){let s=document.createElement("div");s.style.backgroundColor="rgba(10, 10, 10, 0.7)";s.style.color="white";s.style.padding="2px 10px";s.style.display="flex";s.style.alignItems="center";s.style.fontFamily="'Product Sans', sans-serif";s.style.boxShadow="rgb(0, 0, 0, 0.05) -5px 1px";s.style.transition="max-height 0.2s, opacity 0.2s";s.style.overflow="hidden";s.style.maxHeight="0";s.style.opacity="0";let n=document.createElement("span");n.style.fontWeight="800";n.style.fontSize="16px";n.style.backgroundImage="var(--nv-accent)";n.style.color="transparent";n.style.backgroundClip="text";n.innerHTML=e;s.appendChild(n);this.arraylistContainer.appendChild(s);setTimeout(()=>{s.style.maxHeight="50px";s.style.opacity="1"},1);this.namesMap[e]=s}}else if(this.namesMap[e]){let s=this.namesMap[e];s.style.maxHeight="0";s.style.opacity="0";setTimeout(()=>{this.arraylistContainer.removeChild(s);delete this.namesMap[e]},5)}
            let i=Object.values(this.namesMap).sort((s,n)=>n.getBoundingClientRect().width-s.getBoundingClientRect().width);this.arraylistContainer.innerHTML="";i.forEach(s=>{this.arraylistContainer.appendChild(s)})
        }
        onEnable(){if(this.initialized)this.arraylistContainer.style.opacity="1";else{this.arraylistContainer=document.createElement("div");this.arraylistContainer.style.cssText="flex-direction: column; position: absolute; z-index: 1000; display: flex; right: 5px; top: 5px; align-items: flex-end; pointer-events: none; text-transform: lowercase; border: 2px solid transparent; border-image: var(--nv-accent); border-image-slice: 1; border-bottom: 0; border-left: 0;";document.body.appendChild(this.arraylistContainer);c.on("module.update",e=>{this.update(e.name,e.isEnabled)});this.initialized=true}}
        onDisable(){if(this.arraylistContainer)this.arraylistContainer.style.opacity="0"}
    };
    var ModWatermark = class extends a {
        // This module is kept for compatibility but the permanent watermark is always shown
        constructor(){super("Watermark","Visual",{Text:"NeonViper"});this._alwaysShow=true}
        onEnable(){}
        onDisable(){}
        onSettingUpdate(){}
    };
    var ModNoFog = class extends a {
        constructor(){super("NoFog","Visual",null);this._interval=null;this._origFog=null}
        onEnable(){const i='NeonViper-nofog-style';if(!document.getElementById(i)){const s=document.createElement('style');s.id=i;s.textContent='.fog,.fog-overlay,.weather-fog,.distance-fade,.view-distance,.atmosphere,[class*="fog"],[class*="mist"],[class*="haze"]{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}';document.head.appendChild(s)}const g=o.gameWorld;if(g?.scene){this._origFog=g.scene.fog||null;g.scene.fog=null;if(g.renderer?.setFog)g.renderer.setFog(null)}this._interval=setInterval(()=>{const g=o.gameWorld;if(g?.scene?.fog)g.scene.fog=null},250)}
        onDisable(){const s=document.getElementById('NeonViper-nofog-style');if(s)s.remove();if(this._interval)clearInterval(this._interval);const g=o.gameWorld;if(g?.scene&&this._origFog){g.scene.fog=this._origFog;this._origFog=null}}
    };
    var ModClickGUI = class extends a {
        constructor(){super("ClickGUI","Visual",{"Accent Color 1":"rgb(0, 100, 255)","Accent Color 2":"rgb(0, 200, 255)","Button Color":"rgb(12, 12, 18, 0.95)","Hover Color":"rgb(25, 30, 50, 0.95)","Header Color":"rgb(5, 5, 10, 0.95)","Panel Color":"rgb(8 8 16)","Text Color":"#5dade2","Enable Animations":true},"ShiftRight");this.GUILoaded=false;this.panels=[];this.blurredBackground=null;this.updateColors()}
        updateAnimations(){if(this.options["Enable Animations"])document.body.classList.add("with-animations");else document.body.classList.remove("with-animations")}
        updateColors(){document.body.style.setProperty("--nv-accent",`linear-gradient(135deg,${this.options["Accent Color 1"]} 0%,${this.options["Accent Color 2"]} 100%)`);document.body.style.setProperty("--nv-accent-solid",this.options["Accent Color 1"]);let g=this.options["Accent Color 1"];if(g.includes("rgba")){let l=g.lastIndexOf(',');g=g.substring(0,g.lastIndexOf(',')+1)+'0.4)'}else{g=g.replace(")",",0.4)")}document.body.style.setProperty("--nv-accent-glow",g);document.body.style.setProperty("--button-color","rgba(255,255,255,0.06)");document.body.style.setProperty("--hover-color","rgba(79,172,254,0.15)");document.body.style.setProperty("--header-bg",this.options["Header Color"]);document.body.style.setProperty("--panel-bg",this.options["Panel Color"]);document.body.style.setProperty("--nv-text",this.options["Text Color"])}
        onEnable(){if(document.pointerLockElement)document.exitPointerLock();if(this.GUILoaded){this.showGUI();this.updateAnimations()}else{this.setupBackground();this.createPanels();this.setupEventListeners();this.GUILoaded=true;this.updateAnimations()}let e=m.getCssRule(".pause-cont");if(e)e.style.display="none";this.fixCanvas()}
        fixCanvas(){let e=document.querySelector("#game");if(e)e.dispatchEvent(new Event("resize",{bubbles:true}))}
        setupBackground(){this.blurredBackground=document.createElement("div");this.blurredBackground.className="nv-overlay";document.body.appendChild(this.blurredBackground)}
        createPanels(){let c=[{title:"Combat",position:{top:"100px",left:"100px"}},{title:"Movement",position:{top:"100px",left:"305px"}},{title:"Visual",position:{top:"100px",left:"510px"}},{title:"Misc",position:{top:"100px",left:"715px"}},{title:"Menus",position:{top:"100px",left:"920px"}},{title:"Fun",position:{top:"100px",left:"1125px"}},{title:"World",position:{top:"100px",left:"1330px"}},{title:"AntiBan",position:{top:"100px",left:"1330px"}}];this.panels.forEach(p=>{if(p.panel&&p.panel.parentNode)p.panel.parentNode.removeChild(p.panel)});this.panels=[];c.forEach(c=>{this.panels.push(new S(c.title,c.position))});let m={};Object.values(h.modules).forEach(mod=>{if(!m[mod.category])m[mod.category]=[];m[mod.category].push(mod)});Object.entries(m).forEach(([n,mods])=>{let p=this.panels.find(p=>p.categoryName===n);if(p){mods.sort((a,b)=>b.name.length-a.name.length);mods.forEach(mod=>p.addButton(mod))}})}
        setupEventListeners(){c.on("module.update",(module)=>{let p=this.panels.find(p=>p.categoryName===module.category);if(!p)return;let b=p.buttons.find(b=>{let n=b.querySelector('.nv-btn-name');return n&&n.textContent===module.name});if(b){b.classList.toggle("active",module.isEnabled);let t=b.querySelector('.nv-btn-toggle');if(t)t.className=`nv-btn-toggle ${module.isEnabled?'on':'off'}`}})}
        showGUI(){this.panels.forEach(p=>p.show());this.blurredBackground.style.display="block"}
        onDisable(k=true){this.panels.forEach(p=>p.hide());this.blurredBackground.style.display="none";let e=m.getCssRule(".pause-cont");if(e)e.style.display="";let i=document.getElementsByClassName("pause-cont")[0];if(i)i.style.display="none";this.fixCanvas();let s=document.querySelector("#game");if(k&&s)s.click()}
        onSettingUpdate(){this.updateColors();this.updateAnimations()}
    };
    var ModChams = class extends a {
        constructor(){super("Chams","Visual",null)}
        onRender(){if(!o?.gameWorld?.player||!o.gameWorld.server?.players)return;o.gameWorld.server.players.forEach(p=>{if(p&&p.playerMaterial){p.playerMaterial.wireframe=false;p.playerMaterial.depthTest=false;if(p.playerMaterial.color){p.playerMaterial.color.r=1;p.playerMaterial.color.g=0;p.playerMaterial.color.b=1}if(p.playerMaterial.opacity!==undefined)p.playerMaterial.opacity=0.7;if(p.playerMaterial.transparent!==undefined)p.playerMaterial.transparent=true}})}
        onDisable(){if(o.gameWorld.server?.players){o.gameWorld.server.players.forEach(p=>{if(p&&p.playerMaterial){p.playerMaterial.depthTest=true;p.playerMaterial.wireframe=false;p.playerMaterial.opacity=1;p.playerMaterial.transparent=false}})}}
    };
    var ModBlockOutline = class extends a {
        constructor(){super("BlockOutline","Visual",{"Outline Color":"#81e1ff"})}
        get selectedBlock(){return o.gameWorld?.systemsManager.activeSystems.find(e=>e?.currBlockPos!==undefined)||undefined}
        onRender(){if(this?.selectedBlock?.mesh){let e=m.hexToRgb(this.options["Outline Color"]);if(e&&(this.selectedBlock.mesh.material.color.r!==e.r))this.onEnable()}}
        onEnable(){let e=m.hexToRgb(this.options["Outline Color"]);if(!e||!this.selectedBlock?.mesh)return;let t=this.selectedBlock.mesh;Object.keys(e).forEach(i=>{t.material.color[i]=e[i]})}
        onDisable(){if(this.selectedBlock?.mesh){this.selectedBlock.mesh.material.color.r=0;this.selectedBlock.mesh.material.color.g=0;this.selectedBlock.mesh.material.color.b=0}}
    };
    var ModInterface = class extends a {
        constructor(){super("Interface","Visual",{"Hide Right Elements":true,"Bottom Chat":true})}
        applyTweaks(){let i=this.isEnabled,s=m.getCssRule("chat-wrapper"),n=m.getCssRule("key-prompt-wrapper");if(i&&this.options["Hide Right Elements"]&&n)n.style.display="none";else if(n)n.style.display="flex";if(i&&this.options["Bottom Chat"]&&s){s.style.bottom="10%";s.style.top="";s.style.position="fixed"}else if(s){s.style.bottom="";s.style.top="0";s.style.position="absolute"}}
        onEnable(){this.applyTweaks()}onDisable(){this.applyTweaks()}
    };
    var ModFreecam = class extends a {
        constructor(){super("Freecam","Visual",{"3rd person":"true"});this._copy=null;this.realPos=null}
        get playerModel(){return o.gameWorld.systemsManager.activeSystems.find(e=>e?.model).model}
        onEnable(){let e=o.gameWorld,t=0;if(e.player.cameraMode==1&&this.options["3rd person"]=="true"){o.gameWorld.switchCameraView();t=100}o.gameWorld.server.msgsListeners[p.toClient.SET_INVISIBLE_MODE]();setTimeout(()=>{this._copy=this._copy||this.playerModel.position.copy;this.playerModel.position.copy=()=>{};this.realPos=this.playerModel.position},t)}
        onDisable(){o.gameWorld.server.msgsListeners[p.toClient.SET_WALK_MODE]();if(this.playerModel&&this._copy){this.playerModel.position.copy=this._copy.bind(this.playerModel.position);this.playerModel.position=this.realPos}}
    };
    var ModXray = class extends a {
        constructor(){super("Xray","Visual",null)}
        getItemByName(e){return Object.values(o.gameWorld.items).find(t=>t.name==e)}
        blocksToXray=["Dirt","Cobblestone","Stone"]
        onEnable(){$assetsUrls["game/textures/blocksTextures/Transparent.png"]="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";this.blocksToXray.forEach(e=>{let t=this.getItemByName(e);if(t){t.transparent=true;t.textures={other:"Transparent"};t.lightRadius=15;t.lightRGB=[1,1,1]}});this.reloadLighting();alert("Rejoin game to apply")}
        onDisable(){this.blocksToXray.forEach(e=>{let t=this.getItemByName(e);if(t){t.transparent=false;t.textures={other:e};t.lightRadius=0;t.lightRGB=[0,0,0]}});this.reloadLighting()}
        reloadLighting(){if(o.gameWorld.chunkManager){o.gameWorld.chunkManager.lightConfig.byBlockId=[];o.gameWorld.chunkManager.lightConfig.reloadBlocks()}}
    };
    var ModFullbright = class extends a {
        constructor(){super("Fullbright","Visual");this.el=null;this.st=null}
        onEnable(){if(!this.st){this.st=document.createElement("style");this.st.innerText='#fb-overlay{position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;pointer-events:none!important;z-index:99999999!important;backdrop-filter:brightness(3.0)contrast(0.85)saturate(1.1)!important;-webkit-backdrop-filter:brightness(3.0)contrast(0.85)saturate(1.1)!important}';document.head.appendChild(this.st)}if(!this.el){this.el=document.createElement("div");this.el.id="fb-overlay";document.body.appendChild(this.el)}this.el.style.display="block"}
        onDisable(){if(this.el)this.el.style.display="none"}
    };
    var ModTracers = class extends a {
        constructor(){super("Tracers","Visual",{"Thickness (1-10)":2,"Tracer Color":"#ff3333","Target Players":true,"Target Bots/Mobs":true});this.canvas=null;this.ctx=null;this.animationId=null;this.resizeHandler=this.resize.bind(this)}
        initCanvas(){if(this.canvas)return;this.canvas=document.createElement("canvas");this.canvas.style.cssText="position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9997;pointer-events:none;";document.body.appendChild(this.canvas);this.ctx=this.canvas.getContext("2d");this.resize();window.addEventListener("resize",this.resizeHandler)}
        resize(){if(!this.canvas)return;this.canvas.width=window.innerWidth;this.canvas.height=window.innerHeight}
        onEnable(){this.initCanvas();let d=()=>{if(!this.isEnabled||!this.ctx)return;this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);let me=o?.gameWorld?.player,pl=o?.gameWorld?.server?.players;if(me&&pl){this.ctx.lineWidth=this.options["Thickness (1-10)"]||2;this.ctx.strokeStyle=this.options["Tracer Color"];let cx=this.canvas.width/2,cy=this.canvas.height/2;pl.forEach(p=>{if(!p||p===me||(p.id!==undefined&&me.id!==undefined&&p.id===me.id)||!p.isAlive||!p.model)return;let isBot=p.name==="Zombie"||p.name==="Skeleton"||!p.name;if(isBot&&!this.options["Target Bots/Mobs"])return;if(!isBot&&!this.options["Target Players"])return;let my=me.position,ep=p.model.position,dx=ep.x-my.x,dy=(ep.y+0.8)-(my.y+1.6),dz=ep.z-my.z,yR=me.rotation.y,cY=Math.cos(yR),sY=Math.sin(yR),x1=dx*cY-dz*sY,z1=dx*sY+dz*cY,xR=me.rotation.x,cX=Math.cos(xR),sX=Math.sin(xR),y2=dy*cX-z1*sX,z2=dy*sX+z1*cX,x2=x1;if(z2<0){let depth=-z2,fovS=this.canvas.height,sX=cx+(x2/depth)*fovS,sY=cy-(y2/depth)*fovS;this.ctx.beginPath();this.ctx.moveTo(cx,cy);this.ctx.lineTo(sX,sY);this.ctx.stroke()}})};this.animationId=requestAnimationFrame(d)};d()}
        onDisable(){if(this.animationId)cancelAnimationFrame(this.animationId);if(this.canvas){window.removeEventListener("resize",this.resizeHandler);this.canvas.remove();this.canvas=null;this.ctx=null}}
    };

    // ================== FUN ==================
    var ModWeatherScreen = class extends a {
        constructor(){super("WeatherScreen","Fun",{"Rain Mode":false,"Snow Mode":false,"Lightning Mode":false,"Dark Mode":false,"Fade (1-100)":20,"Radius (1-10)":5});this.canvas=null;this.ctx=null;this.rainParts=[];this.snowParts=[];this.animationId=null;this.resizeHandler=this.resize.bind(this)}
        initCanvas(){if(this.canvas)return;this.canvas=document.createElement("canvas");this.canvas.style.cssText="position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9998;pointer-events:none;";document.body.appendChild(this.canvas);this.ctx=this.canvas.getContext("2d");this.resize();window.addEventListener("resize",this.resizeHandler)}
        resize(){if(!this.canvas)return;this.canvas.width=window.innerWidth;this.canvas.height=window.innerHeight;this.initParticles()}
        initParticles(){this.rainParts=[];this.snowParts=[];let r=this.options["Radius (1-10)"];if(isNaN(r)||r<1)r=5;let a=r*50;for(let i=0;i<a;i++){this.rainParts.push(this.createParticle(false));this.snowParts.push(this.createParticle(true))}}
        createParticle(s){return{x:Math.random()*window.innerWidth,y:Math.random()*window.innerHeight,speed:s?(Math.random()*1+0.5):(Math.random()*15+15),size:s?(Math.random()*2+1):(Math.random()*1.5+0.5),angle:s?Math.random()*Math.PI*2:0,swing:s?Math.random()*0.05:0}}
        onSettingUpdate(){if(this.isEnabled)this.initParticles()}
        onEnable(){this.initCanvas();this.initParticles();let d=()=>{if(!this.isEnabled||!this.ctx)return;this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);let isRain=this.options["Rain Mode"]===true||this.options["Rain Mode"]==="true",isSnow=this.options["Snow Mode"]===true||this.options["Snow Mode"]==="true",isLightning=this.options["Lightning Mode"]===true||this.options["Lightning Mode"]==="true",isDark=this.options["Dark Mode"]===true||this.options["Dark Mode"]==="true";if(isDark){let f=this.options["Fade (1-100)"]/100;if(f>1)f=1;if(f<0)f=0;this.ctx.fillStyle=`rgba(0,0,0,${f})`;this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height)}if(isLightning&&Math.random()<0.005){this.ctx.fillStyle="rgba(200,220,255,0.4)";this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height);let bc=Math.floor(Math.random()*3)+1;for(let b=0;b<bc;b++){let sx=Math.random()*this.canvas.width,sy=0,cx=sx,cy=sy;this.ctx.beginPath();this.ctx.moveTo(cx,cy);let md=this.canvas.height*(0.5+Math.random()*0.5);while(cy<md){cx+=(Math.random()-0.5)*80;cy+=Math.random()*40+20;this.ctx.lineTo(cx,cy)}this.ctx.shadowBlur=20;this.ctx.shadowColor="rgb(150,200,255)";this.ctx.lineWidth=Math.random()*3+2;this.ctx.strokeStyle="rgba(255,255,255,0.9)";this.ctx.stroke();this.ctx.shadowBlur=0}}if(isSnow){this.ctx.fillStyle="rgba(255,255,255,0.8)";this.ctx.beginPath();for(let i=0;i<this.snowParts.length;i++){let p=this.snowParts[i];p.y+=p.speed;p.angle+=p.swing;p.x+=Math.sin(p.angle)*0.8;this.ctx.moveTo(p.x,p.y);this.ctx.arc(p.x,p.y,p.size,0,Math.PI*2);if(p.y>this.canvas.height||p.x>this.canvas.width||p.x<0){this.snowParts[i]=this.createParticle(true);this.snowParts[i].y=-20}}this.ctx.fill()}if(isRain){this.ctx.strokeStyle="rgba(180,210,255,0.6)";this.ctx.lineWidth=1.5;this.ctx.beginPath();for(let i=0;i<this.rainParts.length;i++){let p=this.rainParts[i];p.y+=p.speed;p.x+=2;this.ctx.moveTo(p.x,p.y);this.ctx.lineTo(p.x+2,p.y+p.speed*0.5);if(p.y>this.canvas.height||p.x>this.canvas.width||p.x<0){this.rainParts[i]=this.createParticle(false);this.rainParts[i].y=-20}}this.ctx.stroke()}this.animationId=requestAnimationFrame(d)};d()}
        onDisable(){if(this.animationId)cancelAnimationFrame(this.animationId);if(this.canvas){window.removeEventListener("resize",this.resizeHandler);this.canvas.remove();this.canvas=null;this.ctx=null}this.rainParts=[];this.snowParts=[]}
    };
    var ModKeystrokes = class extends a {
        constructor(){super("Keystrokes","Fun",{"Show Space":true,"Show LMB":true,"Show RMB":true,"Show CPS":true,"RGB":false,"Edit position":false,"Scale (1-23)":10});this.ui=null;this.clicksL=[];this.clicksR=[];this.isDragging=false;this.offsetX=0;this.offsetY=0;this._dragMove=(e)=>{if(this.isDragging&&this.ui){this.ui.style.left=e.clientX-this.offsetX+"px";this.ui.style.top=e.clientY-this.offsetY+"px"}};this._dragUp=()=>{this.isDragging=false};this.keysMap={"KeyW":"w","KeyA":"a","KeyS":"s","KeyD":"d","Space":"space"};this._onKeyDown=(e)=>{if(this.keysMap[e.code])this.toggleKey(this.keysMap[e.code],true)};this._onKeyUp=(e)=>{if(this.keysMap[e.code])this.toggleKey(this.keysMap[e.code],false)};this._onMouseDown=(e)=>{let n=Date.now();if(e.button===0){this.toggleKey("lmb",true);this.clicksL.push(n)}if(e.button===2){this.toggleKey("rmb",true);this.clicksR.push(n)}};this._onMouseUp=(e)=>{if(e.button===0)this.toggleKey("lmb",false);if(e.button===2)this.toggleKey("rmb",false)}}
        toggleKey(id,state){if(!this.ui)return;let el=this.ui.querySelector(`#key-${id}`);if(el)state?el.classList.add("active"):el.classList.remove("active")}
        createUI(){if(this.ui)return;this.ui=document.createElement("div");this.ui.id="liq-keystrokes";this.ui.innerHTML='<div class="ks-row"><div id="key-w" class="ks-key">W</div></div><div class="ks-row"><div id="key-a" class="ks-key">A</div><div id="key-s" class="ks-key">S</div><div id="key-d" class="ks-key">D</div></div><div class="ks-row" id="ks-mouse-row"><div id="key-lmb" class="ks-key ks-mouse">LMB<div class="ks-cps" id="cps-l">0 CPS</div></div><div id="key-rmb" class="ks-key ks-mouse">RMB<div class="ks-cps" id="cps-r">0 CPS</div></div></div><div class="ks-row" id="ks-space-row"><div id="key-space" class="ks-key ks-space">━━━</div></div>';document.body.appendChild(this.ui);this.ui.addEventListener("mousedown",(e)=>{if(this.options["Edit position"]){this.isDragging=true;this.offsetX=e.clientX-this.ui.offsetLeft;this.offsetY=e.clientY-this.ui.offsetTop}});this.updateLayout()}
        updateLayout(){if(!this.ui)return;this.ui.querySelector("#ks-space-row").style.display=this.options["Show Space"]?"flex":"none";this.ui.querySelector("#ks-mouse-row").style.display=(this.options["Show LMB"]||this.options["Show RMB"])?"flex":"none";this.ui.querySelector("#key-lmb").style.display=this.options["Show LMB"]?"flex":"none";this.ui.querySelector("#key-rmb").style.display=this.options["Show RMB"]?"flex":"none";this.ui.querySelector("#cps-l").style.display=this.options["Show CPS"]?"block":"none";this.ui.querySelector("#cps-r").style.display=this.options["Show CPS"]?"block":"none";if(this.options["RGB"])this.ui.classList.add("ks-rgb");else this.ui.classList.remove("ks-rgb");let s=(this.options["Scale (1-23)"]||10)/10;this.ui.style.transform=`scale(${s})`;if(this.options["Edit position"]){this.ui.style.pointerEvents="auto";this.ui.style.cursor="move";this.ui.style.border="1px dashed rgba(255,255,255,0.5)"}else{this.ui.style.pointerEvents="none";this.ui.style.border="none"}}
        onSettingUpdate(){this.updateLayout()}
        onEnable(){window.addEventListener("keydown",this._onKeyDown,{capture:true});window.addEventListener("keyup",this._onKeyUp,{capture:true});window.addEventListener("mousedown",this._onMouseDown,{capture:true});window.addEventListener("mouseup",this._onMouseUp,{capture:true});window.addEventListener("mousemove",this._dragMove,{capture:true});window.addEventListener("mouseup",this._dragUp,{capture:true});this.createUI()}
        onRender(){if(this.isEnabled&&this.ui){if(this.options["RGB"]){let h=(Date.now()/10*1.2)%360;this.ui.style.setProperty('--ks-rgb-color',`hsl(${h},100%,65%)`)}else{this.ui.style.removeProperty('--ks-rgb-color')}if(this.options["Show CPS"]){let n=Date.now();this.clicksL=this.clicksL.filter(t=>n-t<1000);this.clicksR=this.clicksR.filter(t=>n-t<1000);this.ui.querySelector("#cps-l").textContent=this.clicksL.length+" CPS";this.ui.querySelector("#cps-r").textContent=this.clicksR.length+" CPS"}}}
        onDisable(){if(this.ui){this.ui.remove();this.ui=null}window.removeEventListener("keydown",this._onKeyDown,{capture:true});window.removeEventListener("keyup",this._onKeyUp,{capture:true});window.removeEventListener("mousedown",this._onMouseDown,{capture:true});window.removeEventListener("mouseup",this._onMouseUp,{capture:true});window.removeEventListener("mousemove",this._dragMove,{capture:true});window.removeEventListener("mouseup",this._dragUp,{capture:true});this.clicksL=[];this.clicksR=[]}
    };
    var ModHitParticles = class extends a {
        constructor(){super("HitParticles","Fun",{"Type":["Star","Heart","Flame","Smoke","Spark","Critical","Bubble"],"Amount (1-100)":15,"Size (1-50)":15,"Life (100-5000)":800,"Speed (1-50)":20,"Gravity":false,"Random Motion":true,"Fade Out":true,"Rainbow Mode":true,"Particle Color":"#ff3333"});this.canvas=null;this.ctx=null;this.particles=[];this.animationId=null;this.resizeHandler=this.resize.bind(this)}
        initCanvas(){if(this.canvas)return;this.canvas=document.createElement("canvas");this.canvas.style.cssText="position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9996;pointer-events:none;";document.body.appendChild(this.canvas);this.ctx=this.canvas.getContext("2d");this.resize();window.addEventListener("resize",this.resizeHandler)}
        resize(){if(!this.canvas)return;this.canvas.width=window.innerWidth;this.canvas.height=window.innerHeight}
        spawnParticles(hX,hY,hZ){let a=this.options["Amount (1-100)"],bS=this.options["Size (1-50)"]/10,s=this.options["Speed (1-50)"]/10,l=this.options["Life (100-5000)"];for(let i=0;i<a;i++){this.particles.push({x:hX+(Math.random()-0.5)*0.8,y:hY+(Math.random()-0.5)*0.8,z:hZ+(Math.random()-0.5)*0.8,vx:(Math.random()-0.5)*s,vy:(Math.random()-0.5)*s+(this.options["Gravity"]?Math.random()*s:0),vz:(Math.random()-0.5)*s,life:l,maxLife:l,size:bS*(0.5+Math.random()),hue:Math.random()*360})}}
        drawShape(x,y,s,c,t){this.ctx.fillStyle=c;this.ctx.strokeStyle=c;this.ctx.beginPath();if(t==="star"){for(let i=0;i<5;i++){this.ctx.lineTo(x+Math.cos((18+i*72)/180*Math.PI)*s,y-Math.sin((18+i*72)/180*Math.PI)*s);this.ctx.lineTo(x+Math.cos((54+i*72)/180*Math.PI)*(s/2),y-Math.sin((54+i*72)/180*Math.PI)*(s/2))}this.ctx.closePath();this.ctx.fill()}else if(t==="heart"){this.ctx.moveTo(x,y+s/4);this.ctx.bezierCurveTo(x,y,x-s/2,y,x-s/2,y-s/4);this.ctx.bezierCurveTo(x-s/2,y-s/2,x,y-s/2,x,y-s/4);this.ctx.bezierCurveTo(x,y-s/2,x+s/2,y-s/2,x+s/2,y-s/4);this.ctx.bezierCurveTo(x+s/2,y,x,y,x,y+s/4);this.ctx.fill()}else if(t==="spark"||t==="critical"){this.ctx.lineWidth=Math.max(1,s/4);this.ctx.moveTo(x-s,y);this.ctx.lineTo(x+s,y);this.ctx.moveTo(x,y-s);this.ctx.lineTo(x,y+s);this.ctx.stroke()}else{this.ctx.arc(x,y,s,0,Math.PI*2);t==="bubble"?this.ctx.stroke():this.ctx.fill()}}
        onEnable(){this.initCanvas();p.listeners.HitParticles=(r,e)=>{if(r===13&&this.isEnabled){let hX=e[1]+e[4]*e[7],hY=e[2]+e[5]*e[7]+0.8,hZ=e[3]+e[6]*e[7];this.spawnParticles(hX,hY,hZ)}};let d=()=>{if(!this.isEnabled||!this.ctx)return;this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height);let me=o?.gameWorld?.player;if(me&&this.particles.length>0){let dt=16.6,m=me.position,yR=me.rotation.y,cY=Math.cos(yR),sY=Math.sin(yR),xR=me.rotation.x,cX=Math.cos(xR),sX=Math.sin(xR),cx=this.canvas.width/2,cy=this.canvas.height/2,fS=this.canvas.height,type=this.options["Type"][0].toLowerCase();for(let i=this.particles.length-1;i>=0;i--){let p=this.particles[i];p.life-=dt;if(p.life<=0){this.particles.splice(i,1);continue}if(this.options["Random Motion"]){p.vx+=(Math.random()-0.5)*0.2;p.vy+=(Math.random()-0.5)*0.2;p.vz+=(Math.random()-0.5)*0.2}if(this.options["Gravity"])p.vy-=0.05;p.x+=p.vx*(dt/50);p.y+=p.vy*(dt/50);p.z+=p.vz*(dt/50);let dx=p.x-m.x,dy=p.y-(m.y+1.6),dz=p.z-m.z,x1=dx*cY-dz*sY,z1=dx*sY+dz*cY,y2=dy*cX-z1*sX,z2=dy*sX+z1*cX,x2=x1;if(z2<0){let depth=-z2,sX=cx+(x2/depth)*fS,sY=cy-(y2/depth)*fS,rS=p.size*(fS/depth)*0.02;if(rS>100||rS<0.5)continue;let alpha=this.options["Fade Out"]?(p.life/p.maxLife):1,r=255,g=51,b=51;if(!this.options["Rainbow Mode"]){let hex=this.options["Particle Color"].replace('#','');r=parseInt(hex.substring(0,2),16);g=parseInt(hex.substring(2,4),16);b=parseInt(hex.substring(4,6),16)}let color=this.options["Rainbow Mode"]?`hsla(${p.hue+(p.maxLife-p.life)*0.1},100%,50%,${alpha})`:`rgba(${r},${g},${b},${alpha})`;this.drawShape(sX,sY,rS,color,type)}}}this.animationId=requestAnimationFrame(d)};d()}
        onDisable(){if(this.animationId)cancelAnimationFrame(this.animationId);if(this.canvas){window.removeEventListener("resize",this.resizeHandler);this.canvas.remove();this.canvas=null;this.ctx=null}this.particles=[];delete p.listeners.HitParticles}
    };
    var ModFPSBoost = class extends a {
        constructor(){super("FPS Boost","Fun",{Keybind:null});this._originals={}}
        onEnable(){const g=o.gameWorld;if(!g)return;try{if(g.chunkManager){this._originals.renderDist=g.chunkManager.renderDistance||g.chunkManager.viewDistance;if(g.chunkManager.renderDistance!==undefined)g.chunkManager.renderDistance=4;if(g.chunkManager.viewDistance!==undefined)g.chunkManager.viewDistance=4}const ps=g.particleSystem||g.particles;if(ps){this._originals.maxParticles=ps.maxParticles||ps.limit;if(ps.maxParticles!==undefined)ps.maxParticles=30;if(ps.limit!==undefined)ps.limit=30}this._originals.bodyFilter=document.body.style.filter;document.body.style.filter='none';const e=document.querySelector('#game, canvas');if(e){this._originals.gameWillChange=e.style.willChange;e.style.willChange='transform'}if(g.loop||g.animate){this._originals.fpsCap=g.fpsCap||g.maxFPS;if(g.fpsCap!==undefined)g.fpsCap=120}console.log('[NeonViper] FPS Boost applied')}catch(err){console.warn('[NeonViper] FPS Boost failed:',err)}}
        onDisable(){const g=o.gameWorld;if(!g)return;try{if(g.chunkManager){if(this._originals.renderDist!==undefined)g.chunkManager.renderDistance=this._originals.renderDist;if(this._originals.viewDist!==undefined)g.chunkManager.viewDistance=this._originals.viewDist}const ps=g.particleSystem||g.particles;if(ps){if(this._originals.maxParticles!==undefined)ps.maxParticles=this._originals.maxParticles;if(this._originals.limit!==undefined)ps.limit=this._originals.limit}document.body.style.filter=this._originals.bodyFilter||'';const e=document.querySelector('#game, canvas');if(e&&this._originals.gameWillChange!==undefined)e.style.willChange=this._originals.gameWillChange;if(g.fpsCap!==undefined&&this._originals.fpsCap!==undefined)g.fpsCap=this._originals.fpsCap}catch(err){console.warn('[NeonViper] FPS Boost restore failed:',err)}this._originals={}}
    };

    // ================== MOVEMENT ==================
    var ModAirjumppatch = class extends a{constructor(){super("Airjumppatch:(","Movement",null)}onRender(){const p=o?.gameWorld?.player;if(p&&p.inputs?.jump&&!p.onGround&&p.canAirJump!==false){p.velocity.y=8.285714285714286;p.canAirJump=false}if(p?.onGround)p.canAirJump=true}};
    var ModNoFall = class extends a{constructor(){super("NoFall","Movement",null)}onEnable(){if(typeof super.onEnable==="function")super.onEnable();if(window.j&&j.listeners){j.listeners.NoFall=function(e,t){if(e==j.toServer.TIME_STEP_INFO&&t&&t.lp){let v=t.lp[3];if(v>0)t.lp[3]*=0.01;else t.lp[3]=-0.01}}}}onDisable(){if(typeof super.onDisable==="function")super.onDisable();if(window.j&&j.listeners)delete j.listeners.NoFall}};
    var ModVelocity = class extends a{constructor(){super("Velocity","Movement",{"Horizontal":90,"Vertical":100,"Chance":100,"Only When Hit":true});this._lastVel={x:0,y:0,z:0};this._kbDetected=false}onRender(){const p=o?.gameWorld?.player;if(!p||!p.velocity?.velVec3)return;const v=p.velocity.velVec3,dx=v.x-this._lastVel.x,dz=v.z-this._lastVel.z,sM=Math.sqrt(dx*dx+dz*dz)>0.12,h=p.hurtTime>0;if((sM||h)&&(!this.options["Only When Hit"]||h)){if(Math.random()*100<=this.options["Chance"]){const hF=(100-this.options["Horizontal"])/100,vF=(100-this.options["Vertical"])/100;v.x*=hF;v.z*=hF;v.y*=vF;this._kbDetected=true}}this._lastVel={x:v.x,y:v.y,z:v.z};this._kbDetected=false}onDisable(){this._lastVel={x:0,y:0,z:0};this._kbDetected=false}};
    var ModFly = class extends a{constructor(){super("Fly","Movement",{"Vertical Speed":5})}onRender(){if(o?.gameWorld?.player){o.gameWorld.player.velocity.gravity=0;if(o.gameWorld.player.inputs.jump)o.gameWorld.player.velocity.velVec3.y=this.options["Vertical Speed"];else if(o.gameWorld.player.inputs.crouch)o.gameWorld.player.velocity.velVec3.y=-this.options["Vertical Speed"];else o.gameWorld.player.velocity.velVec3.y=0}}onDisable(){if(o.gameWorld.player)o.gameWorld.player.velocity.gravity=23}};
    var ModSpeed = class extends a{constructor(){super("Speed","Movement",{Speed:7.1})}onRender(){if(o?.gameWorld?.player){o.gameWorld.player.velocity.moveSpeed=this.options.Speed;o.gameWorld.player.velocity.fastMoveSpeed=this.options.Speed}}onDisable(){if(o.gameWorld.player)o.gameWorld.player.velocity.moveSpeed=4.5;o.gameWorld.player.velocity.fastMoveSpeed=6.4}};
    var ModNoClip = class extends a{constructor(){super("NoClip","Movement")}get playerPhysicsSystem(){return o.gameWorld.systemsManager.activeSystems.find(e=>e?.playerPhysicsSystem).playerPhysicsSystem}onRender(){if(o?.gameWorld?.player){this._og=this._og||this.playerPhysicsSystem.resolveBlockCollision;if(this.playerPhysicsSystem.resolveBlockCollision==this._og)this.playerPhysicsSystem.resolveBlockCollision=()=>{}}}onDisable(){if(this.playerPhysicsSystem)this.playerPhysicsSystem.resolveBlockCollision=this._og}};
    var ModTimer = class extends a{constructor(){super("Timer","Movement",{Multiplier:5});this.interval=null}onEnable(){if(this.interval)clearInterval(this.interval);this.interval=setInterval(()=>{let e=o.gameWorld.time;e.elapsedTimeMs+=20*this.options.Multiplier},20)}onDisable(){if(this.interval)clearInterval(this.interval)}};
    var ModHighJump = class extends a{constructor(){super("HighJump","Movement",{"Jump Height":9.1})}onRender(){if(o?.gameWorld?.player?.velocity)o.gameWorld.player.velocity.jumpSpeed=parseFloat(this.options["Jump Height"])}onDisable(){if(o?.gameWorld?.player?.velocity)o.gameWorld.player.velocity.jumpSpeed=8.285714285714286}};
    var ModGroundSpeed = class extends a{constructor(){super("GroundSpeed","Movement",{Speed:15})}get playerPhysicsSystem(){return o.gameWorld.systemsManager.activeSystems.find(e=>e?.playerPhysicsSystem).playerPhysicsSystem}resetMovementSpeed(){if(o.gameWorld.player){o.gameWorld.player.velocity.moveSpeed=4.5;o.gameWorld.player.velocity.fastMoveSpeed=6.4}}onRender(){if(o?.gameWorld?.player){if(o.gameWorld.player.collision.isGrounded){o.gameWorld.player.velocity.moveSpeed=this.options.Speed;o.gameWorld.player.velocity.fastMoveSpeed=this.options.Speed}else this.resetMovementSpeed()}}onEnable(){let e=0,t=0;this.playerPhysicsSystem.BB.min.__defineGetter__("y",()=>e-0.1);this.playerPhysicsSystem.BB.max.__defineGetter__("y",()=>t-0.1);this.playerPhysicsSystem.BB.min.__defineSetter__("y",i=>e=i);this.playerPhysicsSystem.BB.max.__defineSetter__("y",i=>t=i)}onDisable(){this.resetMovementSpeed();delete this.playerPhysicsSystem.BB.min.y;delete this.playerPhysicsSystem.BB.max.y}};
    var ModSpider = class extends a{constructor(){super("Spider","Movement",{Speed:5})}get playerPhysicsSystem(){return o.gameWorld.systemsManager.activeSystems.find(e=>e?.playerPhysicsSystem).playerPhysicsSystem}get upAgainstWall(){return this.playerPhysicsSystem.playerVelVec3.x==0||this.playerPhysicsSystem.playerVelVec3.z==0}onRender(){if(o?.gameWorld?.player&&o.gameWorld.player.inputs.jump&&this.upAgainstWall)o.gameWorld.player.velocity.velVec3.y=this.options.Speed}};
    var ModScaffold = class extends a{constructor(){super("Scaffold","Movement",null)}onRender(){const p=o?.gameWorld?.player,cm=o?.gameWorld?.chunkManager;if(!p||!cm)return;const pos=[Math.floor(p.position.x),Math.floor(p.position.y)-1,Math.floor(p.position.z)],item=p.currentInventoryItemId,cur=cm.getBlock(...pos);if(item&&(cur===0||o.gameWorld.items[cur]?.replaceable))cm.setBlock(...pos,item,true,true)}};
    var ModAutoSprint = class extends a{constructor(){super("AutoSprint","Movement",{"KeepSprint":true,"OmniSprint":true})}onRender(){if(!o?.gameWorld?.player)return;const p=o.gameWorld.player;if(!p.inputs)return;p.inputs.sprint=true;p.inputs.shift=true;if(this.options["KeepSprint"]){if(p.hurtTime!==undefined)p.hurtTime=0;if(p.sprintTimeout!==undefined)p.sprintTimeout=0;if(p.noSprintTime!==undefined)p.noSprintTime=0;p.isSprinting=true}if(this.options["OmniSprint"]){if(p.inputs.backward&&!p.inputs.forward)p.inputs.forward=true;if(p.velocity)p.velocity.isSprinting=true}}onDisable(){if(o?.gameWorld?.player)o.gameWorld.player.isSprinting=false}};
    var ModStep = class extends a{constructor(){super("Step","Movement",null);this._backup={};this._lastPos=null;this._climbCooldown=0}onEnable(){const p=o.gameWorld?.player;if(!p)return;this._backup.stepHeight=p.stepHeight;this._backup.collisionStep=p.collision?.stepHeight;this._backup.bbMaxY=p.BB?.max?.y;this._backup.velY=p.velocity?.velVec3?.y;if(p.stepHeight!==undefined)p.stepHeight=1.5;if(p.collision?.stepHeight!==undefined)p.collision.stepHeight=1.5;if(p.BB?.max?.y!==undefined)p.BB.max.y=1.9;this._lastPos={x:p.position.x,y:p.position.y,z:p.position.z};this._climbCooldown=0}onRender(){const p=o.gameWorld?.player;if(!p)return;if(p.stepHeight!==undefined)p.stepHeight=1.5;if(p.collision?.stepHeight!==undefined)p.collision.stepHeight=1.5;if(p.BB?.max?.y!==undefined)p.BB.max.y=1.9;if(this._climbCooldown>0)this._climbCooldown--;const dx=p.position.x-this._lastPos.x,dy=p.position.y-this._lastPos.y,dz=p.position.z-this._lastPos.z,hD=Math.sqrt(dx*dx+dz*dz),isM=hD>0.04,isC=dy>0.012&&dy<0.35&&isM&&p.inputs?.forward,isG=p.collision?.isGrounded||p.velocity?.velVec3?.y<=0.01;if(isC&&isG&&this._climbCooldown===0){if(o.gameWorld?.time?.elapsedTimeMs!==undefined)o.gameWorld.time.elapsedTimeMs+=12;if(p.velocity?.velVec3?.y!==undefined)p.velocity.velVec3.y=Math.max(p.velocity.velVec3.y,0.38);this._climbCooldown=3}this._lastPos={x:p.position.x,y:p.position.y,z:p.position.z}}onDisable(){const p=o.gameWorld?.player;if(!p)return;if(this._backup.stepHeight!==undefined)p.stepHeight=this._backup.stepHeight;if(this._backup.collisionStep!==undefined&&p.collision)p.collision.stepHeight=this._backup.collisionStep;if(this._backup.bbMaxY!==undefined&&p.BB?.max)p.BB.max.y=this._backup.bbMaxY;if(this._backup.velY!==undefined&&p.velocity?.velVec3)p.velocity.velVec3.y=this._backup.velY;this._backup={};this._lastPos=null;this._climbCooldown=0}};

    // ================== COMBAT ==================
    var ModKillaura = class extends a{constructor(){super("Killaura","Combat",{"Y Offset":1.62,"Reach":10,"Delay":50,"FOV":30});this.lastExecutionTime=null}onRender(){const n=Date.now();if(o?.gameWorld?.player&&n-this.lastExecutionTime>=this.options.Delay){this.lastExecutionTime=n;this.tryKill()}}tryKill(){const r=this.options.Reach,yO=this.options["Y Offset"],mF=this.options["FOV"]||30,p=o.gameWorld.player,pP={x:p.position.x,y:p.position.y+yO,z:p.position.z};let lD={x:0,y:0,z:0};if(p.getLookVector)lD=p.getLookVector();else if(p.rotation){const y=p.rotation.y,pi=p.rotation.x;lD.x=-Math.sin(y)*Math.cos(pi);lD.y=-Math.sin(pi);lD.z=-Math.cos(y)*Math.cos(pi)}const lL=Math.sqrt(lD.x*lD.x+lD.y*lD.y+lD.z*lD.z);if(lL!==0){lD.x/=lL;lD.y/=lL;lD.z/=lL}const t=m.getClosestPlayer();if(!t)return;const tP=t._model.position;let dTT={x:tP.x-pP.x,y:tP.y-pP.y,z:tP.z-pP.z};const aD=Math.sqrt(dTT.x*dTT.x+dTT.y*dTT.y+dTT.z*dTT.z);if(aD!==0){dTT.x/=aD;dTT.y/=aD;dTT.z/=aD}const dot=lD.x*dTT.x+lD.y*dTT.y+lD.z*dTT.z,ang=Math.acos(Math.max(-1,Math.min(1,dot)))*(180/Math.PI);if(aD<r&&ang<=mF){o.gameWorld.server.sendData(13,[o.gameWorld.time.localServerTimeMs,pP.x,pP.y,pP.z,dTT.x,dTT.y,dTT.z,aD,t.id])}}};
    var ModRangeclick = class extends a{constructor(){super("Rangeclick beta","Combat",{"Y Offset":1.62,"Reach":10,"FOV":30});this.wasMouseDown=false}onRender(){const p=o?.gameWorld?.player;if(!p)return;const m=!!p.inputs?.leftMB;if(m&&!this.wasMouseDown)this.tryKill();this.wasMouseDown=m}tryKill(){const r=10,yO=this.options["Y Offset"],mF=this.options["FOV"]||30,p=o.gameWorld.player,pP={x:p.position.x,y:p.position.y+yO,z:p.position.z};let lD={x:0,y:0,z:0};if(p.getLookVector)lD=p.getLookVector();else if(p.rotation){const y=p.rotation.y,pi=p.rotation.x;lD.x=-Math.sin(y)*Math.cos(pi);lD.y=-Math.sin(pi);lD.z=-Math.cos(y)*Math.cos(pi)}const lL=Math.sqrt(lD.x*lD.x+lD.y*lD.y+lD.z*lD.z);if(lL!==0){lD.x/=lL;lD.y/=lL;lD.z/=lL}const t=m.getClosestPlayer();if(!t)return;const tP=t._model.position;let dTT={x:tP.x-pP.x,y:tP.y-pP.y,z:tP.z-pP.z};const aD=Math.sqrt(dTT.x*dTT.x+dTT.y*dTT.y+dTT.z*dTT.z);if(aD!==0){dTT.x/=aD;dTT.y/=aD;dTT.z/=aD}const dot=lD.x*dTT.x+lD.y*dTT.y+lD.z*dTT.z,ang=Math.acos(Math.max(-1,Math.min(1,dot)))*(180/Math.PI);if(aD<=r&&ang<=mF){o.gameWorld.server.sendData(13,[o.gameWorld.time.localServerTimeMs,pP.x,pP.y,pP.z,dTT.x,dTT.y,dTT.z,aD,t.id])}}};
    var ModGunModifier = class extends a{constructor(){super("GunModifier","Combat",{Spread:0.5,"Bullets per shot":15,"Firerate (ms)":1,"Bullet distance":1000,"Reload Time":0,Recoil:false})}get gunSystem(){return o.gameWorld.systemsManager.activeSystems.find(e=>e?.bulletsSystem)}onEnable(){let e=this.gunSystem.playerShooter.currPlayerWeaponSpec;e.bulletsPerShot=this.options["Bullets per shot"];e.firerateMs=this.options["Firerate (ms)"];e.distance=this.options["Bullet distance"];e.startSpread=this.options.Spread;e.reloadTimeMs=this.options["Reload Time"];if(!this.options.Recoil){e.recoilAttackY=0;e.recoilAttackX=0}}};
    var ModAimbot = class extends a{constructor(){super("Aimbot","Combat",{"On Aim":"true","On Shoot":"true","Y Offset":-0.7});this.lastExecutionTime=null}getClosestEnemy(e,t){let i=null,s=Infinity;t.forEach(n=>{if(n?.model?.position&&n.isAlive){let l=x.calculateDistance(e.position,n.model.position);if(l<s){s=l;i=n}}});return i}aimAtEnemy(){let e=o.gameWorld.player,t=o.gameWorld.server.players;if(!e||!t)return;let i=this.getClosestEnemy(e,t);if(i){let s=i.model.position,n=e.position,l={x:s.x-n.x,z:s.z-n.z},d=Math.atan2(l.x,l.z),u=parseFloat(this.options["Y Offset"]),y=s.y+u-n.y,f=Math.hypot(l.x,l.z),g=Math.atan2(y,f);g=Math.max(Math.min(g,Math.PI/2),-Math.PI/2);let b=(d+Math.PI)%(2*Math.PI);e.rotation.y=b;e.rotation.x=g}}onRender(){if(o?.gameWorld?.server){if(this.options["On Aim"]=="true"&&o.gameWorld.player.inputs.rightMB)this.aimAtEnemy();else if(this.options["On Shoot"]=="true"&&o.gameWorld.player.inputs.leftMB)this.aimAtEnemy();else if(this.options["On Shoot"]!=="true"&&this.options["On Aim"]!=="true")this.aimAtEnemy()}}};

    // ================== MISC ==================
    var ModInstabreak = class extends a{constructor(){super("Instabreak","Misc",null);this.originalHardness=new Map()}onEnable(){Object.values(o.gameWorld.items).forEach(e=>{if(e?.destruction){if(!this.originalHardness.has(e))this.originalHardness.set(e,e.destruction.durability);e.destruction.durability=0}})}onDisable(){Object.values(o.gameWorld.items).forEach(e=>{if(e?.destruction&&this.originalHardness.has(e))e.destruction.durability=this.originalHardness.get(e)})}};
    var ModNuker = class extends a{constructor(){super("Nuker","Misc",{Radius:1,Delay:100,"Break On Look":true,"Break On Touch":true,"Auto Disable":false});this.nukerInterval=null}get selectedBlock(){return o.gameWorld?.systemsManager.activeExecuteSystems.find(e=>e?.currBlockPos!==undefined)||undefined}onDisable(){if(this.nukerInterval){clearInterval(this.nukerInterval);this.nukerInterval=null}}onEnable(){this.onDisable();this.nukerInterval=setInterval(()=>{if(!this.isEnabled)return;let b=new Set(),r=this.options.Radius||1;if(this.options["Break On Touch"]&&o.gameWorld?.player?.position){let pos=o.gameWorld.player.position,px=Math.floor(pos[0]),py=Math.floor(pos[1]),pz=Math.floor(pos[2]);for(let x=-1;x<=1;x++)for(let y=0;y<=2;y++)for(let z=-1;z<=1;z++){let bx=px+x,by=py+y,bz=pz+z;if(bx===px&&bz===pz&&by<py)continue;for(let rx=-r;rx<=r;rx++)for(let ry=-r;ry<=r;ry++)for(let rz=-r;rz<=r;rz++){let fY=by+ry;if(fY<py)continue;b.add(`${bx+rx},${fY},${bz+rz}`)}}}if(this.options["Break On Look"]){let t=null;if(this.selectedBlock&&this.selectedBlock.currBlockPos)t=[...this.selectedBlock.currBlockPos];else{let fd=2,pos=o.gameWorld.player.position,arr=Object.values(pos).map(Math.floor),yaw=o.gameWorld.player.rotation?.y||o.gameWorld.player.yaw||0;arr[0]+=Math.round(-Math.sin(yaw)*fd);arr[2]+=Math.round(Math.cos(yaw)*fd);t=arr}if(t){let [tx,ty,tz]=t;for(let x=-r;x<=r;x++)for(let y=-r;y<=r;y++)for(let z=-r;z<=r;z++){if(Math.sqrt(x*x+y*y+z*z)<=r)b.add(`${tx+x},${ty+y},${tz+z}`)}}}b.forEach(c=>{let [fx,fy,fz]=c.split(',').map(Number);if(o.gameWorld.chunkManager.getBlock(fx,fy,fz)!==0)o.gameWorld.chunkManager.setBlock(fx,fy,fz,0,true)});if(this.options["Auto Disable"])this.disable()},this.options.Delay)}};
    var ModAdBypass = class extends a{constructor(){super("AdBypass","Misc")}onEnable(){this._reward=this._reward||o.stores.get("adsStore").rewardCommercialVideoWrapper;o.stores.get("adsStore").rewardCommercialVideoWrapper=()=>true}onDisable(){o.stores.get("adsStore").rewardCommercialVideoWrapper=()=>this._reward}};
    var ModFreeHeadcoins = class extends a{constructor(){super("FreeHeadcoins","Misc")}async onEnable(){let e=await o.network.get("users/freeSpinner");o.stores.get("userState").user.balance.headcoins+=e.data.amount;h.modules.FreeHeadcoins.disable()}};
    var ModFill = class extends a{constructor(){super("Fill","Misc",{Radius:4,"Block ID":652,"Chunk Interval":500});this.lastExecutionTime=0}onRender(){if(!o?.gameWorld?.player)return;let e=this.options.Radius,t=this.options["Chunk Interval"],i=Date.now();if(i-this.lastExecutionTime>=t){this.lastExecutionTime=i;let s=Object.values(o.gameWorld.player.position).splice(0,3).map(Math.floor);for(let n=-e;n<=e;n++)for(let l=-e;l<=e;l++)for(let d=-e;d<=e;d++){let [u,y,f]=[s[0]+n,s[1]+l,s[2]+d];if(o.gameWorld.chunkManager.getBlock(u,y,f)==0)o.gameWorld.chunkManager.setBlock(u,y,f,this.options["Block ID"],true,true)}}}};
    var ModNoHunger = class extends a{constructor(){super("NoHunger","Misc",null)}onEnable(){p.listeners.NoHunger=function(e,t){if(e==p.toServer.TIME_STEP_INFO){if(t.m)delete t.m;if(t.s)delete t.s;if(t.j)delete t.j}}}onDisable(){delete p.listeners.NoHunger}};
    var ModNoDrown = class extends a{constructor(){super("NoDrown","Misc",null)}get damageListener(){return o.gameWorld.eventEmitter._events.get(48).values().next().value}onRender(){if(o?.gameWorld?.eventEmitter?._events&&this.damageListener.callback.toString().includes("damageToApply"))this.damageListener.callback=()=>{}}onDisable(){if(o?.gameWorld?.eventEmitter?._events)this.damageListener.callback=e=>{this.damageToApply+=e}}};
    var ModInstantRespawn = class extends a{constructor(){super("InstantRespawn","Misc")}get gamemode(){return location.pathname.replace("/match/","")}onRender(){if(o.gameWorld?.player.isAlive)return;let e=false;switch(this.gamemode){case"one-block":o.gameWorld.server.sendData(p.toServer.ONE_BLOCK_REQUEST_RESPAWN,true);e=true;break;case"parkour":o.gameWorld.server.sendData(p.toServer.PARKOUR_REQUEST_RESPAWN,true);e=true;break;case"bedwars":o.gameWorld.server.sendData(p.toServer.BED_WARS_REQUEST_RESPAWN,true);e=true;break;case"survival":o.gameWorld.server.sendData(p.toServer.SANDBOX_REQUEST_RESPAWN,true);e=true;break}if(e)o.stores.get("gameState").setLayoutState(0)}};
    var ModShopAnywhere = class extends a{constructor(){super("ShopAnywhere","Misc")}get npcSystem(){return o?.gameWorld?.systemsManager?.activeSystems.find(e=>e?.isPlayerInShoppingZone)}onRender(){if(this?.npcSystem){this._og=this._og||this.npcSystem.isPlayerInShoppingZone;if(this.npcSystem.isPlayerInShoppingZone==this._og)this.npcSystem.isPlayerInShoppingZone=()=>true}}onDisable(){if(this.npcSystem)this.npcSystem.isPlayerInShoppingZone=this._og}};
    var ModSelfHarm = class extends a{constructor(){super("SelfHarm","Misc",{Amount:0})}onEnable(){o.gameWorld.server.msgsToSend.push(p.toServer.GOT_DAMAGE,parseFloat(this.options.Amount));this.disable()}};
    var ModBlockFinder = class extends a{constructor(){super("BlockFinder","Misc",{"Search Radius":16,"Block ID":581});this.CHUNK_SIZE=16;this.CHUNK_CHECK_MS=200;this.foundBlocks=[];this.lastChunkKey="";this.chunkInterval=null;this.raf=null;this.ui=null;this.listEl=null}getPlayerChunk(){let e=o.gameWorld.player.position;return[Math.floor(e.x/this.CHUNK_SIZE),Math.floor(e.y/this.CHUNK_SIZE),Math.floor(e.z/this.CHUNK_SIZE)]}createUI(){if(this.ui)return;let e=document.createElement("div");e.style.cssText='position:fixed;top:80px;left:80px;width:260px;background:#111;color:#ddd;font:11px system-ui,sans-serif;border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.4);z-index:99999;user-select:none;';e.innerHTML='<div class="bf-head" style="padding:6px 8px;cursor:move;opacity:.85;">Block Finder</div><div class="bf-list" style="max-height:260px;overflow:auto;padding:4px 8px 8px;font-family:monospace;white-space:pre;"></div>';document.body.appendChild(e);this.ui=e;this.listEl=e.querySelector(".bf-list");let t=false,i=0,s=0,n=e.querySelector(".bf-head");n.onmousedown=l=>{t=true;i=l.clientX-e.offsetLeft;s=l.clientY-e.offsetTop};document.addEventListener("mousemove",this._dragMove=l=>{if(t){e.style.left=l.clientX-i+"px";e.style.top=l.clientY-s+"px"}});document.addEventListener("mouseup",this._dragUp=()=>t=false)}destroyUI(){if(this.ui){this.ui.remove();this.ui=null;this.listEl=null;document.removeEventListener("mousemove",this._dragMove);document.removeEventListener("mouseup",this._dragUp)}}scanChunks(){let e=this.options["Search Radius"]|0,t=this.options["Block ID"]|0,i=o.gameWorld.chunkManager,s=this.getPlayerChunk();this.foundBlocks=[];for(let n=-e;n<=e;n++)for(let l=-e;l<=e;l++)for(let d=-e;d<=e;d++){let u=s[0]+n,y=s[1]+l,f=s[2]+d,g=i.getChunkArray(u,y,f);if(g)for(let b=0;b<g.length;b++){if(g[b]!==t)continue;let ie=(u<<4)+(b&15),re=(y<<4)+((b>>4)&15),ne=(f<<4)+(b>>8);if(o.gameWorld.chunkManager.getBlock(ie,re,ne)===t)this.foundBlocks.push([ie,re,ne])}}}renderDistances=()=>{if(!this.listEl)return;let e=[...o.gameWorld.player.position];if(this.foundBlocks.length===0)this.listEl.textContent="none nearby";else this.listEl.textContent=this.foundBlocks.map(t=>({pos:t,d:x.calculateDistanceArr(e,t)})).sort((t,i)=>t.d-i.d).map(t=>`${t.pos[0]},${t.pos[1]},${t.pos[2]}  ${t.d.toFixed(1)}m`).join("\n");this.raf=requestAnimationFrame(this.renderDistances)};onEnable(){this.createUI();this.scanChunks();this.renderDistances();this.chunkInterval=setInterval(()=>{let e=this.getPlayerChunk().join(",");if(e!==this.lastChunkKey){this.lastChunkKey=e;this.scanChunks()}},this.CHUNK_CHECK_MS)}onDisable(){clearInterval(this.chunkInterval);cancelAnimationFrame(this.raf);this.chunkInterval=null;this.raf=null;this.foundBlocks=[];this.lastChunkKey="";this.destroyUI()}};
    var ModAirPlace = class extends a{constructor(){super("AirPlace","Misc")}get blockPlaceSystem(){return o.gameWorld.systemsManager.activeSystems.find(e=>e?._handlePlaceInAir)}onRender(){if(this.blockPlaceSystem)this.blockPlaceSystem.canPlaceBlocksInAir=true}onDisable(){if(this.blockPlaceSystem&&(!h.modules.Scaffold||!h.modules.Scaffold.isEnabled)){this.blockPlaceSystem.canPlaceBlocksInAir=o.gameWorld.player.gameMode==2}}};
    // ================== MENUS ==================
    var ModCrafting = class extends a{constructor(){super("Crafting","Menus")}onEnable(){m.openOtherItem(2);this.disable();if(h.modules.ClickGUI)h.modules.ClickGUI.onDisable(false)}};
    var ModDyeingTable = class extends a{constructor(){super("DyeingTable","Menus")}onEnable(){m.openOtherItem(9);this.disable();if(h.modules.ClickGUI)h.modules.ClickGUI.onDisable(false)}};
    var ModCuttingTable = class extends a{constructor(){super("CuttingTable","Menus")}onEnable(){m.openOtherItem(10);this.disable();if(h.modules.ClickGUI)h.modules.ClickGUI.onDisable(false)}};
    // ================== WORLD ==================
    var ModFastBreak = class extends a{constructor(){super("FastBreak","World",{"Delay (1-5)":1,"Speed (1-100%)":100});this._originalDurability=new Map();this._lastBreakTime=0}onEnable(){Object.values(o.gameWorld.items).forEach(i=>{if(i?.destruction?.durability!==undefined)this._originalDurability.set(i,i.destruction.durability)});this.applyModifiers()}applyModifiers(){const s=parseFloat(this.options["Speed (1-100%)"])||100,sR=s/100,hF=1-(sR*0.5);Object.values(o.gameWorld.items).forEach(i=>{if(!i?.destruction?.durability)return;const o=this._originalDurability.get(i)??i.destruction.durability;i.destruction.durability=o*hF})}onRender(){const d=parseInt(this.options["Delay (1-5)"])||1,mD=d*25,n=Date.now();this.applyModifiers();if(o.gameWorld?.player?.inputs?.leftMB&&n-this._lastBreakTime>=mD)this._lastBreakTime=n}onSettingUpdate(){if(this.isEnabled)this.applyModifiers()}onDisable(){this._originalDurability.forEach((o,i)=>{if(i?.destruction)i.destruction.durability=o});this._originalDurability.clear()}};

    // ------------------------------ Module Manager ------------------------------
    var h = {
        modules: {},
        defaultKeybinds: { "Killaura": "Semicolon", "Fly": "Slash", "Timer": "Quote", "Instabreak": "Digit0", "Aimbot": "Semicolon", "Spider": "Backslash", "Freecam": "Delete" },
        addModules(...classes) { for (let cls of classes) { let mod = new cls(); this.modules[mod.name] = mod; } },
        addModule(mod) { this.modules[mod.name] = mod; },
        handleKeyPress(code) { for (let name in this.modules) { let mod = this.modules[name]; if (mod.waitingForBind) { mod.keybind = code === "Escape" ? null : code; mod.waitingForBind = false; } else if (mod.keybind === code) { mod.toggle(); } } },
        toggleModuleSafely(name) { let mod = this.modules[name]; if (!mod) return; try { if (typeof mod.toggle === "function") mod.toggle(); else if (typeof mod.enable === "function") mod.enable(); else if (typeof mod.onEnable === "function" && !mod.isEnabled) { mod.isEnabled = true; mod.onEnable(); } } catch (err) { console.warn(`[NeonViper] Can't toggle ${name}:`, err); } },
        applyDefaultKeybinds() { for (let name in this.defaultKeybinds) { if (this.modules[name]) this.modules[name].keybind = this.defaultKeybinds[name]; } },
        init() {
            this.addModules(
                ModArraylist, ModWatermark, ModClickGUI, ModNoFog, ModChams, ModTracers,
                ModFreecam, ModXray, ModInterface, ModBlockOutline, ModFullbright,
                ModAirjumppatch, ModNoFall, ModVelocity, ModFly, ModSpeed, ModNoClip, ModTimer, ModHighJump, ModGroundSpeed, ModSpider, ModScaffold, ModAutoSprint, ModStep,
                ModKillaura, ModGunModifier, ModAimbot, ModRangeclick,
                ModInstabreak, ModNuker, ModAdBypass, ModFreeHeadcoins, ModFill, ModNoHunger, ModNoDrown, ModInstantRespawn, ModShopAnywhere, ModSelfHarm, ModBlockFinder, ModAirPlace,
                ModWeatherScreen, ModKeystrokes, ModHitParticles, ModFPSBoost,
                ModCrafting, ModDyeingTable, ModCuttingTable,
                ModFastBreak,
                ModAntiBan
            );
            this.applyDefaultKeybinds();
            c.on("render", () => { for (let name in this.modules) { let mod = this.modules[name]; if (mod.isEnabled && mod.onRender) mod.onRender(); } });
            c.on("keydown", this.handleKeyPress.bind(this));
            c.on("setting.update", () => { for (let name in this.modules) { let mod = this.modules[name]; if (mod.isEnabled && mod.onSettingUpdate) mod.onSettingUpdate(); } });
            const immediateModules = ["Arraylist", "AdBypass", "Interface"];
            immediateModules.forEach(name => this.toggleModuleSafely(name));
            setTimeout(() => { const delayedModules = ["Speed", "Xray", "AutoSprint", "HighJump"]; delayedModules.forEach(name => this.toggleModuleSafely(name)); }, 2500);
        }
    };

    // ------------------------------ Main Class ------------------------------
    var se = class {
        constructor() { this.version = "1.0.55"; this.init(); }
        init() {
            setInterval(() => { c.emit("render"); }, 1000 / 60);
            window.addEventListener("keydown", e => { c.emit("keydown", e.code); }, {capture:true});
            h.init(); p.init(); this.packets = p; this.moduleManager = h; this.hooks = o;
        }
        disable() { }
    };

    function le() { window.NeonViper = new se(); }
    if (document.readyState === "complete" || document.readyState === "interactive") le();
    else document.addEventListener("DOMContentLoaded", () => { setTimeout(le, 1000); });
})();