2 // @name Blooket Cheats Plus
3 // @namespace https://github.com/randomstuff69/blooketcheatsplus
5 // @description Blooket Cheats Plus
6 // @updateURL https://raw.githubusercontent.com/randomstuff69/blooketcheatsplus/main/Update/Gui.meta.js
7 // @downloadURL https://raw.githubusercontent.com/randomstuff69/blooketcheatsplus/main/GUI/Gui.user.js
8 // @author DannyDan0167 and Cool Duck
9 // @match *://*.blooket.com/*
10 // @icon https://i.ibb.co/sWqBm0K/1024.png
12 // @require https://unpkg.com/idb-keyval@6.0.3/dist/umd.js
16 _blsbu
= "https://www.googleapis.com";
17 var wfcall
= window
.fetch
.call
;
18 window
.fetch
.call = function() {
19 if (!arguments
[1].includes("s.blooket.com/rc")) return wfcall
.apply(this, arguments
);
21 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
) {
22 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
);
26 function l(e
, t
= {}, ...a
) {
27 var o
= document
.createElement(e
);
28 if ("object" == typeof t
.style
) {
30 for (let i
in t
.style
) r
+= `${i.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}: ${t.style[i]}; `;
33 for (let n
in t
) o
[n
] = t
[n
];
34 for (let s
of a
) o
.append(s
);
40 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
43 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
46 this.data
= e
, localStorage
.setItem("JODGUISettings", JSON
.stringify(this.data
))
50 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
))
54 let p
, u
, h
, m
, $, g
, y
, b
, v
, _
= l("div", {
57 top
: Math
.max(10, window
.innerHeight
- 600) / 2 + "px",
58 left
: Math
.max(10, window
.innerWidth
- 1e3
) / 2 + "px",
59 transform
: `scale(${c.data.scale})`,
70 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)"};}`
72 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)}'
78 outline
: "3px solid #3a3a3a",
93 background
: "var(--backgroundColor)",
97 id
: "backgroundImage",
99 backgroundImage
: "url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)",
102 position
: "absolute",
106 backgroundPositionX
: "-100px",
107 backgroundPositionY
: "-100px",
108 backgroundSize
: "550px",
109 visibility
: "visible",
110 transform
: "translate(-50%,-50%) rotate(15deg)",
118 alignItems
: "center",
119 justifyContent
: "center",
120 paddingBottom
: "8px",
121 paddingInline
: "15px",
122 position
: "absolute",
125 visibility
: "visible",
128 width
: "max-content",
129 background
: "var(--infoColor)",
130 boxShadow
: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",
131 borderBottomRightRadius
: "10px",
132 color
: "var(--textColor)",
133 fontFamily
: "Nunito, sans-serif",
147 }] = [c
.data
.hide
|| {
153 }], `${[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`),
170 }) => 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`
175 alignItems
: "center",
176 justifyContent
: "center",
177 paddingBottom
: "8px",
178 position
: "absolute",
181 visibility
: "visible",
185 background
: "var(--infoColor)",
186 boxShadow
: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",
187 borderBottomLeftRadius
: "10px",
188 color
: "var(--textColor)",
189 fontFamily
: "Nunito, sans-serif",
193 innerHTML
: "GitHub - randomstuff69",
194 onclick
: () => window
.open("https://github.com/randomstuff69/blooketcheatsplus", "_blank").focus()
196 id
: "controlButtons",
199 alignItems
: "center",
200 justifyContent
: "center",
201 position
: "absolute",
204 visibility
: "visible",
209 borderLeft
: "3px solid black",
210 borderTop
: "3px solid black",
211 borderTopLeftRadius
: "10px",
213 fontFamily
: "Nunito, sans-serif",
223 fontFamily
: "Nunito",
225 backgroundColor
: "#00a0ff",
235 fontFamily
: "Nunito",
237 backgroundColor
: "grey",
240 fontWeight
: "bolder",
244 onclick: function() {
247 for (var t
of [...u
.children
]) t
!= $ && (e
? t
.style
.display
= t
.style
._display
: (t
.style
._display
= t
.style
.display
, t
.style
.display
= "none"));
248 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
255 fontFamily
: "Nunito",
257 backgroundColor
: "red",
260 fontWeight
: "bolder",
266 className
: "cheatList",
269 background
: "var(--cheatList)",
270 boxShadow
: "inset -10px 0 rgb(0 0 0 / 20%)",
273 position
: "absolute",
277 fontFamily
: "Titan One",
278 color
: "var(--textColor)",
283 padding
: "20px 10px 20px 0",
284 boxSizing
: "border-box",
286 flexDirection
: "column"
288 innerHTML
: '<span style="text-shadow: 1px 1px rgb(0 0 0 / 40%); font-size: 0.8em;">Cheats<sup>v15.4</sup></span>'
290 className
: "bigButton",
294 fontFamily
: "Titan One",
295 margin
: "20px auto 10px",
296 position
: "relative",
298 textDecoration
: "none",
300 visibility
: "visible"
303 href
: "https://discord.gg/8A6J234n7v",
304 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>'
306 className
: "contentWrapper",
308 position
: "absolute",
312 width
: "calc(100% - 220px)",
313 height
: "calc(100% - 70px)",
319 position
: "absolute",
320 inset
: "27px 50px 50px 50px"
323 className
: "tooltip",
325 position
: "absolute",
328 backgroundColor
: "black",
329 height
: "fit-content",
332 borderRadius
: "7.5px",
335 justifyContent
: "center",
336 alignItems
: "center",
338 paddingInline
: "15px",
339 pointerEvents
: "none",
343 innerText
: "description"
346 alignItems
: "center",
347 boxSizing
: "border-box",
349 flexDirection
: "row",
351 justifyContent
: "space-evenly",
352 padding
: "20px 5px 20px",
353 position
: "relative",
355 fontFamily
: "Nunito, sans-serif",
357 color
: "var(--textColor)",
358 background
: "var(--contentBackground)",
359 boxShadow
: "inset 0 -6px rgb(0 0 0 / 20%)",
363 className
: "headerText",
365 boxSizing
: "border-box",
369 padding
: "4px 4px 8px",
370 position
: "absolute",
372 backgroundColor
: "#ef7426",
373 boxShadow
: "0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)",
378 alignItems
: "center",
379 boxSizing
: "border-box",
382 justifyContent
: "center",
385 fontFamily
: "Titan One, sans-serif",
388 textShadow
: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464",
390 background
: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)",
394 for (let f
of document
.querySelectorAll("#JODGUI")) f
.remove();
396 function w(e
, t
, a
, o
) {
398 className
: "cheatButton",
399 innerHTML
: ("string" == typeof t
? `<img style="height: 30px; margin-right: 5px" src="${t}">` : t
|| "") + e
,
400 onclick
: () => k(r
.innerText
, a
, o
)
402 return h
.appendChild(r
), r
.onclick
405 function insertElemBefore(name
, imgSrc
, a
, o
, elem
) {
407 className
: "cheatButton",
408 innerHTML
: ("string" == typeof imgSrc
? `<img style="height: 30px; margin-right: 5px" src="${imgSrc}">` : imgSrc
|| "") + name
,
409 onclick
: () => k(r
.innerText
, a
, o
)
411 return h
.insertBefore(r
, elem
), r
.onclick
413 async
function k(e
, t
, a
) {
414 b
.innerHTML
= "", v
.firstChild
.innerText
= e
+ (a
? "" : " Cheats"), b
.append(v
);
415 for (let o
= 0; o
< t
.length
; o
++) {
427 className
: "scriptButton",
429 background
: "toggle" == n
? c
? "var(--enabledButton)" : "var(--disabledButton)" : "var(--defaultButton)"
432 className
: "cheatName",
435 if (u
.dataset
.description
= i
, u
.onclick
= (function({
439 (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))
440 }).bind(t
[o
]), s
?.length
)
441 for (let h
= 0; h
< s
.length
; h
++) {
452 w
= await ("function" == typeof g
? g
?.() : g
)
456 if ("options" == $ && w
?.length
) {
457 let k
= document
.createElement("select");
459 var t
= document
.createElement("option");
460 t
.value
= JSON
.stringify(e
?.value
|| e
), t
.innerHTML
= e
?.name
|| e
, k
.appendChild(t
)
462 } else if ("function" == $) {
463 let S
= document
.createElement("input");
464 S
.classList
.add("cheatInput"), S
.placeholder
= m
, S
.style
.textAlign
= "center";
465 let x
= (S
.readOnly
= !0, !1);
466 S
.onclick
= async () => {
467 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))
469 } 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
)
473 b
.appendChild(t
[o
].element
)
476 document
.body
.appendChild(_
);
480 description
: "Toggles auto answer on",
485 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
497 } = Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
500 "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])
505 name
: "Highlight Answers",
506 description
: "Toggles highlight answers on",
511 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
517 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
518 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
519 }())[1].children
[0]._owner
;
520 [...document
.querySelectorAll('[class*="answerContainer"]')].forEach((a
, o
) => {
521 (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)"
526 name
: "Subtle Highlight Answers",
527 description
: "Toggles subtle highlight answers on",
532 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
538 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
539 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
540 }())[1].children
[0]._owner
;
541 [...document
.querySelectorAll('[class*="answerContainer"]')].forEach((a
, o
) => {
542 (e
.question
|| t
.client
.question
).correctAnswers
.includes((e
.question
|| t
.client
.question
).answers
[o
]) && (a
.style
.boxShadow
= "unset")
547 name
: "Freeze Leaderboard",
548 description
: "Freezes the leaderboard on the host's screen",
553 var e
= Object
.values(function e(t
= document
.querySelector("#app")) {
554 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
555 }())[1].children
[0]._owner
.stateNode
;
556 if (this.enabled
) this.enabled
= !1, clearInterval(this.data
), this.data
= null, e
.props
.liveGameController
.removeVal(`c/${e.props.client.name}/tat`);
560 e
.props
.liveGameController
.setVal({
561 path
: `c/${e.props.client.name}/tat/Freeze`,
565 this.data
= setInterval(t
, 25)
569 name
: "Percent Auto Answer",
570 description
: "Answers questions correctly or incorrectly depending on the goal grade given (Disable and re-enable to update goal)",
572 name
: "Target Grade",
579 if (this.enabled
) this.enabled
= !1, clearInterval(this.data
), this.data
= null;
584 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
585 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
586 }())[1].children
[0]._owner
;
587 this.data
= setInterval(e
=> {
589 let a
= t
.state
.question
|| t
.props
.client
.question
;
590 if ("feedback" == t
.state
.stage
|| t
.state
.feedback
) return document
.querySelector('[class*="feedback"], [id*="feedback"]')?.firstChild
?.click
?.();
591 if (document
.querySelector("[class*='answerContainer']") || document
.querySelector("[class*='typingAnswerWrapper']")) {
594 for (let i
in t
.corrects
) o
+= t
.corrects
[i
];
595 for (let n
in t
.incorrects
) r
+= t
.incorrects
[n
];
597 let s
= 0 == r
|| Math
.abs(o
/ (r
+ 1) - e
) >= Math
.abs((o
+ 1) / (r
+ 1) - e
);
598 if ("typing" != t
.state
.question
.qType
) {
599 let l
= document
.querySelectorAll("[class*='answerContainer']");
600 for (let c
= 0; c
< l
.length
; c
++) {
601 let d
= a
.correctAnswers
.includes(a
.answers
[c
]);
602 if (s
&& d
|| !s
&& !d
) return l
[c
]?.click
?.()
605 } else Object
.values(document
.querySelector("[class*='typingAnswerWrapper']"))[1].children
._owner
.stateNode
.sendAnswer(s
? a
.answers
[0] : Math
.random().toString(36).substring(2))
608 }, 100, (e
?? 100) / 100)
612 name
: "Use any Banner",
613 description
: "Unlocked all banners",
617 options
: Object
.entries({
620 "Tech Chip": "techChip",
621 Shamrocks
: "shamrocks",
622 "Orange Ice Pop": "orangeIcePop",
625 "Falling Blocks": "fallingBlocks",
626 Racetrack
: "racetrack",
627 "Football Field": "footballField",
628 "Ice Cream Sandwich": "iceCreamSandwich",
629 "Winter Landscape": "winterLandscape",
631 "Music Class": "musicClass",
632 "Science Class": "scienceClass",
633 "Art Class": "artClass",
634 Clockwork
: "clockwork",
635 "Hockey Rink": "hockeyRink",
636 "Outer Space": "outerSpace",
637 "Soccer Field": "soccerField",
639 "Toaster Pastry": "toasterPastry",
640 "Fish Tank": "fishTank",
644 "Spooky Cat": "spookyCat",
645 "Spooky Window": "spookyWindow",
646 Frankenstein
: "frankenstein",
651 Pumpkins
: "pumpkins",
652 "Christmas Tree": "christmasTree",
653 Chalkboard
: "chalkboard",
654 Balloons
: "balloons",
655 Skateboard
: "skateboard",
658 "Pirate Map": "pirateMap",
660 "Road Sign": "roadSign",
661 "Corn Dog": "cornDog",
663 "Chili Pepper": "chiliPepper",
664 "Love Letter": "loveLetter",
666 "Winter Train": "winterTrain",
667 "Winter Drive": "winterDrive",
668 Workbench
: "workbench",
670 Chocolate
: "chocolate",
671 "Fall Picnic": "fallPicnic",
672 Bookshelf
: "bookshelf",
673 "Easter Pattern": "easterPattern",
675 "Easter Field": "easterField",
678 "Gummy Worm": "gummyWorm",
679 "Basketball Court": "basketballCourt",
680 "Flying Kite": "flyingKite",
682 "Japanese Garden": "japaneseGarden",
683 Sandwich
: "sandwich",
685 "Ball Pit": "ballPit",
686 "Xylophone": "xylophone",
687 "Holiday Lights": "holidayLights",
688 "Ice Cream Truck": "iceCreamTruck",
689 "Holiday Gift Wrap": "holidayGiftWrap",
690 "Winter Sweater": "winterSweater",
691 "Holiday Ornaments": "holidayOrnaments",
692 Watermelon
: "watermelon",
693 Baguette
: "baguette",
694 Rollerblades
: "rollerblades",
695 Surfboard
: "surfboard",
699 Lightning
: "lightning",
700 Baseball
: "baseball",
701 "Shamrock Coins": "shamrockCoins",
702 "End Of The Rainbow": "endRainbow",
703 "Easter Field": "easterField",
707 "Alphabet Soup": "alphabetSoup"
708 }).map(([e
, t
]) => ({
714 var t
= document
.createElement("iframe");
717 return Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
719 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({
720 path
: "c/" + a().stateNode
.props
.client
.name
+ "/bg",
725 name
: "Spam Buy Blooks",
726 description
: "Opens a box an amount of times",
730 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
), [])
735 name
: "Show Unlocks",
738 name
: "Show Unlocks",
741 name
: "Don't Show Unlocks",
745 run
: async
function(e
, t
, a
) {
746 let o
= document
.createElement("iframe");
747 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();
750 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
751 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
752 }())[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
];
753 if (!s
) return alert("I couldn't find that box!");
754 let l
= Math
.min(Math
.floor(r
.state
.tokens
/ s
), t
);
755 if (0 == l
) return alert("You do not have enough tokens!");
758 for (let p
= 0; p
< l
; p
++) {
759 await r
.buyPack(!0, n
), c
[r
.state
.unlockedBlook
] ||= 0, c
[r
.state
.unlockedBlook
]++;
761 d
+= Date
.now() - u
, r
.setState({
767 }), clearTimeout(r
.canOpenTimeout
)
769 await
new Promise(e
=> setTimeout(e
)), alert(`(${Date.now()-d}ms) Results: ${Object.entries(c).map(([e,t])=>` ${e} ${t}`).join(` `)}`)
773 description: "Floods a game with a number of fake accounts",
783 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 => ({
790 options: Object.entries({
793 "Tech Chip": "techChip",
794 Shamrocks: "shamrocks",
795 "Orange Ice Pop": "orangeIcePop",
798 "Falling Blocks": "fallingBlocks",
799 Racetrack: "racetrack",
800 "Football Field": "footballField",
801 "Ice Cream Sandwich": "iceCreamSandwich",
802 "Winter Landscape": "winterLandscape",
804 "Music Class": "musicClass",
805 "Science Class": "scienceClass",
806 "Art Class": "artClass",
807 Clockwork: "clockwork",
808 "Hockey Rink": "hockeyRink",
809 "Outer Space": "outerSpace",
810 "Soccer Field": "soccerField",
812 "Toaster Pastry": "toasterPastry",
813 "Fish Tank": "fishTank",
817 "Spooky Cat": "spookyCat",
818 "Spooky Window": "spookyWindow",
819 Frankenstein: "frankenstein",
824 Pumpkins: "pumpkins",
825 "Christmas Tree": "christmasTree",
826 Chalkboard: "chalkboard",
827 Balloons: "balloons",
828 Skateboard: "skateboard",
831 "Pirate Map": "pirateMap",
833 "Road Sign": "roadSign",
834 "Corn Dog": "cornDog",
836 "Chili Pepper": "chiliPepper",
837 "Love Letter": "loveLetter",
839 "Winter Train": "winterTrain",
840 "Winter Drive": "winterDrive",
841 Workbench: "workbench",
843 Chocolate: "chocolate",
844 "Fall Picnic": "fallPicnic",
845 Bookshelf: "bookshelf",
846 "Easter Pattern": "easterPattern",
848 "Easter Field": "easterField",
851 "Gummy Worm": "gummyWorm",
852 "Basketball Court": "basketballCourt",
853 "Flying Kite": "flyingKite",
855 "Japanese Garden": "japaneseGarden",
856 Sandwich: "sandwich",
858 "Ball Pit": "ballPit",
859 "Xylophone": "xylophone",
860 "Holiday Lights": "holidayLights",
861 "Ice Cream Truck": "iceCreamTruck",
862 "Holiday Gift Wrap": "holidayGiftWrap",
863 "Winter Sweater": "winterSweater",
864 "Holiday Ornaments": "holidayOrnaments",
865 Watermelon: "watermelon",
866 Baguette: "baguette",
867 Rollerblades: "rollerblades",
868 Surfboard: "surfboard",
872 Lightning: "lightning",
873 Baseball: "baseball",
874 "Shamrock Coins": "shamrockCoins",
875 "End Of The Rainbow": "endRainbow",
876 "Easter Field": "easterField",
880 "Alphabet Soup": "alphabetSoup"
881 }).map(([e, t]) => ({
886 run: async function(e, t, a, o) {
887 let r = document.createElement("iframe");
890 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode
892 document.body.append(r), window.prompt = r.contentWindow.prompt.bind(window), window.alert = r.contentWindow.alert.bind(window), r.remove();
896 if (!i().props.liveGameController._liveApp) {
897 alert("You must be in a game to use the flooder!");
900 var s = i().props.liveGameController._liveApp.firebase;
901 async function l(e, t) {
902 let r = await fetch("https://fb.blooket.com/c/firebase/join", {
903 body: JSON.stringify({
907 credentials: "include",
909 }).then(e => e.json());
911 let i = s.initializeApp({
912 apiKey: "AIzaSyCA-cTOnX19f6LFnDVVsHXya3k6ByP_MnU",
913 authDomain: "blooket-2020.firebaseapp.com",
914 projectId: "blooket-2020",
915 storageBucket: "blooket-2020.appspot.com",
916 messagingSenderId: "741533559105",
917 appId: "1:741533559105:web:b8cbb10e6123f2913519c0",
918 measurementId: "G-S3H5NGN10Z",
919 databaseURL: r.fbShardURL
921 await i.auth().signInWithCustomToken(r.fbToken);
922 let n = i.database();
923 await n.ref(`${e}
/c
/${t}
`).set({
926 }), C.alerts[0].addLog(`Bot ${t} joined
!`)
927 } else alert("Connect error: " + r.msg)
930 if (!i().props.liveGameController._liveApp) {
931 alert("You must be in a game for the flooder to work!");
934 var a, o = i().props.liveGameController._liveGameCode,
937 alert("You must use a valid number!");
940 if (!n.randomNames) var s = e;
941 for (var c = 0; c < r; c++) await l(o, a = n.randomNames ? d(15) : s + Math.floor(4e3 * Math.random()))
945 for (var t = "", a = 0; a < e; a++) t += String.fromCharCode(65 + Math.floor(25 * Math.random()));
951 name: "Simulate Unlock",
952 description: "Simulates unlocking a certian blook",
954 name: "Blook (Case Sensitive)"
956 run: (unlockedBlook) => {
957 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
965 setTimeout(() => stateNode.setState({
970 name: "Simulate Pack",
971 description: "Simulates unlocking a pack",
975 options: () => [...document.querySelector("[class*=packsWrapper]")?.children]?.map(e => e.children[0].children[0].alt)
977 run: async (packName) => {
978 let i = document.createElement('iframe');
979 document.body.append(i);
980 const alert = i.contentWindow.alert.bind(window);
982 if(window.location.pathname!=="/market"){alert("You must be on the market page to run this cheat!");return;}
983 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
984 const getProbs = (pack) => (new Promise(res => {
985 if (!Array.prototype.map2) {
986 Array.prototype.map2 = Array.prototype.map;
988 Array.prototype.map = function () {
989 if (typeof this[0]?.[1] == "number") {
991 Array.prototype.map = Array.prototype.map2;
993 return Array.prototype.map2.apply(this, arguments);
995 var a = new(stateNode.constructor)();
996 a.state.currentPack = pack;
1000 async function pickRandom(pack) {
1001 let probs = (await getProbs(pack));
1002 const choice = pickW(probs.map(e => e[1]));
1003 return probs[choice];
1008 const rand = Math.floor(Math.random() * a.reduce((a, b) => a + b, 0));
1009 a.forEach(e => (sum.push(v), v += e));
1010 return sum.map(e => rand < e).findLastIndex(e => e ? 0 : 1);
1012 stateNode.setState({
1015 unlockedBlook: (await pickRandom(packName))[0],
1019 setTimeout(() => stateNode.setState({
1024 name: "Bypass Filter",
1025 description: "Bypasses the name filter",
1034 for (var a = t.split(""), o = "", r = 0; r < a.length; r++) o += "\xad" + a[r];
1036 }(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)
1039 name: "Change Name Ingame",
1040 description: "Changes your name ingame",
1045 run: (function(newname) {
1047 const reactHandler = (e => Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode);
1048 let i = document.createElement('iframe');
1049 document.body.append(i);
1050 let alert = i.contentWindow.alert.bind(window);
1053 async function genToken(name) {
1054 const res = await fetch("https://fb.blooket.com/c/firebase/join", {
1055 body: JSON.stringify({
1056 id: reactHandler().props.client.hostId,
1060 "Content-Type": "application/json"
1063 credentials: "include"
1064 }).then(e => e.json());
1066 alert("Error: " + res.msg);
1072 const oldname = reactHandler().props.client.name;
1073 reactHandler().props.client.name = newname;
1074 const olddata = await reactHandler().props.liveGameController.getDatabaseVal(`c
/${oldname}
`);
1075 await reactHandler().props.liveGameController.removeVal(`c
/${oldname}
`);
1076 const token = await genToken(newname);
1080 await reactHandler().props.liveGameController._liveApp.auth().signInWithCustomToken(token);
1081 reactHandler().props.liveGameController._liveApp.auth().onAuthStateChanged(e => {
1082 if (e.uid.split(":")[1] === newname) {
1083 reactHandler().props.liveGameController.setVal({
1084 path: `c
/${newname}
`,
1089 reactHandler().setState({});
1093 name: "Use Banner IDs",
1094 description: "Enter Banner ID to use Banner",
1100 var t = document.createElement("iframe");
1103 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
1105 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({
1106 path: "c/" + a().stateNode.props.client.name + "/bg",
1111 name: "Change Blook Ingame",
1112 description: "Changes your blook",
1119 } = webpackJsonp.push([
1129 return Object.keys(Object.values(e.c).find(e => e.exports.a?.Chick && e.exports.a?.Elephant).exports.a)
1135 } = Object.values(function e(t = document.querySelector("body>div")) {
1136 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1137 }())[1].children[0]._owner.stateNode;
1138 t.client.blook = e, t.liveGameController.setVal({
1139 path: `c
/${t.client.name}/b
`,
1144 name: "Set Blook Ad Text",
1145 description: "Sets a load of text as your blook and floods teachers screen on lobby",
1151 let t = Object.values(function e(t = document.querySelector("body>div")) {
1152 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1153 }())[1].children[0]._owner.stateNode;
1154 if (!String.prototype.inc) {
1155 String.prototype.inc = String.prototype.includes;
1157 String.prototype.includes = function(a) {
1158 if (a == "#" && this.length > 30) {
1161 return String.prototype.inc.apply(this, arguments);
1163 let repeatedText = Array(500).fill(e).join(' ');
1164 if (!t.state.unlocks) {
1165 t.client.blook = repeatedText;
1167 t.props.liveGameController.setVal({
1168 path: `c
/${t.props.client.name}/b
`,
1173 name: "Set Blook Ad Text Ingame",
1174 description: "Sets a load of text as your blook",
1181 } = webpackJsonp.push([
1191 return Object.keys(Object.values(e.c).find(e => e.exports.a?.Chick && e.exports.a?.Elephant).exports.a);
1197 } = Object.values(function e(t = document.querySelector("body>div")) {
1198 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1199 }())[1].children[0]._owner.stateNode;
1201 let repeatedText = Array(500).fill(e).join(' ');
1202 t.client.blook = repeatedText;
1203 t.liveGameController.setVal({
1204 path: `c
/${t.client.name}/b
`,
1209 name: "Auto Answer",
1210 description: "Click the correct answer for you",
1223 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
1225 "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])
1229 name: "Highlight Answers",
1230 description: "Colors answers to be red or green highlighting the correct ones",
1237 } = Object.values(function e(t = document.querySelector("body>div")) {
1238 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1239 }())[1].children[0]._owner;
1240 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
1241 (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)"
1245 name: "Subtle Highlight Answers",
1246 description: "Removes the shadow from correct answers",
1253 } = Object.values(function e(t = document.querySelector("body>div")) {
1254 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1255 }())[1].children[0]._owner;
1256 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
1257 (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) && (a.style.boxShadow = "unset")
1261 name: "Get Daily Rewards",
1262 description: "Gets max daily tokens and xp",
1263 run: async function() {
1264 let e = document.createElement("iframe");
1265 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), location.href.includes("play.blooket.com")) {
1268 } = await fetch("https://play.blooket.com/api/playersessions/solo", {
1269 body: JSON.stringify({
1270 gameMode: "Factory",
1271 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(107 * Math.random())]
1273 credentials: "include",
1275 }).then(e => e.json());
1276 await fetch("https://play.blooket.com/api/playersessions/landings", {
1277 body: JSON.stringify({
1280 credentials: "include",
1282 }); await fetch("https://play.blooket.com/api/playersessions/questions?t=" + t, {
1283 credentials: "include"
1285 await fetch("https://play.blooket.com/api/users/factorystats", {
1286 body: JSON.stringify({
1289 cash: Math.floor(9e7 * Math.random()) + 1e7,
1290 correctAnswers: Math.floor(500 * Math.random()) + 500,
1291 upgrades: Math.floor(300 * Math.random()) + 300,
1297 credentials: "include",
1299 }), fetch("https://play.blooket.com/api/users/add-rewards", {
1300 body: JSON.stringify({
1306 credentials: "include",
1308 }).then(e => e.json()).then(({
1310 }) => alert(`Added max tokens and xp
, and got ${e} daily wheel tokens
!`)).catch(() => alert("There was an error when adding rewards."))
1311 } else alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")
1314 name: "Use any Blook",
1315 description: "Allows you to play as any blook.",
1318 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
1319 let i = document.createElement('iframe');
1320 document.body.append(i);
1321 const alert = i.contentWindow.alert.bind(window);
1323 if (!(stateNode.state.unlocks || stateNode.state.blookData)) {
1324 alert("This must be run on the lobby or dashboard!");
1327 if (stateNode.state.blookData) {
1328 let oe = Object.entries;
1329 Object.entries = function(a) {
1332 Object.entries = oe;
1334 return oe.apply(this, arguments);
1338 function allBlooks(blooks) {
1340 stateNode.setState({
1341 blookData: Object.keys(blooks).reduce((a, b) => (a[b] = stateNode.state.blookData[b] || 1, a), {}),
1342 allSets: Object.values(blooks).reduce((a, b) => {
1343 return !a.includes(b.set) && a.push(b.set), a
1348 stateNode.setState({
1357 name: "Get More Blooks (Lobby)",
1358 description: "Gives you an abundance of custom blooks to try (Some images might be blocked)",
1360 const containerClass = '_blooksHolder_1bg6w_141';
1361 const targetContainer = document.querySelector(`.${containerClass}
`);
1363 if (targetContainer) {
1364 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"];
1365 imageUrls.forEach((url) => {
1366 const newBlookContainer = document.createElement('div');
1367 newBlookContainer.className = '_blookContainer_1bg6w_150';
1368 newBlookContainer.setAttribute('role', 'button');
1369 newBlookContainer.setAttribute('tabindex', '0');
1371 const innerDiv = document.createElement('div');
1372 innerDiv.className = '_blookContainer_12gbf_1 _blook_1bg6w_141';
1373 innerDiv.setAttribute('data-tooltip-id', 'blook-tooltip');
1375 const img = document.createElement('img');
1377 img.alt = 'Custom Blook';
1378 img.draggable = false;
1379 img.className = '_blook_12gbf_1';
1381 newBlookContainer.addEventListener('click', () => {
1382 setCustomBlookUrl(url);
1385 innerDiv.appendChild(img);
1386 newBlookContainer.appendChild(innerDiv);
1387 targetContainer.appendChild(newBlookContainer);
1390 console.error('Target container not found');
1393 function setCustomBlookUrl(url) {
1394 let t = Object.values(function e(t = document.querySelector("body>div")) {
1395 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1396 }())[1].children[0]._owner.stateNode;
1398 if (!t.state.unlocks) {
1399 t.props.client.blook = url;
1402 t.props.liveGameController.setVal({
1403 path: `c
/${t.props.client.name}/b
`,
1409 name: "Freeze Host",
1410 description: "Freezes the host's screen",
1412 const encodedChars = [
1413 '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
1416 const chars = encodedChars.map(char => eval(`"${char}"`));
1418 function makeLongText() {
1419 return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
1424 } = Object.values(function e(t = document.querySelector("body>div")) {
1425 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1426 }())[1].children[0]._owner.stateNode;
1428 let repeatedText = makeLongText();
1429 t.client.blook = repeatedText;
1430 t.liveGameController.setVal({
1431 path: `c
/${t.client.name}/b
`,
1436 name: "Remove all Taken Blooks",
1437 description: "Removes all taken blooks, allowing you to use any taken blook. Only works in lobby.",
1439 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
1440 stateNode.setState({
1445 stateNode.setState = function(a, b) {
1446 if (a?.takenBlooks) {
1449 stateNode.updater.enqueueSetState(stateNode, a, b, "setState");
1453 name: "Dynamic Player Count",
1454 description: "Updates the player count at the top of the screen in realtime as players join or leave.",
1457 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
1458 const ref = await stateNode.props.liveGameController.getDatabaseRef("")
1459 ref.on("value", e => {
1460 document.querySelector("div[class*='headerTextCenter']").innerHTML = `Player Count
| ${Object.keys(e.val()?.c)?.length}
/ ${stateNode.props.client.plus ? 300 : 60}
`;
1465 name: "Blooket Bot",
1466 description: "Opens Blooket Bot",
1468 function getGameCode() {
1469 const appDiv = document.querySelector('#app>div>div');
1471 const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
1472 return reactComponent?.stateNode?.props?.client?.hostId || null;
1477 const gameCode = getGameCode();
1478 const url = gameCode ? "https://blooketbot.glitch.me/?code=" + gameCode : "https://blooketbot.glitch.me/";
1479 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
1482 name: "Blooket Bot Unblocked",
1483 description: "Opens Blooket Bot",
1485 function getGameCode() {
1486 const appDiv = document.querySelector('#app>div>div');
1488 const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
1489 return reactComponent?.stateNode?.props?.client?.hostId || null;
1494 const gameCode = getGameCode();
1495 const url = gameCode ? "https://blooketbot.vercel.app/?code=" + gameCode : "https://blooketbot.vercel.app/";
1496 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
1499 name: "Blooket Homework Editor",
1500 description: "Opens Blooket Homework Editor",
1502 window.open("https://blookethwk.glitch.me/", "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes")
1506 description: "Chat with other people and execute commands",
1515 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
1519 document.addEventListener("keydown", function(e) {
1520 "`" === e.key && (a = !a, o.style.display = a ? "none
" : "block
")
1522 let o = document.createElement("div
");
1523 o.className = "chat
-box
", document.body.appendChild(o);
1524 let r = document.createElement("div
");
1525 r.className = "chat
-header
", r.textContent = "Chat
", o.appendChild(r);
1526 let i = document.createElement("div
");
1527 i.className = "chat
-body
", o.appendChild(i);
1528 let n = document.createElement("input
");
1531 let t = document.createElement("div
");
1532 t.textContent = e, i.appendChild(t)
1534 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
", () => {
1535 i.classList.toggle("open
")
1536 }), n.addEventListener("keydown
", function(a) {
1537 13 === a.keyCode && (function a(o) {
1538 var r, n, l, c, d, p, u, h = function e(t) {
1539 if ("/" !== t.charAt(0)) return !1;
1540 var a = t.split(" "),
1541 o = a[0].replace("/", "");
1542 return a.splice(0, 1), {
1547 if (h) switch (h.cmd) {
1549 r = h.args.join(" "), (n = webpackJsonp.push([
1558 ]).webpack("MDrD
").a)[r = Object.keys(n).find(e => r.toLocaleLowerCase() === e.toLocaleLowerCase())] ? (s("Setting blook to
" + r + "!"), e().stateNode.props.liveGameController.setVal({
1559 id: e().stateNode.props.client.hostId,
1560 path: "c
/" + e().stateNode.props.client.name,
1564 }), e().stateNode.props.client.blook = r) : s("No blook
with that name was found
!");
1570 Object.keys(e().stateNode.state).map(t => {
1571 var a = e().stateNode.state[t];
1572 if (null == a) return "N
/A
";
1573 Array.from(a) && "object
" == typeof a && (a = "[Array
]"), s(t + ":" + a)
1577 e().stateNode.props.liveGameController.getDatabaseVal("c
").then(e => {
1578 s("Current
Players(" + Object.keys(e).length + "): " + Object.keys(e).join(","))
1582 window.logsv = !window.logsv, s("SetVal log
set to
" + (window.logsv ? "Enabled
" : "Disabled
"));
1585 l = h.args, e().stateNode.props.liveGameController.setVal({
1586 path: "c
/" + e().stateNode.props.client.name + "/" + l[0],
1587 val: l.slice(1, l.length).join(" ")
1591 c = h.args, d = {}, c.forEach(e => {
1592 var t = e.split(":");
1593 Number.isNaN(parseInt(t[1])) || parseInt(t[1]).toString() !== t[1] || (t[1] = parseInt(t[1])), d[t[0]] = t[1]
1594 }), e().stateNode.setState(d), s("Set Successful
!");
1597 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
)");
1600 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
)");
1604 e().stateNode.props.liveGameController.getDatabaseVal("c
/" + a).then(e => {
1605 null != e ? s("Dump
: " + JSON.stringify(e)) : s("Player not found
!")
1607 }(h.args.join(" "));
1610 p = h.args.join(" "), (u = webpackJsonp.push([
1619 ]).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
!");
1622 s("Game Code
: " + e().stateNode.props.client.hostId);
1625 s("Unrecognized chat command
!")
1626 } else e().stateNode.props.liveGameController.setVal({
1627 id: e().stateNode.props.client.hostId,
1628 path: "c
/" + e().stateNode.props.client.name + "/msg",
1634 }(a.srcElement.value), a.srcElement.value = "")
1636 var l = e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
1639 window.logsv && s("Path
: " + e.path.split("/").splice(2, 2).join("/") + " Val
: " + ("object
" == typeof e.val ? JSON.stringify(e.val) : e.val))
1641 e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function(e, t, a, o) {
1643 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)
1644 }, window.logsv = !1;
1645 var d = e().stateNode.props.liveGameController.setVal;
1646 e().stateNode.props.liveGameController.setVal = function() {
1647 c.apply(this, arguments), d.apply(this, arguments)
1648 }, e().stateNode.props.liveGameController._liveApp.database().ref(`${e().stateNode.props.liveGameController._liveGameCode}`).on("value
", e => {}), s("Lobbychat successfully loaded
!"), o.style.wordWrap = "break-word
"
1651 name: "Pin Guesser
",
1652 description: "Brute forces combinations
for existing pins
",
1656 a = document.querySelector("div
[class*='titleText']");
1659 return Object.values(function e(t = document.querySelector("body
>div
")) {
1660 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1661 }())[1].children[0]._owner.stateNode
1663 let i = Math.floor(9e6 * Math.random()) + 1e6;
1664 fetch(`https://fb.blooket.com/c/firebase/id?id=${i}`, {
1666 credentials: "include
"
1667 }).then(e => e.json()).then(n => {
1668 !0 === n.success ? (console.log("Game found
:", i), a.innerHTML = "Game Found
!", o().setState({
1670 hostId: i.toString()
1672 })) : (console.log("No game found
for:", i), o().setState({
1674 hostId: i.toString()
1676 }), e++, a.innerHTML = "Guesses
: " + e, ++t > 15 ? (setTimeout(r, 1e3), t = 0) : r())
1684 description: "Crashes the host
's game",
1686 var e = Object.values(function e(t = document.querySelector("#app")) {
1687 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1688 }())[1].children[0]._owner.stateNode;
1689 e.props.liveGameController.setVal({
1690 path: `c/${e.props.client.name}/b/toString`,
1695 name: "Every Answer Correct",
1696 description: "Sets every answer to be correct",
1700 } = Object.values(function e(t = document.querySelector("body>div")) {
1701 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1702 }())[1].children[0]._owner;
1703 e.freeQuestions = e.freeQuestions?.map?.(e => ({
1705 correctAnswers: e.answers
1706 })), e.questions = e.questions?.map?.(e => ({
1708 correctAnswers: e.answers
1709 })), e.props.client.questions = e.props.client.questions.map(e => ({
1711 correctAnswers: e.answers
1715 name: "Remove Name Limit",
1716 description: "Sets the name limit to 120, which is the actual max name length limit",
1718 var e = document.createElement("iframe");
1719 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")
1722 name: "Remove Random Name",
1723 description: "Allows you to put a custom name",
1725 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
1730 }), document.querySelector('[class*="nameInput"]')?.focus?.()
1733 name: "Sell Cheap Duplicates",
1734 description: "Sells all of your uncommon to epic dupes (not legendaries+)",
1736 var e = document.createElement("iframe");
1737 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), window.confirm = e.contentWindow.confirm.bind(window), e.remove();
1738 let t = webpackJsonp.push([
1748 a = Object.values(t.c).find(e => e.exports?.a?.get).exports.a,
1749 o = Object.values(t.c).find(e => e.exports.a?.sellBlook).exports.a.sellBlook;
1750 a.get("https://dashboard.blooket.com/api/users").then(async ({
1755 if (e = Object.entries(e).filter(([e, t]) => 1 < t && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([
1764 ]).webpack("MDrD").a[e].rarity)), confirm("Are you sure you want to sell your uncommon to epic dupes?")) {
1765 var t, a, r = Date.now();
1766 for ([t, a] of e) await o({
1770 alert(`(${Date.now()-r}ms) Results: ` + e.map(([e, t]) => ` ${e} ` + (t - 1)).join(" "))
1772 }).catch(() => alert("There was an error user data!"))
1775 name: "Sell Duplicate Blooks",
1776 description: "Sell all duplicate blooks leaving you with 1 each",
1777 run: async function() {
1778 let e = document.createElement("iframe");
1779 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)) {
1780 if (confirm("Are you sure you want to sell your dupes? (Legendaries and rarer will not be sold)")) {
1783 } = Object.values(function e(t = document.querySelector("body>div")) {
1784 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1785 }())[1].children[0]._owner, a = Date.now(), o = "";
1786 for (let r in t.state.blookData)
1787 if (t.state.blookData[r] > 1) {
1790 numToSell: t.state.blookData[r] - 1
1791 }), ["Legendary", "Chroma", "Mystical"].includes(document.querySelector("[class*='highlightedRarity
']").innerText.trim())) continue;
1792 o += ` ${r} ${t.state.blookData[r]-1} `, await t.sellBlook({
1795 } alert(`(${Date.now()-a}ms) Results: ${o.trim()}`)
1797 } else alert("This can only be ran in the Blooks page.")
1802 description: "Shows you what's under each chest during a heist
",
1808 this.enabled = false;
1809 clearInterval(this.data);
1811 Array.prototype.forEach.call(document.querySelectorAll(".chestESP
"), x => x.remove());
1813 this.enabled = true;
1814 this.data = setInterval(() => {
1815 const cheat = (async () => {
1818 } = Object.values((function react(r = document.querySelector("body
>div
")) {
1819 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope
>div
"))
1820 })())[1].children[0]._owner;
1821 if (stateNode.state.stage == "heist
") {
1822 const imgs = Array.prototype.map.call(Array.prototype.slice.call(document.querySelector("[class*=prizesList
]").children, 1, 4), (x) => x.querySelector("img
").src);
1823 const esp = Object.values(document.querySelector("[class*=modal
]"))[0].return.memoizedState.memoizedState;
1824 for (const e of document.querySelectorAll("[class*=boxContent
] > div
")) e.remove();
1825 const open = Object.values(document.querySelector("[class*=modal
]"))[0].return.memoizedState.next.next.memoizedState;
1826 Array.prototype.forEach.call(document.querySelector("[class*=chestsWrapper
]").children, (container, i) => {
1827 const box = container.firstChild.firstChild;
1828 if (open.includes(i)) return box.style.opacity = "";
1829 box.style.opacity = "0.5";
1830 let d = document.createElement("div
");
1831 d.innerHTML = "<img src
='" + imgs[2 - esp[i]] + "' style
='max-width: 75%; max-height: 75%'></img
>";
1832 d.className = "chestESP
";
1833 d.style.position = "absolute
";
1834 d.style.inset = "0";
1835 d.style.display = "grid
";
1836 d.style.placeItems = "center
";
1837 d.style.pointerEvents = "none
";
1838 container.onclick = () => {
1840 box.style.opacity = "";
1842 container.firstChild.prepend(d);
1851 name: "Crash
Host (Pirate
)",
1852 description: "Crashes the Host
's Game for Pirate's Voyage
",
1854 function reactHandler() {
1855 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
1858 function setv(args) {
1859 reactHandler().stateNode.props.liveGameController.setVal({
1860 path: "c
/" + reactHandler().stateNode.props.client.name + "/" + args[0],
1861 val: args.slice(1, args.length).join(" ")
1869 description: "Maxes out all islands and your boat
",
1873 } = Object.values(function e(t = document.querySelector("body
>div
")) {
1874 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1875 }())[1].children[0]._owner;
1877 islandLevels: Array(e.state.islandLevels.length).fill(5)
1878 }, e.updateBoatLevel)
1881 name: "Set Doubloons
",
1882 description: "Sets Doubloons
",
1888 let t = document.createElement("iframe
");
1889 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1892 } = Object.values(function e(t = document.querySelector("body
>div
")) {
1893 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1894 }())[1].children[0]._owner;
1897 }), a.props.liveGameController.setVal({
1898 path: `c/${a.props.client.name}/d`,
1903 name: "Start Heist
",
1904 description: "Starts a heist on someone
",
1911 } = Object.values(function e(t = document.querySelector("body
>div
")) {
1912 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1913 }())[1].children[0]._owner;
1914 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
1918 let t = document.createElement("iframe
");
1919 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1922 } = Object.values(function e(t = document.querySelector("body
>div
")) {
1923 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1924 }())[1].children[0]._owner;
1925 a.props.liveGameController.getDatabaseVal("c
", function(t) {
1926 let o = Object.entries(t || {}).reduce((e, [t, o]) => (t != a.props.client.name && e.push({
1931 if (0 === o.length) return a.questionsToAnswer = 1, void a.randomQ();
1936 } = o.find(t => t.name == e) || o.sort((e, t) => t.doubloons - e.doubloons)[0];
1943 prizeAmount: Math.max(1e3, n)
1948 name: "Swap Doubloons
",
1949 description: "Swaps Doubloons
with someone
",
1956 } = Object.values(function e(t = document.querySelector("body
>div
")) {
1957 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1958 }())[1].children[0]._owner;
1959 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
1962 run: async function(e) {
1963 let t = document.createElement("iframe
");
1964 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
1967 } = Object.values(function e(t = document.querySelector("body
>div
")) {
1968 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1969 }())[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];
1970 a.props.liveGameController.setVal({
1971 path: `c/${a.props.client.name}`,
1973 b: a.props.client.blook,
1975 tat: `${r[0]}:${r[1].d-a.state.doubloons}`
1982 name: "Take Doubloons
",
1983 description: "Takes Doubloons
from someone
",
1990 } = Object.values(function e(t = document.querySelector("body
>div
")) {
1991 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1992 }())[1].children[0]._owner;
1993 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
1996 run: async function(e) {
1997 let t = document.createElement("iframe
");
1998 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
2001 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2002 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2003 }())[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];
2005 doubloons: a.state.doubloons + r[1].d
2006 }), a.props.liveGameController.setVal({
2007 path: `c/${a.props.client.name}`,
2009 b: a.props.client.blook,
2011 tat: `${r[0]}:${r[1].d}`
2016 name: "Flood Alert Box
",
2017 description: "Makes the alert box filled
with text
",
2022 run: function(userInput) {
2023 function getReactOwner() {
2024 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2027 function repeatText(text, times) {
2028 return new Array(times).fill(text).join(" ");
2031 function setValForPlayer() {
2032 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c
/").then(data => {
2035 const playerName = Object.keys(data)[0];
2039 const id = "1,723,583,989,363";
2040 const repeatedText = repeatText(userInput, 1700);
2041 const finalText = `${id}${repeatedText}`;
2043 setv(['tat', `${playerName}:${finalText}`]);
2045 console.log("No text entered
. Operation cancelled
.");
2048 console.log("Player not found
!");
2053 function setv(args) {
2054 getReactOwner().stateNode.props.liveGameController.setVal({
2055 path: "c
/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
2056 val: args.slice(1, args.length).join(" ")
2063 name: "Send Ad Text
",
2064 description: "Sends a load
of text to another
player (This will override your blook
!)",
2071 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2072 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
2073 }())[1].children[0]._owner;
2074 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]));
2079 run: async function(player, e) {
2082 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2083 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
2084 }())[1].children[0]._owner.stateNode;
2086 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
2087 t2.client.blook = repeatedText;
2088 t2.liveGameController.setVal({
2089 path: `c/${t2.client.name}/b`,
2092 t2.liveGameController.setVal({
2093 path: `c/${t2.client.name}/tat`,
2094 val: `${player}:196`
2099 name: "Double Enemy XP
",
2100 description: "Doubles enemy XP drop value
",
2102 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
"))) {
2104 let a = t.classType.prototype.start;
2105 t.classType.prototype.start = function() {
2106 a.apply(this, arguments), this.val *= 2
2107 }, t.children.entries.forEach(e => e.val *= 2)
2111 name: "Half Enemy Speed
",
2112 description: "Makes enemies
move 2x slower
",
2114 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
"))) {
2116 let a = t.classType.prototype.start;
2117 t.classType.prototype.start = function() {
2118 a.apply(this, arguments), this.speed *= .5
2119 }, t.children.entries.forEach(e => e.speed *= .5)
2123 name: "Instant Kill
",
2124 description: "Sets all enemies health to
1",
2126 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
"))) {
2128 let a = t.classType.prototype.start;
2129 t.classType.prototype.start = function() {
2130 a.apply(this, arguments), this.hp = 1
2131 }, t.children.entries.forEach(e => e.hp = 1)
2135 name: "Invincibility
",
2136 description: "Makes you invincible
",
2138 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 = () => {}
2142 description: "Pulls all xp towards you
",
2144 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({
2153 name: "Max Current Abilities
",
2154 description: "Maxes out all your current abilities
",
2156 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2157 for (var [t, a] of Object.entries(e.state.abilities))
2158 for (let o = 0; o < 10 - a; o++) e.game.current.scene.scenes[0].game.events.emit("level up
", t, e.state.abilities[t]++);
2160 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
2165 description: "Skips to the next level
",
2167 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode,
2171 } = e.game.current.scene.scenes[0].physics.world.colliders._active.find(e => e.collideCallback?.toString().includes('emit("xp
"'));
2172 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)
2175 name: "Remove Obstacles
",
2176 description: "Removes all rocks and obstacles
",
2178 Object.values(document.querySelector("#app
> div
> div
"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => {
2180 e.gameObject.frame.texture.key.includes("obstacle
") && e.gameObject.destroy()
2185 name: "Kill Enemies
",
2186 description: "Kills all current enemies
",
2188 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))
2191 name: "Reset Health
",
2192 description: "Resets health and gives invincibility
for 3 seconds
",
2194 Object.values(document.querySelector("#app
> div
> div
"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].game.events._events.respawn.fn()
2197 name: "Crash
Host (Brawl
)",
2198 description: "Crashes the Host
's Game for Monster Brawl",
2200 function reactHandler() {
2201 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
2204 function setv(args) {
2205 reactHandler().stateNode.props.liveGameController.setVal({
2206 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2207 val: args.slice(1, args.length).join(" ")
2211 setv(['xp
/t
', 't
']);
2215 description: "Sets amount of XP",
2221 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2225 }), t.xp = e, t.totalXp = e, t.props?.liveGameController.setVal({
2226 path: "c/".concat(t.props.client.name),
2228 b: t.props.client.blook,
2235 description: "Sets your level",
2241 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2248 description: "Maxes out items in the shop (Only usable in the shop)",
2250 var e = document.createElement("iframe");
2251 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({
2252 items: Object.fromEntries(Object.entries(e.state.items).map(e => [e[0], 5]))
2256 name: "Remove Customers",
2257 description: "Skips the current customers (Not usable in the shop)",
2259 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2260 e.state.customers.forEach((t, a) => Object.keys(t).length && e.removeCustomer(a, !0))
2263 name: "Reset Abilities",
2264 description: "Resets used abilities in shop (Only usable in the shop)",
2266 var e = document.createElement("iframe");
2267 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({
2268 abilities: Object.fromEntries(Object.entries(e.state.abilities).map(e => [e[0], 5]))
2273 description: "Sets cafe cash",
2279 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2282 }), t.props.liveGameController.setVal({
2283 path: "c/" + t.props.client.name,
2285 b: t.props.client.blook,
2291 name: "Spam Attack Player",
2292 description: "Attacks the player to make the game unplayable",
2299 } = Object.values(function e(t = document.querySelector("body>div")) {
2300 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2301 }())[1].children[0]._owner;
2302 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2308 run: function(name) {
2310 this.enabled = false;
2311 clearInterval(this.data);
2314 this.enabled = true;
2316 function reactHandler() {
2317 return Object.values(document.querySelector('body div
[class*="_body"]'))[1].children[0]._owner;
2320 var action = name + ":inspect";
2322 function spamAction() {
2323 var handler = reactHandler();
2324 if (handler && handler.stateNode && handler.stateNode.props && handler.stateNode.props.liveGameController) {
2325 handler.stateNode.props.liveGameController.setVal({
2326 id: handler.stateNode.props.client.hostId,
2327 path: "c/" + handler.stateNode.props.client.name + "/tat",
2333 this.data = setInterval(spamAction, 50);
2337 name: "Attack Player",
2338 description: "Sends the player a health inspection",
2340 name: "Player's Name
",
2343 run: (function(targetPlayer) {
2344 function reactHandler() {
2345 return Object.values(document.querySelector('body div[class*="_body
"]'))[1].children[0]._owner;
2348 reactHandler().stateNode.props.liveGameController.setVal({
2349 id: reactHandler().stateNode.props.client.hostId,
2350 path: "c
/" + reactHandler().stateNode.props.client.name + "/tat
",
2351 val: targetPlayer + ":inspect
"
2356 description: "Makes a player pay tax
",
2358 name: "Player
's Name",
2361 run: function(playerName) {
2362 function reactHandler() {
2363 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
2366 function setv(args) {
2367 reactHandler().stateNode.props.liveGameController.setVal({
2368 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2369 val: args.slice(1, args.length).join(" ")
2373 function taxPlayer() {
2375 setv(['tat
', playerName + ':tax
']);
2377 console.log("No player name entered. Operation cancelled.");
2385 description: "Stocks all food to 99 (Not usable in the shop)",
2387 var e = document.createElement("iframe");
2388 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({
2389 foods: e.state.foods.map(e => ({
2399 description: "Shows what each choice will give you
",
2404 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
2407 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2408 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2409 }())[1].children[0]._owner, {
2411 } = e.state.choices[0], a = document.querySelector("[class^=styles__feedbackContainer___
]");
2412 if (a.children.length <= 4) {
2413 let o = document.createElement("div
");
2414 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)
2419 name: "Password ESP
",
2420 description: "Highlights the wrong passwords
",
2427 e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
2430 } = Object.values(function e(t = document.querySelector("#app
> div
> div
")) {
2431 return Object.values(t)[1]?.children?.[1]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2432 }())[1].children[1]._owner.stateNode;
2433 "hack
" === e.stage && Array.from(document.querySelectorAll('[role="button
"]._button_mrhfb_157')).forEach(t => {
2434 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 = "")
2438 console.error("An error occurred
:", t)
2442 name: "Always Triple
",
2443 description: "Always
get triple crypto
",
2448 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({
2453 blook: "Brainy Bot
",
2454 text: "Triple Crypto
"
2459 name: "Always Quintuple
",
2460 description: "Always
get quintuple crypto
",
2465 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({
2470 blook: "Ice Elemental
",
2471 text: "Quintuple Crypto
"
2476 name: "Always Hack
",
2477 description: "Always
get hack
",
2482 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({
2493 name: "Crash Password
",
2494 description: "Crashes other players when they attempt to hack you
",
2499 var e = Object.values(function e(t = document.querySelector("#app
")) {
2500 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2501 }())[1].children[0]._owner.stateNode;
2502 if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null, e.props.liveGameController.setVal({
2503 path: `c/${e.props.client.name}/p`,
2504 val: e.state?.password
2509 e.props.liveGameController.setVal({
2510 path: `c/${e.props.client.name}/p/toString`,
2514 this.data = setInterval(t, 25)
2518 name: "Set Freeze Password
",
2519 description: "Freezes other players when they attempt to hack you
",
2524 const encodedChars = [
2525 '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
2528 const chars = encodedChars.map(char => eval(`"${char}
"`));
2530 function makeLongText() {
2531 return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
2534 var t = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2538 clearInterval(this.data);
2543 t.props.liveGameController.setVal({
2544 path: "c
/".concat(t.props.client.name),
2546 b: t.props.client.blook,
2553 let lagFunction = () => {
2554 var e = makeLongText();
2558 t.props.liveGameController.setVal({
2559 path: "c
/".concat(t.props.client.name),
2561 b: t.props.client.blook,
2567 this.data = setInterval(lagFunction, 25);
2572 description: "Automatically performs the hack
for you
",
2579 e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
2580 if ("hack
" === ("hack
" === window.location.pathname.split("/")[2] && "hack
")) {
2584 } = Object.values(document.querySelector("#app
> div
> div
"))[1].children[1]._owner.stateNode.state;
2585 "hack
" === e && Array.from(document.querySelectorAll("div
")).filter(e => e.innerHTML === t)[0].click()
2589 console.error("An error occurred
:", t)
2593 name: "Set Host Screen Green
",
2594 description: "Makes the whole screen filled
with text
",
2599 var a = Object.values(function e(t = document.querySelector("#app
")) {
2600 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2601 }())[1].children[0]._owner.stateNode;
2605 clearInterval(this.data);
2607 a.props.liveGameController.setVal({
2608 path: `c/${a.props.client.name}/cr`,
2614 a.props.liveGameController.setVal({
2615 path: `c/${a.props.client.name}/cr`,
2616 val: `9999999999999999999999999999999999999999999999${new Array(999).fill("\u0e47".repeat(70)).join(" ")}`
2619 this.data = setInterval(t, 25);
2623 name: "Remove Hack
",
2624 description: "Removes an attacking hack
",
2626 Object.values(document.querySelector("#app
>div
>div
"))[1].children[0]._owner.stateNode.setState({
2631 name: "Crash
Host (Crypto
)",
2632 description: "Crashes the Host
's Game for Crypto Hack",
2634 function reactHandler() {
2635 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
2638 function setv(args) {
2639 reactHandler().stateNode.props.liveGameController.setVal({
2640 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2641 val: args.slice(1, args.length).join(" ")
2645 setv(['cr
/t
', 't
']);
2649 description: "Sets crypto",
2655 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2659 }), t.props.liveGameController.setVal({
2660 path: "c/" + t.props.client.name + "/cr",
2665 name: "Set Password",
2666 description: "Sets hacking password",
2668 name: "Custom Password",
2672 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2675 }), t.props.liveGameController.setVal({
2676 path: "c/" + t.props.client.name + "/p",
2681 name: "Set Host Screen Text",
2682 description: "Makes the whole screen filled with text",
2688 let t = document.createElement("iframe");
2689 document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
2690 var a = Object.values(function e(t = document.querySelector("#app")) {
2691 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2692 }())[1].children[0]._owner.stateNode;
2693 a.props.liveGameController.setVal({
2694 path: `c/${a.props.client.name}/cr`,
2695 val: `9999999999999999999999999999999999999999999999${new Array(999).fill(e).join(" ")}`
2699 name: "Steal Player's Crypto
",
2700 description: "Steals all
of someone
's crypto",
2705 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2706 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2710 let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2711 t.props.liveGameController.getDatabaseVal("c", a => {
2713 a && Object.keys(a).map(e => e.toLowerCase()).includes(e.toLowerCase()) && ([a, {
2715 }] = Object.entries(a).find(([t]) => t.toLowerCase() == e.toLowerCase()), t.setState({
2716 crypto: t.state.crypto + o,
2717 crypto2: t.state.crypto + o
2718 }), t.props.liveGameController.setVal({
2719 path: "c/".concat(t.props.client.name),
2721 b: t.props.client.blook,
2722 p: t.state.password,
2723 cr: t.state.crypto + o,
2730 name: "Get Player's Password
",
2731 description: "Shows the password
of any player
in an alert box
",
2736 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2737 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
2740 run: function(player) {
2741 let i = document.createElement('iframe');
2742 document.body.append(i);
2743 const alert = i.contentWindow.alert.bind(window);
2745 var t = Object.values(document.querySelector("#app
>div
>div
"))[1].children[0]._owner.stateNode;
2746 t.props.liveGameController.getDatabaseVal("c
", e => {
2747 alert(e?.[player]?.p);
2751 name: "Flood Alert Box
",
2752 description: "Makes the alert box filled
with text
",
2757 run: function(userInput) {
2758 function getReactOwner() {
2759 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2762 function repeatText(text, times) {
2763 return new Array(times).fill(text).join(" ");
2766 function setValForPlayer() {
2767 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c
/").then(data => {
2770 const playerName = Object.keys(data)[0];
2774 const id = "1,723,583,989,363";
2775 const repeatedText = repeatText(userInput, 1700);
2776 const finalText = `${id}${repeatedText}`;
2778 setv(['tat', `${playerName}:${finalText}`]);
2780 console.log("No text entered
. Operation cancelled
.");
2783 console.log("Player not found
!");
2788 function setv(args) {
2789 getReactOwner().stateNode.props.liveGameController.setVal({
2790 path: "c
/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
2791 val: args.slice(1, args.length).join(" ")
2798 name: "Send Ad Text
",
2799 description: "Sends a load
of text to another
player (This will override your blook
!)",
2806 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2807 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
2808 }())[1].children[0]._owner;
2809 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]));
2814 run: async function(player, e) {
2817 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2818 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
2819 }())[1].children[0]._owner.stateNode;
2821 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
2822 t2.client.blook = repeatedText;
2823 t2.liveGameController.setVal({
2824 path: `c/${t2.client.name}/b`,
2827 t2.liveGameController.setVal({
2828 path: `c/${t2.client.name}/tat`,
2829 val: `${player}:196`
2835 description: "Shuffles around towers
",
2837 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode,
2839 eventName: "Earthquake
",
2843 icon: "fas fa
-mountain
",
2844 desc: "All
of your towers
get mixed up
",
2849 }, () => e.eventTimeout = setTimeout(() => e.setState({
2852 }), 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 && {
2855 })).filter(Boolean).sort(() => .5 - Math.random()));
2856 e.towers.forEach(a => {
2861 a.move(o, r, e.tileSize), e.tiles[r][o] = 3
2865 name: "Max Tower Stats
",
2866 description: "Makes all placed towers overpowered
",
2868 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.towers.forEach(e => {
2869 e.range = 100, e.fullCd = e.cd = 0, e.damage = 1e6
2873 name: "Remove Ducks
",
2874 description: "Removes ducks
",
2879 } = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2885 name: "Place Blooks Anywhere
",
2886 description: "Be able to place your blooks anywhere
",
2888 for (var i = 0; i < 10; i++) {
2889 Object.values(document.querySelector("#app
> div
> div
"))[1].children[1]._owner.stateNode.tiles[i] = Array(10).fill(0);
2893 name: "Remove Enemies
",
2894 description: "Removes all the enemies
",
2896 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2897 e.enemies = e.futureEnemies = []
2900 name: "Remove Obstacles
",
2901 description: "Lets you place towers anywhere
",
2903 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2904 e.tiles = e.tiles.map(e => e.fill(0))
2908 description: "Sets damage
",
2914 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.dmg = e
2918 description: "Sets the current round
",
2924 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
2930 description: "Sets the amount
of tokens you have
",
2936 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
2942 name: "Max Tower Stats
",
2943 description: "Makes all placed towers overpowered
",
2945 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.state.towers.forEach(e => {
2946 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)
2947 for (let t in e.stats.auraBuffs) e.stats.auraBuffs[t] *= 100
2951 name: "Kill Enemies
",
2952 description: "Kills all the enemies
",
2954 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2955 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))
2958 name: "Crash
Host (Defense
2)",
2959 description: "Crashes the Host
's Game for Tower Defense 2 (May take a few tries)",
2961 function reactHandler() {
2962 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
2965 function setv(args) {
2966 reactHandler().stateNode.props.liveGameController.setVal({
2967 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2968 val: args.slice(1, args.length).join(" ")
2976 description: "Sets coins",
2982 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2988 description: "Sets the amount of health you have",
2994 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3000 description: "Sets the current round",
3006 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3012 name: "Auto Choose",
3013 description: "Automatically choose the best fossil when excavating",
3019 this.enabled = false;
3020 clearInterval(this.data);
3023 this.enabled = true;
3024 this.data = setInterval(() => {
3025 const cheat = (async () => {
3026 function rand(e, t) {
3028 while (s.length < t) {
3029 const i = Math.random();
3032 for (let o = 0; o < e.length; o++) {
3039 g && !s.includes(g) && s.push(g);
3047 } = Object.values((function react(r = document.querySelector("body>div")) {
3048 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
3049 })())[1].children[0]._owner;
3051 if (stateNode.state.stage === "excavate") {
3052 stateNode.state.choices.length || (stateNode.state.choices = rand([{
3068 blook: "Dino Fossil"
3074 blook: "Stegosaurus"
3080 blook: "Velociraptor"
3086 blook: "Brontosaurus"
3092 blook: "Triceratops"
3098 blook: "Tyrannosaurus Rex"
3114 for (let i = 0; i < stateNode.state.choices.length; i++) {
3118 } = stateNode.state.choices[i];
3119 const value = (type == "fossil" ? stateNode.state.fossils + val * stateNode.state.fossilMult : stateNode.state.fossils * val) || 0;
3120 if (value <= max && type != "mult") continue;
3125 document.querySelector('div
[class*=rockRow
] > div
[role
="button"]:nth
-child(' + index + ')').click();
3135 description: "Shows what is under the rocks",
3140 let e = ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"],
3143 for (; t > 0;) a = e[t % parseInt("10")] + a, t = ~~(t / 10);
3147 let a = e.toString();
3149 let o = ["", "K", "M", "B", "T"],
3150 r = ~~((digits(e) - 1) / 3);
3153 for (let n = 3; n >= 1; n--) {
3154 i = parseFloat((0 !== r ? e / 1e3 ** r : e).toPrecision(n)).toString();
3155 let s = i.replace(/[^a-zA-Z 0-9]+/g, "");
3156 if (s.length <= 3) break
3158 Number(i) % 1 != 0 && (i = Number(i).toFixed(1)), a = i + o[r]
3162 for (; l >= 100;) l = Math.floor(l / 10), c += 1;
3163 a = `${l/10} \xd7 10${t(c+1)}`
3168 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
3171 } = Object.values(function e(t = document.querySelector("body>div")) {
3172 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3173 }())[1].children[0]._owner, t = [...document.querySelector('[class*="rockButton"]').parentElement.children];
3174 t.every(e => e.querySelector("div")) || e.setState({
3189 blook: "Dino Fossil"
3194 blook: "Stegosaurus"
3199 blook: "Velociraptor"
3204 blook: "Brontosaurus"
3209 blook: "Triceratops"
3214 blook: "Tyrannosaurus Rex"
3223 }].sort(() => .5 - Math.random()).slice(0, 3)
3225 t.forEach((t, o) => {
3226 let r = e.state.choices[o];
3227 t.querySelector("div") && t.querySelector("div").remove();
3228 let i = document.createElement("div");
3229 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)
3235 name: "Set Fossils",
3236 description: "Sets the amount of fossils you have",
3242 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3245 }), t.props.liveGameController.setVal({
3246 path: "c/" + t.props.client.name,
3248 b: t.props.client.blook,
3250 ic: t.state.isCheating
3255 name: "Set Multiplier",
3256 description: "Sets fossil multiplier",
3262 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3267 name: "Crash Host (Dino)",
3268 description: "Crashes the Host's Game
for Deceptive Dinos
",
3270 function reactHandler() {
3271 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
3274 function setv(args) {
3275 reactHandler().stateNode.props.liveGameController.setVal({
3276 path: "c
/" + reactHandler().stateNode.props.client.name + "/" + args[0],
3277 val: args.slice(1, args.length).join(" ")
3284 name: "Stop Cheating
",
3285 description: "Undoes cheating so that you can
't be caught",
3287 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3290 }), e.props.liveGameController.setVal({
3291 path: `c/${e.props.client.name}/ic`,
3298 description: "Fills your deck with every maxed out card and artifact (Only works on towers page)",
3300 let e = document.createElement("iframe");
3301 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/map" == window.location.pathname) {
3304 } = Object.values(function e(t = document.querySelector("body>div")) {
3305 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3306 }())[1].children[0]._owner;
3307 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 => {
3308 let [t, a] = e.split(",");
3318 t.props.addTowerNode()
3323 } else alert("You need to be on the map to run
this cheat
!")
3327 description: "Maxes out all the cards
in your deck
",
3329 var e = document.createElement("iframe
");
3330 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 => {
3331 e.strength = 20, e.charisma = 20, e.wisdom = 20
3332 }) : alert("You need to be on the map to run
this cheat
!")
3336 description: "Fills the player
's health",
3338 var e = document.createElement("iframe");
3339 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({
3341 }) : alert("You need to be in battle to run this cheat!")
3344 name: "Max Card Stats",
3345 description: "Maxes out player's current
card (Only works on attribute select page
)",
3347 var e = document.createElement("iframe
"),
3348 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;
3349 "select
" !== e.state.phase ? alert("You must be on the attribute selection page
!") : e.setState({
3359 name: "Min Enemy Stats
",
3360 description: "Makes the enemy card stats all
0 (Only works on attribute select page
)",
3362 var e = document.createElement("iframe
"),
3363 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;
3364 "select
" !== e.state.phase ? alert("You must be on the attribute selection page
!") : e.setState({
3366 ...e.state.enemyCard,
3375 description: "Try
's to set amount of tower coins you have",
3381 var t = document.createElement("iframe");
3382 if (document.body.append(t), window.alert = t.contentWindow.prompt.bind(window), t.remove(), "/tower/battle" == window.location.pathname) {
3383 var t = parseInt("0" + alert("How many coins would you like?")),
3384 a = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3386 a.props.setTowerCoins(t)
3388 } else alert("You need to be in battle to run this cheat!")
3392 description: "Sets your streak to the desired amount",
3398 var t = document.createElement("iframe");
3399 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({
3402 }) : alert("You need to be in battle to run this cheat!")
3406 name: "Choose Blook",
3407 description: "Gives you a blook",
3414 class: "\uD83C\uDF3D",
3416 cash: [3, 7, 65, 400, 2500],
3417 time: [1, 1, 1, 1, 1],
3418 price: [300, 3e3, 3e4, 2e5]
3422 class: "\uD83C\uDF3D",
3424 cash: [10, 40, 200, 1400, 1e4],
3425 time: [5, 4, 3, 2, 1],
3426 price: [570, 4e3, 5e4, 8e5]
3430 class: "\uD83C\uDF3D",
3432 cash: [25, 75, 1500, 25e3, 25e4],
3433 time: [15, 10, 10, 10, 5],
3434 price: [500, 9500, 16e4, 4e6]
3438 class: "\uD83C\uDF3D",
3440 cash: [4, 24, 200, 3e3, 4e4],
3441 time: [3, 3, 3, 3, 3],
3442 price: [450, 4200, 7e4, 11e5]
3446 class: "\uD83C\uDF3D",
3448 cash: [5, 28, 200, 1300, 12e3],
3449 time: [3, 3, 2, 2, 2],
3450 price: [500, 6400, 45e3, 5e5]
3454 class: "\uD83C\uDF3D",
3456 cash: [5, 20, 270, 1800, 15e3],
3457 time: [2, 2, 2, 2, 2],
3458 price: [550, 8200, 65e3, 6e5]
3462 class: "\uD83C\uDF3D",
3464 cash: [20, 50, 1300, 8e3, 8e4],
3465 time: [7, 7, 7, 7, 5],
3466 price: [400, 11e3, 8e4, 13e5]
3470 class: "\uD83C\uDF3D",
3472 cash: [6, 25, 250, 1500, 11e3],
3473 time: [3, 3, 3, 2, 2],
3474 price: [500, 5e3, 5e4, 43e4]
3478 class: "\uD83D\uDC3E",
3480 cash: [5, 18, 170, 1700, 13e3],
3481 time: [2, 2, 2, 2, 2],
3482 price: [480, 5500, 6e4, 5e5]
3486 class: "\uD83D\uDC3E",
3488 cash: [7, 25, 220, 1900, 9e3],
3489 time: [3, 3, 2, 2, 1],
3490 price: [460, 6600, 7e4, 73e4]
3494 class: "\uD83D\uDC3E",
3496 cash: [5, 40, 350, 3500, 35e3],
3497 time: [3, 3, 3, 3, 3],
3498 price: [750, 7200, 84e3, 95e4]
3502 class: "\uD83D\uDC3E",
3504 cash: [3, 18, 185, 800, 7e3],
3505 time: [2, 2, 2, 1, 1],
3506 price: [500, 5800, 56e3, 55e4]
3510 class: "\uD83D\uDC3E",
3512 cash: [10, 45, 450, 4500, 45e3],
3513 time: [4, 4, 4, 4, 4],
3514 price: [650, 6500, 8e4, 93e4]
3518 class: "\uD83D\uDC3E",
3520 cash: [23, 120, 1400, 15e3, 17e4],
3521 time: [10, 10, 10, 10, 10],
3522 price: [700, 8500, 11e4, 13e5]
3526 class: "\uD83D\uDC3E",
3528 cash: [4, 10, 75, 500, 3e3],
3529 time: [1, 1, 1, 1, 1],
3530 price: [450, 4e3, 35e3, 25e4]
3534 class: "\uD83D\uDC3E",
3536 cash: [4, 8, 60, 400, 2e3],
3537 time: [1, 1, 1, 1, 1],
3538 price: [350, 3500, 26e3, 17e4]
3542 class: "\uD83C\uDF32",
3544 cash: [12, 70, 550, 4500, 1e5],
3545 time: [7, 7, 6, 5, 5],
3546 price: [550, 5500, 63e3, 16e5]
3550 class: "\uD83C\uDF32",
3552 cash: [8, 45, 400, 3500, 26e3],
3553 time: [5, 5, 4, 4, 3],
3554 price: [520, 6500, 58e3, 7e5]
3558 class: "\uD83C\uDF32",
3560 cash: [7, 15, 80, 550, 3e3],
3561 time: [2, 2, 1, 1, 1],
3562 price: [400, 4e3, 36e3, 24e4]
3566 class: "\uD83C\uDF32",
3568 cash: [5, 14, 185, 1900, 19e3],
3569 time: [2, 2, 2, 2, 2],
3570 price: [400, 5e3, 71e3, 8e5]
3574 class: "\uD83C\uDF32",
3576 cash: [3, 10, 65, 470, 2600],
3577 time: [1, 1, 1, 1, 1],
3578 price: [420, 3600, 32e3, 21e4]
3582 class: "\uD83C\uDF32",
3584 cash: [4, 17, 155, 1500, 15e3],
3585 time: [2, 2, 2, 2, 2],
3586 price: [500, 4800, 55e3, 58e4]
3590 class: "\uD83C\uDF32",
3592 cash: [11, 37, 340, 2200, 3e4],
3593 time: [5, 4, 3, 2, 2],
3594 price: [540, 7e3, 77e3, 12e5]
3600 cash: [6, 17, 150, 1200, 13e3],
3601 time: [2, 2, 2, 2, 2],
3602 price: [480, 4500, 43e3, 52e4]
3608 cash: [5, 18, 180, 850, 8500],
3609 time: [2, 2, 2, 1, 1],
3610 price: [520, 550, 61e3, 68e4]
3616 cash: [5, 20, 190, 1900, 16e3],
3617 time: [3, 3, 2, 2, 2],
3618 price: [370, 5300, 76e3, 62e4]
3620 name: "Arctic Hare",
3624 cash: [6, 19, 85, 900, 7e3],
3625 time: [2, 2, 1, 1, 1],
3626 price: [540, 5200, 66e3, 55e4]
3632 cash: [4, 21, 310, 3200, 33e3],
3633 time: [3, 3, 3, 3, 3],
3634 price: [400, 6500, 76e3, 87e4]
3636 name: "Baby Penguin",
3640 cash: [3, 8, 70, 450, 2700],
3641 time: [1, 1, 1, 1, 1],
3642 price: [420, 3300, 33e3, 23e4]
3648 cash: [12, 75, 700, 6500, 85e3],
3649 time: [8, 7, 6, 5, 5],
3650 price: [630, 7e3, 91e3, 14e5]
3656 cash: [11, 46, 420, 3700, 51e3],
3657 time: [5, 5, 4, 4, 4],
3658 price: [550, 6200, 68e3, 1e6]
3662 class: "\uD83C\uDF34",
3664 cash: [6, 20, 100, 975, 7500],
3665 time: [3, 3, 1, 1, 1],
3666 price: [390, 6e3, 7e4, 61e4]
3670 class: "\uD83C\uDF34",
3672 cash: [8, 28, 230, 1600, 17e3],
3673 time: [3, 3, 2, 2, 2],
3674 price: [390, 6e3, 7e4, 61e4]
3678 class: "\uD83C\uDF34",
3680 cash: [9, 20, 175, 625, 3800],
3681 time: [2, 2, 2, 1, 1],
3682 price: [520, 4800, 42e3, 3e5]
3686 class: "\uD83C\uDF34",
3688 cash: [6, 35, 160, 1700, 18e3],
3689 time: [4, 4, 2, 2, 2],
3690 price: [500, 5e3, 63e3, 7e5]
3694 class: "\uD83C\uDF34",
3696 cash: [3, 8, 85, 850, 8500],
3697 time: [1, 1, 1, 1, 1],
3698 price: [480, 5400, 62e3, 63e4]
3702 class: "\uD83C\uDF34",
3704 cash: [3, 9, 90, 900, 9e3],
3705 time: [1, 1, 1, 1, 1],
3706 price: [540, 5700, 65e3, 69e4]
3710 class: "\uD83C\uDF34",
3712 cash: [12, 28, 215, 2100, 21e3],
3713 time: [5, 3, 2, 2, 2],
3714 price: [530, 6500, 76e3, 87e4]
3718 class: "\uD83C\uDF34",
3720 cash: [3, 15, 85, 1500, 7600],
3721 time: [1, 2, 1, 2, 1],
3722 price: [410, 5100, 58e3, 59e4]
3726 class: "\uD83C\uDF34",
3728 cash: [13, 52, 570, 4300, 7e4],
3729 time: [5, 5, 5, 4, 4],
3730 price: [600, 7e3, 8e4, 14e5]
3734 class: "\uD83C\uDF34",
3736 cash: [4, 14, 160, 780, 8200],
3737 time: [2, 2, 2, 1, 1],
3738 price: [390, 4700, 57e3, 68e4]
3744 cash: [5e3, 15e3, 15e4, 15e5, 1e7],
3745 time: [1, 1, 1, 1, 1],
3746 price: [8e5, 9e6, 11e7, 8e8]
3752 cash: [18e3, 6e4, 4e4, 4e6, 35e6],
3753 time: [3, 3, 2, 2, 2],
3754 price: [11e5, 12e6, 15e7, 14e8]
3760 cash: [19500, 65e3, 44e4, 46e5, 4e6],
3761 time: [3, 3, 2, 2, 2],
3762 price: [13e5, 135e5, 16e7, 16e8]
3768 cash: [18500, 6e4, 62e4, 44e5, 38e6],
3769 time: [3, 3, 3, 2, 2],
3770 price: [12e5, 125e5, 15e6, 15e8]
3772 name: "Slime Monster",
3776 cash: [35e3, 14e4, 1e6, 11e6, 11e7],
3777 time: [5, 5, 4, 4, 4],
3778 price: [16e5, 15e6, 2e8, 23e8]
3784 cash: [25e3, 1e5, 68e4, 65e5, 32e6],
3785 time: [3, 3, 2, 2, 1],
3786 price: [2e6, 21e6, 23e7, 26e8]
3792 cash: [36e3, 15e4, 15e5, 15e6, 15e7],
3793 time: [4, 4, 4, 4, 4],
3794 price: [23e5, 24e6, 27e7, 3e9]
3800 cash: [24e3, 15e4, 14e5, 7e6, 75e6],
3801 time: [2, 2, 2, 1, 1],
3802 price: [45e5, 45e6, 55e7, 65e8]
3808 cash: [24e3, 95e3, 95e4, 97e5, 95e6],
3809 time: [3, 3, 3, 3, 3],
3810 price: [19e5, 2e7, 23e7, 25e8]
3815 rarity: "Legendary",
3816 cash: [75e3, 4e5, 6e6, 9e7, 125e7],
3817 time: [5, 5, 5, 5, 5],
3818 price: [6e6, 95e6, 16e8, 25e9]
3820 name: "Two of Spades",
3822 class: "\uD83C\uDFF0",
3824 cash: [4500, 14e3, 14e4, 14e5, 9e6],
3825 time: [1, 1, 1, 1, 1],
3826 price: [77e4, 83e5, 98e6, 71e7]
3830 class: "\uD83C\uDFF0",
3832 cash: [13e3, 45e3, 45e4, 45e5, 5e7],
3833 time: [2, 2, 2, 2, 2],
3834 price: [13e5, 14e6, 16e7, 2e9]
3838 class: "\uD83C\uDFF0",
3840 cash: [12e3, 4e4, 4e5, 4e6, 45e6],
3841 time: [2, 2, 2, 2, 2],
3842 price: [12e5, 12e6, 14e7, 18e8]
3846 class: "\uD83C\uDFF0",
3848 cash: [13e3, 42e3, 21e4, 21e5, 23e6],
3849 time: [2, 2, 1, 1, 1],
3850 price: [12e5, 13e6, 15e7, 19e8]
3852 name: "Queen of Hearts",
3854 class: "\uD83C\uDFF0",
3856 cash: [23e3, 87e3, 62e4, 75e5, 9e7],
3857 time: [4, 4, 3, 3, 3],
3858 price: [13e5, 13e6, 18e7, 24e8]
3862 class: "\uD83C\uDFF0",
3864 cash: [17e3, 68e3, 7e5, 35e5, 35e6],
3865 time: [2, 2, 1, 1, 1],
3866 price: [2e6, 22e6, 25e7, 28e8]
3868 name: "White Rabbit",
3870 class: "\uD83C\uDFF0",
3872 cash: [26e3, 105e3, 11e6, 77e5, 72e6],
3873 time: [3, 3, 3, 2, 2],
3874 price: [2e6, 23e6, 28e7, 29e8]
3876 name: "Cheshire Cat",
3878 class: "\uD83C\uDFF0",
3880 cash: [32e3, 1e5, 9e5, 9e6, 6e7],
3881 time: [4, 3, 3, 3, 2],
3882 price: [18e5, 19e6, 22e7, 24e8]
3884 name: "Caterpillar",
3886 class: "\uD83C\uDFF0",
3888 cash: [1e4, 7e4, 65e4, 75e5, 85e6],
3889 time: [1, 1, 1, 1, 1],
3890 price: [42e5, 42e6, 54e7, 69e8]
3894 class: "\uD83C\uDFF0",
3896 cash: [38e3, 25e4, 15e5, 14e6, 8e7],
3897 time: [3, 3, 2, 2, 1],
3898 price: [48e5, 48e6, 52e7, 66e8]
3900 name: "King of Hearts",
3902 class: "\uD83C\uDFF0",
3903 rarity: "Legendary",
3904 cash: [8e4, 42e4, 68e5, 1e8, 15e8],
3905 time: [5, 5, 5, 5, 5],
3906 price: [7e6, 11e7, 18e8, 3e10]
3910 class: "\uD83D\uDE80",
3912 cash: [15e3, 45e3, 6e5, 65e5, 65e6],
3913 time: [3, 3, 3, 3, 3],
3914 price: [1e6, 11e6, 15e7, 17e8]
3918 class: "\uD83D\uDE80",
3920 cash: [23e3, 65e3, 7e5, 45e5, 2e7],
3921 time: [5, 4, 3, 2, 1],
3922 price: [95e4, 13e6, 16e7, 16e8]
3926 class: "\uD83D\uDE80",
3928 cash: [1e4, 4e4, 2e5, 2e6, 18e6],
3929 time: [2, 2, 1, 1, 1],
3930 price: [14e5, 14e6, 15e7, 15e8]
3934 class: "\uD83D\uDE80",
3936 cash: [3e4, 1e5, 1e6, 11e6, 85e6],
3937 time: [4, 4, 4, 4, 4],
3938 price: [15e5, 17e6, 19e7, 17e8]
3942 class: "\uD83D\uDE80",
3944 cash: [25e3, 1e5, 9e5, 9e6, 9e7],
3945 time: [3, 3, 3, 3, 3],
3946 price: [2e6, 21e6, 21e7, 24e8]
3950 class: "\uD83D\uDE80",
3952 cash: [17e3, 7e4, 7e5, 7e6, 7e7],
3953 time: [2, 2, 2, 2, 2],
3954 price: [21e5, 23e6, 25e7, 28e8]
3958 class: "\uD83D\uDE80",
3960 cash: [6e4, 32e4, 21e5, 15e6, 85e6],
3961 time: [5, 4, 3, 2, 1],
3962 price: [48e5, 46e6, 54e7, 68e8]
3966 class: "\uD83D\uDE80",
3967 rarity: "Legendary",
3968 cash: [45e3, 26e4, 25e5, 38e6, 55e7],
3969 time: [3, 3, 2, 2, 2],
3970 price: [65e5, 1e8, 17e8, 27e9]
3974 class: "\uD83E\uDD16",
3976 cash: [4e3, 12e3, 18e4, 19e5, 25e6],
3977 time: [1, 1, 1, 1, 1],
3978 price: [73e4, 12e6, 13e7, 19e8]
3982 class: "\uD83E\uDD16",
3984 cash: [16e3, 65e3, 65e4, 48e5, 42e6],
3985 time: [3, 3, 3, 2, 2],
3986 price: [13e5, 14e6, 17e7, 16e8]
3990 class: "\uD83E\uDD16",
3992 cash: [22e3, 85e3, 8e5, 62e5, 65e6],
3993 time: [4, 4, 4, 3, 3],
3994 price: [12e5, 13e6, 15e7, 17e8]
3998 class: "\uD83E\uDD16",
4000 cash: [11e3, 45e3, 5e5, 25e5, 3e7],
4001 time: [2, 2, 2, 1, 1],
4002 price: [14e5, 15e6, 18e7, 24e8]
4006 class: "\uD83E\uDD16",
4008 cash: [24e3, 1e5, 1e6, 1e7, 1e8],
4009 time: [3, 3, 3, 3, 3],
4010 price: [2e6, 22e6, 24e7, 26e8]
4014 class: "\uD83E\uDD16",
4016 cash: [22e3, 95e3, 65e4, 65e5, 65e6],
4017 time: [3, 3, 2, 2, 2],
4018 price: [19e5, 21e6, 23e7, 25e8]
4022 class: "\uD83E\uDD16",
4024 cash: [5e4, 25e4, 21e5, 21e6, 17e7],
4025 time: [4, 3, 3, 3, 2],
4026 price: [5e6, 46e6, 5e8, 67e8]
4030 class: "\uD83E\uDD16",
4031 rarity: "Legendary",
4032 cash: [8e4, 43e4, 42e5, 62e6, 1e9],
4033 time: [5, 5, 3, 3, 3],
4034 price: [7e6, 12e7, 19e8, 35e9]
4037 value: JSON.stringify(e)
4041 let t = document.createElement("iframe");
4042 document.body.append(t), window.alert = t.contentWindow.alert.bind(window), t.remove();
4045 } = Object.values(function e(t = document.querySelector("body>div")) {
4046 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
4047 }())[1].children[0]._owner;
4048 a.state.blooks.length >= 10 && alert("Choose a blook to replace"), a.chooseBlook(JSON.parse(e))
4051 name: "Free Upgrades",
4052 description: "Sets upgrade prices to 0 for all current blooks",
4054 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState(e => ({
4056 blooks: e.blooks.map(e => ({
4064 description: "Maxes out all your blooks' levels
",
4066 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.state.blooks.forEach(e => e.level = 4)
4069 name: "Remove Glitches
",
4070 description: "Removes all enemy glitches
",
4072 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4085 }), 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)
4088 name: "Send Glitch
",
4089 description: "Sends a glitch to everyone
else playing
",
4093 options: Object.entries({
4106 }).map(([e, t]) => ({
4112 var t = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4113 t.safe = !0, t.props.liveGameController.setVal({
4114 path: `c/${t.props.client.name}/tat`,
4119 name: "Set All MegaBot
",
4120 description: "Sets all your blooks to maxed out Mega Bots
",
4122 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
4123 blooks: Array(10).fill({
4126 class: "\uD83E\uDD16",
4127 rarity: "Legendary
",
4128 cash: [8e4, 43e4, 42e5, 62e6, 1e9],
4129 time: [5, 5, 3, 3, 3],
4130 price: [7e6, 12e7, 19e8, 35e9],
4139 description: "Sets amount
of cash you have
",
4145 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
4151 name: "Always Frenzy
",
4152 description: "Always sets everyone to frenzy mode
",
4158 this.enabled = false;
4159 clearInterval(this.data);
4162 this.enabled = true;
4163 this.data = setInterval(() => {
4164 const cheat = (async () => {
4167 } = Object.values((function react(r = document.querySelector("body
>div
")) {
4168 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope
>div
"))
4169 })())[1].children[0]._owner;
4170 stateNode.props.liveGameController.setVal({
4171 path: `c/${stateNode.props.client.name}`,
4173 b: stateNode.props.client.blook,
4174 w: stateNode.state.weight,
4185 name: "Client Sided Frenzy
",
4186 description: "Frenzy
for you only
",
4190 const componentInstance = Object.values(document.querySelector("#app
> div
> div
"))[1].children[1]._owner.stateNode;
4193 componentInstance.setState({
4198 componentInstance.setState({
4204 name: "Remove Distractions
",
4205 description: "Removes distractions
",
4210 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
4211 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
4218 description: "Sets everyone to frenzy mode
",
4220 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4221 e.props.liveGameController.setVal({
4222 path: "c
/" + e.props.client.name,
4224 b: e.props.client.blook,
4232 name: "Send Distraction
",
4233 description: "Sends a distraction to everyone
",
4235 name: "Distraction
",
4237 options: ["Crab
", "Jellyfish
", "Frog
", "Pufferfish
", "Octopus
", "Narwhal
", "Megalodon
", "Blobfish
", "Baby Shark
"]
4240 var t = document.createElement("iframe
"),
4241 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;
4242 t.safe = !0, t.props.liveGameController.setVal({
4243 path: "c
/" + t.props.client.name,
4245 b: t.props.client.blook,
4254 description: "Sets fishing
lure (range
1 - 5)",
4256 name: "Lure (1 - 5)",
4262 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
4263 lure: Math.max(Math.min(e - 1, 4), 0)
4267 name: "Set Next Fish
",
4268 description: "Sets the next fish to
catch",
4272 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
"]
4276 return Object.values(document.querySelector("#app
> div
> div
"))[1].children[0]._owner
4283 tiers: ["F
", "D
", "C
"]
4289 tiers: ["F
", "D
", "C
"]
4295 tiers: ["F
", "D
", "C
"]
4301 tiers: ["D
", "C
", "B
"]
4307 tiers: ["D
", "C
", "B
"]
4313 tiers: ["D
", "C
", "B
"]
4319 tiers: ["D
", "C
", "B
"]
4321 "Blizzard Clownfish
": {
4322 rarity: "Great Catch
",
4325 tiers: ["D
", "C
", "B
"]
4328 rarity: "Great Catch
",
4331 tiers: ["D
", "C
", "B
", "A
"]
4334 rarity: "Great Catch
",
4337 tiers: ["D
", "C
", "B
", "A
"]
4340 rarity: "Great Catch
",
4343 tiers: ["D
", "C
", "B
", "A
"]
4346 rarity: "Great Catch
",
4349 tiers: ["D
", "C
", "B
", "A
"]
4351 "Poison Dart Frog
": {
4352 rarity: "Great Catch
",
4355 tiers: ["D
", "C
", "B
", "A
"]
4358 rarity: "Rare Find
",
4361 tiers: ["D
", "C
", "B
", "A
"]
4364 rarity: "Rare Find
",
4367 tiers: ["D
", "C
", "B
", "A
"]
4370 rarity: "Rare Find
",
4373 tiers: ["D
", "C
", "B
", "A
"]
4376 rarity: "Rare Find
",
4379 tiers: ["D
", "C
", "B
", "A
"]
4382 rarity: "Rare Find
",
4385 tiers: ["C
", "B
", "A
"]
4388 rarity: "Rare Find
",
4391 tiers: ["D
", "C
", "B
", "A
"]
4394 rarity: "Rare Find
",
4397 tiers: ["D
", "C
", "B
", "A
"]
4399 "Rainbow Jellyfish
": {
4400 rarity: "Epic Grab
",
4403 tiers: ["C
", "B
", "A
"]
4406 rarity: "Epic Grab
",
4409 tiers: ["C
", "B
", "A
"]
4411 "Pirate Pufferfish
": {
4412 rarity: "Epic Grab
",
4415 tiers: ["C
", "B
", "A
"]
4418 rarity: "Epic Grab
",
4421 tiers: ["C
", "B
", "A
"]
4423 "Crimson Octopus
": {
4424 rarity: "Epic Grab
",
4430 rarity: "Catch
of the Day
",
4433 tiers: ["B
", "A
", "S
"]
4436 rarity: "Catch
of the Day
",
4439 tiers: ["B
", "A
", "S
"]
4442 rarity: "Catch
of the Day
",
4445 tiers: ["B
", "A
", "S
"]
4448 rarity: "Angler
's Legend",
4453 "Rainbow Narwhal": {
4454 rarity: "Angler's Legend
",
4457 tiers: ["A
", "S
", "S
+"]
4460 rarity: "Angler
's Legend",
4463 tiers: ["A", "S", "S+"]
4466 rarity: "Angler's Legend
",
4469 tiers: ["A
", "S
", "S
+"]
4472 rarity: "Angler
's Legend",
4475 tiers: ["A", "S", "S+"]
4478 rarity: "Angler's Legend
",
4481 tiers: ["A
", "S
", "S
+"]
4484 rarity: "Angler
's Legend",
4487 tiers: ["A", "S", "S+"]
4490 rarity: "Angler's Legend
",
4493 tiers: ["A
", "S
", "S
+"]
4496 rarity: "Angler
's Legend",
4499 tiers: ["A", "S", "S+"]
4502 o = ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"];
4503 if (!window.functionSet) {
4504 var r = t().stateNode.answerNext;
4505 t().stateNode.answerNext = function() {
4506 if (t().stateNode.state.hackFish) {
4508 t().stateNode.setState({
4513 rarity: a[i].rarity,
4514 weight: (n = a[i].minWeight, Math.floor(Math.random() * ((s = a[i].maxWeight) - n) + n)),
4515 tier: a[i].tiers[Math.floor(Math.random() * a[i].tiers.length)],
4516 isSpecial: o.includes(i) && 8 > Math.floor(100 * Math.random())
4519 }), setTimeout(function() {
4520 t().stateNode.setState({
4523 }, 1600), t().stateNode.state.hackFish = null
4524 } else r.apply(this, arguments)
4527 window.functionSet = !0, ! function e(o) {
4528 if (Object.keys(a).includes(o)) t().stateNode.state.hackFish = o;
4530 alert("That fish does not exist!");
4537 description: "Sets weight",
4543 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4547 }), t.props.liveGameController.setVal({
4548 path: "c/" + t.props.client.name,
4550 b: t.props.client.blook,
4552 f: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(9 * Math.random())]
4558 name: "Toggle Ghost",
4559 description: "Lets you go through the pipes",
4563 this.enabled = !this.enabled;
4564 for (const body of Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig.physics.world.bodies.entries) {
4565 if (!body.gameObject.frame.texture.key.startsWith("blook")) continue;
4566 body.checkCollision.none = this.enabled;
4567 body.gameObject.setAlpha(this.enabled ? 0.5 : 1);
4574 description: "Sets flappy blook score",
4579 run: function(score) {
4580 Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[1](score || 0);
4583 name: "Change Game Code",
4584 description: "Replace the old game with new HTML content",
4589 run: function(newHtml) {
4594 var canvas = document.querySelector('canvas
[width
="320"][height
="480"]');
4598 var tempContainer = document.createElement('div
');
4599 tempContainer.innerHTML = newHtml;
4601 var wrapperDiv = document.createElement('div
');
4602 wrapperDiv.style.width = '320px
';
4603 wrapperDiv.style.height = '480px
';
4604 wrapperDiv.style.overflow = 'auto
';
4605 wrapperDiv.style.boxSizing = 'border
-box
';
4606 wrapperDiv.style.position = canvas.style.position;
4607 wrapperDiv.style.marginLeft = canvas.style.marginLeft;
4608 wrapperDiv.style.marginTop = canvas.style.marginTop;
4609 wrapperDiv.style.cursor = canvas.style.cursor;
4610 wrapperDiv.style.backgroundColor = '#f0f0f0
';
4612 while (tempContainer.firstChild) {
4613 wrapperDiv.appendChild(tempContainer.firstChild);
4616 canvas.parentNode.replaceChild(wrapperDiv, canvas);
4619 var scoreTextDiv = document.querySelector('div
._scoreText_e2c5l_7
');
4621 scoreTextDiv.parentNode.removeChild(scoreTextDiv);
4627 name: "Change Settings",
4628 description: "Changes various game mechanics and lets you play with the spacebar",
4630 name: "Bird Gravity",
4638 name: "Bird Flap Power",
4642 run: function(a, b, c) {
4643 const scene = Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig;
4644 scene.birdGravity = a;
4645 scene.birdSpeed = b;
4646 scene.birdFlapPower = c;
4647 scene.flap = function() {
4648 this.isStarted || (this.bird.body.gravity.y = this.birdGravity,
4649 this.pipeGroup.setVelocityX(-this.birdSpeed),
4650 this.groundGroup.setVelocityX(-this.birdSpeed),
4651 this.isStarted = !0),
4652 this.bird.body.velocity.y = -this.birdFlapPower
4654 scene.input._events.pointerdown = [];
4656 scene.input.keyboard.addKey('SPACE
').on("down", e => {
4657 scene.flap.call(scene);
4663 name: "Always Triple",
4664 description: "Always get triple gold",
4669 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4670 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(() => {
4671 e.choosePrize = function(t) {
4672 e.state.choices[t] = {
4675 text: "Triple Gold!",
4677 }, e._choosePrize(t)
4682 name: "Always Quintuple",
4683 description: "Always get quintuple gold",
4688 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4689 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(() => {
4690 e.choosePrize = function(t) {
4691 e.state.choices[t] = {
4694 text: "Quintuple Gold!",
4695 blook: "Ice Elemental"
4696 }, e._choosePrize(t)
4701 name: "Auto Choose",
4702 description: "Automatically picks the option that would give you the most gold",
4708 this.enabled = false;
4709 clearInterval(this.data);
4712 this.enabled = true;
4713 this.data = setInterval(() => {
4716 } = Object.values((function react(r = document.querySelector("body>div")) {
4717 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
4718 })())[1].children[0]._owner;
4720 if (stateNode.state.stage == "prize") {
4721 stateNode.props.liveGameController.getDatabaseVal("c", (players) => {
4722 if (players == null) return;
4723 players = Object.entries(players);
4727 for (let i = 0; i < players.length; i++) {
4728 if (players[i][0] != stateNode.props.client.name && players[i][1] > most) {
4729 most = players[i][1];
4732 for (let i = 0; i < stateNode.state.choices.length; i++) {
4733 const choice = stateNode.state.choices[i];
4734 let value = stateNode.state.gold;
4735 if (choice.type == "gold") {
4736 value = stateNode.state.gold + (choice.val || 0);
4737 } else if (choice.type == "multiply" || choice.type == "divide") {
4738 value = Math.round(stateNode.state.gold * choice.val) || stateNode.state.gold;
4739 } else if (choice.type == "swap") {
4740 value = most || stateNode.state.gold;
4741 } else if (choice.type == "take") {
4742 value = stateNode.state.gold + (most * choice.val || 0);
4744 if ((value || 0) <= max) continue;
4748 document.querySelector("div[class*='choice
" + index + "']")?.click();
4756 description: "Shows what each chest will give you",
4762 this.enabled = false;
4763 clearInterval(this.data);
4766 this.enabled = true;
4767 this.data = setInterval(() => {
4768 const cheat = (async () => {
4769 Object.values((function react(r = document.querySelector("body>div")) {
4770 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
4771 })())[1].children[0]._owner.stateNode.state.choices.forEach(({
4774 let chest = document.querySelector(`div[class*='choice${index + 1}
']`);
4775 if (!chest || chest.querySelector('div
')) return;
4776 let choice = document.createElement('div
')
4777 choice.style.color = "white";
4778 choice.style.fontFamily = "Eczar";
4779 choice.style.fontSize = "2em";
4780 choice.style.display = "flex";
4781 choice.style.justifyContent = "center";
4782 choice.style.transform = "translateY(200px)";
4783 choice.innerText = text;
4784 chest.append(choice)
4792 name: "Remove Lose 25%-50%",
4793 description: "Removes Lose 25%-50% chests",
4802 return Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner
4804 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(() => {
4805 document.querySelectorAll('div
[role
="button"]').forEach(e => {
4806 ("Lose 25%" === e.innerText || "Lose 50%" === e.innerText) && (e.style.display = "none")
4808 }, 50), t.data = setInterval(() => {
4810 if ("gold" === ("gold" === window.location.pathname.split("/")[2] && "gold") && t.enabled) try {
4811 if ("prize" === a().stateNode.state.stage) {
4814 } = a().stateNode.state, r = document.querySelector("div[class*='regularBody
']").children[1];
4815 r && (document.querySelectorAll(".chest-esp").length ? o.forEach((e, t) => {
4816 3 == r.children.length && r.children[t].children[1].innerText != e.text && (r.children[t].children[1].innerText = e.text)
4817 }) : o.forEach((e, t) => {
4818 (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;";
4820 r.children[t].appendChild(textElement)
4832 name: "Flood Alert Box",
4833 description: "Makes the alert box filled with text",
4838 run: function(userInput) {
4839 function getReactOwner() {
4840 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
4843 function repeatText(text, times) {
4844 return new Array(times).fill(text).join(" ");
4847 function setValForPlayer() {
4848 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c/").then(data => {
4851 const playerName = Object.keys(data)[0];
4855 const id = "1,723,583,989,363";
4856 const repeatedText = repeatText(userInput, 1700);
4857 const finalText = `${id}${repeatedText}`;
4859 setv(['tat
', `${playerName}:${finalText}`]);
4861 console.log("No text entered. Operation cancelled.");
4864 console.log("Player not found!");
4869 function setv(args) {
4870 getReactOwner().stateNode.props.liveGameController.setVal({
4871 path: "c/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
4872 val: args.slice(1, args.length).join(" ")
4879 name: "Reset Players Gold",
4880 description: "Sets a player's gold to
0",
4885 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4886 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
4893 } = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4894 t.liveGameController.setVal({
4895 path: "c
/".concat(t.client.name),
4905 description: "Sets amount
of gold
",
4911 var t = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4915 }), t.props.liveGameController.setVal({
4916 path: "c
/".concat(t.props.client.name),
4918 b: t.props.client.blook,
4925 description: "Swaps gold
with someone
",
4930 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4931 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
4935 let t = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4936 t.props.liveGameController.getDatabaseVal("c
", a => {
4937 a?.[e] && (a = a[e].g, t.props.liveGameController.setVal({
4938 path: "c
/".concat(t.props.client.name),
4940 b: t.props.client.blook,
4942 tat: e + ":swap
:" + t.state.gold
4951 name: "Set Player
's Gold",
4952 description: "Sets a players gold to any amount.",
4957 let e = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
4958 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
4964 run: (player, amount) => {
4965 const sn = Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner.stateNode;
4966 sn.props.liveGameController.setVal({
4967 path: `c/${sn.props.client.name}/tat`,
4968 val: `${player}:swap:${amount}`
4972 name: "Send Ad Text",
4973 description: "Sends a load of text to another player (This will override your blook!)",
4980 } = Object.values(function e(t = document.querySelector("body>div")) {
4981 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
4982 }())[1].children[0]._owner;
4983 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]));
4988 run: async function(player, e) {
4991 } = Object.values(function e(t = document.querySelector("body>div")) {
4992 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
4993 }())[1].children[0]._owner.stateNode;
4995 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
4996 t2.client.blook = repeatedText;
4997 t2.liveGameController.setVal({
4998 path: `c/${t2.client.name}/b`,
5001 t2.liveGameController.setVal({
5002 path: `c/${t2.client.name}/tat`,
5003 val: `${player}:196`
5007 name: "Reset All Players' Gold
",
5008 description: "Set
's everyone else's gold to
0",
5010 var e = document.createElement("iframe
");
5011 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove();
5015 } = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode, o = 0;
5016 t.liveGameController.getDatabaseVal("c
", async e => {
5018 for (let r of Object.keys(e)) t.liveGameController.setVal({
5019 path: "c
/".concat(t.client.name),
5025 }), o++, await new Promise(e => setTimeout(e, 4e3));
5026 alert(`Reset ${o} players' gold!`)
5030 name: "Crash
Host (Gold
)",
5031 description: "Crashes the Host
's Game for Gold Quest",
5033 function reactHandler() {
5034 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
5037 function setv(args) {
5038 reactHandler().stateNode.props.liveGameController.setVal({
5039 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
5040 val: args.slice(1, args.length).join(" ")
5049 description: "Shows you what will happen if you say Yes or No",
5055 this.enabled = false;
5056 clearInterval(this.data);
5059 this.enabled = true;
5060 this.data = setInterval((stats => {
5063 } = Object.values((function react(r = document.querySelector("body>div")) {
5064 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5065 })())[1].children[0]._owner;
5067 let elements = Array.prototype.reduce.call(
5068 document.querySelectorAll('[class*=statContainer
]'),
5069 (obj, container, i) => (obj[stats[i]] = container, obj), {}
5072 if (stateNode.state.phase == "choice") {
5073 Array.prototype.forEach.call(document.querySelectorAll('.choiceESP
'), x => x.remove());
5075 Object.keys(stateNode.state.guest.yes || {}).forEach(x => {
5076 if (elements[x] == null) return;
5077 let element = document.createElement('div
');
5078 element.className = 'choiceESP
';
5079 element.style = 'font
-size
: 24px
; color
: rgb(75, 194, 46); font
-weight
: bolder
;';
5080 element.innerText = String(stateNode.state.guest.yes[x]);
5081 elements[x].appendChild(element);
5084 Object.keys(stateNode.state.guest.no || {}).forEach(x => {
5085 if (elements[x] == null) return;
5086 let element = document.createElement('div
');
5087 element.className = 'choiceESP
';
5088 element.style = 'font
-size
: 24px
; color
: darkred
; font
-weight
: bolder
;';
5089 element.innerText = String(stateNode.state.guest.no[x]);
5090 elements[x].appendChild(element);
5093 Array.prototype.forEach.call(
5094 document.querySelectorAll("[class*=guestButton][role=button]"),
5095 x => (x.onclick = () => Array.prototype.forEach.call(document.querySelectorAll(".choiceESP"), x => x.remove()))
5098 }), 50, ['materials
', 'people
', 'happiness
', 'gold
']);
5102 name: "Disable Tax Toucan",
5103 description: "Tax evasion",
5105 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.taxCounter = Number.MAX_VALUE
5109 description: "Sets all resources to the max",
5111 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5120 description: "Sets the amount of guests you've seen
",
5126 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
5132 description: "Skips the current guest
",
5134 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.nextGuest()
5138 name: "Instant Win
",
5139 description: "Instantly Wins the race
",
5141 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
5143 progress: e.state.goalAmount
5149 [...document.querySelectorAll('[class*="answerContainer
"]')][t.answers.map((e, a) => t.correctAnswers.includes(e) ? a : null).filter(e => null != e)[0]]?.click?.()
5154 name: "Set Questions
",
5155 description: "Sets the number
of questions left
",
5160 run: function(progress) {
5163 } = Object.values((function react(r = document.querySelector("body
>div
")) {
5164 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope
>div
"))
5165 })())[1].children[0]._owner;
5166 progress = stateNode.props.client.amount - progress;
5167 stateNode.setState({
5170 stateNode.props.liveGameController.setVal({
5171 path: "c
/".concat(stateNode.props.client.name),
5173 b: stateNode.props.client.blook,
5179 name: "Attack Player
",
5180 description: "Sends the specified attack to a player
",
5187 } = Object.values(function e(t = document.querySelector("body
>div
")) {
5188 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
5189 }())[1].children[0]._owner;
5190 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
5195 options: Object.entries({
5196 "Woosh(-1)": "wind
",
5197 "Rocket(-1)": "rocket
",
5200 }).map(([e, t]) => ({
5205 run: function(player, attack) {
5208 } = Object.values((function react(r = document.querySelector("body
>div
")) {
5209 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope
>div
"))
5210 })())[1].children[0]._owner;
5211 stateNode.props.liveGameController.setVal({
5212 path: `c/${stateNode.props.client.name}/tat`,
5213 val: player + ":" + attack
5218 name: "Toggle Invert Colors
",
5219 description: "Toggle between inverting and restoring colors on the page
",
5221 "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
");
5222 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()")
5225 name: "Toggle Dark Mode
",
5226 description: "Toggles Dark Mode
",
5228 var e = document.createElement("iframe
");
5229 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), ! function e() {
5230 let t = document.querySelectorAll("#nightify
");
5231 if (t.length) t[0].parentNode.removeChild(t[0]);
5233 var a = document.getElementsByTagName("head
")[0],
5234 o = document.createElement("style
");
5235 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)
5241 description: "Makes the page
3D
",
5244 menu: document.createElement("div
"),
5245 limit: document.createElement("input
"),
5246 gap: document.createElement("input
"),
5247 sag: document.createElement("input
"),
5248 fov: document.createElement("input
"),
5249 flo: document.createElement("input
"),
5250 off: document.createElement("input
"),
5251 non: document.createElement("input
"),
5252 end: document.createElement("input
"),
5253 tgl: document.createElement("input
"),
5254 cssStatic: document.createElement("style
"),
5255 cssDynamic: document.createElement("style
"),
5261 mouseMove: function(t) {
5262 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()
5264 gyroMove: function(t) {
5265 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()
5267 updateOrigin: function(e) {
5268 document.body.style.transformOrigin = innerWidth / 2 + pageXOffset + "px
" + (innerHeight / 2 + pageYOffset) + "px
"
5270 updateBody: function() {
5271 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
)"
5273 updateCSS: function() {
5274 if (e.non.checked) e.cssDynamic.innerHTML = "";
5275 else if (e.off.checked) e.cssDynamic.innerHTML = "* { transform
-style
: preserve
-3d
; }";
5277 for (var t = 0; document.querySelector("body
" + " > *".repeat(t)); t++);
5278 var a = e.gap.value / t,
5279 o = -Math.PI * e.sag.value / t;
5280 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;"} } `
5283 toggle: function() {
5284 "active
" == e.menu.className ? e.menu.removeAttribute("class") : e.menu.className = "active
"
5287 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
")
5289 newRange: function(t, a, o, r, i, n, s) {
5290 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
"))
5292 newCheckbox: function(t, a, o) {
5293 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
"))
5295 newButton: function(t, a, o) {
5296 e.menu.appendChild(t), t.type = "button
", t.value = a, t.addEventListener("click
", o)
5299 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() {
5300 e.updateCSS(), e.updateBody()
5301 }), 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)
5307 name: "History Flooder
",
5308 description: "Floods browser history
with specified amount
of entries
",
5315 done = !1, C = window.location.href;
5316 for (var a = 1; a <= t; a++) history.pushState(0, 0, a == t ? C : a.toString()), a == t && (done = !0);
5317 !0 === done && alert("History flood successful
! " + window.location.href + " now appears
in your history
" + t + (1 == t ? " time
." : " times
. "))
5320 name: "Auto Clicker
",
5321 description: "Automatically clicks
for you
. Press S to toggle
.",
5323 name: "Click Delay
",
5326 run: function(inputs) {
5330 let clickInterval = null;
5331 let clickingEnabled = true;
5337 const milliseconds = Number.parseInt(inputs, 10);
5339 if (false === Number.isSafeInteger(milliseconds)) {
5340 self.alert("Input was not an integer
");
5350 function startClicking() {
5351 clickInterval = self.setInterval(() => {
5352 document.elementFromPoint(clientX, clientY)?.click?.();
5356 function stopClicking() {
5357 self.clearInterval(clickInterval);
5358 clickInterval = null;
5363 document.addEventListener("mousemove
", event => {
5372 self.addEventListener("keydown
", event => {
5373 if (event.key === "s
") {
5374 if (clickingEnabled) {
5379 clickingEnabled = !clickingEnabled;
5385 name: "Tab Cloaker
",
5386 description: "Changes the tab image and name
",
5394 run: function(e, t) {
5395 var a = document.querySelector("link
[rel
*='icon']") || document.createElement("link
");
5396 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
"
5400 name: "Host Any Gamemode
",
5401 description: "Change the selected gamemode on the host settings page
",
5405 options: ["Racing
", "Classic
", "Factory
", "Cafe
", "Defense2
", "Defense
", "Royale
", "Gold
", "Candy
", "Brawl
", "Hack
", "Pirate
", "Fish
", "Dino
", "Toy
", "Rush
"]
5408 let t = document.createElement("iframe
");
5409 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
");
5412 } = Object.values(function e(t = document.querySelector("body
>div
")) {
5413 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
5414 }())[1].children[0]._owner;
5422 name: "Toggle Spooky Theme
",
5423 description: "Toggles the spooky theme
for Gold Quest
",
5426 const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5427 sn.season = sn.season ? 0 : 1;
5432 name: "Freeze Timer
",
5433 description: "Makes the host timer stop ingame
",
5438 } = Object.values(document.querySelector("#app
>div
>div
"))[1].children[0]._owner;
5439 clearInterval(stateNode.timerInterval);
5440 stateNode.timerInterval = setInterval(function() {
5441 stateNode?.getClients?.(!1);
5446 name: "Render Hours on Host Timer
",
5447 description: "Renders hours on host
timer(use with remove host time limit
). Can only render up to
24 hours
.",
5450 const format = "HH
:mm
:ss
";
5451 const reg = '/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g';
5452 if (!RegExp.prototype.tes) {
5453 RegExp.prototype.tes = RegExp.prototype.test;
5455 RegExp.prototype.test = function(a) {
5456 if (a == "mm
:ss
" && this.toString() == reg) {
5459 return RegExp.prototype.tes.apply(this, arguments);
5461 if (!String.prototype.rep) {
5462 String.prototype.rep = String.prototype.replace;
5464 String.prototype.replace = function(a, b) {
5465 if (this == "mm
:ss
" && a.toString() == reg) {
5468 return String.prototype.rep.apply(this, arguments);
5473 name: "View Lobbychat Logs
",
5474 description: "View messages players type
in chat
",
5476 function reactHandler() {
5477 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
5480 document.addEventListener("keydown
", function(e) {
5481 if (e.key === "Shift
" && e.code === "ShiftRight
") {
5482 c.style.display = c.style.display === "none
" ? "block
" : "none
";
5486 const c = document.createElement("div
");
5487 c.className = "chat
-box
";
5488 document.body.appendChild(c);
5489 const h = document.createElement("div
");
5490 h.className = "chat
-header
";
5491 h.textContent = "Chat
Logs (RSHIFT to hide
)";
5493 const b = document.createElement("div
");
5494 b.className = "chat
-body
";
5498 const t = document.createElement("div
");
5501 b.scrollTop = b.scrollHeight;
5504 c.style.position = "fixed
";
5505 c.style.bottom = "20px
";
5506 c.style.right = "20px
";
5507 c.style.width = "300px
";
5508 c.style.height = "400px
";
5509 c.style.backgroundColor = "#fff
";
5510 c.style.border = "1px solid
#ccc
";
5511 c.style.boxShadow = "0px
0px
10px
rgba(0, 0, 0, 0.2)";
5512 c.style.display = "block
";
5514 b.style.height = "360px
";
5515 b.style.overflowY = "scroll
";
5516 b.style.padding = "10px
";
5518 h.addEventListener("click
", () => {
5519 b.classList.toggle("open
");
5522 var da = reactHandler().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
5524 function handleChat(e, t) {
5526 if (e.includes("/msg
")) {
5527 t?.msg && (console.log(t.msg), a(e.split("/")[2] + ": " + t.msg));
5532 reactHandler().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function(e, t, a, n) {
5533 console.log(e, t, a, n);
5538 window.logsv = false;
5542 a("Path
: " + e.path.split("/").splice(2, 2).join("/") + " Val
: " + ((typeof e.val === 'object') ? JSON.stringify(e.val) : e.val));
5546 var orgsv = reactHandler().stateNode.props.liveGameController.setVal;
5547 reactHandler().stateNode.props.liveGameController.setVal = function() {
5548 onsv.apply(this, arguments);
5549 orgsv.apply(this, arguments);
5552 reactHandler().stateNode.props.liveGameController._liveApp.database().ref(`${reactHandler().stateNode.props.liveGameController._liveGameCode}`).on("value
", e => {});
5553 a("Lobbychat successfully loaded
!");
5556 c.style.wordWrap = "break-word
";
5562 name: "Remove Host Time Limit
",
5563 description: "Removes the host time limit
",
5566 const sn = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5567 sn.onAmountUpdate = function(t) {
5568 let settings = sn.state.settings;
5569 settings.amount = parseInt(t.target.value);
5577 name: "Free Player Slots
",
5578 description: "Allows more players to join
if the game is full
",
5580 let i = document.createElement('iframe');
5581 document.body.append(i);
5582 const alert = i.contentWindow.alert.bind(window);
5584 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
5585 const players = await stateNode.props.liveGameController.getDatabaseVal("c
");
5587 if (!stateNode.state.blockedUsers) {
5588 stateNode.state.blockedUsers = [];
5590 async function wait(time) {
5591 return new Promise(e => {
5592 setTimeout(e, time);
5595 async function blockUser(name) {
5596 if (stateNode.state.blockedUsers.includes(name)) {
5599 const res = await fetch("https
://fb.blooket.com/c/firebase/block", {
5601 "Content-Type": "application/json"
5604 body
: JSON
.stringify({
5605 g
: stateNode
.props
.host
.id
,
5608 credentials
: "include"
5610 if (res
.status
!== 200) {
5613 stateNode
.state
.blockedUsers
.push(name
);
5615 if (freed
% parseInt("15") == 0) {
5618 C
.alerts
?.[0].addLog("Freed user: " + name
);
5620 for (let i
in players
) {
5623 alert(`Freed slots: ${freed}`);
5626 name
: "Realtime Updates",
5627 description
: "Makes leaderboard updates happen in real-time.",
5629 const stateNode
= () => Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
.stateNode
;
5630 (await
stateNode().props
.liveGameController
.getDatabaseRef("")).on("value", e
=> stateNode()?.getClients
?.(!1));
5634 description
: "Prevents bots from flooding the game",
5642 this.enabled
= true;
5643 this.data
= setInterval(async () => {
5644 var iframe
= document
.createElement("iframe");
5645 document
.body
.append(iframe
);
5646 window
.confirm
= iframe
.contentWindow
.confirm
.bind(window
);
5647 iframe
.style
.display
= "none";
5650 let stateNode
= Object
.values(document
.querySelector("#app > div > div"))[1].children
[0]._owner
.stateNode
;
5651 var dbRef
= await stateNode
.props
.liveGameController
.getDatabaseRef("c");
5652 let currentClients
= {},
5655 dbRef
.on("value", snapshot
=> {
5656 var clients
= snapshot
.val() || {};
5657 var newClients
= [];
5659 for (const key
in clients
) {
5660 if (!currentClients
[key
]) {
5661 newClients
.push(key
);
5662 clientCounts
[key
.replace(/[0-9]/g, "")] = (clientCounts
[key
.replace(/[0-9]/g, "")] || 0) + 1;
5666 currentClients
= clients
;
5668 for (const client
of newClients
) {
5669 if (currentClients
[client
].g
|| clientCounts
[client
.replace(/[0-9]/g, "")] > 1) {
5670 stateNode
.props
.liveGameController
.blockUser(client
);
5671 clientCounts
[client
.replace(/[0-9]/g, "")]--;
5676 console
.error("An error occurred", error
);
5681 name
: "Enable Mobile Hosting",
5682 description
: "Makes it so that you can host on mobile",
5685 var metaViewport
= document
.querySelector('meta[name="viewport"]');
5687 metaViewport
.parentNode
.removeChild(metaViewport
);
5689 var newMetaViewport
= document
.createElement('meta');
5690 newMetaViewport
.name
= 'viewport';
5691 newMetaViewport
.content
= 'width=1280, initial-scale=1';
5692 document
.head
.appendChild(newMetaViewport
);
5696 name
: "Kick All Players",
5697 description
: "Kicks all players from your game.",
5699 const sn
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
5700 const db
= await sn
.props
.liveGameController
.getDatabaseVal("");
5701 sn
.props
.liveGameController
.setVal({
5703 val
: Object
.keys(db
.c
).reduce((a
, b
) => (a
[b
] = 1, a
), db
.bu
? db
.bu
: {})
5705 sn
.props
.liveGameController
.setVal({
5712 name
: "Auto Answer (Toggle)",
5713 description
: "Toggles auto answer on",
5718 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
5719 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
5720 e
?.onAnswer
?.(!0, e
.props
.client
.question
.correctAnswers
[0])
5724 name
: "Auto Answer",
5725 description
: "Chooses the correct answer for you. Will answer with the time provided.",
5727 name
: "Time (milliseconds)",
5733 const stateNode
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
5734 stateNode
.startTime
= performance
.now() - a
;
5735 stateNode
?.onAnswer
?.(true, stateNode
.props
.client
.question
.correctAnswers
[0]);
5740 description
: "Sets amount of blooks you or your team has",
5746 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
5749 }), t
.isTeam
? t
.props
.liveGameController
.setVal({
5750 path
: `a/${t.props.client.name}/bs`,
5752 }) : t
.props
.liveGameController
.setVal({
5753 path
: `c/${t.props.client.name}/bs`,
5758 name
: "Set Defense",
5759 description
: "Sets amount of defense you or your team has (Max 4)",
5761 name
: "Defense (max 4)",
5766 var e
= Math
.min(e
, 4),
5767 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
5770 }), t
.isTeam
? t
.props
.liveGameController
.setVal({
5771 path
: `a/${t.props.client.name}/d`,
5773 }) : t
.props
.liveGameController
.setVal({
5774 path
: `c/${t.props.client.name}/d`,
5779 name
: "Freeze Host :)",
5780 description
: "They aint coming back with this one",
5782 var largeNumber
= "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999";
5783 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
5785 numBlooks
: largeNumber
5788 t
.props
.liveGameController
.setVal({
5789 path
: `a/${t.props.client.name}/bs`,
5793 t
.props
.liveGameController
.setVal({
5794 path
: `c/${t.props.client.name}/bs`,
5801 name
: "Remove Distractions",
5802 description
: "Removes all enemy distractions",
5804 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
5812 trees
: [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1]
5816 name
: "Send Distraction",
5817 description
: "Sends a distraction to everyone else playing",
5819 name
: "Distraction",
5821 options
: Object
.entries({
5831 }).map(([e
, t
]) => ({
5837 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
5838 t
.safe
= !0, t
.props
.liveGameController
.setVal({
5839 path
: `c/${t.props.client.name}/tat`,
5845 description
: "Sets amount of toys",
5851 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
5854 }), t
.props
.liveGameController
.setVal({
5855 path
: "c/".concat(t
.props
.client
.name
),
5857 b
: t
.props
.client
.blook
,
5863 name
: "Set Toys Per Question",
5864 description
: "Sets amount of toys per question",
5866 name
: "Toys Per Question",
5870 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
5876 description
: "Swaps toys with someone",
5881 let e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
5882 return new Promise(t
=> e
.props
.liveGameController
._liveApp
? e
.props
.liveGameController
.getDatabaseVal("c", e
=> e
&& t(Object
.keys(e
))) : t([]))
5886 let t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
5887 t
.props
.liveGameController
.getDatabaseVal("c", a
=> {
5889 a
&& Object
.keys(a
).map(e
=> e
.toLowerCase()).includes(e
.toLowerCase()) && ([a
, {
5891 }] = Object
.entries(a
).find(([t
]) => t
.toLowerCase() == e
.toLowerCase()), t
.props
.liveGameController
.setVal({
5892 path
: "c/".concat(t
.props
.client
.name
),
5894 b
: t
.props
.client
.blook
,
5896 tat
: a
+ ":swap:" + t
.state
.toys
5905 className
: "creditContainer",
5907 margin
: "15px 15px 5px 15px",
5908 backgroundColor
: "rgb(0 0 0 / 50%)",
5911 borderRadius
: "7px",
5915 boxSizing
: "border-box",
5919 const container
= document
.createElement("div");
5920 container
.style
.width
= "100%";
5921 container
.style
.height
= "100%";
5922 container
.style
.overflow
= "auto";
5923 container
.style
.textAlign
= "center";
5925 const creditsList
= [
5927 name
: "DannyDan0167",
5928 description
: "Founder of <a href='https://github.com/randomstuff69/blooketpluscheats/' target='_blank' style='color: #0000FF;'>Blooket Cheats Plus</a>"
5931 name
: "CryptoDude3",
5932 description
: "Co-Founder of Blooket Cheats Plus and made almost all of the new cheats"
5936 description
: "Creator of the GUI and old cheats"
5940 description
: `Owner of the original <a href='https://github.com/Blooket-Council/Blooket-Cheats' target='_blank' style='color: #0000FF;'>Blooket Cheats</a> and old cheats`
5943 name
: "Randomstuff69",
5944 description
: `Hosting the <a href='https://github.com/randomstuff69/blooketpluscheats/' target='_blank' style='color: #0000FF;'>Blooket Cheats Plus</a> repository`
5948 creditsList
.forEach(credit
=> {
5949 const heading
= document
.createElement("h1");
5950 heading
.textContent
= credit
.name
;
5951 heading
.style
.margin
= "0";
5953 const description
= document
.createElement("h3");
5954 description
.innerHTML
= credit
.description
;
5955 description
.style
.margin
= "0 0 15px 0";
5957 container
.appendChild(heading
);
5958 container
.appendChild(description
);
5965 name
: "Import Settings",
5966 description
: "Import a custom theme",
5975 return alert("Invalid JSON provided")
5978 backgroundColor
: "rgb(11, 194, 207)",
5979 infoColor
: "#9a49aa",
5980 cheatList
: "#9a49aa",
5981 defaultButton
: "#9a49aa",
5982 disabledButton
: "#A02626",
5983 enabledButton
: "#47A547",
5985 inputColor
: "#7a039d",
5986 contentBackground
: "rgb(64, 17, 95)",
5988 }, c
.setItem("theme", e
), e
) p
.sheet
.cssRules
[0].style
.setProperty("--" + a
, e
[a
])
5991 name
: "Export Settings",
5992 description
: "Export the current theme to JSON",
5993 run
: async
function() {
5994 await navigator
.clipboard
.writeText(JSON
.stringify(c
.data
.theme
, null, 4)), prompt("Text copied to clipboard. (Paste below to test)")
5998 description
: "Changes all the settings to a preset",
6005 backgroundColor
: "rgb(11, 194, 207)",
6006 infoColor
: "#9a49aa",
6007 cheatList
: "#9a49aa",
6008 defaultButton
: "#9a49aa",
6009 disabledButton
: "#A02626",
6010 enabledButton
: "#47A547",
6012 inputColor
: "#7a039d",
6013 contentBackground
: "rgb(64, 17, 95)"
6016 name
: "Landscapes (Random)",
6018 backgroundColor
: "url(https://source.unsplash.com/1600x900/?landscape)",
6019 infoColor
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
6020 cheatList
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
6021 defaultButton
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
6022 disabledButton
: "linear-gradient(rgba(225, 0, 0, 0.3), rgba(225, 0, 0, 0.3))",
6023 enabledButton
: "linear-gradient(rgba(0, 128, 0, 0.3), rgba(0, 128, 0, 0.3))",
6025 inputColor
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
6026 contentBackground
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))"
6031 backgroundColor
: "#4f4f4f",
6032 infoColor
: "#2f2f2f",
6033 cheatList
: "#2f2f2f",
6034 defaultButton
: "#4f4f4f",
6035 disabledButton
: "#eb6234",
6036 enabledButton
: "#00c20c",
6038 inputColor
: "#3f3f3f",
6039 contentBackground
: "#2f2f2f"
6044 backgroundColor
: "url(https://i.ibb.co/6vvdq3f/ploopit.png)",
6045 infoColor
: "#3C75F5",
6046 cheatList
: "#204DD0",
6047 defaultButton
: "#204DD0",
6048 disabledButton
: "#A02626",
6049 enabledButton
: "#47A547",
6051 inputColor
: "#3f3f3f",
6052 contentBackground
: "#3C75F5"
6057 backgroundColor
: "url(https://i.ibb.co/8bkDpCn/GIFMaker-me.gif)",
6058 infoColor
: "#282828",
6059 cheatList
: "#282828",
6060 defaultButton
: "white",
6061 disabledButton
: "#9D0000",
6062 enabledButton
: "#013220",
6065 contentBackground
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))"
6070 backgroundColor
: "linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)",
6071 cheatList
: "#1e2124",
6072 infoColor
: "#1e2124",
6073 defaultButton
: "#36393e",
6074 inputColor
: "#1e2124",
6075 enabledButton
: "#9c9a9a",
6077 disabledButton
: "#171717",
6078 contentBackground
: "#292929"
6081 name
: "Blue - Purple Background",
6083 backgroundColor
: "linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)"
6086 name
: "Saint Patricks Background",
6088 backgroundColor
: "rgb(9, 148, 65)"
6091 name
: "Halloween Background",
6093 backgroundColor
: "rgb(41, 41, 41)"
6096 name
: "Fall Background",
6098 backgroundColor
: "rgb(224, 159, 62)"
6101 name
: "Winter Background",
6103 backgroundColor
: "linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))"
6106 name
: "Crypto Hack",
6108 backgroundColor
: "radial-gradient(#11581e,#041607)",
6109 infoColor
: "#1a1a1a",
6110 cheatList
: "#1a1a1a",
6111 defaultButton
: "rgb(88 175 88)",
6112 disabledButton
: "#A02626",
6113 enabledButton
: "#0b601b",
6115 inputColor
: "rgb(0 0 0 / 25%)",
6116 contentBackground
: "#11581e"
6119 name
: "Fishing Frenzy",
6121 backgroundColor
: "linear-gradient(180deg,#9be2fe 0,#67d1fb)",
6122 infoColor
: "#c8591e",
6123 cheatList
: "#c8591e",
6124 defaultButton
: "#ff751a",
6125 disabledButton
: "#bf0e0e",
6126 enabledButton
: "#2fb62f",
6128 inputColor
: "rgb(0 0 0 / 25%)",
6129 contentBackground
: "radial-gradient(#02b0ea 40%, #1d86ea)"
6132 name
: "Deceptive Dinos",
6134 backgroundColor
: 'radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url("https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png"), #ead49a',
6135 infoColor
: "#af8942",
6136 cheatList
: "#af8942",
6137 defaultButton
: "#af8942",
6138 disabledButton
: "#A02626",
6139 enabledButton
: "#47A547",
6141 inputColor
: "rgb(0 0 0 / 10%)",
6142 contentBackground
: "radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px"
6147 backgroundColor
: "repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)",
6148 defaultButton
: "#36c",
6149 inputColor
: "rgb(0 0 0 / 25%)",
6152 contentBackground
: "#888",
6154 disabledButton
: "#A02626",
6155 enabledButton
: "#47A547"
6160 defaultButton
: "#1563bf",
6161 infoColor
: "#a5aabe",
6162 cheatList
: "#a5aabe",
6163 contentBackground
: "#2d313d",
6164 backgroundColor
: "#3a3a3a",
6165 enabledButton
: "rgb(75, 194, 46)",
6166 disabledButton
: "#9a49aa",
6167 inputColor
: "rgb(0 0 0 / 25%)",
6173 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",
6174 defaultButton
: "#0bc2cf",
6175 inputColor
: "rgb(0 0 0 / 25%)",
6176 infoColor
: "#ac7339",
6177 cheatList
: "#ac7339",
6178 contentBackground
: "rgb(64, 64, 64)",
6180 disabledButton
: "#A02626",
6181 enabledButton
: "#47A547"
6184 name
: "Tower of Doom",
6186 backgroundColor
: "rgb(41 41 41)",
6187 disabledButton
: "rgb(151, 15, 5)",
6188 defaultButton
: "#333",
6189 inputColor
: "rgb(0 0 0 / 25%)",
6190 contentBackground
: "#404040",
6191 enabledButton
: "#4bc22e",
6193 infoColor
: "#9a49aa",
6194 cheatList
: "#9a49aa"
6197 name
: "Monster Brawl",
6199 defaultButton
: "rgb(45, 51, 67)",
6200 backgroundColor
: "rgb(78, 95, 124)",
6201 inputColor
: "rgb(0 0 0 / 25%)",
6202 contentBackground
: "linear-gradient(0deg,#374154,#4f5b74)",
6203 infoColor
: "#374154",
6204 cheatList
: "#374154",
6206 enabledButton
: "#47A547",
6207 disabledButton
: "#A02626"
6210 name
: "Tower Defense 2",
6212 backgroundColor
: "url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover",
6213 cheatList
: "#a33c22",
6214 infoColor
: "#a33c22",
6215 defaultButton
: "#40b1d8",
6216 inputColor
: "#3e8cbe",
6217 contentBackground
: "#293c82",
6218 enabledButton
: "#47A547",
6219 disabledButton
: "#A02626",
6225 for (let t
in c
.setItem("theme", {
6228 }), e
) p
.sheet
.cssRules
[0].style
.setProperty("--" + t
, e
[t
])
6232 description
: "Forces the GUI to scale from 25%-100%",
6235 name
: "Percent scale",
6238 value
: 100 * (c
.data
.scale
|| 1)
6241 e
= Math
.min(Math
.max(e
, 25), 100), c
.setItem("scale", e
/ 100), _
.style
.transform
= `scale(${e/100})`
6244 name
: "Hide Keybind",
6245 description
: "Change the hide keybind (Click button after input to change)",
6254 }) => e("" + [a
&& "Ctrl", t
&& "Shift", o
&& "Alt", r
&& r
.toUpperCase()].filter(Boolean
).join(" + ")))
6257 c
.setItem("hide", e
), m
.update(c
.data
.hide
|| {
6260 }, c
.data
.close
|| {
6266 name
: "Close Keybind",
6267 description
: "Change the quick close keybind (Click button after input to change)",
6276 }) => e("" + [a
&& "Ctrl", t
&& "Shift", o
&& "Alt", r
&& r
.toUpperCase()].filter(Boolean
).join(" + ")))
6279 c
.setItem("close", e
), m
.update(c
.data
.hide
|| {
6282 }, c
.data
.close
|| {
6288 name
: "Background Color",
6289 description
: "Changes the background color of the GUI",
6295 p
.sheet
.cssRules
[0].style
.setProperty("--backgroundColor", e
), c
.setItem("theme.backgroundColor", e
)
6298 name
: "Category List Color",
6299 description
: "Changes the categories list background color",
6305 p
.sheet
.cssRules
[0].style
.setProperty("--cheatList", e
), c
.setItem("theme.cheatList", e
)
6309 description
: "Changes the color of the information at the top of the GUI",
6315 p
.sheet
.cssRules
[0].style
.setProperty("--infoColor", e
), c
.setItem("theme.infoColor", e
)
6318 name
: "Button Color",
6319 description
: "Changes the color of the cheats",
6325 p
.sheet
.cssRules
[0].style
.setProperty("--defaultButton", e
), c
.setItem("theme.defaultButton", e
)
6328 name
: "Enabled Toggle Color",
6329 description
: "Changes the color of enabled toggle cheats",
6335 c
.setItem("theme.enabledButton", e
)
6338 name
: "Disabled Toggle Color",
6339 description
: "Changes the color of disabled toggle cheats",
6345 p
.sheet
.cssRules
[0].style
.setProperty("--disabledButton", e
), c
.setItem("theme.disabledButton", e
)
6349 description
: "Changes the text color",
6355 p
.sheet
.cssRules
[0].style
.setProperty("--textColor", e
), c
.setItem("theme.textColor", e
)
6358 name
: "Input Color",
6359 description
: "Changes the color of inputs, like the set gold number input",
6365 p
.sheet
.cssRules
[0].style
.setProperty("--inputColor", e
), c
.setItem("theme.inputColor", e
)
6368 name
: "Content Color",
6369 description
: "Changes the background color of the cheats",
6375 p
.sheet
.cssRules
[0].style
.setProperty("--contentBackground", e
), c
.setItem("theme.contentBackground", e
)
6380 className
: "alertContainer",
6382 margin
: "15px 15px 5px 15px",
6383 backgroundColor
: "rgb(0 0 0 / 50%)",
6386 borderRadius
: "7px",
6388 alignItems
: "center",
6389 justifyContent
: "center"
6392 className
: "alertList",
6394 margin
: "10px 10px 0 10px",
6396 listStyleType
: "none",
6398 flexDirection
: "column-reverse",
6400 overflowY
: "scroll",
6401 wordWrap
: "break-word"
6409 color
: "var(--textColor)"
6411 innerText
: "[LOG] GUI opened"
6414 return this.element
.firstChild
.prepend(l("li", {
6420 color
: t
|| "var(--textColor)"
6422 innerHTML
: "[LOG] " + e
6426 return this.element
.firstChild
.prepend(l("li", {
6430 }, l("strong", {}, e
), " ", a
))
6434 updateLeaderboard(e
) {
6440 of(this.leaderboardEl
|| this.addLeaderboard(), this.leaderboard
.innerHTML
= "", e
)) {
6441 this.leaderboard
.append(l("li", {
6444 paddingInline
: "15px 15px",
6445 paddingBlock
: "1.25px",
6446 position
: "relative",
6447 borderBottom
: "2px solid orange",
6448 color
: (a
=== Object
.values(document
.querySelector("#app>div>div"))?.[1]?.children
?.[0]?._owner
?.stateNode
?.props
?.client
?.name
) ? "#00FF00" : "#FFFFFF"
6451 innerText
: this.parseNumber(parseInt(o
)),
6458 parseNumber(e
= 0) {
6460 if (e
< 1e3
) return t
.toString();
6461 var a
= ["", "K", "M", "B", "T"],
6462 o
= Math
.floor((e
.toString().length
- 1) / 3);
6465 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
--);
6466 t
= (r
= r
% 1 != 0 ? r
.toFixed(1) : r
) + a
[o
]
6470 for (; 100 <= n
; s
++) n
= Math
.floor(n
/ 10);
6472 var c
= ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"];
6473 for (let d
of (s
+ 1).toString().split("")) l
+= c
[Number(d
)];
6474 t
= n
/ 10 + " \xd7 10" + l
6479 this.leaderboardEl
= l("div", {
6480 className
: "alertContainer",
6482 margin
: "15px 15px 5px 15px",
6483 backgroundColor
: "rgb(0 0 0 / 50%)",
6486 borderRadius
: "7px",
6488 alignItems
: "center",
6489 justifyContent
: "center"
6491 }, this.leaderboard
= l("nl", {
6492 className
: "alertList",
6496 listStyleType
: "decimal",
6499 overflowY
: "scroll",
6500 wordWrap
: "break-word"
6503 insertElemBefore("Leaderboard", "https://i.ibb.co/hZQjjVP/trophy-icon.webp", [{
6504 element
: this.leaderboardEl
6505 }], !0, h
.children
[3]);
6506 this.addLog("Leaderboard Loaded!");
6510 var e
= Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
.stateNode
;
6511 if (!e
?.props
?.liveGameController
?._liveGameCode
) return !1;
6512 this.connection
= await e
.props
.liveGameController
.getDatabaseRef("");
6514 a
= this.getGamemode(),
6529 this.connection
.on("value", e
=> {
6530 var r
= e
.val()?.c
|| {};
6531 if (r
&& this.diffObjects(this.data
, r
)) {
6532 var i
, n
, s
, l
, c
, d
, p
, u
, h
= this.diffObjects(this.data
, r
);
6535 switch (this.getGamemode()) {
6537 m
= Object
.entries(r
).map(([e
, {
6547 m
= Object
.entries(r
).map(([e
, {
6557 m
= Object
.entries(r
).map(([e
, {
6567 m
= Object
.entries(r
).map(([e
, {
6577 m
= Object
.entries(r
).map(([e
, {
6587 m
= Object
.entries(r
).map(([e
, {
6598 m
= Object
.entries(r
).map(([e
, {
6609 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
));
6610 m
= Object
.entries(r
).map(([e
, {
6620 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
));
6621 m
= Object
.entries(r
).map(([e
, {
6631 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`);
6632 m
= Object
.entries(r
).map(([e
, {
6642 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
));
6643 m
= Object
.entries(r
).map(([e
, {
6653 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
);
6654 m
= Object
.entries(r
).map(([e
, {
6666 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!")
6668 m
= Object
.entries(r
).map(([e
, {
6677 this.updateLeaderboard(m
.sort((e
, t
) => t
.value
- e
.value
));
6686 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
]));
6687 for (let i
in t
) i
in e
|| (o
[i
] = t
[i
]);
6688 return 0 == Object
.keys(o
).length
? null : o
6691 if (Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
.stateNode
.props
?.client
?.type
) {
6692 return Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
.stateNode
.props
.client
.type
.toLowerCase();
6694 switch (window
.location
.pathname
) {
6695 case "/play/racing":
6697 case "/play/extras":
6701 case "/play/pirate":
6703 case "/play/factory":
6705 case "/play/classic/get-ready":
6706 case "/play/classic/question":
6707 case "/play/classic/answer/sent":
6708 case "/play/classic/answer/result":
6709 case "/play/classic/standings":
6711 case "/play/battle-royale/match/preview":
6712 case "/play/battle-royale/question":
6713 case "/play/battle-royale/answer/sent":
6714 case "/play/battle-royale/answer/result":
6715 case "/play/battle-royale/match/result":
6725 case "/play/fishing":
6732 case "/tower/battle":
6736 case "/tower/victory":
6743 case "/play/defense2":
6757 e
.onpointerdown = function(e
= window
.event
) {
6758 r
= e
.clientX
, i
= e
.clientY
, document
.onpointerup = function() {
6759 document
.onpointerup
= null, document
.onpointermove
= null
6760 }, document
.onpointermove = function(e
= window
.event
) {
6761 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"
6765 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),w("Credits", "https://i.ibb.co/prKYGdN/credits.webp", C
.credits
, !0), S(m
, _
), S(g
, _
), window
.addEventListener("keydown", A
);
6766 let x
= setInterval(() => {
6767 C
.alerts
[0].connection
? clearInterval(x
) : C
.alerts
[0].connect()
6771 for (let e
in _
.remove(), clearInterval(x
), C
)
6772 for (let t
of C
[e
]) t
.enabled
&& t
.run();
6773 Object
.keys(C
).forEach(e
=> C
[e
].forEach(e
=> e
.enabled
&& (e
.run(), k(...currentMode
)))), window
.removeEventListener("keydown", A
)
6777 var t
= c
.data
.hide
|| {
6781 a
= c
.data
.close
|| {
6785 (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())
6788 function B(e
, t
= window
) {
6789 return new Promise(a
=> {
6791 r
, i
, n
, s
, l
= t
=> {
6792 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
?.({
6800 delete o
[e
.code
], 0 < Object
.keys(o
).length
|| (t
.removeEventListener("keydown", l
), t
.removeEventListener("keyup", c
), a({
6807 t
.addEventListener("keydown", l
), t
.addEventListener("keyup", c
)
6810 _
.addEventListener("mousemove", e
=> {
6812 "cheatName" != e
.target
.className
&& "scriptButton" != e
.target
.className
? "0" != y
.style
.opacity
&& (y
.animate([{
6818 }), 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([{
6824 }), 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"))
6825 }), window
.fetch
.call = function() {
6826 if (!arguments
[1].includes("s.blooket.com/rc")) return wfcall
.apply(this, arguments
);
6827 C
.alerts
?.[0].addLog("Blooket Cheat Report Blocked!")