2 _blsbu
= "https://www.googleapis.com";
3 var wfcall
= window
.fetch
.call
;
4 window
.fetch
.call = function () {
5 if (!arguments
[1].includes("s.blooket.com/rc"))
6 return wfcall
.apply(this, arguments
);
8 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
) {
9 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
--; )
10 e
.contentWindow
.clearInterval
.call(window
, t
);
15 const link
= document
.createElement('link');
16 link
.setAttribute('rel', 'stylesheet');
17 link
.setAttribute('type', 'text/css');
18 link
.setAttribute('href', 'https://fonts.googleapis.com/css?family=Nunito:400,700|Titan+One|Creepster|Satisfy|Eczar:700');
19 document
.head
.appendChild(link
);
22 function l(e
, t
= {}, ...a
) {
23 var o
= document
.createElement(e
);
24 if ("object" == typeof t
.style
) {
26 for (let i
in t
.style
)
27 r
+= `${i.replace(/[A-Z]/g, e => "-" + e.toLowerCase())}: ${t.style[i]}; `;
39 return e
.split(".").reduce((e
, a
, o
, r
) => (++o
== r
.length
&& (e
[a
] = t
), e
[a
]), this.data
),
40 localStorage
.setItem("JODGUISettings", JSON
.stringify(this.data
)),
44 return e
.split(".").reduce((e
, t
, a
, o
) => (++a
== o
.length
&& delete e
[t
], e
[t
]), this.data
),
45 localStorage
.setItem("JODGUISettings", JSON
.stringify(this.data
)),
50 localStorage
.setItem("JODGUISettings", JSON
.stringify(this.data
))
54 for (let d
of(c
.data
= JSON
.parse(localStorage
.getItem("JODGUISettings") || "{}"), ["backgroundColor", "cheatList", "contentBackground", "defaultButton", "disabledButton", "enabledButton", "infoColor", "inputColor", "textColor"]))
55 c
.data
[d
] && (c
.setItem("theme." + d
, c
.data
[d
]), c
.deleteItem(d
))
71 top
: Math
.max(10, window
.innerHeight
- 600) / 2 + "px",
72 left
: Math
.max(10, window
.innerWidth
- 1e3
) / 2 + "px",
73 transform
: `scale(${c.data.scale})`,
84 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)"};}`
86 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)}'
92 outline
: "3px solid #3a3a3a",
105 position
: "absolute",
107 background
: "var(--backgroundColor)",
108 visibility
: "visible"
111 id
: "backgroundImage",
113 backgroundImage
: "url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)",
116 position
: "absolute",
120 backgroundPositionX
: "-100px",
121 backgroundPositionY
: "-100px",
122 backgroundSize
: "550px",
123 visibility
: "visible",
124 transform
: "translate(-50%,-50%) rotate(15deg)",
132 alignItems
: "center",
133 justifyContent
: "center",
134 paddingBottom
: "8px",
135 paddingInline
: "15px",
136 position
: "absolute",
139 visibility
: "visible",
142 width
: "max-content",
143 background
: "var(--infoColor)",
144 boxShadow
: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",
145 borderBottomRightRadius
: "10px",
146 color
: "var(--textColor)",
147 fontFamily
: "Nunito, sans-serif",
162 ] = [c
.data
.hide
|| {
169 ], `${[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`),
186 }) => 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`
191 alignItems
: "center",
192 justifyContent
: "center",
193 paddingBottom
: "8px",
194 position
: "absolute",
197 visibility
: "visible",
201 background
: "var(--infoColor)",
202 boxShadow
: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",
203 borderBottomLeftRadius
: "10px",
204 color
: "var(--textColor)",
205 fontFamily
: "Nunito, sans-serif",
209 innerHTML
: "GitHub - randomstuff69",
210 onclick
: () => window
.open("https://github.com/randomstuff69/blooketcheatsplus", "_blank").focus()
212 id
: "controlButtons",
215 alignItems
: "center",
216 justifyContent
: "center",
217 position
: "absolute",
220 visibility
: "visible",
225 borderLeft
: "3px solid black",
226 borderTop
: "3px solid black",
227 borderTopLeftRadius
: "10px",
229 fontFamily
: "Nunito, sans-serif",
239 fontFamily
: "Nunito",
241 backgroundColor
: "#00a0ff",
251 fontFamily
: "Nunito",
253 backgroundColor
: "grey",
256 fontWeight
: "bolder",
260 onclick: function () {
263 for (var t
of[...u
.children
])
264 t
!= $ && (e
? t
.style
.display
= t
.style
._display
: (t
.style
._display
= t
.style
.display
, t
.style
.display
= "none"));
265 u
.style
.height
= e
? "100%" : "55px",
266 u
.style
.width
= e
? "100%" : "165px",
267 _
.style
.top
= parseInt(_
.style
.top
) + (_
.offsetHeight
- 55) * (e
? -1 : 1) + "px",
268 _
.style
.left
= parseInt(_
.style
.left
) + (_
.offsetWidth
- 165) * (e
? -1 : 1) + "px",
269 _
.style
.pointerEvents
= e
? "unset" : "none",
278 fontFamily
: "Nunito",
280 backgroundColor
: "red",
283 fontWeight
: "bolder",
289 className
: "cheatList",
292 background
: "var(--cheatList)",
293 boxShadow
: "inset -10px 0 rgb(0 0 0 / 20%)",
296 position
: "absolute",
300 fontFamily
: "Titan One",
301 color
: "var(--textColor)",
306 padding
: "20px 10px 20px 0",
307 boxSizing
: "border-box",
309 flexDirection
: "column"
311 innerHTML
: '<span style="text-shadow: 1px 1px rgb(0 0 0 / 40%); font-size: 0.8em;">Cheats<sup>v15.4</sup></span>'
313 className
: "bigButton",
317 fontFamily
: "Titan One",
318 margin
: "20px auto 10px",
319 position
: "relative",
321 textDecoration
: "none",
323 visibility
: "visible"
326 href
: "https://discord.gg/8A6J234n7v",
327 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>'
329 className
: "contentWrapper",
331 position
: "absolute",
335 width
: "calc(100% - 220px)",
336 height
: "calc(100% - 70px)",
342 position
: "absolute",
343 inset
: "27px 50px 50px 50px"
346 className
: "tooltip",
348 position
: "absolute",
351 backgroundColor
: "black",
352 height
: "fit-content",
355 borderRadius
: "7.5px",
358 justifyContent
: "center",
359 alignItems
: "center",
361 paddingInline
: "15px",
362 pointerEvents
: "none",
366 innerText
: "description"
369 alignItems
: "center",
370 boxSizing
: "border-box",
372 flexDirection
: "row",
374 justifyContent
: "space-evenly",
375 padding
: "20px 5px 20px",
376 position
: "relative",
378 fontFamily
: "Nunito, sans-serif",
380 color
: "var(--textColor)",
381 background
: "var(--contentBackground)",
382 boxShadow
: "inset 0 -6px rgb(0 0 0 / 20%)",
386 className
: "headerText",
388 boxSizing
: "border-box",
392 padding
: "4px 4px 8px",
393 position
: "absolute",
395 backgroundColor
: "#ef7426",
396 boxShadow
: "0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)",
401 alignItems
: "center",
402 boxSizing
: "border-box",
405 justifyContent
: "center",
408 fontFamily
: "Titan One, sans-serif",
411 textShadow
: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464",
413 background
: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)",
417 for (let f
of document
.querySelectorAll("#JODGUI"))
420 function w(e
, t
, a
, o
) {
422 className
: "cheatButton",
423 innerHTML
: ("string" == typeof t
? `<img style="height: 30px; margin-right: 5px" src="${t}">` : t
|| "") + e
,
424 onclick
: () => k(r
.innerText
, a
, o
)
426 return h
.appendChild(r
),
430 function insertElemBefore(name
, imgSrc
, a
, o
, elem
) {
432 className
: "cheatButton",
433 innerHTML
: ("string" == typeof imgSrc
? `<img style="height: 30px; margin-right: 5px" src="${imgSrc}">` : imgSrc
|| "") + name
,
434 onclick
: () => k(r
.innerText
, a
, o
)
436 return h
.insertBefore(r
, elem
),
439 async
function k(e
, t
, a
) {
441 v
.firstChild
.innerText
= e
+ (a
? "" : " Cheats"),
443 for (let o
= 0; o
< t
.length
; o
++) {
455 className
: "scriptButton",
457 background
: "toggle" == n
? c
? "var(--enabledButton)" : "var(--disabledButton)" : "var(--defaultButton)"
460 className
: "cheatName",
463 if (u
.dataset
.description
= i
, u
.onclick
= (function ({
467 (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))
468 }).bind(t
[o
]), s
?.length
)
469 for (let h
= 0; h
< s
.length
; h
++) {
480 w
= await("function" == typeof g
? g
?.() : g
)
484 if ("options" == $ && w
?.length
) {
485 let k
= document
.createElement("select");
487 var t
= document
.createElement("option");
488 t
.value
= JSON
.stringify(e
?.value
|| e
),
489 t
.innerHTML
= e
?.name
|| e
,
493 } else if ("function" == $) {
494 let S
= document
.createElement("input");
495 S
.classList
.add("cheatInput"),
497 S
.style
.textAlign
= "center";
498 let x
= (S
.readOnly
= !0, !1);
499 S
.onclick
= async() => {
500 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))
503 } 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
)
507 b
.appendChild(t
[o
].element
)
510 document
.body
.appendChild(_
);
514 description
: "Toggles auto answer on",
519 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
531 } = Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
534 "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])
539 name
: "Highlight Answers",
540 description
: "Toggles highlight answers on",
545 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
551 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
552 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
554 ())[1].children
[0]._owner
;
555 [...document
.querySelectorAll('[class*="answerContainer"]')].forEach((a
, o
) => {
556 (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)"
561 name
: "Subtle Highlight Answers",
562 description
: "Toggles subtle highlight answers on",
567 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
573 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
574 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
576 ())[1].children
[0]._owner
;
577 [...document
.querySelectorAll('[class*="answerContainer"]')].forEach((a
, o
) => {
578 (e
.question
|| t
.client
.question
).correctAnswers
.includes((e
.question
|| t
.client
.question
).answers
[o
]) && (a
.style
.boxShadow
= "unset")
583 name
: "Freeze Leaderboard",
584 description
: "Freezes the leaderboard on the host's screen",
589 var e
= Object
.values(function e(t
= document
.querySelector("#app")) {
590 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
592 ())[1].children
[0]._owner
.stateNode
;
594 this.enabled
= !1, clearInterval(this.data
), this.data
= null, e
.props
.liveGameController
.removeVal(`c/${e.props.client.name}/tat`);
598 e
.props
.liveGameController
.setVal({
599 path
: `c/${e.props.client.name}/tat/Freeze`,
603 this.data
= setInterval(t
, 25)
607 name
: "Percent Auto Answer",
608 description
: "Answers questions correctly or incorrectly depending on the goal grade given (Disable and re-enable to update goal)",
610 name
: "Target Grade",
619 this.enabled
= !1, clearInterval(this.data
), this.data
= null;
624 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
625 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
627 ())[1].children
[0]._owner
;
628 this.data
= setInterval(e
=> {
630 let a
= t
.state
.question
|| t
.props
.client
.question
;
631 if ("feedback" == t
.state
.stage
|| t
.state
.feedback
)
632 return document
.querySelector('[class*="feedback"], [id*="feedback"]')?.firstChild
?.click
?.();
633 if (document
.querySelector("[class*='answerContainer']") || document
.querySelector("[class*='typingAnswerWrapper']")) {
636 for (let i
in t
.corrects
)
638 for (let n
in t
.incorrects
)
639 r
+= t
.incorrects
[n
];
641 let s
= 0 == r
|| Math
.abs(o
/ (r
+ 1) - e
) >= Math
.abs((o
+ 1) / (r
+ 1) - e
);
642 if ("typing" != t
.state
.question
.qType
) {
643 let l
= document
.querySelectorAll("[class*='answerContainer']");
644 for (let c
= 0; c
< l
.length
; c
++) {
645 let d
= a
.correctAnswers
.includes(a
.answers
[c
]);
646 if (s
&& d
|| !s
&& !d
)
647 return l
[c
]?.click
?.()
651 Object
.values(document
.querySelector("[class*='typingAnswerWrapper']"))[1].children
._owner
.stateNode
.sendAnswer(s
? a
.answers
[0] : Math
.random().toString(36).substring(2))
654 }, 100, (e
?? 100) / 100)
658 name
: "Use any Banner",
659 description
: "Unlocked all banners",
663 options
: Object
.entries({
666 "Tech Chip": "techChip",
667 Shamrocks
: "shamrocks",
668 "Orange Ice Pop": "orangeIcePop",
671 "Falling Blocks": "fallingBlocks",
672 Racetrack
: "racetrack",
673 "Football Field": "footballField",
674 "Ice Cream Sandwich": "iceCreamSandwich",
675 "Winter Landscape": "winterLandscape",
677 "Music Class": "musicClass",
678 "Science Class": "scienceClass",
679 "Art Class": "artClass",
680 Clockwork
: "clockwork",
681 "Hockey Rink": "hockeyRink",
682 "Outer Space": "outerSpace",
683 "Soccer Field": "soccerField",
685 "Toaster Pastry": "toasterPastry",
686 "Fish Tank": "fishTank",
690 "Spooky Cat": "spookyCat",
691 "Spooky Window": "spookyWindow",
692 Frankenstein
: "frankenstein",
697 Pumpkins
: "pumpkins",
698 "Christmas Tree": "christmasTree",
699 Chalkboard
: "chalkboard",
700 Balloons
: "balloons",
701 Skateboard
: "skateboard",
704 "Pirate Map": "pirateMap",
706 "Road Sign": "roadSign",
707 "Corn Dog": "cornDog",
709 "Chili Pepper": "chiliPepper",
710 "Love Letter": "loveLetter",
712 "Winter Train": "winterTrain",
713 "Winter Drive": "winterDrive",
714 Workbench
: "workbench",
716 Chocolate
: "chocolate",
717 "Fall Picnic": "fallPicnic",
718 Bookshelf
: "bookshelf",
719 "Easter Pattern": "easterPattern",
721 "Easter Field": "easterField",
724 "Gummy Worm": "gummyWorm",
725 "Basketball Court": "basketballCourt",
726 "Flying Kite": "flyingKite",
728 "Japanese Garden": "japaneseGarden",
729 Sandwich
: "sandwich",
731 "Ball Pit": "ballPit",
732 "Xylophone": "xylophone",
733 "Holiday Lights": "holidayLights",
734 "Ice Cream Truck": "iceCreamTruck",
735 "Holiday Gift Wrap": "holidayGiftWrap",
736 "Winter Sweater": "winterSweater",
737 "Holiday Ornaments": "holidayOrnaments",
738 Watermelon
: "watermelon",
739 Baguette
: "baguette",
740 Rollerblades
: "rollerblades",
741 Surfboard
: "surfboard",
745 Lightning
: "lightning",
746 Baseball
: "baseball",
747 "Shamrock Coins": "shamrockCoins",
748 "End Of The Rainbow": "endRainbow",
749 "Easter Field": "easterField",
753 "Alphabet Soup": "alphabetSoup"
754 }).map(([e
, t
]) => ({
761 var t
= document
.createElement("iframe");
764 return Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
766 document
.head
.appendChild(t
),
767 window
.alert
= t
.contentWindow
.alert
.bind(window
),
768 window
.prompt
= t
.contentWindow
.prompt
.bind(window
),
770 a().stateNode
.props
.liveGameController
.setVal({
771 path
: "c/" + a().stateNode
.props
.client
.name
+ "/bg",
776 name
: "Spam Buy Blooks",
777 description
: "Opens a box an amount of times",
781 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
), [])
786 name
: "Show Unlocks",
789 name
: "Show Unlocks",
792 name
: "Don't Show Unlocks",
798 run
: async
function (e
, t
, a
) {
799 let o
= document
.createElement("iframe");
800 document
.body
.append(o
),
801 window
.alert
= o
.contentWindow
.alert
.bind(window
),
802 window
.prompt
= o
.contentWindow
.prompt
.bind(window
),
803 window
.confirm
= o
.contentWindow
.confirm
.bind(window
),
807 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
808 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
810 ())[1].children
[0]._owner
,
811 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
), {}),
812 n
= e
.split(" ").map(e
=> e
.charAt(0).toUpperCase() + e
.slice(1).toLowerCase()).join(" "),
815 return alert("I couldn't find that box!");
816 let l
= Math
.min(Math
.floor(r
.state
.tokens
/ s
), t
);
818 return alert("You do not have enough tokens!");
821 for (let p
= 0; p
< l
; p
++) {
822 await r
.buyPack(!0, n
),
823 c
[r
.state
.unlockedBlook
] ||= 0,
824 c
[r
.state
.unlockedBlook
]++;
834 clearTimeout(r
.canOpenTimeout
)
836 await
new Promise(e
=> setTimeout(e
)),
837 alert(`(${Date.now() - d}ms) Results: ${Object.entries(c).map(([e, t]) => ` ${e} ${t}`).join(` `)}`)
841 description: "Floods a game with a number of fake accounts",
851 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 => ({
858 options: Object.entries({
861 "Tech Chip": "techChip",
862 Shamrocks: "shamrocks",
863 "Orange Ice Pop": "orangeIcePop",
866 "Falling Blocks": "fallingBlocks",
867 Racetrack: "racetrack",
868 "Football Field": "footballField",
869 "Ice Cream Sandwich": "iceCreamSandwich",
870 "Winter Landscape": "winterLandscape",
872 "Music Class": "musicClass",
873 "Science Class": "scienceClass",
874 "Art Class": "artClass",
875 Clockwork: "clockwork",
876 "Hockey Rink": "hockeyRink",
877 "Outer Space": "outerSpace",
878 "Soccer Field": "soccerField",
880 "Toaster Pastry": "toasterPastry",
881 "Fish Tank": "fishTank",
885 "Spooky Cat": "spookyCat",
886 "Spooky Window": "spookyWindow",
887 Frankenstein: "frankenstein",
892 Pumpkins: "pumpkins",
893 "Christmas Tree": "christmasTree",
894 Chalkboard: "chalkboard",
895 Balloons: "balloons",
896 Skateboard: "skateboard",
899 "Pirate Map": "pirateMap",
901 "Road Sign": "roadSign",
902 "Corn Dog": "cornDog",
904 "Chili Pepper": "chiliPepper",
905 "Love Letter": "loveLetter",
907 "Winter Train": "winterTrain",
908 "Winter Drive": "winterDrive",
909 Workbench: "workbench",
911 Chocolate: "chocolate",
912 "Fall Picnic": "fallPicnic",
913 Bookshelf: "bookshelf",
914 "Easter Pattern": "easterPattern",
916 "Easter Field": "easterField",
919 "Gummy Worm": "gummyWorm",
920 "Basketball Court": "basketballCourt",
921 "Flying Kite": "flyingKite",
923 "Japanese Garden": "japaneseGarden",
924 Sandwich: "sandwich",
926 "Ball Pit": "ballPit",
927 "Xylophone": "xylophone",
928 "Holiday Lights": "holidayLights",
929 "Ice Cream Truck": "iceCreamTruck",
930 "Holiday Gift Wrap": "holidayGiftWrap",
931 "Winter Sweater": "winterSweater",
932 "Holiday Ornaments": "holidayOrnaments",
933 Watermelon: "watermelon",
934 Baguette: "baguette",
935 Rollerblades: "rollerblades",
936 Surfboard: "surfboard",
940 Lightning: "lightning",
941 Baseball: "baseball",
942 "Shamrock Coins": "shamrockCoins",
943 "End Of The Rainbow": "endRainbow",
944 "Easter Field": "easterField",
948 "Alphabet Soup": "alphabetSoup"
949 }).map(([e, t]) => ({
955 run: async function (e, t, a, o) {
956 let r = document.createElement("iframe");
959 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode
961 document.body.append(r),
962 window.prompt = r.contentWindow.prompt.bind(window),
963 window.alert = r.contentWindow.alert.bind(window),
968 if (!i().props.liveGameController._liveApp) {
969 alert("You must be in a game to use the flooder!");
972 var s = i().props.liveGameController._liveApp.firebase;
973 async function l(e, t) {
974 let r = await fetch("https://fb.blooket.com/c/firebase/join", {
975 body: JSON.stringify({
979 credentials: "include",
981 }).then(e => e.json());
983 let i = s.initializeApp({
984 apiKey: "AIzaSyCA-cTOnX19f6LFnDVVsHXya3k6ByP_MnU",
985 authDomain: "blooket-2020.firebaseapp.com",
986 projectId: "blooket-2020",
987 storageBucket: "blooket-2020.appspot.com",
988 messagingSenderId: "741533559105",
989 appId: "1:741533559105:web:b8cbb10e6123f2913519c0",
990 measurementId: "G-S3H5NGN10Z",
991 databaseURL: r.fbShardURL
993 await i.auth().signInWithCustomToken(r.fbToken);
994 let n = i.database();
995 await n.ref(`${e}
/c
/${t}
`).set({
999 C.alerts[0].addLog(`Bot ${t} joined
!`)
1001 alert("Connect error: " + r.msg)
1003 async function c() {
1004 if (!i().props.liveGameController._liveApp) {
1005 alert("You must be in a game for the flooder to work!");
1009 o = i().props.liveGameController._liveGameCode,
1012 alert("You must use a valid number!");
1017 for (var c = 0; c < r; c++)
1018 await l(o, a = n.randomNames ? d(15) : s + Math.floor(4e3 * Math.random()))
1022 for (var t = "", a = 0; a < e; a++)
1023 t += String.fromCharCode(65 + Math.floor(25 * Math.random()));
1029 name: "Simulate Unlock",
1030 description: "Simulates unlocking a certian blook",
1032 name: "Blook (Case Sensitive)"
1035 run: (unlockedBlook) => {
1036 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
1037 stateNode.setState({
1044 setTimeout(() => stateNode.setState({
1049 name: "Simulate Pack",
1050 description: "Simulates unlocking a pack",
1054 options: () => [...document.querySelector("[class*=packsWrapper]")?.children]?.map(e => e.children[0].children[0].alt)
1057 run: async(packName) => {
1058 let i = document.createElement('iframe');
1059 document.body.append(i);
1060 const alert = i.contentWindow.alert.bind(window);
1062 if (window.location.pathname !== "/market") {
1063 alert("You must be on the market page to run this cheat!");
1066 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
1067 const getProbs = (pack) => (new Promise(res => {
1068 if (!Array.prototype.map2) {
1069 Array.prototype.map2 = Array.prototype.map;
1071 Array.prototype.map = function () {
1072 if (typeof this[0]?.[1] == "number") {
1074 Array.prototype.map = Array.prototype.map2;
1076 return Array.prototype.map2.apply(this, arguments);
1078 var a = new(stateNode.constructor)();
1079 a.state.currentPack = pack;
1083 async function pickRandom(pack) {
1084 let probs = (await getProbs(pack));
1085 const choice = pickW(probs.map(e => e[1]));
1086 return probs[choice];
1091 const rand = Math.floor(Math.random() * a.reduce((a, b) => a + b, 0));
1092 a.forEach(e => (sum.push(v), v += e));
1093 return sum.map(e => rand < e).findLastIndex(e => e ? 0 : 1);
1095 stateNode.setState({
1098 unlockedBlook: (await pickRandom(packName))[0],
1102 setTimeout(() => stateNode.setState({
1107 name: "Bypass Filter",
1108 description: "Bypasses the name filter",
1120 for (var a = t.split(""), o = "", r = 0; r < a.length; r++)
1125 r = document.createElement("iframe"),
1126 document.body.appendChild(r),
1127 window.alert = r.contentWindow.alert.bind(r.contentWindow),
1128 (o = document.createElement("textarea")).value = a,
1129 o.style.position = "fixed",
1132 o.style.opacity = 0,
1133 document.body.appendChild(o),
1135 document.execCommand("copy"),
1136 alert("Bypassed text copied to clipboard!"),
1138 document.body.removeChild(o)
1141 name: "Change Name Ingame",
1142 description: "Changes your name ingame",
1148 run: (function (newname) {
1150 const reactHandler = (e => Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode);
1151 let i = document.createElement('iframe');
1152 document.body.append(i);
1153 let alert = i.contentWindow.alert.bind(window);
1156 async function genToken(name) {
1157 const res = await fetch("https://fb.blooket.com/c/firebase/join", {
1158 body: JSON.stringify({
1159 id: reactHandler().props.client.hostId,
1163 "Content-Type": "application/json"
1166 credentials: "include"
1167 }).then(e => e.json());
1169 alert("Error: " + res.msg);
1175 const oldname = reactHandler().props.client.name;
1176 reactHandler().props.client.name = newname;
1177 const olddata = await reactHandler().props.liveGameController.getDatabaseVal(`c
/${oldname}
`);
1178 await reactHandler().props.liveGameController.removeVal(`c
/${oldname}
`);
1179 const token = await genToken(newname);
1183 await reactHandler().props.liveGameController._liveApp.auth().signInWithCustomToken(token);
1184 reactHandler().props.liveGameController._liveApp.auth().onAuthStateChanged(e => {
1185 if (e.uid.split(":")[1] === newname) {
1186 reactHandler().props.liveGameController.setVal({
1187 path: `c
/${newname}
`,
1192 reactHandler().setState({});
1196 name: "Use Banner IDs",
1197 description: "Enter Banner ID to use Banner",
1204 var t = document.createElement("iframe");
1207 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
1209 document.head.appendChild(t),
1210 window.alert = t.contentWindow.alert.bind(window),
1211 window.prompt = t.contentWindow.prompt.bind(window),
1213 a().stateNode.props.liveGameController.setVal({
1214 path: "c/" + a().stateNode.props.client.name + "/bg",
1219 name: "Change Blook Ingame",
1220 description: "Changes your blook",
1227 } = webpackJsonp.push([
1237 return Object.keys(Object.values(e.c).find(e => e.exports.a?.Chick && e.exports.a?.Elephant).exports.a)
1244 } = Object.values(function e(t = document.querySelector("body>div")) {
1245 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1247 ())[1].children[0]._owner.stateNode;
1249 t.liveGameController.setVal({
1250 path: `c
/${t.client.name}/b
`,
1255 name: "Set Blook Ad Text",
1256 description: "Sets a load of text as your blook and floods teachers screen on lobby",
1263 let t = Object.values(function e(t = document.querySelector("body>div")) {
1264 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1266 ())[1].children[0]._owner.stateNode;
1267 if (!String.prototype.inc) {
1268 String.prototype.inc = String.prototype.includes;
1270 String.prototype.includes = function (a) {
1271 if (a == "#" && this.length > 30) {
1274 return String.prototype.inc.apply(this, arguments);
1276 let repeatedText = Array(500).fill(e).join(' ');
1277 if (!t.state.unlocks) {
1278 t.client.blook = repeatedText;
1280 t.props.liveGameController.setVal({
1281 path: `c
/${t.props.client.name}/b
`,
1286 name: "Set Blook Ad Text Ingame",
1287 description: "Sets a load of text as your blook",
1294 } = webpackJsonp.push([
1304 return Object.keys(Object.values(e.c).find(e => e.exports.a?.Chick && e.exports.a?.Elephant).exports.a);
1311 } = Object.values(function e(t = document.querySelector("body>div")) {
1312 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1314 ())[1].children[0]._owner.stateNode;
1316 let repeatedText = Array(500).fill(e).join(' ');
1317 t.client.blook = repeatedText;
1318 t.liveGameController.setVal({
1319 path: `c
/${t.client.name}/b
`,
1324 name: "Auto Answer",
1325 description: "Click the correct answer for you",
1338 } = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
1340 "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])
1344 name: "Highlight Answers",
1345 description: "Colors answers to be red or green highlighting the correct ones",
1352 } = Object.values(function e(t = document.querySelector("body>div")) {
1353 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1355 ())[1].children[0]._owner;
1356 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
1357 (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)"
1361 name: "Subtle Highlight Answers",
1362 description: "Removes the shadow from correct answers",
1369 } = Object.values(function e(t = document.querySelector("body>div")) {
1370 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1372 ())[1].children[0]._owner;
1373 [...document.querySelectorAll('[class*="answerContainer"]')].forEach((a, o) => {
1374 (e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[o]) && (a.style.boxShadow = "unset")
1378 name: "Get Daily Rewards",
1379 description: "Gets max daily tokens and xp",
1380 run: async function () {
1381 let e = document.createElement("iframe");
1382 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), location.href.includes("play.blooket.com")) {
1385 } = await fetch("https://play.blooket.com/api/playersessions/solo", {
1386 body: JSON.stringify({
1387 gameMode: "Factory",
1388 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())]
1390 credentials: "include",
1392 }).then(e => e.json());
1393 await fetch("https://play.blooket.com/api/playersessions/landings", {
1394 body: JSON.stringify({
1397 credentials: "include",
1400 await fetch("https://play.blooket.com/api/playersessions/questions?t=" + t, {
1401 credentials: "include"
1403 await fetch("https://play.blooket.com/api/users/factorystats", {
1404 body: JSON.stringify({
1407 cash: Math.floor(9e7 * Math.random()) + 1e7,
1408 correctAnswers: Math.floor(500 * Math.random()) + 500,
1409 upgrades: Math.floor(300 * Math.random()) + 300,
1415 credentials: "include",
1418 fetch("https://play.blooket.com/api/users/add-rewards", {
1419 body: JSON.stringify({
1425 credentials: "include",
1427 }).then(e => e.json()).then(({
1429 }) => alert(`Added max tokens and xp
, and got ${e} daily wheel tokens
!`)).catch(() => alert("There was an error when adding rewards."))
1431 alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")
1434 name: "Use any Blook",
1435 description: "Allows you to play as any blook.",
1438 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
1439 let i = document.createElement('iframe');
1440 document.body.append(i);
1441 const alert = i.contentWindow.alert.bind(window);
1443 if (!(stateNode.state.unlocks || stateNode.state.blookData)) {
1444 alert("This must be run on the lobby or dashboard!");
1447 if (stateNode.state.blookData) {
1448 let oe = Object.entries;
1449 Object.entries = function (a) {
1452 Object.entries = oe;
1454 return oe.apply(this, arguments);
1458 function allBlooks(blooks) {
1460 stateNode.setState({
1461 blookData: Object.keys(blooks).reduce((a, b) => (a[b] = stateNode.state.blookData[b] || 1, a), {}),
1462 allSets: Object.values(blooks).reduce((a, b) => {
1463 return !a.includes(b.set) && a.push(b.set),
1469 stateNode.setState({
1478 name: "Freeze Host",
1479 description: "Freezes the host's screen",
1481 const encodedChars = [
1482 '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
1485 const chars = encodedChars.map(char => eval(`"${char}"`));
1487 function makeLongText() {
1488 return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
1493 } = Object.values(function e(t = document.querySelector("body>div")) {
1494 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
1496 ())[1].children[0]._owner.stateNode;
1498 let repeatedText = makeLongText();
1499 t.client.blook = repeatedText;
1500 t.liveGameController.setVal({
1501 path: `c
/${t.client.name}/b
`,
1506 name: "Remove all Taken Blooks",
1507 description: "Removes all taken blooks, allowing you to use any taken blook. Only works in lobby.",
1509 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
1510 stateNode.setState({
1515 stateNode.setState = function (a, b) {
1516 if (a?.takenBlooks) {
1519 stateNode.updater.enqueueSetState(stateNode, a, b, "setState");
1523 name: "Dynamic Player Count",
1524 description: "Updates the player count at the top of the screen in realtime as players join or leave.",
1527 const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
1528 const ref = await stateNode.props.liveGameController.getDatabaseRef("")
1529 ref.on("value", e => {
1530 document.querySelector("div[class*='headerTextCenter']").innerHTML = `Player Count
| ${Object.keys(e.val()?.c)?.length}
/ ${stateNode.props.client.plus ? 300 : 60}
`;
1535 name: "Blooket Bot",
1536 description: "Opens Blooket Bot",
1538 function getGameCode() {
1539 const appDiv = document.querySelector('#app>div>div');
1541 const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
1542 return reactComponent?.stateNode?.props?.client?.hostId || null;
1547 const gameCode = getGameCode();
1548 const url = gameCode ? "https://blooketbot.glitch.me/?code=" + gameCode : "https://blooketbot.glitch.me/";
1549 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
1552 name: "Blooket Bot Unblocked",
1553 description: "Opens Blooket Bot",
1555 function getGameCode() {
1556 const appDiv = document.querySelector('#app>div>div');
1558 const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
1559 return reactComponent?.stateNode?.props?.client?.hostId || null;
1564 const gameCode = getGameCode();
1565 const url = gameCode ? "https://blooketbot.vercel.app/?code=" + gameCode : "https://blooketbot.vercel.app/";
1566 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
1569 name: "Blooket Homework Editor",
1570 description: "Opens Blooket Homework Editor",
1572 window.open("https://blookethwk.glitch.me/", "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes")
1576 description: "Chat with other people and execute commands",
1585 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
1589 document.addEventListener("keydown", function (e) {
1590 "`" === e.key && (a = !a, o.style.display = a ? "none
" : "block
")
1592 let o = document.createElement("div
");
1593 o.className = "chat
-box
",
1594 document.body.appendChild(o);
1595 let r = document.createElement("div
");
1596 r.className = "chat
-header
",
1597 r.textContent = "Chat
",
1599 let i = document.createElement("div
");
1600 i.className = "chat
-body
",
1602 let n = document.createElement("input
");
1605 let t = document.createElement("div
");
1610 n.className = "chat
-input
",
1611 n.placeholder = "Type a message
...",
1613 o.style.position = "fixed
",
1614 o.style.bottom = "20px
",
1615 o.style.right = "20px
",
1616 o.style.width = "300px
",
1617 o.style.backgroundColor = "#fff
",
1618 o.style.border = "1px solid
#ccc
",
1619 o.style.boxShadow = "0px
0px
10px
rgba(0, 0, 0, 0.2)",
1620 r.addEventListener("click
", () => {
1621 i.classList.toggle("open
")
1623 n.addEventListener("keydown
", function (a) {
1624 13 === a.keyCode && (function a(o) {
1633 if ("/" !== t.charAt(0))
1635 var a = t.split(" "),
1636 o = a[0].replace("/", "");
1637 return a.splice(0, 1), {
1646 r = h.args.join(" "),
1647 (n = webpackJsonp.push([
1656 ]).webpack("MDrD
").a)[r = Object.keys(n).find(e => r.toLocaleLowerCase() === e.toLocaleLowerCase())] ? (s("Setting blook to
" + r + "!"), e().stateNode.props.liveGameController.setVal({
1657 id: e().stateNode.props.client.hostId,
1658 path: "c
/" + e().stateNode.props.client.name,
1662 }), e().stateNode.props.client.blook = r) : s("No blook
with that name was found
!");
1668 Object.keys(e().stateNode.state).map(t => {
1669 var a = e().stateNode.state[t];
1672 Array.from(a) && "object
" == typeof a && (a = "[Array
]"),
1677 e().stateNode.props.liveGameController.getDatabaseVal("c
").then(e => {
1678 s("Current
Players(" + Object.keys(e).length + "): " + Object.keys(e).join(","))
1682 window.logsv = !window.logsv,
1683 s("SetVal log
set to
" + (window.logsv ? "Enabled
" : "Disabled
"));
1687 e().stateNode.props.liveGameController.setVal({
1688 path: "c
/" + e().stateNode.props.client.name + "/" + l[0],
1689 val: l.slice(1, l.length).join(" ")
1696 var t = e.split(":");
1697 Number.isNaN(parseInt(t[1])) || parseInt(t[1]).toString() !== t[1] || (t[1] = parseInt(t[1])),
1700 e().stateNode.setState(d),
1701 s("Set Successful
!");
1704 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
)");
1707 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
)");
1711 e().stateNode.props.liveGameController.getDatabaseVal("c
/" + a).then(e => {
1712 null != e ? s("Dump
: " + JSON.stringify(e)) : s("Player not found
!")
1718 p = h.args.join(" "),
1719 (u = webpackJsonp.push([
1728 ]).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
!");
1731 s("Game Code
: " + e().stateNode.props.client.hostId);
1734 s("Unrecognized chat command
!")
1737 e().stateNode.props.liveGameController.setVal({
1738 id: e().stateNode.props.client.hostId,
1739 path: "c
/" + e().stateNode.props.client.name + "/msg",
1746 (a.srcElement.value), a.srcElement.value = "")
1748 var l = e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
1751 window.logsv && s("Path
: " + e.path.split("/").splice(2, 2).join("/") + " Val
: " + ("object
" == typeof e.val ? JSON.stringify(e.val) : e.val))
1753 e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function (e, t, a, o) {
1756 console.log(e, t, a, o),
1758 null != (i = t) && r.includes("/msg") && i?.msg && (console.log(i.msg), s(r.split("/")[2] + ": " + i.msg)),
1762 var d = e().stateNode.props.liveGameController.setVal;
1763 e().stateNode.props.liveGameController.setVal = function () {
1764 c.apply(this, arguments),
1765 d.apply(this, arguments)
1767 e().stateNode.props.liveGameController._liveApp.database().ref(`${e().stateNode.props.liveGameController._liveGameCode}`).on("value
", e => {}),
1768 s("Lobbychat successfully loaded
!"),
1769 o.style.wordWrap = "break-word
"
1772 name: "Pin Guesser
",
1773 description: "Brute forces combinations
for existing pins
",
1777 a = document.querySelector("div
[class*='titleText']");
1780 return Object.values(function e(t = document.querySelector("body
>div
")) {
1781 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
1783 ())[1].children[0]._owner.stateNode
1786 let i = Math.floor(9e6 * Math.random()) + 1e6;
1787 fetch(`https://fb.blooket.com/c/firebase/id?id=${i}`, {
1789 credentials: "include
"
1790 }).then(e => e.json()).then(n => {
1791 !0 === n.success ? (console.log("Game found
:", i), a.innerHTML = "Game Found
!", o().setState({
1793 hostId: i.toString()
1795 })) : (console.log("No game found
for:", i), o().setState({
1797 hostId: i.toString()
1799 }), e++, a.innerHTML = "Guesses
: " + e, ++t > 15 ? (setTimeout(r, 1e3), t = 0) : r())
1808 description: "Crashes the host
's game",
1810 var e = Object.values(function e(t = document.querySelector("#app")) {
1811 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1813 ())[1].children[0]._owner.stateNode;
1814 e.props.liveGameController.setVal({
1815 path: `c/${e.props.client.name}/b/toString`,
1820 name: "Every Answer Correct",
1821 description: "Sets every answer to be correct",
1825 } = Object.values(function e(t = document.querySelector("body>div")) {
1826 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
1828 ())[1].children[0]._owner;
1829 e.freeQuestions = e.freeQuestions?.map?.(e => ({
1831 correctAnswers: e.answers
1833 e.questions = e.questions?.map?.(e => ({
1835 correctAnswers: e.answers
1837 e.props.client.questions = e.props.client.questions.map(e => ({
1839 correctAnswers: e.answers
1843 name: "Remove Name Limit",
1844 description: "Sets the name limit to 120, which is the actual max name length limit",
1846 var e = document.createElement("iframe");
1847 document.body.append(e),
1848 window.alert = e.contentWindow.alert.bind(window),
1850 document.querySelector('input
[class*="nameInput"]').maxLength = 120,
1851 alert("Removed name length limit")
1854 name: "Remove Random Name",
1855 description: "Allows you to put a custom name",
1857 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
1863 document.querySelector('[class*="nameInput"]')?.focus?.()
1866 name: "Sell Cheap Duplicates",
1867 description: "Sells all of your uncommon to epic dupes (not legendaries+)",
1869 var e = document.createElement("iframe");
1870 document.body.append(e),
1871 window.alert = e.contentWindow.alert.bind(window),
1872 window.confirm = e.contentWindow.confirm.bind(window),
1874 let t = webpackJsonp.push([
1884 a = Object.values(t.c).find(e => e.exports?.a?.get).exports.a,
1885 o = Object.values(t.c).find(e => e.exports.a?.sellBlook).exports.a.sellBlook;
1886 a.get("https://dashboard.blooket.com/api/users").then(async({
1891 if (e = Object.entries(e).filter(([e, t]) => 1 < t && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([
1900 ]).webpack("MDrD").a[e].rarity)), confirm("Are you sure you want to sell your uncommon to epic dupes?")) {
1909 alert(`(${Date.now() - r}ms) Results: ` + e.map(([e, t]) => ` ${e} ` + (t - 1)).join(" "))
1911 }).catch(() => alert("There was an error user data!"))
1914 name: "Sell Duplicate Blooks",
1915 description: "Sell all duplicate blooks leaving you with 1 each",
1916 run: async function () {
1917 let e = document.createElement("iframe");
1918 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)) {
1919 if (confirm("Are you sure you want to sell your dupes? (Legendaries and rarer will not be sold)")) {
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"))
1925 ())[1].children[0]._owner,
1928 for (let r in t.state.blookData)
1929 if (t.state.blookData[r] > 1) {
1932 numToSell: t.state.blookData[r] - 1
1933 }), ["Legendary", "Chroma", "Mystical"].includes(document.querySelector("[class*='highlightedRarity
']").innerText.trim()))
1935 o += ` ${r} ${t.state.blookData[r] - 1} `,
1940 alert(`(${Date.now() - a}ms) Results: ${o.trim()}`)
1943 alert("This can only be ran in the Blooks page.")
1949 description: "Shows you what's under each chest during a heist
",
1955 this.enabled = false;
1956 clearInterval(this.data);
1958 Array.prototype.forEach.call(document.querySelectorAll(".chestESP
"), x => x.remove());
1960 this.enabled = true;
1961 this.data = setInterval(() => {
1962 const cheat = (async() => {
1965 } = Object.values((function react(r = document.querySelector("body
>div
")) {
1966 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope
>div
"))
1967 })())[1].children[0]._owner;
1968 if (stateNode.state.stage == "heist
") {
1969 const imgs = Array.prototype.map.call(Array.prototype.slice.call(document.querySelector("[class*=prizesList
]").children, 1, 4), (x) => x.querySelector("img
").src);
1970 const esp = Object.values(document.querySelector("[class*=modal
]"))[0].return.memoizedState.memoizedState;
1971 for (const e of document.querySelectorAll("[class*=boxContent
] > div
"))
1973 const open = Object.values(document.querySelector("[class*=modal
]"))[0].return.memoizedState.next.next.memoizedState;
1974 Array.prototype.forEach.call(document.querySelector("[class*=chestsWrapper
]").children, (container, i) => {
1975 const box = container.firstChild.firstChild;
1976 if (open.includes(i))
1977 return box.style.opacity = "";
1978 box.style.opacity = "0.5";
1979 let d = document.createElement("div
");
1980 d.innerHTML = "<img src
='" + imgs[2 - esp[i]] + "' style
='max-width: 75%; max-height: 75%'></img
>";
1981 d.className = "chestESP
";
1982 d.style.position = "absolute
";
1983 d.style.inset = "0";
1984 d.style.display = "grid
";
1985 d.style.placeItems = "center
";
1986 d.style.pointerEvents = "none
";
1987 container.onclick = () => {
1989 box.style.opacity = "";
1991 container.firstChild.prepend(d);
2000 name: "Crash
Host (Pirate
)",
2001 description: "Crashes the Host
's Game for Pirate's Voyage
",
2003 function reactHandler() {
2004 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2007 function setv(args) {
2008 reactHandler().stateNode.props.liveGameController.setVal({
2009 path: "c
/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2010 val: args.slice(1, args.length).join(" ")
2018 description: "Maxes out all islands and your boat
",
2022 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2023 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2025 ())[1].children[0]._owner;
2027 islandLevels: Array(e.state.islandLevels.length).fill(5)
2028 }, e.updateBoatLevel)
2031 name: "Set Doubloons
",
2032 description: "Sets Doubloons
",
2039 let t = document.createElement("iframe
");
2040 document.body.append(t),
2041 window.prompt = t.contentWindow.prompt.bind(window),
2045 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2046 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2048 ())[1].children[0]._owner;
2052 a.props.liveGameController.setVal({
2053 path: `c/${a.props.client.name}/d`,
2058 name: "Start Heist
",
2059 description: "Starts a heist on someone
",
2066 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2067 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2069 ())[1].children[0]._owner;
2070 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
2075 let t = document.createElement("iframe
");
2076 document.body.append(t),
2077 window.prompt = t.contentWindow.prompt.bind(window),
2081 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2082 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2084 ())[1].children[0]._owner;
2085 a.props.liveGameController.getDatabaseVal("c
", function (t) {
2086 let o = Object.entries(t || {}).reduce((e, [t, o]) => (t != a.props.client.name && e.push({
2092 return a.questionsToAnswer = 1, void a.randomQ();
2097 } = o.find(t => t.name == e) || o.sort((e, t) => t.doubloons - e.doubloons)[0];
2104 prizeAmount: Math.max(1e3, n)
2109 name: "Swap Doubloons
",
2110 description: "Swaps Doubloons
with someone
",
2117 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2118 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2120 ())[1].children[0]._owner;
2121 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
2125 run: async function (e) {
2126 let t = document.createElement("iframe
");
2127 document.body.append(t),
2128 window.prompt = t.contentWindow.prompt.bind(window),
2132 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2133 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2135 ())[1].children[0]._owner,
2136 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),
2137 r = o.find(t => t[0] == e) || o[0];
2138 a.props.liveGameController.setVal({
2139 path: `c/${a.props.client.name}`,
2141 b: a.props.client.blook,
2143 tat: `${r[0]}:${r[1].d - a.state.doubloons}`
2151 name: "Take Doubloons
",
2152 description: "Takes Doubloons
from someone
",
2159 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2160 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2162 ())[1].children[0]._owner;
2163 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
2167 run: async function (e) {
2168 let t = document.createElement("iframe
");
2169 document.body.append(t),
2170 window.prompt = t.contentWindow.prompt.bind(window),
2174 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2175 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2177 ())[1].children[0]._owner,
2178 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),
2179 r = o.find(t => t[0] == e) || o[0];
2181 doubloons: a.state.doubloons + r[1].d
2183 a.props.liveGameController.setVal({
2184 path: `c/${a.props.client.name}`,
2186 b: a.props.client.blook,
2188 tat: `${r[0]}:${r[1].d}`
2193 name: "Flood Alert Box
",
2194 description: "Makes the alert box filled
with text
",
2200 run: function (userInput) {
2201 function getReactOwner() {
2202 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
2205 function repeatText(text, times) {
2206 return new Array(times).fill(text).join(" ");
2209 function setValForPlayer() {
2210 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c
/").then(data => {
2213 const playerName = Object.keys(data)[0];
2217 const id = "1,723,583,989,363";
2218 const repeatedText = repeatText(userInput, 1700);
2219 const finalText = `${id}${repeatedText}`;
2221 setv(['tat', `${playerName}:${finalText}`]);
2223 console.log("No text entered
. Operation cancelled
.");
2226 console.log("Player not found
!");
2231 function setv(args) {
2232 getReactOwner().stateNode.props.liveGameController.setVal({
2233 path: "c
/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
2234 val: args.slice(1, args.length).join(" ")
2241 name: "Send Ad Text
",
2242 description: "Sends a load
of text to another
player (This will override your blook
!)",
2249 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2250 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
2252 ())[1].children[0]._owner;
2253 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]));
2259 run: async function (player, e) {
2262 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2263 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
2265 ())[1].children[0]._owner.stateNode;
2267 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
2268 t2.client.blook = repeatedText;
2269 t2.liveGameController.setVal({
2270 path: `c/${t2.client.name}/b`,
2273 t2.liveGameController.setVal({
2274 path: `c/${t2.client.name}/tat`,
2275 val: `${player}:196`
2281 name: "Double Enemy XP
",
2282 description: "Doubles enemy XP drop value
",
2284 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
"))) {
2286 let a = t.classType.prototype.start;
2287 t.classType.prototype.start = function () {
2288 a.apply(this, arguments),
2291 t.children.entries.forEach(e => e.val *= 2)
2295 name: "Half Enemy Speed
",
2296 description: "Makes enemies
move 2x slower
",
2298 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
"))) {
2300 let a = t.classType.prototype.start;
2301 t.classType.prototype.start = function () {
2302 a.apply(this, arguments),
2305 t.children.entries.forEach(e => e.speed *= .5)
2309 name: "Instant Kill
",
2310 description: "Sets all enemies health to
1",
2312 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
"))) {
2314 let a = t.classType.prototype.start;
2315 t.classType.prototype.start = function () {
2316 a.apply(this, arguments),
2319 t.children.entries.forEach(e => e.hp = 1)
2323 name: "Invincibility
",
2324 description: "Makes you invincible
",
2326 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
")))
2327 e.collideCallback = () => {}
2331 description: "Pulls all xp towards you
",
2333 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({
2342 name: "Max Current Abilities
",
2343 description: "Maxes out all your current abilities
",
2345 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2346 for (var [t, a] of Object.entries(e.state.abilities))
2347 for (let o = 0; o < 10 - a; o++)
2348 e.game.current.scene.scenes[0].game.events.emit("level up
", t, e.state.abilities[t]++);
2350 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
2355 description: "Skips to the next level
",
2357 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode, {
2360 } = e.game.current.scene.scenes[0].physics.world.colliders._active.find(e => e.collideCallback?.toString().includes('emit("xp
"'));
2361 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)
2364 name: "Remove Obstacles
",
2365 description: "Removes all rocks and obstacles
",
2367 Object.values(document.querySelector("#app
> div
> div
"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => {
2369 e.gameObject.frame.texture.key.includes("obstacle
") && e.gameObject.destroy()
2374 name: "Kill Enemies
",
2375 description: "Kills all current enemies
",
2377 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))
2380 name: "Reset Health
",
2381 description: "Resets health and gives invincibility
for 3 seconds
",
2383 Object.values(document.querySelector("#app
> div
> div
"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].game.events._events.respawn.fn()
2386 name: "Crash
Host (Brawl
)",
2387 description: "Crashes the Host
's Game for Monster Brawl",
2389 function reactHandler() {
2390 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
2393 function setv(args) {
2394 reactHandler().stateNode.props.liveGameController.setVal({
2395 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2396 val: args.slice(1, args.length).join(" ")
2400 setv(['xp
/t
', 't
']);
2404 description: "Sets amount of XP",
2411 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2418 t.props?.liveGameController.setVal({
2419 path: "c/".concat(t.props.client.name),
2421 b: t.props.client.blook,
2428 description: "Sets your level",
2435 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
2443 description: "Maxes out items in the shop (Only usable in the shop)",
2445 var e = document.createElement("iframe");
2446 document.body.append(e),
2447 window.alert = e.contentWindow.alert.bind(window),
2449 "/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({
2450 items: Object.fromEntries(Object.entries(e.state.items).map(e => [e[0], 5]))
2454 name: "Remove Customers",
2455 description: "Skips the current customers (Not usable in the shop)",
2457 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2458 e.state.customers.forEach((t, a) => Object.keys(t).length && e.removeCustomer(a, !0))
2461 name: "Reset Abilities",
2462 description: "Resets used abilities in shop (Only usable in the shop)",
2464 var e = document.createElement("iframe");
2465 document.body.append(e),
2466 window.alert = e.contentWindow.alert.bind(window),
2468 "/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({
2469 abilities: Object.fromEntries(Object.entries(e.state.abilities).map(e => [e[0], 5]))
2474 description: "Sets cafe cash",
2481 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2485 t.props.liveGameController.setVal({
2486 path: "c/" + t.props.client.name,
2488 b: t.props.client.blook,
2494 name: "Spam Attack Player",
2495 description: "Attacks the player to make the game unplayable",
2502 } = Object.values(function e(t = document.querySelector("body>div")) {
2503 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2505 ())[1].children[0]._owner;
2506 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2513 run: function (name) {
2515 this.enabled = false;
2516 clearInterval(this.data);
2519 this.enabled = true;
2521 function reactHandler() {
2522 return Object.values(document.querySelector('body div
[class*="_body"]'))[1].children[0]._owner;
2525 var action = name + ":inspect";
2527 function spamAction() {
2528 var handler = reactHandler();
2529 if (handler && handler.stateNode && handler.stateNode.props && handler.stateNode.props.liveGameController) {
2530 handler.stateNode.props.liveGameController.setVal({
2531 id: handler.stateNode.props.client.hostId,
2532 path: "c/" + handler.stateNode.props.client.name + "/tat",
2538 this.data = setInterval(spamAction, 50);
2542 name: "Attack Player",
2543 description: "Sends the player a health inspection",
2545 name: "Player's Name
",
2549 run: (function (targetPlayer) {
2550 function reactHandler() {
2551 return Object.values(document.querySelector('body div[class*="_body
"]'))[1].children[0]._owner;
2554 reactHandler().stateNode.props.liveGameController.setVal({
2555 id: reactHandler().stateNode.props.client.hostId,
2556 path: "c
/" + reactHandler().stateNode.props.client.name + "/tat
",
2557 val: targetPlayer + ":inspect
"
2562 description: "Makes a player pay tax
",
2564 name: "Player
's Name",
2568 run: function (playerName) {
2569 function reactHandler() {
2570 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
2573 function setv(args) {
2574 reactHandler().stateNode.props.liveGameController.setVal({
2575 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2576 val: args.slice(1, args.length).join(" ")
2580 function taxPlayer() {
2582 setv(['tat
', playerName + ':tax
']);
2584 console.log("No player name entered. Operation cancelled.");
2592 description: "Stocks all food to 99 (Not usable in the shop)",
2594 var e = document.createElement("iframe");
2595 document.body.append(e),
2596 window.alert = e.contentWindow.alert.bind(window),
2598 "/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({
2599 foods: e.state.foods.map(e => ({
2610 description: "Shows what each choice will give you
",
2615 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
2618 } = Object.values(function e(t = document.querySelector("body
>div
")) {
2619 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2621 ())[1].children[0]._owner, {
2623 } = e.state.choices[0],
2624 a = document.querySelector("[class^=styles__feedbackContainer___
]");
2625 if (a.children.length <= 4) {
2626 let o = document.createElement("div
");
2627 o.style.color = "white
",
2628 o.style.fontFamily = "Inconsolata
,Helvetica
,monospace
,sans
-serif
",
2629 o.style.fontSize = "2em
",
2630 o.style.display = "flex
",
2631 o.style.justifyContent = "center
",
2632 o.style.marginTop = "675px
",
2639 name: "Password ESP
",
2640 description: "Highlights the wrong passwords
",
2647 e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
2650 } = Object.values(function e(t = document.querySelector("#app
> div
> div
")) {
2651 return Object.values(t)[1]?.children?.[1]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2653 ())[1].children[1]._owner.stateNode;
2654 "hack
" === e.stage && Array.from(document.querySelectorAll('[role="button
"]._button_mrhfb_157')).forEach(t => {
2655 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 = "")
2659 console.error("An error occurred
:", t)
2663 name: "Always Triple
",
2664 description: "Always
get triple crypto
",
2669 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({
2674 blook: "Brainy Bot
",
2675 text: "Triple Crypto
"
2681 name: "Always Quintuple
",
2682 description: "Always
get quintuple crypto
",
2687 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({
2692 blook: "Ice Elemental
",
2693 text: "Quintuple Crypto
"
2699 name: "Always Hack
",
2700 description: "Always
get hack
",
2705 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({
2717 name: "Crash Password
",
2718 description: "Crashes other players when they attempt to hack you
",
2723 var e = Object.values(function e(t = document.querySelector("#app
")) {
2724 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2726 ())[1].children[0]._owner.stateNode;
2728 this.enabled = !1, clearInterval(this.data), this.data = null, e.props.liveGameController.setVal({
2729 path: `c/${e.props.client.name}/p`,
2730 val: e.state?.password
2735 e.props.liveGameController.setVal({
2736 path: `c/${e.props.client.name}/p/toString`,
2740 this.data = setInterval(t, 25)
2744 name: "Set Freeze Password
",
2745 description: "Freezes other players when they attempt to hack you
",
2750 const encodedChars = [
2751 '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
2754 const chars = encodedChars.map(char => eval(`"${char}
"`));
2756 function makeLongText() {
2757 return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
2760 var t = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2764 clearInterval(this.data);
2769 t.props.liveGameController.setVal({
2770 path: "c
/".concat(t.props.client.name),
2772 b: t.props.client.blook,
2779 let lagFunction = () => {
2780 var e = makeLongText();
2784 t.props.liveGameController.setVal({
2785 path: "c
/".concat(t.props.client.name),
2787 b: t.props.client.blook,
2793 this.data = setInterval(lagFunction, 25);
2798 description: "Automatically performs the hack
for you
",
2805 e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
2806 if ("hack
" === ("hack
" === window.location.pathname.split("/")[2] && "hack
")) {
2810 } = Object.values(document.querySelector("#app
> div
> div
"))[1].children[1]._owner.stateNode.state;
2811 "hack
" === e && Array.from(document.querySelectorAll("div
")).filter(e => e.innerHTML === t)[0].click()
2815 console.error("An error occurred
:", t)
2819 name: "Set Host Screen Green
",
2820 description: "Makes the whole screen filled
with text
",
2825 var a = Object.values(function e(t = document.querySelector("#app
")) {
2826 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
2828 ())[1].children[0]._owner.stateNode;
2832 clearInterval(this.data);
2834 a.props.liveGameController.setVal({
2835 path: `c/${a.props.client.name}/cr`,
2841 a.props.liveGameController.setVal({
2842 path: `c/${a.props.client.name}/cr`,
2843 val: `9999999999999999999999999999999999999999999999${new Array(999).fill("\u0e47".repeat(70)).join(" ")}`
2846 this.data = setInterval(t, 25);
2850 name: "Remove Hack
",
2851 description: "Removes an attacking hack
",
2853 Object.values(document.querySelector("#app
>div
>div
"))[1].children[0]._owner.stateNode.setState({
2858 name: "Crash
Host (Crypto
)",
2859 description: "Crashes the Host
's Game for Crypto Hack",
2861 function reactHandler() {
2862 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
2865 function setv(args) {
2866 reactHandler().stateNode.props.liveGameController.setVal({
2867 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
2868 val: args.slice(1, args.length).join(" ")
2872 setv(['cr
/t
', 't
']);
2876 description: "Sets crypto",
2883 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2888 t.props.liveGameController.setVal({
2889 path: "c/" + t.props.client.name + "/cr",
2894 name: "Set Password",
2895 description: "Sets hacking password",
2897 name: "Custom Password",
2902 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2906 t.props.liveGameController.setVal({
2907 path: "c/" + t.props.client.name + "/p",
2912 name: "Set Host Screen Text",
2913 description: "Makes the whole screen filled with text",
2920 let t = document.createElement("iframe");
2921 document.body.append(t),
2922 window.prompt = t.contentWindow.prompt.bind(window),
2924 var a = Object.values(function e(t = document.querySelector("#app")) {
2925 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
2927 ())[1].children[0]._owner.stateNode;
2928 a.props.liveGameController.setVal({
2929 path: `c/${a.props.client.name}/cr`,
2930 val: `9999999999999999999999999999999999999999999999${new Array(999).fill(e).join(" ")}`
2934 name: "Steal Player's Crypto
",
2935 description: "Steals all
of someone
's crypto",
2940 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2941 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
2946 let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
2947 t.props.liveGameController.getDatabaseVal("c", a => {
2949 a && Object.keys(a).map(e => e.toLowerCase()).includes(e.toLowerCase()) && ([a, {
2952 ] = Object.entries(a).find(([t]) => t.toLowerCase() == e.toLowerCase()), t.setState({
2953 crypto: t.state.crypto + o,
2954 crypto2: t.state.crypto + o
2955 }), t.props.liveGameController.setVal({
2956 path: "c/".concat(t.props.client.name),
2958 b: t.props.client.blook,
2959 p: t.state.password,
2960 cr: t.state.crypto + o,
2967 name: "Get Player's Password
",
2968 description: "Shows the password
of any player
in an alert box
",
2973 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
2974 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
2978 run: function (player) {
2979 let i = document.createElement('iframe');
2980 document.body.append(i);
2981 const alert = i.contentWindow.alert.bind(window);
2983 var t = Object.values(document.querySelector("#app
>div
>div
"))[1].children[0]._owner.stateNode;
2984 t.props.liveGameController.getDatabaseVal("c
", e => {
2985 alert(e?.[player]?.p);
2989 name: "Flood Alert Box
",
2990 description: "Makes the alert box filled
with text
",
2996 run: function (userInput) {
2997 function getReactOwner() {
2998 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
3001 function repeatText(text, times) {
3002 return new Array(times).fill(text).join(" ");
3005 function setValForPlayer() {
3006 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c
/").then(data => {
3009 const playerName = Object.keys(data)[0];
3013 const id = "1,723,583,989,363";
3014 const repeatedText = repeatText(userInput, 1700);
3015 const finalText = `${id}${repeatedText}`;
3017 setv(['tat', `${playerName}:${finalText}`]);
3019 console.log("No text entered
. Operation cancelled
.");
3022 console.log("Player not found
!");
3027 function setv(args) {
3028 getReactOwner().stateNode.props.liveGameController.setVal({
3029 path: "c
/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
3030 val: args.slice(1, args.length).join(" ")
3037 name: "Send Ad Text
",
3038 description: "Sends a load
of text to another
player (This will override your blook
!)",
3045 } = Object.values(function e(t = document.querySelector("body
>div
")) {
3046 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
3048 ())[1].children[0]._owner;
3049 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]));
3055 run: async function (player, e) {
3058 } = Object.values(function e(t = document.querySelector("body
>div
")) {
3059 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
3061 ())[1].children[0]._owner.stateNode;
3063 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
3064 t2.client.blook = repeatedText;
3065 t2.liveGameController.setVal({
3066 path: `c/${t2.client.name}/b`,
3069 t2.liveGameController.setVal({
3070 path: `c/${t2.client.name}/tat`,
3071 val: `${player}:196`
3078 description: "Shuffles around towers
",
3080 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode,
3082 eventName: "Earthquake
",
3086 icon: "fas fa
-mountain
",
3087 desc: "All
of your towers
get mixed up
",
3092 }, () => e.eventTimeout = setTimeout(() => e.setState({
3095 }), 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 && {
3098 })).filter(Boolean).sort(() => .5 - Math.random()));
3099 e.towers.forEach(a => {
3104 a.move(o, r, e.tileSize),
3109 name: "Max Tower Stats
",
3110 description: "Makes all placed towers overpowered
",
3112 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.towers.forEach(e => {
3114 e.fullCd = e.cd = 0,
3119 name: "Remove Ducks
",
3120 description: "Removes ducks
",
3125 } = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
3132 name: "Place Blooks Anywhere
",
3133 description: "Be able to place your blooks anywhere
",
3135 for (var i = 0; i < 10; i++) {
3136 Object.values(document.querySelector("#app
> div
> div
"))[1].children[1]._owner.stateNode.tiles[i] = Array(10).fill(0);
3140 name: "Remove Enemies
",
3141 description: "Removes all the enemies
",
3143 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
3144 e.enemies = e.futureEnemies = []
3147 name: "Remove Obstacles
",
3148 description: "Lets you place towers anywhere
",
3150 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
3151 e.tiles = e.tiles.map(e => e.fill(0))
3155 description: "Sets damage
",
3162 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.dmg = e
3166 description: "Sets the current round
",
3173 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
3179 description: "Sets the amount
of tokens you have
",
3186 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
3193 name: "Max Tower Stats
",
3194 description: "Makes all placed towers overpowered
",
3196 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.state.towers.forEach(e => {
3197 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)
3198 for (let t in e.stats.auraBuffs)
3199 e.stats.auraBuffs[t] *= 100
3203 name: "Kill Enemies
",
3204 description: "Kills all the enemies
",
3206 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
3207 e.game.current.scene.scenes[0].enemyQueue.length = 0,
3208 e.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => e?.gameObject?.receiveDamage?.(e.gameObject.hp, 1))
3211 name: "Crash
Host (Defense
2)",
3212 description: "Crashes the Host
's Game for Tower Defense 2 (May take a few tries)",
3214 function reactHandler() {
3215 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
3218 function setv(args) {
3219 reactHandler().stateNode.props.liveGameController.setVal({
3220 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
3221 val: args.slice(1, args.length).join(" ")
3229 description: "Sets coins",
3236 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3242 description: "Sets the amount of health you have",
3249 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3255 description: "Sets the current round",
3262 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3269 name: "Auto Choose",
3270 description: "Automatically choose the best fossil when excavating",
3276 this.enabled = false;
3277 clearInterval(this.data);
3280 this.enabled = true;
3281 this.data = setInterval(() => {
3282 const cheat = (async() => {
3283 function rand(e, t) {
3285 while (s.length < t) {
3286 const i = Math.random();
3289 for (let o = 0; o < e.length; o++) {
3296 g && !s.includes(g) && s.push(g);
3304 } = Object.values((function react(r = document.querySelector("body>div")) {
3305 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
3306 })())[1].children[0]._owner;
3308 if (stateNode.state.stage === "excavate") {
3309 stateNode.state.choices.length || (stateNode.state.choices = rand([{
3323 blook: "Dino Fossil"
3328 blook: "Stegosaurus"
3333 blook: "Velociraptor"
3338 blook: "Brontosaurus"
3343 blook: "Triceratops"
3348 blook: "Tyrannosaurus Rex"
3362 for (let i = 0; i < stateNode.state.choices.length; i++) {
3366 } = stateNode.state.choices[i];
3367 const value = (type == "fossil" ? stateNode.state.fossils + val * stateNode.state.fossilMult : stateNode.state.fossils * val) || 0;
3368 if (value <= max && type != "mult")
3374 document.querySelector('div
[class*=rockRow
] > div
[role
="button"]:nth
-child(' + index + ')').click();
3384 description: "Shows what is under the rocks",
3389 let e = ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"],
3393 a = e[t % parseInt("10")] + a, t = ~~(t / 10);
3397 let a = e.toString();
3399 let o = ["", "K", "M", "B", "T"],
3400 r = ~~((digits(e) - 1) / 3);
3403 for (let n = 3; n >= 1; n--) {
3404 i = parseFloat((0 !== r ? e / 1e3 ** r : e).toPrecision(n)).toString();
3405 let s = i.replace(/[^a-zA-Z 0-9]+/g, "");
3409 Number(i) % 1 != 0 && (i = Number(i).toFixed(1)),
3415 l = Math.floor(l / 10), c += 1;
3416 a = `${l / 10} \xd7 10${t(c + 1)}`
3421 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
3424 } = Object.values(function e(t = document.querySelector("body>div")) {
3425 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3427 ())[1].children[0]._owner,
3428 t = [...document.querySelector('[class*="rockButton"]').parentElement.children];
3429 t.every(e => e.querySelector("div")) || e.setState({
3444 blook: "Dino Fossil"
3449 blook: "Stegosaurus"
3454 blook: "Velociraptor"
3459 blook: "Brontosaurus"
3464 blook: "Triceratops"
3469 blook: "Tyrannosaurus Rex"
3479 ].sort(() => .5 - Math.random()).slice(0, 3)
3481 t.forEach((t, o) => {
3482 let r = e.state.choices[o];
3483 t.querySelector("div") && t.querySelector("div").remove();
3484 let i = document.createElement("div");
3485 i.style.color = "white",
3486 i.style.fontFamily = "Macondo",
3487 i.style.fontSize = "1em",
3488 i.style.display = "flex",
3489 i.style.justifyContent = "center",
3490 i.style.transform = "translateY(25px)",
3491 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`,
3498 name: "Set Fossils",
3499 description: "Sets the amount of fossils you have",
3506 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3510 t.props.liveGameController.setVal({
3511 path: "c/" + t.props.client.name,
3513 b: t.props.client.blook,
3515 ic: t.state.isCheating
3520 name: "Set Multiplier",
3521 description: "Sets fossil multiplier",
3528 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3533 name: "Crash Host (Dino)",
3534 description: "Crashes the Host's Game
for Deceptive Dinos
",
3536 function reactHandler() {
3537 return Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner;
3540 function setv(args) {
3541 reactHandler().stateNode.props.liveGameController.setVal({
3542 path: "c
/" + reactHandler().stateNode.props.client.name + "/" + args[0],
3543 val: args.slice(1, args.length).join(" ")
3550 name: "Stop Cheating
",
3551 description: "Undoes cheating so that you can
't be caught",
3553 var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3557 e.props.liveGameController.setVal({
3558 path: `c/${e.props.client.name}/ic`,
3566 description: "Fills your deck with every maxed out card and artifact (Only works on towers page)",
3568 let e = document.createElement("iframe");
3569 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/map" == window.location.pathname) {
3572 } = Object.values(function e(t = document.querySelector("body>div")) {
3573 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
3575 ())[1].children[0]._owner;
3576 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("|"),
3577 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 => {
3578 let [t, a] = e.split(",");
3588 t.props.addTowerNode()
3594 alert("You need to be on the map to run
this cheat
!")
3598 description: "Maxes out all the cards
in your deck
",
3600 var e = document.createElement("iframe
");
3601 document.body.append(e),
3602 window.alert = e.contentWindow.alert.bind(window),
3604 "/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 => {
3608 }) : alert("You need to be on the map to run
this cheat
!")
3612 description: "Fills the player
's health",
3614 var e = document.createElement("iframe");
3615 document.body.append(e),
3616 window.alert = e.contentWindow.alert.bind(window),
3618 "/tower/battle" == window.location.pathname ? Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3620 }) : alert("You need to be in battle to run this cheat!")
3623 name: "Max Card Stats",
3624 description: "Maxes out player's current
card (Only works on attribute select page
)",
3626 var e = document.createElement("iframe
"),
3627 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;
3628 "select
" !== e.state.phase ? alert("You must be on the attribute selection page
!") : e.setState({
3638 name: "Min Enemy Stats
",
3639 description: "Makes the enemy card stats all
0 (Only works on attribute select page
)",
3641 var e = document.createElement("iframe
"),
3642 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;
3643 "select
" !== e.state.phase ? alert("You must be on the attribute selection page
!") : e.setState({
3645 ...e.state.enemyCard,
3654 description: "Try
's to set amount of tower coins you have",
3661 var t = document.createElement("iframe");
3662 if (document.body.append(t), window.alert = t.contentWindow.prompt.bind(window), t.remove(), "/tower/battle" == window.location.pathname) {
3663 var t = parseInt("0" + alert("How many coins would you like?")),
3664 a = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
3666 a.props.setTowerCoins(t)
3669 alert("You need to be in battle to run this cheat!")
3673 description: "Sets your streak to the desired amount",
3680 var t = document.createElement("iframe");
3681 document.body.append(t),
3682 window.alert = t.contentWindow.alert.bind(window),
3684 "/tower/battle" == window.location.pathname ? Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
3687 }) : alert("You need to be in battle to run this cheat!")
3692 name: "Choose Blook",
3693 description: "Gives you a blook",
3700 class: "\uD83C\uDF3D",
3702 cash: [3, 7, 65, 400, 2500],
3703 time: [1, 1, 1, 1, 1],
3704 price: [300, 3e3, 3e4, 2e5]
3708 class: "\uD83C\uDF3D",
3710 cash: [10, 40, 200, 1400, 1e4],
3711 time: [5, 4, 3, 2, 1],
3712 price: [570, 4e3, 5e4, 8e5]
3716 class: "\uD83C\uDF3D",
3718 cash: [25, 75, 1500, 25e3, 25e4],
3719 time: [15, 10, 10, 10, 5],
3720 price: [500, 9500, 16e4, 4e6]
3724 class: "\uD83C\uDF3D",
3726 cash: [4, 24, 200, 3e3, 4e4],
3727 time: [3, 3, 3, 3, 3],
3728 price: [450, 4200, 7e4, 11e5]
3732 class: "\uD83C\uDF3D",
3734 cash: [5, 28, 200, 1300, 12e3],
3735 time: [3, 3, 2, 2, 2],
3736 price: [500, 6400, 45e3, 5e5]
3740 class: "\uD83C\uDF3D",
3742 cash: [5, 20, 270, 1800, 15e3],
3743 time: [2, 2, 2, 2, 2],
3744 price: [550, 8200, 65e3, 6e5]
3748 class: "\uD83C\uDF3D",
3750 cash: [20, 50, 1300, 8e3, 8e4],
3751 time: [7, 7, 7, 7, 5],
3752 price: [400, 11e3, 8e4, 13e5]
3756 class: "\uD83C\uDF3D",
3758 cash: [6, 25, 250, 1500, 11e3],
3759 time: [3, 3, 3, 2, 2],
3760 price: [500, 5e3, 5e4, 43e4]
3764 class: "\uD83D\uDC3E",
3766 cash: [5, 18, 170, 1700, 13e3],
3767 time: [2, 2, 2, 2, 2],
3768 price: [480, 5500, 6e4, 5e5]
3772 class: "\uD83D\uDC3E",
3774 cash: [7, 25, 220, 1900, 9e3],
3775 time: [3, 3, 2, 2, 1],
3776 price: [460, 6600, 7e4, 73e4]
3780 class: "\uD83D\uDC3E",
3782 cash: [5, 40, 350, 3500, 35e3],
3783 time: [3, 3, 3, 3, 3],
3784 price: [750, 7200, 84e3, 95e4]
3788 class: "\uD83D\uDC3E",
3790 cash: [3, 18, 185, 800, 7e3],
3791 time: [2, 2, 2, 1, 1],
3792 price: [500, 5800, 56e3, 55e4]
3796 class: "\uD83D\uDC3E",
3798 cash: [10, 45, 450, 4500, 45e3],
3799 time: [4, 4, 4, 4, 4],
3800 price: [650, 6500, 8e4, 93e4]
3804 class: "\uD83D\uDC3E",
3806 cash: [23, 120, 1400, 15e3, 17e4],
3807 time: [10, 10, 10, 10, 10],
3808 price: [700, 8500, 11e4, 13e5]
3812 class: "\uD83D\uDC3E",
3814 cash: [4, 10, 75, 500, 3e3],
3815 time: [1, 1, 1, 1, 1],
3816 price: [450, 4e3, 35e3, 25e4]
3820 class: "\uD83D\uDC3E",
3822 cash: [4, 8, 60, 400, 2e3],
3823 time: [1, 1, 1, 1, 1],
3824 price: [350, 3500, 26e3, 17e4]
3828 class: "\uD83C\uDF32",
3830 cash: [12, 70, 550, 4500, 1e5],
3831 time: [7, 7, 6, 5, 5],
3832 price: [550, 5500, 63e3, 16e5]
3836 class: "\uD83C\uDF32",
3838 cash: [8, 45, 400, 3500, 26e3],
3839 time: [5, 5, 4, 4, 3],
3840 price: [520, 6500, 58e3, 7e5]
3844 class: "\uD83C\uDF32",
3846 cash: [7, 15, 80, 550, 3e3],
3847 time: [2, 2, 1, 1, 1],
3848 price: [400, 4e3, 36e3, 24e4]
3852 class: "\uD83C\uDF32",
3854 cash: [5, 14, 185, 1900, 19e3],
3855 time: [2, 2, 2, 2, 2],
3856 price: [400, 5e3, 71e3, 8e5]
3860 class: "\uD83C\uDF32",
3862 cash: [3, 10, 65, 470, 2600],
3863 time: [1, 1, 1, 1, 1],
3864 price: [420, 3600, 32e3, 21e4]
3868 class: "\uD83C\uDF32",
3870 cash: [4, 17, 155, 1500, 15e3],
3871 time: [2, 2, 2, 2, 2],
3872 price: [500, 4800, 55e3, 58e4]
3876 class: "\uD83C\uDF32",
3878 cash: [11, 37, 340, 2200, 3e4],
3879 time: [5, 4, 3, 2, 2],
3880 price: [540, 7e3, 77e3, 12e5]
3886 cash: [6, 17, 150, 1200, 13e3],
3887 time: [2, 2, 2, 2, 2],
3888 price: [480, 4500, 43e3, 52e4]
3894 cash: [5, 18, 180, 850, 8500],
3895 time: [2, 2, 2, 1, 1],
3896 price: [520, 550, 61e3, 68e4]
3902 cash: [5, 20, 190, 1900, 16e3],
3903 time: [3, 3, 2, 2, 2],
3904 price: [370, 5300, 76e3, 62e4]
3906 name: "Arctic Hare",
3910 cash: [6, 19, 85, 900, 7e3],
3911 time: [2, 2, 1, 1, 1],
3912 price: [540, 5200, 66e3, 55e4]
3918 cash: [4, 21, 310, 3200, 33e3],
3919 time: [3, 3, 3, 3, 3],
3920 price: [400, 6500, 76e3, 87e4]
3922 name: "Baby Penguin",
3926 cash: [3, 8, 70, 450, 2700],
3927 time: [1, 1, 1, 1, 1],
3928 price: [420, 3300, 33e3, 23e4]
3934 cash: [12, 75, 700, 6500, 85e3],
3935 time: [8, 7, 6, 5, 5],
3936 price: [630, 7e3, 91e3, 14e5]
3942 cash: [11, 46, 420, 3700, 51e3],
3943 time: [5, 5, 4, 4, 4],
3944 price: [550, 6200, 68e3, 1e6]
3948 class: "\uD83C\uDF34",
3950 cash: [6, 20, 100, 975, 7500],
3951 time: [3, 3, 1, 1, 1],
3952 price: [390, 6e3, 7e4, 61e4]
3956 class: "\uD83C\uDF34",
3958 cash: [8, 28, 230, 1600, 17e3],
3959 time: [3, 3, 2, 2, 2],
3960 price: [390, 6e3, 7e4, 61e4]
3964 class: "\uD83C\uDF34",
3966 cash: [9, 20, 175, 625, 3800],
3967 time: [2, 2, 2, 1, 1],
3968 price: [520, 4800, 42e3, 3e5]
3972 class: "\uD83C\uDF34",
3974 cash: [6, 35, 160, 1700, 18e3],
3975 time: [4, 4, 2, 2, 2],
3976 price: [500, 5e3, 63e3, 7e5]
3980 class: "\uD83C\uDF34",
3982 cash: [3, 8, 85, 850, 8500],
3983 time: [1, 1, 1, 1, 1],
3984 price: [480, 5400, 62e3, 63e4]
3988 class: "\uD83C\uDF34",
3990 cash: [3, 9, 90, 900, 9e3],
3991 time: [1, 1, 1, 1, 1],
3992 price: [540, 5700, 65e3, 69e4]
3996 class: "\uD83C\uDF34",
3998 cash: [12, 28, 215, 2100, 21e3],
3999 time: [5, 3, 2, 2, 2],
4000 price: [530, 6500, 76e3, 87e4]
4004 class: "\uD83C\uDF34",
4006 cash: [3, 15, 85, 1500, 7600],
4007 time: [1, 2, 1, 2, 1],
4008 price: [410, 5100, 58e3, 59e4]
4012 class: "\uD83C\uDF34",
4014 cash: [13, 52, 570, 4300, 7e4],
4015 time: [5, 5, 5, 4, 4],
4016 price: [600, 7e3, 8e4, 14e5]
4020 class: "\uD83C\uDF34",
4022 cash: [4, 14, 160, 780, 8200],
4023 time: [2, 2, 2, 1, 1],
4024 price: [390, 4700, 57e3, 68e4]
4030 cash: [5e3, 15e3, 15e4, 15e5, 1e7],
4031 time: [1, 1, 1, 1, 1],
4032 price: [8e5, 9e6, 11e7, 8e8]
4038 cash: [18e3, 6e4, 4e4, 4e6, 35e6],
4039 time: [3, 3, 2, 2, 2],
4040 price: [11e5, 12e6, 15e7, 14e8]
4046 cash: [19500, 65e3, 44e4, 46e5, 4e6],
4047 time: [3, 3, 2, 2, 2],
4048 price: [13e5, 135e5, 16e7, 16e8]
4054 cash: [18500, 6e4, 62e4, 44e5, 38e6],
4055 time: [3, 3, 3, 2, 2],
4056 price: [12e5, 125e5, 15e6, 15e8]
4058 name: "Slime Monster",
4062 cash: [35e3, 14e4, 1e6, 11e6, 11e7],
4063 time: [5, 5, 4, 4, 4],
4064 price: [16e5, 15e6, 2e8, 23e8]
4070 cash: [25e3, 1e5, 68e4, 65e5, 32e6],
4071 time: [3, 3, 2, 2, 1],
4072 price: [2e6, 21e6, 23e7, 26e8]
4078 cash: [36e3, 15e4, 15e5, 15e6, 15e7],
4079 time: [4, 4, 4, 4, 4],
4080 price: [23e5, 24e6, 27e7, 3e9]
4086 cash: [24e3, 15e4, 14e5, 7e6, 75e6],
4087 time: [2, 2, 2, 1, 1],
4088 price: [45e5, 45e6, 55e7, 65e8]
4094 cash: [24e3, 95e3, 95e4, 97e5, 95e6],
4095 time: [3, 3, 3, 3, 3],
4096 price: [19e5, 2e7, 23e7, 25e8]
4101 rarity: "Legendary",
4102 cash: [75e3, 4e5, 6e6, 9e7, 125e7],
4103 time: [5, 5, 5, 5, 5],
4104 price: [6e6, 95e6, 16e8, 25e9]
4106 name: "Two of Spades",
4108 class: "\uD83C\uDFF0",
4110 cash: [4500, 14e3, 14e4, 14e5, 9e6],
4111 time: [1, 1, 1, 1, 1],
4112 price: [77e4, 83e5, 98e6, 71e7]
4116 class: "\uD83C\uDFF0",
4118 cash: [13e3, 45e3, 45e4, 45e5, 5e7],
4119 time: [2, 2, 2, 2, 2],
4120 price: [13e5, 14e6, 16e7, 2e9]
4124 class: "\uD83C\uDFF0",
4126 cash: [12e3, 4e4, 4e5, 4e6, 45e6],
4127 time: [2, 2, 2, 2, 2],
4128 price: [12e5, 12e6, 14e7, 18e8]
4132 class: "\uD83C\uDFF0",
4134 cash: [13e3, 42e3, 21e4, 21e5, 23e6],
4135 time: [2, 2, 1, 1, 1],
4136 price: [12e5, 13e6, 15e7, 19e8]
4138 name: "Queen of Hearts",
4140 class: "\uD83C\uDFF0",
4142 cash: [23e3, 87e3, 62e4, 75e5, 9e7],
4143 time: [4, 4, 3, 3, 3],
4144 price: [13e5, 13e6, 18e7, 24e8]
4148 class: "\uD83C\uDFF0",
4150 cash: [17e3, 68e3, 7e5, 35e5, 35e6],
4151 time: [2, 2, 1, 1, 1],
4152 price: [2e6, 22e6, 25e7, 28e8]
4154 name: "White Rabbit",
4156 class: "\uD83C\uDFF0",
4158 cash: [26e3, 105e3, 11e6, 77e5, 72e6],
4159 time: [3, 3, 3, 2, 2],
4160 price: [2e6, 23e6, 28e7, 29e8]
4162 name: "Cheshire Cat",
4164 class: "\uD83C\uDFF0",
4166 cash: [32e3, 1e5, 9e5, 9e6, 6e7],
4167 time: [4, 3, 3, 3, 2],
4168 price: [18e5, 19e6, 22e7, 24e8]
4170 name: "Caterpillar",
4172 class: "\uD83C\uDFF0",
4174 cash: [1e4, 7e4, 65e4, 75e5, 85e6],
4175 time: [1, 1, 1, 1, 1],
4176 price: [42e5, 42e6, 54e7, 69e8]
4180 class: "\uD83C\uDFF0",
4182 cash: [38e3, 25e4, 15e5, 14e6, 8e7],
4183 time: [3, 3, 2, 2, 1],
4184 price: [48e5, 48e6, 52e7, 66e8]
4186 name: "King of Hearts",
4188 class: "\uD83C\uDFF0",
4189 rarity: "Legendary",
4190 cash: [8e4, 42e4, 68e5, 1e8, 15e8],
4191 time: [5, 5, 5, 5, 5],
4192 price: [7e6, 11e7, 18e8, 3e10]
4196 class: "\uD83D\uDE80",
4198 cash: [15e3, 45e3, 6e5, 65e5, 65e6],
4199 time: [3, 3, 3, 3, 3],
4200 price: [1e6, 11e6, 15e7, 17e8]
4204 class: "\uD83D\uDE80",
4206 cash: [23e3, 65e3, 7e5, 45e5, 2e7],
4207 time: [5, 4, 3, 2, 1],
4208 price: [95e4, 13e6, 16e7, 16e8]
4212 class: "\uD83D\uDE80",
4214 cash: [1e4, 4e4, 2e5, 2e6, 18e6],
4215 time: [2, 2, 1, 1, 1],
4216 price: [14e5, 14e6, 15e7, 15e8]
4220 class: "\uD83D\uDE80",
4222 cash: [3e4, 1e5, 1e6, 11e6, 85e6],
4223 time: [4, 4, 4, 4, 4],
4224 price: [15e5, 17e6, 19e7, 17e8]
4228 class: "\uD83D\uDE80",
4230 cash: [25e3, 1e5, 9e5, 9e6, 9e7],
4231 time: [3, 3, 3, 3, 3],
4232 price: [2e6, 21e6, 21e7, 24e8]
4236 class: "\uD83D\uDE80",
4238 cash: [17e3, 7e4, 7e5, 7e6, 7e7],
4239 time: [2, 2, 2, 2, 2],
4240 price: [21e5, 23e6, 25e7, 28e8]
4244 class: "\uD83D\uDE80",
4246 cash: [6e4, 32e4, 21e5, 15e6, 85e6],
4247 time: [5, 4, 3, 2, 1],
4248 price: [48e5, 46e6, 54e7, 68e8]
4252 class: "\uD83D\uDE80",
4253 rarity: "Legendary",
4254 cash: [45e3, 26e4, 25e5, 38e6, 55e7],
4255 time: [3, 3, 2, 2, 2],
4256 price: [65e5, 1e8, 17e8, 27e9]
4260 class: "\uD83E\uDD16",
4262 cash: [4e3, 12e3, 18e4, 19e5, 25e6],
4263 time: [1, 1, 1, 1, 1],
4264 price: [73e4, 12e6, 13e7, 19e8]
4268 class: "\uD83E\uDD16",
4270 cash: [16e3, 65e3, 65e4, 48e5, 42e6],
4271 time: [3, 3, 3, 2, 2],
4272 price: [13e5, 14e6, 17e7, 16e8]
4276 class: "\uD83E\uDD16",
4278 cash: [22e3, 85e3, 8e5, 62e5, 65e6],
4279 time: [4, 4, 4, 3, 3],
4280 price: [12e5, 13e6, 15e7, 17e8]
4284 class: "\uD83E\uDD16",
4286 cash: [11e3, 45e3, 5e5, 25e5, 3e7],
4287 time: [2, 2, 2, 1, 1],
4288 price: [14e5, 15e6, 18e7, 24e8]
4292 class: "\uD83E\uDD16",
4294 cash: [24e3, 1e5, 1e6, 1e7, 1e8],
4295 time: [3, 3, 3, 3, 3],
4296 price: [2e6, 22e6, 24e7, 26e8]
4300 class: "\uD83E\uDD16",
4302 cash: [22e3, 95e3, 65e4, 65e5, 65e6],
4303 time: [3, 3, 2, 2, 2],
4304 price: [19e5, 21e6, 23e7, 25e8]
4308 class: "\uD83E\uDD16",
4310 cash: [5e4, 25e4, 21e5, 21e6, 17e7],
4311 time: [4, 3, 3, 3, 2],
4312 price: [5e6, 46e6, 5e8, 67e8]
4316 class: "\uD83E\uDD16",
4317 rarity: "Legendary",
4318 cash: [8e4, 43e4, 42e5, 62e6, 1e9],
4319 time: [5, 5, 3, 3, 3],
4320 price: [7e6, 12e7, 19e8, 35e9]
4324 value: JSON.stringify(e)
4329 let t = document.createElement("iframe");
4330 document.body.append(t),
4331 window.alert = t.contentWindow.alert.bind(window),
4335 } = Object.values(function e(t = document.querySelector("body>div")) {
4336 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
4338 ())[1].children[0]._owner;
4339 a.state.blooks.length >= 10 && alert("Choose a blook to replace"),
4340 a.chooseBlook(JSON.parse(e))
4343 name: "Free Upgrades",
4344 description: "Sets upgrade prices to 0 for all current blooks",
4346 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState(e => ({
4348 blooks: e.blooks.map(e => ({
4356 description: "Maxes out all your blooks' levels
",
4358 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.state.blooks.forEach(e => e.level = 4)
4361 name: "Remove Glitches
",
4362 description: "Removes all enemy glitches
",
4364 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4378 clearTimeout(e.adTimeout),
4379 clearInterval(e.hazardInterval),
4380 clearTimeout(e.nightTimeout),
4381 clearTimeout(e.glitchTimeout),
4382 clearTimeout(e.lolTimeout),
4383 clearTimeout(e.jokeTimeout),
4384 clearTimeout(e.slowTimeout),
4385 clearTimeout(e.danceTimeout),
4386 clearTimeout(e.nameTimeout)
4389 name: "Send Glitch
",
4390 description: "Sends a glitch to everyone
else playing
",
4394 options: Object.entries({
4407 }).map(([e, t]) => ({
4414 var t = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4416 t.props.liveGameController.setVal({
4417 path: `c/${t.props.client.name}/tat`,
4422 name: "Set All MegaBot
",
4423 description: "Sets all your blooks to maxed out Mega Bots
",
4425 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
4426 blooks: Array(10).fill({
4429 class: "\uD83E\uDD16",
4430 rarity: "Legendary
",
4431 cash: [8e4, 43e4, 42e5, 62e6, 1e9],
4432 time: [5, 5, 3, 3, 3],
4433 price: [7e6, 12e7, 19e8, 35e9],
4442 description: "Sets amount
of cash you have
",
4449 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
4456 name: "Always Frenzy
",
4457 description: "Always sets everyone to frenzy mode
",
4463 this.enabled = false;
4464 clearInterval(this.data);
4467 this.enabled = true;
4468 this.data = setInterval(() => {
4469 const cheat = (async() => {
4472 } = Object.values((function react(r = document.querySelector("body
>div
")) {
4473 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope
>div
"))
4474 })())[1].children[0]._owner;
4475 stateNode.props.liveGameController.setVal({
4476 path: `c/${stateNode.props.client.name}`,
4478 b: stateNode.props.client.blook,
4479 w: stateNode.state.weight,
4490 name: "Client Sided Frenzy
",
4491 description: "Frenzy
for you only
",
4495 const componentInstance = Object.values(document.querySelector("#app
> div
> div
"))[1].children[1]._owner.stateNode;
4498 componentInstance.setState({
4503 componentInstance.setState({
4509 name: "Remove Distractions
",
4510 description: "Removes distractions
",
4515 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
4516 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
4523 description: "Sets everyone to frenzy mode
",
4525 var e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
4526 e.props.liveGameController.setVal({
4527 path: "c
/" + e.props.client.name,
4529 b: e.props.client.blook,
4537 name: "Send Distraction
",
4538 description: "Sends a distraction to everyone
",
4540 name: "Distraction
",
4542 options: ["Crab
", "Jellyfish
", "Frog
", "Pufferfish
", "Octopus
", "Narwhal
", "Megalodon
", "Blobfish
", "Baby Shark
"]
4546 var t = document.createElement("iframe
"),
4547 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;
4549 t.props.liveGameController.setVal({
4550 path: "c
/" + t.props.client.name,
4552 b: t.props.client.blook,
4561 description: "Sets fishing
lure (range
1 - 5)",
4563 name: "Lure (1 - 5)",
4570 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
4571 lure: Math.max(Math.min(e - 1, 4), 0)
4575 name: "Set Next Fish
",
4576 description: "Sets the next fish to
catch",
4580 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
"]
4585 return Object.values(document.querySelector("#app
> div
> div
"))[1].children[0]._owner
4592 tiers: ["F
", "D
", "C
"]
4598 tiers: ["F
", "D
", "C
"]
4604 tiers: ["F
", "D
", "C
"]
4610 tiers: ["D
", "C
", "B
"]
4616 tiers: ["D
", "C
", "B
"]
4622 tiers: ["D
", "C
", "B
"]
4628 tiers: ["D
", "C
", "B
"]
4630 "Blizzard Clownfish
": {
4631 rarity: "Great Catch
",
4634 tiers: ["D
", "C
", "B
"]
4637 rarity: "Great Catch
",
4640 tiers: ["D
", "C
", "B
", "A
"]
4643 rarity: "Great Catch
",
4646 tiers: ["D
", "C
", "B
", "A
"]
4649 rarity: "Great Catch
",
4652 tiers: ["D
", "C
", "B
", "A
"]
4655 rarity: "Great Catch
",
4658 tiers: ["D
", "C
", "B
", "A
"]
4660 "Poison Dart Frog
": {
4661 rarity: "Great Catch
",
4664 tiers: ["D
", "C
", "B
", "A
"]
4667 rarity: "Rare Find
",
4670 tiers: ["D
", "C
", "B
", "A
"]
4673 rarity: "Rare Find
",
4676 tiers: ["D
", "C
", "B
", "A
"]
4679 rarity: "Rare Find
",
4682 tiers: ["D
", "C
", "B
", "A
"]
4685 rarity: "Rare Find
",
4688 tiers: ["D
", "C
", "B
", "A
"]
4691 rarity: "Rare Find
",
4694 tiers: ["C
", "B
", "A
"]
4697 rarity: "Rare Find
",
4700 tiers: ["D
", "C
", "B
", "A
"]
4703 rarity: "Rare Find
",
4706 tiers: ["D
", "C
", "B
", "A
"]
4708 "Rainbow Jellyfish
": {
4709 rarity: "Epic Grab
",
4712 tiers: ["C
", "B
", "A
"]
4715 rarity: "Epic Grab
",
4718 tiers: ["C
", "B
", "A
"]
4720 "Pirate Pufferfish
": {
4721 rarity: "Epic Grab
",
4724 tiers: ["C
", "B
", "A
"]
4727 rarity: "Epic Grab
",
4730 tiers: ["C
", "B
", "A
"]
4732 "Crimson Octopus
": {
4733 rarity: "Epic Grab
",
4739 rarity: "Catch
of the Day
",
4742 tiers: ["B
", "A
", "S
"]
4745 rarity: "Catch
of the Day
",
4748 tiers: ["B
", "A
", "S
"]
4751 rarity: "Catch
of the Day
",
4754 tiers: ["B
", "A
", "S
"]
4757 rarity: "Angler
's Legend",
4762 "Rainbow Narwhal": {
4763 rarity: "Angler's Legend
",
4766 tiers: ["A
", "S
", "S
+"]
4769 rarity: "Angler
's Legend",
4772 tiers: ["A", "S", "S+"]
4775 rarity: "Angler's Legend
",
4778 tiers: ["A
", "S
", "S
+"]
4781 rarity: "Angler
's Legend",
4784 tiers: ["A", "S", "S+"]
4787 rarity: "Angler's Legend
",
4790 tiers: ["A
", "S
", "S
+"]
4793 rarity: "Angler
's Legend",
4796 tiers: ["A", "S", "S+"]
4799 rarity: "Angler's Legend
",
4802 tiers: ["A
", "S
", "S
+"]
4805 rarity: "Angler
's Legend",
4808 tiers: ["A", "S", "S+"]
4811 o = ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"];
4812 if (!window.functionSet) {
4813 var r = t().stateNode.answerNext;
4814 t().stateNode.answerNext = function () {
4815 if (t().stateNode.state.hackFish) {
4819 t().stateNode.setState({
4824 rarity: a[i].rarity,
4825 weight: (n = a[i].minWeight, Math.floor(Math.random() * ((s = a[i].maxWeight) - n) + n)),
4826 tier: a[i].tiers[Math.floor(Math.random() * a[i].tiers.length)],
4827 isSpecial: o.includes(i) && 8 > Math.floor(100 * Math.random())
4831 setTimeout(function () {
4832 t().stateNode.setState({
4836 t().stateNode.state.hackFish = null
4838 r.apply(this, arguments)
4841 window.functionSet = !0,
4843 if (Object.keys(a).includes(o))
4844 t().stateNode.state.hackFish = o;
4846 alert("That fish does not exist!");
4854 description: "Sets weight",
4861 var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4866 t.props.liveGameController.setVal({
4867 path: "c/" + t.props.client.name,
4869 b: t.props.client.blook,
4871 f: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(9 * Math.random())]
4878 name: "Toggle Ghost",
4879 description: "Lets you go through the pipes",
4883 this.enabled = !this.enabled;
4884 for (const body of Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig.physics.world.bodies.entries) {
4885 if (!body.gameObject.frame.texture.key.startsWith("blook"))
4887 body.checkCollision.none = this.enabled;
4888 body.gameObject.setAlpha(this.enabled ? 0.5 : 1);
4894 description: "Sets flappy blook score",
4900 run: function (score) {
4901 Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[1](score || 0);
4904 name: "Change Game Code",
4905 description: "Replace the old game with new HTML content",
4911 run: function (newHtml) {
4916 var canvas = document.querySelector('canvas
[width
="320"][height
="480"]');
4920 var tempContainer = document.createElement('div
');
4921 tempContainer.innerHTML = newHtml;
4923 var wrapperDiv = document.createElement('div
');
4924 wrapperDiv.style.width = '320px
';
4925 wrapperDiv.style.height = '480px
';
4926 wrapperDiv.style.overflow = 'auto
';
4927 wrapperDiv.style.boxSizing = 'border
-box
';
4928 wrapperDiv.style.position = canvas.style.position;
4929 wrapperDiv.style.marginLeft = canvas.style.marginLeft;
4930 wrapperDiv.style.marginTop = canvas.style.marginTop;
4931 wrapperDiv.style.cursor = canvas.style.cursor;
4932 wrapperDiv.style.backgroundColor = '#f0f0f0
';
4934 while (tempContainer.firstChild) {
4935 wrapperDiv.appendChild(tempContainer.firstChild);
4938 canvas.parentNode.replaceChild(wrapperDiv, canvas);
4941 var scoreTextDiv = document.querySelector('div
._scoreText_e2c5l_7
');
4943 scoreTextDiv.parentNode.removeChild(scoreTextDiv);
4949 name: "Change Settings",
4950 description: "Changes various game mechanics and lets you play with the spacebar",
4952 name: "Bird Gravity",
4960 name: "Bird Flap Power",
4965 run: function (a, b, c) {
4966 const scene = Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig;
4967 scene.birdGravity = a;
4968 scene.birdSpeed = b;
4969 scene.birdFlapPower = c;
4970 scene.flap = function () {
4971 this.isStarted || (this.bird.body.gravity.y = this.birdGravity,
4972 this.pipeGroup.setVelocityX(-this.birdSpeed),
4973 this.groundGroup.setVelocityX(-this.birdSpeed),
4974 this.isStarted = !0),
4975 this.bird.body.velocity.y = -this.birdFlapPower
4977 scene.input._events.pointerdown = [];
4979 scene.input.keyboard.addKey('SPACE
').on("down", e => {
4980 scene.flap.call(scene);
4986 name: "Always Triple",
4987 description: "Always get triple gold",
4992 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
4993 e._choosePrize ||= e.choosePrize,
4994 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null, e.choosePrize = e._choosePrize || e.choosePrize) : (this.enabled = !0, this.data = setInterval(() => {
4995 e.choosePrize = function (t) {
4996 e.state.choices[t] = {
4999 text: "Triple Gold!",
5007 name: "Always Quintuple",
5008 description: "Always get quintuple gold",
5013 let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
5014 e._choosePrize ||= e.choosePrize,
5015 this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null, e.choosePrize = e._choosePrize || e.choosePrize) : (this.enabled = !0, this.data = setInterval(() => {
5016 e.choosePrize = function (t) {
5017 e.state.choices[t] = {
5020 text: "Quintuple Gold!",
5021 blook: "Ice Elemental"
5028 name: "Auto Choose",
5029 description: "Automatically picks the option that would give you the most gold",
5035 this.enabled = false;
5036 clearInterval(this.data);
5039 this.enabled = true;
5040 this.data = setInterval(() => {
5043 } = Object.values((function react(r = document.querySelector("body>div")) {
5044 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5045 })())[1].children[0]._owner;
5047 if (stateNode.state.stage == "prize") {
5048 stateNode.props.liveGameController.getDatabaseVal("c", (players) => {
5049 if (players == null)
5051 players = Object.entries(players);
5055 for (let i = 0; i < players.length; i++) {
5056 if (players[i][0] != stateNode.props.client.name && players[i][1] > most) {
5057 most = players[i][1];
5060 for (let i = 0; i < stateNode.state.choices.length; i++) {
5061 const choice = stateNode.state.choices[i];
5062 let value = stateNode.state.gold;
5063 if (choice.type == "gold") {
5064 value = stateNode.state.gold + (choice.val || 0);
5065 } else if (choice.type == "multiply" || choice.type == "divide") {
5066 value = Math.round(stateNode.state.gold * choice.val) || stateNode.state.gold;
5067 } else if (choice.type == "swap") {
5068 value = most || stateNode.state.gold;
5069 } else if (choice.type == "take") {
5070 value = stateNode.state.gold + (most * choice.val || 0);
5072 if ((value || 0) <= max)
5077 document.querySelector("div[class*='choice
" + index + "']")?.click();
5085 description: "Shows what each chest will give you",
5091 this.enabled = false;
5092 clearInterval(this.data);
5095 this.enabled = true;
5096 this.data = setInterval(() => {
5097 const cheat = (async() => {
5098 Object.values((function react(r = document.querySelector("body>div")) {
5099 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5100 })())[1].children[0]._owner.stateNode.state.choices.forEach(({
5103 let chest = document.querySelector(`div[class*='choice${index + 1}
']`);
5104 if (!chest || chest.querySelector('div
'))
5106 let choice = document.createElement('div
')
5107 choice.style.color = "white";
5108 choice.style.fontFamily = "Eczar";
5109 choice.style.fontSize = "2em";
5110 choice.style.display = "flex";
5111 choice.style.justifyContent = "center";
5112 choice.style.transform = "translateY(200px)";
5113 choice.innerText = text;
5114 chest.append(choice)
5122 name: "Remove Lose 25%-50%",
5123 description: "Removes Lose 25%-50% chests",
5132 return Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner
5134 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(() => {
5135 document.querySelectorAll('div
[role
="button"]').forEach(e => {
5136 ("Lose 25%" === e.innerText || "Lose 50%" === e.innerText) && (e.style.display = "none")
5138 }, 50), t.data = setInterval(() => {
5140 if ("gold" === ("gold" === window.location.pathname.split("/")[2] && "gold") && t.enabled)
5142 if ("prize" === a().stateNode.state.stage) {
5145 } = a().stateNode.state,
5146 r = document.querySelector("div[class*='regularBody
']").children[1];
5147 r && (document.querySelectorAll(".chest-esp").length ? o.forEach((e, t) => {
5148 3 == r.children.length && r.children[t].children[1].innerText != e.text && (r.children[t].children[1].innerText = e.text)
5149 }) : o.forEach((e, t) => {
5150 (textElement = document.createElement("p")).className = "chest-esp",
5151 textElement.innerText = e.text,
5152 textElement.style = "text-align: center; font-size: 30px; color: white; font-family:Titan One, sans-serif; border-color: black; margin-top: 200px; opacity: 0;";
5154 r.children[t].appendChild(textElement)
5166 name: "Flood Alert Box",
5167 description: "Makes the alert box filled with text",
5173 run: function (userInput) {
5174 function getReactOwner() {
5175 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
5178 function repeatText(text, times) {
5179 return new Array(times).fill(text).join(" ");
5182 function setValForPlayer() {
5183 getReactOwner().stateNode.props.liveGameController.getDatabaseVal("c/").then(data => {
5186 const playerName = Object.keys(data)[0];
5190 const id = "1,723,583,989,363";
5191 const repeatedText = repeatText(userInput, 1700);
5192 const finalText = `${id}${repeatedText}`;
5194 setv(['tat
', `${playerName}:${finalText}`]);
5196 console.log("No text entered. Operation cancelled.");
5199 console.log("Player not found!");
5204 function setv(args) {
5205 getReactOwner().stateNode.props.liveGameController.setVal({
5206 path: "c/" + getReactOwner().stateNode.props.client.name + "/" + args[0],
5207 val: args.slice(1, args.length).join(" ")
5214 name: "Reset Players Gold",
5215 description: "Sets a player's gold to
0",
5220 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
5221 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
5229 } = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
5230 t.liveGameController.setVal({
5231 path: "c
/".concat(t.client.name),
5241 description: "Sets amount
of gold
",
5248 var t = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
5253 t.props.liveGameController.setVal({
5254 path: "c
/".concat(t.props.client.name),
5256 b: t.props.client.blook,
5263 description: "Swaps gold
with someone
",
5268 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
5269 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
5274 let t = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
5275 t.props.liveGameController.getDatabaseVal("c
", a => {
5276 a?.[e] && (a = a[e].g, t.props.liveGameController.setVal({
5277 path: "c
/".concat(t.props.client.name),
5279 b: t.props.client.blook,
5281 tat: e + ":swap
:" + t.state.gold
5290 name: "Set Player
's Gold",
5291 description: "Sets a players gold to any amount.",
5296 let e = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
5297 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]))
5304 run: (player, amount) => {
5305 const sn = Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner.stateNode;
5306 sn.props.liveGameController.setVal({
5307 path: `c/${sn.props.client.name}/tat`,
5308 val: `${player}:swap:${amount}`
5312 name: "Send Ad Text",
5313 description: "Sends a load of text to another player (This will override your blook!)",
5320 } = Object.values(function e(t = document.querySelector("body>div")) {
5321 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
5323 ())[1].children[0]._owner;
5324 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c", e => e && t(Object.keys(e))) : t([]));
5330 run: async function (player, e) {
5333 } = Object.values(function e(t = document.querySelector("body>div")) {
5334 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
5336 ())[1].children[0]._owner.stateNode;
5338 let repeatedText = `Dog:${Array(500).fill(e).join(' ')}`;
5339 t2.client.blook = repeatedText;
5340 t2.liveGameController.setVal({
5341 path: `c/${t2.client.name}/b`,
5344 t2.liveGameController.setVal({
5345 path: `c/${t2.client.name}/tat`,
5346 val: `${player}:196`
5350 name: "Reset All Players' Gold
",
5351 description: "Set
's everyone else's gold to
0",
5353 var e = document.createElement("iframe
");
5354 document.body.append(e),
5355 window.alert = e.contentWindow.alert.bind(window),
5360 } = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode,
5362 t.liveGameController.getDatabaseVal("c
", async e => {
5364 for (let r of Object.keys(e))
5365 t.liveGameController.setVal({
5366 path: "c
/".concat(t.client.name),
5372 }), o++, await new Promise(e => setTimeout(e, 4e3));
5373 alert(`Reset ${o} players' gold!`)
5377 name: "Crash
Host (Gold
)",
5378 description: "Crashes the Host
's Game for Gold Quest",
5380 function reactHandler() {
5381 return Object.values(document.querySelector('#app
>div
>div
'))[1].children[0]._owner;
5384 function setv(args) {
5385 reactHandler().stateNode.props.liveGameController.setVal({
5386 path: "c/" + reactHandler().stateNode.props.client.name + "/" + args[0],
5387 val: args.slice(1, args.length).join(" ")
5397 description: "Shows you what will happen if you say Yes or No",
5403 this.enabled = false;
5404 clearInterval(this.data);
5407 this.enabled = true;
5408 this.data = setInterval((stats => {
5411 } = Object.values((function react(r = document.querySelector("body>div")) {
5412 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
5413 })())[1].children[0]._owner;
5415 let elements = Array.prototype.reduce.call(
5416 document.querySelectorAll('[class*=statContainer
]'),
5417 (obj, container, i) => (obj[stats[i]] = container, obj), {});
5419 if (stateNode.state.phase == "choice") {
5420 Array.prototype.forEach.call(document.querySelectorAll('.choiceESP
'), x => x.remove());
5422 Object.keys(stateNode.state.guest.yes || {}).forEach(x => {
5423 if (elements[x] == null)
5425 let element = document.createElement('div
');
5426 element.className = 'choiceESP
';
5427 element.style = 'font
-size
: 24px
; color
: rgb(75, 194, 46); font
-weight
: bolder
;';
5428 element.innerText = String(stateNode.state.guest.yes[x]);
5429 elements[x].appendChild(element);
5432 Object.keys(stateNode.state.guest.no || {}).forEach(x => {
5433 if (elements[x] == null)
5435 let element = document.createElement('div
');
5436 element.className = 'choiceESP
';
5437 element.style = 'font
-size
: 24px
; color
: darkred
; font
-weight
: bolder
;';
5438 element.innerText = String(stateNode.state.guest.no[x]);
5439 elements[x].appendChild(element);
5442 Array.prototype.forEach.call(
5443 document.querySelectorAll("[class*=guestButton][role=button]"),
5444 x => (x.onclick = () => Array.prototype.forEach.call(document.querySelectorAll(".choiceESP"), x => x.remove())));
5446 }), 50, ['materials
', 'people
', 'happiness
', 'gold
']);
5450 name: "Disable Tax Toucan",
5451 description: "Tax evasion",
5453 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.taxCounter = Number.MAX_VALUE
5457 description: "Sets all resources to the max",
5459 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
5468 description: "Sets the amount of guests you've seen
",
5475 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.setState({
5481 description: "Skips the current guest
",
5483 Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode.nextGuest()
5488 name: "Instant Win
",
5489 description: "Instantly Wins the race
",
5491 let e = Object.values(document.querySelector("body div
[id
] > div
> div
"))[1].children[0]._owner.stateNode;
5493 progress: e.state.goalAmount
5499 [...document.querySelectorAll('[class*="answerContainer
"]')][t.answers.map((e, a) => t.correctAnswers.includes(e) ? a : null).filter(e => null != e)[0]]?.click?.()
5504 name: "Set Questions
",
5505 description: "Sets the number
of questions left
",
5511 run: function (progress) {
5514 } = Object.values((function react(r = document.querySelector("body
>div
")) {
5515 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope
>div
"))
5516 })())[1].children[0]._owner;
5517 progress = stateNode.props.client.amount - progress;
5518 stateNode.setState({
5521 stateNode.props.liveGameController.setVal({
5522 path: "c
/".concat(stateNode.props.client.name),
5524 b: stateNode.props.client.blook,
5530 name: "Attack Player
",
5531 description: "Sends the specified attack to a player
",
5538 } = Object.values(function e(t = document.querySelector("body
>div
")) {
5539 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
5541 ())[1].children[0]._owner;
5542 return new Promise(t => e.props.liveGameController._liveApp ? e.props.liveGameController.getDatabaseVal("c
", e => e && t(Object.keys(e))) : t([]))
5547 options: Object.entries({
5548 "Woosh(-1)": "wind
",
5549 "Rocket(-1)": "rocket
",
5552 }).map(([e, t]) => ({
5558 run: function (player, attack) {
5561 } = Object.values((function react(r = document.querySelector("body
>div
")) {
5562 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope
>div
"))
5563 })())[1].children[0]._owner;
5564 stateNode.props.liveGameController.setVal({
5565 path: `c/${stateNode.props.client.name}/tat`,
5566 val: player + ":" + attack
5572 name: "Toggle Invert Colors
",
5573 description: "Toggle between inverting and restoring colors on the page
",
5575 "invert()" == document.getElementsByTagName("html
")[0].style.filter ? document.getElementsByTagName("html
")[0].style.filter = "" : document.getElementsByTagName("html
")[0].style.filter = "invert()",
5576 elems = document.querySelectorAll(" a
, img
, video
");
5577 for (let e = 0; e < elems.length; e++)
5578 ("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()")
5581 name: "Toggle Dark Mode
",
5582 description: "Toggles Dark Mode
",
5584 var e = document.createElement("iframe
");
5585 document.body.append(e),
5586 window.alert = e.contentWindow.alert.bind(window),
5589 let t = document.querySelectorAll("#nightify
");
5591 t[0].parentNode.removeChild(t[0]);
5593 var a = document.getElementsByTagName("head
")[0],
5594 o = document.createElement("style
");
5595 o.setAttribute("type
", "text
/css
"),
5596 o.setAttribute("id
", "nightify
"),
5597 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;}`)),
5605 description: "Makes the page
3D
",
5608 menu: document.createElement("div
"),
5609 limit: document.createElement("input
"),
5610 gap: document.createElement("input
"),
5611 sag: document.createElement("input
"),
5612 fov: document.createElement("input
"),
5613 flo: document.createElement("input
"),
5614 off: document.createElement("input
"),
5615 non: document.createElement("input
"),
5616 end: document.createElement("input
"),
5617 tgl: document.createElement("input
"),
5618 cssStatic: document.createElement("style
"),
5619 cssDynamic: document.createElement("style
"),
5625 mouseMove: function (t) {
5626 e.orientation.yaw = - (180 * Math.cos(Math.PI * t.clientX / innerWidth)) * e.limit.value,
5627 e.orientation.pitch = 180 * Math.cos(Math.PI * t.clientY / innerHeight) * e.limit.value,
5630 gyroMove: function (t) {
5631 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),
5634 updateOrigin: function (e) {
5635 document.body.style.transformOrigin = innerWidth / 2 + pageXOffset + "px
" + (innerHeight / 2 + pageYOffset) + "px
"
5637 updateBody: function () {
5638 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
)"
5640 updateCSS: function () {
5642 e.cssDynamic.innerHTML = "";
5643 else if (e.off.checked)
5644 e.cssDynamic.innerHTML = "* { transform
-style
: preserve
-3d
; }";
5646 for (var t = 0; document.querySelector("body
" + " > *".repeat(t)); t++);
5647 var a = e.gap.value / t,
5648 o = -Math.PI * e.sag.value / t;
5649 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;"} } `
5652 toggle: function () {
5653 "active
" == e.menu.className ? e.menu.removeAttribute("class") : e.menu.className = "active
"
5656 window.removeEventListener("deviceorientation
", e.gyroMove),
5657 window.removeEventListener("mousemove
", e.mouseMove),
5658 window.removeEventListener("scroll
", e.updateOrigin),
5659 window.addEventListener("resize
", e.updateOrigin),
5661 e.cssStatic.remove(),
5662 e.cssDynamic.remove(),
5663 document.body.removeAttribute("style
")
5665 newRange: function (t, a, o, r, i, n, s) {
5666 e.menu.appendChild(t),
5672 t.addEventListener("input
", s),
5673 e.menu.appendChild(document.createElement("span
")).innerHTML = a,
5674 e.menu.appendChild(document.createElement("br
"))
5676 newCheckbox: function (t, a, o) {
5677 e.menu.appendChild(t),
5678 t.type = "checkbox
",
5679 t.addEventListener("click
", o),
5680 e.menu.appendChild(document.createElement("span
")).innerHTML = a,
5681 e.menu.appendChild(document.createElement("br
"))
5683 newButton: function (t, a, o) {
5684 e.menu.appendChild(t),
5687 t.addEventListener("click
", o)
5690 document.body.parentNode.appendChild(e.menu).id = "tri
-menu
",
5691 e.newRange(e.limit, "limit
", 0, .03125, 1, .125, e.updateBody),
5692 e.newRange(e.gap, "gap
/ distance
", 0, 32, 512, 128, function () {
5696 e.newRange(e.sag, "sag
", - .25, .03125, .25, 0, e.updateCSS),
5697 e.newRange(e.fov, "field
of view
", 7, 1, 13, 10, e.updateBody),
5698 e.newCheckbox(e.flo, "force overflow
", e.updateCSS),
5699 e.flo.setAttribute("checked
", ""),
5700 e.newCheckbox(e.off, "flatten layers
", e.updateCSS),
5701 e.newCheckbox(e.non, "flatten everything
", e.updateCSS),
5702 e.newButton(e.end, "Quit
", e.quit),
5703 e.newButton(e.tgl, "≡", e.toggle),
5704 e.tgl.id = "tri
-toggle
",
5705 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; }",
5706 e.menu.appendChild(e.cssDynamic),
5708 window.addEventListener("deviceorientation
", e.gyroMove),
5709 window.addEventListener("mousemove
", e.mouseMove),
5710 window.addEventListener("scroll
", e.updateOrigin),
5711 window.addEventListener("resize
", e.updateOrigin),
5712 window.scrollBy(0, 1)
5718 name: "History Flooder
",
5719 description: "Floods browser history
with specified amount
of entries
",
5728 C = window.location.href;
5729 for (var a = 1; a <= t; a++)
5730 history.pushState(0, 0, a == t ? C : a.toString()), a == t && (done = !0);
5731 !0 === done && alert("History flood successful
! " + window.location.href + " now appears
in your history
" + t + (1 == t ? " time
." : " times
. "))
5734 name: "Auto Clicker
",
5735 description: "Automatically clicks
for you
. Press S to toggle
.",
5737 name: "Click Delay
",
5741 run: function (inputs) {
5745 let clickInterval = null;
5746 let clickingEnabled = true;
5752 const milliseconds = Number.parseInt(inputs, 10);
5754 if (false === Number.isSafeInteger(milliseconds)) {
5755 self.alert("Input was not an integer
");
5765 function startClicking() {
5766 clickInterval = self.setInterval(() => {
5767 document.elementFromPoint(clientX, clientY)?.click?.();
5771 function stopClicking() {
5772 self.clearInterval(clickInterval);
5773 clickInterval = null;
5778 document.addEventListener("mousemove
", event => {
5787 self.addEventListener("keydown
", event => {
5788 if (event.key === "s
") {
5789 if (clickingEnabled) {
5794 clickingEnabled = !clickingEnabled;
5800 name: "Tab Cloaker
",
5801 description: "Changes the tab image and name
",
5810 run: function (e, t) {
5811 var a = document.querySelector("link
[rel
*='icon']") || document.createElement("link
");
5812 a.type = "image
/x
-icon
",
5813 a.rel = "shortcut icon
",
5814 a.href = e || "https
://www.blooket.com/favicon.ico",
5815 document
.getElementsByTagName("head")[0].appendChild(a
),
5816 document
.title
= t
|| "Blooket"
5821 name
: "Host Any Gamemode",
5822 description
: "Change the selected gamemode on the host settings page",
5826 options
: ["Racing", "Classic", "Factory", "Cafe", "Defense2", "Defense", "Royale", "Gold", "Candy", "Brawl", "Hack", "Pirate", "Fish", "Dino", "Toy", "Rush"]
5830 let t
= document
.createElement("iframe");
5831 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
)
5832 return alert("Run this script on the host settings page");
5835 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
5836 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
5838 ())[1].children
[0]._owner
;
5846 name
: "Toggle Spooky Theme",
5847 description
: "Toggles the spooky theme for Gold Quest",
5850 const sn
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
5851 sn
.season
= sn
.season
? 0 : 1;
5856 name
: "Freeze Timer",
5857 description
: "Makes the host timer stop ingame",
5862 } = Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
;
5863 clearInterval(stateNode
.timerInterval
);
5864 stateNode
.timerInterval
= setInterval(function () {
5865 stateNode
?.getClients
?.(!1);
5870 name
: "Render Hours on Host Timer",
5871 description
: "Renders hours on host timer(use with remove host time limit). Can only render up to 24 hours.",
5874 const format
= "HH:mm:ss";
5875 const reg
= '/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g';
5876 if (!RegExp
.prototype.tes
) {
5877 RegExp
.prototype.tes
= RegExp
.prototype.test
;
5879 RegExp
.prototype.test = function (a
) {
5880 if (a
== "mm:ss" && this.toString() == reg
) {
5883 return RegExp
.prototype.tes
.apply(this, arguments
);
5885 if (!String
.prototype.rep
) {
5886 String
.prototype.rep
= String
.prototype.replace
;
5888 String
.prototype.replace = function (a
, b
) {
5889 if (this == "mm:ss" && a
.toString() == reg
) {
5892 return String
.prototype.rep
.apply(this, arguments
);
5897 name
: "View Lobbychat Logs",
5898 description
: "View messages players type in chat",
5900 function reactHandler() {
5901 return Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
;
5904 document
.addEventListener("keydown", function (e
) {
5905 if (e
.key
=== "Shift" && e
.code
=== "ShiftRight") {
5906 c
.style
.display
= c
.style
.display
=== "none" ? "block" : "none";
5910 const c
= document
.createElement("div");
5911 c
.className
= "chat-box";
5912 document
.body
.appendChild(c
);
5913 const h
= document
.createElement("div");
5914 h
.className
= "chat-header";
5915 h
.textContent
= "Chat Logs (RSHIFT to hide)";
5917 const b
= document
.createElement("div");
5918 b
.className
= "chat-body";
5922 const t
= document
.createElement("div");
5925 b
.scrollTop
= b
.scrollHeight
;
5928 c
.style
.position
= "fixed";
5929 c
.style
.bottom
= "20px";
5930 c
.style
.right
= "20px";
5931 c
.style
.width
= "300px";
5932 c
.style
.height
= "400px";
5933 c
.style
.backgroundColor
= "#fff";
5934 c
.style
.border
= "1px solid #ccc";
5935 c
.style
.boxShadow
= "0px 0px 10px rgba(0, 0, 0, 0.2)";
5936 c
.style
.display
= "block";
5938 b
.style
.height
= "360px";
5939 b
.style
.overflowY
= "scroll";
5940 b
.style
.padding
= "10px";
5942 h
.addEventListener("click", () => {
5943 b
.classList
.toggle("open");
5946 var da
= reactHandler().stateNode
.props
.liveGameController
._liveApp
.database()._delegate
._repoInternal
.server_
.onDataUpdate_
;
5948 function handleChat(e
, t
) {
5950 if (e
.includes("/msg")) {
5951 t
?.msg
&& (console
.log(t
.msg
), a(e
.split("/")[2] + ": " + t
.msg
));
5956 reactHandler().stateNode
.props
.liveGameController
._liveApp
.database()._delegate
._repoInternal
.server_
.onDataUpdate_ = function (e
, t
, a
, n
) {
5957 console
.log(e
, t
, a
, n
);
5962 window
.logsv
= false;
5966 a("Path: " + e
.path
.split("/").splice(2, 2).join("/") + " Val: " + ((typeof e
.val
=== 'object') ? JSON
.stringify(e
.val
) : e
.val
));
5970 var orgsv
= reactHandler().stateNode
.props
.liveGameController
.setVal
;
5971 reactHandler().stateNode
.props
.liveGameController
.setVal = function () {
5972 onsv
.apply(this, arguments
);
5973 orgsv
.apply(this, arguments
);
5976 reactHandler().stateNode
.props
.liveGameController
._liveApp
.database().ref(`${reactHandler().stateNode.props.liveGameController._liveGameCode}`).on("value", e
=> {});
5977 a("Lobbychat successfully loaded!");
5980 c
.style
.wordWrap
= "break-word";
5986 name
: "Remove Host Time Limit",
5987 description
: "Removes the host time limit",
5990 const sn
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
5991 sn
.onAmountUpdate = function (t
) {
5992 let settings
= sn
.state
.settings
;
5993 settings
.amount
= parseInt(t
.target
.value
);
6001 name
: "Free Player Slots",
6002 description
: "Allows more players to join if the game is full",
6004 let i
= document
.createElement('iframe');
6005 document
.body
.append(i
);
6006 const alert
= i
.contentWindow
.alert
.bind(window
);
6008 const stateNode
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
6009 const players
= await stateNode
.props
.liveGameController
.getDatabaseVal("c");
6011 if (!stateNode
.state
.blockedUsers
) {
6012 stateNode
.state
.blockedUsers
= [];
6014 async
function wait(time
) {
6015 return new Promise(e
=> {
6016 setTimeout(e
, time
);
6019 async
function blockUser(name
) {
6020 if (stateNode
.state
.blockedUsers
.includes(name
)) {
6023 const res
= await
fetch("https://fb.blooket.com/c/firebase/block", {
6025 "Content-Type": "application/json"
6028 body
: JSON
.stringify({
6029 g
: stateNode
.props
.host
.id
,
6032 credentials
: "include"
6034 if (res
.status
!== 200) {
6037 stateNode
.state
.blockedUsers
.push(name
);
6039 if (freed
% parseInt("15") == 0) {
6042 C
.alerts
?.[0].addLog("Freed user: " + name
);
6044 for (let i
in players
) {
6047 alert(`Freed slots: ${freed}`);
6050 name
: "Realtime Updates",
6051 description
: "Makes leaderboard updates happen in real-time.",
6053 const stateNode
= () => Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
.stateNode
;
6054 (await
stateNode().props
.liveGameController
.getDatabaseRef("")).on("value", e
=> stateNode()?.getClients
?.(!1));
6058 description
: "Prevents bots from flooding the game",
6066 this.enabled
= true;
6067 this.data
= setInterval(async() => {
6068 var iframe
= document
.createElement("iframe");
6069 document
.body
.append(iframe
);
6070 window
.confirm
= iframe
.contentWindow
.confirm
.bind(window
);
6071 iframe
.style
.display
= "none";
6074 let stateNode
= Object
.values(document
.querySelector("#app > div > div"))[1].children
[0]._owner
.stateNode
;
6075 var dbRef
= await stateNode
.props
.liveGameController
.getDatabaseRef("c");
6076 let currentClients
= {},
6079 dbRef
.on("value", snapshot
=> {
6080 var clients
= snapshot
.val() || {};
6081 var newClients
= [];
6083 for (const key
in clients
) {
6084 if (!currentClients
[key
]) {
6085 newClients
.push(key
);
6086 clientCounts
[key
.replace(/[0-9]/g, "")] = (clientCounts
[key
.replace(/[0-9]/g, "")] || 0) + 1;
6090 currentClients
= clients
;
6092 for (const client
of newClients
) {
6093 if (currentClients
[client
].g
|| clientCounts
[client
.replace(/[0-9]/g, "")] > 1) {
6094 stateNode
.props
.liveGameController
.blockUser(client
);
6095 clientCounts
[client
.replace(/[0-9]/g, "")]--;
6100 console
.error("An error occurred", error
);
6105 name
: "Enable Mobile Hosting",
6106 description
: "Makes it so that you can host on mobile",
6109 var metaViewport
= document
.querySelector('meta[name="viewport"]');
6111 metaViewport
.parentNode
.removeChild(metaViewport
);
6113 var newMetaViewport
= document
.createElement('meta');
6114 newMetaViewport
.name
= 'viewport';
6115 newMetaViewport
.content
= 'width=1280, initial-scale=1';
6116 document
.head
.appendChild(newMetaViewport
);
6120 name
: "Kick All Players",
6121 description
: "Kicks all players from your game.",
6123 const sn
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
6124 const db
= await sn
.props
.liveGameController
.getDatabaseVal("");
6125 sn
.props
.liveGameController
.setVal({
6127 val
: Object
.keys(db
.c
).reduce((a
, b
) => (a
[b
] = 1, a
), db
.bu
? db
.bu
: {})
6129 sn
.props
.liveGameController
.setVal({
6137 name
: "Auto Answer (Toggle)",
6138 description
: "Toggles auto answer on",
6143 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
6144 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
6145 e
?.onAnswer
?.(!0, e
.props
.client
.question
.correctAnswers
[0])
6149 name
: "Auto Answer",
6150 description
: "Chooses the correct answer for you. Will answer with the time provided.",
6152 name
: "Time (milliseconds)",
6159 const stateNode
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
6160 stateNode
.startTime
= performance
.now() - a
;
6161 stateNode
?.onAnswer
?.(true, stateNode
.props
.client
.question
.correctAnswers
[0]);
6167 description
: "Sets amount of blooks you or your team has",
6174 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
6178 t
.isTeam
? t
.props
.liveGameController
.setVal({
6179 path
: `a/${t.props.client.name}/bs`,
6181 }) : t
.props
.liveGameController
.setVal({
6182 path
: `c/${t.props.client.name}/bs`,
6187 name
: "Set Defense",
6188 description
: "Sets amount of defense you or your team has (Max 4)",
6190 name
: "Defense (max 4)",
6196 var e
= Math
.min(e
, 4),
6197 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
6201 t
.isTeam
? t
.props
.liveGameController
.setVal({
6202 path
: `a/${t.props.client.name}/d`,
6204 }) : t
.props
.liveGameController
.setVal({
6205 path
: `c/${t.props.client.name}/d`,
6210 name
: "Freeze Host :)",
6211 description
: "They aint coming back with this one",
6213 var largeNumber
= "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999";
6214 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
6216 numBlooks
: largeNumber
6219 t
.props
.liveGameController
.setVal({
6220 path
: `a/${t.props.client.name}/bs`,
6224 t
.props
.liveGameController
.setVal({
6225 path
: `c/${t.props.client.name}/bs`,
6233 name
: "Remove Distractions",
6234 description
: "Removes all enemy distractions",
6236 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
6244 trees
: [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1]
6248 name
: "Send Distraction",
6249 description
: "Sends a distraction to everyone else playing",
6251 name
: "Distraction",
6253 options
: Object
.entries({
6263 }).map(([e
, t
]) => ({
6270 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
6272 t
.props
.liveGameController
.setVal({
6273 path
: `c/${t.props.client.name}/tat`,
6279 description
: "Sets amount of toys",
6286 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
6290 t
.props
.liveGameController
.setVal({
6291 path
: "c/".concat(t
.props
.client
.name
),
6293 b
: t
.props
.client
.blook
,
6299 name
: "Set Toys Per Question",
6300 description
: "Sets amount of toys per question",
6302 name
: "Toys Per Question",
6307 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
6313 description
: "Swaps toys with someone",
6318 let e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
6319 return new Promise(t
=> e
.props
.liveGameController
._liveApp
? e
.props
.liveGameController
.getDatabaseVal("c", e
=> e
&& t(Object
.keys(e
))) : t([]))
6324 let t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
6325 t
.props
.liveGameController
.getDatabaseVal("c", a
=> {
6327 a
&& Object
.keys(a
).map(e
=> e
.toLowerCase()).includes(e
.toLowerCase()) && ([a
, {
6330 ] = Object
.entries(a
).find(([t
]) => t
.toLowerCase() == e
.toLowerCase()), t
.props
.liveGameController
.setVal({
6331 path
: "c/".concat(t
.props
.client
.name
),
6333 b
: t
.props
.client
.blook
,
6335 tat
: a
+ ":swap:" + t
.state
.toys
6346 className
: "creditContainer",
6348 margin
: "15px 15px 5px 15px",
6349 backgroundColor
: "rgb(0 0 0 / 50%)",
6352 borderRadius
: "7px",
6356 boxSizing
: "border-box",
6360 const container
= document
.createElement("div");
6361 container
.style
.width
= "100%";
6362 container
.style
.height
= "100%";
6363 container
.style
.overflow
= "auto";
6364 container
.style
.textAlign
= "center";
6366 const creditsList
= [{
6367 name
: "DannyDan0167",
6368 description
: "Founder of <a href='https://github.com/randomstuff69/blooketpluscheats/' target='_blank' style='color: #0000FF;'>Blooket Cheats Plus</a>"
6370 name
: "CryptoDude3",
6371 description
: "Co-Founder of Blooket Cheats Plus and made almost all of the new cheats"
6374 description
: "Creator of the GUI and old cheats"
6377 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`
6379 name
: "Randomstuff69",
6380 description
: `Hosting the <a href='https://github.com/randomstuff69/blooketpluscheats/' target='_blank' style='color: #0000FF;'>Blooket Cheats Plus</a> repository`
6384 creditsList
.forEach(credit
=> {
6385 const heading
= document
.createElement("h1");
6386 heading
.textContent
= credit
.name
;
6387 heading
.style
.margin
= "0";
6389 const description
= document
.createElement("h3");
6390 description
.innerHTML
= credit
.description
;
6391 description
.style
.margin
= "0 0 15px 0";
6393 container
.appendChild(heading
);
6394 container
.appendChild(description
);
6402 name
: "Import Settings",
6403 description
: "Import a custom theme",
6413 return alert("Invalid JSON provided")
6416 backgroundColor
: "rgb(11, 194, 207)",
6417 infoColor
: "#9a49aa",
6418 cheatList
: "#9a49aa",
6419 defaultButton
: "#9a49aa",
6420 disabledButton
: "#A02626",
6421 enabledButton
: "#47A547",
6423 inputColor
: "#7a039d",
6424 contentBackground
: "rgb(64, 17, 95)",
6426 }, c
.setItem("theme", e
), e
)
6427 p
.sheet
.cssRules
[0].style
.setProperty("--" + a
, e
[a
])
6430 name
: "Export Settings",
6431 description
: "Export the current theme to JSON",
6432 run
: async
function () {
6433 await navigator
.clipboard
.writeText(JSON
.stringify(c
.data
.theme
, null, 4)),
6434 prompt("Text copied to clipboard. (Paste below to test)")
6438 description
: "Changes all the settings to a preset",
6445 backgroundColor
: "rgb(11, 194, 207)",
6446 infoColor
: "#9a49aa",
6447 cheatList
: "#9a49aa",
6448 defaultButton
: "#9a49aa",
6449 disabledButton
: "#A02626",
6450 enabledButton
: "#47A547",
6452 inputColor
: "#7a039d",
6453 contentBackground
: "rgb(64, 17, 95)"
6456 name
: "Landscapes (Random)",
6458 backgroundColor
: "url(https://source.unsplash.com/1600x900/?landscape)",
6459 infoColor
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
6460 cheatList
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
6461 defaultButton
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
6462 disabledButton
: "linear-gradient(rgba(225, 0, 0, 0.3), rgba(225, 0, 0, 0.3))",
6463 enabledButton
: "linear-gradient(rgba(0, 128, 0, 0.3), rgba(0, 128, 0, 0.3))",
6465 inputColor
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))",
6466 contentBackground
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))"
6471 backgroundColor
: "#4f4f4f",
6472 infoColor
: "#2f2f2f",
6473 cheatList
: "#2f2f2f",
6474 defaultButton
: "#4f4f4f",
6475 disabledButton
: "#eb6234",
6476 enabledButton
: "#00c20c",
6478 inputColor
: "#3f3f3f",
6479 contentBackground
: "#2f2f2f"
6484 backgroundColor
: "url(https://i.ibb.co/6vvdq3f/ploopit.png)",
6485 infoColor
: "#3C75F5",
6486 cheatList
: "#204DD0",
6487 defaultButton
: "#204DD0",
6488 disabledButton
: "#A02626",
6489 enabledButton
: "#47A547",
6491 inputColor
: "#3f3f3f",
6492 contentBackground
: "#3C75F5"
6497 backgroundColor
: "url(https://i.ibb.co/8bkDpCn/GIFMaker-me.gif)",
6498 infoColor
: "#282828",
6499 cheatList
: "#282828",
6500 defaultButton
: "white",
6501 disabledButton
: "#9D0000",
6502 enabledButton
: "#013220",
6505 contentBackground
: "linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3))"
6510 backgroundColor
: "linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)",
6511 cheatList
: "#1e2124",
6512 infoColor
: "#1e2124",
6513 defaultButton
: "#36393e",
6514 inputColor
: "#1e2124",
6515 enabledButton
: "#9c9a9a",
6517 disabledButton
: "#171717",
6518 contentBackground
: "#292929"
6521 name
: "Blue - Purple Background",
6523 backgroundColor
: "linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)"
6526 name
: "Saint Patricks Background",
6528 backgroundColor
: "rgb(9, 148, 65)"
6531 name
: "Halloween Background",
6533 backgroundColor
: "rgb(41, 41, 41)"
6536 name
: "Fall Background",
6538 backgroundColor
: "rgb(224, 159, 62)"
6541 name
: "Winter Background",
6543 backgroundColor
: "linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))"
6546 name
: "Crypto Hack",
6548 backgroundColor
: "radial-gradient(#11581e,#041607)",
6549 infoColor
: "#1a1a1a",
6550 cheatList
: "#1a1a1a",
6551 defaultButton
: "rgb(88 175 88)",
6552 disabledButton
: "#A02626",
6553 enabledButton
: "#0b601b",
6555 inputColor
: "rgb(0 0 0 / 25%)",
6556 contentBackground
: "#11581e"
6559 name
: "Fishing Frenzy",
6561 backgroundColor
: "linear-gradient(180deg,#9be2fe 0,#67d1fb)",
6562 infoColor
: "#c8591e",
6563 cheatList
: "#c8591e",
6564 defaultButton
: "#ff751a",
6565 disabledButton
: "#bf0e0e",
6566 enabledButton
: "#2fb62f",
6568 inputColor
: "rgb(0 0 0 / 25%)",
6569 contentBackground
: "radial-gradient(#02b0ea 40%, #1d86ea)"
6572 name
: "Deceptive Dinos",
6574 backgroundColor
: 'radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url("https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png"), #ead49a',
6575 infoColor
: "#af8942",
6576 cheatList
: "#af8942",
6577 defaultButton
: "#af8942",
6578 disabledButton
: "#A02626",
6579 enabledButton
: "#47A547",
6581 inputColor
: "rgb(0 0 0 / 10%)",
6582 contentBackground
: "radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px"
6587 backgroundColor
: "repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)",
6588 defaultButton
: "#36c",
6589 inputColor
: "rgb(0 0 0 / 25%)",
6592 contentBackground
: "#888",
6594 disabledButton
: "#A02626",
6595 enabledButton
: "#47A547"
6600 defaultButton
: "#1563bf",
6601 infoColor
: "#a5aabe",
6602 cheatList
: "#a5aabe",
6603 contentBackground
: "#2d313d",
6604 backgroundColor
: "#3a3a3a",
6605 enabledButton
: "rgb(75, 194, 46)",
6606 disabledButton
: "#9a49aa",
6607 inputColor
: "rgb(0 0 0 / 25%)",
6613 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",
6614 defaultButton
: "#0bc2cf",
6615 inputColor
: "rgb(0 0 0 / 25%)",
6616 infoColor
: "#ac7339",
6617 cheatList
: "#ac7339",
6618 contentBackground
: "rgb(64, 64, 64)",
6620 disabledButton
: "#A02626",
6621 enabledButton
: "#47A547"
6624 name
: "Tower of Doom",
6626 backgroundColor
: "rgb(41 41 41)",
6627 disabledButton
: "rgb(151, 15, 5)",
6628 defaultButton
: "#333",
6629 inputColor
: "rgb(0 0 0 / 25%)",
6630 contentBackground
: "#404040",
6631 enabledButton
: "#4bc22e",
6633 infoColor
: "#9a49aa",
6634 cheatList
: "#9a49aa"
6637 name
: "Monster Brawl",
6639 defaultButton
: "rgb(45, 51, 67)",
6640 backgroundColor
: "rgb(78, 95, 124)",
6641 inputColor
: "rgb(0 0 0 / 25%)",
6642 contentBackground
: "linear-gradient(0deg,#374154,#4f5b74)",
6643 infoColor
: "#374154",
6644 cheatList
: "#374154",
6646 enabledButton
: "#47A547",
6647 disabledButton
: "#A02626"
6650 name
: "Tower Defense 2",
6652 backgroundColor
: "url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover",
6653 cheatList
: "#a33c22",
6654 infoColor
: "#a33c22",
6655 defaultButton
: "#40b1d8",
6656 inputColor
: "#3e8cbe",
6657 contentBackground
: "#293c82",
6658 enabledButton
: "#47A547",
6659 disabledButton
: "#A02626",
6667 for (let t
in c
.setItem("theme", {
6671 p
.sheet
.cssRules
[0].style
.setProperty("--" + t
, e
[t
])
6675 description
: "Forces the GUI to scale from 25%-100%",
6678 name
: "Percent scale",
6681 value
: 100 * (c
.data
.scale
|| 1)
6685 e
= Math
.min(Math
.max(e
, 25), 100),
6686 c
.setItem("scale", e
/ 100),
6687 _
.style
.transform
= `scale(${e / 100})`
6690 name
: "Hide Keybind",
6691 description
: "Change the hide keybind (Click button after input to change)",
6695 function : e
=> B(({
6700 }) => e("" + [a
&& "Ctrl", t
&& "Shift", o
&& "Alt", r
&& r
.toUpperCase()].filter(Boolean
).join(" + ")))
6704 c
.setItem("hide", e
),
6705 m
.update(c
.data
.hide
|| {
6708 }, c
.data
.close
|| {
6714 name
: "Close Keybind",
6715 description
: "Change the quick close keybind (Click button after input to change)",
6719 function : e
=> B(({
6724 }) => e("" + [a
&& "Ctrl", t
&& "Shift", o
&& "Alt", r
&& r
.toUpperCase()].filter(Boolean
).join(" + ")))
6728 c
.setItem("close", e
),
6729 m
.update(c
.data
.hide
|| {
6732 }, c
.data
.close
|| {
6738 name
: "Background Color",
6739 description
: "Changes the background color of the GUI",
6746 p
.sheet
.cssRules
[0].style
.setProperty("--backgroundColor", e
),
6747 c
.setItem("theme.backgroundColor", e
)
6750 name
: "Category List Color",
6751 description
: "Changes the categories list background color",
6758 p
.sheet
.cssRules
[0].style
.setProperty("--cheatList", e
),
6759 c
.setItem("theme.cheatList", e
)
6763 description
: "Changes the color of the information at the top of the GUI",
6770 p
.sheet
.cssRules
[0].style
.setProperty("--infoColor", e
),
6771 c
.setItem("theme.infoColor", e
)
6774 name
: "Button Color",
6775 description
: "Changes the color of the cheats",
6782 p
.sheet
.cssRules
[0].style
.setProperty("--defaultButton", e
),
6783 c
.setItem("theme.defaultButton", e
)
6786 name
: "Enabled Toggle Color",
6787 description
: "Changes the color of enabled toggle cheats",
6794 c
.setItem("theme.enabledButton", e
)
6797 name
: "Disabled Toggle Color",
6798 description
: "Changes the color of disabled toggle cheats",
6805 p
.sheet
.cssRules
[0].style
.setProperty("--disabledButton", e
),
6806 c
.setItem("theme.disabledButton", e
)
6810 description
: "Changes the text color",
6817 p
.sheet
.cssRules
[0].style
.setProperty("--textColor", e
),
6818 c
.setItem("theme.textColor", e
)
6821 name
: "Input Color",
6822 description
: "Changes the color of inputs, like the set gold number input",
6829 p
.sheet
.cssRules
[0].style
.setProperty("--inputColor", e
),
6830 c
.setItem("theme.inputColor", e
)
6833 name
: "Content Color",
6834 description
: "Changes the background color of the cheats",
6841 p
.sheet
.cssRules
[0].style
.setProperty("--contentBackground", e
),
6842 c
.setItem("theme.contentBackground", e
)
6848 className
: "alertContainer",
6850 margin
: "15px 15px 5px 15px",
6851 backgroundColor
: "rgb(0 0 0 / 50%)",
6854 borderRadius
: "7px",
6856 alignItems
: "center",
6857 justifyContent
: "center"
6860 className
: "alertList",
6862 margin
: "10px 10px 0 10px",
6864 listStyleType
: "none",
6866 flexDirection
: "column-reverse",
6868 overflowY
: "scroll",
6869 wordWrap
: "break-word"
6877 color
: "var(--textColor)"
6879 innerText
: "[LOG] GUI opened"
6882 return this.element
.firstChild
.prepend(l("li", {
6888 color
: t
|| "var(--textColor)"
6890 innerHTML
: "[LOG] " + e
6894 return this.element
.firstChild
.prepend(l("li", {
6898 }, l("strong", {}, e
), " ", a
))
6902 updateLeaderboard(e
) {
6908 of(this.leaderboardEl
|| this.addLeaderboard(), this.leaderboard
.innerHTML
= "", e
)) {
6909 this.leaderboard
.append(l("li", {
6912 paddingInline
: "15px 15px",
6913 paddingBlock
: "1.25px",
6914 position
: "relative",
6915 borderBottom
: "2px solid orange",
6916 color
: (a
=== Object
.values(document
.querySelector("#app>div>div"))?.[1]?.children
?.[0]?._owner
?.stateNode
?.props
?.client
?.name
) ? "#00FF00" : "#FFFFFF"
6919 innerText
: this.parseNumber(parseInt(o
)),
6926 parseNumber(e
= 0) {
6929 return t
.toString();
6930 var a
= ["", "K", "M", "B", "T"],
6931 o
= Math
.floor((e
.toString().length
- 1) / 3);
6934 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
--);
6935 t
= (r
= r
% 1 != 0 ? r
.toFixed(1) : r
) + a
[o
]
6939 for (; 100 <= n
; s
++)
6940 n
= Math
.floor(n
/ 10);
6942 var c
= ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"];
6943 for (let d
of(s
+ 1).toString().split(""))
6945 t
= n
/ 10 + " \xd7 10" + l
6950 this.leaderboardEl
= l("div", {
6951 className
: "alertContainer",
6953 margin
: "15px 15px 5px 15px",
6954 backgroundColor
: "rgb(0 0 0 / 50%)",
6957 borderRadius
: "7px",
6959 alignItems
: "center",
6960 justifyContent
: "center"
6962 }, this.leaderboard
= l("nl", {
6963 className
: "alertList",
6967 listStyleType
: "decimal",
6970 overflowY
: "scroll",
6971 wordWrap
: "break-word"
6974 insertElemBefore("Leaderboard", "https://i.ibb.co/hZQjjVP/trophy-icon.webp", [{
6975 element
: this.leaderboardEl
6977 ], !0, h
.children
[3]);
6978 this.addLog("Leaderboard Loaded!");
6982 var e
= Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
.stateNode
;
6983 if (!e
?.props
?.liveGameController
?._liveGameCode
)
6985 this.connection
= await e
.props
.liveGameController
.getDatabaseRef("");
6987 a
= this.getGamemode(),
7002 this.connection
.on("value", e
=> {
7003 var r
= e
.val()?.c
|| {};
7004 if (r
&& this.diffObjects(this.data
, r
)) {
7013 h
= this.diffObjects(this.data
, r
);
7016 switch (this.getGamemode()) {
7018 m
= Object
.entries(r
).map(([e
, {
7029 m
= Object
.entries(r
).map(([e
, {
7040 m
= Object
.entries(r
).map(([e
, {
7051 m
= Object
.entries(r
).map(([e
, {
7062 m
= Object
.entries(r
).map(([e
, {
7073 m
= Object
.entries(r
).map(([e
, {
7085 m
= Object
.entries(r
).map(([e
, {
7098 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
));
7099 m
= Object
.entries(r
).map(([e
, {
7111 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
));
7112 m
= Object
.entries(r
).map(([e
, {
7124 "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`);
7125 m
= Object
.entries(r
).map(([e
, {
7137 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
));
7138 m
= Object
.entries(r
).map(([e
, {
7150 h
[v
].up
&& ([p
, u
] = h
[v
].up
.split(":"), u
) && this.addAlert(v
, t
[r
[v
].b
]?.url
, `upgraded ${p} to level ` + u
);
7151 m
= Object
.entries(r
).map(([e
, {
7166 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!")
7168 m
= Object
.entries(r
).map(([e
, {
7178 this.updateLeaderboard(m
.sort((e
, t
) => t
.value
- e
.value
));
7189 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
]));
7191 i
in e
|| (o
[i
] = t
[i
]);
7192 return 0 == Object
.keys(o
).length
? null : o
7195 if (Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
.stateNode
.props
?.client
?.type
) {
7196 return Object
.values(document
.querySelector("#app>div>div"))[1].children
[0]._owner
.stateNode
.props
.client
.type
.toLowerCase();
7198 switch (window
.location
.pathname
) {
7199 case "/play/racing":
7201 case "/play/extras":
7205 case "/play/pirate":
7207 case "/play/factory":
7209 case "/play/classic/get-ready":
7210 case "/play/classic/question":
7211 case "/play/classic/answer/sent":
7212 case "/play/classic/answer/result":
7213 case "/play/classic/standings":
7215 case "/play/battle-royale/match/preview":
7216 case "/play/battle-royale/question":
7217 case "/play/battle-royale/answer/sent":
7218 case "/play/battle-royale/answer/result":
7219 case "/play/battle-royale/match/result":
7229 case "/play/fishing":
7236 case "/tower/battle":
7240 case "/tower/victory":
7247 case "/play/defense2":
7264 e
.onpointerdown = function (e
= window
.event
) {
7267 document
.onpointerup = function () {
7268 document
.onpointerup
= null,
7269 document
.onpointermove
= null
7271 document
.onpointermove = function (e
= window
.event
) {
7276 t
.style
.top
= t
.offsetTop
- o
+ "px",
7277 t
.style
.left
= t
.offsetLeft
- a
+ "px"
7281 w("Alerts", "https://i.ibb.co/hBNyCXG/559343-1.png", C
.alerts
, !0),
7282 w("Global", "https://i.ibb.co/gd4Qs8L/11507ef5615c554fe88fc22c86768501-simple-earth-icon-1.webp", C
.global
)(),
7283 w("Host", "https://i.ibb.co/QpDgysb/computer-1865273-1.png", C
.host
, !0),
7284 w('<span style="font-size: 18px">Pirate\'s Voyage</span>', "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPjxnIGlkPSJCb2F0Ij48cGF0aCBkPSJNMTcwLjQsNTYuMDU0Yy02OC43ODgsMTAuMTc0IC0xMTUuOTcxLDU2LjkzOCAtMTQ1LjQxMSwxMzMuNzVsMTUuNDY5LDcuNzM0YzMwLjk2MiwtMjguMTc1IDc0LjcwNSwtMzcuNzg3IDEzMi4zMjIsLTI3LjI1bDAsLTE3LjYxMWMtMjUuNjI5LC0yNy45NTIgLTI2Ljk2NiwtNTYuNzcyIDAuNzE0LC04Ni42MjhsLTMuMDk0LC05Ljk5NVoiIHN0eWxlPSJmaWxsOiNmNmUwYmQ7Ii8+PHBhdGggZD0iTTE5OS42NzMsNjAuODEzYzMyLjc4NCw0Mi45ODIgNjUuODIyLDkwLjg4NyA5Ny4zMzcsMTM5LjU4MWwtNi42NjMsMGMtMTIuMDg1LC0zMS4xMTEgLTU3Ljg4MiwtMzkuNjk0IC05MS42MjYsLTI3LjI1YzIyLjUxNCwtMzQuNTc5IDE3Ljc5NiwtNzIuNjczIDAuOTUyLC0xMTIuMzMxWiIgc3R5bGU9ImZpbGw6I2Y2ZTBiZDsiLz48cGF0aCBkPSJNNjkuNDQ4LDE5Ny41MzhjMCwwIC01OS43MDcsLTE1LjI0MyAtNjguMzk4LC0xNy40NjJjLTAuMDc2LC0wLjAxOSAtMC4xNTQsMC4wMiAtMC4xODQsMC4wOTJjLTAuMDMsMC4wNzIgLTAuMDAyLDAuMTU1IDAuMDY1LDAuMTk1YzkuNjgyLDUuNzc1IDkxLjY0Nyw1NC42NTggOTEuNjQ3LDU0LjY1OGwtMjMuMTMsLTM3LjQ4M1oiIHN0eWxlPSJmaWxsOiM4ZDZlNDE7Ii8+PHBhdGggZD0iTTE2NC40NSw0Ny45MDNjMCwtNS4zNTMgNC4zNDYsLTkuNjk4IDkuNjk4LC05LjY5OGwxOS4zOTcsLTBjNS4zNTIsLTAgOS42OTgsNC4zNDUgOS42OTgsOS42OThsLTAsMTU2Ljk1M2MtMCw1LjM1MyAtNC4zNDYsOS42OTggLTkuNjk4LDkuNjk4bC0xOS4zOTcsMGMtNS4zNTIsMCAtOS42OTgsLTQuMzQ1IC05LjY5OCwtOS42OThsMCwtMTU2Ljk1M1oiIHN0eWxlPSJmaWxsOiM3ZjY4NDU7Ii8+PHBhdGggZD0iTTI2My45OTMsMjU2LjEwM2MyMi4xNzEsLTE0LjcxIDM2LjAwNywtMzUuNTE1IDM2LjAwNywtNTguNTY1bC0yMzAuNTUyLDBjMCwyMy43MTMgMTQuNjQzLDQ1LjA1IDM3Ljk0LDU5LjgxOWM5Ljg3NSwtMy43MjkgMjAuMDQxLC0xMS4zMzQgMzAuNDYzLC0yMi4zMzZjMzIuODExLDM1LjQ1NSA2NC4wNjksMzUuOTQzIDkzLjcwOCwwYzYuODM4LDkuNjc3IDE3LjczNiwxNi42NDYgMzIuNDM0LDIxLjA4MloiIHN0eWxlPSJmaWxsOiNiNjkyNWY7Ii8+PC9nPjwvc3ZnPg==", C
.voyage
),
7285 w("Gold quest", "https://media.blooket.com/image/upload/v1661496292/Media/uiTest/Gold.svg", C
.gold
),
7286 w("Cafe", "https://i.ibb.co/t8pqdYL/hot-beverage-1.png", C
.cafe
),
7287 w("Crypto Hack", "https://media.blooket.com/image/upload/v1661496293/Media/uiTest/CryptoIcon.svg", C
.crypto
),
7288 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
),
7289 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
),
7290 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
),
7291 w("Factory", "https://i.ibb.co/VMrTd39/images-removebg-preview-1.png", C
.factory
),
7292 w('<span style="font-size: 19px">Fishing Frenzy</span>', "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Fish_Weight.svg", C
.fishing
),
7293 w("Flappy Blook", "https://media.blooket.com/image/upload/v1645222006/Blooks/yellowBird.svg", C
.flappy
),
7294 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
),
7295 w('<span style="font-size: 18px">Crazy Kingdom</span>', "https://i.ibb.co/10mZ6dx/3763864-1.png", C
.kingdom
),
7296 w("Racing", "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Racing_Progress.svg", C
.racing
),
7297 w("Battle Royale", "https://media.blooket.com/image/upload/v1655936179/Media/br/VS_Lightning_Bolt_Bottom.svg", C
.royale
),
7298 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
),
7299 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
),
7300 w('<span style="font-size: 15px">Santa\'s Workshop</span>', "https://i.ibb.co/Y2SFc9Y/Santa-Workshop-Finished-icon-1.webp", C
.workshop
),
7301 w("Extras", "https://i.ibb.co/mb0R9HX/Star-icon-stylized-svg-1-removebg-preview.png", C
.extras
, !0),
7302 w("Settings", "https://i.ibb.co/jrWKgyn/Windows-Settings-icon-1.png", C
.settings
, !0),
7303 w("Credits", "https://i.ibb.co/prKYGdN/credits.webp", C
.credits
, !0),
7306 window
.addEventListener("keydown", A
);
7307 let x
= setInterval(() => {
7308 C
.alerts
[0].connection
? clearInterval(x
) : C
.alerts
[0].connect()
7312 for (let e
in _
.remove(), clearInterval(x
), C
)
7314 t
.enabled
&& t
.run();
7315 Object
.keys(C
).forEach(e
=> C
[e
].forEach(e
=> e
.enabled
&& (e
.run(), k(...currentMode
)))),
7316 window
.removeEventListener("keydown", A
)
7320 var t
= c
.data
.hide
|| {
7324 a
= c
.data
.close
|| {
7328 (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())
7331 function B(e
, t
= window
) {
7332 return new Promise(a
=> {
7344 ["shift", "control", "alt", "meta"].includes(t
.key
.toLowerCase()) || (s
= t
.key
.toLowerCase()),
7354 0 < Object
.keys(o
).length
|| (t
.removeEventListener("keydown", l
), t
.removeEventListener("keyup", c
), a({
7361 t
.addEventListener("keydown", l
),
7362 t
.addEventListener("keyup", c
)
7365 _
.addEventListener("mousemove", e
=> {
7368 "cheatName" != e
.target
.className
&& "scriptButton" != e
.target
.className
? "0" != y
.style
.opacity
&& (y
.animate([{
7375 }), 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([{
7382 }), 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"))
7384 window
.fetch
.call = function () {
7385 if (!arguments
[1].includes("s.blooket.com/rc"))
7386 return wfcall
.apply(this, arguments
);
7387 C
.alerts
?.[0].addLog("Blooket Cheat Report Blocked!")