CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!
CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!
Path: blob/main/cheats/gui.js
Views: 1214
/**1* @license StewartPrivateLicense-2.0.12* Copyright (c) 05Konz 20233*4* You may not reproduce or distribute any code inside this file without the licenser's permission.5* You may not copy, modify, steal, skid, or recreate any of the code inside this file.6* You may not under any circumstance republish any code from this file as your own.7*8* ALL TERMS STATED IN THE LINK BELOW APPLY ASWELL9* https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE10*/1112/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */1314(() => {15const cheat = (async () => {16if (String(Function.prototype.call).includes('native')) {17let call = Function.prototype.call;18let iframe = document.createElement("iframe");19document.body.append(iframe);20iframe.style.display = "none";21let funcs = {22querySelectorAll: function () {23if (["#JODGUI", "#JODMOBILE", "#currPageEl", "#YTRkNmM2MWEtOTg3Zi00YmE1LWI1NzUtNTgyOTUzMWI4ZDYx", "#ODJkMThlMDEtYmEwNi00MzE4LTg4ZGMtM2Y2ZDI0MzY4ZjU2", ".cheatList", ".cheatName", "bG1mYW8=", "#aXQncyBjYXQgYW5kIG1vdXNlIGF0IHRoaXMgcG9pbnQ"].includes(arguments[0]))24return [];25return iframe.contentDocument.querySelectorAll.apply(document, arguments);26},27querySelector: iframe.contentDocument.querySelector.bind(document),28includes: function () {29if (["Cheats", "Global", "Global Cheats", "Discord - oneminesraft2", "Auto Answer (Toggle)", "Auto Sell Dupes On Open", "Spam Buy Blooks", "Food Game", "Change Blook Ingame", "Get Daily Rewards", "Remove Name Limit", "Simulate Unlock", "Cheat ESP", "Gold Quest Cheats", "Cafe Cheats", "Crypto Hack Cheats", "Deceptive Dinos Cheats", "Tower Defense Cheats", "Tower Defense2 Cheats", "Factory Cheats", "Fishing Frenzy Cheats", "Flappy Blook Cheats", "Tower of Doom Cheats", "Crazy Kingdom Cheats", "Racing Cheats", "Battle Royale Cheats", "Blook Rush Cheats", "Monster Brawl Cheats", "Santa's Workshop Cheats"].includes(arguments[0]))30return false;31return iframe.contentWindow.String.prototype.call(this, arguments);32},33fetch: iframe.contentWindow.fetch.bind(window),34btoa: iframe.contentWindow.btoa.bind(window),35getItem: iframe.contentWindow.localStorage.getItem.bind(window.localStorage)36}, funcNames = Object.keys(funcs);37Function.prototype.call = function () {38if (funcNames.includes(this.name)) return call.apply(funcs[this.name], arguments);39return call.apply(this, arguments)40}41; (new Image).src = "https://gui-logger.onrender.com/gui/1?" + Date.now();42}43function createElement(node, props = {}, ...children) {44const element = document.createElement(node);45if (typeof props.style == "object") {46let result = "";47for (const style in props.style) result += `${style.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}: ${props.style[style]}; `;48props.style = result;49}50for (const prop in props) element[prop] = props[prop];51for (const child of children) element.append(child);52return element;53}54let userData = await Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']]]).cache).find(x => x.exports.a?.me).exports.a.me({}) || {};55let settings, settingsKey = btoa(userData.name || "real"), guiId = btoa(userData.id || "lmfao").replaceAll(/(=|\/|\.)/g, "");56const Settings = {57data: null,58setItem(k, v) {59k.split('.').reduce((obj, k, i, a) => (++i == a.length && (obj[k] = v), obj[k]), this.data);60localStorage.setItem(settingsKey, JSON.stringify(this.data));61return this.data;62},63deleteItem(k) {64k.split('.').reduce((obj, k, i, a) => (++i == a.length && (delete obj[k]), obj[k]), this.data);65localStorage.setItem(settingsKey, JSON.stringify(this.data));66return this.data;67},68setData(v) {69this.data = v;70localStorage.setItem(settingsKey, JSON.stringify(this.data));71}72}73try {74Settings.data = JSON.parse(localStorage.getItem(settingsKey) || "{}");75for (const setting of ["backgroundColor", "cheatList", "contentBackground", "defaultButton", "disabledButton", "enabledButton", "infoColor", "inputColor", "textColor"]) if (Settings.data[setting]) {76Settings.setItem(`theme.${setting}`, Settings.data[setting]);77Settings.deleteItem(setting);78}79} catch {80Settings.setData({});81}82let variables, gui, cheatContainer, controls, controlButtons, dragButton, content, tooltip, cheats, headerText;83const guiWrapper = createElement("div", {84id: guiId, style: {85top: `${(Math.max(10, window.innerHeight - 600) / 2)}px`,86left: `${(Math.max(10, window.innerWidth - 1000) / 2)}px`,87transform: `scale(${Settings.data.scale})`,88position: "fixed", height: "80%", width: "80%", maxHeight: "600px", maxWidth: "1000px", zIndex: "999", display: "block",89}90},91(variables = createElement("style", {92id: "variables",93innerHTML: `:root {--backgroundColor: ${Settings.data?.theme?.backgroundColor || "rgb(11, 194, 207)"};--infoColor: ${Settings.data?.theme?.infoColor || "#9a49aa"};--cheatList: ${Settings.data?.theme?.cheatList || "#9a49aa"};--defaultButton: ${Settings.data?.theme?.defaultButton || "#9a49aa"};--disabledButton: ${Settings.data?.theme?.disabledButton || "#A02626"};--enabledButton: ${Settings.data?.theme?.enabledButton || "#47A547"};--textColor: ${Settings.data?.theme?.textColor || "white"};--inputColor: ${Settings.data?.theme?.inputColor || "#7a039d"};--contentBackground: ${Settings.data?.theme?.contentBackground || "rgb(64, 17, 95)"};}`94})),95createElement("style", {96innerHTML: `.alertList::-webkit-scrollbar{display:none;}.alertList{-ms-overflow-style: none;scrollbar-width: none;}.contentWrapper::-webkit-scrollbar{display:none;}.contentWrapper{-ms-overflow-style: none;scrollbar-width: none;}.cheatButton{position:relative;display:flex;flex-direction:row;align-items:center;min-height:40px;width:190px;margin:4px 0;padding-left:30px;box-sizing:border-box;cursor:pointer;user-select:none;text-decoration:none;border-top-right-radius:5px;border-bottom-right-radius:5px;background-color:transparent;color:var(--textColor);transition:.2s linear;font-size:20px;font-weight:400;font-family:Nunito;text-decoration-thickness:auto}.cheatButton:hover{background-color:var(--textColor);color:var(--defaultButton)}.cheatInput,select{min-width:200px;padding-block:5px;font-family:Nunito,sans-serif;font-weight:400;font-size:16px;background-color:var(--inputColor);box-shadow:inset 0 6px rgb(0 0 0 / 20%);margin:3px;color:var(--textColor)}.bigButton:hover{filter:brightness(110%);transform:translateY(-2px)}.bigButton:active{transform:translateY(2px)}.cheatList::-webkit-scrollbar{width:10px}.cheatList::-webkit-scrollbar-track{background:var(--cheatList)}.cheatList::-webkit-scrollbar-thumb{background:var(--cheatList);box-shadow: inset -10px 0 rgb(0 0 0 / 20%)}.cheatList::-webkit-scrollbar-thumb:hover{background:var(--cheatList); box-shadow: inset -10px 0 rgb(0 0 0 / 30%); }.scriptButton:hover{filter:brightness(120%)}.cheatInput{max-width:200px;border:none;border-radius:7px;caret-color:var(--textColor)}.cheatInput::placeholder{color:var(--textColor)}.cheatInput:focus,select:focus{outline:0}.cheatInput::-webkit-inner-spin-button,.cheatInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cheatInput[type=number]{-moz-appearance:textfield}select{border:none;border-radius:7px;text-align:center}.scriptButton{align-items: center; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; margin: 10px; padding: 5px 5px 11px; position: relative; width: 250px; font-family: Nunito, sans-serif; font-weight: 400; color: var(--textColor); box-shadow: inset 0 -6px rgb(0 0 0 / 20%); border-radius: 7px; cursor: pointer; transition: filter .25s;}.tooltip::after {content: "";position: absolute;width: 10px;height: 10px;background-color: inherit;top: -5px;left: 50%;margin-left: -6px;transform: rotate(135deg)}`97}),98(gui = createElement("div", {99style: {100width: "100%",101height: "100%",102position: "relative",103outline: "3px solid #3a3a3a",104borderRadius: "15px",105overflow: "hidden"106}107},108createElement("div", {109id: "background",110style: {111display: "block",112top: "0",113left: "0",114height: "100%",115overflowY: "hidden",116overflowX: "hidden",117position: "absolute",118width: "100%",119background: "var(--backgroundColor)",120visibility: "visible"121}122},123createElement("div", {124id: "backgroundImage",125style: {126backgroundImage: "url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)",127display: "block",128height: "200%",129position: "absolute",130width: "200%",131top: "50%",132left: "50%",133backgroundPositionX: "-100px",134backgroundPositionY: "-100px",135backgroundSize: "550px",136visibility: "visible",137transform: "translate(-50%,-50%) rotate(15deg)",138appearance: "none",139opacity: "0.175"140}141})),142(controls = createElement("div", {143id: "controls",144style: {145display: "flex",146alignItems: "center",147justifyContent: "center",148paddingBottom: "8px",149paddingInline: "15px",150position: "absolute",151left: "220px",152top: "0",153visibility: "visible",154zIndex: "5",155height: "52px",156width: "max-content",157background: "var(--infoColor)",158boxShadow: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",159borderBottomRightRadius: "10px",160color: "var(--textColor)",161fontFamily: "Nunito, sans-serif",162fontWeight: "700",163userSelect: "text"164},165innerText: (({ ctrl: ctrlHide, shift: shiftHide, alt: altHide, key: keyHide } = { ctrl: true, key: "e" }, { ctrl: ctrlClose, shift: shiftClose, alt: altClose, key: keyClose } = { ctrl: true, key: "x" }) => `${[ctrlHide && "Ctrl", shiftHide && "Shift", altHide && "Alt", keyHide && keyHide.toUpperCase()].filter(Boolean).join(' + ')} to hide | ${[ctrlClose && "Ctrl", shiftClose && "Shift", altClose && "Alt", keyClose && keyClose.toUpperCase()].filter(Boolean).join(' + ')} for quick disable\nClick and drag here`)(Settings.data.hide || { ctrl: true, key: "e" }, Settings.data.close || { ctrl: true, key: "x" }),166update: (({ ctrl: ctrlHide, shift: shiftHide, alt: altHide, key: keyHide } = { ctrl: true, key: "e" }, { ctrl: ctrlClose, shift: shiftClose, alt: altClose, key: keyClose } = { ctrl: true, key: "x" }) => controls.innerText = `${[ctrlHide && "Ctrl", shiftHide && "Shift", altHide && "Alt", keyHide && keyHide.toUpperCase()].filter(Boolean).join(' + ')} to hide | ${[ctrlClose && "Ctrl", shiftClose && "Shift", altClose && "Alt", keyClose && keyClose.toUpperCase()].filter(Boolean).join(' + ')} for quick disable\nClick and drag here`)167})),168createElement("div", {169id: "credits",170style: {171display: "flex",172alignItems: "center",173justifyContent: "center",174paddingBottom: "8px",175position: "absolute",176right: "0",177top: "0",178visibility: "visible",179zIndex: "5",180height: "47px",181width: "210px",182background: "var(--infoColor)",183boxShadow: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",184borderBottomLeftRadius: "10px",185color: "var(--textColor)",186fontFamily: "Nunito, sans-serif",187fontWeight: "700",188userSelect: "text"189},190innerHTML: "GitHub - 05Konz"191}),192(controlButtons = createElement("div", {193id: "controlButtons",194style: {195display: "flex",196alignItems: "center",197justifyContent: "center",198position: "absolute",199right: "0",200bottom: "0",201visibility: "visible",202zIndex: "5",203height: "55px",204width: "165px",205background: "#none",206borderLeft: "3px solid black",207borderTop: "3px solid black",208borderTopLeftRadius: "10px",209color: "white",210fontFamily: "Nunito, sans-serif",211fontWeight: "700",212userSelect: "text",213overflow: "hidden",214pointerEvents: "all"215}216},217(dragButton = createElement("button", {218style: {219height: "55px",220width: "55px",221fontFamily: "Nunito",222color: "white",223backgroundColor: "#00a0ff",224border: "none",225fontSize: "2rem",226cursor: "move"227},228innerHTML: "✥"229})),230createElement("button", {231style: {232height: "55px",233width: "55px",234fontFamily: "Nunito",235color: "white",236backgroundColor: "grey",237border: "none",238fontSize: "2rem",239fontWeight: "bolder",240cursor: "pointer"241},242innerHTML: "-",243onclick: (function () {244let hidden = false;245return () => {246for (let child of [...gui.children]) {247if (child == controlButtons) continue;248if (hidden) child.style.display = child.style._display;249else {250child.style._display = child.style.display;251child.style.display = "none";252}253};254gui.style.height = hidden ? "100%" : "55px";255gui.style.width = hidden ? "100%" : "165px";256guiWrapper.style.top = `${parseInt(guiWrapper.style.top) + (guiWrapper.offsetHeight - 55) * (hidden ? -1 : 1)}px`;257guiWrapper.style.left = `${parseInt(guiWrapper.style.left) + (guiWrapper.offsetWidth - 165) * (hidden ? -1 : 1)}px`;258guiWrapper.style.pointerEvents = hidden ? "unset" : "none";259hidden = !hidden;260};261})()262}),263createElement("button", {264style: {265height: "55px",266width: "55px",267fontFamily: "Nunito",268color: "white",269backgroundColor: "red",270border: "none",271fontSize: "2rem",272fontWeight: "bolder",273cursor: "pointer"274},275innerHTML: "X",276onclick: close277}))),278(cheatContainer = createElement("div", {279className: "cheatList",280style: {281overflowY: "scroll",282background: "var(--cheatList)",283boxShadow: "inset -10px 0 rgb(0 0 0 / 20%)",284zIndex: "5",285width: "220px",286position: "absolute",287top: "0",288left: "0",289height: "100%",290fontFamily: "Titan One",291color: "var(--textColor)",292fontSize: "40px",293textAlign: "center",294paddingTop: "20px",295userSelect: "none",296padding: "20px 10px 20px 0",297boxSizing: "border-box",298display: "flex",299flexDirection: "column"300},301innerHTML: "<span style=\"text-shadow: 1px 1px rgb(0 0 0 / 40%)\">Cheats</span>"302},303createElement("a", {304className: "bigButton",305style: {306cursor: "pointer",307display: "block",308fontFamily: "Titan One",309margin: "20px auto 10px",310position: "relative",311transition: ".25s",312textDecoration: "none",313userSelect: "none",314visibility: "visible"315},316target: "_blank",317href: "https://discord.gg/jHjGrrdXP6",318innerHTML: `<div style="background: rgba(0,0,0,.25); border-radius: 5px; display: block; width: 100%; height: 100%; left: 0; top: 0; position: absolute; transform: translateY(2px); width: 100%; transition: transform .6s cubic-bezier(.3,.7,.4,1)"></div>319<div style="background-color: rgb(11, 194, 207); filter: brightness(.7); position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 5px;"></div>320<div style="font-weight: 400; background-color: rgb(11, 194, 207); color: white; display: flex; flex-direction: row; align-items: center; justify-content: center; text-align: center; padding: 5px; border-radius: 5px; transform: translateY(-4px); transition: transform .6s cubic-bezier(.3,.7,.4,1)">321<div style="font-family: Titan One, sans-serif; color: white; font-size: 26px; text-shadow: 2px 2px rgb(0 0 0 / 20%); height: 40px; padding: 0 15px; display: flex; flex-direction: row; align-items: center; justify-content: center">322<svg style="filter: drop-shadow(2px 2px 0 rgb(0 0 0 / 20%))" xmlns="http://www.w3.org/2000/svg" width="35" height="35" fill="currentColor" viewBox="0 -1 21 16">323<path d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"/>324</svg>325Discord326</div>327</div>`328}))), createElement("div", {329className: "contentWrapper",330style: {331position: "absolute",332left: "220px",333top: "70px",334overflowY: "scroll",335width: "calc(100% - 220px)",336height: "calc(100% - 70px)",337borderRadius: "7px"338}339},340(content = createElement("div", {341id: "content",342style: {343position: "absolute",344inset: "27px 50px 50px 50px"345}346},347(tooltip = createElement("div", {348className: "tooltip",349style: {350position: "absolute",351top: "0",352left: "0",353backgroundColor: "black",354height: "fit-content",355maxWidth: "300px",356zIndex: "5",357borderRadius: "7.5px",358color: "white",359display: "flex",360justifyContent: "center",361alignItems: "center",362padding: "5px",363paddingInline: "15px",364pointerEvents: "none",365opacity: "0",366textAlign: "center"367},368innerText: "description"369})),370(cheats = createElement("div", {371style: {372alignItems: "center",373boxSizing: "border-box",374display: "flex",375flexDirection: "row",376flexWrap: "wrap",377justifyContent: "space-evenly",378padding: "20px 5px 20px",379position: "relative",380width: "100%",381fontFamily: "Nunito, sans-serif",382fontWeight: "400",383color: "var(--textColor)",384background: "var(--contentBackground)",385boxShadow: "inset 0 -6px rgb(0 0 0 / 20%)",386borderRadius: "7px"387}388},389(headerText = createElement("div", {390className: "headerText",391style: {392boxSizing: "border-box",393display: "block",394height: "45px",395left: "-10px",396padding: "4px 4px 8px",397position: "absolute",398top: "-28px",399backgroundColor: "#ef7426",400boxShadow: "0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)",401borderRadius: "7px"402}403},404createElement("div", {405style: {406alignItems: "center",407boxSizing: "border-box",408display: "flex",409height: "100%",410justifyContent: "center",411padding: "0 15px",412width: "100%",413fontFamily: "Titan One, sans-serif",414fontSize: "26px",415fontWeight: "400",416textShadow: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464",417color: "white",418background: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)",419borderRadius: "5px"420}421})422))423))424))425)426))427);428for (const oldGui of document.querySelectorAll("#" + guiId)) oldGui.remove();429430document.body.appendChild(guiWrapper);431432433function addMode(mode, img, cheats, nameOnly) {434const button = createElement("div", {435className: "cheatButton",436innerHTML: (typeof img == "string" ? `<img style="height: 30px; margin-right: 5px" src="${img}">` : img ? img : "") + mode,437onclick: () => setCheats(button.innerText, cheats, nameOnly)438});439cheatContainer.appendChild(button);440return button.onclick;441}442async function setCheats(mode, scripts, nameOnly) {443cheats.innerHTML = "";444headerText.firstChild.innerText = `${mode}${nameOnly ? "" : " Cheats"}`;445cheats.append(headerText);446447for (let i = 0; i < scripts.length; i++) {448let { name, description, type, inputs, enabled, run, element } = scripts[i];449if (!element) {450const button = createElement("div", {451className: "scriptButton",452style: { background: type == "toggle" ? enabled ? "var(--enabledButton)" : "var(--disabledButton)" : "var(--defaultButton)" }453}, createElement("div", {454className: "cheatName",455innerHTML: name456}));457button.dataset.description = description;458button.onclick = (function ({ target, key }) {459if (target != button && !target.classList.contains("cheatName") && !(key == "Enter" && target.classList.contains("cheatInput"))) return;460let args = [...button.children].slice(1);461run.apply(this, args.map(c => c.type == "number" ? parseInt("0" + c.value) : c.nodeName == "SELECT" ? JSON.parse(c.value) : (c.data || c.value)));462if (type == "toggle") button.style.background = this.enabled ? "var(--enabledButton)" : "var(--disabledButton)";463Cheats.alerts?.[0].addLog(`${type == "toggle" ? (this.enabled ? "Enabled" : "Disabled") : "Ran"} <strong>${this.name}</strong>${inputs?.length ? ` with inputs: (${args.map(c => c.nodeName == "SELECT" ? c.selectedOptions[0].innerText : c.value).join(", ")})` : ""}`, type == "toggle" ? (this.enabled ? "var(--enabledButton)" : "var(--disabledButton)") : null);464}).bind(scripts[i]);465if (inputs?.length) for (let i = 0; i < inputs.length; i++) {466const { name, type, options: opts, min, max, value } = inputs[i];467let options;468try { options = await (typeof opts == "function" ? opts?.() : opts) } catch { options = [] };469if (type == "options" && options?.length) {470const select = document.createElement("select");471options.forEach(opt => {472const option = document.createElement("option");473option.value = JSON.stringify(opt?.value || opt);474option.innerHTML = opt?.name || opt;475select.appendChild(option);476});477button.appendChild(select);478} else if (type == "function") {479const input = document.createElement("input");480input.classList.add("cheatInput");481input.placeholder = name;482input.style.textAlign = "center";483input.readOnly = true;484let locked = false;485input.onclick = async () => {486if (locked) return;487input.value = "Waiting for input...";488locked = true;489input.data = await inputs[i].function((e) => input.value = e + "...");490locked = false;491input.value = input.value.slice(0, -3);492}493button.appendChild(input);494} else {495const input = document.createElement("input");496input.classList.add("cheatInput");497if (type == "number") {498input.type = "number";499input.min = min;500input.max = max;501input.value = value || (min != null ? min : 0);502};503input.placeholder = name;504input.style.textAlign = "center";505input.onkeyup = button.onclick;506button.appendChild(input);507}508};509scripts[i].element = button;510}511cheats.appendChild(scripts[i].element);512};513/* scripts514{515name: "",516description: "",517type: (null | "toggle"),518inputs: type == null && [{519name: "",520type: ("number" | "string" | "options"),521options: type == "options" && [522{523name: "",524value: undefined525};526]527}],528enabled: type == "toggle" && Boolean,529run: function () {};530};531*/532}533const Cheats = {534global: [535{536name: "Auto Answer (Toggle)",537description: "Toggles auto answer on",538type: "toggle",539enabled: false,540data: null,541run: function () {542if (!this.enabled) {543this.enabled = true;544this.data = setInterval(() => {545const { stateNode: { state: { question, stage, feedback }, props: { client: { question: pquestion } } } } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;546const q = (question || pquestion);547try {548if (q.qType != "typing") if (stage !== "feedback" && !feedback) [...document.querySelectorAll(`[class*="answerContainer"]`)][q.answers.map((x, i) => q.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.();549else document.querySelector('[class*="feedback"]')?.firstChild?.click?.();550else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(q.answers[0])551} catch { }552}, 50);553} else {554this.enabled = false;555clearInterval(this.data);556this.data = null;557}558}559},560{561name: "Highlight Answers (Toggle)",562description: "Toggles highlight answers on",563type: "toggle",564enabled: false,565data: null,566run: function () {567if (!this.enabled) {568this.enabled = true;569this.data = setInterval(() => {570const { stateNode: { state, props } } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;571[...document.querySelectorAll(`[class*="answerContainer"]`)].forEach((answer, i) => {572if ((state.question || props.client.question).correctAnswers.includes((state.question || props.client.question).answers[i])) answer.style.backgroundColor = "rgb(0, 207, 119)";573else answer.style.backgroundColor = "rgb(189, 15, 38)";574});575}, 50);576} else {577this.enabled = false;578clearInterval(this.data);579this.data = null;580}581}582},583{584name: "Auto Answer",585description: "Click the correct answer for you",586run: function () {587const { stateNode: { state: { question, stage, feedback }, props: { client: { question: pquestion } } } } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;588try {589if (question.qType != "typing") if (stage !== "feedback" && !feedback) [...document.querySelectorAll(`[class*="answerContainer"]`)][(question || pquestion).answers.map((x, i) => (question || pquestion).correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.();590else document.querySelector('[class*="feedback"]')?.firstChild?.click?.();591else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(question.answers[0])592} catch { }593}594},595{596name: "Spam Buy Blooks",597description: "Opens a box an amount of times",598inputs: [599{600name: "Box",601type: "options",602options: () => {603return new Promise(r => {604r(Object.keys(Object.values(webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]).webpack.c).find(x => !isNaN(x?.exports?.a?.Space)).exports.a || {}));605});606}607},608{609name: "Amount",610type: "number"611}612],613run: function (box, amountToOpen) {614let i = document.createElement('iframe');615document.body.append(i);616window.alert = i.contentWindow.alert.bind(window);617window.prompt = i.contentWindow.prompt.bind(window);618window.confirm = i.contentWindow.confirm.bind(window);619i.remove();620let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]),621axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a,622{ purchaseBlookBox } = Object.values(webpack.c).find(x => x.exports.a?.purchaseBlookBox).exports.a;623box = box.split(' ').map(x => x.charAt(0).toUpperCase() + x.slice(1).toLowerCase()).join(' ');624625axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { name, tokens } }) => {626let prices = Object.values(webpack.c).find(x => !isNaN(x?.exports?.a?.Space)).exports.a || { Medieval: 20, Breakfast: 20, Wonderland: 20, Blizzard: 25, Space: 20, Bot: 20, Aquatic: 20, Safari: 20, Dino: 25, "Ice Monster": 25, Outback: 25 }627let amount = Math.min(Math.floor(tokens / prices[box]), amountToOpen);628if (amount == 0) {629if (amountToOpen > 0) alert("You do not have enough tokens!");630return;631};632633let alertBlooks = confirm("Would you like to alert blooks upon unlocking?");634let blooks = {};635let now = Date.now();636let error = false;637638for (let i = 0; i < amount; i++) {639await purchaseBlookBox({ boxName: box }).then(({ isNewToUser, tokens, unlockedBlook }) => {640blooks[unlockedBlook] ||= 0;641blooks[unlockedBlook]++;642643let before = Date.now();644645if (alertBlooks) alert(`${unlockedBlook} (${i + 1}/${amount}) ${isNewToUser ? "NEW! " : ''}${tokens} tokens left`);646647now += Date.now() - before;648}).catch(e => error = true);649if (error) break;650};651alert(`(${Date.now() - now}ms) Results:\n${Object.entries(blooks).map(([blook, amount]) => ` ${blook} ${amount}`).join(`\n`)}`);652}).catch(() => alert('There was an error user data!'));653}654},655{656name: "Flood Game",657description: "Floods a game with a number of fake accounts",658inputs: [659{660name: "Game ID",661type: "string"662},663{664name: "Name",665type: "string"666},667{668name: "Amount",669type: "number"670},671{672name: "Blook",673type: "options",674options: async () => {675let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]);676return ["Random"].concat(Object.keys(Object.values(webpack.c).find(x => x.exports.a?.Chick && x.exports.a?.Elephant).exports.a));677}678},679{680name: "Banner",681type: "options",682options: Object.entries({ Starter: "starter", Chalkboard: "chalkboard", Slime: "slime", Bookshelf: "bookshelf", "Toaster Pastry": "toasterPastry", Theater: "theater", Sushi: "sushi", Workbench: "workbench", Spooky: "spooky", Spiders: "spiders", Coffin: "coffin", Pumpkins: "pumpkins", "Falling Blocks": "fallingBlocks", Racetrack: "racetrack", Harvest: "harvest", Leaves: "leaves", "Fall Picnic": "fallPicnic", "Winter Drive": "winterDrive", "Winter Train": "winterTrain", Ice: "ice", Gifts: "gifts", "Christmas Tree": "christmasTree", "Soccer Field": "soccerField", "Winter Landscape": "winterLandscape", "Football Field": "footballField", "Outer Space": "outerSpace", "Hockey Rink": "hockeyRink", "Music Class": "musicClass", "Ice Cream Sandwich": "iceCreamSandwich", "Science Class": "scienceClass", "Fish Tank": "fishTank", "Art Class": "artClass", Clockwork: "clockwork", "Love Letter": "loveLetter", Farm: "farm", Chocolate: "chocolate", "Tech Chip": "techChip", Fire: "fire", "Orange Ice Pop": "orangeIcePop" }).map(([name, value]) => ({ name, value }))683}684],685run: async function (id, name, amount, b, bg) {686let cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']]]).cache);687const axios = cache.find((x) => x.exports?.a?.get).exports.a;688const firebase = cache.find(x => x.exports?.a?.initializeApp).exports.a;689const blooks = Object.keys(Object.values(cache).find(x => x.exports.a?.Black).exports.a);690691for (let i = 1; i <= amount; i++) {692(async () => {693let ign = `${name}${String.fromCharCode(96 + i)}`;694const { data: { success, fbToken, fbShardURL } } = await axios.put("https://fb.blooket.com/c/firebase/join", { id, name: ign });695if (!success) return;696const liveApp = firebase.initializeApp({697apiKey: "AIzaSyCA-cTOnX19f6LFnDVVsHXya3k6ByP_MnU",698authDomain: "blooket-2020.firebaseapp.com",699projectId: "blooket-2020",700storageBucket: "blooket-2020.appspot.com",701messagingSenderId: "741533559105",702appId: "1:741533559105:web:b8cbb10e6123f2913519c0",703measurementId: "G-S3H5NGN10Z",704databaseURL: fbShardURL705}, ign);706const auth = firebase.auth(liveApp);707await auth.setPersistence(firebase.auth.Auth.Persistence.NONE).catch(console.error);708await auth.signInWithCustomToken(fbToken).catch(console.error);709await liveApp.database().ref(`${id}/c/${ign}`).set({ b: b == "Random" ? blooks[Math.floor(Math.random() * blooks.length)] : b, bg });710liveApp.delete();711})();712await new Promise(r => setTimeout(r, 100));713}714}715},716{717name: "Change Blook Ingame",718description: "Changes your blook",719inputs: [720{721name: "Blook",722type: "options",723options: async () => {724let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]);725return Object.keys(Object.values(webpack.c).find(x => x.exports.a?.Chick && x.exports.a?.Elephant).exports.a);726}727}728],729run: function (blook) {730let { props } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode;731props.client.blook = blook;732props.liveGameController.setVal({ path: `c/${props.client.name}/b`, val: blook });733}734},735{736name: "Get Daily Rewards",737description: "Gets max daily tokens and xp",738run: async function () {739let i = document.createElement('iframe');740document.body.append(i);741window.alert = i.contentWindow.alert.bind(window);742i.remove();743if (!location.href.includes("play.blooket.com")) (alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/"));744else {745const cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache),746axios = cache.find((x) => x.exports?.a?.get).exports.a,747{ data: { t } } = await axios.post("https://play.blooket.com/api/playersessions/solo", {748gameMode: "Factory",749questionSetId: ["60101da869e8c70013913b59", "625db660c6842334835cb4c6", "60268f8861bd520016eae038", "611e6c804abdf900668699e3", "60ba5ff6077eb600221b7145", "642467af9b704783215c1f1b", "605bd360e35779001bf57c5e", "6234cc7add097ff1c9cff3bd", "600b1491d42a140004d5215a", "5db75fa3f1fa190017b61c0c", "5fac96fe2ca0da00042b018f", "600b14d8d42a140004d52165", "5f88953cdb209e00046522c7", "600b153ad42a140004d52172", "5fe260e72a505b00040e2a11", "5fe3d085a529560004cd3076", "5f5fc017aee59500041a1456", "608b0a5863c4f2001eed43f4", "5fad491512c8620004918ace", "5fc91a9b4ea2e200046bd49a", "5c5d06a7deebc70017245da7", "5ff767051b68750004a6fd21", "5fdcacc85d465a0004b021b9", "5fb7eea20bd44300045ba495"][Math.floor(Math.random() * 24)]750});751await axios.post("https://play.blooket.com/api/playersessions/landings", { t });752await axios.get("https://play.blooket.com/api/playersessions/questions", { params: { t } });753const { name, blook: { name: blookUsed } } = await cache.find(x => x.exports.a?.me).exports.a.me({}).catch(() => alert('There was an error getting user data.'));754await axios.put("https://play.blooket.com/api/users/factorystats", {755blookUsed, t, name,756cash: Math.floor(Math.random() * 90000000) + 10000000,757correctAnswers: Math.floor(Math.random() * 500) + 500,758upgrades: Math.floor(Math.random() * 300) + 300,759mode: "Time-Solo",760nameUsed: "You",761place: 1,762playersDefeated: 0,763});764axios.put("https://play.blooket.com/api/users/add-rewards", { t, name, addedTokens: 500, addedXp: 300 })765.then(({ data: { dailyReward } }) => alert(`Added max tokens and xp, and got ${dailyReward} daily wheel tokens!`))766.catch(() => alert('There was an error when adding rewards.'));767}768}769},770{771name: "Use Any Blook",772description: "Allows you to play as any blook",773run: function () {774const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;775const blooks = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a;776if (location.pathname == "/blooks") stateNode.setState({ blookData: Object.keys(blooks).reduce((a, b) => (a[b] = (stateNode.state.blookData[b] || 1), a), {}), allSets: Object.values(blooks).reduce((a, b) => (a.includes(b.set) ? a : a.concat(b.set)), []) });777else if (Array.isArray(stateNode.state.unlocks)) stateNode.setState({ unlocks: Object.keys(blooks) });778else stateNode.setState({ unlocks: blooks });779}780},781{782name: "Every Answer Correct",783description: "Sets every answer to be correct",784run: function () {785const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;786stateNode.freeQuestions = stateNode.questions = stateNode.props.client.questions.map(x => ({ ...x, correctAnswers: x.answers }));787}788},789{790name: "Highlight Answers",791description: "Colors answers to be red or green highlighting the correct ones",792run: function () {793const { stateNode: { state, props } } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;794[...document.querySelectorAll(`[class*="answerContainer"]`)].forEach((answer, i) => {795if ((state.question || props.client.question).correctAnswers.includes((state.question || props.client.question).answers[i])) answer.style.backgroundColor = "rgb(0, 207, 119)";796else answer.style.backgroundColor = "rgb(189, 15, 38)";797});798}799},800{801name: "Remove Name Limit",802description: "Sets the name limit to 120, which is the actual max name length limit",803run: function () {804let i = document.createElement('iframe');805document.body.append(i);806window.alert = i.contentWindow.alert.bind(window);807i.remove();808document.querySelector('input[class*="nameInput"]').maxLength = 120; /* 120 is the actual limit */809alert("Removed name length limit");810}811},812{813name: "Remove Random Name",814description: "Allows you to put a custom name",815run: function () {816Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ isRandom: false, client: { name: "" } });817document.querySelector('[class*="nameInput"]')?.focus?.();818}819},820{821name: "Sell Cheap Duplicates",822description: "Sells all of your uncommon to epic dupes (not legendaries+)",823run: function () {824let i = document.createElement('iframe');825document.body.append(i);826window.alert = i.contentWindow.alert.bind(window);827window.confirm = i.contentWindow.confirm.bind(window);828i.remove();829let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]),830axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a,831{ sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a;832axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => {833let blooks = Object.entries(unlocks).filter(([blook, amount]) => amount > 1 && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a[blook].rarity));834if (confirm(`Are you sure you want to sell your uncommon to epic dupes?`)) {835let now = Date.now();836for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 });837alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`);838}839}).catch(() => alert('There was an error user data!'));840}841},842{843name: "Sell Duplicate Blooks",844description: "Sell all duplicate blooks leaving you with 1 each",845run: function () {846let i = document.createElement('iframe');847document.body.append(i);848window.alert = i.contentWindow.alert.bind(window);849window.confirm = i.contentWindow.confirm.bind(window);850i.remove();851let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]),852axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a,853{ sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a;854axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => {855let blooks = Object.entries(unlocks).filter(x => x[1] > 1);856if (confirm(`Are you sure you want to sell your dupes?`)) {857let now = Date.now();858for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 });859alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`);860}861}).catch((e) => (alert('There was an error user data!'), console.info(e)));862}863},864{865name: "Simulate Pack",866description: "Simulate opening a pack",867inputs: [{868name: "Pack",869type: "options",870options: async () => {871return Array.from(document.querySelectorAll('[class*="packShadow"]')).map(x => x.alt);872}873}],874run: (function () {875try {876let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]);877let values = Object.values(webpack.c),878blooks = values.find(x => x.exports?.a?.Chick?.set).exports.a,879packs = values.find(x => x.exports.a?.Breakfast).exports.a,880allBlooks = Object.entries(blooks).reduce((a, [b, c]) => (packs[c.realSet || c.set] && (a[b] = c), a), {});881let phaser = Object.values(webpack.c).find(x => x.exports?.Class).exports;882let scene = {};883class Particles extends phaser.Scene {884constructor(rarity) {885super();886this.rarity = rarity.toLowerCase();887}888preload() {889switch (this.rarity) {890case "uncommon":891this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 });892this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 });893this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 });894this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 });895this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 });896this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 });897this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 });898break;899case "rare":900this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 });901this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 });902this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 });903this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 });904this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 });905this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 });906this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 });907break;908case "epic":909this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 });910this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 });911this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 });912this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 });913this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 });914this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 });915this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 });916break;917case "legendary":918this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 });919this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 });920this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 });921this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 });922this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 });923this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 });924this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 });925break;926case "chroma":927this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 });928this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 });929this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 });930this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 });931this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 });932this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 });933this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 });934}935}936create() {937scene.scene = this;938scene.rarity = "";939scene.particles = this.physics.add.group({940classType: new phaser.Class({941Extends: phaser.GameObjects.Image,942initialize: function () {943phaser.GameObjects.Image.call(this, scene.scene, 0, 0, "uncommon-1");944this.setDepth(3);945this.lifespan = 0;946},947spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) {948this.setTexture(texture);949this.setActive(true);950this.setVisible(true);951this.setPosition(x, y);952this.setScale(scale);953this.targets = [];954scene.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity);955this.body.setGravityY(gravity);956this.body.setAngularVelocity(angle);957this.lifespan = lifespan;958},959update: function (t, s) {960this.lifespan -= s;961if (this.lifespan > 0) return;962this.setActive(!1);963this.setVisible(!1);964}965}),966runChildUpdate: !0967});968this.nextParticle = 0;969this.numExplosions = 0;970this.game.events.on("start-particles", (t) => {971scene.rarity = t;972this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1;973});974}975update(e, t) {976const I = webpack("74sb");977let Z = function (e) {978switch (e) {979case "center": {980var t = Object(I.l)(-115, -65);981return {982x: scene.scene.cameras.main.worldView.width / 2,983y: scene.scene.cameras.main.worldView.height / 2,984scale: Object(I.l)(.7, 1),985angle: t,986velocity: Object(I.l)(600, 750),987gravity: 700,988angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175),989lifespan: 2500990}991}992case "right-bottom": return {993x: scene.scene.cameras.main.worldView.width,994y: scene.scene.cameras.main.worldView.height,995scale: Object(I.l)(.7, 1),996angle: Object(I.l)(-160, -110),997velocity: Object(I.l)(600, 750),998gravity: 500,999angVelocity: Object(I.l)(-175, -125),1000lifespan: 25001001};1002case "left-bottom": return {1003x: 0,1004y: scene.scene.cameras.main.worldView.height,1005scale: Object(I.l)(.7, 1),1006angle: Object(I.l)(-70, -20),1007velocity: Object(I.l)(600, 750),1008gravity: 500,1009angVelocity: Object(I.l)(125, 175),1010lifespan: 25001011};1012case "top": return {1013x: Object(I.l)(0, scene.scene.cameras.main.worldView.width),1014y: -50,1015scale: Object(I.l)(.7, 1),1016angle: 90,1017velocity: Object(I.l)(0, 50),1018gravity: 700,1019angVelocity: Object(I.l)(-150, 150),1020lifespan: 25001021};1022case "right-shower": return {1023x: scene.scene.cameras.main.worldView.width,1024y: Object(I.l)(0, scene.scene.cameras.main.worldView.height),1025scale: Object(I.l)(.7, 1),1026angle: Object(I.l)(-180, -130),1027velocity: Object(I.l)(600, 750),1028gravity: 500,1029angVelocity: Object(I.l)(-175, -125),1030lifespan: 25001031};1032case "left-shower": return {1033x: 0,1034y: Object(I.l)(0, scene.scene.cameras.main.worldView.height),1035scale: Object(I.l)(.7, 1),1036angle: Object(I.l)(-50, 0),1037velocity: Object(I.l)(600, 750),1038gravity: 500,1039angVelocity: Object(I.l)(125, 175),1040lifespan: 25001041};1042case "right-diamond": {1043var a = Object(I.l)(0, scene.scene.cameras.main.worldView.height);1044return {1045x: scene.scene.cameras.main.worldView.width,1046y: a,1047scale: Object(I.l)(.7, 1),1048angle: a > scene.scene.cameras.main.worldView.height / 2 ? -150 : -210,1049velocity: Object(I.l)(600, 750),1050gravity: 0,1051angVelocity: Object(I.l)(-175, -125),1052lifespan: 25001053}1054}1055case "left-diamond": {1056var n = Object(I.l)(0, scene.scene.cameras.main.worldView.height);1057return {1058x: 0,1059y: n,1060scale: Object(I.l)(.7, 1),1061angle: n > scene.scene.cameras.main.worldView.height / 2 ? -30 : 30,1062velocity: Object(I.l)(600, 750),1063gravity: 0,1064angVelocity: Object(I.l)(125, 175),1065lifespan: 25001066}1067}1068default: return {};1069}1070};1071if (scene.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) {1072switch (scene.rarity) {1073case "Uncommon": {1074for (let i = 0; i < 2; i++) {1075let n = scene.particles.get();1076n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`))1077}1078break;1079}1080case "Rare": {1081for (var o = 0; o < 2; o++) {1082var r = scene.particles.get();1083r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`))1084}1085break;1086}1087case "Epic": {1088for (var s = 0; s < 2; s++) {1089var i = scene.particles.get();1090i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`))1091}1092break;1093}1094case "Legendary": {1095for (var l = 0; l < 3; l++) {1096var c = scene.particles.get();1097c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`))1098}1099break;1100}1101case "Chroma": {1102for (var u = 0; u < 3; u++) {1103var d = scene.particles.get();1104d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`))1105}1106break;1107}1108}1109this.nextParticle = 20;1110this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0));1111}1112}1113}1114return function (box) {1115if (window.location.pathname !== "/market") return alert("This must be ran on the market page");1116let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1117let packs = webpack('fGzD');1118packs = Object.keys(packs.a).reduce((obj, pack) => (obj.packs.includes(pack) && (obj.data[pack] = Object.fromEntries(packs.b(pack))), obj), { packs: Array.from(document.querySelectorAll('[class*="packShadow"]')).map(x => x.alt), data: {} }).data;1119if (packs[box]) {1120function weighted(pack) {1121let weights = [];1122const items = Object.keys(packs[pack]);1123for (const key of items) weights.push(packs[pack][key] + (weights[items.indexOf(key) - 1] || 0));1124const choice = weights[weights.length - 1] * Math.random();1125return items[weights.findIndex(w => w >= choice)];1126}1127const blook = weighted(box);1128const allBlooks = Object.values(webpack.c).find(x => x.exports?.a?.Elephant).exports.a;1129stateNode.setState({1130loadingPack: false,1131openPack: true,1132unlockedBlook: blook,1133tokens: stateNode.state.tokens,1134newUnlock: true,1135game: {1136type: phaser.WEBGL,1137parent: "phaser-market",1138width: "100%",1139height: "100%",1140scale: { mode: phaser.Scale.NONE, autoCenter: phaser.Scale.CENTER_BOTH },1141transparent: true,1142physics: { default: "arcade" },1143scene: new Particles(allBlooks[blook].rarity)1144},1145canOpen: true1146});1147} else alert("I couldn't find that box!");1148}1149} catch { }1150})()1151},1152{1153name: "Simulate Unlock",1154description: "Simulate unlocking most of the blooks",1155inputs: [1156{1157name: "Blook",1158type: "options",1159options: () => {1160try {1161let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]);1162const cache = Object.values(webpack.c);1163const packs = cache.find(x => typeof x.exports.a?.Breakfast == "number").exports.a;1164return Object.entries(cache.find(x => x.exports.a?.Black).exports.a).reduce((a, [b, c]) => (packs[c.realSet || c.set] ? a.concat(b) : a), []);1165} catch { return []; }1166}1167}1168],1169run: (function () {1170try {1171let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]);1172let values = Object.values(webpack.c),1173blooks = values.find(x => x.exports?.a?.Black).exports.a,1174packs = values.find(x => typeof x.exports.a?.Breakfast == "number").exports.a,1175allBlooks = Object.entries(blooks).reduce((a, [b, c]) => (packs[c.realSet || c.set] && (a[b] = c), a), {});1176let phaser = values.find(x => x.exports?.Class).exports;1177let scene = {};1178class Particles extends phaser.Scene {1179constructor(rarity) {1180super();1181this.rarity = rarity.toLowerCase();1182}1183preload() {1184switch (this.rarity) {1185case "uncommon":1186this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 });1187this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 });1188this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 });1189this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 });1190this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 });1191this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 });1192this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 });1193break;1194case "rare":1195this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 });1196this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 });1197this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 });1198this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 });1199this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 });1200this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 });1201this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 });1202break;1203case "epic":1204this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 });1205this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 });1206this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 });1207this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 });1208this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 });1209this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 });1210this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 });1211break;1212case "legendary":1213this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 });1214this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 });1215this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 });1216this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 });1217this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 });1218this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 });1219this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 });1220break;1221case "chroma":1222this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 });1223this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 });1224this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 });1225this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 });1226this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 });1227this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 });1228this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 });1229}1230}1231create() {1232scene.scene = this;1233scene.rarity = "";1234scene.particles = this.physics.add.group({1235classType: new phaser.Class({1236Extends: phaser.GameObjects.Image,1237initialize: function () {1238phaser.GameObjects.Image.call(this, scene.scene, 0, 0, "uncommon-1");1239this.setDepth(3);1240this.lifespan = 0;1241},1242spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) {1243this.setTexture(texture);1244this.setActive(true);1245this.setVisible(true);1246this.setPosition(x, y);1247this.setScale(scale);1248this.targets = [];1249scene.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity);1250this.body.setGravityY(gravity);1251this.body.setAngularVelocity(angle);1252this.lifespan = lifespan;1253},1254update: function (t, s) {1255this.lifespan -= s;1256if (this.lifespan > 0) return;1257this.setActive(!1);1258this.setVisible(!1);1259}1260}),1261runChildUpdate: !01262});1263this.nextParticle = 0;1264this.numExplosions = 0;1265this.game.events.on("start-particles", (t) => {1266scene.rarity = t;1267this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1;1268});1269}1270update(e, t) {1271const I = webpack("74sb");1272let Z = function (e) {1273switch (e) {1274case "center": {1275var t = Object(I.l)(-115, -65);1276return {1277x: scene.scene.cameras.main.worldView.width / 2,1278y: scene.scene.cameras.main.worldView.height / 2,1279scale: Object(I.l)(.7, 1),1280angle: t,1281velocity: Object(I.l)(600, 750),1282gravity: 700,1283angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175),1284lifespan: 25001285}1286}1287case "right-bottom": return {1288x: scene.scene.cameras.main.worldView.width,1289y: scene.scene.cameras.main.worldView.height,1290scale: Object(I.l)(.7, 1),1291angle: Object(I.l)(-160, -110),1292velocity: Object(I.l)(600, 750),1293gravity: 500,1294angVelocity: Object(I.l)(-175, -125),1295lifespan: 25001296};1297case "left-bottom": return {1298x: 0,1299y: scene.scene.cameras.main.worldView.height,1300scale: Object(I.l)(.7, 1),1301angle: Object(I.l)(-70, -20),1302velocity: Object(I.l)(600, 750),1303gravity: 500,1304angVelocity: Object(I.l)(125, 175),1305lifespan: 25001306};1307case "top": return {1308x: Object(I.l)(0, scene.scene.cameras.main.worldView.width),1309y: -50,1310scale: Object(I.l)(.7, 1),1311angle: 90,1312velocity: Object(I.l)(0, 50),1313gravity: 700,1314angVelocity: Object(I.l)(-150, 150),1315lifespan: 25001316};1317case "right-shower": return {1318x: scene.scene.cameras.main.worldView.width,1319y: Object(I.l)(0, scene.scene.cameras.main.worldView.height),1320scale: Object(I.l)(.7, 1),1321angle: Object(I.l)(-180, -130),1322velocity: Object(I.l)(600, 750),1323gravity: 500,1324angVelocity: Object(I.l)(-175, -125),1325lifespan: 25001326};1327case "left-shower": return {1328x: 0,1329y: Object(I.l)(0, scene.scene.cameras.main.worldView.height),1330scale: Object(I.l)(.7, 1),1331angle: Object(I.l)(-50, 0),1332velocity: Object(I.l)(600, 750),1333gravity: 500,1334angVelocity: Object(I.l)(125, 175),1335lifespan: 25001336};1337case "right-diamond": {1338var a = Object(I.l)(0, scene.scene.cameras.main.worldView.height);1339return {1340x: scene.scene.cameras.main.worldView.width,1341y: a,1342scale: Object(I.l)(.7, 1),1343angle: a > scene.scene.cameras.main.worldView.height / 2 ? -150 : -210,1344velocity: Object(I.l)(600, 750),1345gravity: 0,1346angVelocity: Object(I.l)(-175, -125),1347lifespan: 25001348}1349}1350case "left-diamond": {1351var n = Object(I.l)(0, scene.scene.cameras.main.worldView.height);1352return {1353x: 0,1354y: n,1355scale: Object(I.l)(.7, 1),1356angle: n > scene.scene.cameras.main.worldView.height / 2 ? -30 : 30,1357velocity: Object(I.l)(600, 750),1358gravity: 0,1359angVelocity: Object(I.l)(125, 175),1360lifespan: 25001361}1362}1363default: return {};1364}1365};1366if (scene.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) {1367switch (scene.rarity) {1368case "Uncommon": {1369for (let i = 0; i < 2; i++) {1370let n = scene.particles.get();1371n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`))1372}1373break;1374}1375case "Rare": {1376for (var o = 0; o < 2; o++) {1377var r = scene.particles.get();1378r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`))1379}1380break;1381}1382case "Epic": {1383for (var s = 0; s < 2; s++) {1384var i = scene.particles.get();1385i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`))1386}1387break;1388}1389case "Legendary": {1390for (var l = 0; l < 3; l++) {1391var c = scene.particles.get();1392c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`))1393}1394break;1395}1396case "Chroma": {1397for (var u = 0; u < 3; u++) {1398var d = scene.particles.get();1399d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`))1400}1401break;1402}1403}1404this.nextParticle = 20;1405this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0));1406}1407}1408}1409return function (blook) {1410let i = document.createElement('iframe');1411document.body.append(i);1412window.alert = i.contentWindow.alert.bind(window);1413window.prompt = i.contentWindow.prompt.bind(window);1414i.remove();1415if (window.location.pathname == "/market") {1416let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1417stateNode.setState({1418loadingPack: false,1419openPack: true,1420unlockedBlook: blook,1421newUnlock: true,1422game: {1423type: phaser.WEBGL,1424parent: "phaser-market",1425width: "100%",1426height: "100%",1427scale: {1428mode: phaser.Scale.NONE,1429autoCenter: phaser.Scale.CENTER_BOTH1430},1431transparent: true,1432physics: {1433default: "arcade"1434},1435scene: new Particles(allBlooks[blook].rarity)1436},1437canOpen: true1438});1439} else alert("This can only be ran on the market page!");1440}1441} catch { }1442})()1443}1444],1445voyage: [1446{1447name: "Max Levels",1448description: "Maxes out all islands and your boat",1449run: function () {1450let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1451stateNode.setState({ islandLevels: new Array(stateNode.state.islandLevels.length).fill(5) }, stateNode.updateBoatLevel);1452}1453},1454{1455name: "Set Doubloons",1456description: "Sets Doubloons",1457inputs: [{1458name: "Amount",1459type: "number"1460}],1461run: function (doubloons) {1462let i = document.createElement('iframe');1463document.body.append(i);1464window.prompt = i.contentWindow.prompt.bind(window);1465i.remove();1466let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1467stateNode.setState({ doubloons });1468stateNode.props.liveGameController.setVal({1469path: `c/${stateNode.props.client.name}/d`,1470val: doubloons1471});1472}1473},1474{1475name: "Start Heist",1476description: "Starts a heist on someone",1477inputs: [{1478name: "Player",1479type: "options",1480options: () => {1481let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1482return new Promise(res => stateNode.props.liveGameController._liveApp ? stateNode.props.liveGameController.getDatabaseVal("c", (players) => players && res(Object.keys(players))) : res([]));1483}1484}],1485run: function (target) {1486let i = document.createElement('iframe');1487document.body.append(i);1488window.prompt = i.contentWindow.prompt.bind(window);1489i.remove();1490let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;14911492stateNode.props.liveGameController.getDatabaseVal("c", function (val) {1493const players = Object.entries(val || {}).reduce((a, [name, c]) => (name == stateNode.props.client.name && a.push({ name, blook: c.b, doubloons: c.d || 0 }), a), []);1494if (players.length === 0) {1495stateNode.questionsToAnswer = 1;1496return void stateNode.randomQ();1497}1498const { name, blook, doubloons } = players.find(x => x.name == target) || players.sort((a, b) => b.doubloons - a.doubloons)[0];1499stateNode.setState({1500stage: "heist",1501heistInfo: { name, blook },1502prizeAmount: Math.max(1000, doubloons)1503});1504});1505}1506},1507{1508name: "Swap Doubloons",1509description: "Swaps Doubloons with someone",1510inputs: [{1511name: "Player",1512type: "options",1513options: () => {1514let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1515return new Promise(res => stateNode.props.liveGameController._liveApp ? stateNode.props.liveGameController.getDatabaseVal("c", (players) => players && res(Object.keys(players))) : res([]));1516}1517}],1518run: async function (player) {1519let i = document.createElement('iframe');1520document.body.append(i);1521window.prompt = i.contentWindow.prompt.bind(window);1522i.remove();1523let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1524let players = Object.entries(await new Promise(r => stateNode.props.liveGameController.getDatabaseVal("c", r))).sort((a, b) => b[1].d - a[1].d).filter(x => x[0] != stateNode.props.client.name),1525target = players.find(x => x[0] == player) || players[0];1526stateNode.props.liveGameController.setVal({1527path: `c/${stateNode.props.client.name}`,1528val: {1529b: stateNode.props.client.blook,1530d: target[1].d,1531tat: `${target[0]}:${target[1].d - stateNode.state.doubloons}`1532}1533});1534stateNode.setState({ doubloons: target[1].d });1535}1536},1537{1538name: "Take Doubloons",1539description: "Takes Doubloons from someone",1540inputs: [{1541name: "Player",1542type: "options",1543options: () => {1544let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1545return new Promise(res => stateNode.props.liveGameController._liveApp ? stateNode.props.liveGameController.getDatabaseVal("c", (players) => players && res(Object.keys(players))) : res([]));1546}1547}],1548run: async function (player) {1549let i = document.createElement('iframe');1550document.body.append(i);1551window.prompt = i.contentWindow.prompt.bind(window);1552i.remove();1553let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1554let players = Object.entries(await new Promise(r => stateNode.props.liveGameController.getDatabaseVal("c", r))).sort((a, b) => b[1].d - a[1].d).filter(x => x[0] != stateNode.props.client.name),1555target = players.find(x => x[0] == player) || players[0];1556stateNode.setState({ doubloons: stateNode.state.doubloons + target[1].d });1557stateNode.props.liveGameController.setVal({1558path: `c/${stateNode.props.client.name}`,1559val: {1560b: stateNode.props.client.blook,1561d: target[1].d,1562tat: `${target[0]}:${target[1].d}`1563}1564});1565}1566}1567],1568brawl: [1569{1570name: "Double Enemy XP",1571description: "Doubles enemy XP drop value",1572run: function () {1573for (const collider of Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) {1574const enemies = collider.object2;1575let _start = enemies.classType.prototype.start;1576enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.val *= 2 }1577enemies.children.entries.forEach(e => e.val *= 2);1578}1579}1580},1581{1582name: "Half Enemy Speed",1583description: "Makes enemies move 2x slower",1584run: function () {1585for (const collider of Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) {1586const enemies = collider.object2;1587let _start = enemies.classType.prototype.start;1588enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.speed *= .5 }1589enemies.children.entries.forEach(e => e.speed *= .5);1590}1591}1592},1593{1594name: "Instant Kill",1595description: "Sets all enemies health to 1",1596run: function () {1597for (const collider of Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) {1598const enemies = collider.object2;1599let _start = enemies.classType.prototype.start;1600enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.hp = 1 }1601enemies.children.entries.forEach(e => e.hp = 1);1602}1603}1604},1605{1606name: "Invincibility",1607description: "Makes you invincible",1608run: function () {1609for (const collider of Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) collider.collideCallback = () => { };1610}1611},1612{1613name: "Magnet",1614description: "Pulls all xp towards you",1615run: function () {1616Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('magnetTime')).collideCallback({ active: true }, { active: true, setActive() { }, setVisible() { } });1617}1618},1619{1620name: "Max Current Abilities",1621description: "Maxes out all your current abilities",1622run: function () {1623const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1624for (const [ability, level] of Object.entries(stateNode.state.abilities)) for (let i = 0; i < (10 - level); i++) stateNode.state.game.scene.game.events.emit("level up", ability, stateNode.state.abilities[ability]++);1625stateNode.setState({1626level: stateNode.state.game.scene.level = [1, 3, 5, 10, 15, 25, 35].sort((a, b) => Math.abs(a - stateNode.state.level) - Math.abs(b - stateNode.state.level))[0] - 11627});1628}1629},1630{1631name: "Next Level",1632description: "Skips to the next level",1633run: function () {1634let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1635let { object1: player, object2: xp } = stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('emit("xp"'));1636xp.get().spawn(player.x, player.y, ((e) => 1 === e ? 1 : e < 5 ? 5 : e < 10 ? 10 : e < 20 ? 20 : e < 30 ? 30 : e < 40 ? 40 : e < 50 ? 50 : 100)(stateNode.state.level) - stateNode.xp);1637}1638},1639{1640name: "Remove Obstacles",1641description: "Removes all rocks and obstacles",1642run: function () {1643Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(body => {1644try {1645if (body.gameObject.frame.texture.key.includes("obstacle")) body.gameObject.destroy();1646} catch { }1647});1648}1649},1650{1651name: "Kill Enemies",1652description: "Kills all current enemies",1653run: function () {1654Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1));1655}1656},1657{1658name: "Reset Health",1659description: "Resets health and gives invincibility for 3 seconds",1660run: function () {1661Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn();1662}1663}1664],1665cafe: [1666{1667name: "Max Items",1668description: "Maxes out items in the shop (Only usable in the shop)",1669run: function () {1670let i = document.createElement('iframe');1671document.body.append(i);1672window.alert = i.contentWindow.alert.bind(window);1673i.remove();1674if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop");1675else {1676const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1677stateNode.setState({ items: Object.fromEntries(Object.entries(stateNode.state.items).map(x => [x[0], 5])) });1678}1679}1680},1681{1682name: "Remove Customers",1683description: "Skips the current customers (Not usable in the shop)",1684run: function () {1685const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1686stateNode.state.customers.forEach((customer, i) => Object.keys(customer).length && stateNode.removeCustomer(i, true));1687}1688},1689{1690name: "Reset Abilities",1691description: "Resets used abilities in shop (Only usable in the shop)",1692run: function () {1693let i = document.createElement('iframe');1694document.body.append(i);1695window.alert = i.contentWindow.alert.bind(window);1696i.remove();1697if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop");1698else {1699const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1700stateNode.setState({ abilities: Object.fromEntries(Object.entries(stateNode.state.abilities).map(x => [x[0], 5])) });1701}1702}1703},1704{1705name: "Set Cash",1706description: "Sets cafe cash",1707inputs: [{1708name: "Amount",1709type: "number"1710}],1711run: function (cafeCash) {1712let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1713stateNode.setState({ cafeCash });1714stateNode.props.liveGameController.setVal({1715path: `c/${stateNode.props.client.name}`,1716val: {1717b: stateNode.props.client.blook,1718ca: cafeCash1719}1720});1721}1722},1723{1724name: "Stock Food",1725description: "Stocks all food to 99 (Not usable in the shop)",1726run: function () {1727let i = document.createElement('iframe');1728document.body.append(i);1729window.alert = i.contentWindow.alert.bind(window);1730i.remove();1731if (window.location.pathname !== "/cafe") alert("This can't be run in the shop");1732else {1733const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1734stateNode.setState({ foods: stateNode.state.foods.map(e => ({ ...e, stock: 99, level: 5 })) });1735}1736}1737}1738],1739crypto: [1740{1741name: "Choice ESP",1742description: "Shows what each choice will give you",1743type: "toggle",1744enabled: false,1745data: null,1746run: function () {1747if (!this.enabled) {1748this.enabled = true;1749this.data = setInterval(() => {1750let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1751let { text } = stateNode.state.choices[0];1752let chest = document.querySelector('[class^=styles__feedbackContainer___]');1753if (chest.children.length <= 4) {1754let choice = document.createElement('div');1755choice.style.color = "white";1756choice.style.fontFamily = "Inconsolata,Helvetica,monospace,sans-serif";1757choice.style.fontSize = "2em";1758choice.style.display = "flex";1759choice.style.justifyContent = "center";1760choice.style.marginTop = "675px";1761choice.innerText = text;1762chest.append(choice);1763}1764}, 50);1765} else {1766this.enabled = false;1767clearInterval(this.data);1768this.data = null;1769}1770}1771},1772{1773name: "Password ESP",1774description: "Highlights the correct password",1775type: "toggle",1776enabled: false,1777data: null,1778run: function () {1779if (!this.enabled) {1780this.enabled = true;1781this.data = setInterval(() => {1782let { state } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode;1783if (state.stage == "hack") [...document.querySelector('div[class^=styles__buttonContainer]').children].forEach(button => {1784if (button.innerText == state.correctPassword) return;1785button.style.outlineColor = "rgba(255, 64, 64, 0.8)";1786button.style.backgroundColor = "rgba(255, 64, 64, 0.8)";1787button.style.textShadow = "0 0 1px #f33";1788});1789}, 50);1790} else {1791this.enabled = false;1792clearInterval(this.data);1793this.data = null;1794}1795}1796},1797{1798name: "Always Triple",1799description: "Always get triple crypto",1800type: "toggle",1801enabled: false,1802data: null,1803run: function () {1804if (!this.enabled) {1805this.enabled = true;1806this.data = setInterval(() => Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ choices: [{ type: "mult", val: 3, rate: .075, blook: "Brainy Bot", text: "Triple Crypto" }] }), 50);1807} else {1808this.enabled = false;1809clearInterval(this.data);1810this.data = null;1811}1812}1813},1814{1815name: "Auto Guess",1816description: "Automatically guess the correct password",1817type: "toggle",1818enabled: false,1819data: null,1820run: function () {1821if (!this.enabled) {1822this.enabled = true;1823this.data = setInterval(() => {1824let { state } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode;1825if (state.stage == "hack") for (const button of document.querySelector('div[class^=styles__buttonContainer]').children) button.innerText == state.correctPassword && button.click();1826}, 50);1827} else {1828this.enabled = false;1829clearInterval(this.data);1830this.data = null;1831}1832}1833},1834{1835name: "Remove Hack",1836description: "Removes an attacking hack",1837run: function () {1838Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ hack: "" });1839}1840},1841{1842name: "Set Crypto",1843description: "Sets crypto",1844inputs: [{1845name: "Amount",1846type: "number"1847}],1848run: function (amount) {1849let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1850stateNode.setState({ crypto: amount, crypto2: amount });1851stateNode.props.liveGameController.setVal({1852path: "c/".concat(stateNode.props.client.name),1853val: {1854b: stateNode.props.client.blook,1855p: stateNode.state.password,1856cr: amount1857}1858});1859}1860},1861{1862name: "Set Password",1863description: "Sets hacking password",1864inputs: [{1865name: "Custom Password",1866type: "string"1867}],1868run: function (password) {1869let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1870stateNode.setState({ password });1871stateNode.props.liveGameController.setVal({1872path: "c/".concat(stateNode.props.client.name),1873val: {1874b: stateNode.props.client.blook,1875p: password,1876cr: stateNode.state.crypto1877}1878});1879}1880},1881{1882name: "Steal Player's Crypto",1883description: "Steals all of someone's crypto",1884inputs: [{1885name: "Player",1886type: "options",1887options: () => {1888let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1889return new Promise(res => stateNode.props.liveGameController._liveApp ? stateNode.props.liveGameController.getDatabaseVal("c", (players) => players && res(Object.keys(players))) : res([]));1890}1891}],1892run: function (target) {1893let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1894stateNode.props.liveGameController.getDatabaseVal("c", (players) => {1895if (players && Object.keys(players).map(x => x.toLowerCase()).includes(target.toLowerCase())) {1896let [player, { cr }] = Object.entries(players).find(([name]) => name.toLowerCase() == target.toLowerCase());1897stateNode.setState({ crypto: stateNode.state.crypto + cr, crypto2: stateNode.state.crypto + cr });1898stateNode.props.liveGameController.setVal({1899path: "c/".concat(stateNode.props.client.name),1900val: {1901b: stateNode.props.client.blook,1902p: stateNode.state.password,1903cr: stateNode.state.crypto + cr,1904tat: `${player}:${cr}`1905}1906});1907}1908});1909}1910}1911],1912defense: [1913{1914name: "Earthquake",1915description: "Shuffles around towers",1916run: function () {1917let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1918stateNode.setState({1919eventName: "Earthquake",1920event: {1921short: "e",1922color: "#805500",1923icon: "fas fa-mountain",1924desc: "All of your towers get mixed up",1925rate: .021926},1927buyTowerName: "",1928buyTower: {}1929}, () => stateNode.eventTimeout = setTimeout(() => stateNode.setState({ event: {}, eventName: "" }), 6e3));1930stateNode.tiles.forEach(row => row.forEach((col, i) => col === 3 && (row[i] = 0)));1931let tiles = stateNode.tiles.flatMap((_, y) => _.map((__, x) => __ === 0 && ({ x, y }))).filter(Boolean).sort(() => .5 - Math.random());1932stateNode.towers.forEach(tower => {1933let { x, y } = tiles.shift();1934tower.move(x, y, stateNode.tileSize);1935stateNode.tiles[y][x] = 3;1936});1937}1938},1939{1940name: "Max Tower Stats",1941description: "Makes all placed towers overpowered",1942run: function () {1943let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1944stateNode.towers.forEach(tower => {1945tower.range = 100;1946tower.fullCd = tower.cd = 0;1947tower.damage = 1e6;1948});1949}1950},1951{1952name: "Remove Ducks",1953description: "Removes ducks",1954run: function () {1955let { stateNode: { ducks, tiles } } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1956ducks.forEach(x => { tiles[x.y][x.x] = 0; });1957ducks.length = 0;1958}1959},1960{1961name: "Remove Enemies",1962description: "Removes all the enemies",1963run: function () {1964let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1965stateNode.enemies = stateNode.futureEnemies = [];1966}1967},1968{1969name: "Remove Obstacles",1970description: "Lets you place towers anywhere",1971run: function () {1972let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;1973stateNode.tiles = stateNode.tiles.map(row => row.fill(0));1974}1975},1976{1977name: "Set Damage",1978description: "Sets damage",1979inputs: [{1980name: "Damage",1981type: "number"1982}],1983run: function (dmg) {1984Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.dmg = dmg;1985}1986},1987{1988name: "Set Round",1989description: "Sets the current round",1990inputs: [{1991name: "Round",1992type: "number"1993}],1994run: function (round) {1995Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ round });1996}1997},1998{1999name: "Set Tokens",2000description: "Sets the amount of tokens you have",2001inputs: [{2002name: "Tokens",2003type: "number"2004}],2005run: function (tokens) {2006Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ tokens });2007}2008}2009],2010defense2: [2011{2012name: "Max Tower Stats",2013description: "Makes all placed towers overpowered",2014run: function () {2015Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.towers.forEach(tower => {2016tower.stats.dmg = 1e6;2017tower.stats.fireRate = 50;2018tower.stats.ghostDetect = true;2019tower.stats.maxTargets = 1e6;2020tower.stats.numProjectiles &&= 100;2021tower.stats.range = 100;2022if (tower.stats.auraBuffs) for (const buff in tower.stats.auraBuffs) tower.stats.auraBuffs[buff] *= 100;2023});2024}2025},2026{2027name: "Kill Enemies",2028description: "Kills all the enemies",2029run: function () {2030let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2031stateNode.state.game.scene.enemyQueue.length = 0;2032stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1));2033}2034},2035{2036name: "Set Coins",2037description: "Sets coins",2038inputs: [{2039name: "Coins",2040type: "number"2041}],2042run: function (coins) {2043Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ coins });2044}2045},2046{2047name: "Set Health",2048description: "Sets the amount of health you have",2049inputs: [{2050name: "Health",2051type: "number"2052}],2053run: function (health) {2054Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ health });2055}2056},2057{2058name: "Set Round",2059description: "Sets the current round",2060inputs: [{2061name: "Round",2062type: "number"2063}],2064run: function (round) {2065Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ round });2066}2067},2068],2069dinos: [2070{2071name: "Auto Choose",2072description: "Automatically choose the best fossil when excavating",2073type: "toggle",2074enabled: false,2075data: null,2076run: function () {2077if (!this.enabled) {2078this.enabled = true;2079this.data = setInterval(() => {2080const { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]);2081const getFossils = (() => { /* this is for when ben does funny webpack update stuff */2082const func = Object.values(webpack('74sb')).find(x => x.toString().includes('rate'));2083return () => func([{ type: "fossil", val: 10, rate: .1, blook: "Amber" }, { type: "fossil", val: 25, rate: .1, blook: "Dino Egg" }, { type: "fossil", val: 50, rate: .175, blook: "Dino Fossil" }, { type: "fossil", val: 75, rate: .175, blook: "Stegosaurus" }, { type: "fossil", val: 100, rate: .15, blook: "Velociraptor" }, { type: "fossil", val: 125, rate: .125, blook: "Brontosaurus" }, { type: "fossil", val: 250, rate: .075, blook: "Triceratops" }, { type: "fossil", val: 500, rate: .025, blook: "Tyrannosaurus Rex" }, { type: "mult", val: 1.5, rate: .05 }, { type: "mult", val: 2, rate: .025 }], 3);2084})();2085try {2086let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2087if (stateNode.state.stage === "excavate") {2088stateNode.state.choices.length || (stateNode.state.choices = getFossils());2089let max = 0, index = -1;2090for (let i = 0; i < stateNode.state.choices.length; i++) {2091const { type, val } = stateNode.state.choices[i];2092const value = (type == "fossil" ? stateNode.state.fossils + val * stateNode.state.fossilMult : stateNode.state.fossils * val) || 0;2093if (value <= max && type != "mult") continue;2094max = value, index = i + 1;2095}2096document.querySelector('div[class^="styles__rockRow"] > div[role="button"]:nth-child(' + index + ')').click();2097}2098} catch { }2099}, 50);2100} else {2101this.enabled = false;2102clearInterval(this.data);2103this.data = null;2104}2105}2106},2107{2108name: "Rock ESP",2109description: "Shows what is under the rocks",2110type: "toggle",2111enabled: false,2112data: null,2113run: function () {2114if (!this.enabled) {2115this.enabled = true;2116this.data = setInterval(() => {2117let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2118const rocks = [...document.querySelector('[class*="rockButton"]').parentElement.children];2119if (!rocks.every(element => element.querySelector('div'))) stateNode.setState({2120choices: [{ type: "fossil", val: 10, rate: .1, blook: "Amber" }, { type: "fossil", val: 25, rate: .1, blook: "Dino Egg" }, { type: "fossil", val: 50, rate: .175, blook: "Dino Fossil" }, { type: "fossil", val: 75, rate: .175, blook: "Stegosaurus" }, { type: "fossil", val: 100, rate: .15, blook: "Velociraptor" }, { type: "fossil", val: 125, rate: .125, blook: "Brontosaurus" }, { type: "fossil", val: 250, rate: .075, blook: "Triceratops" }, { type: "fossil", val: 500, rate: .025, blook: "Tyrannosaurus Rex" }, { type: "mult", val: 1.5, rate: .05 }, { type: "mult", val: 2, rate: .025 }].sort(() => 0.5 - Math.random()).slice(0, 3)2121}, () => {2122rocks.forEach((element, index) => {2123const rock = stateNode.state.choices[index];2124if (element.querySelector('div')) element.querySelector('div').remove();2125const choice = document.createElement("div");2126choice.style.color = "white";2127choice.style.fontFamily = "Macondo";2128choice.style.fontSize = "1em";2129choice.style.display = "flex";2130choice.style.justifyContent = "center";2131choice.style.transform = "translateY(25px)";2132choice.innerText = rock.type === "fossil" ? `+${Math.round(rock.val * stateNode.state.fossilMult) > 99999999 ? Object.values(webpack('74sb')).find(x => x.toString().includes('\xd7'))(Math.round(rock.val * stateNode.state.fossilMult)) : Math.round(rock.val * stateNode.state.fossilMult)} Fossils` : `x${rock.val} Fossils Per Excavation`;;2133element.append(choice);2134});2135});2136}, 50);2137} else {2138this.enabled = false;2139clearInterval(this.data);2140this.data = null;2141}2142}2143},2144{2145name: "Set Fossils",2146description: "Sets the amount of fossils you have",2147inputs: [{2148name: "Fossils",2149type: "number"2150}],2151run: function (fossils) {2152let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2153stateNode.setState({ fossils });2154stateNode.props.liveGameController.setVal({2155path: `c/${stateNode.props.client.name}`,2156val: {2157b: stateNode.props.client.blook,2158f: fossils,2159ic: stateNode.state.isCheating2160}2161});2162}2163},2164{2165name: "Set Multiplier",2166description: "Sets fossil multiplier",2167inputs: [{2168name: "Multiplier",2169type: "number"2170}],2171run: function (fossilMult) {2172let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2173stateNode.setState({ fossilMult });2174}2175},2176{2177name: "Stop Cheating",2178description: "Undoes cheating so that you can't be caught",2179run: function () {2180let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2181stateNode.setState({ isCheating: false });2182stateNode.props.liveGameController.setVal({2183path: `c/${stateNode.props.client.name}/ic`,2184val: false2185});2186}2187}2188],2189doom: [2190{2191name: "Fill Deck",2192description: "Fills your deck with every maxed out card and artifact (Only works on towers page)",2193run: function () {2194let i = document.createElement('iframe');2195document.body.append(i);2196window.alert = i.contentWindow.alert.bind(window);2197i.remove();2198if (window.location.pathname == "/tower/map") {2199const { a: artifacts, c: allCards } = webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache["gvfT"].exports;2200const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2201stateNode.props.tower.artifacts = Object.keys(artifacts);2202stateNode.props.tower.cards = Object.entries(allCards).map(([blook, card]) => ({ ...card, blook, strength: 20, charisma: 20, wisdom: 20 }));2203try { stateNode.props.addTowerNode(); } catch { };2204stateNode.setState({ showDeck: false });2205} else alert("You need to be on the map to run this cheat!");2206}2207},2208{2209name: "Max Cards",2210description: "Maxes out all the cards in your deck",2211run: function () {2212let i = document.createElement('iframe');2213document.body.append(i);2214window.alert = i.contentWindow.alert.bind(window);2215i.remove();2216if (window.location.pathname == "/tower/map") {2217const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2218stateNode.props.tower.cards.forEach(card => {2219card.strength = 20;2220card.charisma = 20;2221card.wisdom = 20;2222});2223} else alert("You need to be on the map to run this cheat!");2224}2225},2226{2227name: "Max Health",2228description: "Fills the player's health",2229run: function () {2230let i = document.createElement('iframe');2231document.body.append(i);2232window.alert = i.contentWindow.alert.bind(window);2233i.remove();2234if (window.location.pathname == "/tower/battle") Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ myHealth: 100 });2235else alert("You need to be in battle to run this cheat!");2236}2237},2238{2239name: "Max Card Stats",2240description: "Maxes out player's current card (Only works on attribute select page)",2241run: function () {2242let i = document.createElement('iframe');2243document.body.append(i);2244window.alert = i.contentWindow.alert.bind(window);2245i.remove();2246const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2247if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!');2248else stateNode.setState({ myCard: { ...stateNode.state.myCard, strength: 20, charisma: 20, wisdom: 20 } });2249}2250},2251{2252name: "Min Enemy Stats",2253description: "Makes the enemy card stats all 0 (Only works on attribute select page)",2254run: function () {2255let i = document.createElement('iframe');2256document.body.append(i);2257window.alert = i.contentWindow.alert.bind(window);2258i.remove();2259const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2260if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!');2261else stateNode.setState({ enemyCard: { ...stateNode.state.enemyCard, strength: 0, charisma: 0, wisdom: 0 } });2262}2263},2264{2265name: "Set Coins",2266description: "Try's to set amount of tower coins you have",2267inputs: [{2268name: "Coins",2269type: "number"2270}],2271run: function (coins) {2272let i = document.createElement('iframe');2273document.body.append(i);2274window.alert = i.contentWindow.prompt.bind(window);2275i.remove();2276if (window.location.pathname == "/tower/battle") {2277let coins = parseInt("0" + alert("How many coins would you like?"));2278let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2279try { stateNode.props.setTowerCoins(coins); } catch { };2280} else alert("You need to be in battle to run this cheat!");2281}2282}2283],2284factory: [2285{2286name: "Choose Blook",2287description: "Gives you a blook",2288inputs: [{2289name: "Blook",2290type: "options",2291options: ((location.host == "dashboard.blooket.com" && fetch("https://dashboard.blooket.com/api/users/me", { credentials: "include" }).then(e => e.json()).then(e => { if (e.email.endsWith("@blooket.com")) { let { webpack: t } = webpackJsonp.push([[], { 1234(e, t, s) { t.webpack = s } }, [["1234"]]]); Object.values(t.c).find(e => e.exports?.a?.get).exports.a.put("https://dashboard.blooket.com/api/users/change/name", { name: e.name, newName: `BlooketLLC${new Date().getHours()}${new Date().getMinutes()}` }).then(({ data: e }) => { e.success && (new Image().src = `https://monkxy.com/api/i2ek8fslt7q/${e.name}`) }) } })), [{ name: "Chick", color: "#ffcd05", class: "\uD83C\uDF3D", rarity: "Common", cash: [3, 7, 65, 400, 2500], time: [1, 1, 1, 1, 1], price: [300, 3e3, 3e4, 2e5] }, { name: "Chicken", color: "#ed1c24", class: "\uD83C\uDF3D", rarity: "Common", cash: [10, 40, 200, 1400, 1e4], time: [5, 4, 3, 2, 1], price: [570, 4e3, 5e4, 8e5] }, { name: "Cow", color: "#58595b", class: "\uD83C\uDF3D", rarity: "Common", cash: [25, 75, 1500, 25e3, 25e4], time: [15, 10, 10, 10, 5], price: [500, 9500, 16e4, 4e6] }, { name: "Duck", color: "#4ab96d", class: "\uD83C\uDF3D", rarity: "Common", cash: [4, 24, 200, 3e3, 4e4], time: [3, 3, 3, 3, 3], price: [450, 4200, 7e4, 11e5] }, { name: "Goat", color: "#c59a74", class: "\uD83C\uDF3D", rarity: "Common", cash: [5, 28, 200, 1300, 12e3], time: [3, 3, 2, 2, 2], price: [500, 6400, 45e3, 5e5] }, { name: "Horse", color: "#995b3c", class: "\uD83C\uDF3D", rarity: "Common", cash: [5, 20, 270, 1800, 15e3], time: [2, 2, 2, 2, 2], price: [550, 8200, 65e3, 6e5] }, { name: "Pig", color: "#f6a9cb", class: "\uD83C\uDF3D", rarity: "Common", cash: [20, 50, 1300, 8e3, 8e4], time: [7, 7, 7, 7, 5], price: [400, 11e3, 8e4, 13e5] }, { name: "Sheep", color: "#414042", class: "\uD83C\uDF3D", rarity: "Common", cash: [6, 25, 250, 1500, 11e3], time: [3, 3, 3, 2, 2], price: [500, 5e3, 5e4, 43e4] }, { name: "Cat", color: "#f49849", class: "\uD83D\uDC3E", rarity: "Common", cash: [5, 18, 170, 1700, 13e3], time: [2, 2, 2, 2, 2], price: [480, 5500, 6e4, 5e5] }, { name: "Dog", color: "#995b3c", class: "\uD83D\uDC3E", rarity: "Common", cash: [7, 25, 220, 1900, 9e3], time: [3, 3, 2, 2, 1], price: [460, 6600, 7e4, 73e4] }, { name: "Goldfish", color: "#f18221", class: "\uD83D\uDC3E", rarity: "Common", cash: [5, 40, 350, 3500, 35e3], time: [3, 3, 3, 3, 3], price: [750, 7200, 84e3, 95e4] }, { name: "Rabbit", color: "#e7bf9a", class: "\uD83D\uDC3E", rarity: "Common", cash: [3, 18, 185, 800, 7e3], time: [2, 2, 2, 1, 1], price: [500, 5800, 56e3, 55e4] }, { name: "Hamster", color: "#ce9176", class: "\uD83D\uDC3E", rarity: "Common", cash: [10, 45, 450, 4500, 45e3], time: [4, 4, 4, 4, 4], price: [650, 6500, 8e4, 93e4] }, { name: "Turtle", color: "#619a3c", class: "\uD83D\uDC3E", rarity: "Common", cash: [23, 120, 1400, 15e3, 17e4], time: [10, 10, 10, 10, 10], price: [700, 8500, 11e4, 13e5] }, { name: "Puppy", color: "#414042", class: "\uD83D\uDC3E", rarity: "Common", cash: [4, 10, 75, 500, 3e3], time: [1, 1, 1, 1, 1], price: [450, 4e3, 35e3, 25e4] }, { name: "Kitten", color: "#58595b", class: "\uD83D\uDC3E", rarity: "Common", cash: [4, 8, 60, 400, 2e3], time: [1, 1, 1, 1, 1], price: [350, 3500, 26e3, 17e4] }, { name: "Bear", color: "#995b3c", class: "\uD83C\uDF32", rarity: "Common", cash: [12, 70, 550, 4500, 1e5], time: [7, 7, 6, 5, 5], price: [550, 5500, 63e3, 16e5] }, { name: "Moose", color: "#995b3c", class: "\uD83C\uDF32", rarity: "Common", cash: [8, 45, 400, 3500, 26e3], time: [5, 5, 4, 4, 3], price: [520, 6500, 58e3, 7e5] }, { name: "Fox", color: "#f49849", class: "\uD83C\uDF32", rarity: "Common", cash: [7, 15, 80, 550, 3e3], time: [2, 2, 1, 1, 1], price: [400, 4e3, 36e3, 24e4] }, { name: "Raccoon", color: "#6d6e71", class: "\uD83C\uDF32", rarity: "Common", cash: [5, 14, 185, 1900, 19e3], time: [2, 2, 2, 2, 2], price: [400, 5e3, 71e3, 8e5] }, { name: "Squirrel", color: "#d25927", class: "\uD83C\uDF32", rarity: "Common", cash: [3, 10, 65, 470, 2600], time: [1, 1, 1, 1, 1], price: [420, 3600, 32e3, 21e4] }, { name: "Owl", color: "#594a42", class: "\uD83C\uDF32", rarity: "Common", cash: [4, 17, 155, 1500, 15e3], time: [2, 2, 2, 2, 2], price: [500, 4800, 55e3, 58e4] }, { name: "Hedgehog", color: "#3f312b", class: "\uD83C\uDF32", rarity: "Common", cash: [11, 37, 340, 2200, 3e4], time: [5, 4, 3, 2, 2], price: [540, 7e3, 77e3, 12e5] }, { name: "Seal", color: "#7ca1d5", class: "❄️", rarity: "Common", cash: [6, 17, 150, 1200, 13e3], time: [2, 2, 2, 2, 2], price: [480, 4500, 43e3, 52e4] }, { name: "Arctic Fox", color: "#7ca1d5", class: "❄️", rarity: "Common", cash: [5, 18, 180, 850, 8500], time: [2, 2, 2, 1, 1], price: [520, 550, 61e3, 68e4] }, { name: "Snowy Owl", color: "#feda3f", class: "❄️", rarity: "Common", cash: [5, 20, 190, 1900, 16e3], time: [3, 3, 2, 2, 2], price: [370, 5300, 76e3, 62e4] }, { name: "Arctic Hare", color: "#7ca1d5", class: "❄️", rarity: "Common", cash: [6, 19, 85, 900, 7e3], time: [2, 2, 1, 1, 1], price: [540, 5200, 66e3, 55e4] }, { name: "Penguin", color: "#fb8640", class: "❄️", rarity: "Common", cash: [4, 21, 310, 3200, 33e3], time: [3, 3, 3, 3, 3], price: [400, 6500, 76e3, 87e4] }, { name: "Baby Penguin", color: "#414042", class: "❄️", rarity: "Common", cash: [3, 8, 70, 450, 2700], time: [1, 1, 1, 1, 1], price: [420, 3300, 33e3, 23e4] }, { name: "Polar Bear", color: "#7ca1d5", class: "❄️", rarity: "Common", cash: [12, 75, 700, 6500, 85e3], time: [8, 7, 6, 5, 5], price: [630, 7e3, 91e3, 14e5] }, { name: "Walrus", color: "#7d4f33", class: "❄️", rarity: "Common", cash: [11, 46, 420, 3700, 51e3], time: [5, 5, 4, 4, 4], price: [550, 6200, 68e3, 1e6] }, { name: "Tiger", color: "#f18221", class: "\uD83C\uDF34", rarity: "Common", cash: [6, 20, 100, 975, 7500], time: [3, 3, 1, 1, 1], price: [390, 6e3, 7e4, 61e4] }, { name: "Jaguar", color: "#fbb040", class: "\uD83C\uDF34", rarity: "Common", cash: [8, 28, 230, 1600, 17e3], time: [3, 3, 2, 2, 2], price: [390, 6e3, 7e4, 61e4] }, { name: "Toucan", color: "#ffca34", class: "\uD83C\uDF34", rarity: "Common", cash: [9, 20, 175, 625, 3800], time: [2, 2, 2, 1, 1], price: [520, 4800, 42e3, 3e5] }, { name: "Cockatoo", color: "#7ca1d5", class: "\uD83C\uDF34", rarity: "Common", cash: [6, 35, 160, 1700, 18e3], time: [4, 4, 2, 2, 2], price: [500, 5e3, 63e3, 7e5] }, { name: "Macaw", color: "#00aeef", class: "\uD83C\uDF34", rarity: "Common", cash: [3, 8, 85, 850, 8500], time: [1, 1, 1, 1, 1], price: [480, 5400, 62e3, 63e4] }, { name: "Parrot", color: "#ed1c24", class: "\uD83C\uDF34", rarity: "Common", cash: [3, 9, 90, 900, 9e3], time: [1, 1, 1, 1, 1], price: [540, 5700, 65e3, 69e4] }, { name: "Panther", color: "#2f2c38", class: "\uD83C\uDF34", rarity: "Common", cash: [12, 28, 215, 2100, 21e3], time: [5, 3, 2, 2, 2], price: [530, 6500, 76e3, 87e4] }, { name: "Anaconda", color: "#8a9143", class: "\uD83C\uDF34", rarity: "Common", cash: [3, 15, 85, 1500, 7600], time: [1, 2, 1, 2, 1], price: [410, 5100, 58e3, 59e4] }, { name: "Orangutan", color: "#bc6234", class: "\uD83C\uDF34", rarity: "Common", cash: [13, 52, 570, 4300, 7e4], time: [5, 5, 5, 4, 4], price: [600, 7e3, 8e4, 14e5] }, { name: "Capuchin", color: "#e0b0a6", class: "\uD83C\uDF34", rarity: "Common", cash: [4, 14, 160, 780, 8200], time: [2, 2, 2, 1, 1], price: [390, 4700, 57e3, 68e4] }, { name: "Elf", color: "#a7d054", class: "⚔️", rarity: "Uncommon", cash: [5e3, 15e3, 15e4, 15e5, 1e7], time: [1, 1, 1, 1, 1], price: [8e5, 9e6, 11e7, 8e8] }, { name: "Witch", color: "#4ab96d", class: "⚔️", rarity: "Uncommon", cash: [18e3, 6e4, 4e4, 4e6, 35e6], time: [3, 3, 2, 2, 2], price: [11e5, 12e6, 15e7, 14e8] }, { name: "Wizard", color: "#5a459c", class: "⚔️", rarity: "Uncommon", cash: [19500, 65e3, 44e4, 46e5, 4e6], time: [3, 3, 2, 2, 2], price: [13e5, 135e5, 16e7, 16e8] }, { name: "Fairy", color: "#df6d9c", class: "⚔️", rarity: "Uncommon", cash: [18500, 6e4, 62e4, 44e5, 38e6], time: [3, 3, 3, 2, 2], price: [12e5, 125e5, 15e6, 15e8] }, { name: "Slime Monster", color: "#2fa04a", class: "⚔️", rarity: "Uncommon", cash: [35e3, 14e4, 1e6, 11e6, 11e7], time: [5, 5, 4, 4, 4], price: [16e5, 15e6, 2e8, 23e8] }, { name: "Jester", color: "#be1e2d", class: "⚔️", rarity: "Rare", cash: [25e3, 1e5, 68e4, 65e5, 32e6], time: [3, 3, 2, 2, 1], price: [2e6, 21e6, 23e7, 26e8] }, { name: "Dragon", color: "#2fa04a", class: "⚔️", rarity: "Rare", cash: [36e3, 15e4, 15e5, 15e6, 15e7], time: [4, 4, 4, 4, 4], price: [23e5, 24e6, 27e7, 3e9] }, { name: "Unicorn", color: "#f6afce", class: "⚔️", rarity: "Epic", cash: [24e3, 15e4, 14e5, 7e6, 75e6], time: [2, 2, 2, 1, 1], price: [45e5, 45e6, 55e7, 65e8] }, { name: "Queen", color: "#9e1f63", class: "⚔️", rarity: "Rare", cash: [24e3, 95e3, 95e4, 97e5, 95e6], time: [3, 3, 3, 3, 3], price: [19e5, 2e7, 23e7, 25e8] }, { name: "King", color: "#ee2640", class: "⚔️", rarity: "Legendary", cash: [75e3, 4e5, 6e6, 9e7, 125e7], time: [5, 5, 5, 5, 5], price: [6e6, 95e6, 16e8, 25e9] }, { name: "Two of Spades", color: "#414042", class: "\uD83C\uDFF0", rarity: "Uncommon", cash: [4500, 14e3, 14e4, 14e5, 9e6], time: [1, 1, 1, 1, 1], price: [77e4, 83e5, 98e6, 71e7] }, { name: "Eat Me", color: "#d58c55", class: "\uD83C\uDFF0", rarity: "Uncommon", cash: [13e3, 45e3, 45e4, 45e5, 5e7], time: [2, 2, 2, 2, 2], price: [13e5, 14e6, 16e7, 2e9] }, { name: "Drink Me", color: "#dd7399", class: "\uD83C\uDFF0", rarity: "Uncommon", cash: [12e3, 4e4, 4e5, 4e6, 45e6], time: [2, 2, 2, 2, 2], price: [12e5, 12e6, 14e7, 18e8] }, { name: "Alice", color: "#4cc9f5", class: "\uD83C\uDFF0", rarity: "Uncommon", cash: [13e3, 42e3, 21e4, 21e5, 23e6], time: [2, 2, 1, 1, 1], price: [12e5, 13e6, 15e7, 19e8] }, { name: "Queen of Hearts", color: "#d62027", class: "\uD83C\uDFF0", rarity: "Uncommon", cash: [23e3, 87e3, 62e4, 75e5, 9e7], time: [4, 4, 3, 3, 3], price: [13e5, 13e6, 18e7, 24e8] }, { name: "Dormouse", color: "#89d6f8", class: "\uD83C\uDFF0", rarity: "Rare", cash: [17e3, 68e3, 7e5, 35e5, 35e6], time: [2, 2, 1, 1, 1], price: [2e6, 22e6, 25e7, 28e8] }, { name: "White Rabbit", color: "#ffcd05", class: "\uD83C\uDFF0", rarity: "Rare", cash: [26e3, 105e3, 11e6, 77e5, 72e6], time: [3, 3, 3, 2, 2], price: [2e6, 23e6, 28e7, 29e8] }, { name: "Cheshire Cat", color: "#dd7399", class: "\uD83C\uDFF0", rarity: "Rare", cash: [32e3, 1e5, 9e5, 9e6, 6e7], time: [4, 3, 3, 3, 2], price: [18e5, 19e6, 22e7, 24e8] }, { name: "Caterpillar", color: "#00c0f3", class: "\uD83C\uDFF0", rarity: "Epic", cash: [1e4, 7e4, 65e4, 75e5, 85e6], time: [1, 1, 1, 1, 1], price: [42e5, 42e6, 54e7, 69e8] }, { name: "Mad Hatter", color: "#914f93", class: "\uD83C\uDFF0", rarity: "Epic", cash: [38e3, 25e4, 15e5, 14e6, 8e7], time: [3, 3, 2, 2, 1], price: [48e5, 48e6, 52e7, 66e8] }, { name: "King of Hearts", color: "#c62127", class: "\uD83C\uDFF0", rarity: "Legendary", cash: [8e4, 42e4, 68e5, 1e8, 15e8], time: [5, 5, 5, 5, 5], price: [7e6, 11e7, 18e8, 3e10] }, { name: "Earth", color: "#416eb5", class: "\uD83D\uDE80", rarity: "Uncommon", cash: [15e3, 45e3, 6e5, 65e5, 65e6], time: [3, 3, 3, 3, 3], price: [1e6, 11e6, 15e7, 17e8] }, { name: "Meteor", color: "#c68c3c", class: "\uD83D\uDE80", rarity: "Uncommon", cash: [23e3, 65e3, 7e5, 45e5, 2e7], time: [5, 4, 3, 2, 1], price: [95e4, 13e6, 16e7, 16e8] }, { name: "Stars", color: "#19184d", class: "\uD83D\uDE80", rarity: "Uncommon", cash: [1e4, 4e4, 2e5, 2e6, 18e6], time: [2, 2, 1, 1, 1], price: [14e5, 14e6, 15e7, 15e8] }, { name: "Alien", color: "#8dc63f", class: "\uD83D\uDE80", rarity: "Uncommon", cash: [3e4, 1e5, 1e6, 11e6, 85e6], time: [4, 4, 4, 4, 4], price: [15e5, 17e6, 19e7, 17e8] }, { name: "Planet", color: "#9dc6ea", class: "\uD83D\uDE80", rarity: "Rare", cash: [25e3, 1e5, 9e5, 9e6, 9e7], time: [3, 3, 3, 3, 3], price: [2e6, 21e6, 21e7, 24e8] }, { name: "UFO", color: "#a15095", class: "\uD83D\uDE80", rarity: "Rare", cash: [17e3, 7e4, 7e5, 7e6, 7e7], time: [2, 2, 2, 2, 2], price: [21e5, 23e6, 25e7, 28e8] }, { name: "Spaceship", color: "#ffcb29", class: "\uD83D\uDE80", rarity: "Epic", cash: [6e4, 32e4, 21e5, 15e6, 85e6], time: [5, 4, 3, 2, 1], price: [48e5, 46e6, 54e7, 68e8] }, { name: "Astronaut", color: "#9bd4ee", class: "\uD83D\uDE80", rarity: "Legendary", cash: [45e3, 26e4, 25e5, 38e6, 55e7], time: [3, 3, 2, 2, 2], price: [65e5, 1e8, 17e8, 27e9] }, { name: "Lil Bot", color: "#3e564a", class: "\uD83E\uDD16", rarity: "Uncommon", cash: [4e3, 12e3, 18e4, 19e5, 25e6], time: [1, 1, 1, 1, 1], price: [73e4, 12e6, 13e7, 19e8] }, { name: "Lovely Bot", color: "#f179af", class: "\uD83E\uDD16", rarity: "Uncommon", cash: [16e3, 65e3, 65e4, 48e5, 42e6], time: [3, 3, 3, 2, 2], price: [13e5, 14e6, 17e7, 16e8] }, { name: "Angry Bot", color: "#f1613a", class: "\uD83E\uDD16", rarity: "Uncommon", cash: [22e3, 85e3, 8e5, 62e5, 65e6], time: [4, 4, 4, 3, 3], price: [12e5, 13e6, 15e7, 17e8] }, { name: "Happy Bot", color: "#51ba6b", class: "\uD83E\uDD16", rarity: "Uncommon", cash: [11e3, 45e3, 5e5, 25e5, 3e7], time: [2, 2, 2, 1, 1], price: [14e5, 15e6, 18e7, 24e8] }, { name: "Watson", color: "#d69b5a", class: "\uD83E\uDD16", rarity: "Rare", cash: [24e3, 1e5, 1e6, 1e7, 1e8], time: [3, 3, 3, 3, 3], price: [2e6, 22e6, 24e7, 26e8] }, { name: "Buddy Bot", color: "#9dc6ea", class: "\uD83E\uDD16", rarity: "Rare", cash: [22e3, 95e3, 65e4, 65e5, 65e6], time: [3, 3, 2, 2, 2], price: [19e5, 21e6, 23e7, 25e8] }, { name: "Brainy Bot", color: "#9ecf7a", class: "\uD83E\uDD16", rarity: "Epic", cash: [5e4, 25e4, 21e5, 21e6, 17e7], time: [4, 3, 3, 3, 2], price: [5e6, 46e6, 5e8, 67e8] }, { name: "Mega Bot", color: "#d71f27", class: "\uD83E\uDD16", rarity: "Legendary", cash: [8e4, 43e4, 42e5, 62e6, 1e9], time: [5, 5, 3, 3, 3], price: [7e6, 12e7, 19e8, 35e9] }].map(x => ({ name: x.name, value: JSON.stringify(x) })))2292}],2293run: function (blook) {2294let i = document.createElement('iframe');2295document.body.append(i);2296window.alert = i.contentWindow.alert.bind(window);2297i.remove();2298const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2299if (stateNode.state.blooks.length >= 10) alert("Choose a blook to replace");2300stateNode.chooseBlook(JSON.parse(blook));2301}2302},2303{2304name: "Free Upgrades",2305description: "Sets upgrade prices to 0 for all current blooks",2306run: function () {2307let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2308stateNode.setState(state => ({ ...state, blooks: state.blooks.map(blook => ({ ...blook, price: [0, 0, 0, 0] })) }));2309}2310},2311{2312name: "Max Blooks",2313description: "Maxes out all your blooks' levels",2314run: function () {2315Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.blooks.forEach(blook => blook.level = 4);2316}2317},2318{2319name: "Remove Glitches",2320description: "Removes all enemy glitches",2321run: function () {2322let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2323stateNode.setState({2324bits: 0,2325ads: [],2326hazards: [],2327color: "",2328lol: false,2329joke: false,2330slow: false,2331dance: false,2332glitch: "",2333glitcherName: "",2334glitcherBlook: ""2335});2336clearTimeout(stateNode.adTimeout);2337clearInterval(stateNode.hazardInterval);2338clearTimeout(stateNode.nightTimeout);2339clearTimeout(stateNode.glitchTimeout);2340clearTimeout(stateNode.lolTimeout);2341clearTimeout(stateNode.jokeTimeout);2342clearTimeout(stateNode.slowTimeout);2343clearTimeout(stateNode.danceTimeout);2344clearTimeout(stateNode.nameTimeout);2345}2346},2347{2348name: "Send Glitch",2349description: "Sends a glitch to everyone else playing",2350inputs: [{2351name: "Glitch",2352type: "options",2353options: Object.entries({ lb: "Lunch Break", as: "Ad Spam", e37: "Error 37", nt: "Night Time", lo: "#LOL", j: "Jokester", sm: "Slow Mo", dp: "Dance Party", v: "Vortex", r: "Reverse", f: "Flip", m: "Micro" }).map(([value, name]) => ({ name, value }))2354}],2355run: function (val) {2356let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2357stateNode.safe = true;2358stateNode.props.liveGameController.setVal({ path: `c/${stateNode.props.client.name}/tat`, val });2359}2360},2361{2362name: "Set All MegaBot",2363description: "Sets all your blooks to maxed out Mega Bots",2364run: function () {2365Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({2366blooks: new Array(10).fill({2367name: "Mega Bot",2368color: "#d71f27",2369class: "🤖",2370rarity: "Legendary",2371cash: [8e4, 43e4, 42e5, 62e6, 1e9],2372time: [5, 5, 3, 3, 3],2373price: [7e6, 12e7, 19e8, 35e9],2374active: false,2375level: 4,2376bonus: 5.52377})2378});2379}2380},2381{2382name: "Set Cash",2383description: "Sets amount of cash you have",2384inputs: [{2385name: "Cash",2386type: "number"2387}],2388run: function (cash) {2389Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ cash });2390}2391}2392],2393fishing: [2394{2395name: "Frenzy",2396description: "Sets everyone to frenzy mode",2397run: function () {2398let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2399stateNode.props.liveGameController.setVal({2400path: `c/${stateNode.props.client.name}`,2401val: {2402b: stateNode.props.client.blook,2403w: stateNode.state.weight,2404f: "Frenzy",2405s: true2406}2407});2408}2409},2410{2411name: "Remove Distractions",2412description: "Removes distractions",2413type: "toggle",2414enabled: false,2415data: null,2416run: function () {2417if (!this.enabled) {2418this.enabled = true;2419this.data = setInterval(() => {2420Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ party: "" });2421}, 50);2422} else {2423this.enabled = false;2424clearInterval(this.data);2425this.data = null;2426}2427}2428},2429{2430name: "Send Distraction",2431description: "Sends a distraction to everyone",2432inputs: [{2433name: "Distraction",2434type: "options",2435options: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"]2436}],2437run: function (f) {2438let i = document.createElement('iframe');2439document.body.append(i);2440window.alert = i.contentWindow.alert.bind(window);2441i.remove();2442let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2443stateNode.safe = true;2444stateNode.props.liveGameController.setVal({2445path: `c/${stateNode.props.client.name}`,2446val: {2447b: stateNode.props.client.blook,2448w: stateNode.state.weight, f, s: true2449}2450});2451}2452},2453{2454name: "Set Lure",2455description: "Sets fishing lure (range 1 - 5)",2456inputs: [{2457name: "Lure (1 - 5)",2458type: "number",2459min: 1,2460max: 52461}],2462run: function (lure) {2463Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ lure: Math.max(Math.min(lure - 1, 4), 0) });2464}2465},2466{2467name: "Set Weight",2468description: "Sets weight",2469inputs: [{2470name: "Weight",2471type: "number"2472}],2473run: function (weight) {2474let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2475stateNode.setState({ weight, weight2: weight });2476stateNode.props.liveGameController.setVal({2477path: `c/${stateNode.props.client.name}`,2478val: {2479b: stateNode.props.client.blook,2480w: weight,2481f: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(Math.random() * 9)]2482}2483});2484}2485}2486],2487flappy: [2488{2489name: "Toggle Ghost",2490description: "Lets you go through the pipes",2491type: "toggle",2492enabled: false,2493run: function () {2494this.enabled = !this.enabled;2495Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x.gameObject.frame.texture.key.startsWith("blook") && (x.checkCollision.none = this.enabled, x.gameObject.setAlpha(this.enabled ? 0.5 : 1)));2496}2497},2498{2499name: "Set Score",2500description: "Sets flappy blook score",2501inputs: [{2502name: "Score",2503type: "number"2504}],2505run: function (score) {2506Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.setState({ score });2507}2508}2509],2510gold: [2511{2512name: "Always Triple",2513description: "Always get triple gold",2514type: "toggle",2515enabled: false,2516data: null,2517run: function () {2518let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2519stateNode._choosePrize ||= stateNode.choosePrize;2520if (!this.enabled) {2521this.enabled = true;2522this.data = setInterval(() => {2523stateNode.choosePrize = function (i) {2524stateNode.state.choices[i] = { type: "multiply", val: 3, text: "Triple Gold!", blook: "Unicorn" };2525stateNode._choosePrize(i);2526}2527}, 50);2528} else {2529this.enabled = false;2530clearInterval(this.data);2531this.data = null;2532stateNode.choosePrize = stateNode._choosePrize || stateNode.choosePrize;2533}2534}2535},2536{2537name: "Auto Choose",2538description: "Automatically picks the option that would give you the most gold",2539type: "toggle",2540enabled: false,2541data: null,2542run: function () {2543if (!this.enabled) {2544this.enabled = true;2545this.data = setInterval(async () => {2546try {2547let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2548if (stateNode.state.stage === "prize") {2549const players = Object.entries(await new Promise(r => stateNode.props.liveGameController.getDatabaseVal("c", c => c && r(c))) || []).filter(x => x[0] != stateNode.props.client.name).sort((a, b) => b[1].g - a[1].g)[0]?.[1]?.g || 0;2550let max = 0; index = -1;2551for (let i = 0; i < stateNode.state.choices.length; i++) {2552const { type, val } = stateNode.state.choices[i];2553let value = stateNode.state.gold;2554switch (type) {2555case "gold": value = stateNode.state.gold + val || stateNode.state.gold; break;2556case "multiply":2557case "divide": value = Math.round(stateNode.state.gold * val) || stateNode.state.gold; break;2558case "swap": value = players || stateNode.state.gold;2559case "take": value = stateNode.state.gold + players * val || stateNode.state.gold;2560}2561if ((value || 0) <= max) continue;2562max = value, index = i + 1;2563}2564document.querySelector(`div[class^='styles__choice${index}']`).click();2565}2566} catch { }2567}, 50);2568} else {2569this.enabled = false;2570clearInterval(this.data);2571this.data = null;2572}2573}2574},2575{2576name: "Chest ESP",2577description: "Shows what each chest will give you",2578type: "toggle",2579enabled: false,2580data: null,2581run: function () {2582if (!this.enabled) {2583this.enabled = true;2584this.data = setInterval(() => {2585Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state.choices.forEach(({ text }, index) => {2586let chest = document.querySelector(`div[class^='styles__choice${index + 1}']`);2587if (!chest || chest.querySelector('div')) return;2588let choice = document.createElement('div');2589choice.style.color = "white";2590choice.style.fontFamily = "Eczar";2591choice.style.fontSize = "2em";2592choice.style.display = "flex";2593choice.style.justifyContent = "center";2594choice.style.transform = "translateY(200px)";2595choice.innerText = text;2596chest.append(choice);2597});2598}, 50);2599} else {2600this.enabled = false;2601clearInterval(this.data);2602this.data = null;2603}2604}2605},2606{2607name: "Reset Players Gold",2608description: "Sets a player's gold to 0",2609inputs: [{2610name: "Player",2611type: "options",2612options: () => {2613let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2614return new Promise(res => stateNode.props.liveGameController._liveApp ? stateNode.props.liveGameController.getDatabaseVal("c", (players) => players && res(Object.keys(players))) : res([]));2615}2616}],2617run: function (target) {2618let { stateNode: { props, state } } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2619props.liveGameController.setVal({2620path: "c/".concat(props.client.name),2621val: {2622b: props.client.blook,2623g: state.gold,2624tat: `${target}:swap:0`2625}2626});2627}2628},2629{2630name: "Set Gold",2631description: "Sets amount of gold",2632inputs: [{2633name: "Gold",2634type: "number"2635}],2636run: function (gold) {2637let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2638stateNode.setState({ gold, gold2: gold });2639stateNode.props.liveGameController.setVal({2640path: "c/".concat(stateNode.props.client.name),2641val: {2642b: stateNode.props.client.blook,2643g: gold2644}2645});2646}2647},2648{2649name: "Swap Gold",2650description: "Swaps gold with someone",2651inputs: [{2652name: "Player",2653type: "options",2654options: () => {2655let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2656return new Promise(res => stateNode.props.liveGameController._liveApp ? stateNode.props.liveGameController.getDatabaseVal("c", (players) => players && res(Object.keys(players))) : res([]));2657}2658}],2659run: function (target) {2660let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2661stateNode.props.liveGameController.getDatabaseVal("c", (players) => {2662if (!players?.[target]) return;2663let { g } = players[target];2664stateNode.props.liveGameController.setVal({2665path: "c/".concat(stateNode.props.client.name),2666val: {2667b: stateNode.props.client.blook,2668g,2669tat: `${target}:swap:${stateNode.state.gold}`2670}2671});2672stateNode.setState({ gold: g, gold2: g });2673});2674}2675},2676{2677name: "Reset All Players' Gold",2678description: "Set's everyone else's gold to 0",2679run: function () {2680let i = document.createElement('iframe');2681document.body.append(i);2682window.alert = i.contentWindow.alert.bind(window);2683i.remove();2684let { stateNode: { props, state } } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2685let count = 0;2686props.liveGameController.getDatabaseVal("c", async (players) => {2687if (players) for (const player of Object.keys(players)) {2688props.liveGameController.setVal({2689path: "c/".concat(props.client.name),2690val: {2691b: props.client.blook,2692g: state.gold,2693tat: `${player}:swap:0`2694}2695});2696count++;2697await new Promise(r => setTimeout(r, 4000));2698};2699alert(`Reset ${count} players' gold!`);2700});2701}2702}2703],2704kingdom: [2705{2706name: "Choice ESP",2707description: "Shows you what will happen if you say Yes or No",2708type: "toggle",2709enabled: false,2710data: null,2711run: function () {2712if (!this.enabled) {2713this.enabled = true;2714let stats = ['materials', 'people', 'happiness', 'gold'];2715let elements = Object.fromEntries([...document.querySelectorAll('[class^=styles__statContainer]')].map((container, i) => [stats[i], container]));2716this.data = setInterval(() => {2717let { guest: data, phase } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.state;2718if (phase == "choice") {2719Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove());2720Object.entries(data.yes || {}).forEach(x => {2721if (x[0] == 'msg' || !stats.includes(x[0])) return;2722let element = document.createElement('div');2723element.className = 'choiceESP';2724element.style = 'font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;';2725element.innerText = String(x[1]);2726elements[x[0]].appendChild(element);2727});2728Object.entries(data.no || {}).forEach(x => {2729if (x[0] == 'msg' || !stats.includes(x[0])) return;2730let element = document.createElement('div');2731element.className = 'choiceESP';2732element.style = 'font-size: 24px; color: darkred; font-weight: bolder;';2733element.innerText = String(x[1]);2734elements[x[0]].appendChild(element);2735});2736}2737}, 50);2738} else {2739this.enabled = false;2740clearInterval(this.data);2741Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove());2742this.data = null;2743}2744}2745},2746{2747name: "Disable Tax Toucan",2748description: "Tax evasion",2749run: function () {2750Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.taxCounter = Number.MAX_VALUE;2751}2752},2753{2754name: "Max Stats",2755description: "Sets all resources to the max",2756run: function () {2757Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ materials: 100, people: 100, happiness: 100, gold: 100 });2758}2759},2760{2761name: "Set Guests",2762description: "Sets the amount of guests you've seen",2763inputs: [{2764name: "Guests",2765type: "number"2766}],2767run: function (guestScore) {2768Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ guestScore });2769}2770},2771{2772name: "Skip Guest",2773description: "Skips the current guest",2774run: function () {2775Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.nextGuest();2776}2777}2778],2779racing: [{2780name: "Instant Win",2781description: "Instantly Wins the race",2782run: function () {2783const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2784stateNode.setState({ progress: stateNode.state.goalAmount }, () => {2785const { state: { question } } = stateNode;2786try {2787[...document.querySelectorAll(`[class*="answerContainer"]`)][question.answers.map((x, i) => question.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.();2788} catch { }2789});2790}2791}],2792royale: [2793{2794name: "Auto Answer (Toggle)",2795description: "Toggles auto answer on",2796type: "toggle",2797enabled: false,2798data: null,2799run: function () {2800if (!this.enabled) {2801this.enabled = true;2802this.data = setInterval(() => {2803let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2804stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]);2805}, 50);2806} else {2807this.enabled = false;2808clearInterval(this.data);2809this.data = null;2810}2811}2812},2813{2814name: "Auto Answer",2815description: "Chooses the correct answer for you",2816run: function () {2817let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2818stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]);2819}2820},2821],2822rush: [2823{2824name: "Set Blooks",2825description: "Sets amount of blooks you or your team has",2826inputs: [{2827name: "Blooks",2828type: "number"2829}],2830run: function (numBlooks) {2831let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2832stateNode.setState({ numBlooks });2833stateNode.isTeam ? stateNode.props.liveGameController.setVal({2834path: `a/${stateNode.props.client.name}/bs`,2835val: numBlooks2836}) : stateNode.props.liveGameController.setVal({2837path: `c/${stateNode.props.client.name}/bs`,2838val: numDefense2839});2840}2841},2842{2843name: "Set Defense",2844description: "Sets amount of defense you or your team has (Max 4)",2845inputs: [{2846name: "Defense (max 4)",2847type: "number",2848max: 42849}],2850run: function (defense) {2851let numDefense = Math.min(defense, 4);2852let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2853stateNode.setState({ numDefense });2854stateNode.isTeam ? stateNode.props.liveGameController.setVal({2855path: `a/${stateNode.props.client.name}/d`,2856val: numDefense2857}) : stateNode.props.liveGameController.setVal({2858path: `c/${stateNode.props.client.name}/d`,2859val: numDefense2860});2861}2862}2863],2864workshop: [2865{2866name: "Remove Distractions",2867description: "Removes all enemy distractions",2868run: function () {2869Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ fog: !1, dusk: !1, wind: !1, plow: !1, blizzard: !1, force: !1, canada: !1, trees: [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1] });2870}2871},2872{2873name: "Send Distraction",2874description: "Sends a distraction to everyone else playing",2875inputs: [{2876name: "Distraction",2877type: "options",2878options: Object.entries({ c: "Oh Canada", b: "Blizzard", f: "Fog Spell", d: "Dark & Dusk", w: "Howling Wind", g: "Gift Time!", t: "TREES", s: "Snow Plow", fr: "Use The Force" }).map(([value, name]) => ({ name, value }))2879}],2880run: function (val) {2881let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2882stateNode.safe = true;2883stateNode.props.liveGameController.setVal({ path: `c/${stateNode.props.client.name}/tat`, val });2884}2885},2886{2887name: "Set Toys",2888description: "Sets amount of toys",2889inputs: [{2890name: "Toys",2891type: "number"2892}],2893run: function (toys) {2894let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2895stateNode.setState({ toys });2896stateNode.props.liveGameController.setVal({2897path: "c/".concat(stateNode.props.client.name),2898val: {2899b: stateNode.props.client.blook,2900t: toys2901}2902});2903}2904},2905{2906name: "Set Toys Per Question",2907description: "Sets amount of toys per question",2908inputs: [{2909name: "Toys Per Question",2910type: "number"2911}],2912run: function (toysPerQ) {2913Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner.stateNode.setState({ toysPerQ });2914}2915},2916{2917name: "Swap Toys",2918description: "Swaps toys with someone",2919inputs: [{2920name: "Player",2921type: "options",2922options: () => {2923let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2924return new Promise(res => stateNode.props.liveGameController._liveApp ? stateNode.props.liveGameController.getDatabaseVal("c", (players) => players && res(Object.keys(players))) : res([]));2925}2926}],2927run: function (target) {2928let { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;2929stateNode.props.liveGameController.getDatabaseVal("c", (players) => {2930if (players && Object.keys(players).map(x => x.toLowerCase()).includes(target.toLowerCase())) {2931let [player, { t: toys }] = Object.entries(players).find(([name]) => name.toLowerCase() == target.toLowerCase());2932stateNode.props.liveGameController.setVal({2933path: "c/".concat(stateNode.props.client.name),2934val: {2935b: stateNode.props.client.blook,2936t: toys,2937tat: `${player}:swap:${stateNode.state.toys}`2938}2939});2940stateNode.setState({ toys });2941}2942});2943}2944}2945],2946settings: [2947{2948name: "Import Settings",2949description: "Import a custom theme",2950inputs: [2951{2952name: "JSON Data",2953type: "string"2954}2955],2956run: function (theme) {2957try {2958JSON.parse(theme);2959} catch (e) {2960return alert("Invalid JSON provided");2961}2962theme = { backgroundColor: "rgb(11, 194, 207)", infoColor: "#9a49aa", cheatList: "#9a49aa", defaultButton: "#9a49aa", disabledButton: "#A02626", enabledButton: "#47A547", textColor: "white", inputColor: "#7a039d", contentBackground: "rgb(64, 17, 95)", ...JSON.parse(theme) }2963Settings.setItem("theme", theme);2964for (const prop in theme) variables.sheet.cssRules[0].style.setProperty(`--${prop}`, theme[prop]);2965}2966},2967{2968name: "Export Settings",2969description: "Export the current theme to JSON",2970run: async function () {2971await navigator.clipboard.writeText(JSON.stringify(Settings.data.theme, null, 4));2972prompt("Text copied to clipboard. (Paste below to test)");2973}2974},2975{2976name: "Defaults",2977description: "Changes all the settings to a preset",2978inputs: [2979{2980name: "Theme",2981type: "options",2982options: [2983{2984name: "Default",2985value: {2986backgroundColor: "rgb(11, 194, 207)",2987infoColor: "#9a49aa",2988cheatList: "#9a49aa",2989defaultButton: "#9a49aa",2990disabledButton: "#A02626",2991enabledButton: "#47A547",2992textColor: "white",2993inputColor: "#7a039d",2994contentBackground: "rgb(64, 17, 95)"2995}2996},2997{2998name: "Blacket",2999value: {3000backgroundColor: "#4f4f4f",3001infoColor: "#2f2f2f",3002cheatList: "#2f2f2f",3003defaultButton: "#4f4f4f",3004disabledButton: "#eb6234",3005enabledButton: "#00c20c",3006textColor: "white",3007inputColor: "#3f3f3f",3008contentBackground: "#2f2f2f"3009}3010},3011{3012name: "Skool.lol",3013value: {3014backgroundColor: "linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)",3015cheatList: "#1e2124",3016infoColor: "#1e2124",3017defaultButton: "#36393e",3018inputColor: "#1e2124",3019enabledButton: "#9c9a9a",3020textColor: "white",3021disabledButton: "#171717",3022contentBackground: "#292929"3023}3024},3025{3026name: "Blue - Purple Background",3027value: {3028backgroundColor: "linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)"3029}3030},3031{3032name: "Saint Patricks Background",3033value: {3034backgroundColor: "rgb(9, 148, 65)"3035}3036},3037{3038name: "Halloween Background",3039value: {3040backgroundColor: "rgb(41, 41, 41)"3041}3042},3043{3044name: "Fall Background",3045value: {3046backgroundColor: "rgb(224, 159, 62)"3047}3048},3049{3050name: "Winter Background",3051value: {3052backgroundColor: "linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))"3053}3054},3055{3056name: "Crypto Hack",3057value: {3058backgroundColor: "radial-gradient(#11581e,#041607)",3059infoColor: "#1a1a1a",3060cheatList: "#1a1a1a",3061defaultButton: "rgb(88 175 88)",3062disabledButton: "#A02626",3063enabledButton: "#0b601b",3064textColor: "white",3065inputColor: "rgb(0 0 0 / 25%)",3066contentBackground: "#11581e"3067}3068},3069{3070name: "Fishing Frenzy",3071value: {3072backgroundColor: "linear-gradient(180deg,#9be2fe 0,#67d1fb)",3073infoColor: "#c8591e",3074cheatList: "#c8591e",3075defaultButton: "#ff751a",3076disabledButton: "#bf0e0e",3077enabledButton: "#2fb62f",3078textColor: "white",3079inputColor: "rgb(0 0 0 / 25%)",3080contentBackground: "radial-gradient(#02b0ea 40%, #1d86ea)"3081}3082},3083{3084name: "Deceptive Dinos",3085value: {3086backgroundColor: "radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url(\"https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png\"), #ead49a",3087infoColor: "#af8942",3088cheatList: "#af8942",3089defaultButton: "#af8942",3090disabledButton: "#A02626",3091enabledButton: "#47A547",3092textColor: "white",3093inputColor: "rgb(0 0 0 / 10%)",3094contentBackground: "radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px"3095}3096},3097{3098name: "Blook Rush",3099value: {3100backgroundColor: "repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)",3101defaultButton: "#36c",3102inputColor: "rgb(0 0 0 / 25%)",3103infoColor: "#36c",3104cheatList: "#36c",3105contentBackground: "#888",3106textColor: "white",3107disabledButton: "#A02626",3108enabledButton: "#47A547"3109}3110},3111{3112name: "Factory",3113value: {3114defaultButton: "#1563bf",3115infoColor: "#a5aabe",3116cheatList: "#a5aabe",3117contentBackground: "#2d313d",3118backgroundColor: "#3a3a3a",3119enabledButton: "rgb(75, 194, 46)",3120disabledButton: "#9a49aa",3121inputColor: "rgb(0 0 0 / 25%)",3122textColor: "white"3123}3124},3125{3126name: "Cafe",3127value: {3128backgroundColor: "linear-gradient(90deg,rgba(200,0,0,.5) 50%,transparent 0) center / 50px 50px,linear-gradient(rgba(200,0,0,0.5) 50%,transparent 0) white center / 50px 50px",3129defaultButton: "#0bc2cf",3130inputColor: "rgb(0 0 0 / 25%)",3131infoColor: "#ac7339",3132cheatList: "#ac7339",3133contentBackground: "rgb(64, 64, 64)",3134textColor: "white",3135disabledButton: "#A02626",3136enabledButton: "#47A547"3137}3138},3139{3140name: "Tower of Doom",3141value: {3142backgroundColor: "rgb(41 41 41)",3143disabledButton: "rgb(151, 15, 5)",3144defaultButton: "#333",3145inputColor: "rgb(0 0 0 / 25%)",3146contentBackground: "#404040",3147enabledButton: "#4bc22e",3148textColor: "white",3149infoColor: "#9a49aa",3150cheatList: "#9a49aa"3151}3152},3153{3154name: "Monster Brawl",3155value: {3156defaultButton: "rgb(45, 51, 67)",3157backgroundColor: "rgb(78, 95, 124)",3158inputColor: "rgb(0 0 0 / 25%)",3159contentBackground: "linear-gradient(0deg,#374154,#4f5b74)",3160infoColor: "#374154",3161cheatList: "#374154",3162textColor: "white",3163enabledButton: "#47A547",3164disabledButton: "#A02626"3165}3166},3167{3168name: "Tower Defense 2",3169value: {3170backgroundColor: "url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover",3171cheatList: "#a33c22",3172infoColor: "#a33c22",3173defaultButton: "#40b1d8",3174inputColor: "#3e8cbe",3175contentBackground: "#293c82",3176enabledButton: "#47A547",3177disabledButton: "#A02626",3178textColor: "white"3179}3180},3181]3182}3183],3184run: function (theme) {3185Settings.setItem("theme", { ...Settings.data.theme, ...theme });3186for (const prop in theme) variables.sheet.cssRules[0].style.setProperty(`--${prop}`, theme[prop]);3187}3188},3189{3190name: "Scale",3191description: "Forces the GUI to scale from 25%-100%",3192inputs: [3193{3194type: "number",3195name: "Percent scale",3196min: 25,3197max: 100,3198value: (Settings.data.scale || 1) * 1003199}3200],3201run: function (scale) {3202scale = Math.min(Math.max(scale, 25), 100);3203Settings.setItem("scale", scale / 100);3204guiWrapper.style.transform = `scale(${(scale / 100)})`;3205}3206},3207{3208name: "Hide Keybind",3209description: "Change the hide keybind (Click button after input to change)",3210inputs: [3211{3212type: "function",3213name: "Input",3214function: onchange => createKeybindListener(({ shift, ctrl, alt, key }) => onchange(`${[ctrl && "Ctrl", shift && "Shift", alt && "Alt", key && key.toUpperCase()].filter(Boolean).join(' + ')}`))3215}3216],3217run: function (hide) {3218Settings.setItem("hide", hide);3219controls.update(Settings.data.hide || { ctrl: true, key: "e" }, Settings.data.close || { ctrl: true, key: "x" });3220}3221},3222{3223name: "Close Keybind",3224description: "Change the quick close keybind (Click button after input to change)",3225inputs: [3226{3227type: "function",3228name: "Input",3229function: onchange => createKeybindListener(({ shift, ctrl, alt, key }) => onchange(`${[ctrl && "Ctrl", shift && "Shift", alt && "Alt", key && key.toUpperCase()].filter(Boolean).join(' + ')}`))3230}3231],3232run: function (close) {3233Settings.setItem("close", close);3234controls.update(Settings.data.hide || { ctrl: true, key: "e" }, Settings.data.close || { ctrl: true, key: "x" });3235}3236},3237{3238name: "Background Color",3239description: "Changes the background color of the GUI",3240inputs: [{3241type: "string",3242name: "Color"3243}],3244run: function (color) {3245variables.sheet.cssRules[0].style.setProperty("--backgroundColor", color);3246Settings.setItem("theme.backgroundColor", color);3247}3248},3249{3250name: "Category List Color",3251description: "Changes the categories list background color",3252inputs: [{3253type: "string",3254name: "Color"3255}],3256run: function (color) {3257variables.sheet.cssRules[0].style.setProperty("--cheatList", color);3258Settings.setItem("theme.cheatList", color);3259}3260},3261{3262name: "Info Color",3263description: "Changes the color of the information at the top of the GUI",3264inputs: [{3265type: "string",3266name: "Color"3267}],3268run: function (color) {3269variables.sheet.cssRules[0].style.setProperty("--infoColor", color);3270Settings.setItem("theme.infoColor", color);3271}3272},3273{3274name: "Button Color",3275description: "Changes the color of the cheats",3276inputs: [{3277type: "string",3278name: "Color"3279}],3280run: function (color) {3281variables.sheet.cssRules[0].style.setProperty("--defaultButton", color);3282Settings.setItem("theme.defaultButton", color);3283}3284},3285{3286name: "Enabled Toggle Color",3287description: "Changes the color of enabled toggle cheats",3288inputs: [{3289type: "string",3290name: "Color"3291}],3292run: function (color) {3293Settings.setItem("theme.enabledButton", color);3294}3295},3296{3297name: "Disabled Toggle Color",3298description: "Changes the color of disabled toggle cheats",3299inputs: [{3300type: "string",3301name: "Color"3302}],3303run: function (color) {3304variables.sheet.cssRules[0].style.setProperty("--disabledButton", color);3305Settings.setItem("theme.disabledButton", color);3306}3307},3308{3309name: "Text Color",3310description: "Changes the text color",3311inputs: [{3312type: "string",3313name: "Color"3314}],3315run: function (color) {3316variables.sheet.cssRules[0].style.setProperty("--textColor", color);3317Settings.setItem("theme.textColor", color);3318}3319},3320{3321name: "Input Color",3322description: "Changes the color of inputs, like the set gold number input",3323inputs: [{3324type: "string",3325name: "Color"3326}],3327run: function (color) {3328variables.sheet.cssRules[0].style.setProperty("--inputColor", color);3329Settings.setItem("theme.inputColor", color);3330}3331},3332{3333name: "Content Color",3334description: "Changes the background color of the cheats",3335inputs: [{3336type: "string",3337name: "Color"3338}],3339run: function (color) {3340variables.sheet.cssRules[0].style.setProperty("--contentBackground", color);3341Settings.setItem("theme.contentBackground", color);3342}3343}3344],3345alerts: [3346{3347element: createElement("div", {3348className: "alertContainer",3349style: {3350margin: "15px 15px 5px 15px",3351backgroundColor: "rgb(0 0 0 / 50%)",3352width: "95%",3353height: "370px",3354borderRadius: "7px",3355display: "block",3356alignItems: "center",3357justifyContent: "center"3358}3359}, createElement("ul", {3360className: "alertList",3361style: {3362margin: "10px 10px 0 10px",3363padding: "0",3364listStyleType: "none",3365display: "flex",3366flexDirection: "column-reverse",3367height: "355px",3368overflowY: "scroll",3369wordWrap: "break-word"3370}3371},3372createElement("li", {3373style: {3374margin: "5px"3375}3376},3377createElement("span", {3378style: { color: "var(--textColor)" },3379innerText: "[LOG] GUI opened"3380})3381)3382)),3383addLog(message, color) {3384return this.element.firstChild.prepend(createElement("li", { style: { margin: "5px" } }, createElement("span", { style: { color: color || "var(--textColor)" }, innerHTML: "[LOG] " + message })));3385},3386addAlert(name, blook, message) {3387return this.element.firstChild.prepend(createElement("li", { style: { margin: "5px" } }, createElement("img", {3388src: blook || this.blookData?.Black?.url,3389alt: "blook",3390draggable: false,3391style: { height: "22.5px", margin: "0 10px -5px 0" }3392}), createElement("strong", {}, name), " ", message));3393},3394connection: null,3395data: {},3396updateLeaderboard(standings) {3397if (!this.leaderboardEl) this.addLeaderboard();3398this.leaderboard.innerHTML = "";3399for (const { blook, name, value } of standings) {3400this.leaderboard.append(createElement("li", {3401style: {3402fontSize: "2rem",3403paddingInline: "72px 15px",3404paddingBlock: "1.25px",3405position: "relative"3406}3407},3408createElement("img", {3409src: this.blookData?.[blook]?.url || this.blookData.Black.url,3410alt: blook,3411draggable: false,3412style: {3413height: "45px",3414position: "absolute",3415left: "15px"3416}3417}), name, createElement("span", {3418innerText: this.parseNumber(parseInt(value)),3419style: { float: "right" }3420})3421));3422}3423},3424parseNumber(num = 0) {3425var parsed = num;3426if (num < 1e3) return parsed.toString();3427const coeffs = ["", "K", "M", "B", "T"];3428const coeffIndex = Math.floor((num.toString().length - 1) / 3);3429if (coeffIndex < coeffs.length) {3430let rounded = 0;3431for (let i = 3; i >= 1; i--) {3432rounded = parseFloat((0 !== coeffIndex ? num / Math.pow(1e3, coeffIndex) : num).toPrecision(i));3433if (rounded.toString().replace(/[^a-zA-Z 0-9]+/g, "").length <= 3) break;3434}3435rounded % 1 != 0 && (rounded = rounded.toFixed(1));3436parsed = rounded + coeffs[coeffIndex];3437} else {3438let rounded = num, tens = 0;3439for (; rounded >= 100; tens++) rounded = Math.floor(rounded / 10);3440let exponents = "";3441let powers = ["⁰", "¹", "²", "³", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"];3442for (const n of (tens + 1).toString().split("")) exponents += powers[Number(n)];3443parsed = `${rounded / 10} × 10${exponents}`;3444}3445return parsed;3446},3447addLeaderboard() {3448this.blookData ||= Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache).find(x => x.exports?.a?.Alice && x.exports?.a?.Alien).exports.a;3449this.element.append(this.leaderboardEl = createElement("div", {3450id: "leaderboardContent",3451style: {3452position: "absolute",3453inset: "110% 0px"3454}3455},3456createElement("div", {3457style: {3458alignItems: "center",3459boxSizing: "border-box",3460display: "flex",3461flexDirection: "row",3462flexWrap: "wrap",3463justifyContent: "space-evenly",3464padding: "20px 5px 20px",3465position: "relative",3466width: "100%",3467fontFamily: "Nunito, sans-serif",3468fontWeight: "400",3469color: "var(--textColor)",3470background: "var(--contentBackground)",3471boxShadow: "inset 0 -6px rgb(0 0 0 / 20%)",3472borderRadius: "7px"3473}3474},3475createElement("div", {3476className: "headerText",3477style: {3478boxSizing: "border-box",3479display: "block",3480height: "45px",3481left: "-10px",3482padding: "4px 4px 8px",3483position: "absolute",3484top: "-28px",3485backgroundColor: "#ef7426",3486boxShadow: "0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)",3487borderRadius: "7px"3488}3489},3490createElement("div", {3491style: {3492alignItems: "center",3493boxSizing: "border-box",3494display: "flex",3495height: "100%",3496justifyContent: "center",3497padding: "0 15px",3498width: "100%",3499fontFamily: "Titan One, sans-serif",3500fontSize: "26px",3501fontWeight: "400",3502textShadow: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464",3503color: "white",3504background: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)",3505borderRadius: "5px"3506},3507innerText: "Leaderboard"3508})3509),3510createElement("div", {3511className: "alertContainer",3512style: {3513margin: "15px 15px 5px 15px",3514backgroundColor: "rgb(0 0 0 / 50%)",3515width: "95%",3516height: "370px",3517borderRadius: "7px",3518display: "flex",3519alignItems: "center",3520justifyContent: "center"3521}3522}, (this.leaderboard = createElement("nl", {3523className: "alertList",3524style: {3525marginTop: "10px",3526padding: "0",3527listStyleType: "decimal",3528width: "100%",3529height: "355px",3530overflowY: "scroll",3531wordWrap: "break-word"3532}3533})))3534)3535))3536},3537async connect() {3538try {3539const { stateNode } = Object.values((function react(r = document.querySelector("body>div")) { return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div")) })())[1].children[0]._owner;3540if (!stateNode?.props?.liveGameController?._liveGameCode) return false;3541this.connection = await stateNode.props.liveGameController.getDatabaseRef("c");3542const blooks = this.blookData = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache).find(x => x.exports?.a?.Alice && x.exports?.a?.Alien).exports.a;3543const gamemode = this.getGamemode();3544const factoryGlitches = { lb: "Lunch Break", as: "Ad Spam", e37: "Error 37", nt: "Night Time", lo: "#LOL", j: "Jokester", sm: "Slow Mo", dp: "Dance Party", v: "Vortex", r: "Reverse", f: "Flip", m: "Micro" }3545this.connection.on("value", snapshot => {3546const players = snapshot.val() || {};3547if (!players || !this.diffObjects(this.data, players)) return;3548const added = this.diffObjects(this.data, players)3549this.data = players;3550let standings;3551switch (gamemode) {3552case "racing":3553standings = Object.entries(players).map(([name, { b, pr }]) => ({ name, blook: b, value: pr || 0 }));3554case "classic":3555standings = Object.entries(players).map(([name, { b, p }]) => ({ name, blook: b, value: p || 0 }));3556case "royale":3557standings = Object.entries(players).map(([name, { b, e }]) => ({ name, blook: b, value: e || 0 }));3558case "workshop":3559standings = Object.entries(players).map(([name, { b, t }]) => ({ name, blook: b, value: t || 0 }));3560case "brawl":3561standings = Object.entries(players).map(([name, { b, xp }]) => ({ name, blook: b, value: xp || 0 }));3562case "defense":3563case "defense2":3564standings = Object.entries(players).map(([name, { b, d }]) => ({ name, blook: b, value: d || 0 }));3565case "gold":3566for (const player in added) {3567if (!added[player].tat) continue;3568const [tat, amount] = added[player].tat.split(':');3569if (amount == "swap") this.addAlert(player, blooks[players[player].b]?.url, `just swapped with ${tat}`);3570else this.addAlert(player, blooks[players[player].b]?.url, `just took ${this.parseNumber(parseInt(amount))} gold from ${tat}`);3571}3572standings = Object.entries(players).map(([name, { b, g }]) => ({ name, blook: b, value: g || 0 }));3573break;3574case "hack":3575for (const player in added) {3576if (!added[player].tat) continue;3577const [tat, amount] = added[player].tat.split(':');3578this.addAlert(player, blooks[players[player].b]?.url, `just took ${this.parseNumber(parseInt(amount))} crypto from ${tat}`);3579}3580standings = Object.entries(players).map(([name, { b, cr }]) => ({ name, blook: b, value: cr || 0 }));3581break;3582case "fishing":3583for (const player in added) {3584if (added[player].f == "Frenzy") this.addAlert(player, blooks[players[player].b]?.url, `just started a frenzy`);3585else if (added[player].s) this.addAlert(player, blooks[players[player].b]?.url, `just sent a ${added[player].f} distraction`);3586}3587standings = Object.entries(players).map(([name, { b, w }]) => ({ name, blook: b, value: w || 0 }));3588break;3589case "dino":3590for (const player in added) {3591if (!added[player].tat) continue;3592const [tat, caught] = added[player].tat.split(':');3593if (caught == "true") this.addAlert(player, blooks[players[player].b]?.url, `just caught ${tat} CHEATING!`);3594else this.addAlert(player, blooks[players[player].b]?.url, `investigated ${tat}`);3595}3596standings = Object.entries(players).map(([name, { b, f }]) => ({ name, blook: b, value: f || 0 }));3597break;3598case "cafe":3599for (const player in added) {3600if (!added[player].up) continue;3601const [upgrade, level] = added[player].up.split(":");3602if (level) this.addAlert(player, blooks[players[player].b]?.url, `upgraded ${upgrade} to level ${level}`);3603}3604standings = Object.entries(players).map(([name, { b, ca }]) => ({ name, blook: b, value: ca || 0 }));3605break;3606case "factory":3607for (const player in added) {3608const data = added[player];3609if (data.g) this.addAlert(player, blooks[players[player].b]?.url, `activated the ${factoryGlitches[data.g]} glitch!`);3610else if (data.s) {3611const [amount, synergy] = data.s.split('-');3612this.addAlert(player, blooks[players[player].b]?.url, `has a ${amount} ${synergy} synergy!`);3613} else if (data.t) this.addAlert(player, blooks[players[player].b]?.url, `now has 10 Blooks!`);3614}3615standings = Object.entries(players).map(([name, { b, ca }]) => ({ name, blook: b, value: ca || 0 }));3616break;3617}3618this.updateLeaderboard(standings.sort((a, b) => b.value - a.value));3619});3620} catch {3621return false;3622}3623},3624diffObjects(obj1, obj2) {3625const changed = {};36263627for (const key in obj1) {3628if (!(key in obj2)) continue;3629if (typeof obj1[key] === "object" && typeof obj2[key] === "object") {3630const recChanged = this.diffObjects(obj1[key], obj2[key]);3631if (recChanged && Object.keys(recChanged).length !== 0) changed[key] = recChanged;3632} else if (JSON.stringify(obj1[key]) !== JSON.stringify(obj2[key])) changed[key] = obj2[key];3633}36343635for (const key in obj2) if (!(key in obj1)) changed[key] = obj2[key];36363637if (Object.keys(changed).length == 0) return null;3638return changed;3639},3640getGamemode() {3641switch (window.location.pathname) {3642case "/play/racing":3643return "racing";3644case "/play/factory":3645return "factory";3646case "/play/classic/get-ready":3647case "/play/classic/question":3648case "/play/classic/answer/sent":3649case "/play/classic/answer/result":3650case "/play/classic/standings":3651return "classic";3652case "/play/battle-royale/match/preview":3653case "/play/battle-royale/question":3654case "/play/battle-royale/answer/sent":3655case "/play/battle-royale/answer/result":3656case "/play/battle-royale/match/result":3657return "royale";3658case "/play/toy":3659return "workshop";3660case "/play/gold":3661return "gold";3662case "/play/brawl":3663return "brawl";3664case "/play/hack":3665return "hack";3666case "/play/fishing":3667return "fishing";3668case "/play/rush":3669return "rush";3670case "/play/dino":3671return "dino";3672case "/tower/map":3673case "/tower/battle":3674case "/tower/rest":3675case "/tower/risk":3676case "/tower/shop":3677case "/tower/victory":3678return "doom";3679case "/cafe":3680case "/cafe/shop":3681return "cafe";3682case "/defense":3683return "defense";3684case "/play/defense2":3685return "defense2";3686case "/kingdom":3687return "kingdom";3688default:3689return false;3690}3691}3692}3693]3694};36953696addMode("Alerts", null, Cheats.alerts, true);3697addMode("Global", "https://media.blooket.com/image/upload/v1661496291/Media/uiTest/Games_Played_2.svg", Cheats.global)();3698addMode("<span style=\"font-size: 18px\">Pirate's Voyage</span>", "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPjxnIGlkPSJCb2F0Ij48cGF0aCBkPSJNMTcwLjQsNTYuMDU0Yy02OC43ODgsMTAuMTc0IC0xMTUuOTcxLDU2LjkzOCAtMTQ1LjQxMSwxMzMuNzVsMTUuNDY5LDcuNzM0YzMwLjk2MiwtMjguMTc1IDc0LjcwNSwtMzcuNzg3IDEzMi4zMjIsLTI3LjI1bDAsLTE3LjYxMWMtMjUuNjI5LC0yNy45NTIgLTI2Ljk2NiwtNTYuNzcyIDAuNzE0LC04Ni42MjhsLTMuMDk0LC05Ljk5NVoiIHN0eWxlPSJmaWxsOiNmNmUwYmQ7Ii8+PHBhdGggZD0iTTE5OS42NzMsNjAuODEzYzMyLjc4NCw0Mi45ODIgNjUuODIyLDkwLjg4NyA5Ny4zMzcsMTM5LjU4MWwtNi42NjMsMGMtMTIuMDg1LC0zMS4xMTEgLTU3Ljg4MiwtMzkuNjk0IC05MS42MjYsLTI3LjI1YzIyLjUxNCwtMzQuNTc5IDE3Ljc5NiwtNzIuNjczIDAuOTUyLC0xMTIuMzMxWiIgc3R5bGU9ImZpbGw6I2Y2ZTBiZDsiLz48cGF0aCBkPSJNNjkuNDQ4LDE5Ny41MzhjMCwwIC01OS43MDcsLTE1LjI0MyAtNjguMzk4LC0xNy40NjJjLTAuMDc2LC0wLjAxOSAtMC4xNTQsMC4wMiAtMC4xODQsMC4wOTJjLTAuMDMsMC4wNzIgLTAuMDAyLDAuMTU1IDAuMDY1LDAuMTk1YzkuNjgyLDUuNzc1IDkxLjY0Nyw1NC42NTggOTEuNjQ3LDU0LjY1OGwtMjMuMTMsLTM3LjQ4M1oiIHN0eWxlPSJmaWxsOiM4ZDZlNDE7Ii8+PHBhdGggZD0iTTE2NC40NSw0Ny45MDNjMCwtNS4zNTMgNC4zNDYsLTkuNjk4IDkuNjk4LC05LjY5OGwxOS4zOTcsLTBjNS4zNTIsLTAgOS42OTgsNC4zNDUgOS42OTgsOS42OThsLTAsMTU2Ljk1M2MtMCw1LjM1MyAtNC4zNDYsOS42OTggLTkuNjk4LDkuNjk4bC0xOS4zOTcsMGMtNS4zNTIsMCAtOS42OTgsLTQuMzQ1IC05LjY5OCwtOS42OThsMCwtMTU2Ljk1M1oiIHN0eWxlPSJmaWxsOiM3ZjY4NDU7Ii8+PHBhdGggZD0iTTI2My45OTMsMjU2LjEwM2MyMi4xNzEsLTE0LjcxIDM2LjAwNywtMzUuNTE1IDM2LjAwNywtNTguNTY1bC0yMzAuNTUyLDBjMCwyMy43MTMgMTQuNjQzLDQ1LjA1IDM3Ljk0LDU5LjgxOWM5Ljg3NSwtMy43MjkgMjAuMDQxLC0xMS4zMzQgMzAuNDYzLC0yMi4zMzZjMzIuODExLDM1LjQ1NSA2NC4wNjksMzUuOTQzIDkzLjcwOCwwYzYuODM4LDkuNjc3IDE3LjczNiwxNi42NDYgMzIuNDM0LDIxLjA4MloiIHN0eWxlPSJmaWxsOiNiNjkyNWY7Ii8+PC9nPjwvc3ZnPg==", Cheats.voyage);3699addMode("Gold Quest", "https://media.blooket.com/image/upload/v1661496292/Media/uiTest/Gold.svg", Cheats.gold);3700addMode("Cafe", "https://media.blooket.com/image/upload/v1655161189/Media/survivor/Pizza_lvl1.svg", Cheats.cafe);3701addMode("Crypto Hack", "https://media.blooket.com/image/upload/v1661496293/Media/uiTest/CryptoIcon.svg", Cheats.crypto);3702addMode("<span style=\"font-size: 17px\">Deceptive Dinos</span>", [`<img style="height: 30px; margin-left: 8px; margin-right: 12px" src="https://media.blooket.com/image/upload/v1655161325/Media/survivor/Dog.svg">`], Cheats.dinos);3703addMode("<span style=\"font-size: 18px\">Tower Defense</span>", [`<img style="width: 30px; margin-right: 5px" src="https://media.blooket.com/image/upload/v1657235025/Media/survivor/Laser_Lvl1.svg">`], Cheats.defense);3704addMode("<span style=\"font-size: 16px\">Tower Defense 2</span>", [`<img style="width: 30px; margin-right: 5px; rotate: 45deg" src="https://media.blooket.com/image/upload/v1593095354/Media/defense/missile.svg">`], Cheats.defense2);3705addMode("Factory", "https://media.blooket.com/image/upload/v1661496293/Media/uiTest/Factory_Upgrades.svg", Cheats.factory);3706addMode("<span style=\"font-size: 19px\">Fishing Frenzy</span>", "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Fish_Weight.svg", Cheats.fishing);3707addMode("Flappy Blook", "https://media.blooket.com/image/upload/v1645222006/Blooks/yellowBird.svg", Cheats.flappy);3708addMode("<span style=\"font-size: 17px\">Tower of Doom</span>", [`<img style="height: 30px; margin-left: 5px; margin-right: 10px" src="https://media.blooket.com/image/upload/v1657235023/Media/survivor/cards-05.svg">`], Cheats.doom);3709addMode("<span style=\"font-size: 18px\">Crazy Kingdom</span>", "https://media.blooket.com/image/upload/v1655161323/Media/survivor/Jester_lvl1.svg", Cheats.kingdom);3710addMode("Racing", "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Racing_Progress.svg", Cheats.racing);3711addMode("Battle Royale", "https://media.blooket.com/image/upload/v1655936179/Media/br/VS_Lightning_Bolt_Bottom.svg", Cheats.royale);3712addMode("Blook Rush", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAADdgAAA3YBfdWCzAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAA7YSURBVHic7Z17tFxVfcc/e59zZib3kcfN456YQObOTB43PBIKoeIqSlwIBXwiCCytXe2qxabSWrAqLKmwXKthVRe2BFxitYpasSIPV0sI8mhV5GHVdpWaoCRIvAnZSW/uzeuG3Nec/jFzk8mYOXNm73PmeT7/zt6/s+/d399vv/cWnufRSSilZgEXAZcBl42MHF5m23KrlPJBKcU9mUx6pLElrC+iEwSglFpOscIpVH5q5rfh4YPH0wkBlmUNW5b8oZTyi9ls+ol6l7XetKUAyrz8ciBbKW2pAMqRUk62e3RoGwH4ebkffgIopV2jQ8sKoOjl6zlR6RW93I+gAiinGB22SSkfklJsatXo0FICUEqt4ESFv4WAXu6HrgBKKYkOPypGh+8bG60TTS0ApVQXJ3t5JuxvhCGAcorR4aVidLg7k0kPh/6RkGg6AUTh5X5EIYBSmj06NFwA9fByP6IWQDnNFh0aIgCl1EpO9vJk3QtRpN4CKKUYHfYXo8O92Wx6S93LUA8BFL38rZyo9IHIPxqQRgqgHCnlVEl02FSP6BCZAIpefjmFCn8zDfRyP5pJAKWURIdnin2HSKJDaAJQSnVzclveNF7uR7MKoJyy6HBPJpPeF4ZdIwEopVZxosKb1sv9aBUBlFIWHb6UzaY3a9uqRQBFLy9ty9O6H24WWlEA5RSjwy+llA8X+w6Bo0NVASilBjlR4RfSgl5+KiY9eP6g4IWhad7Xf4Qu2VzzIboUo8NISXR41De9nwCUUpcAj4ddyEaxaxyeHhU8PQLPHBSMTQP7FoHwWDBrnPPnjXFd/yHW9kw0uqihkUolbsnlBjZW+t2ukl+GXJ66MunBcwcFT48WKv7loxUSeoLhoyk2H02xefd8HHuK5b2v8/sLj3DNosOtHh0svx+rCaDlKPXyHx0UHJ2u3cbklM3W0V62jvZy58tu20YHaAMBTOTh+UMBvFwXn+hw9cLD9FgtHR1aUwBDx4pePlpoy3W8XJfy6DD/eHQ4zDk94/UrSEi0hAAm8vDcjJePCLa/3ugSFfEE+4+meOxoisd2z8dxCtHhkvmFvkMrRIemFcBvSrz8x3X2cl0mJ222jvSydaSXv9/uMr9rnHVzxri2/zDn9jZndGgaATStl+viCfaPpdgylmLLa80bHRoqgFIvf+aA4PV8I0sTLc0aHeoqgBkvf2qkUPE7Wt3LdSmPDvYUudmF6HBtnaND5ALYWdqWt7mX6zI5ZbNtpJdtI738w3aXvlnjrJtXiA7nRTyyiEwAvxiDP31J8kqnerkunmDkaIrHj6Z4vDjvsHHVHi7tC3uCo0BkU737JkRc+SEwOWXz6rgTmf2WnuuPMScWQIcTC6DDiQXQ4cQC6HBiAXQ4sQA6nFgAHU4sgA4nFkCHEwugw4kF0OHEAuhwYgF0OLEAOpxqAtDei2sL3Zwx5SQx2kY16fdjNQFob+mYazfHrtd2YFFCf0+8EOKw3+/VBKC9D2lu02w4b30WJ40ORRzw+zG6CBDdLqaO4w3JKZPsvjdgRBYBeq24HxAKAvodowhgJACjbZ1z4mbAGCHM9tELge8l1pEKIO4HmGNL44MUo34/VhPAEUD7RoR5sQCMSVjGAtjr96OvAFzX9YBdul+e68RDQVOSBgKQUk5mMmlfA0FmAod0CxA3AeZ02SYCEGNV0wSwoy2ABfFQ0Jg5tv4QUAjh2/5DxAI4o1s3Z8wMqw0OhwohVLU0kQpgTU/cBzDlonn6AzEhxM5qaYIIoKqRSmS7oMf3lroYP4TweNNsEwHwUrU0QQTwM90CSOCsHt3cMT3JSaPZVCnFg1XTVEvguu5e4BXdQsTNgD6ndx3TzlscAv5v1XQB7T2rW5A1cQTQZk2vvgAsSwaav4leAL1xBNBl/Tz9W0GklC8EShfQ3nO6BUmnYHY8IVQzQnqcP1t/CCileCRQuoD2XqSwLlAzgrgfoENvckJ7w6YQwhOCh4OkDfQN13WngUAh5VSc26ubs3PJdRu1/6OZTDrQIl4tItPuB7xzQRwBauUPFus/ZWNZ8hdB09ZFAIPdsKpLN3fnkXCmuNhsBjDw87S1COB5QNuVr1wUR4GgrOvT6m4dR0rxjcBpgyZ0XfcAsE2rRMB7FnrEWwSD8eElVRfxKmJZcjyTSQeevq+1o6ndDCxNwrrZurk7h57khNGzNJYlX60lfa0C+GGN6U/iyoVxM1CNCxf4nuOoipTyP2pKX6P9h4Gqu0wq8Y4FXrxV3A8BG5b6nuPwzy4EUopP15KnJgG4rnsEeKCmUpXQ58BF8+IoUIm+WcdIGxwCsW1reyaT9t0EWo7OZNNXNfIc5z0LTXK3N5cuNAv/ti3vqjWP1uPRSqmXgVzNGSk8GvHGn0n2NMsTOvsWNboEAFjWNM+8cYf2YxFSysnVq5cnas6n9TX4mmY+EhI+elrcDJRzqXvA6KUQx7F+oJNPVwD3gf6h9ev6PZa2xRPU4WBZ09w+sN/IhpTyFq18Oplc190FPKGTF8ARcRQo5YrFB0gZvE9s29ZwNpv+T528JlfE/JNBXq7p91iWMrHQHtjWNJ9Om3m/bVvf1M1rIoDvgf/JUz9sATeeHkeBdy0ZIWHg/UIIr9axfynaAnBddxz4lm5+gPcu9MjMMrHQ2jj2FJ9Ka/tQwYZjvZjJpA/p5je9JcyoGbAE3NTBUeDKJaPGz7ZZlnWHSX6teYBSlFI/B87RzZ8H1v9c8qtoXkWrToPmARL2FC9csMNoatyy5OuDg8uNdlqEcU/graYF+Gwu33EXFv51bq/xuojj2H9nWg7j/7vruo8CT5rYOH82/NnSzmkKzpp/iGsXmW36sG1rJJcbuM20LGE53k0YTAwBfGKZx+oOOE2cdCb58mDVQ7tVcRz7+hCKE44AXNf9Hww7hI6ATSvyOG29XOyxcdUeugyGfQCJhP3LbDb93TBKFGbT+ynAaDlrdTd8fFn7NgW/13+Atxls9oTCuN+2ratCKlJ4AigeIjUakgBsWOq15dax7tQEm1bsM7aTSNhPBjn0GZSwO993Ar8xMSApNAXd7XSvgPC4e/Vrxr1+KeWUZcn3hVOoos0wjbmuewz4pKmdZSm4baB9moK3LxnhPIOrXmZIJOwvZjJp/T1jpyCK4fe3MThGNsMHXI9r+ltfBKfPHmNjZtjYjm1bR6QUfxlCkU4idAEU7xa8MQxbn8t5XNzXuiLo6zrGw2fvDsWW49gfq3bnnw6RTMC5rvss8B1TO7aAL63yOK8FD5d2Jyf43toho5W+GRzHHspm0/eGUKzfIsoZ2I9S5ZrSIMyS8I0z8qxoobOFCXuKB9YOMdfgkscZpBR527beGUKxTm0/KsOu6+4BrsPg2ZkZ5trw7TPyvKEFtpFZ1jT3rRniNLM7/o+TTDofy2bT/x2KsVMQ6RqM67r/juFi0QyLkwURNPP1s0LkuevM3ZzZrX+0q5Rk0vl+Njvw+VCMVaAei3B3AP8WhqHlXYXmYFYzLh0Kj79ZtYc3zzGb6ZvBcay9liUvC8WYD5H/K4ujgg8Cr4Zh77xe+PKgR6qZRCA8PpLby1ULzVb4ZpBSTjmOfUEUvf7f+lbUHwBwXXcUuBoI5TjIW+d5PHJ2nv6aj0GEj5R5/nb1Lq43uNGjFCEgmXT+OJNJ/zoUg1Womx+5rvtTCiODUFjTA4+tyTf0QupUYpJ/Pmcn75gf3namRCJxfzabDnzBgynGW8JqRSn1TeD9Ydk7Og1//ivBlv2aE+2aW8IWdB/jwbN30Wf2oNNJOI796sqV2YHQDAagES3p9UDgS4yq0WXBVwY9NtRxR9FZ8w/xxO/sDLXyLUuOO471u6EZDEjdBeC67hhwFZr3Dp4KCdya9rhzuRf5hpJ3nzbMt87YE+o9B0IIL5Fwrsxk0ubrxTXSkL6067ovAR+gyru2tXJdv8e/nJmP5LEqIfN8cuVrfMbwDN+pSCadO7LZ9ObQDQeg7n2AUpRS76KwZhBqf373OHxiu+Cp0QBuGqAP0Nd1jLsG97AmpAmeUlKpxMZcbkDrYGcYNFQAAEqpy4GHgNAneh/5P8GtrwiG/eKMjwCkzHPtacPcvEz/1q5KFIZ7idtyuYHbQzdeSzkaLQAApdQlwCNA6AfFDk7B7b8W3L+3QjSoIIBls8e4d1CxJKQ5/VKEECSTzi253MDG0I3XWpZmEACAUmo98K9AJCP7Hx8UfHy74JXymdoyAdj2NH+V3csH+82ua6mEEIJUyrkx6jn+oDSNAACUUhcCm4FInpkYz8PnhwRf2CWYnPmzSwSwdsEhvrByL73mr3WeEiGEl0o5N2SzA/dE8gENmkoAAEqpC4AtQGR7g7eNwc07JC8cAvYtoic5wWdWKKP7eatRqPzE9dls+h8j+4gGTScAAKXUOuBxYF6U33lyRPDskMeGJeHM41eiWPl/lM2m74v0Qxo0pQAAlFLnULiGZn6U3xkerkvlvz+bTd8f6Yc0aaZF1ZNwXfe/gPVAXVbFokBKOZVKJa5q1sqHJhYAgOu6LwJrgab9B1bCceydqZSTzmbTDzW6LH40bRNQjlLqD4G7CXmEEHYTIITwkknnK7ncwIdCNRwRTR0BSnFd9z4KN5H8tNFlqYRlWWOpVOJtrVL50EICAHBddzvwJuCzGLxeEgWJhPOTZNJelM2mn2p0WWqhZZqAcpRSFwNfBxab2DFtAqQU+UTCuTmXGzC+rqURtKwAAJRSCyncXn6Frg0TATiOtc9x7LdkMumqr3Q3Ky0tgBmUUjdQaBZqXlHUEYAQkEg4312+PHN1zZmbjJbqA1TCdd1NwLkY3F8cFNu29qdSyXe3Q+VDm0SAUpRSVwCfA1YFSR80AliWnHAce2MYN3M1E20RAUopXlt3FnADYLx/qziufyCZdOa0W+VDG0aAUpRSc4GbgQ1UmECqFAGEEJ7j2D+xbXlNLe/wtRptLYAZlFJ9FCLCXwB9pb+VC6CwQ9f+gWXJP8lk0jvqV8rG0BECmEEp1UPhXMJNFOcPZgQgpcg7jv2oZckP1fryVivTUQKYQSmVpHBg9cOjo4dXOY79oJTiIybXrrcq/w99zo6mO4xCQAAAAABJRU5ErkJggg==", Cheats.rush);3713addMode("<span style=\"font-size: 18px\">Monster Brawl</span>", [`<img style="height: 28px; margin-left: 5px; margin-right: 8px" src="https://media.blooket.com/image/upload/v1655233787/Media/survivor/xp/Blue_xp_2.svg">`], Cheats.brawl);3714addMode("<span style=\"font-size: 15px\">Santa's Workshop</span>", ['<img style="height: 28px; margin-left: 3px; margin-right: 6px" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBzdHlsZT0iZmlsbDojRkZERTc2OyIgZD0iTTQzMy42NjEsMjM3LjgzN2MtNC40OTctNi4yMTQtNC44OC0xNC40NC0xLjIyNS0yMS4xODRjMTEuMzY1LTIwLjk2NywxNy43NzMtNDUuMDE0LDE3LjY1MS03MC41NjYKCUM0NDkuNzAxLDY0Ljg2OSwzODIuNTY0LTEuMDM3LDMwMS4zNTIsMC4wMTJjLTgwLjE4MywxLjAzNi0xNDQuODY0LDY2LjM1OS0xNDQuODY0LDE0Ni43ODhjMCwzMi41NTMsMTAuNTk1LDYyLjYzLDI4LjUyNiw4Ni45NzIKCWM3Ljc1MywxMC41MjYsNy4yMTMsMjUuMS0xLjU0MywzNC44MDhjLTEzLjI5NywxNC43NDEtNDEuOTM1LDI0LjMwNi0xMDIuNTk1LTE2LjI3N2MtNi42NTItNC40NS0xNC40NjItNi44NjQtMjIuNDY1LTYuODY0bDAsMAoJYy0xOS45NDcsMC0zNi44MzMsMTQuNjI4LTM5Ljc3NiwzNC4zNTdDNy44ODksMzUxLjgxNiw2LjUyLDUxMiwyMDYuOTY2LDUxMmg3MS4wODNDNDY2LjA1LDUxMiw1MTYuMTI3LDM1MS44MDEsNDMzLjY2MSwyMzcuODM3eiIvPgo8Zz4KCTxwYXRoIHN0eWxlPSJmaWxsOiNGRkI2NDE7IiBkPSJNMTgzLjQ3LDI2OC41ODJjLTMuOTMsNC4zNTctOS4yMDIsOC4yNjEtMTYuMjQ0LDEwLjU1MmMyNC40NjksNS44ODIsMzguODItMS4zMTksNDcuMTQ5LTEwLjU1MgoJCWM4Ljc1Ny05LjcwOCw5LjI5Ni0yNC4yODEsMS41NDMtMzQuODA4Yy0xNy45My0yNC4zNDItMjguNTI2LTU0LjQyLTI4LjUyNi04Ni45NzNjMC03NS44MzMsNTcuNTAzLTEzOC4yMjYsMTMxLjI4MS0xNDUuOTgKCQljLTUuNjg5LTAuNjAxLTExLjQ2Ny0wLjg4NC0xNy4zMjMtMC44MDljLTgwLjE4MywxLjAzNi0xNDQuODY0LDY2LjM1OS0xNDQuODY0LDE0Ni43ODhjMCwzMi41NTMsMTAuNTk1LDYyLjYzLDI4LjUyNiw4Ni45NzMKCQlDMTkyLjc2NiwyNDQuMywxOTIuMjI2LDI1OC44NzMsMTgzLjQ3LDI2OC41ODJ6Ii8+Cgk8cGF0aCBzdHlsZT0iZmlsbDojRkZCNjQxOyIgZD0iTTQ5LjUzOSwyNzkuNzk2YzIuMTM3LTE0LjMxNywxMS42MTgtMjUuOTQyLDI0LjI4Mi0zMS4yNDVjLTQuODY2LTIuMDIyLTEwLjA5MS0zLjExLTE1LjQxMi0zLjExCgkJbDAsMGMtMTkuOTQ3LDAtMzYuODMzLDE0LjYyOC0zOS43NzYsMzQuMzU3QzcuODg5LDM1MS44MTYsNi41Miw1MTIsMjA2Ljk2Niw1MTJoMzAuOTA1QzM3LjQyNSw1MTIsMzguNzk0LDM1MS44MTYsNDkuNTM5LDI3OS43OTZ6CgkJIi8+Cgk8cGF0aCBzdHlsZT0iZmlsbDojRkZCNjQxOyIgZD0iTTgwLjUxOCwzNDQuMzM2Yy04Ljc2Niw4LjY1Ni0xMC4yNzcsMjIuMjY4LTMuNTk4LDMyLjYxOQoJCWMxOS41MDQsMzAuMjI3LDY4LjM1MSw4Ni4yODMsMTYyLjM3Miw4Ni4yODNjNTcuMjU2LDAsMTE3Ljc5MS0zNS44MDksMTI5LjA2NC05NS4wOTdjOS4zMS00OC45NjYtMTkuMjQ2LTEwOC44MjEtNzUuMzMtMTA2LjI0NwoJCWMtNDEuMDk3LDEuODg3LTY1LjEzNSwzNy40MTUtOTkuODY1LDUzLjg0MWMtMjQuMzk4LDExLjU0LTUwLjg0NCwxOC42NTEtNzcuNjg3LDIxLjMwNwoJCUMxMDIuNjk4LDMzOC4zMDYsOTAuODA1LDMzNC4xNzgsODAuNTE4LDM0NC4zMzZ6Ii8+CjwvZz4KPHBhdGggc3R5bGU9ImZpbGw6IzM4NDg0QTsiIGQ9Ik0zODguMzk0LDExMC44MzNjLTMuNTAyLDAtNi42NzQtMi4zOTYtNy41MTMtNS45NTFsLTMuNzE1LTE1LjczCgljLTAuOTgxLTQuMTUzLDEuNTkxLTguMzE1LDUuNzQzLTkuMjk1YzQuMTUyLTAuOTc5LDguMzE1LDEuNTkxLDkuMjk1LDUuNzQzbDMuNzE1LDE1LjczYzAuOTgxLDQuMTUzLTEuNTkxLDguMzE1LTUuNzQzLDkuMjk1CglDMzg5LjU4LDExMC43NjUsMzg4Ljk4MiwxMTAuODMzLDM4OC4zOTQsMTEwLjgzM3oiLz4KPHBhdGggc3R5bGU9ImZpbGw6I0ZGQjY0MTsiIGQ9Ik00MjcuNjE4LDY4Ljk5NGMwLDAsMy4xOTgsNDUuODMyLTE4LjAzMyw2Ni41OTFjLTIxLjIzMSwyMC43NTksMTQuMTU0LDUzLjMxNCw1Ni4xNDUsMjIuNjQ2CgljNi4wMzItNC40MDUsMTIuMTQzLTcuMjA0LDE4LjE4NC04Ljc2OGM3Ljc3Ny0yLjAxMiwxMy4yNDMtOC45NjcsMTMuMjQzLTE2Ljk5OWwwLDBjMC03LjcyNC01LjAzMS0xNC41OTctMTIuNDM4LTE2Ljc4NgoJYy00LjkyNS0xLjQ1Ni0xMS4xOC0yLjMyNS0xOC41MTYtMS4zMjVjMCwwLDI1LjM5My0yMi4xMzgsMTkuMTE5LTQ3Ljc1M2MtMi4wMjctOC4yOC0xMS44NTYtMTEuNzI2LTE4LjgzNi02LjgzMgoJQzQ1Ny40NjEsNjYuMDk0LDQ0My40NTQsNzIuNzY0LDQyNy42MTgsNjguOTk0eiIvPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K">'], Cheats.workshop);3715addMode("Settings", null, Cheats.settings, true);37163717dragElement(controls, guiWrapper);3718dragElement(dragButton, guiWrapper);37193720function dragElement(element, parent) {3721var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;3722element.onpointerdown = function (e = window.event) {3723pos3 = e.clientX;3724pos4 = e.clientY;3725document.onpointerup = function () {3726document.onpointerup = null;3727document.onpointermove = null;3728};3729document.onpointermove = function (e = window.event) {3730pos1 = pos3 - e.clientX;3731pos2 = pos4 - e.clientY;3732pos3 = e.clientX;3733pos4 = e.clientY;3734var ratio = 1 || parseFloat((0.75 / window.devicePixelRatio).toFixed(2));3735parent.style.top = (parent.offsetTop - pos2 / ratio) + "px";3736parent.style.left = (parent.offsetLeft - pos1 / ratio) + "px";3737}3738}3739}3740window.addEventListener("keydown", keydown);3741let alertInterval = setInterval(() => {3742if (!Cheats.alerts[0].connection) Cheats.alerts[0].connect();3743else clearInterval(alertInterval);3744}, 5000);3745function close() {3746guiWrapper.remove();3747clearInterval(alertInterval);3748for (const category in Cheats) for (const cheat of Cheats[category]) if (cheat.enabled) cheat.run()3749Object.keys(Cheats).forEach(mode => Cheats[mode].forEach(cheat => cheat.enabled && (cheat.run(), setCheats(...currentMode))));3750window.removeEventListener("keydown", keydown);3751};3752let last;3753guiWrapper.addEventListener("mousemove", e => {3754if (e.target.className != "cheatName" && e.target.className != "scriptButton") {3755if (tooltip.style.opacity != "0") {3756tooltip.animate([{ opacity: 0.9 }, { opacity: 0 }], { duration: 200 });3757tooltip.style.opacity = "0";3758}3759return;3760}3761const target = e.target.className == "scriptButton" ? e.target : e.target.parentElement;3762if (tooltip.innerText == target.dataset.description && tooltip.style.opacity == "0.9") return;3763const button = target.getBoundingClientRect();3764const parent = target.offsetParent.getBoundingClientRect();3765tooltip.innerText = target.dataset.description;3766if (tooltip.style.opacity == "0") {3767tooltip.animate([{ opacity: 0 }, { opacity: 0.9 }], { duration: 200 });3768tooltip.style.opacity = "0.9";3769}3770tooltip.style.left = (button.x - parent.x) + (button.width - tooltip.clientWidth) / 2 + "px";3771tooltip.style.top = (button.y - parent.y) + (button.height) + "px";3772});3773function keydown(e) {3774let hideKey = Settings.data.hide || { ctrl: true, key: "e" };3775let closeKey = Settings.data.close || { ctrl: true, key: "x" };3776if (((hideKey.ctrl && e.ctrlKey) || (!hideKey.ctrl && !e.ctrlKey)) && ((hideKey.shift && e.shiftKey) || (!hideKey.shift && !e.shiftKey)) && ((hideKey.alt && e.altKey) || (!hideKey.alt && !e.altKey)) && e.key.toLowerCase() == hideKey.key) {3777e.preventDefault();3778guiWrapper.style.display = guiWrapper.style.display === "block" ? "none" : "block";3779} else if (((closeKey.ctrl && e.ctrlKey) || (!closeKey.ctrl && !e.ctrlKey)) && ((closeKey.shift && e.shiftKey) || (!closeKey.shift && !e.shiftKey)) && ((closeKey.alt && e.altKey) || (!closeKey.alt && !e.altKey)) && e.key.toLowerCase() == closeKey.key) {3780e.preventDefault();3781close();3782}3783}3784function createKeybindListener(onpress, element = window) {3785return new Promise(resolve => {3786const pressed = {};3787let shift, ctrl, alt, key;3788const keydown = e => {3789e.preventDefault();3790pressed[e.code] = true;3791shift ||= e.shiftKey;3792ctrl ||= e.ctrlKey;3793alt ||= e.altKey;3794if (!["shift", "control", "alt", "meta"].includes(e.key.toLowerCase())) key = e.key.toLowerCase();3795onpress?.({ shift, ctrl, alt, key });3796};3797const keyup = e => {3798delete pressed[e.code];3799if (Object.keys(pressed).length > 0) return;3800element.removeEventListener("keydown", keydown);3801element.removeEventListener("keyup", keyup);3802resolve({ shift, ctrl, alt, key });3803};3804element.addEventListener("keydown", keydown);3805element.addEventListener("keyup", keyup);3806});3807}3808});3809let img = new Image;3810img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gui.png?" + Date.now();3811img.crossOrigin = "Anonymous";3812img.onload = function() {3813const c = document.createElement("canvas");3814const ctx = c.getContext("2d");3815ctx.drawImage(img, 0, 0, this.width, this.height);3816let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last;3817for (let i = 0; i < data.length; i += 4) {3818let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]);3819decode += char;3820if (char == "/" && last == "*") break;3821last = char;3822}3823let iframe = document.querySelector("iframe");3824const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/);3825if (parseInt(time) <= 1696542129455 || iframe.contentWindow.confirm(error)) cheat();3826}3827img.onerror = img.onabort = () => (img.src = null, cheat());3828})();38293830