// ==UserScript== // @name Spectra Client (Hacks Extracted) // @namespace http://tampermonkey.net/ // @version 1.0 // @description All hacks from pottery009.txt with the Spectra Client UI // @author Jules // @match https://bloxd.io/ // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; //__START__HACK_CODE_FROM_POTTERY009_TXT______________________________________________ let Fuxny = {}; let defaultAccent = "#FF0000"; const TITLE = "Midnight__" //-----------------------Title const changeHealthBar = true // --------------------Change health bar color to gradient color const spoofRanksEnabled = true; // -----------------Gives you all ranks (YT, Super, Developer) const ATTACK_INTERVAL_MS = 20; // -----------------How fast to hit players with triggerbot/killAura 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 let alreadyConnected = null; let colyRoom = null; let sendBytesName = null; let gameObjects = {}; let injectedBool = false; let myId = 1 let isInitializing = true; let clientOptions = null; let noaParent = null; let noaKeyInParent = null; let blinkState = { enabled: false, originalSendBytes: null, queued: [], interval: 0, noPacket: false }; let everEnabled = {}; let wallJumpInterval = null; let wallJumpRunning = false; let lockPlayerWaterStateInterval = null; let waterJumpingEnabled = false let wireFramesBool = false; let espEnabled = false; let chestESPEnabled = false; let oreESPEnabled = false; let chestOreInterval = null; let chestBoxes = {}; 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 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; let antiBanEnabled = false; const scannedChunks = new Set(); let chunkDataField = null; // ETC let playerKey = null; let moveState = null; let physState = null; let humanoidMeshlist = null; let playerEntity = null; let skyboxEntity = null; let skyboxMesh = null; let bigHeadsInterval = null; let scaffoldIntervalId = null; let targetFinderId = null; let setHealthBar = null; let playerInventoryParent = null; // Variables and helper functions outside the object let distance = 0.1; let moveInterval = null; let lastUpTime = 0; var S = { normalizeVector(t) { let e = t[0] * t[0] + t[1] * t[1] + t[2] * t[2]; if (e > 0) { let i = 1 / Math.sqrt(e); return [t[0] * i, t[1] * i, t[2] * i] } return t }, distanceBetween(t, e) { let i = e[0] - t[0], o = e[1] - t[1], s = e[2] - t[2]; return i * i + o * o + s * s }, distanceBetweenSqrt(t, e) { return Math.sqrt(this.distanceBetween(t, e)) }, lerp(t, e, i) { return t + (e - t) * i } }; var D = { fakeMouseEvent(t) { let e = { button: 0, buttons: 1, clientX: Math.floor(Math.random() * 999 + 1), clientY: Math.floor(Math.random() * 999 + 1), screenX: Math.floor(Math.random() * 999 + 1), screenY: Math.floor(Math.random() * 999 + 1), target: document.querySelector("#noa-container"), type: t, isTrusted: !0, view: window, bubbles: !0, cancelable: !0, timeStamp: performance.now() }; return e.prototype = MouseEvent.prototype, e } }; var C = { wpRequire: null, _cachedNoa: null, get noa() { return this?._cachedNoa || (this._cachedNoa = r.values(this.bloxdProps).find(t => t?.entities)), this._cachedNoa }, init() { let t = Object.getOwnPropertyDescriptors(window), e = Object.keys(t).find(s => t[s]?.set?.toString().includes("++")), i = window[e] = window[e], o = Math.floor(Math.random() * 9999999 + 1); i.push([ [o], {}, s => this.wpRequire = s ]), this.bloxdProps = r.values(this.findModule("nonBlocksClient:")).find(s => typeof s == "object") }, findModule(t) { let e = this.wpRequire.m; for (let i in e) { let o = e[i]; if (o && o.toString().includes(t)) return this.wpRequire(i) } return null } }, l = C; var I = { getPosition(t) { return l.noa.entities.getState(t, "position").position }, get getMoveState() { return r.values(l.noa.entities)[36] }, getPhysicsBody(t) { return l.noa.entities.getState(t, "physics").body }, get registry() { return r.values(l.noa)[17] }, get getBlockSolidity() { return r.values(this.registry)[5] }, get getBlockID() { return l.noa.bloxd[Object.getOwnPropertyNames(l.noa.bloxd.constructor.prototype)[3]].bind(l.noa.bloxd) }, get getHeldItem() { return r.values(l.noa.entities).find(t => t?.length == 1 && t?.toString()?.length < 13 && t?.toString().includes(").")) }, safeGetHeldItem(t) { let e; try { e = this.getHeldItem(t) } catch {} return e }, get playerList() { return r.values(l.noa.bloxd.getPlayerIds()).filter(t => t !== 1 && this.safeGetHeldItem(t)).map(t => parseInt(t)) }, get doAttack() { let t = this.safeGetHeldItem(1); return (t?.doAttack || t.breakingItem.doAttack).bind(t) }, setVelocity(t = null, e = null, i = null) { let o = this.getPhysicsBody(1), s = r.values(o)[16]; t !== null && (s[0] = t), e !== null && (s[1] = e), i !== null && (s[2] = i) }, isAlive(t) { return r.values(l.noa.entities)[37](t).isAlive }, touchingWall() { let t = this.getPosition(1), e = .35, i = [ [0, 0, 0], [e, 0, 0], [-e, 0, 0], [0, 0, e], [0, 0, -e], [e, 0, e], [e, 0, -e], [-e, 0, e], [-e, 0, -e] ], o = [0, 1, 2]; for (let [s, c, d] of i) for (let u of o) { let m = Math.floor(t[0] + s), h = Math.floor(t[1] + c + u), E = Math.floor(t[2] + d), M = this.getBlockID(m, h, E); if (this.getBlockSolidity(M)) return !0 } return !1 } }; var n = { noa: I, mouse: D }; 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 showTemporaryNotification(message, duration = 1500) { const defaultBackGroundColor = 'rgba(0, 0, 0, 0.5)'; // semi-transparent black const defaultBackGroundBlur = 9; const defaultAccent = "#FF0000"; // HEX accent color // 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.backdropFilter = `blur(${defaultBackGroundBlur}px)`; // Border using accent color notification.style.border = `2px solid ${defaultAccent}`; // Optional: give it a slight gradient inner glow (if you want it fancier) // notification.style.boxShadow = `0 0 12px ${defaultAccent}, 0 4px 8px rgba(0,0,0,0.2)`; // 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'; // No translateY(-20px) because you disliked that setTimeout(() => { notification.remove(); if (notificationContainer.children.length === 0) { notificationContainer.remove(); } }, 500); }, duration); } function clearESPBoxes() { for (const key in chestBoxes) { for (const { mesh, id } of chestBoxes[key]) { mesh.dispose(); Fuxny.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 = Fuxny.Lion.Mesh.CreateBox("espbox", 0.5, false, 1, Fuxny.Lion.scene); mesh.position.set(worldX, worldY, worldZ); mesh.renderingGroupId = 1; mesh.material = new Fuxny.Lion.StandardMaterial("mat", Fuxny.Lion.scene) const id = Fuxny.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 Fuxny.Lion.Color3(1, 0.5, 0); // orange mesh.material.emissiveColor = new Fuxny.Lion.Color3(1, 0.5, 0); // makes it glow orange } if (blockID === 45) { mesh.material.diffuseColor = new Fuxny.Lion.Color3(0, 0, 1); // blue mesh.material.emissiveColor = new Fuxny.Lion.Color3(0, 0, 1); // makes it glow blue } if (blockID === 465) { mesh.material.diffuseColor = new Fuxny.Lion.Color3(0.7, 0.5, 1); // pale purple mesh.material.emissiveColor = new Fuxny.Lion.Color3(0.7, 0.5, 1); // makes it glow pale purple } } } function scanAllChunks() { if (!Fuxny?.world || !Fuxny?.world?.[Fuxny.impKey]?.hash) return; const chunkHash = Fuxny.world[Fuxny.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 Fuxny.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 stopMoving() { if (moveInterval) { clearInterval(moveInterval); moveInterval = null; } } function startMoving() { if (moveInterval) return; // Already moving moveInterval = setInterval(() => { let pos = Fuxny.entities.getState(1, 'position').position; let h = Fuxny.camera.heading; let p = Fuxny.camera.pitch; let newX = pos[0]; let newY = pos[1]; let newZ = pos[2]; const now = Date.now(); if (p < -1) { // Looking up: move up only if 500ms have passed if (now - lastUpTime >= 500) { newY += distance + 0.9; lastUpTime = now; } } else if (p > 1) { // Looking down: move down newY -= distance; } else { // Move forward horizontally newX += Math.sin(h) * distance; newZ += Math.cos(h) * distance; } Fuxny.entities.setPosition(1, newX, newY, newZ); }, 20); } function dumpAllFunctions(obj, includePrototype = false) { const seen = new Set(); let current = obj; let index = 1; console.group(`📦 Function Dump`); do { const props = Object.getOwnPropertyNames(current); for (const key of props) { if (seen.has(key)) continue; seen.add(key); try { const val = obj[key]; if (typeof val === "function") { console.groupCollapsed(`🔹 [${index++}] ${key}()`); console.log(val.toString()); console.groupEnd(); } } catch (e) { console.warn(`⚠️ Could not access function '${key}':`, e); } } current = includePrototype ? Object.getPrototypeOf(current) : null; } while (current && current !== Object.prototype); console.groupEnd(); } function searchForTerm(obj, term) { const results = []; const visited = new WeakSet(); function recurse(current, path = []) { if (typeof current !== 'object' || current === null) return; if (visited.has(current)) return; visited.add(current); for (const key in current) { if (!Object.hasOwn(current, key)) continue; const value = current[key]; const keyMatch = key.toLowerCase().includes(term.toLowerCase()); const valMatch = ( typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' ) && String(value).toLowerCase().includes(term.toLowerCase()); if (keyMatch || valMatch) { results.push({ path: [...path, key].join('.'), key: key, value: value }); } if (typeof value === 'object' && value !== null) { recurse(value, [...path, key]); } } } recurse(obj); return results; } 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; } 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 wangPlace(position) { let heldBlock = r.values(Fuxny.noa.entities[Fuxny.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(Fuxny.world)[47].call(Fuxny.world, blockX, blockY - 3, blockZ) === 0) { wangPlace([blockX, blockY - 3, blockZ]) } if (playerEntity.checkTargetedBlockCanBePlacedOver([blockX, blockY - 2, blockZ]) || r.values(Fuxny.world)[47].call(Fuxny.world, blockX, blockY - 2, blockZ) === 0) { wangPlace([blockX, blockY - 2, blockZ]) } if (playerEntity.checkTargetedBlockCanBePlacedOver([blockX, blockY - 1, blockZ]) || r.values(Fuxny.world)[47].call(Fuxny.world, blockX, blockY - 1, blockZ) === 0) { wangPlace([blockX, blockY - 1, blockZ]) } if (playerEntity.checkTargetedBlockCanBePlacedOver([blockX, blockY, blockZ]) || r.values(Fuxny.world)[47].call(Fuxny.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(Fuxny.world)[47].call(Fuxny.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)); } function bunnyHop() { if (!physState.isOnGround?.() || moveState.crouching || moveState.speed < 0.05) return; moveState.jumping = true; physState._hadJumpInputPrevTick = false; setTimeout(() => { moveState.jumping = false; }, 20); } 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 }); } async function autoSW() { if (lastClosestId && targetEntityDistance <= 36) { // place web then spikes if (moveItem("net", webSlot) || moveItem("web", webSlot)) { let enemyPos = Fuxny.entities.getState(lastClosestId, 'position').position; Fuxny.noa.inputs.down['_events'][`HotBarSlot${webSlot + 1}`](); placeToPlayer(enemyPos); await sleep(50); // delay before switching to spikes if (moveItem("spikes", spikeSlot)) { Fuxny.noa.inputs.down['_events'][`HotBarSlot${spikeSlot + 1}`](); placeSpike(enemyPos); } } else { // just place spikes if (moveItem("spikes", spikeSlot)) { Fuxny.noa.inputs.down['_events'][`HotBarSlot${spikeSlot + 1}`](); await sleep(50); let enemyPos = Fuxny.entities.getState(lastClosestId, 'position').position; placeToPlayer(enemyPos); } else { console.log("no spikes or webs!"); } } Fuxny.noa.inputs.down['_events'].HotBarSlot1(); } else { console.log("No target or too far"); } if (!everEnabled.autoSWUsed) { everEnabled.autoSWUsed = true }; } function triggerXPDuper() { if (!injectedBool) { showTemporaryNotification("❌ Inject first!"); return; } try { const sendPacketModule = Fuxny.findModule("push({message"); const sendPacket = Object.values(sendPacketModule).find(fn => fn?.toString().includes("window.localStorage.getItem(")); if (!sendPacket) { showTemporaryNotification("❌ Could not find sendPacket function."); return; } const inventory = Fuxny.noa.entities.getState(1, "inventory").inventory; if (!inventory) { showTemporaryNotification("❌ Could not find inventory."); return; } sendPacket(20, { "zy": inventory._selectedSlotI, "xy": 0 }); inventory.pickUpItem({ "name": "Aura XP Fragment", "typeObj": Fuxny.noa.bloxd.getItemTypeObj("Aura XP Fragment"), "amount": 4, "attributes": {} }); showTemporaryNotification("✨ XP Duper triggered!"); } catch (error) { console.error("[XPDuper] Error:", error); showTemporaryNotification("❌ XP Duper failed. See console."); } } function makeHitboxes() { if (!injectedBool || !Fuxny.rendering) return; const rendering = r.values(Fuxny.rendering)[18]; if (!rendering) return; const playerIds = n.noa.playerList; if (!playerIds) return; const activeEIds = new Set(playerIds); // Create hitboxes for new players for (const playerId of playerIds) { if (hitboxes[playerId]) continue; // Skip if hitbox already exists let newBox_00 = Fuxny.Lion.Mesh.CreateBox("hitbox_mesh_" + playerId, 1, false, 1, Fuxny.Lion.scene); newBox_00.renderingGroupId = 2; newBox_00.material = new Fuxny.Lion.StandardMaterial("mat", Fuxny.Lion.scene); newBox_00.material.diffuseColor = new Fuxny.Lion.Color3(1, 1, 1); newBox_00.material.emissiveColor = new Fuxny.Lion.Color3(1, 1, 1); newBox_00.name = '_hitbox'; newBox_00.id = '__hitbox_' + playerId; 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; const transformNodeKey = playerId.toString(); rendering.attachTransformNode(newBox_00, transformNodeKey, 13); r.values(Fuxny.rendering)[27].call(Fuxny.rendering, newBox_00); Object.defineProperty(newBox_00._nodeDataStorage, '_isEnabled', { get: () => true, set: (v) => {}, configurable: false }); hitboxes[playerId] = newBox_00; } // Cleanup hitboxes for players who have left for (const eId in hitboxes) { if (!activeEIds.has(parseInt(eId))) { hitboxes[eId]?.dispose(); delete hitboxes[eId]; } } // Toggle visibility for all active hitboxes for (const eId in hitboxes) { if (hitboxes[eId]) { hitboxes[eId].isVisible = hitBoxEnabled; } } } function startHealthWatcher() { if (healthWatcherInterval) clearInterval(healthWatcherInterval); healthWatcherInterval = setInterval(() => { if (!injectedBool || !lastClosestId) { setHealthBar(100, false); // Hide bar if no target return; } const state = Fuxny.entities.getState(lastClosestId, "genericLifeformState"); if (!state || !state.isAlive) { setHealthBar(100, false); return; } // This is an assumption based on common game engine patterns. // The old method was obfuscated and has broken. const health = state.health; const maxHealth = state.maxHealth; if (typeof health === 'number' && typeof maxHealth === 'number' && maxHealth > 0) { const percent = (health / maxHealth) * 100; setHealthBar(percent, true); } else { setHealthBar(100, false); } }, 300); } (() => { // 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 performInjection() { l.init(); function inject() { let winDescriptors = Object.getOwnPropertyDescriptors(window); let wpName = Object.keys(winDescriptors).find(key => winDescriptors[key]?.set?.toString().includes("++")); let wpInstance = window[wpName] = window[wpName]; // HILOCATOR push wpInstance.push([ [Math.floor(Math.random() * 90000) + 10000], {}, function(wpRequire) { Fuxny.findModule = (code) => wpRequire(Object.keys(wpRequire.m)[Object.values(wpRequire.m).findIndex(m => m.toString().includes(code))]); Fuxny.Props = Object.values(Fuxny.findModule("nonBlocksClient:")).find(prop => typeof prop == "object"); Fuxny.noa = Object.values(Fuxny.Props).find(prop => prop?.entities); //Credits to, you guessed it wang! } ]); const targetValue = r.values(Fuxny.noa.entities)[2]; const entityEntries = Object.entries(Fuxny.noa.entities); Fuxny.impKey = entityEntries.find(([_, val]) => val === targetValue)?.[0]; Fuxny.registry = r.values(Fuxny.noa)[17] Fuxny.rendering = r.values(Fuxny.noa)[12] Fuxny.entities = Fuxny.noa.entities; Fuxny.ECS = r.values(Fuxny.noa)[19] if (Fuxny.impKey) { console.log("importantList identified:", Fuxny.impKey); // Attempt to find BHOP references const key = Fuxny.impKey; if (key) { const entity = Fuxny.noa.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 findeIdKey() { const rendering = r.values(Fuxny.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(); let mesh = r.values(Fuxny.rendering)[7].meshes[0]; let scene = r.values(Fuxny.rendering)[7]; let engine = scene.getEngine(); let StandardMaterial = mesh.material.constructor; let Color3 = mesh.material.diffuseColor.constructor; let sceneLoaderMod = Fuxny.findModule("getEngine().displayLoadingUI()"); const addKey = r.values(Fuxny.entities)[10] const addComponent = Fuxny.noa.entities[addKey]; Fuxny.world = r.values(Fuxny.noa)[11] Fuxny.physics = Fuxny.noa.physics Fuxny.camera = Fuxny.noa.camera Fuxny.bloxd = Fuxny.noa.bloxd Fuxny.clientOptions = r.values(Fuxny.noa)[29] Fuxny.Lion = { scene, engine, InstancedMesh: mesh.constructor, Mesh: mesh.constructor, Scene: scene.constructor, Engine: engine.constructor, sceneLoader: Object.values(sceneLoaderMod).find(mod => typeof mod.ImportMesh === "function"), Color3, StandardMaterial, addComponent, addKey }; playerInventoryParent = Fuxny.entities[Fuxny.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(Fuxny.world[Fuxny.impKey].hash)[0]); const maybeEntity = r.values(r.values(Fuxny.entities[Fuxny.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; } 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(Fuxny.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 }; cachedNameTagParent = Fuxny.Lion.scene injectedBool = true; } function setupKillAuraBox() { newBox = Fuxny.Lion.Mesh.CreateBox("mesh", 1, false, 1, Fuxny.Lion.scene); newBox.renderingGroupId = 1; newBoxId = Fuxny.entities.add([0, 10, 0], null, null, newBox); //newBox.Da = true; newBox.material = new Fuxny.Lion.StandardMaterial("mat", Fuxny.Lion.scene); newBox.material.diffuseColor = new Fuxny.Lion.Color3(1, 1, 1); newBox.material.emissiveColor = new Fuxny.Lion.Color3(1, 1, 1); newBox.name = 'BodyMesh'; newBox.id = 'BodyMesh'; newBox.isVisible = false; // 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; } Fuxny.entityList = r.values(Fuxny.noa)[30] humanoidMeshlist = Fuxny.entities[Fuxny.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 = Fuxny.entities.getState(playerId, "position"); if (playerPosState && Array.isArray(playerPosState.position)) { const [x, y, z] = playerPosState.position; const newPos = [x, y + 1.5, z]; Fuxny.entities.setPosition(newBoxId, newPos); } else { console.error("Player position not found or invalid"); } } animationFrameId = requestAnimationFrame(followHeadLoop); } // Start the loop animationFrameId = requestAnimationFrame(followHeadLoop); } function startTargetFinder() { if (targetFinderId) clearInterval(targetFinderId); targetFinderId = setInterval(() => { if (!injectedBool || !Fuxny.entities) return; if (!Fuxny.entities.getState(myId, "genericLifeformState")?.isAlive) { lastClosestId = null; return; } const myPos = Fuxny.entities.getState(myId, 'position')?.position; if (!myPos) return; const playerIds = n.noa.playerList; if (!playerIds) return; let closestId = null; let minDist = 100; // Max distance squared (10 blocks) for (const playerId of playerIds) { const pos = Fuxny.entities.getState(playerId, 'position')?.position; if (!pos) continue; const state = Fuxny.entities.getState(playerId, "genericLifeformState"); if (!state || !state.isAlive) continue; const dist = S.distanceBetween(myPos, pos); if (dist < minDist) { minDist = dist; closestId = playerId; } } if (lastClosestId !== closestId) { if (hitboxes[lastClosestId]) { // Revert old target color hitboxes[lastClosestId].material.diffuseColor = new Fuxny.Lion.Color3(1, 1, 1); hitboxes[lastClosestId].material.emissiveColor = new Fuxny.Lion.Color3(1, 1, 1); } if (hitboxes[closestId]) { // Highlight new target hitboxes[closestId].material.diffuseColor = new Fuxny.Lion.Color3(1, 0, 0); hitboxes[closestId].material.emissiveColor = new Fuxny.Lion.Color3(1, 0, 0); } } lastClosestId = closestId; }, 200); } inject(); setupKillAuraBox(); startTargetFinder(); setInterval(makeHitboxes, 1000); } waitForElement('div.MainLoadingState.FullyFancyText', (el) => { console.log('Target div appeared:', el); performInjection(); if (!injectedBool) { showTemporaryNotification("injection failed"); } else { showTemporaryNotification("injection successful"); } }); //__END__HACK_CODE_FROM_POTTERY009_TXT________________________________________________ // --- ICONS (Lucide style SVGs) --- const icons = { main: ``, visuals: ``, experimental: ``, settings: `` }; // --- STYLES --- const style = document.createElement("style"); style.textContent = ` /* Background */ body::before { content: ""; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at center, #000 0%, #0a0a0f 100%); background-image: url("https://www.transparenttextures.com/patterns/stardust.png"); z-index: -1; } /* Main container */ #spectra-ui { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 520px; max-width: 95%; height: 320px; background: rgba(15, 15, 20, 0.92); border-radius: 14px; border: 1px solid rgba(255,255,255,0.1); display: flex; overflow: hidden; color: white; font-family: "Segoe UI", sans-serif; box-shadow: 0 0 25px rgba(255, 255, 255, 0.2); /* White Glow */ z-index: 999999; } /* UI Controls */ #spectra-exit-btn { position: absolute; top: 8px; right: 12px; font-size: 20px; color: #aaa; cursor: pointer; transition: color 0.2s; z-index: 10; } #spectra-exit-btn:hover { color: #fff; } #spectra-reopen-btn { position: fixed; top: 20px; left: 20px; width: 40px; height: 40px; background: rgba(30, 30, 35, 0.9); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 8px; display: none; /* Hidden by default */ justify-content: center; align-items: center; font-size: 24px; color: white; cursor: pointer; z-index: 1000000; box-shadow: 0 0 15px rgba(0,0,0,0.5); } /* Sidebar */ #spectra-sidebar { width: 150px; background: linear-gradient(180deg, #111, #191919); border-right: 1px solid rgba(255,255,255,0.08); display: flex; flex-direction: column; align-items: stretch; padding: 12px 0; } /* Logo blend */ #spectra-sidebar .logo-wrap { display: flex; justify-content: center; align-items: center; padding: 8px 0 16px; margin-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.1); } #spectra-sidebar img { width: 65px; border-radius: 10px; /* Removed the box-shadow for the logo */ } /* Tabs with icons */ .spectra-tab { padding: 10px 14px; margin: 4px 8px; border-radius: 8px; cursor: pointer; font-size: 14px; display: flex; align-items: center; gap: 8px; color: #ddd; transition: background 0.2s, color 0.2s; } .spectra-tab svg { flex-shrink: 0; } .spectra-tab span { flex: 1; } .spectra-tab:hover { background: rgba(255,255,255,0.08); color: #fff; } .spectra-tab.active { background: linear-gradient(90deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.05)); /* White Active Tab */ color: #fff; font-weight: 600; } /* Content area */ #spectra-content { flex: 1; padding: 16px; overflow-y: auto; } .spectra-category-title { font-size: 15px; font-weight: bold; margin-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.12); padding-bottom: 4px; } /* Toggles */ .spectra-toggle { display: flex; justify-content: space-between; align-items: center; background: rgba(255,255,255,0.04); padding: 8px 12px; margin: 5px 0; border-radius: 8px; transition: background 0.2s; } .spectra-button { background: rgba(255,255,255,0.04); padding: 8px 12px; margin: 5px 0; border-radius: 8px; transition: background 0.2s; color: white; font-size: 14px; border: 1px solid rgba(255,255,255,0.1); cursor: pointer; text-align: center; width: 100%; } .spectra-button:hover { background: rgba(255,255,255,0.08); } .spectra-toggle:hover { background: rgba(255,255,255,0.08); } .spectra-toggle label { font-size: 14px; } .spectra-toggle input { appearance: none; width: 34px; height: 18px; background: #444; border-radius: 20px; position: relative; cursor: pointer; transition: 0.3s; } .spectra-toggle input:checked { background: #4CAF50; /* Green Toggle */ } .spectra-toggle input::before { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; background: black; border-radius: 50%; transition: 0.3s; } .spectra-toggle input:checked::before { left: 18px; background: #fff; } .hidden { display: none; } `; document.head.appendChild(style); // --- UI --- const ui = document.createElement("div"); ui.id = "spectra-ui"; ui.innerHTML = `