// ==UserScript== // @name Meeland Enhancement Suite // @namespace meeland-script // @version 4.0.0 // @match *://*/* // @run-at document-end // @license MIT // @grant none // @description Meeland.io cheat script with auto-lock, speed boost, infinite jump, teleportation & more! Works on CrazyGames, twoplayergames.org, meeland.io, iogames.onl, sprunki-game.io, gameflare.com and other sites hosting Meeland // @downloadURL none // ==/UserScript== (function () { 'use strict'; if (!window.pc?.app?.root) return; const FLY_ACCEL = 20; const FLY_MIN_SPEED = 10; const FLY_MAX_SPEED = 35; const SPRINT_ACCEL = 20; const DBL_TAP_MS = 400; const GRAVITY = -18; const SPEED_DEFAULT = 7; let flyActive = false; let flyUp = false; let flyDown = false; let flyVelY = 0; let prevTick = Date.now(); let lastJump = 0; let sprinting = false; let sprintSpeed = SPEED_DEFAULT; let homePos = null; let backPos = null; const getPlayer = () => window.pc?.app?.root?.findByName('Player') ?? null; const getKcc = p => p?.script?.kcc ?? null; const getPC = p => p?.script?.playerController ?? null; function teleport(player, pos) { player.setPosition(pos.x, pos.y, pos.z); player.rigidbody?.teleport(pos.x, pos.y, pos.z); } function flyOn(kcc) { flyActive = true; flyUp = true; flyVelY = 0; kcc.gravity = 0; kcc._velY = 0; } function flyOff(kcc, resetVel = true) { flyActive = false; flyUp = false; flyDown = false; flyVelY = 0; kcc.gravity = GRAVITY; if (resetVel) kcc._velY = 0; } const DESCRIPTION = `

Meeland Script — Enhancement Suite

General-purpose enhancement script for Meeland.io. Works across all game modes — Meeland Hub, Escape Waves, Steal a Pet, and Obby Tower — on all supported platforms.

This script has been updated after a long gap. If it works for you, a rating helps. ⭐

Features

Installation

  1. Install a userscript manager:
  2. Click Install above
  3. Load any Meeland game — the script activates automatically

Keyboard Shortcuts

Supported Sites

Privacy

Disclaimer

For educational and entertainment purposes. Use at your own risk.

`; function createHUD() { if (document.getElementById('ml-hud')) return; const s = document.createElement('style'); s.textContent = [ '#ml-hud{position:fixed;bottom:14px;right:14px;display:flex;gap:5px;z-index:99999;pointer-events:none;font-family:monospace}', '.ml-b{padding:3px 8px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:.05em;background:rgba(0,0,0,.3);color:rgba(255,255,255,.18);transition:color .12s,background .12s}', '.ml-b.on{background:rgba(0,0,0,.65)}', '#ml-fly.on{color:#4af}', '#ml-spr.on{color:#fa4}', '#ml-home.on{color:#4f8}', '.ml-b.fresh{color:#fff;background:rgba(60,220,140,.75)}', '#ml-go.on{color:#4f8}', '#ml-back.on{color:#9df}', '#ml-help{pointer-events:auto;cursor:pointer;user-select:none;color:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.35)}', '#ml-help:hover{color:#fff;background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.7)}', '#ml-dialog{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.75);z-index:100000;display:none;overflow:auto;padding:40px 20px;box-sizing:border-box}', '#ml-dialog.open{display:block}', '#ml-inner{background:#181818;color:#ccc;max-width:580px;margin:0 auto;border-radius:8px;padding:24px 28px;font-family:sans-serif;font-size:14px;line-height:1.65;position:relative}', '#ml-inner h1{color:#fff;font-size:1.2em;margin:0 0 10px}', '#ml-inner h2{color:#aaa;font-size:.85em;text-transform:uppercase;letter-spacing:.08em;margin:18px 0 6px;border-top:1px solid #333;padding-top:12px}', '#ml-inner li{margin:4px 0}', '#ml-inner kbd{background:#2a2a2a;border:1px solid #444;border-radius:3px;padding:1px 5px;font-family:monospace;font-size:.9em}', '#ml-inner a{color:#4af}', '#ml-inner blockquote{border-left:3px solid #333;margin:8px 0 0;padding:6px 12px;color:#888;font-size:.9em}', '#ml-close{position:absolute;top:10px;right:14px;cursor:pointer;color:#555;font-size:20px;background:none;border:none;font-family:monospace;line-height:1}', '#ml-close:hover{color:#fff}', ].join(''); document.head.appendChild(s); const h = document.createElement('div'); h.id = 'ml-hud'; h.innerHTML = 'FLY (SPC×2)SPR (Shft)SETHOME (Q)HOME (Z)BACK (⇪)?'; document.body.appendChild(h); const d = document.createElement('div'); d.id = 'ml-dialog'; d.innerHTML = `
${DESCRIPTION}
`; document.body.appendChild(d); document.getElementById('ml-help').addEventListener('click', () => d.classList.add('open')); document.getElementById('ml-close').addEventListener('click', () => d.classList.remove('open')); d.addEventListener('click', e => { if (e.target === d) d.classList.remove('open'); }); d.addEventListener('wheel', e => { e.stopPropagation(); e.preventDefault(); d.scrollTop += e.deltaY; }, { passive: false }); } createHUD(); window.addEventListener('keydown', e => { const active = document.activeElement; if (active?.tagName === 'INPUT' || active?.tagName === 'TEXTAREA') return; const player = getPlayer(); const kcc = getKcc(player); if (!kcc) return; if (e.code === 'Space') { e.stopPropagation(); const now = Date.now(), gap = now - lastJump; if (flyActive) { flyUp = true; } else if (gap < DBL_TAP_MS) { flyOn(kcc); } lastJump = now; return; } if (e.code === 'KeyF' && flyActive) { flyDown = true; return; } if (e.key === 'Shift' && !sprinting) { sprinting = true; return; } if (e.code === 'KeyQ') { e.preventDefault(); homePos = player.getPosition().clone(); return; } if (e.code === 'KeyZ') { e.preventDefault(); if (homePos) { backPos = player.getPosition().clone(); teleport(player, homePos); const ge = document.getElementById('ml-go'); if (ge) { ge.classList.add('fresh'); setTimeout(() => ge.classList.remove('fresh'), 400); } } return; } if (e.code === 'CapsLock') { e.preventDefault(); if (backPos) { const cur = player.getPosition().clone(); teleport(player, backPos); backPos = cur; const be = document.getElementById('ml-back'); if (be) { be.classList.add('fresh'); setTimeout(() => be.classList.remove('fresh'), 400); } } } }, true); window.addEventListener('keyup', e => { if (e.code === 'Space') flyUp = false; if (e.code === 'KeyF') flyDown = false; if (e.key === 'Shift' && sprinting) { sprinting = false; } }, true); setInterval(() => { const player = getPlayer(); if (!player) return; const kcc = getKcc(player); if (!kcc) return; const now = Date.now(); const dt = Math.min((now - prevTick) / 1000, 0.1); prevTick = now; const pc = getPC(player); if (sprinting) { if (sprintSpeed < SPEED_DEFAULT) sprintSpeed = SPEED_DEFAULT; sprintSpeed += SPRINT_ACCEL * dt; if (pc) { pc.currentSpeed = sprintSpeed; pc.speed = sprintSpeed; } if (kcc.speed !== undefined) kcc.speed = sprintSpeed; } else if (sprintSpeed !== SPEED_DEFAULT) { sprintSpeed = SPEED_DEFAULT; if (pc) { pc.currentSpeed = SPEED_DEFAULT; pc.speed = SPEED_DEFAULT; } if (kcc.speed !== undefined) kcc.speed = SPEED_DEFAULT; } const fe = document.getElementById('ml-fly'); const se = document.getElementById('ml-spr'); const he = document.getElementById('ml-home'); const ge = document.getElementById('ml-go'); const be = document.getElementById('ml-back'); if (fe) fe.classList.toggle('on', flyActive); if (se) se.classList.toggle('on', sprinting); if (he) he.classList.toggle('on', !!homePos); if (ge) ge.classList.toggle('on', !!homePos); if (be) be.classList.toggle('on', !!backPos); if (!flyActive) return; if (kcc._grounded) { flyOff(kcc, false); return; } if (kcc.gravity !== 0) kcc.gravity = 0; flyVelY = kcc._velY; if (flyUp) { if (flyVelY < 0) { flyVelY = 0; } else { if (flyVelY < FLY_MIN_SPEED) flyVelY = FLY_MIN_SPEED; flyVelY = Math.min(flyVelY + FLY_ACCEL * dt, FLY_MAX_SPEED); } } else if (flyDown) { if (flyVelY > 0) { flyVelY = 0; } else { if (flyVelY > -FLY_MIN_SPEED) flyVelY = -FLY_MIN_SPEED; flyVelY = Math.max(flyVelY - FLY_ACCEL * dt, -FLY_MAX_SPEED); } } else { flyVelY = 0; // no key held: stop } kcc._velY = flyVelY; }, 16); })();