// funnySCRIPT v0.0.
4
// Made by anon + ChatGPT (Mostly ChatGPT)
// INJECT VIA CONSOLE You may need to refresh page if it unsuccessful -- I don't
know why.
// "An idiot admires complexity" -Terry Davis
const minimalMouseEvent = {
button: 2,
buttons: 2,
clientX: 315,
clientY: 177,
screenX: 315,
screenY: 316,
target: [Link]('#noa-container'),
type: "mousedown",
isTrusted: true,
view: window,
bubbles: true,
cancelable: true,
};
let clientOptions = null;
let noa = null;
let importantList = null;
let scalingEnabled = false;
let wireFramesBool = false;
let espEnabled = false;
let intervalId = null;
let alreadyScaled = new WeakSet();
let teleportTrigger = { type: 'mouse', code: 4 };
let autoPotionEnabled = false;
let autoPotionInterval = null;
let nameTagsEnabled = false;
let nameTagsIntervalId = null;
let nameTagParent = null;
let bhopEnabled = false;
let bhopIntervalId = null;
let playerKey = null;
let moveState = null;
let physState = null;
// Main Functions
function findAndSavePlayerInventoryParent(root = noa) {
const visited = new WeakSet();
function recurse(obj) {
if (typeof obj !== 'object' || obj === null || [Link](obj)) return;
[Link](obj);
for (const key in obj) {
if () continue;
if (key === 'playerInventory') {
[Link] = obj;
[Link]('✅ Found playerInventory parent:', obj);
return obj;
}
const val = obj[key];
if (typeof val === 'object') {
const found = recurse(val);
if (found) return found;
}
}
}
const result = recurse(root);
if (!result) [Link]("❌ Could not find playerInventory.");
return result;
}
function applyScaling() {
if (!importantList?.humanoidMesh?.list) return;
const list = [Link];
// Armour mesh visibility moved to hitboxes
const bodyArmour = [Link]?.list?.[0]?.namedNodes?.['Body|
Armour'];
if (bodyArmour && bodyArmour._sourceMesh) {
bodyArmour._sourceMesh.visibility = espEnabled ? 0.15 : 1;
}
const lowerBodyArmour = [Link]?.list?.[0]?.namedNodes?.
['LowerBody|Armour'];
if (lowerBodyArmour && lowerBodyArmour._sourceMesh) {
lowerBodyArmour._sourceMesh.visibility = espEnabled ? 0.15 : 1;
}
try {
list[0].[Link] = wireFramesBool;
list[0].namedNodes["Body|Armour"].[Link] = false;
list[0].[Link]._scaling._x = 1;
list[0].[Link]._scaling._y = 1;
list[0].[Link]._scaling._z = 1;
} catch {}
for (let i = 1; i < [Link]; i++) {
const bodyMesh = list[i]?.namedNodes?.BodyMesh;
if (!bodyMesh?.['_scaling']) continue;
if (scalingEnabled) {
if () {
bodyMesh._scaling._x = 15;
bodyMesh._scaling._y = 6;
bodyMesh._scaling._z = 25;
bodyMesh._scaling._isDirty = true;
[Link](bodyMesh);
}
} else {
bodyMesh._scaling._x = 1;
bodyMesh._scaling._y = 1;
bodyMesh._scaling._z = 1;
bodyMesh._scaling._isDirty = true;
}
try { [Link] = wireFramesBool; } catch {}
}
if (!scalingEnabled) alreadyScaled = new WeakSet();
}
function toggleScaling() {
scalingEnabled = !scalingEnabled;
if (scalingEnabled) intervalId = setInterval(applyScaling, 2000);
else {
clearInterval(intervalId);
intervalId = null;
applyScaling();
}
updateHitboxButton();
}
function toggleWireframe() {
wireFramesBool = !wireFramesBool;
applyScaling();
updateWireframeButton();
}
function toggleESP() {
if (!importantList) return;
espEnabled = !espEnabled;
function applyRenderGroupToNamedNodes(namedNodes) {
if (!namedNodes || typeof namedNodes !== "object") return;
for (const key in namedNodes) {
const mesh = namedNodes[key];
if (!mesh || typeof mesh !== "object") continue;
let groupId = espEnabled ? 1 : 0;
if (espEnabled) {
if (key === "BodyMesh") groupId = 1;
if (key === "Body|Armour") groupId = 2;
}
if ([Link] !== undefined) {
if ([Link] && mesh._sourceMesh)
mesh._sourceMesh.renderingGroupId = groupId;
else [Link] = groupId;
}
}
}
try {
const hum = [Link]?.list?.[0]?.namedNodes;
const quad = [Link]?.list?.[0]?.namedNodes;
applyRenderGroupToNamedNodes(hum);
applyRenderGroupToNamedNodes(quad);
} catch (e) { [Link]("ESP toggle failed:", e); }
updateESPButton?.();
}
// Utility Functions
function findNoaAndCi() {
const visited = new WeakSet();
function recurse(obj) {
if (typeof obj !== 'object' || obj === null || [Link](obj)) return null;
[Link](obj);
try {
if ('entities' in obj && [Link]?.t) return obj;
} catch {}
for (const key in obj) {
if () continue;
try {
const result = recurse(obj[key]);
if (result) return result;
} catch {}
}
return null;
}
noa = recurse(window);
if (!noa) {
[Link]("❌ Could not find noa");
return;
}
[Link]("Found and stored as noa:", noa);
for (const key in noa) {
if ([Link](noa, key)) {
const val = noa[key];
if (val && typeof val === 'object' && ('_Health' in val || '_totalMaxHealth'
in val)) {
clientOptions = val;
[Link]("Found clientOptions:", clientOptions);
break;
}
}
}
const findCi = (entities) => {
for (const key in entities) {
const candidate = entities[key];
if (typeof candidate !== 'object' || !candidate) continue;
const values = [Link](candidate);
const valid = [Link](v => v && typeof v === 'object' && 'list' in v &&
'hash' in v && '_map' in v && '_pendingRemovals' in v);
if ([Link] > 10 && [Link] / [Link] > 0.8) return key;
}
};
const ciKey = findCi([Link]);
if (ciKey) {
importantList = [Link][ciKey];
[Link]("importantList identified:", ciKey);
}
findAndSavePlayerInventoryParent(noa);
updateInjectButton();
}
function findElementByText(text) {
const all = [Link]('div, span, button, a');
for (const el of all) if ([Link]() === text) return el;
return null;
}
function clickTeleportButton() {
const teleportButtonText = findElementByText('Teleport To Lobby Spawn');
if (teleportButtonText) {
let clickable = teleportButtonText;
while (clickable && ![Link] && [Link] !== 'BUTTON')
clickable = [Link];
if (clickable) {
[Link]('Clicking teleport button:', clickable);
[Link]();
} else {
[Link]('No clickable parent found, trying to click text element
itself');
[Link]();
}
} else [Link]('Teleport button text not found in DOM');
}
// Name Tags Functions
function toggleNameTags() {
nameTagsEnabled = !nameTagsEnabled;
if (nameTagsEnabled) {
if (!noa) {
[Link]("Noa not yet available, delaying NameTag enable...");
nameTagsEnabled = false;
setTimeout(() => { toggleNameTags(); }, 1000);
return;
}
const visited = new WeakSet();
function findParentOfNameTag(obj) {
if (typeof obj !== 'object' || obj === null || [Link](obj)) return null;
[Link](obj);
for (const key in obj) {
if () continue;
try {
const value = obj[key];
if (value && typeof value === 'object' && [Link] === '1NameTag') return
obj;
const result = findParentOfNameTag(value);
if (result) return result;
} catch {}
}
return null;
}
nameTagParent = findParentOfNameTag(noa);
if (!nameTagParent) {
[Link]("Could not find parent of NameTags.");
nameTagsEnabled = false;
return;
}
nameTagsIntervalId = setInterval(() => {
for (const key in nameTagParent) {
const tag = nameTagParent[key];
if (tag && typeof tag === 'object' && typeof [Link] === 'string' &&
[Link]('NameTag')) {
try {
const descVisible = [Link](tag, '_isVisible');
if (!descVisible || [Link]) {
[Link](tag, '_isVisible', {
get() { return true; },
set(val) { if (val !== true) {} },
configurable: true
});
}
const descRenderGroup = [Link](tag,
'renderingGroupId');
if (!descRenderGroup || [Link]) {
[Link](tag, 'renderingGroupId', {
get() { return 3; },
set(val) { if (val !== 3) {} },
configurable: true
});
}
} catch (e) {}
}
}
}, 5000);
[Link]("NameTag visibility lock: ON");
} else {
clearInterval(nameTagsIntervalId);
nameTagsIntervalId = null;
if (nameTagParent) {
for (const key in nameTagParent) {
const tag = nameTagParent[key];
if (tag && typeof tag === 'object' && typeof [Link] === 'string' &&
[Link]('NameTag')) {
try {
const current = tag._isVisible;
delete tag._isVisible;
tag._isVisible = current;
} catch (e) { [Link]("Failed to unlock _isVisible on", tag); }
}
}
}
nameTagParent = null;
[Link]("NameTag visibility lock: OFF");
}
updateNameTagsButton();
}
// 🔍 Only search once
function initPlayerKey() {
if (playerKey) return playerKey;
const results = searchForTerm([Link], "_hadJumpInputPrevTick");
if (![Link]) {
[Link]("❌ Could not find _hadJumpInputPrevTick");
return null;
}
playerKey = results[0].[Link]('.')[1]; // e.g. "Vd"
[Link]("✅ Cached player entity key:", playerKey);
return playerKey;
}
// 🔍 Laggy search rewritten to avoid blocking UI after first call
function searchForTerm(root, term) {
const results = [];
const visited = new WeakSet();
function recurse(obj, path) {
if (typeof obj !== 'object' || obj === null || [Link](obj)) return;
[Link](obj);
for (const key in obj) {
if () continue;
const newPath = path ? `${path}.${key}` : key;
if (key === term) {
[Link]({ obj, key, path: newPath });
}
const val = obj[key];
if (typeof val === 'object') {
recurse(val, newPath);
}
}
}
recurse(root, '');
return results;
}
// 🟢 Toggled by button
function toggleBHOP() {
bhopEnabled = !bhopEnabled;
if (bhopEnabled) {
const key = initPlayerKey();
if (!key) {
bhopEnabled = false;
return;
}
moveState = [Link][key].[Link][0];
physState = [Link][key].[Link][0];
bhopIntervalId = setInterval(bunnyHop, 60);
[Link]("BHOP: ON");
} else {
clearInterval(bhopIntervalId);
bhopIntervalId = null;
[Link]("BHOP: OFF");
}
updateBHOPButton();
}
// ⛏ BHOP logic
function bunnyHop() {
if (!bhopEnabled || ![Link]?.() || [Link] ||
[Link] < 0.05) return;
[Link] = true;
physState._hadJumpInputPrevTick = false;
setTimeout(() => {
[Link] = false;
}, 20);
}
// GUI Functions
function makeButton(label, onClick) {
const btn = [Link]('button');
[Link] = label;
[Link] = '100%';
[Link] = '8px 12px';
[Link] = '0';
[Link] = 'none';
[Link] = '0';
[Link] = 'transparent';
[Link] = 'white';
[Link] = 'pointer';
[Link] = '14px';
[Link] = 'left';
[Link] = '600'; // This makes the text semibold
[Link] = onClick;
return btn;
}
function updateInjectButton() { [Link] = noa ? '#00FF00' :
'#FF4444'; }
function updateHitboxButton() { [Link] = scalingEnabled ?
'#00FF00' : 'white'; }
function updateWireframeButton() { [Link] = wireFramesBool ?
'#00FF00' : 'white'; }
function updateESPButton() { [Link] = espEnabled ? '#00FF00' : 'white';
}
function updateNameTagsButton() { [Link] = nameTagsEnabled ?
'#00FF00' : 'white'; }
function updateBHOPButton() { [Link] = bhopEnabled ? '#00FF00' :
'white'; }
// GUI Setup
const gui = [Link]('div');
[Link] = 'fixed';
[Link] = '10px';
[Link] = '10px';
[Link] = '240px';
[Link] = 'rgba(0, 0, 0, 0.2)';
[Link] = 'white';
[Link] = '0';
[Link] = '9999';
[Link] = 'move';
[Link] = 'Arial, sans-serif';
[Link] = 'none';
let optionsVisible = true;
let currentTitleColor = '#0070FF';
const title = [Link]('div');
[Link] = 'funnySCRIPT v0.0.4';
[Link] = 'bold';
[Link] = '16px';
[Link] = currentTitleColor;
[Link] = '10px';
[Link] = '0';
[Link] = 'white';
[Link] = 'pointer';
let isDragging = false, offsetX = 0, offsetY = 0, dragStartX = 0, dragStartY = 0;
[Link]('mousedown', (e) => {
isDragging = true;
offsetX = [Link] - [Link];
offsetY = [Link] - [Link];
dragStartX = [Link];
dragStartY = [Link];
});
[Link]('mouseup', (e) => {
if (isDragging) {
const moved = [Link]([Link] - dragStartX) + [Link]([Link] -
dragStartY);
if (moved < 5) {
optionsVisible = !optionsVisible;
[Link] = optionsVisible ? 'block' : 'none';
}
isDragging = false;
}
});
[Link]('mousemove', (e) => {
if (isDragging) {
[Link] = `${[Link] - offsetX}px`;
[Link] = `${[Link] - offsetY}px`;
}
});
[Link](title);
const guiOptions = [Link]('div');
[Link](guiOptions);
const colorInput = [Link]('input');
[Link] = 'color';
[Link] = currentTitleColor;
[Link] = 'calc(100% - 20px)';
[Link] = '5px';
[Link] = '0 10px 10px 10px';
[Link] = 'rgba(0, 0, 0, 0.3)';
[Link] = 'white';
[Link] = '14px';
[Link] = 'none';
[Link] = '0';
[Link] = 'pointer';
[Link] = () => {
currentTitleColor = [Link];
[Link] = currentTitleColor;
};
const injectBtn = makeButton('Inject', findNoaAndCi);
const hitboxBtn = makeButton('Hitbox', toggleScaling);
const wireframeBtn = makeButton('Wireframes', toggleWireframe);
const espBtn = makeButton('ESP', toggleESP);
const nameTagsBtn = makeButton('Anti-Invisibility', toggleNameTags);
const bhopBtn = makeButton('BHOP', toggleBHOP);
[Link](injectBtn);
[Link](bhopBtn);
[Link](hitboxBtn);
[Link](wireframeBtn);
[Link](espBtn);
[Link](nameTagsBtn);
const teleportLabel = [Link]('label');
[Link] = '/spawn (survival):';
[Link] = 'block';
[Link] = '10px 0 5px 0';
[Link] = '0 10px';
const teleportSelect = [Link]('select');
[Link] = 'calc(100% - 20px)';
[Link] = '5px';
[Link] = '0 10px 10px 10px';
[Link] = 'rgba(0, 0, 0, 0.3)';
[Link] = 'white';
[Link] = '14px';
[Link] = 'none';
[Link] = '0';
[
{ type: 'mouse', label: 'MouseB4', code: 3 },
{ type: 'mouse', label: 'MouseB5', code: 4 },
{ type: 'keyboard', label: 'Key: T', code: 'KeyT' },
{ type: 'keyboard', label: 'Key: Y', code: 'KeyY' },
{ type: 'keyboard', label: 'Key: R', code: 'KeyR' }
].forEach(opt => {
const option = [Link]('option');
[Link] = [Link]({ type: [Link], code: [Link] });
[Link] = [Link];
[Link](option);
});
[Link] = [Link](teleportTrigger);
[Link] = () => {
teleportTrigger = [Link]([Link]);
[Link]('Teleport trigger changed to:', teleportTrigger);
};
[Link](teleportLabel);
[Link](teleportSelect);
[Link](colorInput);
[Link](gui);
// Event Listeners
[Link]('mousedown', (event) => {
if ([Link] === 'mouse' && [Link] === [Link]) {
[Link](`Teleport triggered by mouse button ${[Link]}`);
[Link]();
clickTeleportButton();
}
});
[Link]('keydown', (event) => {
if ([Link] === 'keyboard' && [Link] === [Link]) {
[Link](`Teleport triggered by keyboard key ${[Link]}`);
[Link]();
clickTeleportButton();
}
});
// Initialize
updateInjectButton();
updateHitboxButton();
updateWireframeButton();
updateESPButton();
updateNameTagsButton();
updateBHOPButton();