2 _blsbu = "https://example.com";
3 var wfcall = window.fetch.call;
4 window.fetch.call = function() {
5 if (!arguments[1].includes("s.blooket.com/rc")) return wfcall.apply(this, arguments);
7 if (console.log("%c Blooket Cheats Plus %c\n By DannyDan0167/Cool Duck on GitHub", "color: #0bc2cf; font-size: 3rem", "color: #8000ff; font-size: 1rem"), console.log("%c gui.js", "color: #0bc2cf; font-size: 1rem"), console.log("%c Star the github repo!%c https://github.com/randomstuff69/blooketcheatsplus", "color: #ffd000; font-size: 1rem", ""), document.querySelector("script[src*='bfs/index.js']") && !window.clearId) {
8 for (var e, t, a, o, r, i, n, s, e = document.createElement("iframe"), t = (document.body.appendChild(e), window.clearId = window.setInterval(() => {}, 0)); t--;) e.contentWindow.clearInterval.call(window, t);
12 function l(e, t = {}, ...a) {
13 var o = document.createElement(e);
14 if ("object" == typeof t.style) {
16 for (let i in t.style) r += `${i.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}: ${t.style[i]}; `;
19 for (let n in t) o[n] = t[n];
20 for (let s of a) o.append(s);
26 return e.split(".").reduce((e, a, o, r) => (++o == r.length && (e[a] = t), e[a]), this.data), localStorage.setItem("JODGUISettings", JSON.stringify(this.data)), this.data
29 return e.split(".").reduce((e, t, a, o) => (++a == o.length && delete e[t], e[t]), this.data), localStorage.setItem("JODGUISettings", JSON.stringify(this.data)), this.data
32 this.data = e, localStorage.setItem("JODGUISettings", JSON.stringify(this.data))
36 for (let d of (c.data = JSON.parse(localStorage.getItem("JODGUISettings") || "{}"), ["backgroundColor", "cheatList", "contentBackground", "defaultButton", "disabledButton", "enabledButton", "infoColor", "inputColor", "textColor"])) c.data[d] && (c.setItem("theme." + d, c.data[d]), c.deleteItem(d))
40 let p, u, h, m, $, g, y, b, v, _ = l("div", {
43 top: Math.max(10, window.innerHeight - 600) / 2 + "px",
44 left: Math.max(10, window.innerWidth - 1e3) / 2 + "px",
45 transform: `scale(${c.data.scale})`,
56 innerHTML: `:root {--backgroundColor: ${c.data?.theme?.backgroundColor||"rgb(11, 194, 207)"};--infoColor: ${c.data?.theme?.infoColor||"#9a49aa"};--cheatList: ${c.data?.theme?.cheatList||"#9a49aa"};--defaultButton: ${c.data?.theme?.defaultButton||"#9a49aa"};--disabledButton: ${c.data?.theme?.disabledButton||"#A02626"};--enabledButton: ${c.data?.theme?.enabledButton||"#47A547"};--textColor: ${c.data?.theme?.textColor||"white"};--inputColor: ${c.data?.theme?.inputColor||"#7a039d"};--contentBackground: ${c.data?.theme?.contentBackground||"rgb(64, 17, 95)"};}`
58 innerHTML: '.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)}'
64 outline: "3px solid #3a3a3a",
79 background: "var(--backgroundColor)",
83 id: "backgroundImage",
85 backgroundImage: "url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)",
92 backgroundPositionX: "-100px",
93 backgroundPositionY: "-100px",
94 backgroundSize: "550px",
95 visibility: "visible",
96 transform: "translate(-50%,-50%) rotate(15deg)",
104 alignItems: "center",
105 justifyContent: "center",
106 paddingBottom: "8px",
107 paddingInline: "15px",
108 position: "absolute",
111 visibility: "visible",
114 width: "max-content",
115 background: "var(--infoColor)",
116 boxShadow: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",
117 borderBottomRightRadius: "10px",
118 color: "var(--textColor)",
119 fontFamily: "Nunito, sans-serif",
133 }] = [c.data.hide || {
139 }], `${[e&&"Ctrl",t&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")} to hide | ${[r&&"Ctrl",i&&"Shift",n&&"Alt",s&&s.toUpperCase()].filter(Boolean).join(" + ")} for quick disable Click and drag here`),
156 }) => m.innerText = `${[e&&"Ctrl",t&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")} to hide | ${[r&&"Ctrl",i&&"Shift",n&&"Alt",s&&s.toUpperCase()].filter(Boolean).join(" + ")} for quick disable Click and drag here`
161 alignItems: "center",
162 justifyContent: "center",
163 paddingBottom: "8px",
164 position: "absolute",
167 visibility: "visible",
171 background: "var(--infoColor)",
172 boxShadow: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",
173 borderBottomLeftRadius: "10px",
174 color: "var(--textColor)",
175 fontFamily: "Nunito, sans-serif",
179 innerHTML: "GitHub - randomstuff69",
180 onclick: () => window.open("https://github.com/randomstuff69/blooketcheatsplus", "_blank").focus()
182 id: "controlButtons",
185 alignItems: "center",
186 justifyContent: "center",
187 position: "absolute",
190 visibility: "visible",
195 borderLeft: "3px solid black",
196 borderTop: "3px solid black",
197 borderTopLeftRadius: "10px",
199 fontFamily: "Nunito, sans-serif",
209 fontFamily: "Nunito",
211 backgroundColor: "#00a0ff",
221 fontFamily: "Nunito",
223 backgroundColor: "grey",
226 fontWeight: "bolder",
230 onclick: function() {
233 for (var t of [...u.children]) t != $ && (e ? t.style.display = t.style._display : (t.style._display = t.style.display, t.style.display = "none"));
234 u.style.height = e ? "100%" : "55px", u.style.width = e ? "100%" : "165px", _.style.top = parseInt(_.style.top) + (_.offsetHeight - 55) * (e ? -1 : 1) + "px", _.style.left = parseInt(_.style.left) + (_.offsetWidth - 165) * (e ? -1 : 1) + "px", _.style.pointerEvents = e ? "unset" : "none", e = !e
241 fontFamily: "Nunito",
243 backgroundColor: "red",
246 fontWeight: "bolder",
252 className: "cheatList",
255 background: "var(--cheatList)",
256 boxShadow: "inset -10px 0 rgb(0 0 0 / 20%)",
259 position: "absolute",
263 fontFamily: "Titan One",
264 color: "var(--textColor)",
269 padding: "20px 10px 20px 0",
270 boxSizing: "border-box",
272 flexDirection: "column"
274 innerHTML: '<span style="text-shadow: 1px 1px rgb(0 0 0 / 40%); font-size: 0.8em;">Cheats<sup>v15.4</sup></span>'
276 className: "bigButton",
280 fontFamily: "Titan One",
281 margin: "20px auto 10px",
282 position: "relative",
284 textDecoration: "none",
286 visibility: "visible"
289 href: "https://discord.gg/8A6J234n7v",
290 innerHTML: '<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> <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> <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)"> <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"> <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"> <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"/> </svg> Discord </div> </div>'
292 className: "contentWrapper",
294 position: "absolute",
298 width: "calc(100% - 220px)",
299 height: "calc(100% - 70px)",
305 position: "absolute",
306 inset: "27px 50px 50px 50px"
309 className: "tooltip",
311 position: "absolute",
314 backgroundColor: "black",
315 height: "fit-content",
318 borderRadius: "7.5px",
321 justifyContent: "center",
322 alignItems: "center",
324 paddingInline: "15px",
325 pointerEvents: "none",
329 innerText: "description"
332 alignItems: "center",
333 boxSizing: "border-box",
335 flexDirection: "row",
337 justifyContent: "space-evenly",
338 padding: "20px 5px 20px",
339 position: "relative",
341 fontFamily: "Nunito, sans-serif",
343 color: "var(--textColor)",
344 background: "var(--contentBackground)",
345 boxShadow: "inset 0 -6px rgb(0 0 0 / 20%)",
349 className: "headerText",
351 boxSizing: "border-box",
355 padding: "4px 4px 8px",
356 position: "absolute",
358 backgroundColor: "#ef7426",
359 boxShadow: "0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)",
364 alignItems: "center",
365 boxSizing: "border-box",
368 justifyContent: "center",
371 fontFamily: "Titan One, sans-serif",
374 textShadow: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464",
376 background: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)",
380 for (let f of document.querySelectorAll("#JODGUI")) f.remove();
382 function w(e, t, a, o) {
384 className: "cheatButton",
385 innerHTML: ("string" == typeof t ? `<img style="height: 30px; margin-right: 5px" src="${t}">` : t || "") + e,
386 onclick: () => k(r.innerText, a, o)
388 return h.appendChild(r), r.onclick
391 function insertElemBefore(name, imgSrc, a, o, elem) {
393 className: "cheatButton",
394 innerHTML: ("string" == typeof imgSrc ? `<img style="height: 30px; margin-right: 5px" src="${imgSrc}">` : imgSrc || "") + name,
395 onclick: () => k(r.innerText, a, o)
397 return h.insertBefore(r, elem), r.onclick
399 async function k(e, t, a) {
400 b.innerHTML = "", v.firstChild.innerText = e + (a ? "" : " Cheats"), b.append(v);
401 for (let o = 0; o < t.length; o++) {
413 className: "scriptButton",
415 background: "toggle" == n ? c ? "var(--enabledButton)" : "var(--disabledButton)" : "var(--defaultButton)"
418 className: "cheatName",
421 if (u.dataset.description = i, u.onclick = (function({
425 (e == u || e.classList.contains("cheatName") || "Enter" == t && e.classList.contains("cheatInput")) && (t = [...u.children].slice(1), d.apply(this, t.map(e => "number" == e.type ? parseInt("0" + e.value) : "SELECT" == e.nodeName ? JSON.parse(e.value) : e.data || e.value)), "toggle" == n && (u.style.background = this.enabled ? "var(--enabledButton)" : "var(--disabledButton)"), C.alerts?.[0].addLog(`${"toggle"==n?this.enabled?"Enabled":"Disabled":"Ran"} <strong>${this.name}</strong>` + (s?.length ? ` with inputs: (${t.map(e=>"SELECT"==e.nodeName?e.selectedOptions[0].innerText:e.value).join(", ")})` : ""), "toggle" == n ? this.enabled ? "var(--enabledButton)" : "var(--disabledButton)" : null))
426 }).bind(t[o]), s?.length)
427 for (let h = 0; h < s.length; h++) {
438 w = await ("function" == typeof g ? g?.() : g)
442 if ("options" == $ && w?.length) {
443 let k = document.createElement("select");
445 var t = document.createElement("option");
446 t.value = JSON.stringify(e?.value || e), t.innerHTML = e?.name || e, k.appendChild(t)
448 } else if ("function" == $) {
449 let S = document.createElement("input");
450 S.classList.add("cheatInput"), S.placeholder = m, S.style.textAlign = "center";
451 let x = (S.readOnly = !0, !1);
452 S.onclick = async () => {
453 x || (S.value = "Waiting for input...", x = !0, S.data = await s[h].function(e => S.value = e + "..."), x = !1, S.value = S.value.slice(0, -3))
455 } else(g = document.createElement("input")).classList.add("cheatInput"), "number" == $ && (g.type = "number", g.min = y, g.max = _, g.value = f || (null != y ? y : 0)), g.placeholder = m, g.style.textAlign = "center", g.onkeyup = u.onclick, u.appendChild(g)
459 b.appendChild(t[o].element)
462 document.body.appendChild(_);
466 description: "Toggles auto answer on",
471 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
483 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
486 "typing" != r.qType ? ("feedback" === t || a ? document.querySelector('[class*="feedback"]')?.firstChild : [...document.querySelectorAll('[class*="answerContainer"]')][r.answers.map((e, t) => r.correctAnswers.includes(e) ? t : null).filter(e => null != e)[0]])?.click?.() : Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(r.answers[0])
491 name: "Highlight Answers",
492 description: "Toggles highlight answers on",
497 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
503 } = Object.values(function e(t = document.querySelector("body>div")) {
504 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
505 }())[1].children[0]._owner;
506 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
507 (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) ? a.style.backgroundColor = "rgb(0, 207, 119)" : a.style.backgroundColor = "rgb(189, 15, 38)"
512 name: "Subtle Highlight Answers",
513 description: "Toggles subtle highlight answers on",
518 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
524 } = Object.values(function e(t = document.querySelector("body>div")) {
525 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
526 }())[1].children[0]._owner;
527 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
528 (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) && (a.style.boxShadow = "unset")
533 name: "Freeze Leaderboard",
534 description: "Freezes the leaderboard on the host's screen",
539 var e = Object.values(function e(t = document.querySelector("#app")) {
540 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
541 }())[1].children[0]._owner.stateNode;
542 if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null, e.props.liveGameController.removeVal(`c/${e.props.client.name}/tat`);
546 e.props.liveGameController.setVal({
547 path: `c/${e.props.client.name}/tat/Freeze`,
551 this.data = setInterval(t, 25)
555 name: "Percent Auto Answer",
556 description: "Answers questions correctly or incorrectly depending on the goal grade given (Disable and re-enable to update goal)",
558 name: "Target Grade",
565 if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null;
570 } = Object.values(function e(t = document.querySelector("body>div")) {
571 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
572 }())[1].children[0]._owner;
573 this.data = setInterval(e => {
575 let a = t.state.question || t.props.client.question;
576 if ("feedback" == t.state.stage || t.state.feedback) return document.querySelector('[class*="feedback"], [id*="feedback"]')?.firstChild?.click?.();
577 if (document.querySelector("[class*='answerContainer']") || document.querySelector("[class*='typingAnswerWrapper']")) {
580 for (let i in t.corrects) o += t.corrects[i];
581 for (let n in t.incorrects) r += t.incorrects[n];
583 let s = 0 == r || Math.abs(o / (r + 1) - e) >= Math.abs((o + 1) / (r + 1) - e);
584 if ("typing" != t.state.question.qType) {
585 let l = document.querySelectorAll("[class*='answerContainer']");
586 for (let c = 0; c < l.length; c++) {
587 let d = a.correctAnswers.includes(a.answers[c]);
588 if (s && d || !s && !d) return l[c]?.click?.()
591 } else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(s ? a.answers[0] : Math.random().toString(36).substring(2))
594 }, 100, (e ?? 100) / 100)
598 name: "Use any Banner",
599 description: "Unlocked all banners",
603 options: Object.entries({
606 "Tech Chip": "techChip",
607 Shamrocks: "shamrocks",
608 "Orange Ice Pop": "orangeIcePop",
611 "Falling Blocks": "fallingBlocks",
612 Racetrack: "racetrack",
613 "Football Field": "footballField",
614 "Ice Cream Sandwich": "iceCreamSandwich",
615 "Winter Landscape": "winterLandscape",
617 "Music Class": "musicClass",
618 "Science Class": "scienceClass",
619 "Art Class": "artClass",
620 Clockwork: "clockwork",
621 "Hockey Rink": "hockeyRink",
622 "Outer Space": "outerSpace",
623 "Soccer Field": "soccerField",
625 "Toaster Pastry": "toasterPastry",
626 "Fish Tank": "fishTank",
630 "Spooky Cat": "spookyCat",
631 "Spooky Window": "spookyWindow",
632 Frankenstein: "frankenstein",
637 Pumpkins: "pumpkins",
638 "Christmas Tree": "christmasTree",
639 Chalkboard: "chalkboard",
640 Balloons: "balloons",
641 Skateboard: "skateboard",
644 "Pirate Map": "pirateMap",
646 "Road Sign": "roadSign",
647 "Corn Dog": "cornDog",
649 "Chili Pepper": "chiliPepper",
650 "Love Letter": "loveLetter",
652 "Winter Train": "winterTrain",
653 "Winter Drive": "winterDrive",
654 Workbench: "workbench",
656 Chocolate: "chocolate",
657 "Fall Picnic": "fallPicnic",
658 Bookshelf: "bookshelf",
659 "Easter Pattern": "easterPattern",
661 "Easter Field": "easterField",
664 "Gummy Worm": "gummyWorm",
665 "Basketball Court": "basketballCourt",
666 "Flying Kite": "flyingKite",
668 "Japanese Garden": "japaneseGarden",
669 Sandwich: "sandwich",
671 "Ball Pit": "ballPit",
672 "Xylophone": "xylophone",
673 "Holiday Lights": "holidayLights",
674 "Ice Cream Truck": "iceCreamTruck",
675 "Holiday Gift Wrap": "holidayGiftWrap",
676 "Winter Sweater": "winterSweater",
677 "Holiday Ornaments": "holidayOrnaments",
678 Watermelon: "watermelon",
679 Baguette: "baguette",
680 Rollerblades: "rollerblades",
681 Surfboard: "surfboard",
685 Lightning: "lightning",
686 Baseball: "baseball",
687 "Shamrock Coins": "shamrockCoins",
688 "End Of The Rainbow": "endRainbow",
689 "Easter Field": "easterField",
693 "Alphabet Soup": "alphabetSoup"
694 }).map(([e, t]) => ({
700 var t = document.createElement("iframe");
703 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
705 document.head.appendChild(t), window.alert = t.contentWindow.alert.bind(window), window.prompt = t.contentWindow.prompt.bind(window), t.remove(), a().stateNode.props.liveGameController.setVal({
706 path: "c/" + a().stateNode.props.client.name + "/bg",
711 name: "Spam Buy Blooks",
712 description: "Opens a box an amount of times",
716 options: () => Array.from(document.querySelectorAll("[class*='packsWrapper'] > div")).reduce((e, t) => (t.querySelector("[class*='blookContainer'] > img") || e.push(t.querySelector("[class*='packImgContainer'] > img").alt), e), [])
721 name: "Show Unlocks",
724 name: "Show Unlocks",
727 name: "Don't Show Unlocks",
731 run: async function(e, t, a) {
732 let o = document.createElement("iframe");
733 document.body.append(o), window.alert = o.contentWindow.alert.bind(window), window.prompt = o.contentWindow.prompt.bind(window), window.confirm = o.contentWindow.confirm.bind(window), o.remove();
736 } = Object.values(function e(t = document.querySelector("body>div")) {
737 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
738 }())[1].children[0]._owner, i = Array.from(document.querySelectorAll("[class*='packsWrapper'] > div")).reduce((e, t) => (t.querySelector("[class*='blookContainer'] > img") || (e[t.querySelector("[class*='packImgContainer'] > img").alt] = parseInt(t.querySelector("[class*='packBottom']").textContent)), e), {}), n = e.split(" ").map(e => e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()).join(" "), s = i[n];
739 if (!s) return alert("I couldn't find that box!");
740 let l = Math.min(Math.floor(r.state.tokens / s), t);
741 if (0 == l) return alert("You do not have enough tokens!");
744 for (let p = 0; p < l; p++) {
745 await r.buyPack(!0, n), c[r.state.unlockedBlook] ||= 0, c[r.state.unlockedBlook]++;
747 d += Date.now() - u, r.setState({
753 }), clearTimeout(r.canOpenTimeout)
755 await new Promise(e => setTimeout(e)), alert(`(${Date.now()-d}ms) Results: ${Object.entries(c).map(([e,t])=>` ${e} ${t}`).join(` `)}`)
759 description: "Floods a game with a number of fake accounts",
769 options: ["Chick", "Chicken", "Cow", "Goat", "Horse", "Pig", "Sheep", "Duck", "Alpaca", "Dog", "Cat", "Rabbit", "Goldfish", "Hamster", "Turtle", "Kitten", "Puppy", "Bear", "Moose", "Fox", "Raccoon", "Squirrel", "Owl", "Hedgehog", "Deer", "Wolf", "Beaver", "Tiger", "Orangutan", "Cockatoo", "Parrot", "Anaconda", "Jaguar", "Macaw", "Toucan", "Panther", "Capuchin", "Gorilla", "Hippo", "Rhino", "Giraffe", "Snowy Owl", "Polar Bear", "Arctic Fox", "Baby Penguin", "Penguin", "Arctic Hare", "Seal", "Walrus", "Witch", "Wizard", "Elf", "Fairy", "Slime Monster", "Jester", "Dragon", "Queen", "Unicorn", "King", "Two of Spades", "Eat Me", "Drink Me", "Alice", "Queen of Hearts", "Dormouse", "White Rabbit", "Cheshire Cat", "Caterpillar", "Mad Hatter", "King of Hearts", "Toast", "Cereal", "Yogurt", "Breakfast Combo", "Orange Juice", "Milk", "Waffle", "Pancakes", "French Toast", "Pizza", "Earth", "Meteor", "Stars", "Alien", "Planet", "UFO", "Spaceship", "Astronaut", "Lil Bot", "Lovely Bot", "Angry Bot", "Happy Bot", "Watson", "Buddy Bot", "Brainy Bot", "Mega Bot", "Old Boot", "Jellyfish", "Clownfish", "Frog", "Crab", "Pufferfish", "Blobfish", "Octopus", "Narwhal", "Dolphin", "Baby Shark", "Megalodon", "Panda", "Sloth", "Tenrec", "Flamingo", "Zebra", "Elephant", "Lemur", "Peacock", "Chameleon", "Lion", "Amber", "Dino Egg", "Dino Fossil", "Stegosaurus", "Velociraptor", "Brontosaurus", "Triceratops", "Tyrannosaurus Rex", "Ice Bat", "Ice Bug", "Ice Elemental", "Rock Monster", "Dink", "Donk", "Bush Monster", "Yeti", "Dingo", "Echidna", "Koala", "Kookaburra", "Platypus", "Joey", "Kangaroo", "Crocodile", "Sugar Glider", "Deckhand", "Buccaneer", "Swashbuckler", "Treasure Map", "Seagull", "Jolly Pirate", "Pirate Ship", "Kraken", "Captain Blackbeard", "Snow Globe", "Holiday Gift", "Hot Chocolate", "Holiday Wreath", "Stocking", "Gingerbread Man", "Gingerbread House", "Reindeer", "Snowman", "Santa Claus", "Pumpkin", "Swamp Monster", "Frankenstein", "Vampire", "Zombie", "Mummy", "Caramel Apple", "Candy Corn", "Werewolf", "Ghost", "Rainbow Jellyfish", "Blizzard Clownfish", "Lovely Frog", "Lucky Frog", "Spring Frog", "Poison Dart Frog", "Lucky Hamster", "Chocolate Rabbit", "Spring Rabbit", "Lemon Crab", "Pirate Pufferfish", "Donut Blobfish", "Crimson Octopus", "Rainbow Narwhal", "Frost Wreath", "Tropical Globe", "New York Snow Globe", "London Snow Globe", "Japan Snow Globe", "Egypt Snow Globe", "Paris Snow Globe", "Red Sweater Snowman", "Blue Sweater Snowman", "Elf Sweater Snowman", "Santa Claws", "Cookies Combo", "Chilly Flamingo", "Snowy Bush Monster", "Nutcracker Koala", "Sandwich", "Ice Slime", "Frozen Fossil", "Ice Crab", "Rainbow Panda", "White Peacock", "Tiger Zebra", "Teal Platypus", "Red Astronaut", "Orange Astronaut", "Yellow Astronaut", "Lime Astronaut", "Green Astronaut", "Cyan Astronaut", "Blue Astronaut", "Pink Astronaut", "Purple Astronaut", "Brown Astronaut", "Black Astronaut", "Lovely Planet", "Lovely Peacock", "Haunted Pumpkin", "Pumpkin Cookie", "Ghost Cookie", "Red Gummy Bear", "Blue Gummy Bear", "Green Gummy Bear", "Chick Chicken", "Chicken Chick", "Raccoon Bandit", "Owl Sheriff", "Vampire Frog", "Pumpkin King", "Leprechaun", "Anaconda Wizard", "Spooky Pumpkin", "Spooky Mummy", "Agent Owl", "Master Elf", "Party Pig", "Wise Owl", "Spooky Ghost", "Phantom King", "Tim the Alien", "Rainbow Astronaut", "Hamsta Claus", "Light Blue", "Black", "Red", "Purple", "Pink", "Orange", "Lime", "Green", "Teal", "Tan", "Maroon", "Gray", "Mint", "Salmon", "Burgandy", "Baby Blue", "Dust", "Brown", "Dull Blue", "Yellow", "Blue"].map(e => ({
776 options: Object.entries({
779 "Tech Chip": "techChip",
780 Shamrocks: "shamrocks",
781 "Orange Ice Pop": "orangeIcePop",
784 "Falling Blocks": "fallingBlocks",
785 Racetrack: "racetrack",
786 "Football Field": "footballField",
787 "Ice Cream Sandwich": "iceCreamSandwich",
788 "Winter Landscape": "winterLandscape",
790 "Music Class": "musicClass",
791 "Science Class": "scienceClass",
792 "Art Class": "artClass",
793 Clockwork: "clockwork",
794 "Hockey Rink": "hockeyRink",
795 "Outer Space": "outerSpace",
796 "Soccer Field": "soccerField",
798 "Toaster Pastry": "toasterPastry",
799 "Fish Tank": "fishTank",
803 "Spooky Cat": "spookyCat",
804 "Spooky Window": "spookyWindow",
805 Frankenstein: "frankenstein",
810 Pumpkins: "pumpkins",
811 "Christmas Tree": "christmasTree",
812 Chalkboard: "chalkboard",
813 Balloons: "balloons",
814 Skateboard: "skateboard",
817 "Pirate Map": "pirateMap",
819 "Road Sign": "roadSign",
820 "Corn Dog": "cornDog",
822 "Chili Pepper": "chiliPepper",
823 "Love Letter": "loveLetter",
825 "Winter Train": "winterTrain",
826 "Winter Drive": "winterDrive",
827 Workbench: "workbench",
829 Chocolate: "chocolate",
830 "Fall Picnic": "fallPicnic",
831 Bookshelf: "bookshelf",
832 "Easter Pattern": "easterPattern",
834 "Easter Field": "easterField",
837 "Gummy Worm": "gummyWorm",
838 "Basketball Court": "basketballCourt",
839 "Flying Kite": "flyingKite",
841 "Japanese Garden": "japaneseGarden",
842 Sandwich: "sandwich",
844 "Ball Pit": "ballPit",
845 "Xylophone": "xylophone",
846 "Holiday Lights": "holidayLights",
847 "Ice Cream Truck": "iceCreamTruck",
848 "Holiday Gift Wrap": "holidayGiftWrap",
849 "Winter Sweater": "winterSweater",
850 "Holiday Ornaments": "holidayOrnaments",
851 Watermelon: "watermelon",
852 Baguette: "baguette",
853 Rollerblades: "rollerblades",
854 Surfboard: "surfboard",
858 Lightning: "lightning",
859 Baseball: "baseball",
860 "Shamrock Coins": "shamrockCoins",
861 "End Of The Rainbow": "endRainbow",
862 "Easter Field": "easterField",
866 "Alphabet Soup": "alphabetSoup"
867 }).map(([e, t]) => ({
872 run: async function(e, t, a, o) {
873 let r = document.createElement("iframe");
876 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode
878 document.body.append(r), window.prompt = r.contentWindow.prompt.bind(window), window.alert = r.contentWindow.alert.bind(window), r.remove();
882 if (!i().props.liveGameController._liveApp) {
883 alert("You must be in a game to use the flooder!");
886 var s = i().props.liveGameController._liveApp.firebase;
887 async function l(e, t) {
888 let r = await fetch("https://fb.blooket.com/c/firebase/join", {
889 body: JSON.stringify({
893 credentials: "include",
895 }).then(e => e.json());
897 let i = s.initializeApp({
898 apiKey: "AIzaSyCA-cTOnX19f6LFnDVVsHXya3k6ByP_MnU",
899 authDomain: "blooket-2020.firebaseapp.com",
900 projectId: "blooket-2020",
901 storageBucket: "blooket-2020.appspot.com",
902 messagingSenderId: "741533559105",
903 appId: "1:741533559105:web:b8cbb10e6123f2913519c0",
904 measurementId: "G-S3H5NGN10Z",
905 databaseURL: r.fbShardURL
907 await i.auth().signInWithCustomToken(r.fbToken);
908 let n = i.database();
909 await n.ref(`${e}/c/${t}`).set({
912 }), C.alerts[0].addLog(`Bot ${t} joined!`)
913 } else alert("Connect error: " + r.msg)
916 if (!i().props.liveGameController._liveApp) {
917 alert("You must be in a game for the flooder to work!");
920 var a, o = i().props.liveGameController._liveGameCode,
923 alert("You must use a valid number!");
926 if (!n.randomNames) var s = e;
927 for (var c = 0; c < r; c++) await l(o, a = n.randomNames ? d(15) : s + Math.floor(4e3 * Math.random()))
931 for (var t = "", a = 0; a < e; a++) t += String.fromCharCode(65 + Math.floor(25 * Math.random()));
937 name: "Simulate Unlock",
938 description: "Simulates unlocking a certian blook",
940 name: "Blook (Case Sensitive)"
942 run: (unlockedBlook) => {
943 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
951 setTimeout(() => stateNode.setState({
956 name: "Bypass Filter",
957 description: "Bypasses the name filter",
966 for (var a = t.split(""), o = "", r = 0; r < a.length; r++) o += "\xad" + a[r];
968 }(t = e), r = document.createElement("iframe"), document.body.appendChild(r), window.alert = r.contentWindow.alert.bind(r.contentWindow), (o = document.createElement("textarea")).value = a, o.style.position = "fixed", o.style.top = 0, o.style.left = 0, o.style.opacity = 0, document.body.appendChild(o), o.select(), document.execCommand("copy"), alert("Bypassed text copied to clipboard!"), r.remove(), document.body.removeChild(o)
971 name: "Change Name Ingame",
972 description: "Changes your name ingame",
977 run: (function(newname) {
979 const reactHandler = (e => Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode);
980 let i = document.createElement('iframe');
981 document.body.append(i);
982 let alert = i.contentWindow.alert.bind(window);
985 async function genToken(name) {
986 const res = await fetch("https://fb.blooket.com/c/firebase/join", {
987 body: JSON.stringify({
988 id: reactHandler().props.client.hostId,
992 "Content-Type": "application/json"
995 credentials: "include"
996 }).then(e => e.json());
998 alert("Error: " + res.msg);
1004 const oldname = reactHandler().props.client.name;
1005 reactHandler().props.client.name = newname;
1006 const olddata = await reactHandler().props.liveGameController.getDatabaseVal(`c/${oldname}`);
1007 await reactHandler().props.liveGameController.removeVal(`c/${oldname}`);
1008 const token = await genToken(newname);
1012 await reactHandler().props.liveGameController._liveApp.auth().signInWithCustomToken(token);
1013 reactHandler().props.liveGameController._liveApp.auth().onAuthStateChanged(e => {
1014 if (e.uid.split(":")[1] === newname) {
1015 reactHandler().props.liveGameController.setVal({
1016 path: `c/${newname}`,
1021 reactHandler().setState({});
1025 name: "Use Banner IDs",
1026 description: "Enter Banner ID to use Banner",
1032 var t = document.createElement("iframe");
1035 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
1037 document.head.appendChild(t), window.alert = t.contentWindow.alert.bind(window), window.prompt = t.contentWindow.prompt.bind(window), t.remove(), a().stateNode.props.liveGameController.setVal({
1038 path: "c/" + a().stateNode.props.client.name + "/bg",
1043 name: "Change Blook Ingame",
1044 description: "Changes your blook",
1051 } = webpackJsonp.push([
1061 return Object.keys(Object.values(e.c).find(e => e.exports.a?.Chick && e.exports.a?.Elephant).exports.a)
1067 } = Object.values(function e(t = document.querySelector("body>div")) {
1068 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1069 }())[1].children[0]._owner.stateNode;
1070 t.client.blook = e, t.liveGameController.setVal({
1071 path: `c/${t.client.name}/b`,
1076 name: "Set Blook Ad Text",
1077 description: "Sets a load of text as your blook and floods teachers screen on lobby",
1083 let t = Object.values(function e(t = document.querySelector("body>div")) {
1084 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1085 }())[1].children[0]._owner.stateNode;
1086 if (!String.prototype.inc) {
1087 String.prototype.inc = String.prototype.includes;
1089 String.prototype.includes = function(a) {
1090 if (a == "#" && this.length > 30) {
1093 return String.prototype.inc.apply(this, arguments);
1095 let repeatedText = Array(500).fill(e).join(' ');
1096 if (!t.state.unlocks) {
1097 t.client.blook = repeatedText;
1099 t.props.liveGameController.setVal({
1100 path: `c/${t.props.client.name}/b`,
1105 name: "Set Blook Ad Text Ingame",
1106 description: "Sets a load of text as your blook",
1113 } = webpackJsonp.push([
1123 return Object.keys(Object.values(e.c).find(e => e.exports.a?.Chick && e.exports.a?.Elephant).exports.a);
1129 } = Object.values(function e(t = document.querySelector("body>div")) {
1130 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1131 }())[1].children[0]._owner.stateNode;
1133 let repeatedText = Array(500).fill(e).join(' ');
1134 t.client.blook = repeatedText;
1135 t.liveGameController.setVal({
1136 path: `c/${t.client.name}/b`,
1141 name: "Auto Answer",
1142 description: "Click the correct answer for you",
1155 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
1157 "typing" != e.qType ? ("feedback" === t || a ? document.querySelector('[class*="feedback"]')?.firstChild : [...document.querySelectorAll('[class*="answerContainer"]')][(e || o).answers.map((t, a) => (e || o).correctAnswers.includes(t) ? a : null).filter(e => null != e)[0]])?.click?.() : Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(e.answers[0])
1161 name: "Highlight Answers",
1162 description: "Colors answers to be red or green highlighting the correct ones",
1169 } = Object.values(function e(t = document.querySelector("body>div")) {
1170 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1171 }())[1].children[0]._owner;
1172 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
1173 (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) ? a.style.backgroundColor = "rgb(0, 207, 119)" : a.style.backgroundColor = "rgb(189, 15, 38)"
1177 name: "Subtle Highlight Answers",
1178 description: "Removes the shadow from correct answers",
1185 } = Object.values(function e(t = document.querySelector("body>div")) {
1186 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1187 }())[1].children[0]._owner;
1188 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
1189 (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) && (a.style.boxShadow = "unset")
1193 name: "Get Daily Rewards",
1194 description: "Gets max daily tokens and xp",
1195 run: async function() {
1196 let e = document.createElement("iframe");
1197 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), location.href.includes("play.blooket.com")) {
1200 } = await fetch("https://play.blooket.com/api/playersessions/solo", {
1201 body: JSON.stringify({
1202 gameMode: "Factory",
1203 questionSetId: ["5fac96fe2ca0da00042b018f", "66702d024ec37ac03062cc06", "600b1491d42a140004d5215a", "65d4810a8a408800b6449e57", "5fac96fe2ca0da00042b018f", "615e9cd727d0720066bcf638", "5fac96fe2ca0da00042b018f", "600b1491d42a140004d5215a", "63ee6c1fbd7c007948b2f986", "65d8de5bd25f9bd49916d855", "600b14d8d42a140004d52165", "6352e93608ea4ee9d0a5fe7f", "64cd1b99ff6f69f3025fc25a", "600b1491d42a140004d5215a", "5db75fa3f1fa190017b61c0c", "65fb6005f986c984060ed92c", "65e88b461a39195a37309c57", "60cc9f943f191b00230ae2a2", "61f5484186dade0979280d54", "664418e736bd1bf1890b2dae", "640a7d9bde68f5243d403977", "66256e6b861ee38a258b8b61", "65119f1fba0bb577d186df8e", "661d7540a452254baf51b1dd", "65ff17a207a715061a6249e6", "61c3570ad8f92ff303ee4733", "63efbff8e2b70e8a1bb1a583", "644a30c06dd4d2c2c5c9c6ae", "66461ff5c671f7c7db225cb3", "664777444be95fa91fc9a4ee", "6425e5e052b1ba5ae2cb07a2", "612e2aad654d48002a4f384d", "6548ffabcbe542c105812e64", "666092337e18e9b7b044e6c8", "6277e6ca21e2151edc435c53", "6268270201c2a958b75af1cf", "61aa4f9c190f70ceda79cf92", "6680e522559ac110b3c6ef28", "6657d986e92bbd481c12a6e8", "61d877c1910d317630b69e02", "618e5d8b7242bec7572b53ca", "656d4a2ac3bc01302555bfbd", "61d7463d2250de5603ad8ba1", "6650bd7a87c4bb5302d69c08", "61b1fdb09a3347d1a298157b", "60b632ff2089ea0028d26fc8", "5fdcacc85d465a0004b021b9", "665e3161785c8a4e8853f995", "61b9d07a7a1e178d18ccd903", "6624a2cd861ee38a258b814d", "650b3ccd54b65594ff99e620", "61b2a39895bd185869e3844e", "6581df4af27a6029a933d954", "641eecaec2e1181b54481588", "668ce3d2eb8513f5ed4c79c1", "5fac96fe2ca0da00042b018f", "6192afff6cb94db501ecc7d5", "600b14d8d42a140004d52165", "665898ae99eca64187ffe7df", "5fe3d085a529560004cd3076", "64fb8fbfdbeffc06f36f8f5f", "654e79558169fc618f544ac7", "628d24107ffc913af879c58a", "617041e0e97439003084cb25", "6408cc2a52d433570018126b", "663c5686d93c1e441547529f", "666c3d24c9e069d6094bbcce", "6548ffabcbe542c105812e64", "663d4766d93c1e4415476a9d", "5f88953cdb209e00046522c7", "64fcec87be8604702a6e0559", "614b2b3747e4cd002c3c0e35", "600b14d8d42a140004d52165", "63640a18c5370a98f00349b1", "6690e0ec559ac110b3c7b4dd", "664644bd7ea36b003839459c", "600b153ad42a140004d52172", "63e638d8db4486e546547014", "61406d240c2275002a272a95", "627bced5fdb8934dfba749a8", "619c2736a7fb3a4c9d3810cc", "650a06c4fe5c6757ff82208c", "6060c2240db34f001ddfe119", "6525532901343f98c90eee3e", "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(24 * Math.random())]
1205 credentials: "include",
1207 }).then(e => e.json());
1208 await fetch("https://play.blooket.com/api/playersessions/landings", {
1209 body: JSON.stringify({
1212 credentials: "include",
1214 }), await fetch("https://play.blooket.com/api/playersessions/questions?t=" + t, {
1215 credentials: "include"
1222 } = Object.values(function e(t = document.querySelector("body>div")) {
1223 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1224 }())[1].children[0]._owner.stateNode.props.user.data;
1225 await fetch("https://play.blooket.com/api/users/factorystats", {
1226 body: JSON.stringify({
1230 cash: Math.floor(9e7 * Math.random()) + 1e7,
1231 correctAnswers: Math.floor(500 * Math.random()) + 500,
1232 upgrades: Math.floor(300 * Math.random()) + 300,
1238 credentials: "include",
1240 }), fetch("https://play.blooket.com/api/users/add-rewards", {
1241 body: JSON.stringify({
1247 credentials: "include",
1249 }).then(e => e.json()).then(({
1251 }) => alert(`Added max tokens and xp, and got ${e} daily wheel tokens!`)).catch(() => alert("There was an error when adding rewards."))
1252 } else alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")
1255 name: "Use any Blook",
1256 description: "Allows you to play as any blook.",
1259 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
1260 let i = document.createElement('iframe');
1261 document.body.append(i);
1262 const alert = i.contentWindow.alert.bind(window);
1264 if (!(stateNode.state.unlocks || stateNode.state.blookData)) {
1265 alert("This must be run on the lobby or dashboard!");
1268 if (stateNode.state.blookData) {
1269 let oe = Object.entries;
1270 Object.entries = function(a) {
1273 Object.entries = oe;
1275 return oe.apply(this, arguments);
1279 function allBlooks(blooks) {
1281 stateNode.setState({
1282 blookData: Object.keys(blooks).reduce((a, b) => (a[b] = stateNode.state.blookData[b] || 1, a), {}),
1283 allSets: Object.values(blooks).reduce((a, b) => {
1284 return !a.includes(b.set) && a.push(b.set), a
1289 stateNode.setState({
1298 name: "Get More Blooks (Lobby)",
1299 description: "Gives you an abundance of custom blooks to try (Some images might be blocked)",
1301 const containerClass = '_blooksHolder_1bg6w_141';
1302 const targetContainer = document.querySelector(`.${containerClass}`);
1304 if (targetContainer) {
1305 const imageUrls = ["https://i.imghippo.com/files/wfNvV1725233960.webp", "https://i.imghippo.com/files/3kDQK1725233922.webp", "https://camo.githubusercontent.com/e471c0c3c98c8b0095b5cc645dfd4732db238c98632f1638d8fa153d4b6e003d/68747470733a2f2f63646e2e646973636f72646170702e636f6d2f656d6f6a69732f31303536393839373839363931333232343539", "https://i.ibb.co/YfwphhN/youtubelogo.png", "https://i.ibb.co/wCGsQD7/1107210565740396625.webp", "https://i.ibb.co/j3k7jYJ/1056899107844800522.webp", "https://i.ibb.co/xsQfVdm/1056898967801188404.webp", "https://i.ibb.co/LxHL2bP/1061744882496065566.webp", "https://ac.blooket.com/dashboard/assets/Cashier-BqZ02xhF.svg", "https://i.ibb.co/sm60M8q/merk.png", "https://ac.blooket.com/dashboard/assets/Token-DmrosBZF.svg", "https://media.blooket.com/image/upload/v1664334335/BlookParts/hat35.svg", "https://media.blooket.com/image/upload/v1664334335/BlookParts/hat36.svg", "https://media.blooket.com/image/upload/v1664334114/BlookParts/glasses16.svg", "https://media.blooket.com/image/upload/v1664334335/BlookParts/hat33.svg", "https://preview.redd.it/custom-blooks-i-made-v0-b0hneftessz91.png?width=300&format=png&auto=webp&s=f7cdba1490c1aba76b9bde994b082a3c76818466", "https://preview.redd.it/custom-blooks-i-made-v0-g3nvjltessz91.png?width=300&format=png&auto=webp&s=0d38efcec1212896912c1ec4e20b7601eaa686ea", "https://preview.redd.it/custom-blooks-i-made-v0-ka56tptessz91.png?width=300&format=png&auto=webp&s=0f247448aa4b0ca2b1f1fe8f0e1059767d3d15f8", "https://preview.redd.it/custom-blooks-i-made-v0-6asu9ztessz91.png?width=300&format=png&auto=webp&s=6bc047e638e0cb6596e619d0eb367d551dc455b0", "https://preview.redd.it/custom-blooks-i-made-v0-czdr64uessz91.png?width=500&format=png&auto=webp&s=858764ba17888fa8aaa487f97feb32b2d8b81f62", "https://preview.redd.it/custom-blooks-i-made-v0-lsgc29uessz91.png?width=500&format=png&auto=webp&s=cddb4dbf09a226c296d2e659aa80851bbd481921", "https://preview.redd.it/64mcrm1aceh91.png?width=1256&format=png&auto=webp&s=5f53991654cd7a45fe58de4097c9ae1177a10bfd", "https://preview.redd.it/trp3snp9ceh91.png?width=1419&format=png&auto=webp&s=663663e4d93424141cd6500c6b24d91042700cc2", "https://preview.redd.it/1d4uxcb9ceh91.png?width=1254&format=png&auto=webp&s=3a54cc9a95897f47c2f9007b8a49aa98cf46089f", "https://preview.redd.it/k0894xv8ceh91.png?width=1254&format=png&auto=webp&s=181019f5ef1c288cb9c855776dd14f6eec0ff993", "https://preview.redd.it/xrb6fug8ceh91.png?width=1273&format=png&auto=webp&s=7df11f3dddc5f1fd8354c99de670c2fb34cc2f10", "https://preview.redd.it/beicsi08ceh91.png?width=1258&format=png&auto=webp&s=313cc36ded78d3c3e386b85abf2d6ba498401d1f", "https://preview.redd.it/810eoco7ceh91.png?width=1258&format=png&auto=webp&s=16be55f32fda316611c41ab5dbc53da0b42a5891", "https://preview.redd.it/4iq2am87ceh91.png?width=1255&format=png&auto=webp&s=af5825a0f2a0e0680252767de622c8b16b8bd530", "https://preview.redd.it/9b0eq1v6ceh91.png?width=1258&format=png&auto=webp&s=3c570c3f2f70a156723f375ba1cc68b1879283d8", "https://preview.redd.it/0g4eflh6ceh91.png?width=1252&format=png&auto=webp&s=ba426c277dbf7a89dbd01e108bb4b397895bd9e2", "https://preview.redd.it/gq1ol7z5ceh91.png?width=1258&format=png&auto=webp&s=72eb5b3df4c152b0f1405c2fa1c8f6689c96e5ea", "https://preview.redd.it/zs746135ceh91.png?width=1254&format=png&auto=webp&s=fed0bb921be560d8fe254065b9a986ac88e08010", "https://preview.redd.it/custom-blooks-i-have-made-v0-uz0uxh4sh9gc1.png?width=485&format=png&auto=webp&s=f8fb21906226f94e64272616cbe37ce2292a0494", "https://preview.redd.it/custom-blooks-i-have-made-v0-gfdrycozh9gc1.png?width=536&format=png&auto=webp&s=445b74e0e1f1d12ae3c4c470cab1b46527792e18", "https://preview.redd.it/custom-blooks-i-have-made-v0-nojhsxb2i9gc1.png?width=504&format=png&auto=webp&s=e2b22b88b703ff7fb908248a7de93c7bc02861fe", "https://preview.redd.it/custom-blooks-i-have-made-v0-dagyqk2pi9gc1.png?width=522&format=png&auto=webp&s=5be59b74b295e5634fb7769efc2b78ed1a2d0ab2", "https://preview.redd.it/more-custom-blooks-that-i-made-v0-evaee2nzi92a1.png?width=300&format=png&auto=webp&s=e2910bcf63138d255d8f2d2a42819e04aa25b20c", "https://preview.redd.it/more-custom-blooks-that-i-made-v0-3jkr9dlzi92a1.png?width=300&format=png&auto=webp&s=36834cdd172dd4377f0f040a1cfa0348a0cf9f2c", "https://preview.redd.it/more-custom-blooks-that-i-made-v0-chgp4clzi92a1.png?width=300&format=png&auto=webp&s=2ba607d48f1a01c48cca5f5177ce609c8e3b740e", "https://preview.redd.it/more-custom-blooks-that-i-made-v0-esxetdlzi92a1.png?width=300&format=png&auto=webp&s=843674b51fecfc633c67386d6ec7a53664002229", "https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/7e7e889a-de90-46e6-b7e0-a80a0e698de6/dbpu9b-51118e9e-16bd-4a28-bbe6-921fc1da8181.gif?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7InBhdGgiOiJcL2ZcLzdlN2U4ODlhLWRlOTAtNDZlNi1iN2UwLWE4MGEwZTY5OGRlNlwvZGJwdTliLTUxMTE4ZTllLTE2YmQtNGEyOC1iYmU2LTkyMWZjMWRhODE4MS5naWYifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6ZmlsZS5kb3dubG9hZCJdfQ.h309S-rnZJWgrquS7zLKqNmCyGpKi6EydLGfeGlmwSY", "https://i.ibb.co/2tPhQQ9/Screenshot-2024-03-13-8-38-54-PM-removebg-preview.png", "https://i.ibb.co/hfGKRGg/5rcse2.png", "https://i.ibb.co/dk5X1Qx/wolf-svg-1.gif", "https://i.ibb.co/MRYh2jY/madhatter-svg-1-1.gif", "https://i.ibb.co/prhrSLG/penguin-svg.png", "https://i.ibb.co/y0Lz9KM/dog-2-svg-1.png", "https://i.ibb.co/ZVjPyyW/egyptsnowglobe-svg.gif", "https://i.ibb.co/27J4Tzc/hamster-1-svg-2.gif", "https://i.ibb.co/GWS1F1B/Untitled1942-20240816213512.png", "https://i.ibb.co/b1w1Zt3/Untitled1944-20240816220241-2.png", "https://i.ibb.co/sP1n7px/image-2.png", "https://i.ibb.co/749D31P/31-BFAFFD-21-D5-416-C-8-EDB-C1-EC31-FE9-B7-E.png", "https://i.ibb.co/k8y3Q3C/image-3.png", "https://i.ibb.co/h9sgDc3/1185712529960349726.png", "https://i.ibb.co/6X1mCwq/moai-blook.png", "https://i.imghippo.com/files/VfIxx1725062188.gif", "https://i.ibb.co/Rb8B8xH/pickle-jar-blook.png", "https://i.ibb.co/FntT4VR/c96edb96a2571742004c4240a5c4abe3.webp", "https://styles.redditmedia.com/t5_2zesh/styles/communityIcon_6gx6y4qpdw651.png", "https://play-lh.googleusercontent.com/AUGkRrKMtUCLVE9vCvlfMY9Ny9EBqzx17yejVtEEhvpkw-H6lJlvBHgCMqPJm8HV_tM=s256-rw", "https://play-lh.googleusercontent.com/JQqSn7wuCj0SxBqpBThNI33qCR9gwY0str2TIAnu-m_xrVCgZk3IPxYK2S7zC9WG0ig=s256-rw", "https://play-lh.googleusercontent.com/epeBd8ftLXNHy9TjcB4k2Ip0KzcMT-4oTjDUt_DwMjgDwrbSTuVI77ccVWMdoDMXDQ=s256-rw", "https://play-lh.googleusercontent.com/ndILnpPIPE5Kfqmwzjlbdz2duHMjh0yvnZ31PBJ_-oZOPa9iYfh1jedpj2-td2pyrKmj=w240-h256-rw", "https://i.ibb.co/Rp56kCC/bee-blook.png", "https://i.ibb.co/y0Sdwg0/golden-blook.gif", "https://i.ibb.co/B2ZyFBj/rainbow-blook.gif", "https://i.ibb.co/Y0mJq9g/blacket-legacy.png", "https://i.ibb.co/JHFsXdx/betastar.png", "https://i.ibb.co/h2m8fGf/blacket.png", "https://i.ibb.co/QKdZ1b4/logo-2.png", "https://i.ibb.co/pPVh8bt/Blooket-Emblem.png", "https://i.ibb.co/sWqBm0K/1024.png", "https://i.ibb.co/pdSYc4M/Site-logo.png", "https://raw.githubusercontent.com/The-Blooket-Hacks/Blooket-Hacks/main/images/animated_icon.gif", "https://raw.githubusercontent.com/The-Blooket-Hacks/Blooket-Hacks/main/images/icon.png", "https://i.ibb.co/bHks2LC/image-3.png", "https://i.ibb.co/0Z4Gn6n/logo.png", "https://i.ibb.co/LCZTRsY/e222502653c42a263899a4e6a9c58dca.webp", "https://i.ibb.co/1fH15Rs/yellow-submarine.png", "https://i.ibb.co/zRGywqm/watermelon20min.png", "https://i.ibb.co/6rs8hky/valentines-present.png", "https://i.ibb.co/g3hB9t3/turkey.png", "https://i.ibb.co/RzNPvNf/touch-grass-blook.png", "https://i.ibb.co/PDgmxqQ/taco.png", "https://i.ibb.co/vZ40Jf9/squash2.png", "https://i.ibb.co/CMVh9Yq/space-mug.png", "https://i.ibb.co/zVZb2Bq/rubber-duck.png", "https://i.ibb.co/8jchMBy/sombrero.png", "https://i.ibb.co/hKtyzDw/pumpkinking.png", "https://i.ibb.co/M9fq4zD/pumpkin-pie.png", "https://i.ibb.co/FV5Vj7r/prehistoric-globbe.png", "https://i.ibb.co/6Z8QWpp/pineapple.png", "https://i.ibb.co/1GtRrkj/pilgrim-hat.png", "https://i.ibb.co/R6zJhbc/static-assets-upload10217624323675156800.png", "https://i.ibb.co/NjyMT23/pig-snowman.png", "https://i.ibb.co/J70xZZZ/mrbaest.png", "https://i.ibb.co/QcSLKxC/moon.png", "https://i.ibb.co/vdhvvtz/meteor-impact.png", "https://i.ibb.co/1KBf6K5/mega-king.png", "https://i.ibb.co/0ZFjpF1/mayflower.png", "https://i.ibb.co/VCyKwMq/magic8ball.png", "https://i.ibb.co/vdH0sJ0/lunar-globe.png", "https://i.ibb.co/xFWDzNz/life-buoy.png", "https://i.ibb.co/nj8zHRd/lemonade.png", "https://i.ibb.co/hRLdSRn/ladybug.png", "https://i.ibb.co/51B9Yfw/blob-ghost.png", "https://i.ibb.co/87j9XBs/ghost-pumpkin.png", "https://i.ibb.co/vL53Qwt/jackinthebox.png", "https://i.ibb.co/LNzSYX8/freedom-frog.png", "https://i.ibb.co/NpV9VrQ/egg.png", "https://i.ibb.co/vzmCC55/dream.png", "https://i.ibb.co/b2w7f14/cyborg-santa.png", "https://i.ibb.co/2nXpv57/cooked-turkey.png", "https://i.ibb.co/NmPW8H6/comic-crew-inc-blook.png", "https://i.ibb.co/ynsBMVv/chili-pepper.png", "https://i.ibb.co/WyvtbNB/beehive.png", "https://i.ibb.co/34WM19w/candy-heart.png", "https://i.ibb.co/LYrF1xn/candy-basket.png", "https://i.ibb.co/RCLkQS8/box-of-white-chocolates.png", "https://i.ibb.co/N2nDcpB/box-of-chocolates.png", "https://i.ibb.co/N2nDcpB/box-of-chocolates.png", "https://i.ibb.co/6W6wvXJ/apple-barrel.png", "https://i.ibb.co/RNp7frY/acorn.png", "https://i.ibb.co/zsKsX4f/Button-Add-icon.png", "https://i.ibb.co/rfsnSyp/Button-Delete-icon.png", "https://blacket.org/content/blooks/Dinah.webp", "https://blacket.org/content/blooks/March%20Hare.webp", "https://blacket.org/content/blooks/Basketball.webp", "https://blacket.org/content/blooks/Baseball.webp", "https://blacket.org/content/blooks/Soccer%20Ball.webp", "https://blacket.org/content/blooks/Tennis%20Ball.webp", "https://blacket.org/content/blooks/Golf%20Ball.webp", "https://blacket.org/content/blooks/Football.webp", "https://blacket.org/content/blooks/Bowling%20Ball.webp", "https://blacket.org/content/blooks/Ping%20Pong%20Racket.webp", "https://blacket.org/content/blooks/Curling%20Stone.webp", "https://blacket.org/content/blooks/Football%20Helmet.webp", "https://blacket.org/content/blooks/Space%20Terminal.webp", "https://blacket.org/content/blooks/Space%20Debugger.webp", "https://blacket.org/content/blooks/Dark%20Dragon.webp", "https://blacket.org/content/blooks/Jasper.webp", "https://blacket.org/content/blooks/Jade.webp", "https://blacket.org/content/blooks/Onyx.webp", "https://blacket.org/content/blooks/Quartz.webp", "https://blacket.org/content/blooks/Lapis%20Lazuli.webp", "https://blacket.org/content/blooks/Topaz.webp", "https://blacket.org/content/blooks/Ruby.webp", "https://blacket.org/content/blooks/Sapphire.webp", "https://blacket.org/content/blooks/Amethyst.webp", "https://blacket.org/content/blooks/Opal.webp", "https://blacket.org/content/blooks/Moonstone.webp", "https://blacket.org/content/blooks/Rose%20Quartz.webp", "https://blacket.org/content/blooks/Black%20Opal.webp", "https://blacket.org/content/blooks/Apple.webp", "https://blacket.org/content/blooks/Orange.webp", "https://blacket.org/content/blooks/Lemon.webp", "https://blacket.org/content/blooks/Lime.webp", "https://blacket.org/content/blooks/Grape.webp", "https://blacket.org/content/blooks/Strawberry.webp", "https://blacket.org/content/blooks/Raspberry.webp", "https://i.imghippo.com/files/7cAht1725062940.png", "https://blacket.org/content/blooks/Watermelon.webp", "https://blacket.org/content/blooks/Dragon%20Fruit.webp", "https://blacket.org/content/blooks/Starfruit.webp", "https://blacket.org/content/blooks/Green%20Apple.webp", "https://blacket.org/content/blooks/Blue%20Raspberry.webp", "https://blacket.org/content/blooks/Golden%20Apple.webp", "https://blacket.org/content/blooks/Golden%20Amber.webp", "https://blacket.org/content/blooks/Rainbow%20Blook.webp", "https://blacket.org/content/blooks/Candy%20Corn.webp", "https://blacket.org/content/blooks/Jellybean.webp", "https://blacket.org/content/blooks/Lollipop.webp", "https://blacket.org/content/blooks/Black%20Licorice.webp", "https://blacket.org/content/blooks/Peppermint.webp", "https://blacket.org/content/blooks/Chocolate.webp", "https://blacket.org/content/blooks/Gummy%20Worm.webp", "https://blacket.org/content/blooks/Rock%20Candy.webp", "https://blacket.org/content/blooks/White%20Chocolate.webp", "https://blacket.org/content/blooks/Red%20Licorice.webp", "https://blacket.org/content/blooks/Blue%20Gummy%20Worm.webp", "https://blacket.org/content/blooks/Chocolate%20Milk.webp", "https://i.ibb.co/W0LDVvq/image-removebg-preview.png", "https://blacket.org/content/blooks/Forgotten%20Bot.webp", "https://blacket.org/content/blooks/Donut%20Blobfish.webp", "https://blacket.org/content/blooks/Magic%20Spellbook.webp", "https://blacket.org/content/blooks/Cursed%20Ring.webp", "https://blacket.org/content/blooks/Bubbling%20Cauldron.webp", "https://blacket.org/content/blooks/Fairy%20Dust.webp", "https://blacket.org/content/blooks/Enchantment%20Hall.webp", "https://blacket.org/content/blooks/Magician's%20Wand.webp", "https://blacket.org/content/blooks/Ancient%20Runes.webp", "https://blacket.org/content/blooks/Strength%20Potion.webp", "https://blacket.org/content/blooks/Magician's%20Hat.webp", "https://blacket.org/content/blooks/Sentient%20Spellbook.webp", "https://blacket.org/content/blooks/Golden%20Magician's%20Wand.webp", "https://blacket.org/content/blooks/Invisibility%20Cloak.webp", "https://blacket.org/content/blooks/Dial%20Telephone.webp", "https://blacket.org/content/blooks/EtchASketch.webp", "https://blacket.org/content/blooks/Cassette%20Tape.webp", "https://blacket.org/content/blooks/Polaroid%20Camera.webp", "https://blacket.org/content/blooks/Vending%20Machine.webp", "https://blacket.org/content/blooks/GameBlook.webp", "https://blacket.org/content/blooks/Donkey%20Kong%20Machine.webp", "https://blacket.org/content/blooks/BoomBox.webp", "https://blacket.org/content/blooks/CRT%20Television.webp", "https://blacket.org/content/blooks/GameBlook%20Color.webp", "https://blacket.org/content/blooks/PacMan%20Machine.webp", "https://blacket.org/content/blooks/Blackintosh.webp", "https://blacket.org/content/blooks/Gravity%20Switcher.webp", "https://blacket.org/content/blooks/Stealth%20Disguise%20Kit.webp", "https://blacket.org/content/blooks/Object%20Miniaturizer.webp", "https://blacket.org/content/blooks/Object%20Maximizer.webp", "https://blacket.org/content/blooks/Holographic%20Display.webp", "https://blacket.org/content/blooks/Flying%20Car.webp", "https://blacket.org/content/blooks/Void%20Pistol.webp", "https://blacket.org/content/blooks/Red%20Lightsaber.webp", "https://blacket.org/content/blooks/Neural%20Implant.webp", "https://blacket.org/content/blooks/Hijacked%20Radio.webp", "https://blacket.org/content/blooks/Eternal%20Prism%20Blade.webp", "https://blacket.org/content/blooks/Blue%20Lightsaber.webp", "https://blacket.org/content/blooks/Hijacked%20Neural%20Implant.webp", "https://blacket.org/content/blooks/Celestial%20Oracle%20Staff.webp", "https://blacket.org/content/blooks/Sea%20Monster.webp", "https://blacket.org/content/blooks/Pocket%20Watch.webp", "https://blacket.org/content/blooks/Hourglass.webp", "https://blacket.org/content/blooks/Cuckoo%20Clock.webp", "https://blacket.org/content/blooks/Calendar%20Scroll.webp", "https://blacket.org/content/blooks/Analog%20Clock.webp", "https://blacket.org/content/blooks/Astrolabe.webp", "https://blacket.org/content/blooks/Time%20Capsule.webp", "https://blacket.org/content/blooks/Orrey.webp", "https://blacket.org/content/blooks/Grandfather%20Clock.webp", "https://blacket.org/content/blooks/Clock%20Tower.webp", "https://blacket.org/content/blooks/Time%20Stone.webp", "https://blacket.org/content/blooks/Time%20Machine.webp", "https://blacket.org/content/blooks/Pac-Man.webp", "https://blacket.org/content/blooks/Space%20Invader.webp", "https://blacket.org/content/blooks/Among%20Us.webp", "https://blacket.org/content/blooks/Poke%20Ball.webp", "https://blacket.org/content/blooks/Flappy%20Bird.webp", "https://blacket.org/content/blooks/Goomba.webp", "https://blacket.org/content/blooks/Big%20Shield.webp", "https://blacket.org/content/blooks/Creeper.webp", "https://blacket.org/content/blooks/Red%20Bird.webp", "https://blacket.org/content/blooks/Companion%20Cube.webp", "https://blacket.org/content/blooks/Master%20Chief.webp", "https://blacket.org/content/blooks/Golden%20Among%20Us.webp", "https://blacket.org/content/blooks/Gaming%20Mouse.webp", "https://blacket.org/content/blooks/Sand%20Bucket.webp", "https://blacket.org/content/blooks/Beach%20Ball.webp", "https://blacket.org/content/blooks/Plastic%20Shovel.webp", "https://blacket.org/content/blooks/Popsicle.webp", "https://blacket.org/content/blooks/Life%20Float.webp", "https://blacket.org/content/blooks/Conch%20Shell.webp", "https://blacket.org/content/blooks/Surfboard.webp", "https://blacket.org/content/blooks/Sand%20Castle.webp", "https://blacket.org/content/blooks/Coconut%20Cocktail.webp", "https://blacket.org/content/blooks/Tropical%20Pig.webp", "https://blacket.org/content/blooks/Sheet%20Music.webp", "https://blacket.org/content/blooks/Music%20Disc.webp", "https://blacket.org/content/blooks/Xylophone.webp", "https://blacket.org/content/blooks/Drums.webp", "https://blacket.org/content/blooks/Metronome.webp", "https://blacket.org/content/blooks/Triangle.webp", "https://blacket.org/content/blooks/Speaker.webp", "https://blacket.org/content/blooks/Piano.webp", "https://blacket.org/content/blooks/White%20Piano.webp", "https://blacket.org/content/blooks/Golden%20Harp.webp", "https://blacket.org/content/blooks/Viking%20Helmet.webp", "https://blacket.org/content/blooks/Iron%20Chestplate.webp", "https://blacket.org/content/blooks/Spiked%20Boot.webp", "https://blacket.org/content/blooks/Silver%20Shuriken.webp", "https://blacket.org/content/blooks/Knight%20Shield.webp", "https://blacket.org/content/blooks/Knight%20Sword.webp", "https://blacket.org/content/blooks/Fragment%20Grenade.webp", "https://blacket.org/content/blooks/M12%20Shotgun.webp", "https://blacket.org/content/blooks/Diamond%20Sword.webp", "https://blacket.org/content/blooks/Golden%20Shuriken.webp", "https://blacket.org/content/blooks/Golden%20Gift.webp", "https://blacket.org/content/blooks/Diamond%20Gift.webp", "https://blacket.org/content/blooks/Ankha.webp", "https://blacket.org/content/blooks/Mummy%20Ankha.webp", "https://blacket.org/content/blooks/Realistic%20Ankha.webp", "https://blacket.org/content/blooks/Glowing%20Ankha.webp", "https://blacket.org/content/blooks/Mark%20Ankha.webp", "https://blacket.org/content/blooks/Ankha's%20House.webp", "https://blacket.org/content/blooks/High%20Ankha.webp", "https://blacket.org/content/blooks/Black%20Ankha.webp", "https://blacket.org/content/blooks/Golden%20Ankha.webp", "https://blacket.org/content/blooks/Zone%20Ankha.webp", "https://blacket.org/content/blooks/Rainbow%20Ankha.webp", "https://blacket.org/content/blooks/acai.webp", "https://blacket.org/content/blooks/alicialol.webp", "https://blacket.org/content/blooks/Pablo.webp", "https://blacket.org/content/blooks/fristic.webp", "https://blacket.org/content/blooks/Minesraft2.webp", "https://blacket.org/content/blooks/Piotr.webp", "https://blacket.org/content/blooks/GAMERYT.webp", "https://blacket.org/content/blooks/painbow.webp", "https://blacket.org/content/blooks/okr765.webp", "https://blacket.org/content/blooks/Cerulean.webp", "https://i.ibb.co/0DZt7cc/notAI.png", "https://blacket.org/content/blooks/iBlooket.webp", "https://blacket.org/content/blooks/root.webp", "https://blacket.org/content/blooks/envi.webp", "https://blacket.org/content/blooks/zastix.webp", "https://blacket.org/content/blooks/monkxy.webp", "https://blacket.org/content/blooks/Xotic.webp", "https://blacket.org/content/blooks/10k.webp", "https://blacket.org/content/blooks/Lunar%20Frog.webp", "https://blacket.org/content/blooks/Lucky%20Ankha.webp", "https://blacket.org/content/blooks/Spring%20Ankha.webp", "https://blacket.org/content/blooks/Turkey%20Ankha.webp", "https://blacket.org/content/blooks/Festive%20Xotic.webp", "https://blacket.org/content/blooks/Ukraine%20Ankha.webp", "https://blacket.org/content/blooks/American%20Ankha.webp", "https://blacket.org/content/blooks/Golden%20Shovel.webp", "https://blacket.org/content/blooks/Lunar%20Ankha.webp", "https://blacket.org/content/blooks/Lovely%20Ankha.webp", "https://blacket.org/content/blooks/Lucky%20Pablo.webp", "https://blacket.org/content/blooks/Festive%20Ankha.webp", "https://blacket.org/content/blooks/Naughty%20Ankha.webp", "https://blacket.org/content/blooks/Vampire%20Ankha.webp", "https://blacket.org/content/blooks/Bia.webp", "https://blacket.org/content/blooks/Gold%20Doubloon.webp", "https://blacket.org/content/blooks/Golden%20Crab.webp", "https://blacket.org/content/blooks/Golden%20Seashell.webp", "https://blacket.org/content/blooks/Treasure%20Chest.webp", "https://blacket.org/content/blooks/Tropical%20Island.webp", "https://blacket.org/content/blooks/Spring%20Globe.webp", "https://blacket.org/content/blooks/Patriotic%20Piotr.webp", "https://blacket.org/content/blooks/Nature%20Elemental1.webp", "https://blacket.org/content/blooks/Fire%20Elemental1.webp", "https://blacket.org/content/blooks/Air%20Elemental1.webp", "https://blacket.org/content/blooks/Frost%20Elemental1.webp", "https://blacket.org/content/blooks/Lava%20Elemental1.webp", "https://blacket.org/content/blooks/Electric%20Elemental1.webp", "https://blacket.org/content/blooks/Water%20Elemental1.webp", "https://blacket.org/content/blooks/Space%20Elemental1.webp", "https://blacket.org/content/blooks/Plasma%20Elemental1.webp", "https://blacket.org/content/blooks/Lovely%20zastix.webp", "https://blacket.org/content/blooks/Cookies%20Combo.webp", "https://blacket.org/content/logo.webp", "https://blacket.org/content/blooks/Giveaway.webp", "https://blacket.org/content/blooks/Error.webp", "https://blacket.org/content/blooks/Success.webp", "https://blacket.org/content/blooks/yesbutterjeff.webp", "https://blacket.org/content/blooks/Info.webp", "https://blacket.org/content/blooks/Magnet.webp", "https://blacket.org/content/blooks/DNA.webp", "https://blacket.org/content/blooks/Scale.webp", "https://blacket.org/content/blooks/Beaker.webp", "https://blacket.org/content/blooks/Blood%20Bag.webp", "https://blacket.org/content/blooks/Magnifying%20Glass.webp", "https://blacket.org/content/blooks/Battery.webp", "https://blacket.org/content/blooks/Atom.webp", "https://blacket.org/content/blooks/Test%20Tubes.webp", "https://blacket.org/content/blooks/Bunsen%20Burner.webp", "https://blacket.org/content/blooks/Bacteria.webp", "https://blacket.org/content/blooks/Microscope.webp", "https://blacket.org/content/blooks/Eyeball.webp", "https://blacket.org/content/blooks/Toxic%20Waste.webp", "https://blacket.org/content/blooks/Prism.webp", "https://blacket.org/content/blooks/Telescope.webp", "https://blacket.org/content/blooks/Skull.webp", "https://blacket.org/content/blooks/Lightbulb.webp", "https://blacket.org/content/blooks/Brain.webp", "https://blacket.org/content/blooks/Flask.webp", "https://blacket.org/content/blooks/Petri%20Dish.webp", "https://blacket.org/content/blooks/Albert%20Einstein.webp", "https://blacket.org/content/blooks/Neil%20deGrasse%20Tyson.webp", "https://blacket.org/content/blooks/Gregor%20Mendel.webp", "https://blacket.org/content/blooks/Nikola%20Tesla.webp", "https://blacket.org/content/blooks/Lava%20Lamp.webp", "https://blacket.org/content/blooks/Beating%20Heart.webp", "https://blacket.org/content/blooks/Blueberry%20Pie.webp", "https://blacket.org/content/blooks/Cherry%20Pie.webp", "https://blacket.org/content/blooks/Donut.webp", "https://blacket.org/content/blooks/Cake.webp", "https://blacket.org/content/blooks/Birthday%20Cake.webp", "https://blacket.org/content/blooks/Eclair.webp", "https://blacket.org/content/blooks/Chocolate%20Ice%20Cream.webp", "https://blacket.org/content/blooks/Strawberry%20Ice%20Cream.webp", "https://blacket.org/content/blooks/Macaroon.webp", "https://blacket.org/content/blooks/Golden%20Donut.webp", "https://blacket.org/content/blooks/Magic%20Chocolate.webp", "https://blacket.org/content/blooks/Pack%20of%20Peeps.webp", "https://i.ibb.co/kmZzpW7/xPCHhic.png", "https://i.imgur.com/oFAiMCP.png", "https://i.imgur.com/Cvy8nhz.png", "https://i.imgur.com/5bPl8d7.png", "https://i.imgur.com/PZ723dj.png", "https://i.imgur.com/gIWOeB8.png", "https://i.imgur.com/uqFXKVa.png", "https://i.imgur.com/njAnZv3.png", "https://i.imgur.com/roDRyAE.png", "https://i.imgur.com/Rfc6msP.png", "https://i.imgur.com/j6Xk43g.png", "https://i.ibb.co/WnYyWms/console.webp", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Black.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Blue.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Green.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/LightGreen.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Orange.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Purple.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Red.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Teal.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Color/Yellow.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Berry.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/BlooketWarrior.gif", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Buenar.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/CurryEater.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/FrostyIce109.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/GAMERYT.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Iamgamedude.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/ItsTornadoYT.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/IzumiiHD.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Manny.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/NoButterJeff.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Packman28.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/SOUNDGOD.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Solid_Snake.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/ThatPlanet.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/OG/Xotic.gif", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Crayon.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Eraser.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Notebook.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Paper.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Pencil.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Ruler.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/School/Scissors.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Camera.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Computer.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Microwave.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Remote.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Speaker.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/blooks/Tech/Virus.png", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/rainbow.gif", "https://raw.githubusercontent.com/IzumiiHD/Pixelit/main/public/img/lock-icon.png"];
1306 imageUrls.forEach((url) => {
1307 const newBlookContainer = document.createElement('div');
1308 newBlookContainer.className = '_blookContainer_1bg6w_150';
1309 newBlookContainer.setAttribute('role', 'button');
1310 newBlookContainer.setAttribute('tabindex', '0');
1312 const innerDiv = document.createElement('div');
1313 innerDiv.className = '_blookContainer_12gbf_1 _blook_1bg6w_141';
1314 innerDiv.setAttribute('data-tooltip-id', 'blook-tooltip');
1316 const img = document.createElement('img');
1318 img.alt = 'Custom Blook';
1319 img.draggable = false;
1320 img.className = '_blook_12gbf_1';
1322 newBlookContainer.addEventListener('click', () => {
1323 setCustomBlookUrl(url);
1326 innerDiv.appendChild(img);
1327 newBlookContainer.appendChild(innerDiv);
1328 targetContainer.appendChild(newBlookContainer);
1331 console.error('Target container not found');
1334 function setCustomBlookUrl(url) {
1335 let t = Object.values(function e(t = document.querySelector("body>div")) {
1336 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1337 }())[1].children[0]._owner.stateNode;
1339 if (!t.state.unlocks) {
1340 t.props.client.blook = url;
1343 t.props.liveGameController.setVal({
1344 path: `c/${t.props.client.name}/b`,
1350 name: "Freeze Host",
1351 description: "Freezes the host's screen",
1353 const encodedChars = [
1354 '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
1357 const chars = encodedChars.map(char => eval(`"${char}"`));
1359 function makeLongText() {
1360 return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
1365 } = Object.values(function e(t = document.querySelector("body>div")) {
1366 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1367 }())[1].children[0]._owner.stateNode;
1369 let repeatedText = makeLongText();
1370 t.client.blook = repeatedText;
1371 t.liveGameController.setVal({
1372 path: `c/${t.client.name}/b`,
1377 name: "Remove all Taken Blooks",
1378 description: "Removes all taken blooks, allowing you to use any taken blook. Only works in lobby.",
1380 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
1381 stateNode.setState({
1386 stateNode.setState = function(a, b) {
1387 if (a?.takenBlooks) {
1390 stateNode.updater.enqueueSetState(stateNode, a, b, "setState");
1394 name: "Dynamic Player Count",
1395 description: "Updates the player count at the top of the screen in realtime as players join or leave.",
1398 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
1399 const ref = await stateNode.props.liveGameController.getDatabaseRef("")
1400 ref.on("value", e => {
1401 document.querySelector("div[class*='headerTextCenter']").innerHTML = `Player Count | ${Object.keys(e.val()?.c)?.length} / ${stateNode.props.client.plus ? 300 : 60}`;
1406 name: "Blooket Bot",
1407 description: "Opens Blooket Bot",
1409 function getGameCode() {
1410 const appDiv = document.querySelector('#app>div>div');
1412 const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
1413 return reactComponent?.stateNode?.props?.client?.hostId || null;
1418 const gameCode = getGameCode();
1419 const url = gameCode ? "https://blooketbot.glitch.me/?code=" + gameCode : "https://blooketbot.glitch.me/";
1420 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
1423 name: "Blooket Bot Unblocked",
1424 description: "Opens Blooket Bot",
1426 function getGameCode() {
1427 const appDiv = document.querySelector('#app>div>div');
1429 const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
1430 return reactComponent?.stateNode?.props?.client?.hostId || null;
1435 const gameCode = getGameCode();
1436 const url = gameCode ? "https://blooketbot.vercel.app/?code=" + gameCode : "https://blooketbot.vercel.app/";
1437 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
1440 name: "Blooket Homework Editor",
1441 description: "Opens Blooket Homework Editor",
1443 window.open("https://blookethwk.glitch.me/", "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes")
1447 description: "Chat with other people and execute commands",
1456 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
1460 document.addEventListener("keydown", function(e) {
1461 "`" === e.key && (a = !a, o.style.display = a ? "none" : "block")
1463 let o = document.createElement("div");
1464 o.className = "chat-box", document.body.appendChild(o);
1465 let r = document.createElement("div");
1466 r.className = "chat-header", r.textContent = "Chat", o.appendChild(r);
1467 let i = document.createElement("div");
1468 i.className = "chat-body", o.appendChild(i);
1469 let n = document.createElement("input");
1472 let t = document.createElement("div");
1473 t.textContent = e, i.appendChild(t)
1475 n.type = "text", n.className = "chat-input", n.placeholder = "Type a message...", o.appendChild(n), o.style.position = "fixed", o.style.bottom = "20px", o.style.right = "20px", o.style.width = "300px", o.style.backgroundColor = "#fff", o.style.border = "1px solid #ccc", o.style.boxShadow = "0px 0px 10px rgba(0, 0, 0, 0.2)", r.addEventListener("click", () => {
1476 i.classList.toggle("open")
1477 }), n.addEventListener("keydown", function(a) {
1478 13 === a.keyCode && (function a(o) {
1479 var r, n, l, c, d, p, u, h = function e(t) {
1480 if ("/" !== t.charAt(0)) return !1;
1481 var a = t.split(" "),
1482 o = a[0].replace("/", "");
1483 return a.splice(0, 1), {
1488 if (h) switch (h.cmd) {
1490 r = h.args.join(" "), (n = webpackJsonp.push([
1499 ]).webpack("MDrD").a)[r = Object.keys(n).find(e => r.toLocaleLowerCase() === e.toLocaleLowerCase())] ? (s("Setting blook to " + r + "!"), e().stateNode.props.liveGameController.setVal({
1500 id: e().stateNode.props.client.hostId,
1501 path: "c/" + e().stateNode.props.client.name,
1505 }), e().stateNode.props.client.blook = r) : s("No blook with that name was found!");
1511 Object.keys(e().stateNode.state).map(t => {
1512 var a = e().stateNode.state[t];
1513 if (null == a) return "N/A";
1514 Array.from(a) && "object" == typeof a && (a = "[Array]"), s(t + ":" + a)
1518 e().stateNode.props.liveGameController.getDatabaseVal("c").then(e => {
1519 s("Current Players(" + Object.keys(e).length + "): " + Object.keys(e).join(","))
1523 window.logsv = !window.logsv, s("SetVal log set to " + (window.logsv ? "Enabled" : "Disabled"));
1526 l = h.args, e().stateNode.props.liveGameController.setVal({
1527 path: "c/" + e().stateNode.props.client.name + "/" + l[0],
1528 val: l.slice(1, l.length).join(" ")
1532 c = h.args, d = {}, c.forEach(e => {
1533 var t = e.split(":");
1534 Number.isNaN(parseInt(t[1])) || parseInt(t[1]).toString() !== t[1] || (t[1] = parseInt(t[1])), d[t[0]] = t[1]
1535 }), e().stateNode.setState(d), s("Set Successful!");
1538 s("Advanced Commands: setval(sets val logged by tlog ex /setval b Chicken), tlog(toggles setval log), dumpstate(dumps react state),setstate(sets react state /setstate crypto:5 crypto2:5 etc)");
1541 s("Available Commands: help(gives help),ahelp(advanced commands help), cb(changes blook /cb cow), list(lists players connected), dump(dumps all available info about a player, passwords, etc(/dump player)), clear(clears chat), code(gives game code), unlock(unlocks blook on lobby screen)");
1545 e().stateNode.props.liveGameController.getDatabaseVal("c/" + a).then(e => {
1546 null != e ? s("Dump: " + JSON.stringify(e)) : s("Player not found!")
1548 }(h.args.join(" "));
1551 p = h.args.join(" "), (u = webpackJsonp.push([
1560 ]).webpack("MDrD").a)[p = Object.keys(u).find(e => p.toLocaleLowerCase() === e.toLocaleLowerCase())] ? (e().stateNode.state.unlocks.push(p), e().stateNode.forceUpdate()) : s("No blook with that name was found!");
1563 s("Game Code: " + e().stateNode.props.client.hostId);
1566 s("Unrecognized chat command!")
1567 } else e().stateNode.props.liveGameController.setVal({
1568 id: e().stateNode.props.client.hostId,
1569 path: "c/" + e().stateNode.props.client.name + "/msg",
1575 }(a.srcElement.value), a.srcElement.value = "")
1577 var l = e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
1580 window.logsv && s("Path: " + e.path.split("/").splice(2, 2).join("/") + " Val: " + ("object" == typeof e.val ? JSON.stringify(e.val) : e.val))
1582 e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function(e, t, a, o) {
1584 console.log(e, t, a, o), r = e, null != (i = t) && r.includes("/msg") && i?.msg && (console.log(i.msg), s(r.split("/")[2] + ": " + i.msg)), l(e, t, a, o)
1585 }, window.logsv = !1;
1586 var d = e().stateNode.props.liveGameController.setVal;
1587 e().stateNode.props.liveGameController.setVal = function() {
1588 c.apply(this, arguments), d.apply(this, arguments)
1589 }, e().stateNode.props.liveGameController._liveApp.database().ref(`${e().stateNode.props.liveGameController._liveGameCode}`).on("value", e => {}), s("Lobbychat successfully loaded!"), o.style.wordWrap = "break-word"
1592 name: "Pin Guesser",
1593 description: "Brute forces combinations for existing pins",
1597 a = document.querySelector("div[class*='titleText']");
1600 return Object.values(function e(t = document.querySelector("body>div")) {
1601 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1602 }())[1].children[0]._owner.stateNode
1604 let i = Math.floor(9e6 * Math.random()) + 1e6;
1605 fetch(`https://fb.blooket.com/c/firebase/id?id=${i}`, {
1607 credentials: "include"
1608 }).then(e => e.json()).then(n => {
1609 !0 === n.success ? (console.log("Game found:", i), a.innerHTML = "Game Found!", o().setState({
1611 hostId: i.toString()
1613 })) : (console.log("No game found for:", i), o().setState({
1615 hostId: i.toString()
1617 }), e++, a.innerHTML = "Guesses: " + e, ++t > 15 ? (setTimeout(r, 1e3), t = 0) : r())
1625 description: "Crashes the host's game",
1627 var e = Object.values(function e(t = document.querySelector("#app")) {
1628 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1629 }())[1].children[0]._owner.stateNode;
1630 e.props.liveGameController.setVal({
1631 path: `c/${e.props.client.name}/b/toString`,
1636 name: "Every Answer Correct",
1637 description: "Sets every answer to be correct",
1641 } = Object.values(function e(t = document.querySelector("body>div")) {
1642 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1643 }())[1].children[0]._owner;
1644 e.freeQuestions = e.freeQuestions?.map?.(e => ({
1646 correctAnswers: e.answers
1647 })), e.questions = e.questions?.map?.(e => ({
1649 correctAnswers: e.answers
1650 })), e.props.client.questions = e.props.client.questions.map(e => ({
1652 correctAnswers: e.answers
1656 name: "Remove Name Limit",
1657 description: "Sets the name limit to 120, which is the actual max name length limit",
1659 var e = document.createElement("iframe");
1660 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), document.querySelector('input[class*="nameInput"]').maxLength = 120, alert("Removed name length limit")
1663 name: "Remove Random Name",
1664 description: "Allows you to put a custom name",
1666 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
1671 }), document.querySelector('[class*="nameInput"]')?.focus?.()
1674 name: "Sell Cheap Duplicates",
1675 description: "Sells all of your uncommon to epic dupes (not legendaries+)",
1677 var e = document.createElement("iframe");
1678 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), window.confirm = e.contentWindow.confirm.bind(window), e.remove();
1679 let t = webpackJsonp.push([
1689 a = Object.values(t.c).find(e => e.exports?.a?.get).exports.a,
1690 o = Object.values(t.c).find(e => e.exports.a?.sellBlook).exports.a.sellBlook;
1691 a.get("https://dashboard.blooket.com/api/users").then(async ({
1696 if (e = Object.entries(e).filter(([e, t]) => 1 < t && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([
1705 ]).webpack("MDrD").a[e].rarity)), confirm("Are you sure you want to sell your uncommon to epic dupes?")) {
1706 var t, a, r = Date.now();
1707 for ([t, a] of e) await o({
1711 alert(`(${Date.now()-r}ms) Results: ` + e.map(([e, t]) => ` ${e} ` + (t - 1)).join(" "))
1713 }).catch(() => alert("There was an error user data!"))
1716 name: "Sell Duplicate Blooks",
1717 description: "Sell all duplicate blooks leaving you with 1 each",
1718 run: async function() {
1719 let e = document.createElement("iframe");
1720 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), window.confirm = e.contentWindow.confirm.bind(window), e.remove(), /dashboard.*\/blooks/.test(window.location.href)) {
1721 if (confirm("Are you sure you want to sell your dupes? (Legendaries and rarer will not be sold)")) {
1724 } = Object.values(function e(t = document.querySelector("body>div")) {
1725 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1726 }())[1].children[0]._owner, a = Date.now(), o = "";
1727 for (let r in t.state.blookData)
1728 if (t.state.blookData[r] > 1) {
1731 numToSell: t.state.blookData[r] - 1
1732 }), ["Legendary", "Chroma", "Mystical"].includes(document.querySelector("[class*='highlightedRarity']").innerText.trim())) continue;
1733 o += ` ${r} ${t.state.blookData[r]-1} `, await t.sellBlook({
1736 } alert(`(${Date.now()-a}ms) Results: ${o.trim()}`)
1738 } else alert("This can only be ran in the Blooks page.")
1743 description: "Shows you what's under each chest during a heist",
1749 this.enabled = false;
1750 clearInterval(this.data);
1752 Array.prototype.forEach.call(document.querySelectorAll(".chestESP"), x => x.remove());
1754 this.enabled = true;
1755 this.data = setInterval(() => {
1756 const cheat = (async () => {
1759 } = Object.values((function react(r = document.querySelector("body>div")) {
1760 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
1761 })())[1].children[0]._owner;
1762 if (stateNode.state.stage == "heist") {
1763 const imgs = Array.prototype.map.call(Array.prototype.slice.call(document.querySelector("[class*=prizesList]").children, 1, 4), (x) => x.querySelector("img").src);
1764 const esp = Object.values(document.querySelector("[class*=modal]"))[0].return.memoizedState.memoizedState;
1765 for (const e of document.querySelectorAll("[class*=boxContent] > div")) e.remove();
1766 const open = Object.values(document.querySelector("[class*=modal]"))[0].return.memoizedState.next.next.memoizedState;
1767 Array.prototype.forEach.call(document.querySelector("[class*=chestsWrapper]").children, (container, i) => {
1768 const box = container.firstChild.firstChild;
1769 if (open.includes(i)) return box.style.opacity = "";
1770 box.style.opacity = "0.5";
1771 let d = document.createElement("div");
1772 d.innerHTML = "<img src='" + imgs[2 - esp[i]] + "' style='max-width: 75%; max-height: 75%'></img>";
1773 d.className = "chestESP";
1774 d.style.position = "absolute";
1775 d.style.inset = "0";
1776 d.style.display = "grid";
1777 d.style.placeItems = "center";
1778 d.style.pointerEvents = "none";
1779 container.onclick = () => {
1781 box.style.opacity = "";
1783 container.firstChild.prepend(d);
1792 name: "Crash Host (Pirate)",
1793 description: "Crashes the Host's Game for Pirate's Voyage",
1795 function reactHandler() {
1796 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
1799 function setv(args) {
1800 reactHandler().stateNode.props.liveGameController.setVal({
1801 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
1802 val: args.slice(1, args.length).join(" ")
1810 description: "Maxes out all islands and your boat",
1814 } = Object.values(function e(t = document.querySelector("body>div")) {
1815 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1816 }())[1].children[0]._owner;
1818 islandLevels: Array(e.state.islandLevels.length).fill(5)
1819 }, e.updateBoatLevel)
1822 name: "Set Doubloons",
1823 description: "Sets Doubloons",
1829 let t = document.createElement("iframe");
1830 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1833 } = Object.values(function e(t = document.querySelector("body>div")) {
1834 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1835 }())[1].children[0]._owner;
1838 }), a.props.liveGameController.setVal({
1839 path: `c/${a.props.client.name}/d`,
1844 name: "Start Heist",
1845 description: "Starts a heist on someone",
1852 } = Object.values(function e(t = document.querySelector("body>div")) {
1853 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1854 }())[1].children[0]._owner;
1855 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
1859 let t = document.createElement("iframe");
1860 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1863 } = Object.values(function e(t = document.querySelector("body>div")) {
1864 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1865 }())[1].children[0]._owner;
1866 a.props.liveGameController.getDatabaseVal("c", function(t) {
1867 let o = Object.entries(t || {}).reduce((e, [t, o]) => (t != a.props.client.name && e.push({
1872 if (0 === o.length) return a.questionsToAnswer = 1, void a.randomQ();
1877 } = o.find(t => t.name == e) || o.sort((e, t) => t.doubloons - e.doubloons)[0];
1884 prizeAmount: Math.max(1e3, n)
1889 name: "Swap Doubloons",
1890 description: "Swaps Doubloons with someone",
1897 } = Object.values(function e(t = document.querySelector("body>div")) {
1898 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1899 }())[1].children[0]._owner;
1900 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
1903 run: async function(e) {
1904 let t = document.createElement("iframe");
1905 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1908 } = Object.values(function e(t = document.querySelector("body>div")) {
1909 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1910 }())[1].children[0]._owner, o = Object.entries(await new Promise(e => a.props.liveGameController.getDatabaseVal("c", e))).sort((e, t) => t[1].d - e[1].d).filter(e => e[0] != a.props.client.name), r = o.find(t => t[0] == e) || o[0];
1911 a.props.liveGameController.setVal({
1912 path: `c/${a.props.client.name}`,
1914 b: a.props.client.blook,
1916 tat: `${r[0]}:${r[1].d-a.state.doubloons}`
1923 name: "Take Doubloons",
1924 description: "Takes Doubloons from someone",
1931 } = Object.values(function e(t = document.querySelector("body>div")) {
1932 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1933 }())[1].children[0]._owner;
1934 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
1937 run: async function(e) {
1938 let t = document.createElement("iframe");
1939 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1942 } = Object.values(function e(t = document.querySelector("body>div")) {
1943 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1944 }())[1].children[0]._owner, o = Object.entries(await new Promise(e => a.props.liveGameController.getDatabaseVal("c", e))).sort((e, t) => t[1].d - e[1].d).filter(e => e[0] != a.props.client.name), r = o.find(t => t[0] == e) || o[0];
1946 doubloons: a.state.doubloons + r[1].d
1947 }), a.props.liveGameController.setVal({
1948 path: `c/${a.props.client.name}`,
1950 b: a.props.client.blook,
1952 tat: `${r[0]}:${r[1].d}`
1957 name: "Flood Alert Box",
1958 description: "Makes the alert box filled with text",
1963 run: function(userInput) {
1964 function getReactOwner() {
1965 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
1968 function repeatText(text, times) {
1969 return new Array(times).fill(text).join(" ");
1972 function setValForPlayer() {
1973 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c/").then(data => {
1976 const playerName = Object.keys(data)[0];
1980 const id = "1,723,583,989,363";
1981 const repeatedText = repeatText(userInput, 1700);
1982 const finalText = `${id}${repeatedText}`;
1984 setv(['tat', `${playerName}:${finalText}`]);
1986 console.log("No text entered. Operation cancelled.");
1989 console.log("Player not found!");
1994 function setv(args) {
1995 getReactOwner().stateNode.props.liveGameController.setVal({
1996 path: "c/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
1997 val: args.slice(1, args.length).join(" ")
2004 name: "Send Ad Text",
2005 description: "Sends a load of text to another player (This will override your blook!)",
2012 } = Object.values(function e(t = document.querySelector("body>div")) {
2013 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
2014 }())[1].children[0]._owner;
2015 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]));
2020 run: async function(player, e) {
2023 } = Object.values(function e(t = document.querySelector("body>div")) {
2024 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
2025 }())[1].children[0]._owner.stateNode;
2027 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
2028 t2.client.blook = repeatedText;
2029 t2.liveGameController.setVal({
2030 path: `c/${t2.client.name}/b`,
2033 t2.liveGameController.setVal({
2034 path: `c/${t2.client.name}/tat`,
2035 val: `${player}:196`
2040 name: "Double Enemy XP",
2041 description: "Doubles enemy XP drop value",
2043 for (let e of Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.filter(e => e.callbackContext?.toString().includes("invulnerableTime"))) {
2045 let a = t.classType.prototype.start;
2046 t.classType.prototype.start = function() {
2047 a.apply(this, arguments), this.val *= 2
2048 }, t.children.entries.forEach(e => e.val *= 2)
2052 name: "Half Enemy Speed",
2053 description: "Makes enemies move 2x slower",
2055 for (let e of Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.filter(e => e.callbackContext?.toString().includes("invulnerableTime"))) {
2057 let a = t.classType.prototype.start;
2058 t.classType.prototype.start = function() {
2059 a.apply(this, arguments), this.speed *= .5
2060 }, t.children.entries.forEach(e => e.speed *= .5)
2064 name: "Instant Kill",
2065 description: "Sets all enemies health to 1",
2067 for (let e of Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.filter(e => e.callbackContext?.toString().includes("invulnerableTime"))) {
2069 let a = t.classType.prototype.start;
2070 t.classType.prototype.start = function() {
2071 a.apply(this, arguments), this.hp = 1
2072 }, t.children.entries.forEach(e => e.hp = 1)
2076 name: "Invincibility",
2077 description: "Makes you invincible",
2079 for (let e of Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.filter(e => e.callbackContext?.toString().includes("invulnerableTime"))) e.collideCallback = () => {}
2083 description: "Pulls all xp towards you",
2085 Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.colliders._active.find(e => e.collideCallback?.toString().includes("magnetTime")).collideCallback({
2094 name: "Max Current Abilities",
2095 description: "Maxes out all your current abilities",
2097 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2098 for (var [t, a] of Object.entries(e.state.abilities))
2099 for (let o = 0; o < 10 - a; o++) e.game.current.scene.scenes[0].game.events.emit("level up", t, e.state.abilities[t]++);
2101 level: e.game.current.scene.scenes[0].level = [1, 3, 5, 10, 15, 25, 35].sort((t, a) => Math.abs(t - e.state.level) - Math.abs(a - e.state.level))[0] - 1
2106 description: "Skips to the next level",
2108 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode,
2112 } = e.game.current.scene.scenes[0].physics.world.colliders._active.find(e => e.collideCallback?.toString().includes('emit("xp"'));
2113 a.get().spawn(t.x, t.y, (1 === (a = e.state.level) ? 1 : a < 5 ? 5 : a < 10 ? 10 : a < 20 ? 20 : a < 30 ? 30 : a < 40 ? 40 : a < 50 ? 50 : 100) - e.xp)
2116 name: "Remove Obstacles",
2117 description: "Removes all rocks and obstacles",
2119 Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => {
2121 e.gameObject.frame.texture.key.includes("obstacle") && e.gameObject.destroy()
2126 name: "Kill Enemies",
2127 description: "Kills all current enemies",
2129 Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => e?.gameObject?.receiveDamage?.(e.gameObject.hp, 1))
2132 name: "Reset Health",
2133 description: "Resets health and gives invincibility for 3 seconds",
2135 Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].game.events._events.respawn.fn()
2138 name: "Crash Host (Brawl)",
2139 description: "Crashes the Host's Game for Monster Brawl",
2141 function reactHandler() {
2142 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2145 function setv(args) {
2146 reactHandler().stateNode.props.liveGameController.setVal({
2147 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2148 val: args.slice(1, args.length).join(" ")
2152 setv(['xp/t', 't']);
2156 description: "Sets amount of XP",
2162 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2166 }), t.xp = e, t.totalXp = e, t.props?.liveGameController.setVal({
2167 path: "c/".concat(t.props.client.name),
2169 b: t.props.client.blook,
2176 description: "Sets your level",
2182 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2189 description: "Maxes out items in the shop (Only usable in the shop)",
2191 var e = document.createElement("iframe");
2192 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/cafe/shop" !== window.location.pathname ? alert("This can only be run in the shop") : (e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode).setState({
2193 items: Object.fromEntries(Object.entries(e.state.items).map(e => [e[0], 5]))
2197 name: "Remove Customers",
2198 description: "Skips the current customers (Not usable in the shop)",
2200 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2201 e.state.customers.forEach((t, a) => Object.keys(t).length && e.removeCustomer(a, !0))
2204 name: "Reset Abilities",
2205 description: "Resets used abilities in shop (Only usable in the shop)",
2207 var e = document.createElement("iframe");
2208 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/cafe/shop" !== window.location.pathname ? alert("This can only be run in the shop") : (e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode).setState({
2209 abilities: Object.fromEntries(Object.entries(e.state.abilities).map(e => [e[0], 5]))
2214 description: "Sets cafe cash",
2220 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2223 }), t.props.liveGameController.setVal({
2224 path: "c/" + t.props.client.name,
2226 b: t.props.client.blook,
2232 name: "Spam Attack Player",
2233 description: "Attacks the player to make the game unplayable",
2240 } = Object.values(function e(t = document.querySelector("body>div")) {
2241 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2242 }())[1].children[0]._owner;
2243 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2249 run: function(name) {
2251 this.enabled = false;
2252 clearInterval(this.data);
2255 this.enabled = true;
2257 function reactHandler() {
2258 return Object.values(document.querySelector('body div[class*="_body"]'))[1].children[0]._owner;
2261 var action = name + ":inspect";
2263 function spamAction() {
2264 var handler = reactHandler();
2265 if (handler && handler.stateNode && handler.stateNode.props && handler.stateNode.props.liveGameController) {
2266 handler.stateNode.props.liveGameController.setVal({
2267 id: handler.stateNode.props.client.hostId,
2268 path: "c/" + handler.stateNode.props.client.name + "/tat",
2274 this.data = setInterval(spamAction, 50);
2278 name: "Attack Player",
2279 description: "Sends the player a health inspection",
2281 name: "Player's Name",
2284 run: (function(targetPlayer) {
2285 function reactHandler() {
2286 return Object.values(document.querySelector('body div[class*="_body"]'))[1].children[0]._owner;
2289 reactHandler().stateNode.props.liveGameController.setVal({
2290 id: reactHandler().stateNode.props.client.hostId,
2291 path: "c/" + reactHandler().stateNode.props.client.name + "/tat",
2292 val: targetPlayer + ":inspect"
2297 description: "Makes a player pay tax",
2299 name: "Player's Name",
2302 run: function(playerName) {
2303 function reactHandler() {
2304 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2307 function setv(args) {
2308 reactHandler().stateNode.props.liveGameController.setVal({
2309 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2310 val: args.slice(1, args.length).join(" ")
2314 function taxPlayer() {
2316 setv(['tat', playerName + ':tax']);
2318 console.log("No player name entered. Operation cancelled.");
2326 description: "Stocks all food to 99 (Not usable in the shop)",
2328 var e = document.createElement("iframe");
2329 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/cafe" !== window.location.pathname ? alert("This can't be run in the shop") : (e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode).setState({
2330 foods: e.state.foods.map(e => ({
2340 description: "Shows what each choice will give you",
2345 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
2348 } = Object.values(function e(t = document.querySelector("body>div")) {
2349 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2350 }())[1].children[0]._owner, {
2352 } = e.state.choices[0], a = document.querySelector("[class^=styles__feedbackContainer___]");
2353 if (a.children.length <= 4) {
2354 let o = document.createElement("div");
2355 o.style.color = "white", o.style.fontFamily = "Inconsolata,Helvetica,monospace,sans-serif", o.style.fontSize = "2em", o.style.display = "flex", o.style.justifyContent = "center", o.style.marginTop = "675px", o.innerText = t, a.append(o)
2360 name: "Password ESP",
2361 description: "Highlights the wrong passwords",
2368 e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
2371 } = Object.values(function e(t = document.querySelector("#app > div > div")) {
2372 return Object.values(t)[1]?.children?.[1]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2373 }())[1].children[1]._owner.stateNode;
2374 "hack" === e.stage && Array.from(document.querySelectorAll('[role="button"]._button_mrhfb_157')).forEach(t => {
2375 t.textContent.trim() !== e.correctPassword.trim() ? (t.style.outlineColor = "rgba(255, 64, 64, 0.8)", t.style.backgroundColor = "rgba(255, 64, 64, 0.8)", t.style.textShadow = "0 0 1px #f33") : (t.style.outlineColor = "", t.style.backgroundColor = "", t.style.textShadow = "")
2379 console.error("An error occurred:", t)
2383 name: "Always Triple",
2384 description: "Always get triple crypto",
2389 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2394 blook: "Brainy Bot",
2395 text: "Triple Crypto"
2400 name: "Always Quintuple",
2401 description: "Always get quintuple crypto",
2406 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2411 blook: "Ice Elemental",
2412 text: "Quintuple Crypto"
2417 name: "Always Hack",
2418 description: "Always get hack",
2423 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2434 name: "Crash Password",
2435 description: "Crashes other players when they attempt to hack you",
2440 var e = Object.values(function e(t = document.querySelector("#app")) {
2441 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2442 }())[1].children[0]._owner.stateNode;
2443 if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null, e.props.liveGameController.setVal({
2444 path: `c/${e.props.client.name}/p`,
2445 val: e.state?.password
2450 e.props.liveGameController.setVal({
2451 path: `c/${e.props.client.name}/p/toString`,
2455 this.data = setInterval(t, 25)
2459 name: "Set Freeze Password",
2460 description: "Freezes other players when they attempt to hack you",
2465 const encodedChars = [
2466 '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
2469 const chars = encodedChars.map(char => eval(`"${char}"`));
2471 function makeLongText() {
2472 return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
2475 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2479 clearInterval(this.data);
2484 t.props.liveGameController.setVal({
2485 path: "c/".concat(t.props.client.name),
2487 b: t.props.client.blook,
2494 let lagFunction = () => {
2495 var e = makeLongText();
2499 t.props.liveGameController.setVal({
2500 path: "c/".concat(t.props.client.name),
2502 b: t.props.client.blook,
2508 this.data = setInterval(lagFunction, 25);
2513 description: "Automatically performs the hack for you",
2520 e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
2521 if ("hack" === ("hack" === window.location.pathname.split("/")[2] && "hack")) {
2525 } = Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner.stateNode.state;
2526 "hack" === e && Array.from(document.querySelectorAll("div")).filter(e => e.innerHTML === t)[0].click()
2530 console.error("An error occurred:", t)
2534 name: "Set Host Screen Green",
2535 description: "Makes the whole screen filled with text",
2540 var a = Object.values(function e(t = document.querySelector("#app")) {
2541 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2542 }())[1].children[0]._owner.stateNode;
2546 clearInterval(this.data);
2548 a.props.liveGameController.setVal({
2549 path: `c/${a.props.client.name}/cr`,
2555 a.props.liveGameController.setVal({
2556 path: `c/${a.props.client.name}/cr`,
2557 val: `9999999999999999999999999999999999999999999999${new Array(999).fill("\u0e47".repeat(70)).join(" ")}`
2560 this.data = setInterval(t, 25);
2564 name: "Remove Hack",
2565 description: "Removes an attacking hack",
2567 Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode.setState({
2572 name: "Crash Host (Crypto)",
2573 description: "Crashes the Host's Game for Crypto Hack",
2575 function reactHandler() {
2576 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2579 function setv(args) {
2580 reactHandler().stateNode.props.liveGameController.setVal({
2581 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2582 val: args.slice(1, args.length).join(" ")
2586 setv(['cr/t', 't']);
2590 description: "Sets crypto",
2596 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2600 }), t.props.liveGameController.setVal({
2601 path: "c/" + t.props.client.name + "/cr",
2606 name: "Set Password",
2607 description: "Sets hacking password",
2609 name: "Custom Password",
2613 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2616 }), t.props.liveGameController.setVal({
2617 path: "c/" + t.props.client.name + "/p",
2622 name: "Set Host Screen Text",
2623 description: "Makes the whole screen filled with text",
2629 let t = document.createElement("iframe");
2630 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
2631 var a = Object.values(function e(t = document.querySelector("#app")) {
2632 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2633 }())[1].children[0]._owner.stateNode;
2634 a.props.liveGameController.setVal({
2635 path: `c/${a.props.client.name}/cr`,
2636 val: `9999999999999999999999999999999999999999999999${new Array(999).fill(e).join(" ")}`
2640 name: "Steal Player's Crypto",
2641 description: "Steals all of someone's crypto",
2646 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2647 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2651 let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2652 t.props.liveGameController.getDatabaseVal("c", a => {
2654 a && Object.keys(a).map(e => e.toLowerCase()).includes(e.toLowerCase()) && ([a, {
2656 }] = Object.entries(a).find(([t]) => t.toLowerCase() == e.toLowerCase()), t.setState({
2657 crypto: t.state.crypto + o,
2658 crypto2: t.state.crypto + o
2659 }), t.props.liveGameController.setVal({
2660 path: "c/".concat(t.props.client.name),
2662 b: t.props.client.blook,
2663 p: t.state.password,
2664 cr: t.state.crypto + o,
2671 name: "Get Player's Password",
2672 description: "Shows the password of any player in an alert box",
2677 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2678 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2681 run: function(player) {
2682 let i = document.createElement('iframe');
2683 document.body.append(i);
2684 const alert = i.contentWindow.alert.bind(window);
2686 var t = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
2687 t.props.liveGameController.getDatabaseVal("c", e => {
2688 alert(e?.[player]?.p);
2692 name: "Flood Alert Box",
2693 description: "Makes the alert box filled with text",
2698 run: function(userInput) {
2699 function getReactOwner() {
2700 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2703 function repeatText(text, times) {
2704 return new Array(times).fill(text).join(" ");
2707 function setValForPlayer() {
2708 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c/").then(data => {
2711 const playerName = Object.keys(data)[0];
2715 const id = "1,723,583,989,363";
2716 const repeatedText = repeatText(userInput, 1700);
2717 const finalText = `${id}${repeatedText}`;
2719 setv(['tat', `${playerName}:${finalText}`]);
2721 console.log("No text entered. Operation cancelled.");
2724 console.log("Player not found!");
2729 function setv(args) {
2730 getReactOwner().stateNode.props.liveGameController.setVal({
2731 path: "c/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
2732 val: args.slice(1, args.length).join(" ")
2739 name: "Send Ad Text",
2740 description: "Sends a load of text to another player (This will override your blook!)",
2747 } = Object.values(function e(t = document.querySelector("body>div")) {
2748 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
2749 }())[1].children[0]._owner;
2750 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]));
2755 run: async function(player, e) {
2758 } = Object.values(function e(t = document.querySelector("body>div")) {
2759 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
2760 }())[1].children[0]._owner.stateNode;
2762 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
2763 t2.client.blook = repeatedText;
2764 t2.liveGameController.setVal({
2765 path: `c/${t2.client.name}/b`,
2768 t2.liveGameController.setVal({
2769 path: `c/${t2.client.name}/tat`,
2770 val: `${player}:196`
2776 description: "Shuffles around towers",
2778 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode,
2780 eventName: "Earthquake",
2784 icon: "fas fa-mountain",
2785 desc: "All of your towers get mixed up",
2790 }, () => e.eventTimeout = setTimeout(() => e.setState({
2793 }), 6e3)), e.tiles.forEach(e => e.forEach((t, a) => 3 === t && (e[a] = 0))), e.tiles.flatMap((e, t) => e.map((e, a) => 0 === e && {
2796 })).filter(Boolean).sort(() => .5 - Math.random()));
2797 e.towers.forEach(a => {
2802 a.move(o, r, e.tileSize), e.tiles[r][o] = 3
2806 name: "Max Tower Stats",
2807 description: "Makes all placed towers overpowered",
2809 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.towers.forEach(e => {
2810 e.range = 100, e.fullCd = e.cd = 0, e.damage = 1e6
2814 name: "Remove Ducks",
2815 description: "Removes ducks",
2820 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2826 name: "Place Blooks Anywhere",
2827 description: "Be able to place your blooks anywhere",
2829 for (var i = 0; i < 10; i++) {
2830 Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner.stateNode.tiles[i] = Array(10).fill(0);
2834 name: "Remove Enemies",
2835 description: "Removes all the enemies",
2837 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2838 e.enemies = e.futureEnemies = []
2841 name: "Remove Obstacles",
2842 description: "Lets you place towers anywhere",
2844 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2845 e.tiles = e.tiles.map(e => e.fill(0))
2849 description: "Sets damage",
2855 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.dmg = e
2859 description: "Sets the current round",
2865 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2871 description: "Sets the amount of tokens you have",
2877 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2883 name: "Max Tower Stats",
2884 description: "Makes all placed towers overpowered",
2886 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.state.towers.forEach(e => {
2887 if (e.stats.dmg = 1e6, e.stats.fireRate = 50, e.stats.ghostDetect = !0, e.stats.maxTargets = 1e6, e.stats.numProjectiles &&= 100, e.stats.range = 100, e.stats.auraBuffs)
2888 for (let t in e.stats.auraBuffs) e.stats.auraBuffs[t] *= 100
2892 name: "Kill Enemies",
2893 description: "Kills all the enemies",
2895 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2896 e.game.current.scene.scenes[0].enemyQueue.length = 0, e.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => e?.gameObject?.receiveDamage?.(e.gameObject.hp, 1))
2899 name: "Crash Host (Defense 2)",
2900 description: "Crashes the Host's Game for Tower Defense 2 (May take a few tries)",
2902 function reactHandler() {
2903 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2906 function setv(args) {
2907 reactHandler().stateNode.props.liveGameController.setVal({
2908 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2909 val: args.slice(1, args.length).join(" ")
2917 description: "Sets coins",
2923 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2929 description: "Sets the amount of health you have",
2935 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2941 description: "Sets the current round",
2947 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2953 name: "Auto Choose",
2954 description: "Automatically choose the best fossil when excavating",
2960 this.enabled = false;
2961 clearInterval(this.data);
2964 this.enabled = true;
2965 this.data = setInterval(() => {
2966 const cheat = (async () => {
2967 function rand(e, t) {
2969 while (s.length < t) {
2970 const i = Math.random();
2973 for (let o = 0; o < e.length; o++) {
2980 g && !s.includes(g) && s.push(g);
2988 } = Object.values((function react(r = document.querySelector("body>div")) {
2989 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
2990 })())[1].children[0]._owner;
2992 if (stateNode.state.stage === "excavate") {
2993 stateNode.state.choices.length || (stateNode.state.choices = rand([{
3009 blook: "Dino Fossil"
3015 blook: "Stegosaurus"
3021 blook: "Velociraptor"
3027 blook: "Brontosaurus"
3033 blook: "Triceratops"
3039 blook: "Tyrannosaurus Rex"
3055 for (let i = 0; i < stateNode.state.choices.length; i++) {
3059 } = stateNode.state.choices[i];
3060 const value = (type == "fossil" ? stateNode.state.fossils + val * stateNode.state.fossilMult : stateNode.state.fossils * val) || 0;
3061 if (value <= max && type != "mult") continue;
3066 document.querySelector('div[class*=rockRow] > div[role="button"]:nth-child(' + index + ')').click();
3076 description: "Shows what is under the rocks",
3081 let e = ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"],
3084 for (; t > 0;) a = e[t % parseInt("10")] + a, t = ~~(t / 10);
3088 let a = e.toString();
3090 let o = ["", "K", "M", "B", "T"],
3091 r = ~~((digits(e) - 1) / 3);
3094 for (let n = 3; n >= 1; n--) {
3095 i = parseFloat((0 !== r ? e / 1e3 ** r : e).toPrecision(n)).toString();
3096 let s = i.replace(/[^a-zA-Z 0-9]+/g, "");
3097 if (s.length <= 3) break
3099 Number(i) % 1 != 0 && (i = Number(i).toFixed(1)), a = i + o[r]
3103 for (; l >= 100;) l = Math.floor(l / 10), c += 1;
3104 a = `${l/10} \xd7 10${t(c+1)}`
3109 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
3112 } = Object.values(function e(t = document.querySelector("body>div")) {
3113 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3114 }())[1].children[0]._owner, t = [...document.querySelector('[class*="rockButton"]').parentElement.children];
3115 t.every(e => e.querySelector("div")) || e.setState({
3130 blook: "Dino Fossil"
3135 blook: "Stegosaurus"
3140 blook: "Velociraptor"
3145 blook: "Brontosaurus"
3150 blook: "Triceratops"
3155 blook: "Tyrannosaurus Rex"
3164 }].sort(() => .5 - Math.random()).slice(0, 3)
3166 t.forEach((t, o) => {
3167 let r = e.state.choices[o];
3168 t.querySelector("div") && t.querySelector("div").remove();
3169 let i = document.createElement("div");
3170 i.style.color = "white", i.style.fontFamily = "Macondo", i.style.fontSize = "1em", i.style.display = "flex", i.style.justifyContent = "center", i.style.transform = "translateY(25px)", i.innerText = "fossil" === r.type ? `+${Math.round(r.val*e.state.fossilMult)>99999999?a(Math.round(r.val*e.state.fossilMult)):Math.round(r.val*e.state.fossilMult)} Fossils` : `x${r.val} Fossils Per Excavation`, t.append(i)
3176 name: "Set Fossils",
3177 description: "Sets the amount of fossils you have",
3183 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3186 }), t.props.liveGameController.setVal({
3187 path: "c/" + t.props.client.name,
3189 b: t.props.client.blook,
3191 ic: t.state.isCheating
3196 name: "Set Multiplier",
3197 description: "Sets fossil multiplier",
3203 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3208 name: "Crash Host (Dino)",
3209 description: "Crashes the Host's Game for Deceptive Dinos",
3211 function reactHandler() {
3212 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
3215 function setv(args) {
3216 reactHandler().stateNode.props.liveGameController.setVal({
3217 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
3218 val: args.slice(1, args.length).join(" ")
3225 name: "Stop Cheating",
3226 description: "Undoes cheating so that you can't be caught",
3228 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3231 }), e.props.liveGameController.setVal({
3232 path: `c/${e.props.client.name}/ic`,
3239 description: "Fills your deck with every maxed out card and artifact (Only works on towers page)",
3241 let e = document.createElement("iframe");
3242 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/map" == window.location.pathname) {
3245 } = Object.values(function e(t = document.querySelector("body>div")) {
3246 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3247 }())[1].children[0]._owner;
3248 t.props.tower.artifacts = "Medical Kit|Fury Relic|Survival Guide|Steel Socks|Piggy Bank|Lucky Feather|Coupon|Cheese|Tasty Egg|Training Weights|Mighty Shield|Toxic Waste|Lifeline Totem|Cursed Hourglass|Band-Aid|Elder Coins|Captain's Anchor|Chess Pieces|Pink Hippo|Anorak's Wizard Cap|Dave's Doggo|Anubis' Obelisk|Farm Tractor|Magic Seedling|Just A Bone|Cozy Igloo|King's Crown|Sacred Scroll".split("|"), t.props.tower.cards = "Chick,\uD83C\uDF3D|Chicken,\uD83C\uDF3D|Cow,\uD83C\uDF3D|Goat,\uD83C\uDF3D|Horse,\uD83C\uDF3D|Pig,\uD83C\uDF3D|Sheep,\uD83C\uDF3D|Duck,\uD83C\uDF3D|Dog,\uD83C\uDF3D|Cat,\uD83D\uDC3E|Rabbit,\uD83D\uDC3E|Goldfish,\uD83D\uDC3E|Hamster,\uD83D\uDC3E|Turtle,\uD83D\uDC3E|Kitten,\uD83D\uDC3E|Puppy,\uD83D\uDC3E|Bear,\uD83C\uDF32|Moose,\uD83C\uDF32|Fox,\uD83C\uDF32|Raccoon,\uD83C\uDF32|Squirrel,\uD83C\uDF32|Owl,\uD83C\uDF32|Hedgehog,\uD83C\uDF32|Baby Penguin,❄️|Penguin,❄️|Arctic Fox,❄️|Snowy Owl,❄️|Polar Bear,❄️|Arctic Hare,❄️|Seal,❄️|Walrus,❄️|Tiger,\uD83C\uDF34|Panther,\uD83C\uDF34|Cockatoo,\uD83C\uDF34|Orangutan,\uD83C\uDF34|Anaconda,\uD83C\uDF34|Macaw,\uD83C\uDF34|Jaguar,\uD83C\uDF34|Capuchin,\uD83C\uDF34|Toucan,\uD83C\uDF34|Parrot,\uD83C\uDF34|Elf,⚔️|Witch,⚔️|Wizard,⚔️|Fairy,⚔️|Slime Monster,⚔️|Jester,⚔️|Dragon,⚔️|Unicorn,⚔️|Queen,⚔️|King,⚔️|Snow Globe,☃️|Holiday Gift,☃️|Hot Chocolate,☃️|Gingerbread Man,☃️|Gingerbread House,☃️|Holiday Wreath,☃️|Snowman,☃️|Santa Claus,☃️|Two of Spades,\uD83C\uDFF0|Eat Me,\uD83C\uDFF0|Drink Me,\uD83C\uDFF0|Alice,\uD83C\uDFF0|Queen of Hearts,\uD83C\uDFF0|Dormouse,\uD83C\uDFF0|White Rabbit,\uD83C\uDFF0|Cheshire Cat,\uD83C\uDFF0|Caterpillar,\uD83C\uDFF0|Mad Hatter,\uD83C\uDFF0|King of Hearts,\uD83C\uDFF0".split("|").map(e => {
3249 let [t, a] = e.split(",");
3259 t.props.addTowerNode()
3264 } else alert("You need to be on the map to run this cheat!")
3268 description: "Maxes out all the cards in your deck",
3270 var e = document.createElement("iframe");
3271 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/map" == window.location.pathname ? (e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode).props.tower.cards.forEach(e => {
3272 e.strength = 20, e.charisma = 20, e.wisdom = 20
3273 }) : alert("You need to be on the map to run this cheat!")
3277 description: "Fills the player's health",
3279 var e = document.createElement("iframe");
3280 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/battle" == window.location.pathname ? Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3282 }) : alert("You need to be in battle to run this cheat!")
3285 name: "Max Card Stats",
3286 description: "Maxes out player's current card (Only works on attribute select page)",
3288 var e = document.createElement("iframe"),
3289 e = (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner).stateNode;
3290 "select" !== e.state.phase ? alert("You must be on the attribute selection page!") : e.setState({
3300 name: "Min Enemy Stats",
3301 description: "Makes the enemy card stats all 0 (Only works on attribute select page)",
3303 var e = document.createElement("iframe"),
3304 e = (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner).stateNode;
3305 "select" !== e.state.phase ? alert("You must be on the attribute selection page!") : e.setState({
3307 ...e.state.enemyCard,
3316 description: "Try's to set amount of tower coins you have",
3322 var t = document.createElement("iframe");
3323 if (document.body.append(t), window.alert = t.contentWindow.prompt.bind(window), t.remove(), "/tower/battle" == window.location.pathname) {
3324 var t = parseInt("0" + alert("How many coins would you like?")),
3325 a = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3327 a.props.setTowerCoins(t)
3329 } else alert("You need to be in battle to run this cheat!")
3333 description: "Sets your streak to the desired amount",
3339 var t = document.createElement("iframe");
3340 document.body.append(t), window.alert = t.contentWindow.alert.bind(window), t.remove(), "/tower/battle" == window.location.pathname ? Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3343 }) : alert("You need to be in battle to run this cheat!")
3347 name: "Choose Blook",
3348 description: "Gives you a blook",
3355 class: "\uD83C\uDF3D",
3357 cash: [3, 7, 65, 400, 2500],
3358 time: [1, 1, 1, 1, 1],
3359 price: [300, 3e3, 3e4, 2e5]
3363 class: "\uD83C\uDF3D",
3365 cash: [10, 40, 200, 1400, 1e4],
3366 time: [5, 4, 3, 2, 1],
3367 price: [570, 4e3, 5e4, 8e5]
3371 class: "\uD83C\uDF3D",
3373 cash: [25, 75, 1500, 25e3, 25e4],
3374 time: [15, 10, 10, 10, 5],
3375 price: [500, 9500, 16e4, 4e6]
3379 class: "\uD83C\uDF3D",
3381 cash: [4, 24, 200, 3e3, 4e4],
3382 time: [3, 3, 3, 3, 3],
3383 price: [450, 4200, 7e4, 11e5]
3387 class: "\uD83C\uDF3D",
3389 cash: [5, 28, 200, 1300, 12e3],
3390 time: [3, 3, 2, 2, 2],
3391 price: [500, 6400, 45e3, 5e5]
3395 class: "\uD83C\uDF3D",
3397 cash: [5, 20, 270, 1800, 15e3],
3398 time: [2, 2, 2, 2, 2],
3399 price: [550, 8200, 65e3, 6e5]
3403 class: "\uD83C\uDF3D",
3405 cash: [20, 50, 1300, 8e3, 8e4],
3406 time: [7, 7, 7, 7, 5],
3407 price: [400, 11e3, 8e4, 13e5]
3411 class: "\uD83C\uDF3D",
3413 cash: [6, 25, 250, 1500, 11e3],
3414 time: [3, 3, 3, 2, 2],
3415 price: [500, 5e3, 5e4, 43e4]
3419 class: "\uD83D\uDC3E",
3421 cash: [5, 18, 170, 1700, 13e3],
3422 time: [2, 2, 2, 2, 2],
3423 price: [480, 5500, 6e4, 5e5]
3427 class: "\uD83D\uDC3E",
3429 cash: [7, 25, 220, 1900, 9e3],
3430 time: [3, 3, 2, 2, 1],
3431 price: [460, 6600, 7e4, 73e4]
3435 class: "\uD83D\uDC3E",
3437 cash: [5, 40, 350, 3500, 35e3],
3438 time: [3, 3, 3, 3, 3],
3439 price: [750, 7200, 84e3, 95e4]
3443 class: "\uD83D\uDC3E",
3445 cash: [3, 18, 185, 800, 7e3],
3446 time: [2, 2, 2, 1, 1],
3447 price: [500, 5800, 56e3, 55e4]
3451 class: "\uD83D\uDC3E",
3453 cash: [10, 45, 450, 4500, 45e3],
3454 time: [4, 4, 4, 4, 4],
3455 price: [650, 6500, 8e4, 93e4]
3459 class: "\uD83D\uDC3E",
3461 cash: [23, 120, 1400, 15e3, 17e4],
3462 time: [10, 10, 10, 10, 10],
3463 price: [700, 8500, 11e4, 13e5]
3467 class: "\uD83D\uDC3E",
3469 cash: [4, 10, 75, 500, 3e3],
3470 time: [1, 1, 1, 1, 1],
3471 price: [450, 4e3, 35e3, 25e4]
3475 class: "\uD83D\uDC3E",
3477 cash: [4, 8, 60, 400, 2e3],
3478 time: [1, 1, 1, 1, 1],
3479 price: [350, 3500, 26e3, 17e4]
3483 class: "\uD83C\uDF32",
3485 cash: [12, 70, 550, 4500, 1e5],
3486 time: [7, 7, 6, 5, 5],
3487 price: [550, 5500, 63e3, 16e5]
3491 class: "\uD83C\uDF32",
3493 cash: [8, 45, 400, 3500, 26e3],
3494 time: [5, 5, 4, 4, 3],
3495 price: [520, 6500, 58e3, 7e5]
3499 class: "\uD83C\uDF32",
3501 cash: [7, 15, 80, 550, 3e3],
3502 time: [2, 2, 1, 1, 1],
3503 price: [400, 4e3, 36e3, 24e4]
3507 class: "\uD83C\uDF32",
3509 cash: [5, 14, 185, 1900, 19e3],
3510 time: [2, 2, 2, 2, 2],
3511 price: [400, 5e3, 71e3, 8e5]
3515 class: "\uD83C\uDF32",
3517 cash: [3, 10, 65, 470, 2600],
3518 time: [1, 1, 1, 1, 1],
3519 price: [420, 3600, 32e3, 21e4]
3523 class: "\uD83C\uDF32",
3525 cash: [4, 17, 155, 1500, 15e3],
3526 time: [2, 2, 2, 2, 2],
3527 price: [500, 4800, 55e3, 58e4]
3531 class: "\uD83C\uDF32",
3533 cash: [11, 37, 340, 2200, 3e4],
3534 time: [5, 4, 3, 2, 2],
3535 price: [540, 7e3, 77e3, 12e5]
3541 cash: [6, 17, 150, 1200, 13e3],
3542 time: [2, 2, 2, 2, 2],
3543 price: [480, 4500, 43e3, 52e4]
3549 cash: [5, 18, 180, 850, 8500],
3550 time: [2, 2, 2, 1, 1],
3551 price: [520, 550, 61e3, 68e4]
3557 cash: [5, 20, 190, 1900, 16e3],
3558 time: [3, 3, 2, 2, 2],
3559 price: [370, 5300, 76e3, 62e4]
3561 name: "Arctic Hare",
3565 cash: [6, 19, 85, 900, 7e3],
3566 time: [2, 2, 1, 1, 1],
3567 price: [540, 5200, 66e3, 55e4]
3573 cash: [4, 21, 310, 3200, 33e3],
3574 time: [3, 3, 3, 3, 3],
3575 price: [400, 6500, 76e3, 87e4]
3577 name: "Baby Penguin",
3581 cash: [3, 8, 70, 450, 2700],
3582 time: [1, 1, 1, 1, 1],
3583 price: [420, 3300, 33e3, 23e4]
3589 cash: [12, 75, 700, 6500, 85e3],
3590 time: [8, 7, 6, 5, 5],
3591 price: [630, 7e3, 91e3, 14e5]
3597 cash: [11, 46, 420, 3700, 51e3],
3598 time: [5, 5, 4, 4, 4],
3599 price: [550, 6200, 68e3, 1e6]
3603 class: "\uD83C\uDF34",
3605 cash: [6, 20, 100, 975, 7500],
3606 time: [3, 3, 1, 1, 1],
3607 price: [390, 6e3, 7e4, 61e4]
3611 class: "\uD83C\uDF34",
3613 cash: [8, 28, 230, 1600, 17e3],
3614 time: [3, 3, 2, 2, 2],
3615 price: [390, 6e3, 7e4, 61e4]
3619 class: "\uD83C\uDF34",
3621 cash: [9, 20, 175, 625, 3800],
3622 time: [2, 2, 2, 1, 1],
3623 price: [520, 4800, 42e3, 3e5]
3627 class: "\uD83C\uDF34",
3629 cash: [6, 35, 160, 1700, 18e3],
3630 time: [4, 4, 2, 2, 2],
3631 price: [500, 5e3, 63e3, 7e5]
3635 class: "\uD83C\uDF34",
3637 cash: [3, 8, 85, 850, 8500],
3638 time: [1, 1, 1, 1, 1],
3639 price: [480, 5400, 62e3, 63e4]
3643 class: "\uD83C\uDF34",
3645 cash: [3, 9, 90, 900, 9e3],
3646 time: [1, 1, 1, 1, 1],
3647 price: [540, 5700, 65e3, 69e4]
3651 class: "\uD83C\uDF34",
3653 cash: [12, 28, 215, 2100, 21e3],
3654 time: [5, 3, 2, 2, 2],
3655 price: [530, 6500, 76e3, 87e4]
3659 class: "\uD83C\uDF34",
3661 cash: [3, 15, 85, 1500, 7600],
3662 time: [1, 2, 1, 2, 1],
3663 price: [410, 5100, 58e3, 59e4]
3667 class: "\uD83C\uDF34",
3669 cash: [13, 52, 570, 4300, 7e4],
3670 time: [5, 5, 5, 4, 4],
3671 price: [600, 7e3, 8e4, 14e5]
3675 class: "\uD83C\uDF34",
3677 cash: [4, 14, 160, 780, 8200],
3678 time: [2, 2, 2, 1, 1],
3679 price: [390, 4700, 57e3, 68e4]
3685 cash: [5e3, 15e3, 15e4, 15e5, 1e7],
3686 time: [1, 1, 1, 1, 1],
3687 price: [8e5, 9e6, 11e7, 8e8]
3693 cash: [18e3, 6e4, 4e4, 4e6, 35e6],
3694 time: [3, 3, 2, 2, 2],
3695 price: [11e5, 12e6, 15e7, 14e8]
3701 cash: [19500, 65e3, 44e4, 46e5, 4e6],
3702 time: [3, 3, 2, 2, 2],
3703 price: [13e5, 135e5, 16e7, 16e8]
3709 cash: [18500, 6e4, 62e4, 44e5, 38e6],
3710 time: [3, 3, 3, 2, 2],
3711 price: [12e5, 125e5, 15e6, 15e8]
3713 name: "Slime Monster",
3717 cash: [35e3, 14e4, 1e6, 11e6, 11e7],
3718 time: [5, 5, 4, 4, 4],
3719 price: [16e5, 15e6, 2e8, 23e8]
3725 cash: [25e3, 1e5, 68e4, 65e5, 32e6],
3726 time: [3, 3, 2, 2, 1],
3727 price: [2e6, 21e6, 23e7, 26e8]
3733 cash: [36e3, 15e4, 15e5, 15e6, 15e7],
3734 time: [4, 4, 4, 4, 4],
3735 price: [23e5, 24e6, 27e7, 3e9]
3741 cash: [24e3, 15e4, 14e5, 7e6, 75e6],
3742 time: [2, 2, 2, 1, 1],
3743 price: [45e5, 45e6, 55e7, 65e8]
3749 cash: [24e3, 95e3, 95e4, 97e5, 95e6],
3750 time: [3, 3, 3, 3, 3],
3751 price: [19e5, 2e7, 23e7, 25e8]
3756 rarity: "Legendary",
3757 cash: [75e3, 4e5, 6e6, 9e7, 125e7],
3758 time: [5, 5, 5, 5, 5],
3759 price: [6e6, 95e6, 16e8, 25e9]
3761 name: "Two of Spades",
3763 class: "\uD83C\uDFF0",
3765 cash: [4500, 14e3, 14e4, 14e5, 9e6],
3766 time: [1, 1, 1, 1, 1],
3767 price: [77e4, 83e5, 98e6, 71e7]
3771 class: "\uD83C\uDFF0",
3773 cash: [13e3, 45e3, 45e4, 45e5, 5e7],
3774 time: [2, 2, 2, 2, 2],
3775 price: [13e5, 14e6, 16e7, 2e9]
3779 class: "\uD83C\uDFF0",
3781 cash: [12e3, 4e4, 4e5, 4e6, 45e6],
3782 time: [2, 2, 2, 2, 2],
3783 price: [12e5, 12e6, 14e7, 18e8]
3787 class: "\uD83C\uDFF0",
3789 cash: [13e3, 42e3, 21e4, 21e5, 23e6],
3790 time: [2, 2, 1, 1, 1],
3791 price: [12e5, 13e6, 15e7, 19e8]
3793 name: "Queen of Hearts",
3795 class: "\uD83C\uDFF0",
3797 cash: [23e3, 87e3, 62e4, 75e5, 9e7],
3798 time: [4, 4, 3, 3, 3],
3799 price: [13e5, 13e6, 18e7, 24e8]
3803 class: "\uD83C\uDFF0",
3805 cash: [17e3, 68e3, 7e5, 35e5, 35e6],
3806 time: [2, 2, 1, 1, 1],
3807 price: [2e6, 22e6, 25e7, 28e8]
3809 name: "White Rabbit",
3811 class: "\uD83C\uDFF0",
3813 cash: [26e3, 105e3, 11e6, 77e5, 72e6],
3814 time: [3, 3, 3, 2, 2],
3815 price: [2e6, 23e6, 28e7, 29e8]
3817 name: "Cheshire Cat",
3819 class: "\uD83C\uDFF0",
3821 cash: [32e3, 1e5, 9e5, 9e6, 6e7],
3822 time: [4, 3, 3, 3, 2],
3823 price: [18e5, 19e6, 22e7, 24e8]
3825 name: "Caterpillar",
3827 class: "\uD83C\uDFF0",
3829 cash: [1e4, 7e4, 65e4, 75e5, 85e6],
3830 time: [1, 1, 1, 1, 1],
3831 price: [42e5, 42e6, 54e7, 69e8]
3835 class: "\uD83C\uDFF0",
3837 cash: [38e3, 25e4, 15e5, 14e6, 8e7],
3838 time: [3, 3, 2, 2, 1],
3839 price: [48e5, 48e6, 52e7, 66e8]
3841 name: "King of Hearts",
3843 class: "\uD83C\uDFF0",
3844 rarity: "Legendary",
3845 cash: [8e4, 42e4, 68e5, 1e8, 15e8],
3846 time: [5, 5, 5, 5, 5],
3847 price: [7e6, 11e7, 18e8, 3e10]
3851 class: "\uD83D\uDE80",
3853 cash: [15e3, 45e3, 6e5, 65e5, 65e6],
3854 time: [3, 3, 3, 3, 3],
3855 price: [1e6, 11e6, 15e7, 17e8]
3859 class: "\uD83D\uDE80",
3861 cash: [23e3, 65e3, 7e5, 45e5, 2e7],
3862 time: [5, 4, 3, 2, 1],
3863 price: [95e4, 13e6, 16e7, 16e8]
3867 class: "\uD83D\uDE80",
3869 cash: [1e4, 4e4, 2e5, 2e6, 18e6],
3870 time: [2, 2, 1, 1, 1],
3871 price: [14e5, 14e6, 15e7, 15e8]
3875 class: "\uD83D\uDE80",
3877 cash: [3e4, 1e5, 1e6, 11e6, 85e6],
3878 time: [4, 4, 4, 4, 4],
3879 price: [15e5, 17e6, 19e7, 17e8]
3883 class: "\uD83D\uDE80",
3885 cash: [25e3, 1e5, 9e5, 9e6, 9e7],
3886 time: [3, 3, 3, 3, 3],
3887 price: [2e6, 21e6, 21e7, 24e8]
3891 class: "\uD83D\uDE80",
3893 cash: [17e3, 7e4, 7e5, 7e6, 7e7],
3894 time: [2, 2, 2, 2, 2],
3895 price: [21e5, 23e6, 25e7, 28e8]
3899 class: "\uD83D\uDE80",
3901 cash: [6e4, 32e4, 21e5, 15e6, 85e6],
3902 time: [5, 4, 3, 2, 1],
3903 price: [48e5, 46e6, 54e7, 68e8]
3907 class: "\uD83D\uDE80",
3908 rarity: "Legendary",
3909 cash: [45e3, 26e4, 25e5, 38e6, 55e7],
3910 time: [3, 3, 2, 2, 2],
3911 price: [65e5, 1e8, 17e8, 27e9]
3915 class: "\uD83E\uDD16",
3917 cash: [4e3, 12e3, 18e4, 19e5, 25e6],
3918 time: [1, 1, 1, 1, 1],
3919 price: [73e4, 12e6, 13e7, 19e8]
3923 class: "\uD83E\uDD16",
3925 cash: [16e3, 65e3, 65e4, 48e5, 42e6],
3926 time: [3, 3, 3, 2, 2],
3927 price: [13e5, 14e6, 17e7, 16e8]
3931 class: "\uD83E\uDD16",
3933 cash: [22e3, 85e3, 8e5, 62e5, 65e6],
3934 time: [4, 4, 4, 3, 3],
3935 price: [12e5, 13e6, 15e7, 17e8]
3939 class: "\uD83E\uDD16",
3941 cash: [11e3, 45e3, 5e5, 25e5, 3e7],
3942 time: [2, 2, 2, 1, 1],
3943 price: [14e5, 15e6, 18e7, 24e8]
3947 class: "\uD83E\uDD16",
3949 cash: [24e3, 1e5, 1e6, 1e7, 1e8],
3950 time: [3, 3, 3, 3, 3],
3951 price: [2e6, 22e6, 24e7, 26e8]
3955 class: "\uD83E\uDD16",
3957 cash: [22e3, 95e3, 65e4, 65e5, 65e6],
3958 time: [3, 3, 2, 2, 2],
3959 price: [19e5, 21e6, 23e7, 25e8]
3963 class: "\uD83E\uDD16",
3965 cash: [5e4, 25e4, 21e5, 21e6, 17e7],
3966 time: [4, 3, 3, 3, 2],
3967 price: [5e6, 46e6, 5e8, 67e8]
3971 class: "\uD83E\uDD16",
3972 rarity: "Legendary",
3973 cash: [8e4, 43e4, 42e5, 62e6, 1e9],
3974 time: [5, 5, 3, 3, 3],
3975 price: [7e6, 12e7, 19e8, 35e9]
3978 value: JSON.stringify(e)
3982 let t = document.createElement("iframe");
3983 document.body.append(t), window.alert = t.contentWindow.alert.bind(window), t.remove();
3986 } = Object.values(function e(t = document.querySelector("body>div")) {
3987 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3988 }())[1].children[0]._owner;
3989 a.state.blooks.length >= 10 && alert("Choose a blook to replace"), a.chooseBlook(JSON.parse(e))
3992 name: "Free Upgrades",
3993 description: "Sets upgrade prices to 0 for all current blooks",
3995 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState(e => ({
3997 blooks: e.blooks.map(e => ({
4005 description: "Maxes out all your blooks' levels",
4007 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.state.blooks.forEach(e => e.level = 4)
4010 name: "Remove Glitches",
4011 description: "Removes all enemy glitches",
4013 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4026 }), clearTimeout(e.adTimeout), clearInterval(e.hazardInterval), clearTimeout(e.nightTimeout), clearTimeout(e.glitchTimeout), clearTimeout(e.lolTimeout), clearTimeout(e.jokeTimeout), clearTimeout(e.slowTimeout), clearTimeout(e.danceTimeout), clearTimeout(e.nameTimeout)
4029 name: "Send Glitch",
4030 description: "Sends a glitch to everyone else playing",
4034 options: Object.entries({
4047 }).map(([e, t]) => ({
4053 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4054 t.safe = !0, t.props.liveGameController.setVal({
4055 path: `c/${t.props.client.name}/tat`,
4060 name: "Set All MegaBot",
4061 description: "Sets all your blooks to maxed out Mega Bots",
4063 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
4064 blooks: Array(10).fill({
4067 class: "\uD83E\uDD16",
4068 rarity: "Legendary",
4069 cash: [8e4, 43e4, 42e5, 62e6, 1e9],
4070 time: [5, 5, 3, 3, 3],
4071 price: [7e6, 12e7, 19e8, 35e9],
4080 description: "Sets amount of cash you have",
4086 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
4092 name: "Always Frenzy",
4093 description: "Always sets everyone to frenzy mode",
4099 this.enabled = false;
4100 clearInterval(this.data);
4103 this.enabled = true;
4104 this.data = setInterval(() => {
4105 const cheat = (async () => {
4108 } = Object.values((function react(r = document.querySelector("body>div")) {
4109 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
4110 })())[1].children[0]._owner;
4111 stateNode.props.liveGameController.setVal({
4112 path: `c/${stateNode.props.client.name}`,
4114 b: stateNode.props.client.blook,
4115 w: stateNode.state.weight,
4126 name: "Client Sided Frenzy",
4127 description: "Frenzy for you only",
4131 const componentInstance = Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner.stateNode;
4134 componentInstance.setState({
4139 componentInstance.setState({
4145 name: "Remove Distractions",
4146 description: "Removes distractions",
4151 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
4152 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
4159 description: "Sets everyone to frenzy mode",
4161 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4162 e.props.liveGameController.setVal({
4163 path: "c/" + e.props.client.name,
4165 b: e.props.client.blook,
4173 name: "Send Distraction",
4174 description: "Sends a distraction to everyone",
4176 name: "Distraction",
4178 options: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"]
4181 var t = document.createElement("iframe"),
4182 t = (document.body.append(t), window.alert = t.contentWindow.alert.bind(window), t.remove(), Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner).stateNode;
4183 t.safe = !0, t.props.liveGameController.setVal({
4184 path: "c/" + t.props.client.name,
4186 b: t.props.client.blook,
4195 description: "Sets fishing lure (range 1 - 5)",
4197 name: "Lure (1 - 5)",
4203 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
4204 lure: Math.max(Math.min(e - 1, 4), 0)
4208 name: "Set Next Fish",
4209 description: "Sets the next fish to catch",
4213 options: ["Old Boot", "Waffle", "Two of Spades", "Jellyfish", "Clownfish", "Goldfish", "Frog", "Blizzard Clownfish", "Turtle", "Cat", "Lovely Frog", "Lucky Frog", "Poison Dart Frog", "Seal", "Walrus", "Fairy", "Crab", "Lemon Crab", "Pufferfish", "Blobfish", "Rainbow Jellyfish", "Octopus", "Pirate Pufferfish", "Donut Blobfish", "Crimson Octopus", "Narwhal", "Baby Shark", "Megalodon", "Alien", "Rainbow Narwhal", "UFO", "Santa Claus", "Swamp Monster", "Red Astronaut", "Spooky Pumpkin", "Dragon", "Tim the Alien"]
4217 return Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner
4224 tiers: ["F", "D", "C"]
4230 tiers: ["F", "D", "C"]
4236 tiers: ["F", "D", "C"]
4242 tiers: ["D", "C", "B"]
4248 tiers: ["D", "C", "B"]
4254 tiers: ["D", "C", "B"]
4260 tiers: ["D", "C", "B"]
4262 "Blizzard Clownfish": {
4263 rarity: "Great Catch",
4266 tiers: ["D", "C", "B"]
4269 rarity: "Great Catch",
4272 tiers: ["D", "C", "B", "A"]
4275 rarity: "Great Catch",
4278 tiers: ["D", "C", "B", "A"]
4281 rarity: "Great Catch",
4284 tiers: ["D", "C", "B", "A"]
4287 rarity: "Great Catch",
4290 tiers: ["D", "C", "B", "A"]
4292 "Poison Dart Frog": {
4293 rarity: "Great Catch",
4296 tiers: ["D", "C", "B", "A"]
4299 rarity: "Rare Find",
4302 tiers: ["D", "C", "B", "A"]
4305 rarity: "Rare Find",
4308 tiers: ["D", "C", "B", "A"]
4311 rarity: "Rare Find",
4314 tiers: ["D", "C", "B", "A"]
4317 rarity: "Rare Find",
4320 tiers: ["D", "C", "B", "A"]
4323 rarity: "Rare Find",
4326 tiers: ["C", "B", "A"]
4329 rarity: "Rare Find",
4332 tiers: ["D", "C", "B", "A"]
4335 rarity: "Rare Find",
4338 tiers: ["D", "C", "B", "A"]
4340 "Rainbow Jellyfish": {
4341 rarity: "Epic Grab",
4344 tiers: ["C", "B", "A"]
4347 rarity: "Epic Grab",
4350 tiers: ["C", "B", "A"]
4352 "Pirate Pufferfish": {
4353 rarity: "Epic Grab",
4356 tiers: ["C", "B", "A"]
4359 rarity: "Epic Grab",
4362 tiers: ["C", "B", "A"]
4364 "Crimson Octopus": {
4365 rarity: "Epic Grab",
4371 rarity: "Catch of the Day",
4374 tiers: ["B", "A", "S"]
4377 rarity: "Catch of the Day",
4380 tiers: ["B", "A", "S"]
4383 rarity: "Catch of the Day",
4386 tiers: ["B", "A", "S"]
4389 rarity: "Angler's Legend",
4394 "Rainbow Narwhal": {
4395 rarity: "Angler's Legend",
4398 tiers: ["A", "S", "S+"]
4401 rarity: "Angler's Legend",
4404 tiers: ["A", "S", "S+"]
4407 rarity: "Angler's Legend",
4410 tiers: ["A", "S", "S+"]
4413 rarity: "Angler's Legend",
4416 tiers: ["A", "S", "S+"]
4419 rarity: "Angler's Legend",
4422 tiers: ["A", "S", "S+"]
4425 rarity: "Angler's Legend",
4428 tiers: ["A", "S", "S+"]
4431 rarity: "Angler's Legend",
4434 tiers: ["A", "S", "S+"]
4437 rarity: "Angler's Legend",
4440 tiers: ["A", "S", "S+"]
4443 o = ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"];
4444 if (!window.functionSet) {
4445 var r = t().stateNode.answerNext;
4446 t().stateNode.answerNext = function() {
4447 if (t().stateNode.state.hackFish) {
4449 t().stateNode.setState({
4454 rarity: a[i].rarity,
4455 weight: (n = a[i].minWeight, Math.floor(Math.random() * ((s = a[i].maxWeight) - n) + n)),
4456 tier: a[i].tiers[Math.floor(Math.random() * a[i].tiers.length)],
4457 isSpecial: o.includes(i) && 8 > Math.floor(100 * Math.random())
4460 }), setTimeout(function() {
4461 t().stateNode.setState({
4464 }, 1600), t().stateNode.state.hackFish = null
4465 } else r.apply(this, arguments)
4468 window.functionSet = !0, ! function e(o) {
4469 if (Object.keys(a).includes(o)) t().stateNode.state.hackFish = o;
4471 alert("That fish does not exist!");
4478 description: "Sets weight",
4484 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4488 }), t.props.liveGameController.setVal({
4489 path: "c/" + t.props.client.name,
4491 b: t.props.client.blook,
4493 f: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(9 * Math.random())]
4499 name: "Toggle Ghost",
4500 description: "Lets you go through the pipes",
4504 this.enabled = !this.enabled;
4505 for (const body of Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig.physics.world.bodies.entries) {
4506 if (!body.gameObject.frame.texture.key.startsWith("blook")) continue;
4507 body.checkCollision.none = this.enabled;
4508 body.gameObject.setAlpha(this.enabled ? 0.5 : 1);
4515 description: "Sets flappy blook score",
4520 run: function(score) {
4521 Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[1](score || 0);
4524 name: "Change Game Code",
4525 description: "Replace the old game with new HTML content",
4530 run: function(newHtml) {
4535 var canvas = document.querySelector('canvas[width="320"][height="480"]');
4539 var tempContainer = document.createElement('div');
4540 tempContainer.innerHTML = newHtml;
4542 var wrapperDiv = document.createElement('div');
4543 wrapperDiv.style.width = '320px';
4544 wrapperDiv.style.height = '480px';
4545 wrapperDiv.style.overflow = 'auto';
4546 wrapperDiv.style.boxSizing = 'border-box';
4547 wrapperDiv.style.position = canvas.style.position;
4548 wrapperDiv.style.marginLeft = canvas.style.marginLeft;
4549 wrapperDiv.style.marginTop = canvas.style.marginTop;
4550 wrapperDiv.style.cursor = canvas.style.cursor;
4551 wrapperDiv.style.backgroundColor = '#f0f0f0';
4553 while (tempContainer.firstChild) {
4554 wrapperDiv.appendChild(tempContainer.firstChild);
4557 canvas.parentNode.replaceChild(wrapperDiv, canvas);
4560 var scoreTextDiv = document.querySelector('div._scoreText_e2c5l_7');
4562 scoreTextDiv.parentNode.removeChild(scoreTextDiv);
4568 name: "Change Settings",
4569 description: "Changes various game mechanics and lets you play with the spacebar",
4571 name: "Bird Gravity",
4579 name: "Bird Flap Power",
4583 run: function(a, b, c) {
4584 const scene = Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig;
4585 scene.birdGravity = a;
4586 scene.birdSpeed = b;
4587 scene.birdFlapPower = c;
4588 scene.flap = function() {
4589 this.isStarted || (this.bird.body.gravity.y = this.birdGravity,
4590 this.pipeGroup.setVelocityX(-this.birdSpeed),
4591 this.groundGroup.setVelocityX(-this.birdSpeed),
4592 this.isStarted = !0),
4593 this.bird.body.velocity.y = -this.birdFlapPower
4595 scene.input._events.pointerdown = [];
4597 scene.input.keyboard.addKey('SPACE').on("down", e => {
4598 scene.flap.call(scene);
4604 name: "Always Triple",
4605 description: "Always get triple gold",
4610 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4611 e._choosePrize ||= e.choosePrize, this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null, e.choosePrize = e._choosePrize || e.choosePrize) : (this.enabled = !0, this.data = setInterval(() => {
4612 e.choosePrize = function(t) {
4613 e.state.choices[t] = {
4616 text: "Triple Gold!",
4618 }, e._choosePrize(t)
4623 name: "Always Quintuple",
4624 description: "Always get quintuple gold",
4629 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4630 e._choosePrize ||= e.choosePrize, this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null, e.choosePrize = e._choosePrize || e.choosePrize) : (this.enabled = !0, this.data = setInterval(() => {
4631 e.choosePrize = function(t) {
4632 e.state.choices[t] = {
4635 text: "Quintuple Gold!",
4636 blook: "Ice Elemental"
4637 }, e._choosePrize(t)
4642 name: "Auto Choose",
4643 description: "Automatically picks the option that would give you the most gold",
4649 this.enabled = false;
4650 clearInterval(this.data);
4653 this.enabled = true;
4654 this.data = setInterval(() => {
4657 } = Object.values((function react(r = document.querySelector("body>div")) {
4658 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
4659 })())[1].children[0]._owner;
4661 if (stateNode.state.stage == "prize") {
4662 stateNode.props.liveGameController.getDatabaseVal("c", (players) => {
4663 if (players == null) return;
4664 players = Object.entries(players);
4668 for (let i = 0; i < players.length; i++) {
4669 if (players[i][0] != stateNode.props.client.name && players[i][1] > most) {
4670 most = players[i][1];
4673 for (let i = 0; i < stateNode.state.choices.length; i++) {
4674 const choice = stateNode.state.choices[i];
4675 let value = stateNode.state.gold;
4676 if (choice.type == "gold") {
4677 value = stateNode.state.gold + (choice.val || 0);
4678 } else if (choice.type == "multiply" || choice.type == "divide") {
4679 value = Math.round(stateNode.state.gold * choice.val) || stateNode.state.gold;
4680 } else if (choice.type == "swap") {
4681 value = most || stateNode.state.gold;
4682 } else if (choice.type == "take") {
4683 value = stateNode.state.gold + (most * choice.val || 0);
4685 if ((value || 0) <= max) continue;
4689 document.querySelector("div[class*='choice" + index + "']")?.click();
4697 description: "Shows what each chest will give you",
4703 this.enabled = false;
4704 clearInterval(this.data);
4707 this.enabled = true;
4708 this.data = setInterval(() => {
4709 const cheat = (async () => {
4710 Object.values((function react(r = document.querySelector("body>div")) {
4711 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
4712 })())[1].children[0]._owner.stateNode.state.choices.forEach(({
4715 let chest = document.querySelector(`div[class*='choice${index + 1}']`);
4716 if (!chest || chest.querySelector('div')) return;
4717 let choice = document.createElement('div')
4718 choice.style.color = "white";
4719 choice.style.fontFamily = "Eczar";
4720 choice.style.fontSize = "2em";
4721 choice.style.display = "flex";
4722 choice.style.justifyContent = "center";
4723 choice.style.transform = "translateY(200px)";
4724 choice.innerText = text;
4725 chest.append(choice)
4733 name: "Remove Lose 25%-50%",
4734 description: "Removes Lose 25%-50% chests",
4743 return Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner
4745 e.enabled || t.enabled ? (clearInterval(e.data), clearInterval(t.data), e.data = null, t.data = null, e.enabled = !1, t.enabled = !1) : (e.enabled = !0, t.enabled = !0, e.data = setInterval(() => {
4746 document.querySelectorAll('div[role="button"]').forEach(e => {
4747 ("Lose 25%" === e.innerText || "Lose 50%" === e.innerText) && (e.style.display = "none")
4749 }, 50), t.data = setInterval(() => {
4751 if ("gold" === ("gold" === window.location.pathname.split("/")[2] && "gold") && t.enabled) try {
4752 if ("prize" === a().stateNode.state.stage) {
4755 } = a().stateNode.state, r = document.querySelector("div[class*='regularBody']").children[1];
4756 r && (document.querySelectorAll(".chest-esp").length ? o.forEach((e, t) => {
4757 3 == r.children.length && r.children[t].children[1].innerText != e.text && (r.children[t].children[1].innerText = e.text)
4758 }) : o.forEach((e, t) => {
4759 (textElement = document.createElement("p")).className = "chest-esp", textElement.innerText = e.text, textElement.style = "text-align: center; font-size: 30px; color: white; font-family:Titan One, sans-serif; border-color: black; margin-top: 200px; opacity: 0;";
4761 r.children[t].appendChild(textElement)
4773 name: "Flood Alert Box",
4774 description: "Makes the alert box filled with text",
4779 run: function(userInput) {
4780 function getReactOwner() {
4781 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
4784 function repeatText(text, times) {
4785 return new Array(times).fill(text).join(" ");
4788 function setValForPlayer() {
4789 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c/").then(data => {
4792 const playerName = Object.keys(data)[0];
4796 const id = "1,723,583,989,363";
4797 const repeatedText = repeatText(userInput, 1700);
4798 const finalText = `${id}${repeatedText}`;
4800 setv(['tat', `${playerName}:${finalText}`]);
4802 console.log("No text entered. Operation cancelled.");
4805 console.log("Player not found!");
4810 function setv(args) {
4811 getReactOwner().stateNode.props.liveGameController.setVal({
4812 path: "c/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
4813 val: args.slice(1, args.length).join(" ")
4820 name: "Reset Players Gold",
4821 description: "Sets a player's gold to 0",
4826 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4827 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
4834 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4835 t.liveGameController.setVal({
4836 path: "c/".concat(t.client.name),
4846 description: "Sets amount of gold",
4852 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4856 }), t.props.liveGameController.setVal({
4857 path: "c/".concat(t.props.client.name),
4859 b: t.props.client.blook,
4866 description: "Swaps gold with someone",
4871 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4872 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
4876 let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4877 t.props.liveGameController.getDatabaseVal("c", a => {
4878 a?.[e] && (a = a[e].g, t.props.liveGameController.setVal({
4879 path: "c/".concat(t.props.client.name),
4881 b: t.props.client.blook,
4883 tat: e + ":swap:" + t.state.gold
4892 name: "Set Player's Gold",
4893 description: "Sets a players gold to any amount.",
4898 let e = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
4899 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
4905 run: (player, amount) => {
4906 const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
4907 sn.props.liveGameController.setVal({
4908 path: `c/${sn.props.client.name}/tat`,
4909 val: `${player}:swap:${amount}`
4913 name: "Send Ad Text",
4914 description: "Sends a load of text to another player (This will override your blook!)",
4921 } = Object.values(function e(t = document.querySelector("body>div")) {
4922 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
4923 }())[1].children[0]._owner;
4924 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]));
4929 run: async function(player, e) {
4932 } = Object.values(function e(t = document.querySelector("body>div")) {
4933 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
4934 }())[1].children[0]._owner.stateNode;
4936 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
4937 t2.client.blook = repeatedText;
4938 t2.liveGameController.setVal({
4939 path: `c/${t2.client.name}/b`,
4942 t2.liveGameController.setVal({
4943 path: `c/${t2.client.name}/tat`,
4944 val: `${player}:196`
4948 name: "Reset All Players' Gold",
4949 description: "Set's everyone else's gold to 0",
4951 var e = document.createElement("iframe");
4952 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove();
4956 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode, o = 0;
4957 t.liveGameController.getDatabaseVal("c", async e => {
4959 for (let r of Object.keys(e)) t.liveGameController.setVal({
4960 path: "c/".concat(t.client.name),
4966 }), o++, await new Promise(e => setTimeout(e, 4e3));
4967 alert(`Reset ${o} players' gold!`)
4971 name: "Crash Host (Gold)",
4972 description: "Crashes the Host's Game for Gold Quest",
4974 function reactHandler() {
4975 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
4978 function setv(args) {
4979 reactHandler().stateNode.props.liveGameController.setVal({
4980 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
4981 val: args.slice(1, args.length).join(" ")
4990 description: "Shows you what will happen if you say Yes or No",
4996 this.enabled = false;
4997 clearInterval(this.data);
5000 this.enabled = true;
5001 this.data = setInterval((stats => {
5004 } = Object.values((function react(r = document.querySelector("body>div")) {
5005 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5006 })())[1].children[0]._owner;
5008 let elements = Array.prototype.reduce.call(
5009 document.querySelectorAll('[class*=statContainer]'),
5010 (obj, container, i) => (obj[stats[i]] = container, obj), {}
5013 if (stateNode.state.phase == "choice") {
5014 Array.prototype.forEach.call(document.querySelectorAll('.choiceESP'), x => x.remove());
5016 Object.keys(stateNode.state.guest.yes || {}).forEach(x => {
5017 if (elements[x] == null) return;
5018 let element = document.createElement('div');
5019 element.className = 'choiceESP';
5020 element.style = 'font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;';
5021 element.innerText = String(stateNode.state.guest.yes[x]);
5022 elements[x].appendChild(element);
5025 Object.keys(stateNode.state.guest.no || {}).forEach(x => {
5026 if (elements[x] == null) return;
5027 let element = document.createElement('div');
5028 element.className = 'choiceESP';
5029 element.style = 'font-size: 24px; color: darkred; font-weight: bolder;';
5030 element.innerText = String(stateNode.state.guest.no[x]);
5031 elements[x].appendChild(element);
5034 Array.prototype.forEach.call(
5035 document.querySelectorAll("[class*=guestButton][role=button]"),
5036 x => (x.onclick = () => Array.prototype.forEach.call(document.querySelectorAll(".choiceESP"), x => x.remove()))
5039 }), 50, ['materials', 'people', 'happiness', 'gold']);
5043 name: "Disable Tax Toucan",
5044 description: "Tax evasion",
5046 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.taxCounter = Number.MAX_VALUE
5050 description: "Sets all resources to the max",
5052 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5061 description: "Sets the amount of guests you've seen",
5067 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5073 description: "Skips the current guest",
5075 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.nextGuest()
5079 name: "Instant Win",
5080 description: "Instantly Wins the race",
5082 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5084 progress: e.state.goalAmount
5090 [...document.querySelectorAll('[class*="answerContainer"]')][t.answers.map((e, a) => t.correctAnswers.includes(e) ? a : null).filter(e => null != e)[0]]?.click?.()
5095 name: "Set Questions",
5096 description: "Sets the number of questions left",
5101 run: function(progress) {
5104 } = Object.values((function react(r = document.querySelector("body>div")) {
5105 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5106 })())[1].children[0]._owner;
5107 progress = stateNode.props.client.amount - progress;
5108 stateNode.setState({
5111 stateNode.props.liveGameController.setVal({
5112 path: "c/".concat(stateNode.props.client.name),
5114 b: stateNode.props.client.blook,
5120 name: "Attack Player",
5121 description: "Sends the specified attack to a player",
5128 } = Object.values(function e(t = document.querySelector("body>div")) {
5129 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
5130 }())[1].children[0]._owner;
5131 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
5136 options: Object.entries({
5137 "Woosh(-1)": "wind",
5138 "Rocket(-1)": "rocket",
5141 }).map(([e, t]) => ({
5146 run: function(player, attack) {
5149 } = Object.values((function react(r = document.querySelector("body>div")) {
5150 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5151 })())[1].children[0]._owner;
5152 stateNode.props.liveGameController.setVal({
5153 path: `c/${stateNode.props.client.name}/tat`,
5154 val: player + ":" + attack
5159 name: "Toggle Invert Colors",
5160 description: "Toggle between inverting and restoring colors on the page",
5162 "invert()" == document.getElementsByTagName("html")[0].style.filter ? document.getElementsByTagName("html")[0].style.filter = "" : document.getElementsByTagName("html")[0].style.filter = "invert()", elems = document.querySelectorAll(" a, img, video");
5163 for (let e = 0; e < elems.length; e++)("A" == elems[e].nodeName && ("" != elems[e].style.background || "" != elems[e].style.backgroundImage) || "A" != elems[e].nodeName) && ("invert()" == elems[e].style.filter ? elems[e].style.filter = "" : elems[e].style.filter = "invert()")
5166 name: "Toggle Dark Mode",
5167 description: "Toggles Dark Mode",
5169 var e = document.createElement("iframe");
5170 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), ! function e() {
5171 let t = document.querySelectorAll("#nightify");
5172 if (t.length) t[0].parentNode.removeChild(t[0]);
5174 var a = document.getElementsByTagName("head")[0],
5175 o = document.createElement("style");
5176 o.setAttribute("type", "text/css"), o.setAttribute("id", "nightify"), o.appendChild(document.createTextNode(`html{-webkit-filter:invert(100%) hue-rotate(180deg) contrast(70%) !important; background: #222;} .line-content {background-color: #333;} html img{-webkit-filter:invert(100%) hue-rotate(0deg) contrast(100%) !important;}`)), a.appendChild(o)
5182 description: "Makes the page 3D",
5185 menu: document.createElement("div"),
5186 limit: document.createElement("input"),
5187 gap: document.createElement("input"),
5188 sag: document.createElement("input"),
5189 fov: document.createElement("input"),
5190 flo: document.createElement("input"),
5191 off: document.createElement("input"),
5192 non: document.createElement("input"),
5193 end: document.createElement("input"),
5194 tgl: document.createElement("input"),
5195 cssStatic: document.createElement("style"),
5196 cssDynamic: document.createElement("style"),
5202 mouseMove: function(t) {
5203 e.orientation.yaw = -(180 * Math.cos(Math.PI * t.clientX / innerWidth)) * e.limit.value, e.orientation.pitch = 180 * Math.cos(Math.PI * t.clientY / innerHeight) * e.limit.value, e.updateBody()
5205 gyroMove: function(t) {
5206 innerWidth > innerHeight ? (e.orientation.yaw = -(t.alpha + t.beta), e.orientation.pitch = t.gamma - 90 * Math.sign(90 - Math.abs(t.beta))) : (e.orientation.yaw = -(t.alpha + t.gamma), e.orientation.pitch = t.beta - 90), e.updateBody()
5208 updateOrigin: function(e) {
5209 document.body.style.transformOrigin = innerWidth / 2 + pageXOffset + "px " + (innerHeight / 2 + pageYOffset) + "px"
5211 updateBody: function() {
5212 document.body.style.transform = "perspective(" + Math.pow(2, e.fov.value) + "px) translateZ(-" + e.gap.value + "px) rotateX(" + e.orientation.pitch + "deg) rotateY(" + e.orientation.yaw + "deg)"
5214 updateCSS: function() {
5215 if (e.non.checked) e.cssDynamic.innerHTML = "";
5216 else if (e.off.checked) e.cssDynamic.innerHTML = "* { transform-style: preserve-3d; }";
5218 for (var t = 0; document.querySelector("body" + " > *".repeat(t)); t++);
5219 var a = e.gap.value / t,
5220 o = -Math.PI * e.sag.value / t;
5221 e.cssDynamic.innerHTML = ` * { transform: translateZ(${a}px) rotateX(${o}rad); transform-style: preserve-3d; transition: transform 1s; outline: 1px solid rgba(0, 0, 0, 0.0625); ${e.flo.checked?"overflow: visible !important;":""} } *:hover { transform: translateZ(${2*a}px) rotateX(${2*o}rad); ${e.flo.checked?"":"overflow: visible;"} } `
5224 toggle: function() {
5225 "active" == e.menu.className ? e.menu.removeAttribute("class") : e.menu.className = "active"
5228 window.removeEventListener("deviceorientation", e.gyroMove), window.removeEventListener("mousemove", e.mouseMove), window.removeEventListener("scroll", e.updateOrigin), window.addEventListener("resize", e.updateOrigin), e.menu.remove(), e.cssStatic.remove(), e.cssDynamic.remove(), document.body.removeAttribute("style")
5230 newRange: function(t, a, o, r, i, n, s) {
5231 e.menu.appendChild(t), t.type = "range", t.min = o, t.max = i, t.step = r, t.value = n, t.addEventListener("input", s), e.menu.appendChild(document.createElement("span")).innerHTML = a, e.menu.appendChild(document.createElement("br"))
5233 newCheckbox: function(t, a, o) {
5234 e.menu.appendChild(t), t.type = "checkbox", t.addEventListener("click", o), e.menu.appendChild(document.createElement("span")).innerHTML = a, e.menu.appendChild(document.createElement("br"))
5236 newButton: function(t, a, o) {
5237 e.menu.appendChild(t), t.type = "button", t.value = a, t.addEventListener("click", o)
5240 document.body.parentNode.appendChild(e.menu).id = "tri-menu", e.newRange(e.limit, "limit", 0, .03125, 1, .125, e.updateBody), e.newRange(e.gap, "gap / distance", 0, 32, 512, 128, function() {
5241 e.updateCSS(), e.updateBody()
5242 }), e.newRange(e.sag, "sag", -.25, .03125, .25, 0, e.updateCSS), e.newRange(e.fov, "field of view", 7, 1, 13, 10, e.updateBody), e.newCheckbox(e.flo, "force overflow", e.updateCSS), e.flo.setAttribute("checked", ""), e.newCheckbox(e.off, "flatten layers", e.updateCSS), e.newCheckbox(e.non, "flatten everything", e.updateCSS), e.newButton(e.end, "Quit", e.quit), e.newButton(e.tgl, "≡", e.toggle), e.tgl.id = "tri-toggle", e.menu.appendChild(e.cssStatic).innerHTML = " html, body { transition-property: none; height: 100%25; width: 100%25; } html, html:hover, #tri-menu, #tri-menu > *, #tri-menu > *:hover { transform: none; outline: none; overflow: auto !important; float: none; } #tri-menu { position: fixed; top: 0; left: 0; background: rgba(0, 0, 0, 0.5); color: white; border: 1px solid rgba(255, 255, 255, 0.5);; border-radius: 0 0 16px 0; padding: 8px; transform: translate(-100%25, -100%25) translate(32px, 32px); } #tri-menu.active { transform: none; } #tri-toggle { position: absolute; bottom: 0; right: 0; height: 32px; width: 32px; background: transparent; color: white; border: none; cursor: pointer; } #tri-menu.active > #tri-toggle { background: white; color: black; border-radius: 8px 0 0 0; }", e.menu.appendChild(e.cssDynamic), e.updateCSS(), window.addEventListener("deviceorientation", e.gyroMove), window.addEventListener("mousemove", e.mouseMove), window.addEventListener("scroll", e.updateOrigin), window.addEventListener("resize", e.updateOrigin), window.scrollBy(0, 1)
5248 name: "History Flooder",
5249 description: "Floods browser history with specified amount of entries",
5256 done = !1, C = window.location.href;
5257 for (var a = 1; a <= t; a++) history.pushState(0, 0, a == t ? C : a.toString()), a == t && (done = !0);
5258 !0 === done && alert("History flood successful! " + window.location.href + " now appears in your history " + t + (1 == t ? " time." : " times. "))
5261 name: "Auto Clicker",
5262 description: "Automatically clicks for you. Press S to toggle.",
5264 name: "Click Delay",
5267 run: function(inputs) {
5271 let clickInterval = null;
5272 let clickingEnabled = true;
5278 const milliseconds = Number.parseInt(inputs, 10);
5280 if (false === Number.isSafeInteger(milliseconds)) {
5281 self.alert("Input was not an integer");
5291 function startClicking() {
5292 clickInterval = self.setInterval(() => {
5293 document.elementFromPoint(clientX, clientY)?.click?.();
5297 function stopClicking() {
5298 self.clearInterval(clickInterval);
5299 clickInterval = null;
5304 document.addEventListener("mousemove", event => {
5313 self.addEventListener("keydown", event => {
5314 if (event.key === "s") {
5315 if (clickingEnabled) {
5320 clickingEnabled = !clickingEnabled;
5326 name: "Tab Cloaker",
5327 description: "Changes the tab image and name",
5335 run: function(e, t) {
5336 var a = document.querySelector("link[rel*='icon']") || document.createElement("link");
5337 a.type = "image/x-icon", a.rel = "shortcut icon", a.href = e || "https://www.blooket.com/favicon.ico", document.getElementsByTagName("head")[0].appendChild(a), document.title = t || "Blooket"
5341 name: "Host Any Gamemode",
5342 description: "Change the selected gamemode on the host settings page",
5346 options: ["Racing", "Classic", "Factory", "Cafe", "Defense2", "Defense", "Royale", "Gold", "Candy", "Brawl", "Hack", "Pirate", "Fish", "Dino", "Toy", "Rush"]
5349 let t = document.createElement("iframe");
5350 if (document.body.append(t), window.alert = t.contentWindow.alert.bind(window), window.prompt = t.contentWindow.prompt.bind(window), t.remove(), "/host/settings" != location.pathname) return alert("Run this script on the host settings page");
5353 } = Object.values(function e(t = document.querySelector("body>div")) {
5354 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
5355 }())[1].children[0]._owner;
5363 name: "Toggle Spooky Theme",
5364 description: "Toggles the spooky theme for Gold Quest",
5367 const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5368 sn.season = sn.season ? 0 : 1;
5373 name: "Freeze Timer",
5374 description: "Makes the host timer stop ingame",
5379 } = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner;
5380 clearInterval(stateNode.timerInterval);
5381 stateNode.timerInterval = setInterval(function() {
5382 stateNode?.getClients?.(!1);
5387 name: "Render Hours on Host Timer",
5388 description: "Renders hours on host timer(use with remove host time limit). Can only render up to 24 hours.",
5391 const format = "HH:mm:ss";
5392 const reg = '/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g';
5393 if (!RegExp.prototype.tes) {
5394 RegExp.prototype.tes = RegExp.prototype.test;
5396 RegExp.prototype.test = function(a) {
5397 if (a == "mm:ss" && this.toString() == reg) {
5400 return RegExp.prototype.tes.apply(this, arguments);
5402 if (!String.prototype.rep) {
5403 String.prototype.rep = String.prototype.replace;
5405 String.prototype.replace = function(a, b) {
5406 if (this == "mm:ss" && a.toString() == reg) {
5409 return String.prototype.rep.apply(this, arguments);
5414 name: "View Lobbychat Logs",
5415 description: "View messages players type in chat",
5417 function reactHandler() {
5418 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
5421 document.addEventListener("keydown", function(e) {
5422 if (e.key === "Shift" && e.code === "ShiftRight") {
5423 c.style.display = c.style.display === "none" ? "block" : "none";
5427 const c = document.createElement("div");
5428 c.className = "chat-box";
5429 document.body.appendChild(c);
5430 const h = document.createElement("div");
5431 h.className = "chat-header";
5432 h.textContent = "Chat Logs (RSHIFT to hide)";
5434 const b = document.createElement("div");
5435 b.className = "chat-body";
5439 const t = document.createElement("div");
5442 b.scrollTop = b.scrollHeight;
5445 c.style.position = "fixed";
5446 c.style.bottom = "20px";
5447 c.style.right = "20px";
5448 c.style.width = "300px";
5449 c.style.height = "400px";
5450 c.style.backgroundColor = "#fff";
5451 c.style.border = "1px solid #ccc";
5452 c.style.boxShadow = "0px 0px 10px rgba(0, 0, 0, 0.2)";
5453 c.style.display = "block";
5455 b.style.height = "360px";
5456 b.style.overflowY = "scroll";
5457 b.style.padding = "10px";
5459 h.addEventListener("click", () => {
5460 b.classList.toggle("open");
5463 var da = reactHandler().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
5465 function handleChat(e, t) {
5467 if (e.includes("/msg")) {
5468 t?.msg && (console.log(t.msg), a(e.split("/")[2] + ": " + t.msg));
5473 reactHandler().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function(e, t, a, n) {
5474 console.log(e, t, a, n);
5479 window.logsv = false;
5483 a("Path: " + e.path.split("/").splice(2, 2).join("/") + " Val: " + ((typeof e.val === 'object') ? JSON.stringify(e.val) : e.val));
5487 var orgsv = reactHandler().stateNode.props.liveGameController.setVal;
5488 reactHandler().stateNode.props.liveGameController.setVal = function() {
5489 onsv.apply(this, arguments);
5490 orgsv.apply(this, arguments);
5493 reactHandler().stateNode.props.liveGameController._liveApp.database().ref(`${reactHandler().stateNode.props.liveGameController._liveGameCode}`).on("value", e => {});
5494 a("Lobbychat successfully loaded!");
5497 c.style.wordWrap = "break-word";
5503 name: "Remove Host Time Limit",
5504 description: "Removes the host time limit",
5507 const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5508 sn.onAmountUpdate = function(t) {
5509 let settings = sn.state.settings;
5510 settings.amount = parseInt(t.target.value);
5518 name: "Free Player Slots",
5519 description: "Allows more players to join if the game is full",
5521 let i = document.createElement('iframe');
5522 document.body.append(i);
5523 const alert = i.contentWindow.alert.bind(window);
5525 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5526 const players = await stateNode.props.liveGameController.getDatabaseVal("c");
5528 if (!stateNode.state.blockedUsers) {
5529 stateNode.state.blockedUsers = [];
5531 async function wait(time) {
5532 return new Promise(e => {
5533 setTimeout(e, time);
5536 async function blockUser(name) {
5537 if (stateNode.state.blockedUsers.includes(name)) {
5540 const res = await fetch("https://fb.blooket.com/c/firebase/block", {
5542 "Content-Type": "application/json"
5545 body: JSON.stringify({
5546 g: stateNode.props.host.id,
5549 credentials: "include"
5551 if (res.status !== 200) {
5554 stateNode.state.blockedUsers.push(name);
5556 if (freed % parseInt("15") == 0) {
5559 C.alerts?.[0].addLog("Freed user: " + name);
5561 for (let i in players) {
5564 alert(`Freed slots: ${freed}`);
5567 name: "Realtime Updates",
5568 description: "Makes leaderboard updates happen in real-time.",
5570 const stateNode = () => Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
5571 (await stateNode().props.liveGameController.getDatabaseRef("")).on("value", e => stateNode()?.getClients?.(!1));
5575 description: "Prevents bots from flooding the game",
5583 this.enabled = true;
5584 this.data = setInterval(async () => {
5585 var iframe = document.createElement("iframe");
5586 document.body.append(iframe);
5587 window.confirm = iframe.contentWindow.confirm.bind(window);
5588 iframe.style.display = "none";
5591 let stateNode = Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode;
5592 var dbRef = await stateNode.props.liveGameController.getDatabaseRef("c");
5593 let currentClients = {},
5596 dbRef.on("value", snapshot => {
5597 var clients = snapshot.val() || {};
5598 var newClients = [];
5600 for (const key in clients) {
5601 if (!currentClients[key]) {
5602 newClients.push(key);
5603 clientCounts[key.replace(/[0-9]/g, "")] = (clientCounts[key.replace(/[0-9]/g, "")] || 0) + 1;
5607 currentClients = clients;
5609 for (const client of newClients) {
5610 if (currentClients[client].g || clientCounts[client.replace(/[0-9]/g, "")] > 1) {
5611 stateNode.props.liveGameController.blockUser(client);
5612 clientCounts[client.replace(/[0-9]/g, "")]--;
5617 console.error("An error occurred", error);
5622 name: "Enable Mobile Hosting",
5623 description: "Makes it so that you can host on mobile",
5626 var metaViewport = document.querySelector('meta[name="viewport"]');
5628 metaViewport.parentNode.removeChild(metaViewport);
5630 var newMetaViewport = document.createElement('meta');
5631 newMetaViewport.name = 'viewport';
5632 newMetaViewport.content = 'width=1280, initial-scale=1';
5633 document.head.appendChild(newMetaViewport);
5637 name: "Kick All Players",
5638 description: "Kicks all players from your game.",
5640 const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5641 const db = await sn.props.liveGameController.getDatabaseVal("");
5642 sn.props.liveGameController.setVal({
5644 val: Object.keys(db.c).reduce((a, b) => (a[b] = 1, a), db.bu ? db.bu : {})
5646 sn.props.liveGameController.setVal({
5653 name: "Auto Answer (Toggle)",
5654 description: "Toggles auto answer on",
5659 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
5660 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5661 e?.onAnswer?.(!0, e.props.client.question.correctAnswers[0])
5665 name: "Auto Answer",
5666 description: "Chooses the correct answer for you. Will answer with the time provided.",
5668 name: "Time (milliseconds)",
5674 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5675 stateNode.startTime = performance.now() - a;
5676 stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]);
5681 description: "Sets amount of blooks you or your team has",
5687 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5690 }), t.isTeam ? t.props.liveGameController.setVal({
5691 path: `a/${t.props.client.name}/bs`,
5693 }) : t.props.liveGameController.setVal({
5694 path: `c/${t.props.client.name}/bs`,
5699 name: "Set Defense",
5700 description: "Sets amount of defense you or your team has (Max 4)",
5702 name: "Defense (max 4)",
5707 var e = Math.min(e, 4),
5708 t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5711 }), t.isTeam ? t.props.liveGameController.setVal({
5712 path: `a/${t.props.client.name}/d`,
5714 }) : t.props.liveGameController.setVal({
5715 path: `c/${t.props.client.name}/d`,
5720 name: "Freeze Host :)",
5721 description: "They aint coming back with this one",
5723 var largeNumber = "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999";
5724 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5726 numBlooks: largeNumber
5729 t.props.liveGameController.setVal({
5730 path: `a/${t.props.client.name}/bs`,
5734 t.props.liveGameController.setVal({
5735 path: `c/${t.props.client.name}/bs`,
5742 name: "Remove Distractions",
5743 description: "Removes all enemy distractions",
5745 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5753 trees: [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1]
5757 name: "Send Distraction",
5758 description: "Sends a distraction to everyone else playing",
5760 name: "Distraction",
5762 options: Object.entries({
5772 }).map(([e, t]) => ({
5778 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5779 t.safe = !0, t.props.liveGameController.setVal({
5780 path: `c/${t.props.client.name}/tat`,
5786 description: "Sets amount of toys",
5792 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5795 }), t.props.liveGameController.setVal({
5796 path: "c/".concat(t.props.client.name),
5798 b: t.props.client.blook,
5804 name: "Set Toys Per Question",
5805 description: "Sets amount of toys per question",
5807 name: "Toys Per Question",
5811 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5817 description: "Swaps toys with someone",
5822 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5823 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
5827 let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5828 t.props.liveGameController.getDatabaseVal("c", a => {
5830 a && Object.keys(a).map(e => e.toLowerCase()).includes(e.toLowerCase()) && ([a, {
5832 }] = Object.entries(a).find(([t]) => t.toLowerCase() == e.toLowerCase()), t.props.liveGameController.setVal({
5833 path: "c/".concat(t.props.client.name),
5835 b: t.props.client.blook,
5837 tat: a + ":swap:" + t.state.toys
5846 name: "Import Settings",
5847 description: "Import a custom theme",
5856 return alert("Invalid JSON provided")
5859 backgroundColor: "rgb(11, 194, 207)",
5860 infoColor: "#9a49aa",
5861 cheatList: "#9a49aa",
5862 defaultButton: "#9a49aa",
5863 disabledButton: "#A02626",
5864 enabledButton: "#47A547",
5866 inputColor: "#7a039d",
5867 contentBackground: "rgb(64, 17, 95)",
5869 }, c.setItem("theme", e), e) p.sheet.cssRules[0].style.setProperty("--" + a, e[a])
5872 name: "Export Settings",
5873 description: "Export the current theme to JSON",
5874 run: async function() {
5875 await navigator.clipboard.writeText(JSON.stringify(c.data.theme, null, 4)), prompt("Text copied to clipboard. (Paste below to test)")
5879 description: "Changes all the settings to a preset",
5886 backgroundColor: "rgb(11, 194, 207)",
5887 infoColor: "#9a49aa",
5888 cheatList: "#9a49aa",
5889 defaultButton: "#9a49aa",
5890 disabledButton: "#A02626",
5891 enabledButton: "#47A547",
5893 inputColor: "#7a039d",
5894 contentBackground: "rgb(64, 17, 95)"
5897 name: "Landscapes (Random)",
5899 backgroundColor: "url(https://source.unsplash.com/1600x900/?landscape)",
5900 infoColor: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
5901 cheatList: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
5902 defaultButton: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
5903 disabledButton: "linear-gradient(rgba(225, 0, 0, 0.3), rgba(225, 0, 0, 0.3))",
5904 enabledButton: "linear-gradient(rgba(0, 128, 0, 0.3), rgba(0, 128, 0, 0.3))",
5906 inputColor: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
5907 contentBackground: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))"
5912 backgroundColor: "#4f4f4f",
5913 infoColor: "#2f2f2f",
5914 cheatList: "#2f2f2f",
5915 defaultButton: "#4f4f4f",
5916 disabledButton: "#eb6234",
5917 enabledButton: "#00c20c",
5919 inputColor: "#3f3f3f",
5920 contentBackground: "#2f2f2f"
5925 backgroundColor: "url(https://i.ibb.co/6vvdq3f/ploopit.png)",
5926 infoColor: "#3C75F5",
5927 cheatList: "#204DD0",
5928 defaultButton: "#204DD0",
5929 disabledButton: "#A02626",
5930 enabledButton: "#47A547",
5932 inputColor: "#3f3f3f",
5933 contentBackground: "#3C75F5"
5938 backgroundColor: "url(https://i.ibb.co/8bkDpCn/GIFMaker-me.gif)",
5939 infoColor: "#282828",
5940 cheatList: "#282828",
5941 defaultButton: "white",
5942 disabledButton: "#9D0000",
5943 enabledButton: "#013220",
5946 contentBackground: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))"
5951 backgroundColor: "linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)",
5952 cheatList: "#1e2124",
5953 infoColor: "#1e2124",
5954 defaultButton: "#36393e",
5955 inputColor: "#1e2124",
5956 enabledButton: "#9c9a9a",
5958 disabledButton: "#171717",
5959 contentBackground: "#292929"
5962 name: "Blue - Purple Background",
5964 backgroundColor: "linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)"
5967 name: "Saint Patricks Background",
5969 backgroundColor: "rgb(9, 148, 65)"
5972 name: "Halloween Background",
5974 backgroundColor: "rgb(41, 41, 41)"
5977 name: "Fall Background",
5979 backgroundColor: "rgb(224, 159, 62)"
5982 name: "Winter Background",
5984 backgroundColor: "linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))"
5987 name: "Crypto Hack",
5989 backgroundColor: "radial-gradient(#11581e,#041607)",
5990 infoColor: "#1a1a1a",
5991 cheatList: "#1a1a1a",
5992 defaultButton: "rgb(88 175 88)",
5993 disabledButton: "#A02626",
5994 enabledButton: "#0b601b",
5996 inputColor: "rgb(0 0 0 / 25%)",
5997 contentBackground: "#11581e"
6000 name: "Fishing Frenzy",
6002 backgroundColor: "linear-gradient(180deg,#9be2fe 0,#67d1fb)",
6003 infoColor: "#c8591e",
6004 cheatList: "#c8591e",
6005 defaultButton: "#ff751a",
6006 disabledButton: "#bf0e0e",
6007 enabledButton: "#2fb62f",
6009 inputColor: "rgb(0 0 0 / 25%)",
6010 contentBackground: "radial-gradient(#02b0ea 40%, #1d86ea)"
6013 name: "Deceptive Dinos",
6015 backgroundColor: 'radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url("https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png"), #ead49a',
6016 infoColor: "#af8942",
6017 cheatList: "#af8942",
6018 defaultButton: "#af8942",
6019 disabledButton: "#A02626",
6020 enabledButton: "#47A547",
6022 inputColor: "rgb(0 0 0 / 10%)",
6023 contentBackground: "radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px"
6028 backgroundColor: "repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)",
6029 defaultButton: "#36c",
6030 inputColor: "rgb(0 0 0 / 25%)",
6033 contentBackground: "#888",
6035 disabledButton: "#A02626",
6036 enabledButton: "#47A547"
6041 defaultButton: "#1563bf",
6042 infoColor: "#a5aabe",
6043 cheatList: "#a5aabe",
6044 contentBackground: "#2d313d",
6045 backgroundColor: "#3a3a3a",
6046 enabledButton: "rgb(75, 194, 46)",
6047 disabledButton: "#9a49aa",
6048 inputColor: "rgb(0 0 0 / 25%)",
6054 backgroundColor: "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",
6055 defaultButton: "#0bc2cf",
6056 inputColor: "rgb(0 0 0 / 25%)",
6057 infoColor: "#ac7339",
6058 cheatList: "#ac7339",
6059 contentBackground: "rgb(64, 64, 64)",
6061 disabledButton: "#A02626",
6062 enabledButton: "#47A547"
6065 name: "Tower of Doom",
6067 backgroundColor: "rgb(41 41 41)",
6068 disabledButton: "rgb(151, 15, 5)",
6069 defaultButton: "#333",
6070 inputColor: "rgb(0 0 0 / 25%)",
6071 contentBackground: "#404040",
6072 enabledButton: "#4bc22e",
6074 infoColor: "#9a49aa",
6075 cheatList: "#9a49aa"
6078 name: "Monster Brawl",
6080 defaultButton: "rgb(45, 51, 67)",
6081 backgroundColor: "rgb(78, 95, 124)",
6082 inputColor: "rgb(0 0 0 / 25%)",
6083 contentBackground: "linear-gradient(0deg,#374154,#4f5b74)",
6084 infoColor: "#374154",
6085 cheatList: "#374154",
6087 enabledButton: "#47A547",
6088 disabledButton: "#A02626"
6091 name: "Tower Defense 2",
6093 backgroundColor: "url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover",
6094 cheatList: "#a33c22",
6095 infoColor: "#a33c22",
6096 defaultButton: "#40b1d8",
6097 inputColor: "#3e8cbe",
6098 contentBackground: "#293c82",
6099 enabledButton: "#47A547",
6100 disabledButton: "#A02626",
6106 for (let t in c.setItem("theme", {
6109 }), e) p.sheet.cssRules[0].style.setProperty("--" + t, e[t])
6113 description: "Forces the GUI to scale from 25%-100%",
6116 name: "Percent scale",
6119 value: 100 * (c.data.scale || 1)
6122 e = Math.min(Math.max(e, 25), 100), c.setItem("scale", e / 100), _.style.transform = `scale(${e/100})`
6125 name: "Hide Keybind",
6126 description: "Change the hide keybind (Click button after input to change)",
6135 }) => e("" + [a && "Ctrl", t && "Shift", o && "Alt", r && r.toUpperCase()].filter(Boolean).join(" + ")))
6138 c.setItem("hide", e), m.update(c.data.hide || {
6141 }, c.data.close || {
6147 name: "Close Keybind",
6148 description: "Change the quick close keybind (Click button after input to change)",
6157 }) => e("" + [a && "Ctrl", t && "Shift", o && "Alt", r && r.toUpperCase()].filter(Boolean).join(" + ")))
6160 c.setItem("close", e), m.update(c.data.hide || {
6163 }, c.data.close || {
6169 name: "Background Color",
6170 description: "Changes the background color of the GUI",
6176 p.sheet.cssRules[0].style.setProperty("--backgroundColor", e), c.setItem("theme.backgroundColor", e)
6179 name: "Category List Color",
6180 description: "Changes the categories list background color",
6186 p.sheet.cssRules[0].style.setProperty("--cheatList", e), c.setItem("theme.cheatList", e)
6190 description: "Changes the color of the information at the top of the GUI",
6196 p.sheet.cssRules[0].style.setProperty("--infoColor", e), c.setItem("theme.infoColor", e)
6199 name: "Button Color",
6200 description: "Changes the color of the cheats",
6206 p.sheet.cssRules[0].style.setProperty("--defaultButton", e), c.setItem("theme.defaultButton", e)
6209 name: "Enabled Toggle Color",
6210 description: "Changes the color of enabled toggle cheats",
6216 c.setItem("theme.enabledButton", e)
6219 name: "Disabled Toggle Color",
6220 description: "Changes the color of disabled toggle cheats",
6226 p.sheet.cssRules[0].style.setProperty("--disabledButton", e), c.setItem("theme.disabledButton", e)
6230 description: "Changes the text color",
6236 p.sheet.cssRules[0].style.setProperty("--textColor", e), c.setItem("theme.textColor", e)
6239 name: "Input Color",
6240 description: "Changes the color of inputs, like the set gold number input",
6246 p.sheet.cssRules[0].style.setProperty("--inputColor", e), c.setItem("theme.inputColor", e)
6249 name: "Content Color",
6250 description: "Changes the background color of the cheats",
6256 p.sheet.cssRules[0].style.setProperty("--contentBackground", e), c.setItem("theme.contentBackground", e)
6261 className: "alertContainer",
6263 margin: "15px 15px 5px 15px",
6264 backgroundColor: "rgb(0 0 0 / 50%)",
6267 borderRadius: "7px",
6269 alignItems: "center",
6270 justifyContent: "center"
6273 className: "alertList",
6275 margin: "10px 10px 0 10px",
6277 listStyleType: "none",
6279 flexDirection: "column-reverse",
6281 overflowY: "scroll",
6282 wordWrap: "break-word"
6290 color: "var(--textColor)"
6292 innerText: "[LOG] GUI opened"
6295 return this.element.firstChild.prepend(l("li", {
6301 color: t || "var(--textColor)"
6303 innerHTML: "[LOG] " + e
6307 return this.element.firstChild.prepend(l("li", {
6311 }, l("strong", {}, e), " ", a))
6315 updateLeaderboard(e) {
6321 of(this.leaderboardEl || this.addLeaderboard(), this.leaderboard.innerHTML = "", e)) {
6322 this.leaderboard.append(l("li", {
6325 paddingInline: "15px 15px",
6326 paddingBlock: "1.25px",
6327 position: "relative",
6328 borderBottom: "2px solid orange",
6329 color: (a === Object.values(document.querySelector("#app>div>div"))?.[1]?.children?.[0]?._owner?.stateNode?.props?.client?.name) ? "#00FF00" : "#FFFFFF"
6332 innerText: this.parseNumber(parseInt(o)),
6339 parseNumber(e = 0) {
6341 if (e < 1e3) return t.toString();
6342 var a = ["", "K", "M", "B", "T"],
6343 o = Math.floor((e.toString().length - 1) / 3);
6346 for (let i = 3; 1 <= i && !((r = parseFloat((0 !== o ? e / Math.pow(1e3, o) : e).toPrecision(i))).toString().replace(/[^a-zA-Z 0-9]+/g, "").length <= 3); i--);
6347 t = (r = r % 1 != 0 ? r.toFixed(1) : r) + a[o]
6351 for (; 100 <= n; s++) n = Math.floor(n / 10);
6353 var c = ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"];
6354 for (let d of (s + 1).toString().split("")) l += c[Number(d)];
6355 t = n / 10 + " \xd7 10" + l
6360 this.leaderboardEl = l("div", {
6361 className: "alertContainer",
6363 margin: "15px 15px 5px 15px",
6364 backgroundColor: "rgb(0 0 0 / 50%)",
6367 borderRadius: "7px",
6369 alignItems: "center",
6370 justifyContent: "center"
6372 }, this.leaderboard = l("nl", {
6373 className: "alertList",
6377 listStyleType: "decimal",
6380 overflowY: "scroll",
6381 wordWrap: "break-word"
6384 insertElemBefore("Leaderboard", "https://i.ibb.co/hZQjjVP/trophy-icon.webp", [{
6385 element: this.leaderboardEl
6386 }], !0, h.children[3]);
6387 this.addLog("Leaderboard Loaded!");
6391 var e = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
6392 if (!e?.props?.liveGameController?._liveGameCode) return !1;
6393 this.connection = await e.props.liveGameController.getDatabaseRef("");
6395 a = this.getGamemode(),
6410 this.connection.on("value", e => {
6411 var r = e.val()?.c || {};
6412 if (r && this.diffObjects(this.data, r)) {
6413 var i, n, s, l, c, d, p, u, h = this.diffObjects(this.data, r);
6416 switch (this.getGamemode()) {
6418 m = Object.entries(r).map(([e, {
6428 m = Object.entries(r).map(([e, {
6438 m = Object.entries(r).map(([e, {
6448 m = Object.entries(r).map(([e, {
6458 m = Object.entries(r).map(([e, {
6468 m = Object.entries(r).map(([e, {
6479 m = Object.entries(r).map(([e, {
6489 for (let $ in h) h[$].tat?.split && ([i, n] = h[$].tat.split(":"), "swap" == n ? this.addAlert($, t[r[$].b]?.url, "just swapped with " + i) : this.addAlert($, t[r[$].b]?.url, `just took ${this.parseNumber(parseInt(n))} gold from ` + i));
6490 m = Object.entries(r).map(([e, {
6500 for (let g in h) h[g].tat?.split && ([s, l] = h[g].tat.split(":"), this.addAlert(g, t[r[g].b]?.url, `just took ${this.parseNumber(parseInt(l))} crypto from ` + s));
6501 m = Object.entries(r).map(([e, {
6511 for (let y in h) "Frenzy" == h[y].f ? this.addAlert(y, t[r[y].b]?.url, "just started a frenzy") : h[y].s && this.addAlert(y, t[r[y].b]?.url, `just sent a ${h[y].f} distraction`);
6512 m = Object.entries(r).map(([e, {
6522 for (let b in h) h[b].tat && ([c, d] = h[b].tat.split(":"), "true" == d ? this.addAlert(b, t[r[b].b]?.url, `just caught ${c} CHEATING!`) : this.addAlert(b, t[r[b].b]?.url, "investigated " + c));
6523 m = Object.entries(r).map(([e, {
6533 for (let v in h) h[v].up && ([p, u] = h[v].up.split(":"), u) && this.addAlert(v, t[r[v].b]?.url, `upgraded ${p} to level ` + u);
6534 m = Object.entries(r).map(([e, {
6546 k.g ? this.addAlert(_, t[r[_].b]?.url, `activated the ${o[k.g]} glitch!`) : k.s ? ([f, w] = k.s.split("-"), this.addAlert(_, t[r[_].b]?.url, `has a ${f} ${w} synergy!`)) : k.t && this.addAlert(_, t[r[_].b]?.url, "now has 10 Blooks!")
6548 m = Object.entries(r).map(([e, {
6557 this.updateLeaderboard(m.sort((e, t) => t.value - e.value));
6566 for (let r in e) r in t && ("object" == typeof e[r] && "object" == typeof t[r] ? (a = this.diffObjects(e[r], t[r])) && 0 !== Object.keys(a).length && (o[r] = a) : JSON.stringify(e[r]) !== JSON.stringify(t[r]) && (o[r] = t[r]));
6567 for (let i in t) i in e || (o[i] = t[i]);
6568 return 0 == Object.keys(o).length ? null : o
6571 if (Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode.props?.client?.type) {
6572 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode.props.client.type.toLowerCase();
6574 switch (window.location.pathname) {
6575 case "/play/racing":
6577 case "/play/extras":
6581 case "/play/pirate":
6583 case "/play/factory":
6585 case "/play/classic/get-ready":
6586 case "/play/classic/question":
6587 case "/play/classic/answer/sent":
6588 case "/play/classic/answer/result":
6589 case "/play/classic/standings":
6591 case "/play/battle-royale/match/preview":
6592 case "/play/battle-royale/question":
6593 case "/play/battle-royale/answer/sent":
6594 case "/play/battle-royale/answer/result":
6595 case "/play/battle-royale/match/result":
6605 case "/play/fishing":
6612 case "/tower/battle":
6616 case "/tower/victory":
6623 case "/play/defense2":
6637 e.onpointerdown = function(e = window.event) {
6638 r = e.clientX, i = e.clientY, document.onpointerup = function() {
6639 document.onpointerup = null, document.onpointermove = null
6640 }, document.onpointermove = function(e = window.event) {
6641 a = r - e.clientX, o = i - e.clientY, r = e.clientX, i = e.clientY, t.style.top = t.offsetTop - o + "px", t.style.left = t.offsetLeft - a + "px"
6645 w("Alerts", "https://i.ibb.co/hBNyCXG/559343-1.png", C.alerts, !0), w("Global", "https://i.ibb.co/gd4Qs8L/11507ef5615c554fe88fc22c86768501-simple-earth-icon-1.webp", C.global)(), w("Host", "https://i.ibb.co/QpDgysb/computer-1865273-1.png", C.host, !0), w('<span style="font-size: 18px">Pirate\'s Voyage</span>', "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPjxnIGlkPSJCb2F0Ij48cGF0aCBkPSJNMTcwLjQsNTYuMDU0Yy02OC43ODgsMTAuMTc0IC0xMTUuOTcxLDU2LjkzOCAtMTQ1LjQxMSwxMzMuNzVsMTUuNDY5LDcuNzM0YzMwLjk2MiwtMjguMTc1IDc0LjcwNSwtMzcuNzg3IDEzMi4zMjIsLTI3LjI1bDAsLTE3LjYxMWMtMjUuNjI5LC0yNy45NTIgLTI2Ljk2NiwtNTYuNzcyIDAuNzE0LC04Ni42MjhsLTMuMDk0LC05Ljk5NVoiIHN0eWxlPSJmaWxsOiNmNmUwYmQ7Ii8+PHBhdGggZD0iTTE5OS42NzMsNjAuODEzYzMyLjc4NCw0Mi45ODIgNjUuODIyLDkwLjg4NyA5Ny4zMzcsMTM5LjU4MWwtNi42NjMsMGMtMTIuMDg1LC0zMS4xMTEgLTU3Ljg4MiwtMzkuNjk0IC05MS42MjYsLTI3LjI1YzIyLjUxNCwtMzQuNTc5IDE3Ljc5NiwtNzIuNjczIDAuOTUyLC0xMTIuMzMxWiIgc3R5bGU9ImZpbGw6I2Y2ZTBiZDsiLz48cGF0aCBkPSJNNjkuNDQ4LDE5Ny41MzhjMCwwIC01OS43MDcsLTE1LjI0MyAtNjguMzk4LC0xNy40NjJjLTAuMDc2LC0wLjAxOSAtMC4xNTQsMC4wMiAtMC4xODQsMC4wOTJjLTAuMDMsMC4wNzIgLTAuMDAyLDAuMTU1IDAuMDY1LDAuMTk1YzkuNjgyLDUuNzc1IDkxLjY0Nyw1NC42NTggOTEuNjQ3LDU0LjY1OGwtMjMuMTMsLTM3LjQ4M1oiIHN0eWxlPSJmaWxsOiM4ZDZlNDE7Ii8+PHBhdGggZD0iTTE2NC40NSw0Ny45MDNjMCwtNS4zNTMgNC4zNDYsLTkuNjk4IDkuNjk4LC05LjY5OGwxOS4zOTcsLTBjNS4zNTIsLTAgOS42OTgsNC4zNDUgOS42OTgsOS42OThsLTAsMTU2Ljk1M2MtMCw1LjM1MyAtNC4zNDYsOS42OTggLTkuNjk4LDkuNjk4bC0xOS4zOTcsMGMtNS4zNTIsMCAtOS42OTgsLTQuMzQ1IC05LjY5OCwtOS42OThsMCwtMTU2Ljk1M1oiIHN0eWxlPSJmaWxsOiM3ZjY4NDU7Ii8+PHBhdGggZD0iTTI2My45OTMsMjU2LjEwM2MyMi4xNzEsLTE0LjcxIDM2LjAwNywtMzUuNTE1IDM2LjAwNywtNTguNTY1bC0yMzAuNTUyLDBjMCwyMy43MTMgMTQuNjQzLDQ1LjA1IDM3Ljk0LDU5LjgxOWM5Ljg3NSwtMy43MjkgMjAuMDQxLC0xMS4zMzQgMzAuNDYzLC0yMi4zMzZjMzIuODExLDM1LjQ1NSA2NC4wNjksMzUuOTQzIDkzLjcwOCwwYzYuODM4LDkuNjc3IDE3LjczNiwxNi42NDYgMzIuNDM0LDIxLjA4MloiIHN0eWxlPSJmaWxsOiNiNjkyNWY7Ii8+PC9nPjwvc3ZnPg==", C.voyage), w("Gold quest", "https://media.blooket.com/image/upload/v1661496292/Media/uiTest/Gold.svg", C.gold), w("Cafe", "https://i.ibb.co/t8pqdYL/hot-beverage-1.png", C.cafe), w("Crypto Hack", "https://media.blooket.com/image/upload/v1661496293/Media/uiTest/CryptoIcon.svg", C.crypto), w('<span style="font-size: 17px">Deceptive Dinos</span>', "https://i.ibb.co/JFq5j88/Screenshot-2024-03-26-7-30-21-PM-removebg-preview-1.png", C.dinos), w('<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">'], C.defense), w('<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">'], C.defense2), w("Factory", "https://i.ibb.co/VMrTd39/images-removebg-preview-1.png", C.factory), w('<span style="font-size: 19px">Fishing Frenzy</span>', "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Fish_Weight.svg", C.fishing), w("Flappy Blook", "https://media.blooket.com/image/upload/v1645222006/Blooks/yellowBird.svg", C.flappy), w('<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">'], C.doom), w('<span style="font-size: 18px">Crazy Kingdom</span>', "https://i.ibb.co/10mZ6dx/3763864-1.png", C.kingdom), w("Racing", "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Racing_Progress.svg", C.racing), w("Battle Royale", "https://media.blooket.com/image/upload/v1655936179/Media/br/VS_Lightning_Bolt_Bottom.svg", C.royale), w("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==", C.rush), w('<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">'], C.brawl), w('<span style="font-size: 15px">Santa\'s Workshop</span>', "https://i.ibb.co/Y2SFc9Y/Santa-Workshop-Finished-icon-1.webp", C.workshop), w("Extras", "https://i.ibb.co/mb0R9HX/Star-icon-stylized-svg-1-removebg-preview.png", C.extras, !0), w("Settings", "https://i.ibb.co/jrWKgyn/Windows-Settings-icon-1.png", C.settings, !0), S(m, _), S(g, _), window.addEventListener("keydown", A);
6646 let x = setInterval(() => {
6647 C.alerts[0].connection ? clearInterval(x) : C.alerts[0].connect()
6651 for (let e in _.remove(), clearInterval(x), C)
6652 for (let t of C[e]) t.enabled && t.run();
6653 Object.keys(C).forEach(e => C[e].forEach(e => e.enabled && (e.run(), k(...currentMode)))), window.removeEventListener("keydown", A)
6657 var t = c.data.hide || {
6661 a = c.data.close || {
6665 (t.ctrl && e.ctrlKey || !t.ctrl && !e.ctrlKey) && (t.shift && e.shiftKey || !t.shift && !e.shiftKey) && (t.alt && e.altKey || !t.alt && !e.altKey) && e.key.toLowerCase() == t.key ? (e.preventDefault(), _.style.display = "block" === _.style.display ? "none" : "block") : (a.ctrl && e.ctrlKey || !a.ctrl && !e.ctrlKey) && (a.shift && e.shiftKey || !a.shift && !e.shiftKey) && (a.alt && e.altKey || !a.alt && !e.altKey) && e.key.toLowerCase() == a.key && (e.preventDefault(), D())
6668 function B(e, t = window) {
6669 return new Promise(a => {
6671 r, i, n, s, l = t => {
6672 t.preventDefault(), o[t.code] = !0, r ||= t.shiftKey, i ||= t.ctrlKey, n ||= t.altKey, ["shift", "control", "alt", "meta"].includes(t.key.toLowerCase()) || (s = t.key.toLowerCase()), e?.({
6680 delete o[e.code], 0 < Object.keys(o).length || (t.removeEventListener("keydown", l), t.removeEventListener("keyup", c), a({
6687 t.addEventListener("keydown", l), t.addEventListener("keyup", c)
6690 _.addEventListener("mousemove", e => {
6692 "cheatName" != e.target.className && "scriptButton" != e.target.className ? "0" != y.style.opacity && (y.animate([{
6698 }), y.style.opacity = "0") : (e = "scriptButton" == e.target.className ? e.target : e.target.parentElement, y.innerText == e.dataset.description && "0.9" == y.style.opacity || (t = e.getBoundingClientRect(), a = e.offsetParent.getBoundingClientRect(), y.innerText = e.dataset.description, "0" == y.style.opacity && (y.animate([{
6704 }), y.style.opacity = "0.9"), y.style.left = t.x - a.x + (t.width - y.clientWidth) / 2 + "px", y.style.top = t.y - a.y + t.height + "px"))
6705 }), window.fetch.call = function() {
6706 if (!arguments[1].includes("s.blooket.com/rc")) return wfcall.apply(this, arguments);
6707 C.alerts?.[0].addLog("Blooket Cheat Report Blocked!")