15
15
* @license StewartPrivateLicense-2.0.0
* Copyright (c) Aerell McKnight 2023
*
* You may not reproduce or distribute any code inside this file without the licenser's
permission.
* You may not copy, modify, steal, skid, or recreate any of the code inside this file.
* You may not under any circumstance republish any code from this file as your own.
*
* ALL TERMS STATED IN THE LINK BELOW APPLY ASWELL
* https://github.com/Minesraft2/Blooket-Cheats/blob/main/LICENSE
*/
/* // https://dashboard.blooket.com/65a43218fd1cabe52bdf1cda34613e9e.png */
const guiWrapper = document.createElement("div");
guiWrapper.append(animations);
guiWrapper.id = "JODGUI";
addStyles(guiWrapper, {
top: `${(Math.max(10, window.innerHeight/* / (.75 / window.devicePixelRatio) */ -
600) / 2)}px`,
left: `${(Math.max(10, window.innerWidth/* / (.75 / window.devicePixelRatio) */ -
1000) / 2)}px`,
position: "fixed", height: "80%", width: "80%", maxHeight: "600px", maxWidth:
"1000px", zIndex: "999", display: "block"
});
/* // guiWrapper.style.zoom = .75 / window.devicePixelRatio; */
/* // window.onresize = () => { */
/* // guiWrapper.style.zoom = .75 / window.devicePixelRatio; */
/* // } */
/* // guiWrapper.style.border = "3px solid #3a3a3a"; */
/* // guiWrapper.style.borderRadius = "20px"; */
addStyles(gui, {
width: "100%",
height: "100%",
position: "relative",
outline: "3px solid #3a3a3a",
borderRadius: "15px",
overflow: "hidden"
});
guiWrapper.appendChild(gui);
background.appendChild(backgroundImage);
gui.appendChild(background);
gui.appendChild(controls);
gui.appendChild(credits);
gui.appendChild(controlButtons);
discord.target = "_blank";
discord.relList.add("noopener");
discord.relList.add("noreferrer");
discord.href = "https://discord.gg/QznzysxvX4";
discord.innerHTML = (`
<div style="background: rgba(0,0,0,.25); border-radius: 5px; display: block;
width: 100%; height: 100%; left: 0; top: 0; position: absolute; transform: translateY(2px);
width: 100%; transition: transform .6s cubic-bezier(.3,.7,.4,1)"></div>
<div style="background-color: rgb(11, 194, 207); filter: brightness(.7); position:
absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 5px;"></div>
<div style="font-weight: 400; background-color: rgb(11, 194, 207); color: white;
display: flex; flex-direction: row; align-items: center; justify-content: center; text-align: center;
padding: 5px; border-radius: 5px; transform: translateY(-4px); transition: transform .6s
cubic-bezier(.3,.7,.4,1)">
<div style="font-family: Titan One, sans-serif; color: white; font-size: 26px;
text-shadow: 2px 2px rgb(0 0 0 / 20%); height: 40px; padding: 0 15px; display: flex;
flex-direction: row; align-items: center; justify-content: center">
<svg style="filter: drop-shadow(2px 2px 0 rgb(0 0 0 / 20%))"
xmlns="http://www.w3.org/2000/svg" width="35" height="35" fill="currentColor" viewBox="0
-1 21 16">
<path d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0
0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0
0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0
0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0
0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0
0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0
1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1
.051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1
.053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0
1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0
0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0
.021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198
7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438
1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612
0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438
1.612Z"/>
</svg>
Discord
</div>
</div>
`);
cheatContainer.appendChild(discord);
gui.appendChild(cheatContainer);
[...document.querySelectorAll(`[class*="answerContainer"]`)].forEach((answer, i) => {
if ((state.question ||
props.client.question).correctAnswers.includes((state.question ||
props.client.question).answers[i])) answer.style.backgroundColor = "rgb(0, 207, 119)";
else answer.style.backgroundColor = "rgb(189, 15, 38)";
});
}, 50);
} else {
this.enabled = false;
clearInterval(this.data);
this.data = null;
}
}
},
{
name: "Auto Sell Dupes On Open",
description: "Sells the blook you unlock when you open a pack if you already
have one (Doesn't sell Legendaries or rarer)",
type: "toggle",
enabled: false,
data: null,
run: function () {
if (!this.enabled) {
this.enabled = true;
this.data = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype._original_open ||=
XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function () {
this.addEventListener("load", async function () {
try {
if (this.responseURL !==
"https://dashboard.blooket.com/api/users/unlockblook") return;
var axios = Object.values(webpackJsonp.push([[], { ['']: (_, a, b)
=> { a.cache = b.c }, }, [['']],]).cache).find((x) => x.exports?.a?.get).exports.a;
var { rarity } = webpackJsonp.push([[], { ['rarity']: (_, a, b) => {
a.rarity = (blook) => b('MDrD').a[blook].rarity } }, [['rarity']]]);
const { unlockedBlook: blook } = JSON.parse(this.response);
const { data: { name, unlocks } } = await
axios.get("https://dashboard.blooket.com/api/users");
if (!unlocks[blook] || ["Legendary", "Chroma",
"Mystical"].includes(rarity(blook))) return;
await
axios.put("https://dashboard.blooket.com/api/users/sellblook", { name, blook, numSold: 1 });
console.log(`Sold duplicate ${blook}`);
} catch { }
});
XMLHttpRequest.prototype._original_open.apply(this, arguments);
}
} else {
this.enabled = false;
XMLHttpRequest.prototype.open = this.data;
}
}
},
{
name: "Auto Answer",
description: "Click the correct answer for you",
run: function () {
const { stateNode: { state: { question, stage, feedback }, props: { client: {
question: pquestion } } } } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
try {
if (stage !== "feedback" && !feedback)
[...document.querySelectorAll(`[class*="answerContainer"]`)][(question ||
pquestion).answers.map((x, i) => (question || pquestion).correctAnswers.includes(x) ? i :
null).filter(x => x != null)[0]]?.click?.();
else document.querySelector('[class*="feedback"]')?.firstChild?.click?.();
} catch { }
}
},
{
name: "Highlight Answers",
description: "Colors answers to be red or green highlighting the correct ones",
run: function () {
const { stateNode: { state, props } } =
Object.values(document.querySelector('#app > div > div'))[1].children[0]._owner;
[...document.querySelectorAll(`[class*="answerContainer"]`)].forEach((answer, i) => {
if ((state.question ||
props.client.question).correctAnswers.includes((state.question ||
props.client.question).answers[i])) answer.style.backgroundColor = "rgb(0, 207, 119)";
else answer.style.backgroundColor = "rgb(189, 15, 38)";
});
}
},
{
name: "Spam Buy Blooks",
description: "Opens a box an amount of times",
inputs: [
{
name: "Box",
type: "options",
options: () => {
return new Promise(r => {
r(Object.keys(Object.values(webpackJsonp.push([[], { ['1234']: (_,
a, b) => { a.webpack = b }, }, [['1234']]]).webpack.c).find(x =>
x?.exports?.a?.Safari)?.exports.a || {}));
});
}
},
{
name: "Amount",
type: "number"
}
],
run: function (box, amountToOpen) {
let i = document.createElement('iframe');
document.body.append(i);
window.alert = i.contentWindow.alert.bind(window);
window.prompt = i.contentWindow.prompt.bind(window);
window.confirm = i.contentWindow.confirm.bind(window);
i.remove();
var webpack = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => {
a.cache = b.c }, }, [['']],]).cache);
var axios = webpack.find((x) => x.exports?.a?.get).exports.a;
box = box.split(' ').map(x => x.charAt(0).toUpperCase() +
x.slice(1).toLowerCase()).join(' ');
axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: {
name, tokens } }) => {
let prices = webpack.find(x => x?.exports?.a?.Safari)?.exports?.a || {
Medieval: 15,
Breakfast: 15,
Wonderland: 15,
Space: 20,
Bot: 20,
Aquatic: 20,
Safari: 20,
Dino: 25,
"Ice Monster": 25
};
let amount = Math.min(Math.floor(tokens / prices[box]), amountToOpen);
if (amount == 0) {
if (amountToOpen > 0) alert("You do not have enough tokens!");
return;
};
❄️
[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] }].map(x => ({
name: x.name, value: JSON.stringify(x) }))
}],
run: function (blook) {
let i = document.createElement('iframe');
document.body.append(i);
window.alert = i.contentWindow.alert.bind(window);
i.remove();
const { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
if (stateNode.state.blooks.length >= 10) alert("Choose a blook to replace");
stateNode.chooseBlook(JSON.parse(blook));
}
},
{
name: "Free Upgrades",
description: "Sets upgrade prices to 0 for all current blooks",
run: function () {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.setState(state => ({ ...state, blooks: state.blooks.map(blook =>
({ ...blook, price: [0, 0, 0, 0] })) }));
}
},
{
name: "Max Blooks",
description: "Maxes out all your blooks' levels",
run: function () {
Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner.stateNode.state.blooks.forEach(blook => blook.level = 4);
}
},
{
name: "Remove Glitches",
description: "Removes all enemy glitches",
run: function () {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.setState({
bits: 0,
ads: [],
hazards: [],
color: "",
lol: false,
joke: false,
slow: false,
dance: false,
glitch: "",
glitcherName: "",
glitcherBlook: ""
});
clearTimeout(stateNode.adTimeout);
clearInterval(stateNode.hazardInterval);
clearTimeout(stateNode.nightTimeout);
clearTimeout(stateNode.glitchTimeout);
clearTimeout(stateNode.lolTimeout);
clearTimeout(stateNode.jokeTimeout);
clearTimeout(stateNode.slowTimeout);
clearTimeout(stateNode.danceTimeout);
clearTimeout(stateNode.nameTimeout);
}
},
{
name: "Send Glitch",
description: "Sends a glitch to everyone else playing",
inputs: [{
name: "Glitch",
type: "options",
options: Object.entries({ 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" }).map(([value, name]) => ({ name, value }))
}],
run: function (val) {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.safe = true;
stateNode.props.liveGameController.setVal({ path:
`c/${stateNode.props.client.name}/tat`, val });
}
},
{
name: "Set All MegaBot",
description: "Sets all your blooks to maxed out Mega Bots",
run: function () {
Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner.stateNode.setState({
blooks: new Array(10).fill({
name: "Mega Bot",
🤖
color: "#d71f27",
class: " ",
rarity: "Legendary",
cash: [8e4, 43e4, 42e5, 62e6, 1e9],
time: [5, 5, 3, 3, 3],
price: [7e6, 12e7, 19e8, 35e9],
active: false,
level: 4,
bonus: 5.5
})
});
}
},
{
name: "Set Cash",
description: "Sets amount of cash you have",
inputs: [{
name: "Cash",
type: "number"
}],
run: function (cash) {
Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner.stateNode.setState({ cash });
}
}
],
fishing: [
{
name: "Frenzy",
description: "Sets everyone to frenzy mode",
run: function () {
let { stateNode } = Object.values(document.querySelector('#app > div >
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
}
});
}
},
{
name: "Remove Distractions",
description: "Removes distractions",
type: "toggle",
enabled: false,
data: null,
run: function () {
if (!this.enabled) {
this.enabled = true;
this.data = setInterval(() => {
Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner.stateNode.setState({ party: "" });
}, 50);
} else {
this.enabled = false;
clearInterval(this.data);
this.data = null;
}
}
},
{
name: "Send Distraction",
description: "Sends a distraction to everyone",
inputs: [{
name: "Distraction",
type: "options",
options: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal",
"Megalodon", "Blobfish", "Baby Shark"]
}],
run: function (f) {
let i = document.createElement('iframe');
document.body.append(i);
window.alert = i.contentWindow.alert.bind(window);
i.remove();
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.safe = true;
stateNode.props.liveGameController.setVal({
path: `c/${stateNode.props.client.name}`,
val: {
b: stateNode.props.client.blook,
w: stateNode.state.weight, f, s: true
}
});
alert(`Sent a ${f} distraction`);
}
},
{
name: "Set Lure",
description: "Sets fishing lure (range 1 - 5)",
inputs: [{
name: "Lure (1 - 5)",
type: "number",
min: 1,
max: 5
}],
run: function (lure) {
Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner.stateNode.setState({ lure: Math.max(Math.min(lure - 1, 4), 0) });
}
},
{
name: "Set Weight",
description: "Sets weight",
inputs: [{
name: "Weight",
type: "number"
}],
run: function (weight) {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.setState({ weight, weight2: weight });
stateNode.props.liveGameController.setVal({
path: `c/${stateNode.props.client.name}`,
val: {
b: stateNode.props.client.blook,
w: weight,
f: ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal",
"Megalodon", "Blobfish", "Baby Shark"][Math.floor(Math.random() * 9)]
}
});
}
}
],
flappy: [
{
name: "Toggle Ghost",
description: "Lets you go through the pipes",
type: "toggle",
enabled: false,
run: function () {
this.enabled = !this.enabled;
Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.
state.game.scene.physics.world.bodies.entries.forEach(x =>
x.gameObject.frame.texture.key.startsWith("blook") && (x.checkCollision.none =
this.enabled, x.gameObject.setAlpha(this.enabled ? 0.5 : 1)));
}
},
{
name: "Set Score",
description: "Sets flappy blook score",
inputs: [{
name: "Score",
type: "number"
}],
run: function (score) {
Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.
setState({ score });
}
}
],
gold: [
{
name: "Always Triple",
description: "Always get triple gold",
type: "toggle",
enabled: false,
data: null,
run: function () {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode._choosePrize ||= stateNode.choosePrize;
if (!this.enabled) {
this.enabled = true;
this.data = setInterval(() => {
stateNode.choosePrize = function (i) {
stateNode.state.choices[i] = { type: "multiply", val: 3, text: "Triple
Gold!", blook: "Unicorn" };
stateNode._choosePrize(i);
}
}, 50);
} else {
this.enabled = false;
clearInterval(this.data);
this.data = null;
stateNode.choosePrize = stateNode._choosePrize ||
stateNode.choosePrize;
}
}
},
{
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 = true;
this.data = setInterval(async () => {
try {
let { stateNode } = Object.values(document.querySelector('#app >
div > div'))[1].children[0]._owner;
if (stateNode.state.stage === "prize") {
const players = Object.entries(await new Promise(r =>
stateNode.props.liveGameController.getDatabaseVal("c", c => c && r(c))) || []).filter(x => x[0]
!= stateNode.props.client.name).sort((a, b) => b[1].g - a[1].g)[0]?.[1]?.g || 0;
let max = 0; index = -1;
for (let i = 0; i < stateNode.state.choices.length; i++) {
const { type, val } = stateNode.state.choices[i];
let value = stateNode.state.gold;
switch (type) {
case "gold": value = stateNode.state.gold + val ||
stateNode.state.gold; break;
case "multiply":
case "divide": value = Math.round(stateNode.state.gold *
val) || stateNode.state.gold; break;
case "swap": value = players || stateNode.state.gold;
case "take": value = stateNode.state.gold + players * val ||
stateNode.state.gold;
}
if ((value || 0) <= max) continue;
max = value, index = i + 1;
}
document.querySelector(`div[class^='styles__choice${index}']`).click();
}
} catch { }
}, 50);
} else {
this.enabled = false;
clearInterval(this.data);
this.data = null;
}
}
},
{
name: "Chest ESP",
description: "Shows what each chest will give you",
type: "toggle",
enabled: false,
data: null,
run: function () {
if (!this.enabled) {
this.enabled = true;
this.data = setInterval(() => {
Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner.stateNode.state.choices.forEach(({ text }, index) => {
let chest =
document.querySelector(`div[class^='styles__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);
});
}, 50);
} else {
this.enabled = false;
clearInterval(this.data);
this.data = null;
}
}
},
{
name: "Reset Players Gold",
description: "Sets a player's gold to 0",
inputs: [{
name: "Player",
type: "options",
options: () => {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
return new Promise(res =>
stateNode.props.liveGameController._liveApp ?
stateNode.props.liveGameController.getDatabaseVal("c", (players) => players &&
res(Object.keys(players))) : res([]));
}
}],
run: function (target) {
let { stateNode: { props, state } } =
Object.values(document.querySelector('#app > div > div'))[1].children[0]._owner;
props.liveGameController.setVal({
path: "c/".concat(props.client.name),
val: {
b: props.client.blook,
g: state.gold,
tat: `${target}:swap:0`
}
});
}
},
{
name: "Set Gold",
description: "Sets amount of gold",
inputs: [{
name: "Gold",
type: "number"
}],
run: function (gold) {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.setState({ gold, gold2: gold });
stateNode.props.liveGameController.setVal({
path: "c/".concat(stateNode.props.client.name),
val: {
b: stateNode.props.client.blook,
g: gold
}
});
}
},
{
name: "Swap Gold",
description: "Swaps gold with someone",
inputs: [{
name: "Player",
type: "options",
options: () => {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
return new Promise(res =>
stateNode.props.liveGameController._liveApp ?
stateNode.props.liveGameController.getDatabaseVal("c", (players) => players &&
res(Object.keys(players))) : res([]));
}
}],
run: function (target) {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.props.liveGameController.getDatabaseVal("c", (players) => {
if (!players?.[target]) return;
let { g } = players[target];
stateNode.props.liveGameController.setVal({
path: "c/".concat(stateNode.props.client.name),
val: {
b: stateNode.props.client.blook,
g,
tat: `${target}:swap:${stateNode.state.gold}`
}
});
stateNode.setState({ gold: g, gold2: g });
});
}
},
{
name: "Reset All Players' Gold (Testing)",
description: "Set's everyone else's gold to 0",
run: function () {
let i = document.createElement('iframe');
document.body.append(i);
window.alert = i.contentWindow.alert.bind(window);
i.remove();
let { stateNode: { props, state } } =
Object.values(document.querySelector('#app > div > div'))[1].children[0]._owner;
let count = 0;
props.liveGameController.getDatabaseVal("c", async (players) => {
if (players) for (const player of Object.keys(players)) {
await props.liveGameController.setVal({
path: "c/".concat(props.client.name),
val: {
b: props.client.blook,
g: state.gold,
tat: `${player}:swap:0`
}
});
count++;
};
alert(`Reset ${count} players' gold!`);
});
}
}
],
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 = true;
let stats = ['materials', 'people', 'happiness', 'gold'];
let elements =
Object.fromEntries([...document.querySelectorAll('[class^=styles__statContainer]')].map((con
tainer, i) => [stats[i], container]));
this.data = setInterval(() => {
let { guest: data, phase } =
Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner.stateNode.state;
if (phase == "choice") {
[...document.querySelectorAll(`[class*="answerContainer"]`)][question.answers.map((x, i) =>
question.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.();
} catch { }
});
}
}],
rush: [
{
name: "Set Blooks",
description: "Sets amount of blooks you or your team has",
inputs: [{
name: "Blooks",
type: "number"
}],
run: function (numBlooks) {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.setState({ numBlooks });
stateNode.isTeam ? stateNode.props.liveGameController.setVal({
path: `a/${stateNode.props.client.name}/bs`,
val: numBlooks
}) : stateNode.props.liveGameController.setVal({
path: `c/${stateNode.props.client.name}/bs`,
val: numDefense
});
}
},
{
name: "Set Defense",
description: "Sets amount of defense you or your team has (Max 4)",
inputs: [{
name: "Defense (max 4)",
type: "number",
max: 4
}],
run: function (defense) {
let numDefense = Math.min(defense, 4);
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.setState({ numDefense });
stateNode.isTeam ? stateNode.props.liveGameController.setVal({
path: `a/${stateNode.props.client.name}/d`,
val: numDefense
}) : stateNode.props.liveGameController.setVal({
path: `c/${stateNode.props.client.name}/d`,
val: numDefense
});
}
}
],
workshop: [
{
name: "Remove Distractions",
description: "Removes all enemy distractions",
run: function () {
Object.values(document.querySelector('#app > 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",
inputs: [{
name: "Distraction",
type: "options",
options: Object.entries({ 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" }).map(([value, name]) => ({ name, value }))
}],
run: function (val) {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.safe = true;
stateNode.props.liveGameController.setVal({ path:
`c/${stateNode.props.client.name}/tat`, val });
}
},
{
name: "Set Toys",
description: "Sets amount of toys",
inputs: [{
name: "Toys",
type: "number"
}],
run: function (toys) {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.setState({ toys });
stateNode.props.liveGameController.setVal({
path: "c/".concat(stateNode.props.client.name),
val: {
b: stateNode.props.client.blook,
t: toys
}
});
}
},
{
name: "Set Toys Per Question",
description: "Sets amount of toys per question",
inputs: [{
name: "Toys Per Question",
type: "number"
}],
run: function (toysPerQ) {
Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner.stateNode.setState({ toysPerQ });
}
},
{
name: "Swap Toys",
description: "Swaps toys with someone",
inputs: [{
name: "Player",
type: "options",
options: () => {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
return new Promise(res =>
stateNode.props.liveGameController._liveApp ?
stateNode.props.liveGameController.getDatabaseVal("c", (players) => players &&
res(Object.keys(players))) : res([]));
}
}],
run: function (target) {
let { stateNode } = Object.values(document.querySelector('#app > div >
div'))[1].children[0]._owner;
stateNode.props.liveGameController.getDatabaseVal("c", (players) => {
if (players && Object.keys(players).map(x =>
x.toLowerCase()).includes(target.toLowerCase())) {
let [player, { t: toys }] = Object.entries(players).find(([name]) =>
name.toLowerCase() == target.toLowerCase());
stateNode.props.liveGameController.setVal({
path: "c/".concat(stateNode.props.client.name),
val: {
b: stateNode.props.client.blook,
t: toys,
tat: `${player}:swap:${stateNode.state.toys}`
}
});
stateNode.setState({ toys });
}
});
}
}
]
};
/* scripts
{
name: "",
description: "",
type: (null | "toggle"),
inputs: type == null && [{
name: "",
type: ("number" | "string" | "options"),
options: type == "options" && [
{
name: "",
value: undefined
}
]
}],
enabled: type == "toggle" && Boolean,
run: function () {}
}
*/
addMode("Global",
"https://media.blooket.com/image/upload/v1661496291/Media/uiTest/Games_Played_2.svg",
Cheats.global)();
addMode("Global 2",
"https://media.blooket.com/image/upload/v1661496291/Media/uiTest/Games_Played_2.svg",
Cheats.global2);
addMode("Gold Quest",
"https://media.blooket.com/image/upload/v1661496292/Media/uiTest/Gold.svg",
Cheats.gold);
addMode("Cafe",
"https://media.blooket.com/image/upload/v1655161189/Media/survivor/Pizza_lvl1.svg",
Cheats.cafe);
addMode("Crypto Hack",
"https://media.blooket.com/image/upload/v1661496293/Media/uiTest/CryptoIcon.svg",
Cheats.crypto);
addMode("<span style=\"font-size: 17px\">Deceptive Dinos</span>", [`<img
style="height: 30px; margin-left: 8px; margin-right: 12px"
src="https://media.blooket.com/image/upload/v1655161325/Media/survivor/Dog.svg">`],
Cheats.dinos);
addMode("<span style=\"font-size: 18px\">Tower Defense</span>", [`<img
style="width: 30px; margin-right: 5px"
src="https://media.blooket.com/image/upload/v1657235025/Media/survivor/Laser_Lvl1.svg">
`], Cheats.defense);
addMode("<span style=\"font-size: 16px\">Tower Defense 2</span>", [`<img
style="width: 30px; margin-right: 5px; rotate: 45deg"
src="https://media.blooket.com/image/upload/v1593095354/Media/defense/missile.svg">`],
Cheats.defense2);
addMode("Factory",
"https://media.blooket.com/image/upload/v1661496293/Media/uiTest/Factory_Upgrades.svg"
, Cheats.factory);
addMode("<span style=\"font-size: 19px\">Fishing Frenzy</span>",
"https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Fish_Weight.svg",
Cheats.fishing);
addMode("Flappy Blook",
"https://media.blooket.com/image/upload/v1645222006/Blooks/yellowBird.svg",
Cheats.flappy);
addMode("<span style=\"font-size: 17px\">Tower of Doom</span>", [`<img
style="height: 30px; margin-left: 5px; margin-right: 10px"
src="https://media.blooket.com/image/upload/v1657235023/Media/survivor/cards-05.svg">`],
Cheats.doom);
addMode("<span style=\"font-size: 18px\">Crazy Kingdom</span>",
"https://media.blooket.com/image/upload/v1655161323/Media/survivor/Jester_lvl1.svg",
Cheats.kingdom);
addMode("Racing",
"https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Racing_Progress.svg",
Cheats.racing);
addMode("Blook Rush",
"data:image/png;base64,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", Cheats.rush);
addMode("<span style=\"font-size: 18px\">Monster Brawl</span>", [`<img
style="height: 28px; margin-left: 5px; margin-right: 8px"
src="https://media.blooket.com/image/upload/v1655233787/Media/survivor/xp/Blue_xp_2.sv
g">`], Cheats.brawl);
addMode("<span style=\"font-size: 15px\">Santa's Workshop</span>", ['<img
style="height: 28px; margin-left: 3px; margin-right: 6px"
src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLT
g4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCB
TVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+C
jxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4
PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS
1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF
0aCBzdHlsZT0iZmlsbDojRkZERTc2OyIgZD0iTTQzMy42NjEsMjM3LjgzN2MtNC40OTctNi4y
MTQtNC44OC0xNC40NC0xLjIyNS0yMS4xODRjMTEuMzY1LTIwLjk2NywxNy43NzMtNDUu
MDE0LDE3LjY1MS03MC41NjYKCUM0NDkuNzAxLDY0Ljg2OSwzODIuNTY0LTEuMDM3LD
MwMS4zNTIsMC4wMTJjLTgwLjE4MywxLjAzNi0xNDQuODY0LDY2LjM1OS0xNDQuODY0L
DE0Ni43ODhjMCwzMi41NTMsMTAuNTk1LDYyLjYzLDI4LjUyNiw4Ni45NzIKCWM3Ljc1Myw
xMC41MjYsNy4yMTMsMjUuMS0xLjU0MywzNC44MDhjLTEzLjI5NywxNC43NDEtNDEuOTM
1LDI0LjMwNi0xMDIuNTk1LTE2LjI3N2MtNi42NTItNC40NS0xNC40NjItNi44NjQtMjIuNDY1LT
YuODY0bDAsMAoJYy0xOS45NDcsMC0zNi44MzMsMTQuNjI4LTM5Ljc3NiwzNC4zNTdDNy
44ODksMzUxLjgxNiw2LjUyLDUxMiwyMDYuOTY2LDUxMmg3MS4wODNDNDY2LjA1LDUx
Miw1MTYuMTI3LDM1MS44MDEsNDMzLjY2MSwyMzcuODM3eiIvPgo8Zz4KCTxwYXRoIH
N0eWxlPSJmaWxsOiNGRkI2NDE7IiBkPSJNMTgzLjQ3LDI2OC41ODJjLTMuOTMsNC4zNT
ctOS4yMDIsOC4yNjEtMTYuMjQ0LDEwLjU1MmMyNC40NjksNS44ODIsMzguODItMS4zMT
ksNDcuMTQ5LTEwLjU1MgoJCWM4Ljc1Ny05LjcwOCw5LjI5Ni0yNC4yODEsMS41NDMtMz
QuODA4Yy0xNy45My0yNC4zNDItMjguNTI2LTU0LjQyLTI4LjUyNi04Ni45NzNjMC03NS44Mz
MsNTcuNTAzLTEzOC4yMjYsMTMxLjI4MS0xNDUuOTgKCQljLTUuNjg5LTAuNjAxLTExLjQ2
Ny0wLjg4NC0xNy4zMjMtMC44MDljLTgwLjE4MywxLjAzNi0xNDQuODY0LDY2LjM1OS0xND
QuODY0LDE0Ni43ODhjMCwzMi41NTMsMTAuNTk1LDYyLjYzLDI4LjUyNiw4Ni45NzMKCQl
DMTkyLjc2NiwyNDQuMywxOTIuMjI2LDI1OC44NzMsMTgzLjQ3LDI2OC41ODJ6Ii8+Cgk8cG
F0aCBzdHlsZT0iZmlsbDojRkZCNjQxOyIgZD0iTTQ5LjUzOSwyNzkuNzk2YzIuMTM3LTE0Lj
MxNywxMS42MTgtMjUuOTQyLDI0LjI4Mi0zMS4yNDVjLTQuODY2LTIuMDIyLTEwLjA5MS0z
LjExLTE1LjQxMi0zLjExCgkJbDAsMGMtMTkuOTQ3LDAtMzYuODMzLDE0LjYyOC0zOS43N
zYsMzQuMzU3QzcuODg5LDM1MS44MTYsNi41Miw1MTIsMjA2Ljk2Niw1MTJoMzAuOTA1
QzM3LjQyNSw1MTIsMzguNzk0LDM1MS44MTYsNDkuNTM5LDI3OS43OTZ6CgkJIi8+Cgk8
cGF0aCBzdHlsZT0iZmlsbDojRkZCNjQxOyIgZD0iTTgwLjUxOCwzNDQuMzM2Yy04Ljc2Niw
4LjY1Ni0xMC4yNzcsMjIuMjY4LTMuNTk4LDMyLjYxOQoJCWMxOS41MDQsMzAuMjI3LDY4
LjM1MSw4Ni4yODMsMTYyLjM3Miw4Ni4yODNjNTcuMjU2LDAsMTE3Ljc5MS0zNS44MDks
MTI5LjA2NC05NS4wOTdjOS4zMS00OC45NjYtMTkuMjQ2LTEwOC44MjEtNzUuMzMtMTA2
LjI0NwoJCWMtNDEuMDk3LDEuODg3LTY1LjEzNSwzNy40MTUtOTkuODY1LDUzLjg0MW
MtMjQuMzk4LDExLjU0LTUwLjg0NCwxOC42NTEtNzcuNjg3LDIxLjMwNwoJCUMxMDIuNjk4
LDMzOC4zMDYsOTAuODA1LDMzNC4xNzgsODAuNTE4LDM0NC4zMzZ6Ii8+CjwvZz4KPH
BhdGggc3R5bGU9ImZpbGw6IzM4NDg0QTsiIGQ9Ik0zODguMzk0LDExMC44MzNjLTMuNT
AyLDAtNi42NzQtMi4zOTYtNy41MTMtNS45NTFsLTMuNzE1LTE1LjczCgljLTAuOTgxLTQuM
TUzLDEuNTkxLTguMzE1LDUuNzQzLTkuMjk1YzQuMTUyLTAuOTc5LDguMzE1LDEuNTkxL
DkuMjk1LDUuNzQzbDMuNzE1LDE1LjczYzAuOTgxLDQuMTUzLTEuNTkxLDguMzE1LTUu
NzQzLDkuMjk1CglDMzg5LjU4LDExMC43NjUsMzg4Ljk4MiwxMTAuODMzLDM4OC4zOTQs
MTEwLjgzM3oiLz4KPHBhdGggc3R5bGU9ImZpbGw6I0ZGQjY0MTsiIGQ9Ik00MjcuNjE4LDY
4Ljk5NGMwLDAsMy4xOTgsNDUuODMyLTE4LjAzMyw2Ni41OTFjLTIxLjIzMSwyMC43NTks
MTQuMTU0LDUzLjMxNCw1Ni4xNDUsMjIuNjQ2CgljNi4wMzItNC40MDUsMTIuMTQzLTcuMj
A0LDE4LjE4NC04Ljc2OGM3Ljc3Ny0yLjAxMiwxMy4yNDMtOC45NjcsMTMuMjQzLTE2Ljk5O
WwwLDBjMC03LjcyNC01LjAzMS0xNC41OTctMTIuNDM4LTE2Ljc4NgoJYy00LjkyNS0xLjQ1
Ni0xMS4xOC0yLjMyNS0xOC41MTYtMS4zMjVjMCwwLDI1LjM5My0yMi4xMzgsMTkuMTE5
LTQ3Ljc1M2MtMi4wMjctOC4yOC0xMS44NTYtMTEuNzI2LTE4LjgzNi02LjgzMgoJQzQ1Ny4
0NjEsNjYuMDk0LDQ0My40NTQsNzIuNzY0LDQyNy42MTgsNjguOTk0eiIvPgo8Zz4KPC9nP
go8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KP
C9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Z
z4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K">'], Cheats.workshop);
dragElement(controls, guiWrapper);
dragElement(dragButton, guiWrapper);