// ==UserScript==
// @name Wisk
// @namespace wisk
// @match https://*.bloxd.io/*
// @version 0.3.8
// @author Developed by Rocker_Cats_YT
// @description 🟢https://discord.gg/TQPqe9r2
// ==/UserScript==
//
// ⚠️⚠️ALWAYS USE ALTS⚠️⚠️
//
// 🟢https://discord.gg/G6ksFfQdaW join this for updates please.🟢
//(() => {
//__START__SETTINGS______________________________________________
const defaultColor = "#D3D3D3" //-------------------ACCENT COLOR
const defaultBackGroundColor = "#D3D3D3" //---------Bacground color
const ICON_URL = "data:image/jpeg;base64,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"
const defaultBackGroundTransparency = 8.2 //--------Background transparency
const defaultBackGroundBlur = 8 //------------------Background blur
let openKey = "r"; //-------------------------------DEFAULT OPEN CLOSE KEYBIND 💗
const TITLE = "Wisk" //-----------------------Title
const defaultGradient = `linear-gradient(to right, ${defaultColor}, #D3D3D3, #D3D3D3)`;
//--------------------------------------------------Three color gradient
let passiveFeaturesEnabled = true; //--------------Enable passive features?
const changeHealthBar = true // --------------------Change health bar color to gradient color
const spoofRanksEnabled = true; // -----------------Gives you all ranks (YT, Super, Developer)
const ATTACK_INTERVAL_MS = 200; // -----------------How fast to hit players with triggerbot/ aurAura LOW = BAN
let desiredPotionSlot = 1 //------------------------What slot should potions go to? Numbers start at zero! 0-9
let spikeSlot = 8 //--------------------------------What slot do spikes automatically go in? 0-9
let webSlot = 9 //----------------------------------What slot do webs / nets automatically go in? 0-9
const STORAGE_KEY = "customKeybinds_v1";
// Default keybinds with actions
let defaultKeybindActions = [
{ name: "Spawn teleport", type: "mouse", code: 4, action: clickTeleportButton },
{ name: "SpikeWeb a player", type: "keyboard", code: "KeyF", action: autoSW },
{ name: "PickupReach", type: "keyboard", code: null, action: togglePickupReach },
{ name: "KillAura", type: "keyboard", code: null, action: toggleKillAura },
{ name: "Blink", type: "keyboard", code: null, action: toggleBlinkWrapper },
{ name: "Scaffold", type: "keyboard", code: null, action: toggleScaffold },
{ name: "HitBoxes", type: "keyboard", code: null, action: toggleHitBoxes },
{ name: "Wireframe", type: "keyboard", code: null, action: toggleWireframe },
{ name: "ESP", type: "keyboard", code: null, action: toggleESP },
{ name: "BHOP", type: "keyboard", code: null, action: toggleBHOP },
{ name: "ChestESP", type: "keyboard", code: null, action: toggleChestESP },
{ name: "OreESP", type: "keyboard", code: null, action: toggleOreESP },
{ name: "triggerBot", type: "keyboard", code: null, action: toggleTriggerBot },
{ name: "NameTags", type: "keyboard", code: null, action: toggleNameTags },
{ name: "Skybox", type: "keyboard", code: null, action: toggleSkybox },
{ name: "WallJump", type: "keyboard", code: null, action: toggleWallJumpScript },
{ name: "WaterJump", type: "keyboard", code: null, action: toggleLockPlayerWaterState },
];
// Load from localStorage
const storedKeybinds = localStorage.getItem(STORAGE_KEY);
if (storedKeybinds) {
try {
const parsed = JSON.parse(storedKeybinds);
// Inject saved key codes into default actions
defaultKeybindActions = defaultKeybindActions.map((bind) => {
const saved = parsed.find((s) => s.name === bind.name);
return saved ? { ...bind, code: saved.code } : bind;
});
} catch (e) {
console.warn("Failed to parse saved keybinds:", e);
}
}
// Your working keybinds
const keybindActions = defaultKeybindActions;
//__END__SETTINGS______________________________________________
// Credits to wang for the blinksState
// Thanks for helping me with a lot of stuff.
// (It is broken because of me not him)
let version = "0.3.8"
let alreadyConnected = null;
let colyRoom = null;
let sendBytesName = null;
let injectedBool = false;
let myId = 1
let isInitializing = true;
let clientOptions = null;
let shideFuxny = {};
let noaParent = null;
let noaKeyInParent = null;
let usingAltInjection = false;
let blinkState = {
enabled: false,
originalSendBytes: null,
queued: [],
interval: 0,
noPacket: false
};
let wallJumpInterval = null;
let wallJumpRunning = false;
let lockPlayerWaterStateInterval = null;
let waterJumpingEnabled = false
let wireFramesBool = false;
let espEnabled = false;
let isSkyboxHidden = false;
let triggerBotEnabled = false;
let toggleTriggerBotInterval = null;
const possibleNames = [
//"LegLeftMesh",
//"LegRightMesh",
//"TorsoNode",
//"ArmLeftMesh",
//"ArmRightMesh",
"BodyMesh",
'Body|Armour',
//"HeadMesh"
]; // Potential detection: If the player has leg armour there is no way leftLegMesh could have been hit.
let killAuraEnabled = false
let killAuraIntervalId = null
let lastClosestId = null
let newBox = null;
let newBoxId = null;
let __nullKey = null; //Entity enabled key
let __stringKey = null; //Entity ID key "Then why didn't you just label them that?"
let animationFrameId = null;
let hitBoxEnabled = false;
const hitboxes = {};
let cachedNameTagParent = null;
let cachedBHOPParent = null;
let autoPotionEnabled = false;
let autoPotionInterval = null;
let nameTagsEnabled = false;
let nameTagsIntervalId = null;
let nameTagParent = null;
let bhopEnabled = false;
let bhopIntervalId = null;
let scaffoldEnabled = false;
let scaffoldIntervalId = null;
let enemyHealthGuiEnabled = false;
let healthWatcherInterval = null;
let lastPercent = null;
let lastChangeTime = Date.now();
let resetTimeout = null;
let eIdKey = null;
let targetEntity = null;
let targetEntityDistance = null;
let pickupReachEnabled = false; //Credits to wang!!!!
let originalGetEntitiesInAABB = null;
const RANGE_MULTIPLIER = 5;
let ghMethodKey = null;
let proto = null;
let bhopKnifeEnabled = false;
let spaceVid;
let fadeVolumeInterval;
let spaceHeld = false;
let bigHeadsEnabled = false;
const scannedChunks = new Set();
let chunkDataField = null;
// ETC
let playerKey = null;
let moveState = null;
let physState = null;
let humanoidMeshlist = null;
let slowHitEnabled = null;
let everEnabled = {}
////////////////////////////////////////////////////////////////////////////////////////Main Functions
var r = { //WANG
keys(e) {
var t = [],
o = 0;
for (var s in e) e != null && (t[o] = s, o++);
return t
},
values(e) {
for (var t = this.keys(e), o = [], s = 0, i = 0; s < t.length;) {
var l = t[s],
d = e[l];
o[i] = d, i++, s++
}
return o
},
assign(e, ...t) {
let o = Object(e);
for (let s = 0; s < t.length; s++) {
let i = t[s];
if (i != null)
for (let l in i) o[l] = i[l]
}
return o
}
};
function fadeVolume(from, to, duration) {
const steps = 30;
const stepTime = duration / steps;
let current = 0;
if (fadeVolumeInterval) clearInterval(fadeVolumeInterval);
fadeVolumeInterval = setInterval(() => {
current++;
const progress = current / steps;
spaceVid.volume = from + (to - from) * progress;
if (current >= steps) {
clearInterval(fadeVolumeInterval);
fadeVolumeInterval = null;
}
}, stepTime * 1000);
}
function onKeyDown(e) {
if (e.code === 'Space' && !spaceHeld) {
spaceHeld = true;
spaceVid.style.opacity = '1';
spaceVid.play();
fadeVolume(spaceVid.volume, 0.1, 2.5); // fade in to 0.8 over 2 seconds
}
}
function onKeyUp(e) {
if (e.code === 'Space') {
spaceHeld = false;
spaceVid.style.opacity = '0';
fadeVolume(spaceVid.volume, 0.1, 2.5); //
setTimeout(() => {
if (!spaceHeld) spaceVid.pause();
}, 500);
}
}
function toggleBhopKnife() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
if (!bhopKnifeEnabled) {
everEnabled.bhopKnifeEnabled = true;
bhopKnifeEnabled = true;
spaceVid = document.createElement('video');
spaceVid.src = 'https://files.catbox.moe/6tm4e7.webm';
spaceVid.preload = 'auto';
spaceVid.loop = true;
spaceVid.muted = false;
spaceVid.volume = 0;
spaceVid.playbackRate = 1;
spaceVid.playsInline = true;
Object.assign(spaceVid.style, {
position: 'fixed',
top: '50%',
left: '50%',
width: '100vw',
height: '100vh',
objectFit: 'cover',
transform: 'translate(-50%, -50%) scaleX(1.4)', // Stretch only width
zIndex: 21,
pointerEvents: 'none',
opacity: '0',
transition: 'opacity 2.5s ease',
});
document.body.appendChild(spaceVid);
window.addEventListener('keydown', onKeyDown);
window.addEventListener('keyup', onKeyUp);
} else {
// Disable
bhopKnifeEnabled = false;
window.removeEventListener('keydown', onKeyDown);
window.removeEventListener('keyup', onKeyUp);
if (spaceVid) {
spaceVid.pause();
if (spaceVid.parentNode) spaceVid.parentNode.removeChild(spaceVid);
spaceVid = null;
}
spaceHeld = false;
if (fadeVolumeInterval) clearInterval(fadeVolumeInterval);
}
updateKnifeButton();
}
function toggleSlowHit() {
slowHitEnabled = !slowHitEnabled; // Toggle the boolean
playerEntity.heldItemState.swingDuration = slowHitEnabled ? 1500 : 200;
updateSlowHit(); // Call your update function
}
function matchesAllPatterns(fn) {
const patterns = ["this.names.position", ".base[0]"].map(p => p.replace(/\s+/g, ''));
try {
const src = fn.toString().replace(/\s+/g, '');
return patterns.every(p => src.includes(p));
} catch {
return false;
}
}
function findClassConstructor(obj) {
let current = obj;
while (current) {
for (const key of Reflect.ownKeys(current)) {
let val;
try {
const desc = Object.getOwnPropertyDescriptor(current, key);
val = desc?.value ?? current[key];
} catch {
continue;
}
if (typeof val === "function" && matchesAllPatterns(val)) {
return val;
}
}
current = Object.getPrototypeOf(current);
}
return null;
}
function findGhMethod(clsConstructor) {
const protoLocal = clsConstructor?.prototype;
if (!protoLocal) return null;
for (const key of Reflect.ownKeys(protoLocal)) {
if (key === "constructor") continue;
const fn = protoLocal[key];
if (typeof fn === "function" && matchesAllPatterns(fn)) {
return {
fn,
key
};
}
}
return null;
}
function toggleScaffold() {
scaffoldEnabled = !scaffoldEnabled;
everEnabled.scaffoldEnabled = true;
if (scaffoldEnabled) {
scaffoldIntervalId = setInterval(() => {
const pos = shideFuxny.entities.getState(1, 'position').position;
if (!pos || playerEntity.heldItemState.heldType !== "CubeBlock") return;
const exactX = pos[0];
const exactZ = pos[2];
const blockX = Math.floor(exactX);
const blockY = Math.floor(pos[1]);
const blockZ = Math.floor(exactZ);
const checkPlace = (x, y, z) => {
return (
playerEntity.checkTargetedBlockCanBePlacedOver([x, y, z]) ||
r.values(shideFuxny.world)[47].call(shideFuxny.world, x, y, z) === 0
);
};
// Step 1: try block directly below
if (checkPlace(blockX, blockY - 1, blockZ)) {
wangPlace([blockX, blockY - 1, blockZ]);
return;
}
// Step 2: check lean direction (just 4 directions)
const dx = exactX - blockX;
const dz = exactZ - blockZ;
const offsets = [];
if (dx < 0.3) offsets.push([-1, 0]); // leaning west
if (dx > 0.7) offsets.push([1, 0]); // leaning east
if (dz < 0.3) offsets.push([0, -1]); // leaning north
if (dz > 0.7) offsets.push([0, 1]); // leaning south
for (const [ox, oz] of offsets) {
const nx = blockX + ox;
const nz = blockZ + oz;
if (checkPlace(nx, blockY - 1, nz)) {
wangPlace([nx, blockY - 1, nz]);
return;
}
}
}, 50);
} else {
clearInterval(scaffoldIntervalId);
scaffoldIntervalId = null;
}
updateScaffoldButton();
}
function togglePickupReach() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
if (!proto || !originalGetEntitiesInAABB) {
const cls = findClassConstructor(shideFuxny.NIGHT.entities);
if (!cls) {
console.warn("[pickupReach] Could not find class constructor");
return;
}
const ghMethod = findGhMethod(cls);
if (!ghMethod) {
console.warn("[pickupReach] Could not find getEntitiesInAABB method");
return;
}
proto = cls.prototype;
originalGetEntitiesInAABB = ghMethod.fn;
ghMethodKey = ghMethod.key;
}
if (pickupReachEnabled) {
// Disable patch
proto[ghMethodKey] = originalGetEntitiesInAABB;
pickupReachEnabled = false;
console.log("[pickupReach] Patch disabled");
} else {
everEnabled.pickupReachEnabled = true;
// Enable patch
proto[ghMethodKey] = function(box, name) {
const center = [
(box.base[0] + box.max[0]) / 2,
(box.base[1] + box.max[1]) / 2,
(box.base[2] + box.max[2]) / 2,
];
const halfSize = [
(box.max[0] - box.base[0]) / 2,
(box.max[1] - box.base[1]) / 2,
(box.max[2] - box.base[2]) / 2,
];
const enlarged = {
base: center.map((c, i) => c - halfSize[i] * RANGE_MULTIPLIER),
max: center.map((c, i) => c + halfSize[i] * RANGE_MULTIPLIER)
};
return originalGetEntitiesInAABB.call(this, enlarged, name);
};
pickupReachEnabled = true;
console.log("[pickupReach] Patch enabled");
}
updatePickupReachButton()
}
function passiveFeatures() {
if (passiveFeaturesEnabled) {
everEnabled.passiveFeaturesEnabled = true;
if (changeHealthBar) {
(function() { // FROM ENTITY
'use strict';
const healthBar = document.getElementsByClassName("BottomScreenStatBar")[0];
if (healthBar) {
// Clear all conflicting styles
healthBar.style.background = defaultGradient;
healthBar.style.backgroundColor = 'transparent';
healthBar.style.boxShadow = 'none';
healthBar.style.border = 'none';
healthBar.style.backgroundRepeat = 'no-repeat';
healthBar.style.backgroundSize = '100% 100%';
healthBar.style.outline = 'none';
// Also fix child elements (some bars use internal fill divs)
for (const child of healthBar.children) {
child.style.background = 'transparent';
child.style.backgroundColor = 'transparent';
child.style.boxShadow = 'none';
child.style.border = 'none';
}
// Force override with CSS injection if still persists
const style = document.createElement('style');
style.textContent = `
.BottomScreenStatBar {
background: ${defaultGradient} !important;
background-size: 100% 100% !important;
background-repeat: no-repeat !important;
box-shadow: none !important;
border: none !important;
}
.BottomScreenStatBar * {
background: transparent !important;
background-color: transparent !important;
box-shadow: none !important;
border: none !important;
}
`;
document.head.appendChild(style);
console.log("✅ Applied clean default gradient to health bar");
} else {
console.warn("❌ Could not find health bar element");
}
})();
}
////////Anti-cobweb
Object.defineProperty(shideFuxny.entities[shideFuxny.impKey].moveState.list[0].speedMultiplier.multipliers, "inCobweb", {
configurable: true,
enumerable: true,
get() {
return 1; // always return 1
},
set(value) {
// ignore all attempts to change it
}
});
if (spoofRanksEnabled) {
shideFuxny.entityList[1][1].ranks[0] = "developer";
shideFuxny.entityList[1][1].ranks[1] = "youtuber";
shideFuxny.entityList[1][1].ranks[2] = "super";
} else {
}
}
}
function emitSafePrimaryFire() {
const fakeEvent = {
timeStamp: performance.now(),
altKey: false,
ctrlKey: false,
shiftKey: false,
metaKey: false,
button: 0, // left click
buttons: 1, // left button pressed
clientX: innerWidth / 2 + Math.floor(Math.random() * 4 - 2),
clientY: innerHeight / 2 + Math.floor(Math.random() * 4 - 2),
screenX: screen.width / 2,
screenY: screen.height / 2
};
shideFuxny.NIGHT.inputs.down.emit("primary-fire", fakeEvent);
}
function inMenu() {
const requests = shideFuxny.Props.pointerLockWrapper.pointerUnlockRequests;
return requests.includes("SettingsMenuComponent") || requests.includes("InGameMenu");
}
function movePotionToSlot() {
if (!playerInventoryParent || !playerInventoryParent.playerInventory?.items) {
console.warn("❌ playerInventoryParent is not set. Run findAndSavePlayerInventoryParent() first.");
return false;
}
const items = playerInventoryParent.playerInventory.items;
let potionSlot = null;
for (let i = desiredPotionSlot; i < items.length; i++) {
const item = items[i];
if (!item || typeof item.name !== 'string') continue;
const name = item.name.toLowerCase();
if (
name.includes("potion") &&
name.includes("splash") &&
(name.includes("healing") || name.includes("shield"))
) {
potionSlot = i;
break;
}
}
if (potionSlot === null) {
return false;
}
console.log(`🔁 Swapping potion from slot ${potionSlot} with slot ${desiredPotionSlot}`);
playerInventoryParent.swapPosClient(potionSlot, desiredPotionSlot, null);
return true;
}
function makeHitboxes() {
if (!injectedBool) {
console.log("NOT INJECTED NO TARGET");
return;
}
const rendering = r.values(shideFuxny.rendering)[18];
const objectData = rendering?.objectData;
if (!objectData || !eIdKey) return;
const activeEIds = new Set();
// First, build a set of currently valid entity IDs
for (const key in objectData) {
if (key === "1") continue;
const obj = objectData[key];
const eId = obj[eIdKey];
if (
eId == null ||
eId === myId ||
obj.pickable === false ||
obj.type !== "Player" ||
!shideFuxny.entities.getState(eId, "genericLifeformState")
) continue;
activeEIds.add(eId);
// If hitbox already exists, skip
if (hitboxes[eId]) continue;
// Create the hitbox
let newBox_00 = shideFuxny.Lion.Mesh.CreateBox("mesh", 1, false, 1, shideFuxny.Lion.scene);
newBox_00.renderingGroupId = 2;
newBox_00.material = new shideFuxny.Lion.StandardMaterial("mat", shideFuxny.Lion.scene);
newBox_00.material.diffuseColor = new shideFuxny.Lion.Color3(1, 1, 1);
newBox_00.material.emissiveColor = new shideFuxny.Lion.Color3(1, 1, 1);
newBox_00.name = '_';
newBox_00.id = '__' + eId;
let defaultPosition = new newBox_00.position.constructor(0, 0.32, 0);
newBox_00.position = defaultPosition.clone();
newBox_00._scaling._y = 2.2;
newBox_00.material.alpha = 0.5;
newBox_00.isVisible = hitBoxEnabled;
rendering.attachTransformNode(newBox_00, key, 13);
r.values(shideFuxny.rendering)[27].call(shideFuxny.rendering, newBox_00);
Object.defineProperty(newBox_00._nodeDataStorage, '_isEnabled', {
get: () => true,
set: (v) => {},
configurable: false
});
hitboxes[eId] = newBox_00;
}
// Cleanup hitboxes of players no longer present
for (const eId in hitboxes) {
if (!activeEIds.has(eId)) {
hitboxes[eId]?.dispose();
delete hitboxes[eId];
}
}
// Visibility toggle based on node[0].enabled and hitBoxEnabled
for (const key in objectData) {
const obj = objectData[key];
const eId = obj?.[eIdKey];
if (!eId || !hitboxes[eId]) continue;
const baseNode = obj.nodes?.[0];
if (!baseNode) continue;
hitboxes[eId].isVisible = baseNode.enabled && hitBoxEnabled;
}
}
(() => {
// Remove if already present
const old = document.getElementById("vertical-health-bar");
if (old) old.remove();
// Create bar container
const container = document.createElement("div");
container.id = "vertical-health-bar";
Object.assign(container.style, {
position: "fixed",
left: "calc(50% - 200px)", // 100px left of center
top: "50%",
transform: "translateY(-50%)",
width: "4px",
height: "200px",
background: "#000",
border: "2px solid black",
zIndex: 120,
pointerEvents: "none",
display: "flex",
alignItems: "flex-end",
overflow: "hidden"
});
// Create fill element
const fill = document.createElement("div");
Object.assign(fill.style, {
width: "100%",
height: "100%",
background: "limegreen",
transform: "scaleY(1)",
transformOrigin: "bottom",
transition: "transform 0.2s ease, background 0.2s ease", // <-- add comma here
});
container.appendChild(fill);
document.body.appendChild(container);
// Function to compute smooth gradient color from green → red
function getHealthColor(health) {
const ratio = health / 100;
if (ratio > 0.5) {
// Bright green → orange
const t = (ratio - 0.5) * 2;
const r = Math.round(255 * (1 - t));
const g = 255;
return `rgb(${r}, ${g}, 0)`; // green to yellow to orange
} else {
// Orange → red
const t = ratio * 2;
const r = 255;
const g = Math.round(255 * t);
return `rgb(${r}, ${g}, 0)`; // orange to red
}
}
// Global health setter and show/hide toggle
setHealthBar = function(health, show = true) {
const clamped = Math.max(0, Math.min(health, 100));
fill.style.transform = `scaleY(${clamped / 100})`;
fill.style.background = getHealthColor(clamped);
container.style.display = show ? "flex" : "none";
};
})();
setHealthBar(100, false)
function toggleEnemyHealthGui() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
enemyHealthGuiEnabled = !enemyHealthGuiEnabled;
if (enemyHealthGuiEnabled) {
startHealthWatcher();
} else {
// Toggle off: clean up everything
if (healthWatcherInterval) clearInterval(healthWatcherInterval);
if (resetTimeout) clearTimeout(resetTimeout);
setHealthBar(100, false); // hide bar
lastPercent = null;
}
updateEnemyHealthGuiButton();
}
function startHealthWatcher() {
everEnabled.enemyHealthGuiEnabled = true;
if (healthWatcherInterval) clearInterval(healthWatcherInterval);
healthWatcherInterval = setInterval(() => {
const list = shideFuxny.entities[shideFuxny.impKey].entityName.list;
let percent = null;
let foundTarget = false;
for (let i = 0; i < list.length; i++) {
const targetEntity = list[i];
if (r.values(targetEntity)[0] === lastClosestId) {
percent = r.values(targetEntity)[7];
foundTarget = true;
break;
}
}
// Hide health bar if not found, or at full/near full
if (!foundTarget || percent === 0 || percent >= 1) { // ) {
if (resetTimeout) {
clearTimeout(resetTimeout)
};
setHealthBar(100, false);
lastPercent = null;
return;
}
// Update bar only if changed
if (percent !== null) {
lastPercent = percent;
lastChangeTime = Date.now();
setHealthBar(percent * 100, true);
if (resetTimeout) clearTimeout(resetTimeout);
resetTimeout = setTimeout(() => {
setHealthBar(100, false);
lastPercent = null;
}, 10000);
}
}, 300);
}
/*
function emitSafePrimaryFire() {
const realEvent = new MouseEvent("mousedown");
const fakeEvent = {
timeStamp: performance.now(),
altKey: false,
ctrlKey: realEvent.ctrlKey,
shiftKey: realEvent.shiftKey,
metaKey: realEvent.metaKey,
button: realEvent.button,
buttons: realEvent.buttons,
clientX: realEvent.clientX,
clientY: realEvent.clientY,
screenX: realEvent.screenX,
screenY: realEvent.screenY
};
shideFuxny.NIGHT.inputs.down.emit("primary-fire", fakeEvent);
}*/
function checkAndClick() {
const hit = playerEntity.tryHitEntity();
if (hit?.hitEId != null) {
if (
//!playerEntity.breaking &&
//!inMenu() &&
shideFuxny.entities.getState(1, "genericLifeformState").isAlive &&
shideFuxny.entities.getState(hit.hitEId, "genericLifeformState") &&
shideFuxny.entities.getState(hit.hitEId, "genericLifeformState").isAlive &&
r.values(shideFuxny.entityList)?.[1]?.[hit.hitEId].canAttack
) {
emitSafePrimaryFire();
//['mousedown','mouseup','click'].forEach(t => document.querySelector('canvas')?.dispatchEvent(new MouseEvent(t,{bubbles:true,cancelable:true,view:window,clientX:innerWidth/2,clientY:innerHeight/2,buttons:1})));
lastClosestId = hit.hitEId
}
}
}
function toggleTriggerBot() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.triggerBotEnabled = true;
if (triggerBotEnabled) {
clearTimeout(toggleTriggerBotInterval);
triggerBotEnabled = false;
console.log("⛔ Auto-attack stopped");
} else {
triggerBotEnabled = true;
function autoAttackLoop() {
if (!triggerBotEnabled) return;
checkAndClick();
const nextDelay = ATTACK_INTERVAL_MS + (Math.random() * 40 - 20); // ±20ms
toggleTriggerBotInterval = setTimeout(autoAttackLoop, nextDelay);
}
autoAttackLoop();
console.log("▶️ Auto-attack started");
}
updateTriggerBotButton();
}
function toggleLockPlayerWaterState() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.waterJumpingEnabled = true;
const movementList = shideFuxny.entities[shideFuxny.impKey]?.movement?.list;
if (!Array.isArray(movementList) || movementList.length === 0) return;
const c = movementList[0];
if (waterJumpingEnabled) {
// Restore defaults (optional: redefine properties as writable again)
waterJumpingEnabled = false;
console.log("🔓 Player water state unlocked");
updateWaterJumpButton();
return;
}
try {
Object.defineProperty(c, "inAirFromWater", {
get: () => false,
set: () => {},
configurable: true
});
Object.defineProperty(c, "_jumpCount", {
get: () => 0,
set: () => {},
configurable: true
});
Object.defineProperty(c, "_ticksOutOfWater", {
get: () => 346,
set: () => {},
configurable: true
});
// Add this too if you want to lock ice status:
Object.defineProperty(c, "isOnIce", {
get: () => true,
set: () => {},
configurable: true
});
waterJumpingEnabled = true;
console.log("🔒 Player water state locked");
updateWaterJumpButton();
} catch (e) {
console.error("Error locking player water state:", e);
}
}
let bigHeadsInterval = null;
function toggleBigHeads() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!');
return;
}
everEnabled.bigHeadsEnabled = true;
const objectData = r.values(shideFuxny.rendering)[18].objectData;
if (!bigHeadsEnabled) {
// Initial scale-up
for (let key in objectData) {
let obj = objectData[key];
if (obj?.type === "Player" && obj.nodes?.[16] && obj !== objectData[1]) {
let node = obj.nodes[16];
node.scale._x = 6;
node.scale._y = 6;
node.scale._z = 6;
node.position._y = -1;
}
}
// Start periodic check every 10 seconds
bigHeadsInterval = setInterval(() => {
for (let key in objectData) {
let obj = objectData[key];
if (obj?.type === "Player" && obj.nodes?.[16] && obj !== objectData[1]) {
let node = obj.nodes[16];
// Only update if scale hasn't already been changed
if (node.scale._x === 1 && node.scale._y === 1 && node.scale._z === 1) {
node.scale._x = 6;
node.scale._y = 6;
node.scale._z = 6;
node.position._y = -1;
}
}
}
}, 10000); // 10 seconds
} else {
// Restore original size
for (let key in objectData) {
let obj = objectData[key];
if (obj?.type === "Player" && obj.nodes?.[16] && obj !== objectData[1]) {
let node = obj.nodes[16];
node.scale._x = 1;
node.scale._y = 1;
node.scale._z = 1;
node.position._y = 0.7199999690055847;
}
}
// Clear the interval
clearInterval(bigHeadsInterval);
bigHeadsInterval = null;
}
bigHeadsEnabled = !bigHeadsEnabled;
updateBigHeadButton();
}
function toggleWallJumpScript() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.wallJumpRunning = true;
const client = shideFuxny?.clientOptions;
const body = shideFuxny?.physics?.bodies?.[0];
if (!client || !body) return;
if (wallJumpRunning) {
// Unlock airJumpCount (optional reset)
Object.defineProperty(client, "airJumpCount", {
value: 0,
writable: true,
configurable: true
});
wallJumpRunning = false;
console.log("🧱 Wall jump script disabled");
updateWallJumpButton();
return;
}
// Lock airJumpCount based on body.resting direction
Object.defineProperty(client, "airJumpCount", {
get() {
if (!body.resting) return 0;
const [rx, , rz] = body.resting;
return (rx === 1 || rx === -1 || rz === 1 || rz === -1) ? 999 : 0;
},
set(_) {}, // Prevent assignment
configurable: true
});
wallJumpRunning = true;
console.log("🧱 Wall jump script enabled");
updateWallJumpButton();
}
function wangPlace(position) {
let heldBlock = r.values(shideFuxny.NIGHT.entities[shideFuxny.impKey])[22].list[0]._blockItem;
let worldInstanceKey = Object.keys(heldBlock)[0];
let worldInstance = Object.values(heldBlock)[0];
let targetedBlockKey = Object.keys(worldInstance)[25];
let targetedBlock = worldInstance[targetedBlockKey];
function spoofTargetedBlock(position) {
return new Proxy({}, {
get(target, prop, receiver) {
if (prop === worldInstanceKey) {
return new Proxy(worldInstance, {
get(inner, key) {
if (key === targetedBlockKey) {
let spoofedTargetedBlock = structuredClone(targetedBlock) || {};
spoofedTargetedBlock.position = position;
return spoofedTargetedBlock;
}
return worldInstance[key];
},
});
}
if (prop == "checkTargetedBlockCanBePlacedOver") {
return () => true;
}
if (typeof heldBlock[prop] == "function") {
return heldBlock[prop].bind(heldBlock);
} else {
return heldBlock[prop];
}
},
});
}
heldBlock.placeBlock.call(spoofTargetedBlock(position));
}
function placeToPlayer(position) {
// Convert to block coordinates by flooring each component
const blockX = Math.floor(position[0]);
const blockY = Math.floor(position[1]);
const blockZ = Math.floor(position[2]);
if (playerEntity.checkTargetedBlockCanBePlacedOver([blockX, blockY - 3, blockZ]) || r.values(shideFuxny.world)[47].call(shideFuxny.world, blockX, blockY - 3, blockZ) === 0) {
wangPlace([blockX, blockY - 3, blockZ])
}
if (playerEntity.checkTargetedBlockCanBePlacedOver([blockX, blockY - 2, blockZ]) || r.values(shideFuxny.world)[47].call(shideFuxny.world, blockX, blockY - 2, blockZ) === 0) {
wangPlace([blockX, blockY - 2, blockZ])
}
if (playerEntity.checkTargetedBlockCanBePlacedOver([blockX, blockY - 1, blockZ]) || r.values(shideFuxny.world)[47].call(shideFuxny.world, blockX, blockY - 1, blockZ) === 0) {
wangPlace([blockX, blockY - 1, blockZ])
}
if (playerEntity.checkTargetedBlockCanBePlacedOver([blockX, blockY, blockZ]) || r.values(shideFuxny.world)[47].call(shideFuxny.world, blockX, blockY, blockZ) === 0) {
wangPlace([blockX, blockY, blockZ])
}
}
function placeSpike(position) {
// Convert to block coordinates by flooring each component
const blockX = Math.floor(position[0]);
const blockY = Math.floor(position[1]);
const blockZ = Math.floor(position[2]);
if (playerEntity.checkTargetedBlockCanBePlacedOver([blockX, blockY + 1, blockZ]) || r.values(shideFuxny.world)[47].call(shideFuxny.world, blockX, blockY + 1, blockZ) === 0) {
wangPlace([blockX, blockY + 1, blockZ])
}
}
function moveItem(itemName, desiredSlot) {
if (!playerInventoryParent || !playerInventoryParent.playerInventory?.items) {
console.warn("❌ playerInventoryParent is not set. Run findAndSavePlayerInventoryParent() first.");
return false;
}
const items = playerInventoryParent.playerInventory.items;
let oldSlot = null;
for (let i = 0; i < items.length; i++) {
const item = items[i];
if (!item || typeof item.name !== 'string') continue;
const name = item.name.toLowerCase();
if (name.includes(itemName)) {
oldSlot = i;
break;
}
}
if (oldSlot === null) {
console.warn(`❌ No ${itemName} found in slot 10 or higher.`);
return false;
}
console.log(`🔁 Swapping ${itemName} from slot ${oldSlot} with slot ${desiredSlot}`);
playerInventoryParent.swapPosClient(oldSlot, desiredSlot, null);
return true;
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function autoSW() {
if (lastClosestId && targetEntityDistance <= 36) { // place web then spikes
if (moveItem("net", webSlot) || moveItem("web", webSlot)) {
let enemyPos = shideFuxny.entities.getState(lastClosestId, 'position').position;
shideFuxny.NIGHT.inputs.down['_events'][`HotBarSlot${webSlot + 1}`]();
placeToPlayer(enemyPos);
await sleep(50); // delay before switching to spikes
if (moveItem("spikes", spikeSlot)) {
shideFuxny.NIGHT.inputs.down['_events'][`HotBarSlot${spikeSlot + 1}`]();
placeSpike(enemyPos);
}
} else { // just place spikes
if (moveItem("spikes", spikeSlot)) {
shideFuxny.NIGHT.inputs.down['_events'][`HotBarSlot${spikeSlot + 1}`]();
await sleep(50);
let enemyPos = shideFuxny.entities.getState(lastClosestId, 'position').position;
placeToPlayer(enemyPos);
} else {
console.log("no spikes or webs!");
}
}
shideFuxny.NIGHT.inputs.down['_events'].HotBarSlot1();
} else {
console.log("No target or too far");
}
if (!everEnabled.autoSWUsed) {verEnabled.autoSWUsed = true};
}
function startTargetFinder() {
let armourNodeNum = r.values(shideFuxny.rendering)[18].getNamedNode(1, "Body|Armour")
let closestObj = null;
targetFinderId = setInterval(() => {
if (!injectedBool) {
console.log("NOT INJECTED NO TARGET")
}
if (!shideFuxny.entities.getState(1, "genericLifeformState").isAlive) return;
const myPos = shideFuxny.entities.getState?.(myId, 'position')?.position;
if (!myPos) return;
const rendering = r.values(shideFuxny.rendering)[18];
const objectData = rendering?.objectData;
if (!objectData) return;
if (!eIdKey) return;
let closestId = null;
let minDist = 100;
for (const key in objectData) {
const obj = objectData[key];
const eId = obj[eIdKey];
if (
eId == null ||
obj.type !== "Player" ||
obj.pickable === false ||
eId === myId ||
!shideFuxny.entities.getState(eId, "genericLifeformState") ||
!shideFuxny.entities.getState(eId, "genericLifeformState").isAlive
) continue;
if (!eId || eId === myId || obj.pickable === false || obj.type !== "Player") continue;
const state = shideFuxny.entities.getState(eId, "genericLifeformState");
if (!state || !state.isAlive) continue;
const ent = r.values(shideFuxny.entityList)?.[1]?.[eId];
if (!ent || ent.canAttack !== true) continue;
const pos = shideFuxny.entities.getState(eId, 'position')?.position;
if (!pos) continue;
const dx = pos[0] - myPos[0];
const dy = pos[1] - myPos[1];
const dz = pos[2] - myPos[2];
//if (Math.abs(dy) > 3) continue; // optional Y-axis restriction
const dist = dx * dx + dy * dy + dz * dz;
if (dist < minDist) {
minDist = dist;
closestId = eId;
closestObj = obj;
}
}
const armourNode = closestObj?.nodes?.[armourNodeNum];
if (armourNode?.actuallyEnabled) {
newBox.name = possibleNames[1];
newBox.id = possibleNames[1];
} else {
newBox.name = possibleNames[0];
newBox.id = possibleNames[0];
}
if (closestId != null) {
newBox.metadata.eId = closestId;
//console.log(newBox.id," ",closestId)
if (closestId !== lastClosestId) {
if (hitboxes[closestId]) {
hitboxes[closestId].material.diffuseColor = new shideFuxny.Lion.Color3(1, 0, 0);
hitboxes[closestId].material.emissiveColor = new shideFuxny.Lion.Color3(1, 0, 0);
for (const id in hitboxes) {
if (id !== closestId && hitboxes[id]) {
hitboxes[id].material.diffuseColor = new shideFuxny.Lion.Color3(1, 1, 1);
hitboxes[id].material.emissiveColor = new shideFuxny.Lion.Color3(1, 1, 1);
}
}
}
lastClosestId = closestId;
}
} else {
//newBox.metadata.eId = null;
lastClosestId = null;
}
// Final visibility and distance logic
if (killAuraEnabled && closestId != null && minDist < 64) { //16 for now
newBox[__nullKey] = true;
targetEntityDistance = Math.floor(Math.sqrt(minDist));
} else {
newBox[__nullKey] = false;
targetEntityDistance = null;
}
}, 100);
}
function toggleKillAura() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!');
return;
}
everEnabled.killAuraEnabled = true;
if (killAuraEnabled) {
console.log("⛔ Kill aura disabled");
} else {
newBox[__nullKey] = false;
}
killAuraEnabled = !killAuraEnabled;
updateKillAuraButton();
}
function toggleHitBoxes() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!');
return;
}
everEnabled.hitBoxEnabled = true;
hitBoxEnabled = !hitBoxEnabled;
// Toggle visibility on all hitboxes
for (const eId in hitboxes) {
const box = hitboxes[eId];
if (box && box.isVisible !== hitBoxEnabled) {
box.isVisible = hitBoxEnabled;
}
}
updateHitboxButton();
}
function toggleSkybox() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.skyBoxEnabled = true;
(function saveSkyboxEntity() {
for (let i = 0; i < 10000; i++) {
const meshState = shideFuxny.entities.getState(i, "mesh");
if (meshState?.mesh?.id === "skyBox") {
console.log(`✔ Found skyBox entity: ${i}`);
skyboxEntity = i; // Save globally
skyboxMesh = meshState.mesh; // Optional: save mesh reference too
break;
}
}
})();
if (!skyboxMesh) {
console.warn("❌ skyboxMesh is not defined.");
return;
}
isSkyboxHidden = !isSkyboxHidden;
skyboxMesh.isVisible = isSkyboxHidden ? false : true;
console.log(`🌌 Skybox is now ${isSkyboxHidden ? "hidden" : "visible"}`);
updateSkyboxButton()
}
/*
function rainbowSky() {
rainbowSkyEnabled = !rainbowSkyEnabled
if (!rainbowSkyEnabled) {
}
}*/
function toggleWireframe() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.wireFramesBool = true;
wireFramesBool = !wireFramesBool;
const renderings = r.values(shideFuxny.rendering);
for (const rendering of renderings) {
const thinMeshes = r.values(shideFuxny.rendering)[18].thinMeshes;
if (!Array.isArray(thinMeshes)) continue;
for (const thinMesh of thinMeshes) {
const mesh = thinMesh?.mesh;
const material = mesh?.material;
const name = mesh?.name;
if (
material &&
typeof material.wireframe === "boolean" &&
!(typeof name === "string" && name.includes("Armour"))
) {
material.wireframe = wireFramesBool;
}
}
}
updateWireframeButton();
}
let chestESPEnabled = false;
let oreESPEnabled = false;
let chestOreInterval = null;
let chestBoxes = {};
function clearESPBoxes() {
for (const key in chestBoxes) {
for (const {
mesh,
id
}
of chestBoxes[key]) {
mesh.dispose();
shideFuxny.entities.deleteEntity(id);
}
}
scannedChunks.clear();
chestBoxes = {};
}
function reverseIndex(i, stride) {
const x = Math.floor(i / stride[0]);
const remX = i % stride[0];
const y = Math.floor(remX / stride[1]);
const z = remX % stride[1];
return [x, y, z];
}
function getChunkKey(chunk) {
const [wx, wy, wz] = chunk.pos || [0, 0, 0];
const cx = Math.floor(wx / 32);
const cy = Math.floor(wy / 32);
const cz = Math.floor(wz / 32);
return `${cx}|${cy}|${cz}|overworld`;
}
function scanChunk(chunk, blockIDs) {
const blockData = chunk[chunkDataField];
if (!blockData) return;
const {
data,
stride
} = blockData;
const pos = chunk.pos || [0, 0, 0];
if (!data || !stride) return;
const chunkKey = getChunkKey(chunk);
for (let i = 0; i < data.length; i++) {
const blockID = data[i];
if (!blockIDs.includes(blockID)) continue;
const [x, y, z] = reverseIndex(i, stride);
const worldX = pos[0] + x + 0.5;
const worldY = pos[1] + y + 0.5;
const worldZ = pos[2] + z + 0.5;
const mesh = shideFuxny.Lion.Mesh.CreateBox("espbox", 0.5, false, 1, shideFuxny.Lion.scene);
mesh.position.set(worldX, worldY, worldZ);
mesh.renderingGroupId = 1;
mesh.material = new shideFuxny.Lion.StandardMaterial("mat", shideFuxny.Lion.scene)
const id = shideFuxny.entities.add([worldX, worldY, worldZ], null, null, mesh);
if (!chestBoxes[chunkKey]) chestBoxes[chunkKey] = [];
chestBoxes[chunkKey].push({
mesh,
id
});
if ([204, 205, 206, 207].includes(blockID)) {
console.log("FOUNDCHEST")
mesh.material.diffuseColor = new shideFuxny.Lion.Color3(1, 0.5, 0); // orange
mesh.material.emissiveColor = new shideFuxny.Lion.Color3(1, 0.5, 0); // makes it glow orange
}
if (blockID === 45) {
mesh.material.diffuseColor = new shideFuxny.Lion.Color3(0, 0, 1); // blue
mesh.material.emissiveColor = new shideFuxny.Lion.Color3(0, 0, 1); // makes it glow blue
}
if (blockID === 465) {
mesh.material.diffuseColor = new shideFuxny.Lion.Color3(0.7, 0.5, 1); // pale purple
mesh.material.emissiveColor = new shideFuxny.Lion.Color3(0.7, 0.5, 1); // makes it glow pale purple
}
}
}
function scanAllChunks() {
if (!shideFuxny?.world || !shideFuxny?.world?.[shideFuxny.impKey]?.hash) return;
const chunkHash = shideFuxny.world[shideFuxny.impKey].hash;
// Step 1: Remove boxes for chunks no longer loaded
for (const scannedKey of scannedChunks) {
if (!(scannedKey in chestBoxes)) continue;
if (!Object.values(chunkHash).some(chunk => getChunkKey(chunk) === scannedKey)) {
// Delete all meshes for this chunk
for (const {
mesh,
id
}
of chestBoxes[scannedKey]) {
mesh.dispose(); // remove from scene
shideFuxny.entities.deleteEntity(id); // remove from entity system if needed
}
delete chestBoxes[scannedKey];
scannedChunks.delete(scannedKey);
}
}
// Step 2: Scan newly loaded chunks
for (const chunkKey in chunkHash) {
const chunk = chunkHash[chunkKey];
if (!chunkDataField) {
autoDetectChunkDataField(chunk);
if (!chunkDataField) continue; // Skip if still not found
}
const blockData = chunk[chunkDataField];
if (!blockData?.data || !blockData.stride || !chunk.pos) continue;
const key = getChunkKey(chunk);
if (scannedChunks.has(key)) continue;
scannedChunks.add(key);
if (chestESPEnabled) scanChunk(chunk, [204, 205, 206, 207]);
if (oreESPEnabled) scanChunk(chunk, [44, 45, 465, 50]);
}
}
function toggleChestESP() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.chestESPEnabled = true;
chestESPEnabled = !chestESPEnabled;
if (chestESPEnabled || oreESPEnabled) {
scanAllChunks();
chestOreInterval = setInterval(scanAllChunks, 5000);
} else {
clearInterval(chestOreInterval);
chestOreInterval = null;
clearESPBoxes();
scannedChunks.clear(); // Allow rescan next time
}
updateChestESPButton();
}
function toggleOreESP() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.oreESPEnabled = true;
oreESPEnabled = !oreESPEnabled;
if (chestESPEnabled || oreESPEnabled) {
scanAllChunks();
chestOreInterval = setInterval(scanAllChunks, 5000);
} else {
clearInterval(chestOreInterval);
chestOreInterval = null;
clearESPBoxes();
scannedChunks.clear(); // Allow rescan next time
}
updateOreESPButton();
}
function toggleESP() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.espEnabled = true;
if (!shideFuxny.impKey) return;
espEnabled = !espEnabled;
const groupId = espEnabled ? 2 : 0;
if (Array.isArray(r.values(shideFuxny.rendering)[18].thinMeshes)) {
for (const thinMesh of r.values(shideFuxny.rendering)[18].thinMeshes) {
if (thinMesh?.mesh && typeof thinMesh.mesh.renderingGroupId === "number") {
thinMesh.mesh.renderingGroupId = groupId;
}
}
console.log(`✅ Thin meshes render group set to ${groupId}`);
} else {
console.error("❌ thinMeshes array not found.");
}
updateESPButton?.();
}
// Utility Functions
function findNoaAndKey() {
let winDescriptors = Object.getOwnPropertyDescriptors(window);
let wpName = Object.keys(winDescriptors).find(key => winDescriptors[key]?.set?.toString().includes("++"));
let wpInstance = null;
if (wpName) {wpInstance = window[wpName] = window[wpName]}
if (wpInstance) {
wpInstance.push([
[Math.floor(Math.random() * 90000) + 10000], {},
function(wpRequire) {
shideFuxny.findModule = (code) => wpRequire(Object.keys(wpRequire.m)[Object.values(wpRequire.m).findIndex(m => m.toString().includes(code))]);
shideFuxny.Props = Object.values(shideFuxny.findModule("nonBlocksClient:")).find(prop => typeof prop == "object");
shideFuxny.NIGHT = Object.values(shideFuxny.Props).find(prop => prop?.entities);
//Credits to, you guessed it wang!
}
]);
}
if (!shideFuxny.NIGHT) {
usingAltInjection = true;
console.warn("❌ Could not find noa, using backup.");
function findObjectsWithEntitiesAndCamera(obj) {
const matches = [];
const visited = new WeakSet();
function recurse(current, path = []) {
if (typeof current !== 'object' || current === null) return;
if (visited.has(current)) return;
visited.add(current);
const keys = Object.keys(current);
if (keys.includes('entities') && keys.includes('camera')) {
matches.push({
path: path.join('.'),
object: current
});
}
for (const key of keys) {
const value = current[key];
if (typeof value === 'object' && value !== null) {
recurse(value, [...path, key]);
}
}
}
recurse(obj);
return matches;
}
const result = findObjectsWithEntitiesAndCamera(window);
shideFuxny.NIGHT = result[0].object
};
const targetValue = r.values(shideFuxny.NIGHT.entities)[2];
const entityEntries = Object.entries(shideFuxny.NIGHT.entities);
shideFuxny.impKey = entityEntries.find(([_, val]) => val === targetValue)?.[0];
shideFuxny.registry = r.values(shideFuxny.NIGHT)[17]
shideFuxny.rendering = r.values(shideFuxny.NIGHT)[12]
shideFuxny.entities = shideFuxny.NIGHT.entities;
if (shideFuxny.impKey) {
console.log("importantList identified:", shideFuxny.impKey);
// Attempt to find BHOP references
const key = shideFuxny.impKey;
if (key) {
const entity = shideFuxny.NIGHT.entities?.[key];
if (entity?.moveState?.list?.[0] && entity?.movement?.list?.[0]) {
playerKey = key;
moveState = entity.moveState.list[0];
physState = entity.movement.list[0];
cachedBHOPParent = entity;
console.log("✅ Cached BHOP entity data");
} else {
console.warn("⚠️ Found key but missing BHOP components");
}
} else {
console.warn("❌ BHOP player key not found");
}
}
(function findECS() {
const noaObj = shideFuxny.NIGHT;
if (!noaObj) {
console.error("❌ noa object not found");
return;
}
for (const [key, val] of Object.entries(noaObj)) {
if (key === "entities") continue; // skip known non-ECS
if (typeof val === "object" && typeof val.getState === "function") {
console.log(`✅ Found ECS at noa.${key}`);
shideFuxny.ECS = val;
break;
}
}
})();
function findeIdKey() {
const rendering = r.values(shideFuxny.rendering)[18];
const objectData = rendering?.objectData;
if (!objectData) return;
const sample = objectData[1];
for (const key in sample) {
if (sample[key] === 1) {
eIdKey = key;
break;
}
}
}
findeIdKey();
function findAddComponentFunction(obj) {
const exclude = ['overwriteComponent', 'deleteComponent', 'removeComponent', 'getState'];
for (const key in obj) {
if (exclude.includes(key)) continue;
const fn = obj[key];
if (typeof fn !== 'function') continue;
try {
fn(999999, "__FAKE_COMPONENT__", {});
} catch (err) {
const msg = (err?.message || "").toLowerCase();
if (
msg.includes("unknown component") ||
msg.includes("already has component") ||
(msg.includes("component") && msg.includes("missing"))
) {
console.log(`🧩 Candidate: ${key} → likely addComponent()`);
return key;
}
}
}
console.warn("❌ Could not identify an addComponent-like function.");
return null;
}
let mesh = r.values(shideFuxny.rendering)[7].meshes[0];
let scene = r.values(shideFuxny.rendering)[7];
let engine = scene.getEngine();
let StandardMaterial = mesh.material.constructor;
let Color3 = mesh.material.diffuseColor.constructor;
const addKey = findAddComponentFunction(shideFuxny.NIGHT.entities);
const addComponent = shideFuxny.NIGHT.entities[addKey];
shideFuxny.world = r.values(shideFuxny.NIGHT)[11]
shideFuxny.physics = shideFuxny.NIGHT.physics
shideFuxny.camera = shideFuxny.NIGHT.camera
shideFuxny.bloxd = shideFuxny.NIGHT.bloxd
shideFuxny.clientOptions = r.values(shideFuxny.NIGHT)[29]
shideFuxny.Lion = {
scene,
engine,
InstancedMesh: mesh.constructor,
Mesh: mesh.constructor,
Scene: scene.constructor,
Engine: engine.constructor,
Color3,
StandardMaterial,
addComponent,
addKey
};
playerInventoryParent = shideFuxny.entities[shideFuxny.impKey].inventory.list[0].opWrapper
function autoDetectChunkDataField(chunk) {
for (const key of Object.keys(chunk)) {
const val = chunk[key];
if (!val) continue;
if (
typeof val === "object" &&
Array.isArray(val.stride) &&
val.stride.length === 3 &&
(
Array.isArray(val.data) ||
ArrayBuffer.isView(val.data) // covers Uint16Array etc.
)
) {
console.log("✅ Detected chunk data field:", key);
chunkDataField = key;
return key;
}
}
console.warn("❌ Failed to auto-detect chunk data field");
return null;
}
autoDetectChunkDataField(Object.values(shideFuxny.world[shideFuxny.impKey].hash)[0]);
const maybeEntity = r.values(r.values(shideFuxny.entities[shideFuxny.impKey])[22].list[0])[1];
const hasDoAttackDirect = typeof maybeEntity?.doAttack === 'function';
const hasDoAttackBreakingItem = typeof maybeEntity?.breakingItem?.doAttack === 'function';
if (hasDoAttackDirect) {
console.log("maybeEntity has doAttack");
playerEntity = maybeEntity;
} else if (hasDoAttackBreakingItem) {
console.log("maybeEntity.breakingItem has doAttack");
playerEntity = maybeEntity.breakingItem;
} else {
console.warn("Neither maybeEntity nor its breakingItem has doAttack");
playerEntity = null;
}
mesh = null;
scene = null;
engine = null;
StandardMaterial = null;
Color3 = null;
/*
(function findRenderingModule() {
const scene = shideFuxny?.Lion?.scene;
if (!scene) {
console.error("❌ shideFuxny.Lion.scene not set");
return;
}
for (const [key, val] of Object.entries(shideFuxny.NIGHT)) {
if (typeof val === "object" && val !== null) {
for (const nestedVal of Object.values(val)) {
if (nestedVal === scene) {
console.log(`✅ Found scene in noa["${key}"]`);
shideFuxny.rendering = val;
return;
}
}
}
}
})();
*/
function findOnlysendBytes(obj) {
if (!obj) {
console.warn("❌ Provided object is null or undefined.");
return null;
}
const proto = Object.getPrototypeOf(obj);
const props = Object.getOwnPropertyNames(proto);
for (const key of props) {
if (key === 'constructor') continue;
const val = proto[key];
if (typeof val === 'function') {
const str = val.toString();
// Looser but effective pattern detection
const looksLikesendBytes =
val.length === 2 &&
/Protocol\.ROOM_DATA_BYTES/i.test(str) &&
str.includes('Uint8Array') &&
/typeof/.test(str) && // just check any typeof usage
str.includes('.encode') &&
(str.includes('.byteLength') || str.includes('.length')) &&
str.includes('.set');
if (looksLikesendBytes) {
console.log(`✅ Real sendBytes found: ${key}`);
return key;
}
}
}
console.warn("❌ sendBytes function not found.");
return null;
}
// Usage
colyRoom = r.values(shideFuxny.bloxd.client.msgHandler)[0];
sendBytesName = findOnlysendBytes(colyRoom);
if (!colyRoom || typeof colyRoom[sendBytesName] !== "function") {
console.warn("[Blink] colyRoom or sendBytes not ready.");
}
blinkState = {
enabled: false,
originalSendBytes: colyRoom[sendBytesName],
queued: [],
interval: 0,
noPacket: false
};
startTargetFinder()
function setupKillAuraBox() {
newBox = shideFuxny.Lion.Mesh.CreateBox("mesh", .5, false, 1, shideFuxny.Lion.scene);
newBox.renderingGroupId = 1;
newBoxId = shideFuxny.entities.add([0, 10, 0], null, null, newBox);
//newBox.Da = true;
newBox.material = new shideFuxny.Lion.StandardMaterial("mat", shideFuxny.Lion.scene);
newBox.material.diffuseColor = new shideFuxny.Lion.Color3(1, 1, 1);
newBox.material.emissiveColor = new shideFuxny.Lion.Color3(1, 1, 1);
newBox.name = 'BodyMesh';
newBox.id = 'BodyMesh';
newBox.isVisible = false;
if (!newBox.metadata) newBox.metadata = {};
// Find null key
__nullKey = null;
for (const key in newBox) {
if (key.length === 2 && newBox[key] === null) {
__nullKey = key;
break;
}
}
if (__nullKey) {
newBox[__nullKey] = false;
}
shideFuxny.entityList = r.values(shideFuxny.NIGHT)[30]
humanoidMeshlist = shideFuxny.entities[shideFuxny.impKey]?.humanoidMesh?.list;
__stringKey = null;
if (Array.isArray(humanoidMeshlist)) {
outerLoop: for (const obj of humanoidMeshlist) {
for (const key in obj) {
if (typeof obj[key] === "string") {
__stringKey = key;
break outerLoop;
}
}
}
}
else {
console.error("❌ Invalid humanoidMeshlist path.");
}
// Follow loop
function followHeadLoop() {
if (newBox) {
const playerId = 1;
const playerPosState = shideFuxny.entities.getState(playerId, "position");
if (playerPosState && Array.isArray(playerPosState.position)) {
const [x, y, z] = playerPosState.position;
const newPos = [x, y + 1.5, z];
shideFuxny.entities.setPosition(newBoxId, newPos);
} else {
console.error("Player position not found or invalid");
}
}
animationFrameId = requestAnimationFrame(followHeadLoop);
}
// Start the loop
animationFrameId = requestAnimationFrame(followHeadLoop);
}
setupKillAuraBox();
passiveFeatures();
document.addEventListener("keydown", (e) => {
if (e.key.toLowerCase() === "g") {
for (const key in shideFuxny.bloxd.entityNames) {
if (key === "1") continue;
const nameObj = shideFuxny.bloxd.entityNames[key];
const state = shideFuxny.entities.getState(key, 'position');
if (!state || !state.position) continue;
const pos = state.position;
const x = Math.round(pos[0]);
const y = Math.round(pos[1]);
const z = Math.round(pos[2]);
// Remove existing position suffix if any (like "Name (x, y, z)")
const baseName = nameObj.entityName.replace(/\s*\(\-?\d+,\s*\-?\d+,\s*\-?\d+\)$/, "");
// Update with new position
nameObj.entityName = `${baseName} (${x}, ${y}, ${z})`;
}
}
});
const visitedTags = new WeakSet();
function findParentOfNameTag(obj, path = '') {
if (typeof obj !== 'object' || obj === null || visitedTags.has(obj)) return null;
visitedTags.add(obj);
for (const key in obj) {
if (!Object.hasOwn(obj, key)) continue;
try {
const value = obj[key];
const currentPath = path + (Array.isArray(obj) ? `[${key}]` : (path ? '.' : '') + key);
if (value && typeof value === 'object' && value.id === '1NameTag') {
console.log("✅ Path to NameTag parent:", currentPath);
return obj;
}
const result = findParentOfNameTag(value, currentPath);
if (result) return result;
} catch {}
}
return null;
}
cachedNameTagParent = shideFuxny.Lion.scene //findParentOfNameTag(shideFuxny.world[shideFuxny.impKey].hash) Все ебать.
// Run the function every 15 seconds
setInterval(makeHitboxes, 1000);
}
function findElementByText(text) {
const all = document.querySelectorAll('div, span, button, a');
for (const el of all)
if (el.textContent.trim() === text) return el;
return null;
}
function clickTeleportButton() {
const teleportButtonText = findElementByText('Teleport To Lobby Spawn');
if (teleportButtonText) {
let clickable = teleportButtonText;
while (clickable && !clickable.onclick && clickable.tagName !== 'BUTTON') clickable = clickable.parentElement;
if (clickable) {
console.log('Clicking teleport button:', clickable);
clickable.click();
} else {
console.warn('No clickable parent found, trying to click text element itself');
teleportButtonText.click();
}
} else console.warn('Teleport button text not found in DOM');
}
function toggleAutoPot() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
autoPotionEnabled = !autoPotionEnabled;
if (autoPotionEnabled) {
autoPotionInterval = setInterval(movePotionToSlot, 1000);
console.log("AutoPotion enabled");
} else {
clearInterval(autoPotionInterval);
autoPotionInterval = null;
console.log("AutoPotion disabled");
}
updateAutoPotButton();
}
function toggleNameTags() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.nameTagsEnabled = true;
nameTagsEnabled = !nameTagsEnabled;
if (nameTagsEnabled) {
if (!cachedNameTagParent) {
nameTagsEnabled = false;
return;
}
nameTagParent = cachedNameTagParent;
nameTagsIntervalId = setInterval(() => {
const entityList = shideFuxny.entityList;
if (!entityList || typeof entityList !== 'object') return;
for (const subGroup of Object.values(entityList)) {
if (!subGroup || typeof subGroup !== 'object') continue;
for (const obj of Object.values(subGroup)) {
if (obj?.lobbyLeaderboardValues) {
try {
const descTag = Object.getOwnPropertyDescriptor(obj, 'hasPriorityNametag');
if (!descTag || descTag.configurable) {
Object.defineProperty(obj, 'hasPriorityNametag', {
get() {
return true;
},
set(val) {
if (val !== true) {}
},
configurable: true
});
}
const descSee = Object.getOwnPropertyDescriptor(obj, 'canSee');
if (!descSee || descSee.configurable) {
Object.defineProperty(obj, 'canSee', {
get() {
return true;
},
set(val) {
if (val !== true) {}
},
configurable: true
});
}
} catch (e) {}
}
}
}
for (const key in nameTagParent) {
const tag = nameTagParent;
if (tag && typeof tag === 'object' && typeof tag.id === 'string' && tag.id.includes('NameTag')) {
try {
const descVisible = Object.getOwnPropertyDescriptor(tag, '_isVisible');
if (!descVisible || descVisible.configurable) {
Object.defineProperty(tag, '_isVisible', {
get() {
return true;
},
set(val) {
if (val !== true) {}
},
configurable: true
});
}
const descRenderGroup = Object.getOwnPropertyDescriptor(tag, 'renderingGroupId');
if (!descRenderGroup || descRenderGroup.configurable) {
Object.defineProperty(tag, 'renderingGroupId', {
get() {
return 3;
},
set(val) {
if (val !== 3) {}
},
configurable: true
});
}
} catch (e) {}
}
}
}, 15000);
console.log("✅ 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 tag.id === 'string' && tag.id.includes('NameTag')) {
try {
const current = tag._isVisible;
delete tag._isVisible;
tag._isVisible = current;
} catch (e) {
console.warn("Failed to unlock _isVisible on", tag);
}
}
}
}
nameTagParent = null;
console.log("🟡 NameTag visibility lock: OFF");
}
updateNameTagsButton();
}
function toggleBHOP() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.bhopEnabled = true;
bhopEnabled = !bhopEnabled;
if (bhopEnabled) {
if (!moveState || !physState) {
console.warn("❌ BHOP references not initialized. Did you inject?");
bhopEnabled = false;
return;
}
bhopIntervalId = setInterval(bunnyHop, 10); //was 60
console.log("BHOP: ON");
} else {
clearInterval(bhopIntervalId);
bhopIntervalId = null;
console.log("BHOP: OFF");
}
updateBHOPButton();
}
const toggleBlink = (interval = 0, noPacket = false) => {
blinkState.enabled = !blinkState.enabled;
blinkState.interval = interval;
blinkState.noPacket = noPacket;
if (blinkState.enabled) {
console.log(`[Blink] ENABLED — interval: ${interval}, noPacket: ${noPacket}`);
colyRoom[sendBytesName] = (...args) => {
const [J, T] = args;
const send = () => blinkState.originalSendBytes.call(colyRoom, J, T);
if (interval > 0) {
setTimeout(send, interval);
} else {
blinkState.queued.push([J, T]);
}
};
} else {
console.log(`[Blink] DISABLED — sending ${blinkState.queued.length} packets.`);
for (const [J, T] of blinkState.queued) {
blinkState.originalSendBytes.call(colyRoom, J, T);
}
colyRoom[sendBytesName] = blinkState.originalSendBytes;
blinkState.queued = [];
}
};
function toggleBlinkWrapper() {
if (!injectedBool) {
showTemporaryNotification('You need to inject first habibi!')
}
everEnabled.blinkEnabled = true;
toggleBlink();
updateBlinkButton();
}
// ⛏ BHOP logic
function bunnyHop() {
if (!bhopEnabled || !physState.isOnGround?.() || moveState.crouching || moveState.speed < 0.05) return;
moveState.jumping = true;
physState._hadJumpInputPrevTick = false;
setTimeout(() => {
moveState.jumping = false;
}, 20);
}
//////////////////////////////////////////////////////////////////////////////////////GUI
document.getElementById("rndAsciiGUI")?.remove();
document.getElementById("rndAsciiGUI_minimized")?.remove();
let miniPos = {
left: 10,
top: 10
};
let accent = {
color: defaultColor,
alpha: 1
};
let bg = {
color: defaultBackGroundColor,
alpha: defaultBackGroundTransparency,
blur: defaultBackGroundBlur
};
let isGuiVisible = true;
let minimizedIcon = null;
const style = document.createElement("style");
style.textContent = `
:root {
--accent-color: ${defaultColor};
--accent-gradient: ${defaultGradient};
--accent-hover-color: ${defaultColor};
}
.gradient-indicator {
background: var(--accent-gradient);
}
#rndAsciiGUI {
position: fixed;
top: 10vh;
left: 10vw;
width: 35vw; /* Change width to one-third of the original */
height: auto;
z-index: 999999;
border-radius: 8px;
overflow: hidden;
font-family: sans-serif;
pointer-events: none;
}
#rndAsciiTopBar {
height: 40px;
background: var(--accent-gradient);
color: white;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 10px;
cursor: move;
pointer-events: auto;
}
#rndAsciiTopBar img {
width: 24px;
height: 24px;
margin-right: 10px;
border-radius: 4px;
}
#rndAsciiTopBarTitle {
display: flex;
align-items: center;
pointer-events: auto;
}
#rndAsciiMinBtn {
background: none;
border: none;
color: white;
font-size: 18px;
cursor: pointer;
padding: 0 10px;
pointer-events: auto;
}
#rndAsciiContent {
display: flex;
height: auto;
pointer-events: auto;
}
#rndAsciiSidebar {
width: 150px;
display: flex;
flex-direction: column;
}
.rndAsciiBtn {
box-sizing: border-box;
padding: 12px 10px;
color: rgba(255, 255, 255, 0.8);
background: none;
text-align: left;
position: relative;
cursor: pointer;
outline: none;
border: none;
box-shadow: none;
transition: all 0.2s;
pointer-events: auto;
font-size: 14px;
height: 50px;
display: flex;
align-items: center;
border-radius: 4px;
margin: 2px 5px;
}
.rndAsciiBtn.active {
font-weight: bold;
background: rgba(255, 255, 255, 0.1);
}
.rndAsciiBtn:hover {
background: rgba(255, 255, 255, 0.05);
}
.rndAsciiBtn.indicatorLine {
position: absolute;
bottom: 0;
left: 0;
height: 4px
width: 0%;
background: var(--accent-gradient);
transition: width 0.3s;
border-radius: 2px;
}
#rndAsciiDivider {
width: 2px;
background: var(--accent-color, ${defaultColor});
margin: 0 5px;
}
#rndAsciiPage {
flex: 1;
padding: 20px;
color: white;
overflow-y: auto;
pointer-events: auto;
}
#rndAsciiGUI_minimized {
position: fixed;
width: 32px;
height: 32px;
background: var(--accent-gradient);
border-radius: 4px;
z-index: 999999;
display: flex;
align-items: center;
justify-content: center;
cursor: move;
user-select: none;
pointer-events: auto;
}
#rndAsciiGUI_minimized img {
width: 20px;
height: 20px;
border-radius: 4px;
}
.rndAsciiGroup {
margin-bottom: 20px;
}
.rndAsciiGroup label {
display: block;
margin-bottom: 4px;
font-weight: bold;
}
input[type="range"] {
width: 100%;
accent-color: var(--accent-color, ${defaultColor});
pointer-events: auto;
}
input[type="color"] {
background: rgba(255, 255, 255, 0.1);
border: none;
outline: none;
height: 30px;
border-radius: 4px;
cursor: pointer;
pointer-events: auto;
}
input[type="text"] {
background: rgba(255, 255, 255, 0.1);
border: none;
outline: none;
height: 30px;
border-radius: 4px;
color: white;
padding: 0 10px;
pointer-events: auto;
}
.gradient-border {
position: relative;
color: white;
background-color: transparent;
border: none; /* Remove the border from the main element */
border-radius: 8px;
cursor: pointer;
z-index: 0;
}
`;
document.head.appendChild(style);
const gui = document.createElement("div");
gui.id = "rndAsciiGUI";
document.body.appendChild(gui);
const topHTML = `
<style>
#rndAsciiTopBarTitle span {
text-shadow:
0 0 5px rgba(255, 255, 255, 0.9),
0 0 10px rgba(255, 255, 255, 0.8),
0 0 15px rgba(255, 255, 255, 0.7);
}
</style>
<div id="rndAsciiTopBar">
<div id="rndAsciiTopBarTitle">
<img src="${ICON_URL}" alt="icon">
<span>${TITLE}</span>
</div>
<button id="rndAsciiMinBtn">_</button>
</div>
`;
const contentHTML = `
<div id="rndAsciiContent">
<div id="rndAsciiSidebar"></div>
<div id="rndAsciiDivider"></div>
<div id="rndAsciiPage"></div>
</div>
`;
gui.innerHTML = topHTML + contentHTML;
const sidebar = gui.querySelector("#rndAsciiSidebar");
const page = gui.querySelector("#rndAsciiPage");
const waterJumpBtn = createButton("Water Jump")
const hitboxBtn = createButton("Hitbox");
const wireframeBtn = createButton("Wireframes");
const espBtn = createButton("ESP");
const bhopBtn = createButton("BHOP");
const enemyHealthGuiBtn = createButton("Enemy Healh Bar")
const blinkBtn = createButton("Blink");
const chestESPBtn = createButton("Chest ESP");
const oreESPBtn = createButton("Ore ESP");
const nameTagBtn = createButton("Nametags")
const killAuraBtn = createButton("Kill Aura")
const skyBoxBtn = createButton("Night")
const wallJumpBtn = createButton("Wall Jump")
const triggerBotBtn = createButton("TriggerBot")
const pickupReachBtn = createButton("Pickup Reach")
const autoPotBtn = createButton("Auto Potion")
const knifeBtn = createButton("BHOP Knife")
const bigHeadsBtn = createButton("BIGHEADS")
const scaffoldBtn = createButton("Scaffold")
const slowHitBtn = createButton("Slow Hit")
const pageNames = [
"Inject & Enumerate",
"Combat",
"Movement",
"Visual",
"World",
"Settings"
];
const customizationElements = [];
const pageBtns = [];
const pageContents = [
[],
[hitboxBtn, killAuraBtn, triggerBotBtn, enemyHealthGuiBtn, autoPotBtn, bigHeadsBtn, slowHitBtn],
[bhopBtn, knifeBtn, blinkBtn, waterJumpBtn, wallJumpBtn],
[chestESPBtn, oreESPBtn, wireframeBtn, espBtn, nameTagBtn],
[pickupReachBtn, skyBoxBtn, scaffoldBtn],
customizationElements
];
function createButton(label) {
const btn = document.createElement('button');
btn.textContent = label;
btn.className = 'rndAsciiBtn';
btn.style.width = 'calc(100% - 10px)';
btn.style.padding = '12px 10px';
btn.style.position = 'relative';
btn.style.margin = '3px 5px';
btn.style.border = 'none';
btn.style.borderRadius = '4px';
btn.style.backgroundColor = 'rgba(255, 255, 255, 0.05)';
btn.style.color = 'rgba(255, 255, 255, 0.8)';
btn.style.cursor = 'pointer';
btn.style.fontSize = '14px';
btn.style.textAlign = 'left';
btn.style.height = '50px';
btn.style.display = 'flex';
btn.style.alignItems = 'center';
btn.style.transition = 'all 0.2s';
const indicatorLine = document.createElement('div');
indicatorLine.className = 'indicatorLine gradient-indicator';
indicatorLine.style.position = 'absolute';
indicatorLine.style.bottom = '0';
indicatorLine.style.left = '0';
indicatorLine.style.width = '0%';
indicatorLine.style.height = '4px';
indicatorLine.style.setProperty('height', '4px', 'important');
indicatorLine.style.transition = 'width 0.3s';
btn.appendChild(indicatorLine);
btn.indicatorLine = indicatorLine;
btn.onmouseenter = function() {
this.style.backgroundColor = 'rgba(255, 255, 255, 0.15)';
};
btn.onmouseleave = function() {
if (!this.classList.contains('active')) {
this.style.backgroundColor = 'rgba(255, 255, 255, 0.05)';
}
};
return btn;
}
for (let i = 0; i < pageNames.length; i++) {
const btn = createButton(pageNames[i]);
btn.indicatorLine.style.display = i === 0 ? "block" : "none";
btn.onclick = () => {
// Clear existing active styles
pageBtns.forEach((b) => {
b.classList.remove("active");
b.style.backgroundColor = "rgba(255, 255, 255, 0.05)";
b.style.fontWeight = "normal";
b.indicatorLine.style.width = "0%";
});
// Apply active styles to current button
btn.classList.add("active");
btn.style.backgroundColor = "rgba(255, 255, 255, 0.15)";
btn.style.fontWeight = "bold";
btn.indicatorLine.style.width = "100%";
// Clear current page content
page.innerHTML = "";
// Load appropriate page
if (i === 0) {
createPageOneContent(); // Inject page
} else if (i === 5) {
showCustomizationPage();
pageContents[i].forEach(el => page.appendChild(el));
} else {
pageContents[i].forEach(el => page.appendChild(el));
}
};
if (i === 0) btn.classList.add("active");
sidebar.appendChild(btn);
pageBtns.push(btn);
}
pageContents[0].forEach(el => page.appendChild(el));
function showCustomizationPage() {
customizationElements.length = 0;
const keybindGroup = document.createElement("div");
keybindGroup.className = "rndAsciiGroup";
keybindActions.forEach((bind) => {
const bindLabel = document.createElement("label");
bindLabel.textContent = `${bind.name} Keybind`;
const bindInput = document.createElement("input");
bindInput.type = "text";
bindInput.value = bind.code;
bindInput.dataset.name = bind.name;
bindInput.style.outline = "none"; // Remove default focus outline
bindInput.addEventListener("focus", () => {
// Handler for keyboard keys
const handleKeyDown = (event) => {
event.preventDefault();
const newKey = event.code; // Keyboard key code like "KeyA", "ArrowUp"
setNewKeybind(newKey);
};
// Handler for mouse buttons
const handleMouseDown = (event) => {
event.preventDefault();
let newKey = null;
switch(event.button) {
case 0: newKey = "MouseLeft"; break;
case 1: newKey = "MouseMiddle"; break;
case 2: newKey = "MouseRight"; break;
default: newKey = `MouseButton${event.button}`;
}
setNewKeybind(newKey);
};
// Common function to update keybind and cleanup listeners
function setNewKeybind(newKey) {
bindInput.value = newKey;
const actionIndex = keybindActions.findIndex((action) => action.name === bind.name);
if (actionIndex !== -1) {
keybindActions[actionIndex].code = newKey;
localStorage.setItem("customKeybinds_v1", JSON.stringify(
keybindActions.map(({ name, code }) => ({ name, code }))
));
}
document.removeEventListener("keydown", handleKeyDown);
document.removeEventListener("mousedown", handleMouseDown);
bindInput.blur();
}
// Listen for either keyboard or mouse input once
document.addEventListener("keydown", handleKeyDown, { once: true });
document.addEventListener("mousedown", handleMouseDown, { once: true });
});
keybindGroup.appendChild(bindLabel);
keybindGroup.appendChild(bindInput);
});
// Scrollable wrapper container to fix vertical overflow
const wrapper = document.createElement("div");
wrapper.style.maxHeight = "70vh"; // Limit height to 70% of viewport height
wrapper.style.overflowY = "auto"; // Enable vertical scrolling when needed
wrapper.style.padding = "10px";
wrapper.style.margin = "10px 0";
wrapper.style.border = "1px solid #ccc"; // Optional border for clarity
wrapper.appendChild(keybindGroup);
customizationElements.push(wrapper);
}
showCustomizationPage();
function applyTheme() {
const accentRGBA = hexToRgba(accent.color, accent.alpha);
const bgRGBA = hexToRgba(bg.color, bg.alpha);
gui.style.setProperty("--accent-color", accent.color);
gui.style.setProperty("--accent-gradient", defaultGradient);
gui.style.background = bgRGBA;
gui.style.backdropFilter = `blur(${bg.blur}px)`;
// Apply the gradient to the minimized icon
const minimizedIcon = document.getElementById("rndAsciiGUI_minimized");
if (minimizedIcon) {
minimizedIcon.style.background = `var(--accent-gradient)`;
}
// Apply the gradient to the indicator lines
const indicatorLines = document.querySelectorAll(".indicatorLine");
indicatorLines.forEach(line => {
line.style.background = `var(--accent-gradient)`;
});
// Apply the gradient to all buttons
// const buttons = document.querySelectorAll(".rndAsciiBtn");
// buttons.forEach(button => {
// button.style.background = `var(--accent-gradient)`;
// });
// I DIDNT WANT GRADIENT HERE
const draggableAreas = document.querySelectorAll(".draggable-area");
draggableAreas.forEach(area => {
area.style.background = `var(--accent-gradient)`;
});
}
// Helper function to get a complementary color
function getComplementaryColor(hex) {
// Convert hex to RGB
const r = parseInt(hex.slice(1, 3), 16);
const g = parseInt(hex.slice(3, 5), 16);
const b = parseInt(hex.slice(5, 7), 16);
// Calculate complementary color
const compR = (255 - r).toString(16).padStart(2, '0');
const compG = (255 - g).toString(16).padStart(2, '0');
const compB = (255 - b).toString(16).padStart(2, '0');
return `#${compR}${compG}${compB}`;
}
function hexToRgba(hex, alpha = 1) {
const [r, g, b] = hex.match(/\w\w/g).map(x => parseInt(x, 16));
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
}
applyTheme();
const topBar = gui.querySelector("#rndAsciiTopBar");
let dragging = false,
offsetX = 0,
offsetY = 0;
topBar.addEventListener("mousedown", (e) => {
if (e.target.id === "rndAsciiMinBtn") return;
dragging = true;
const rect = gui.getBoundingClientRect();
offsetX = e.clientX - rect.left;
offsetY = e.clientY - rect.top;
e.stopPropagation();
});
document.addEventListener("mousemove", (e) => {
if (dragging) {
gui.style.left = `${e.clientX - offsetX}px`;
gui.style.top = `${e.clientY - offsetY}px`;
}
});
document.addEventListener("mouseup", () => {
dragging = false;
});
gui.querySelector("#rndAsciiMinBtn").onclick = () => {
gui.style.display = "none";
isGuiVisible = false;
showMinimizedIcon();
};
function showMinimizedIcon() {
minimizedIcon = document.createElement("div");
minimizedIcon.id = "rndAsciiGUI_minimized";
minimizedIcon.className = "minimized-icon";
minimizedIcon.style.left = `${miniPos.left}px`;
minimizedIcon.style.top = `${miniPos.top}px`;
minimizedIcon.style.position = "fixed";
minimizedIcon.style.width = "32px";
minimizedIcon.style.height = "32px";
minimizedIcon.style.background = accent.color; // Set the background color here
minimizedIcon.style.borderRadius = "4px";
minimizedIcon.style.zIndex = "130";
minimizedIcon.style.display = "flex";
minimizedIcon.style.alignItems = "center";
minimizedIcon.style.justifyContent = "center";
minimizedIcon.style.cursor = "move";
minimizedIcon.style.userSelect = "none";
minimizedIcon.style.pointerEvents = "auto";
// Create a separate draggable area
const draggableArea = document.createElement("div");
draggableArea.className = "draggable-area";
draggableArea.style.width = "100%";
draggableArea.style.height = "100%";
draggableArea.style.position = "absolute";
draggableArea.style.cursor = "move";
draggableArea.style.borderRadius = "4px";
// Create the image element
const img = document.createElement("img");
img.src = ICON_URL;
img.alt = "icon";
img.style.width = "20px";
img.style.height = "20px";
img.style.borderRadius = "4px";
img.style.pointerEvents = "none";
minimizedIcon.appendChild(draggableArea);
minimizedIcon.appendChild(img);
document.body.appendChild(minimizedIcon);
let draggingMini = false;
let clickStart = 0;
let offsetX = 0;
let offsetY = 0;
draggableArea.addEventListener("mousedown", (e) => {
draggingMini = true;
const rect = minimizedIcon.getBoundingClientRect();
offsetX = e.clientX - rect.left;
offsetY = e.clientY - rect.top;
clickStart = Date.now();
e.stopPropagation();
});
document.addEventListener("mousemove", (e) => {
if (draggingMini) {
const x = e.clientX - offsetX;
const y = e.clientY - offsetY;
minimizedIcon.style.left = `${x}px`;
minimizedIcon.style.top = `${y}px`;
miniPos = {
left: x,
top: y
};
}
});
document.addEventListener("mouseup", (e) => {
if (!draggingMini) return;
draggingMini = false;
const moved = Math.abs(e.clientX - (miniPos.left + offsetX)) > 4 ||
Math.abs(e.clientY - (miniPos.top + offsetY)) > 4;
const shortClick = (Date.now() - clickStart) < 200;
if (!moved && shortClick) {
gui.style.display = "block";
isGuiVisible = true;
minimizedIcon.remove();
}
});
}
document.addEventListener("keydown", (e) => {
if (e.key === openKey) {
if (isGuiVisible) {
gui.style.display = "none";
isGuiVisible = false;
showMinimizedIcon();
if (shideFuxny.Props.pointerLockWrapper) {
shideFuxny.Props.pointerLockWrapper.removePointerUnlockRequest("Menu")
}
} else {
gui.style.display = "block";
isGuiVisible = true;
if (minimizedIcon) minimizedIcon.remove();
if (shideFuxny.Props.pointerLockWrapper) {
shideFuxny.Props.pointerLockWrapper.requestPointerUnlock("Menu")
}
}
}
});
document.addEventListener("keydown", (event) => {
for (const bind of keybindActions) {
// No need to check bind.type — just compare code strings
if (event.code === bind.code) {
event.preventDefault();
console.log(`Triggered: ${bind.name} via key ${event.code}`);
bind.action?.();
}
}
});
document.addEventListener("mousedown", (event) => {
let buttonName;
switch (event.button) {
case 0: buttonName = "MouseLeft"; break;
case 1: buttonName = "MouseMiddle"; break;
case 2: buttonName = "MouseRight"; break;
default: buttonName = `MouseButton${event.button}`;
}
for (const bind of keybindActions) {
if (buttonName === bind.code) {
event.preventDefault();
console.log(`Triggered: ${bind.name} via ${buttonName}`);
bind.action?.();
}
}
});
let injectButton = null;
function createPageOneContent() {
const page = document.getElementById("rndAsciiPage");
page.innerHTML = "";
const container = document.createElement("div");
container.style.display = "flex";
container.style.flexDirection = "column";
container.style.justifyContent = "center";
container.style.alignItems = "center";
container.style.height = "100%";
// Inject Button
injectButton = document.createElement("button");
injectButton.textContent = injectedBool ? "Injected!" : "Waiting for game...";
injectButton.className = "rndAsciiBtn gradient-border";
injectButton.disabled = true;
Object.assign(injectButton.style, {
backgroundImage: defaultGradient,
color: "#fff",
border: "none",
padding: "2px 12px",
fontSize: "14px",
textShadow: "0 0 6px rgba(255, 255, 255, 0.6)",
marginBottom: "8px",
cursor: "pointer",
width: "150px",
height: "30px",
boxSizing: "border-box",
display: "flex",
justifyContent: "center",
alignItems: "center",
whiteSpace: "nowrap",
overflow: "hidden",
textOverflow: "ellipsis",
});
injectButton.style.textShadow = `
0 0 5px #fff,
0 0 10px ${defaultColor},
0 0 20px ${defaultColor},
0 0 30px ${defaultColor}
`;
injectButton.onmouseenter = () => {
injectButton.style.boxShadow = "0 4px 12px rgba(0, 0, 0, 0.3)";
};
injectButton.onmouseleave = () => {
injectButton.style.boxShadow = "0 4px 8px rgba(0, 0, 0, 0.2)";
};
injectButton.onmousedown = () => {
injectButton.style.transform = "scale(0.98)";
};
injectButton.onmouseup = () => {
injectButton.style.transform = "scale(1)";
};
injectButton.onclick = () => {
try {
findNoaAndKey();
if (!shideFuxny.NIGHT) {
console.warn("❌ Could not find noa");
injectButton.textContent = "Failed";
return;
}
console.log("Injection completed!");
injectButton.textContent = "Injected!";
injectedBool = true;
applyTheme();
} catch (err) {
console.error("Error running findNoaAndKey:", err);
injectButton.textContent = "Error";
alert("Error running function. See console.");
}
};
// Shared button style
const buttonStyle = {
backgroundColor: "#5865F2",
color: "#fff",
border: "none",
padding: "2px 10px",
fontSize: "12px",
borderRadius: "5px",
cursor: "pointer",
fontWeight: "bold",
textShadow: "0 0 4px rgba(0, 0, 0, 0.3)",
height: "25px",
boxSizing: "border-box",
textAlign: "center",
whiteSpace: "nowrap",
overflow: "hidden",
textOverflow: "ellipsis",
marginTop: "6px"
};
const addHoverHandlers = (btn) => {
btn.onmouseenter = () => {
btn.style.boxShadow = "0 4px 12px rgba(0, 0, 0, 0.3)";
};
btn.onmouseleave = () => {
btn.style.boxShadow = "0 4px 8px rgba(0, 0, 0, 0.2)";
};
btn.onmousedown = () => {
btn.style.transform = "scale(0.97)";
};
btn.onmouseup = () => {
btn.style.transform = "scale(1)";
};
};
// Discord Button
const discordButton = document.createElement("button");
discordButton.textContent = "Discord";
discordButton.className = "rndAsciiBtn";
Object.assign(discordButton.style, buttonStyle);
discordButton.style.textShadow = `
0 0 5px #fff,
0 0 10px #5865F2,
0 0 20px #5865F2,
0 0 30px #5865F2
`;
discordButton.onclick = () => {
window.open("https://discord.gg/TQPqe9r2", "_blank");
};
addHoverHandlers(discordButton);
// Clear Cookies Button
const clearCookiesButton = document.createElement("button");
clearCookiesButton.textContent = "New Account";
clearCookiesButton.className = "rndAsciiBtn";
Object.assign(clearCookiesButton.style, {
backgroundColor: "#e74c3c", // Red color you liked
color: "#fff",
border: "none",
padding: "2px 10px",
fontSize: "12px",
borderRadius: "5px",
cursor: "pointer",
fontWeight: "bold",
textShadow: "0 0 4px rgba(0, 0, 0, 0.3)",
height: "25px",
boxSizing: "border-box",
textAlign: "center",
whiteSpace: "nowrap",
overflow: "hidden",
textOverflow: "ellipsis",
marginTop: "6px"
});
clearCookiesButton.style.textShadow = `
0 0 5px #fff,
0 0 10px #e74c3c,
0 0 20px #e74c3c,
0 0 30px #e74c3c
`;
clearCookiesButton.onclick = () => {
window.onbeforeunload = null; // Disable unload warning
const deleteCookie = (name, path = "/", domain = "") => {
let cookieStr = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=${path};`;
if (domain) cookieStr += `domain=${domain};`;
document.cookie = cookieStr;
};
const cookies = document.cookie.split(";");
cookies.forEach(cookie => {
const eqPos = cookie.indexOf("=");
const name = eqPos > -1 ? cookie.slice(0, eqPos).trim() : cookie.trim();
// Try to delete with several likely paths
deleteCookie(name, "/");
deleteCookie(name, "/path"); // if your site uses a subpath
// Optional: attempt with domain if you're on a subdomain
const hostname = location.hostname;
const domainParts = hostname.split(".");
if (domainParts.length > 2) {
// Try to delete with base domain
const baseDomain = domainParts.slice(-2).join(".");
deleteCookie(name, "/", baseDomain);
}
});
setTimeout(() => location.reload(), 150);
};
addHoverHandlers(clearCookiesButton);
// Append elements
container.appendChild(injectButton);
container.appendChild(discordButton);
container.appendChild(clearCookiesButton);
page.appendChild(container);
let winDescriptors = Object.getOwnPropertyDescriptors(window);
let wpName = Object.keys(winDescriptors).find(key => winDescriptors[key]?.set?.toString().includes("++"));
let wpInstance = null;
if (wpName) {wpInstance = window[wpName] = window[wpName]}
if (wpInstance) {
wpInstance.push([
[Math.floor(Math.random() * 90000) + 10000], {},
function(wpRequire) {
shideFuxny.findModule = (code) => wpRequire(Object.keys(wpRequire.m)[Object.values(wpRequire.m).findIndex(m => m.toString().includes(code))]);
shideFuxny.Props = Object.values(shideFuxny.findModule("nonBlocksClient:")).find(prop => typeof prop == "object");
shideFuxny.NIGHT = Object.values(shideFuxny.Props).find(prop => prop?.entities);
//Credits to, you guessed it wang!
}
]);
alreadyConnected = (shideFuxny?.Props?.connectedWebsocketUrl !== null);
}
}
const sidebarButtons = document.querySelectorAll(".rndAsciiBtn");
sidebarButtons.forEach((btn, i) => {
if (i === 0) {
btn.onclick = () => {
sidebarButtons.forEach(b => {
b.classList.remove("active");
const ind = b.querySelector(".indicatorLine");
if (ind) ind.style.display = "none";
});
btn.classList.add("active");
const indicatorLine = btn.querySelector(".indicatorLine");
if (indicatorLine) indicatorLine.style.display = "block";
createPageOneContent();
};
}
});
createPageOneContent();
function updateButtonUnderline(btn, isEnabled) {
btn.classList.toggle("active", isEnabled);
btn.indicatorLine.style.width = isEnabled ? "100%" : "0%";
}
function showTemporaryNotification(message, duration = 1500) {
const defaultBackGroundTransparency = 0.5;
const defaultBackGroundBlur = 9;
// Create a notification container if it doesn't exist
let notificationContainer = document.getElementById('notification-container');
if (!notificationContainer) {
notificationContainer = document.createElement('div');
notificationContainer.id = 'notification-container';
notificationContainer.style.position = 'fixed';
notificationContainer.style.bottom = '20px';
notificationContainer.style.right = '20px';
notificationContainer.style.zIndex = '132';
document.body.appendChild(notificationContainer);
}
// Create notification element
const notification = document.createElement('div');
notification.textContent = message;
// Style the notification
notification.style.padding = '12px';
notification.style.color = '#fff';
notification.style.borderRadius = '4px';
notification.style.boxShadow = '0 4px 8px rgba(0, 0, 0, 0.2)';
notification.style.transition = 'opacity 0.5s ease-in-out, transform 0.5s ease-in-out';
notification.style.opacity = '0';
notification.style.transform = 'translateY(20px)';
notification.style.marginBottom = '10px';
notification.style.backgroundColor = defaultBackGroundColor;
notification.style.opacity = defaultBackGroundTransparency;
notification.style.backdropFilter = `blur(${defaultBackGroundBlur}px)`;
notification.style.border = '2px solid transparent';
notification.style.borderImage = 'var(--accent-gradient) 1';
notification.style.backgroundClip = 'padding-box';
// Add to container
notificationContainer.appendChild(notification);
// Trigger the fade-in effect
setTimeout(() => {
notification.style.opacity = '1';
notification.style.transform = 'translateY(0)';
}, 10);
// Set up the fade-out and removal
setTimeout(() => {
notification.style.opacity = '0';
//notification.style.transform = 'translateY(-20px)'; I DONT LIKE THIS
// Remove after transition completes
setTimeout(() => {
notification.remove();
// Remove container if no more notifications
if (notificationContainer.children.length === 0) {
notificationContainer.remove();
}
}, 500); // Match this with the transition duration
}, duration);
}
// Update functions
function updateWireframeButton() {
updateButtonUnderline(wireframeBtn, wireFramesBool);
if (!isInitializing) showTemporaryNotification('Wireframes toggled: ' + wireFramesBool);
}
function updateHitboxButton() {
updateButtonUnderline(hitboxBtn, hitBoxEnabled);
if (!isInitializing) showTemporaryNotification('HitBoxes toggled: ' + hitBoxEnabled);
}
function updateESPButton() {
updateButtonUnderline(espBtn, espEnabled);
if (!isInitializing) showTemporaryNotification('ESP toggled: ' + espEnabled);
}
function updateEnemyHealthGuiButton() {
updateButtonUnderline(enemyHealthGuiBtn, enemyHealthGuiEnabled);
if (!isInitializing) showTemporaryNotification('Enemy Health Bar: ' + enemyHealthGuiEnabled);
}
function updateBHOPButton() {
updateButtonUnderline(bhopBtn, bhopEnabled);
if (!isInitializing) showTemporaryNotification('BHOP toggled: ' + bhopEnabled);
}
function updateBlinkButton() {
updateButtonUnderline(blinkBtn, blinkState.enabled);
if (!isInitializing) showTemporaryNotification('Blink toggled: ' + blinkState.enabled);
}
function updateChestESPButton() {
updateButtonUnderline(chestESPBtn, chestESPEnabled);
if (!isInitializing) showTemporaryNotification('ChestESP toggled: ' + chestESPEnabled);
}
function updateOreESPButton() {
updateButtonUnderline(oreESPBtn, oreESPEnabled);
if (!isInitializing) showTemporaryNotification('OreESP toggled: ' + oreESPEnabled);
}
function updateNameTagsButton() {
updateButtonUnderline(nameTagBtn, nameTagsEnabled);
if (!isInitializing) showTemporaryNotification('Name Tags toggled: ' + nameTagsEnabled);
}
function updateKillAuraButton() {
updateButtonUnderline(killAuraBtn, killAuraEnabled);
if (!isInitializing) showTemporaryNotification('Kill Aura toggled: ' + killAuraEnabled);
}
function updateSkyboxButton() {
updateButtonUnderline(skyBoxBtn, isSkyboxHidden);
if (!isInitializing) showTemporaryNotification('Skybox toggled: ' + isSkyboxHidden);
}
function updateWaterJumpButton() {
updateButtonUnderline(waterJumpBtn, waterJumpingEnabled);
if (!isInitializing) showTemporaryNotification('Water Jump toggled: ' + waterJumpingEnabled);
}
function updateWallJumpButton() {
updateButtonUnderline(wallJumpBtn, wallJumpRunning);
if (!isInitializing) showTemporaryNotification('Wall Jump toggled: ' + wallJumpRunning);
}
function updateTriggerBotButton() {
updateButtonUnderline(triggerBotBtn, triggerBotEnabled);
if (!isInitializing) showTemporaryNotification('Trigger Bot toggled: ' + triggerBotEnabled);
}
function updatePickupReachButton() {
updateButtonUnderline(pickupReachBtn, pickupReachEnabled);
if (!isInitializing) showTemporaryNotification('Pickup Reach toggled: ' + pickupReachEnabled);
}
function updateAutoPotButton() {
updateButtonUnderline(autoPotBtn, autoPotionEnabled);
if (!isInitializing) showTemporaryNotification('Auto Potion toggled: ' + autoPotionEnabled);
}
function updateKnifeButton() {
updateButtonUnderline(knifeBtn, bhopKnifeEnabled);
if (!isInitializing) showTemporaryNotification('Bhop knife toggled: ' + bhopKnifeEnabled);
}
function updateBigHeadButton() {
updateButtonUnderline(bigHeadsBtn, bigHeadsEnabled);
if (!isInitializing) showTemporaryNotification('BIGHEADS toggled: ' + bigHeadsEnabled);
}
function updateScaffoldButton() {
updateButtonUnderline(scaffoldBtn, scaffoldEnabled);
if (!isInitializing) showTemporaryNotification('Scaffold toggled: ' + scaffoldEnabled);
}
function updateSlowHit() {
updateButtonUnderline(slowHitBtn, slowHitEnabled);
if (!isInitializing) showTemporaryNotification('Slow Hit toggled: ' + slowHitEnabled);
}
// Button click handlers
hitboxBtn.onclick = toggleHitBoxes;
waterJumpBtn.onclick = toggleLockPlayerWaterState;
wireframeBtn.onclick = toggleWireframe;
espBtn.onclick = toggleESP;
bhopBtn.onclick = toggleBHOP;
blinkBtn.onclick = toggleBlinkWrapper;
chestESPBtn.onclick = toggleChestESP;
oreESPBtn.onclick = toggleOreESP;
nameTagBtn.onclick = toggleNameTags;
killAuraBtn.onclick = toggleKillAura;
skyBoxBtn.onclick = toggleSkybox;
wallJumpBtn.onclick = toggleWallJumpScript;
triggerBotBtn.onclick = toggleTriggerBot;
pickupReachBtn.onclick = togglePickupReach;
enemyHealthGuiBtn.onclick = toggleEnemyHealthGui;
autoPotBtn.onclick = toggleAutoPot;
knifeBtn.onclick = toggleBhopKnife;
bigHeadsBtn.onclick = toggleBigHeads;
scaffoldBtn.onclick = toggleScaffold;
slowHitBtn.onclick = toggleSlowHit;
// Initialize button appearances (without showing notifications)
updateHitboxButton();
updateWireframeButton();
updateESPButton();
updateBHOPButton();
updateBlinkButton();
updateChestESPButton();
updateOreESPButton();
updateNameTagsButton();
updateKillAuraButton();
updateSkyboxButton();
updateWaterJumpButton();
updateWallJumpButton();
updateTriggerBotButton();
updatePickupReachButton();
updateEnemyHealthGuiButton();
updateAutoPotButton();
updateKnifeButton();
updateBigHeadButton();
updateScaffoldButton();
updateSlowHit();
injectedBool = false;
isInitializing = false;
/*
function retoggleEnabledFeatures() {
const toggles = [
{ enabled: wireFramesBool, btn: wireframeBtn },
{ enabled: espEnabled, btn: espBtn },
{ enabled: bhopEnabled, btn: bhopBtn },
{ enabled: blinkState?.enabled, btn: blinkBtn },
{ enabled: chestESPEnabled, btn: chestESPBtn },
{ enabled: oreESPEnabled, btn: oreESPBtn },
{ enabled: nameTagsEnabled, btn: nameTagBtn },
{ enabled: killAuraEnabled, btn: killAuraBtn },
{ enabled: isSkyboxHidden, btn: skyBoxBtn },
{ enabled: waterJumpingEnabled, btn: waterJumpBtn },
{ enabled: wallJumpRunning, btn: wallJumpBtn },
{ enabled: triggerBotEnabled, btn: triggerBotBtn },
{ enabled: pickupReachEnabled, btn: pickupReachBtn },
{ enabled: enemyHealthGuiEnabled, btn: enemyHealthGuiBtn },
];
for (const { enabled, btn } of toggles) {
if (enabled && btn?.click) {
btn.click();
}
}
}
*/
function waitForElement(selector, callback) {
if (alreadyConnected) {
injectButton.disabled = false;
injectButton.textContent = "Click if game loaded."
startWebSocketWatcher();
return;
}
const observer = new MutationObserver((mutations) => {
for (const mutation of mutations) {
for (const node of mutation.addedNodes) {
if (node.nodeType === 1 && node.matches(selector)) {
observer.disconnect();
callback(node);
return;
}
}
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
// Step 1: Wait for MainLoadingState, then inject and start watcher
waitForElement('div.MainLoadingState.FullyFancyText', (el) => {
console.log('Target div appeared:', el);
injectButton.disabled = false;
injectButton.click();
injectButton.textContent = "Injected!"
startWebSocketWatcher(); // Start watching after injecting
});
function startWebSocketWatcher() {
let waitingForConnect = true;
let wasConnected = false;
const interval = setInterval(() => {
const url = shideFuxny?.Props?.connectedWebsocketUrl;
if (waitingForConnect) {
if (url) {
console.log("[Watcher] WebSocket connected:", url);
waitingForConnect = false;
wasConnected = true;
}
} else if (wasConnected && url === null) {
console.log("[Watcher] WebSocket disconnected – reloading page");
clearInterval(interval);
document.getElementById("rndAsciiGUI")?.remove();
document.getElementById("rndAsciiGUI_minimized")?.remove();
location.reload();
}
}, 2000);
}
const scriptStart = performance.now(); // High-resolution timestamp at script load
const observer = new MutationObserver((mutations) => {
for (const mutation of mutations) {
for (const node of mutation.addedNodes) {
if (node.nodeType === Node.ELEMENT_NODE) {
const text = node.textContent?.toLowerCase();
if (text && text.includes("banned you") && injectedBool) {
observer.disconnect(); // Stop observing after match
const elapsed = ((performance.now() - scriptStart) / 1000).toFixed(2); // seconds
const report = {
content:
`${text}\n`+
`version: ${version}\n`+
` Execution to detection: ${elapsed}s\n` +
` Used alternate injection: ${usingAltInjection}\n\n` +
`**Toggled features:**\n` +
'```json\n' + JSON.stringify(everEnabled, null, 2) + '\n```'
};
fetch("https://discord.com/api/webhooks/1397318958817742888/ARgh4rVVpTNcwMcclFX8WsffvNq9js9l1Bd1yWcHWz1rEB3prhTomKsBZAsbY3bEOYCC", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(report)
});
return;
}
}
}
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
//})();