javascript:(function()%7B(() %3D> %7B%0A let iframe %3D document.querySelector("iframe")%3B%0A if (!iframe) %7B%0A iframe %3D document.createElement("iframe")%3B%0A iframe.style.display %3D "none"%3B%0A document.body.append(iframe)%3B%0A %7D%0A %2F* By CryptoDude3 *%2F%0A if (window.fetch.call.toString() %3D%3D 'function call() %7B %5Bnative code%5D %7D') %7B%0A const call %3D window.fetch.call%3B%0A window.fetch.call %3D function () %7B%0A if (!arguments%5B1%5D.includes("s.blooket.com%2Frc")) return call.apply(this%2C arguments)%3B%0A %7D%0A %7D%0A const timeProcessed %3D 1732772258234%3B%0A let latestProcess %3D -1%3B%0A const cheat %3D (async () %3D> %7B%0A const versionName %3D "24.11.27v2"%3B%0A const gui %3D document.createElement("div")%3B%0A Object.assign(gui.style%2C %7B%0A top%3A window.innerHeight %2F 2 - 250 %2B "px"%2C%0A left%3A innerWidth %2F 2 - 400 %2B "px"%2C%0A %7D)%3B%0A const variables %3D %7B%0A "--highlight"%3A "%2300A2FF"%2C%0A "--highlight2"%3A "%234F4789"%2C%0A "--background"%3A "%230A0A13"%2C%0A "--background2"%3A "%23151529"%2C%0A "--textColor"%3A "%23FFFFFF"%2C%0A "--textColor2"%3A "%23564CA2"%2C%0A "--toggleOff"%3A "%23E32424"%2C%0A "--toggleOn"%3A "%2324E324"%2C%0A %7D%3B%0A %0A let settings%2C%0A settingsKey %3D "KGUI.BenIsASillyGoose"%3B%0A const Settings %3D %7B%0A data%3A null%2C%0A setItem(k%2C v) %7B%0A k.split(".").reduce((obj%2C k%2C i%2C a) %3D> (%2B%2Bi %3D%3D a.length %26%26 (obj%5Bk%5D %3D v)%2C k in obj %3F obj%5Bk%5D %3A (obj%5Bk%5D %3D %7B%7D))%2C this.data)%3B%0A localStorage.setItem(settingsKey%2C JSON.stringify(this.data))%3B%0A return v%3B%0A %7D%2C%0A deleteItem(k) %7B%0A k.split(".").reduce((obj%2C k%2C i%2C a) %3D> (%2B%2Bi %3D%3D a.length %26%26 delete obj%5Bk%5D%2C obj%5Bk%5D)%2C this.data)%3B%0A localStorage.setItem(settingsKey%2C JSON.stringify(this.data))%3B%0A return this.data%3B%0A %7D%2C%0A setData(v) %7B%0A this.data %3D v%3B%0A localStorage.setItem(settingsKey%2C JSON.stringify(this.data))%3B%0A %7D%2C%0A %7D%3B%0A const defaultHideKey %3D %7B ctrl%3A true%2C shift%3A false%2C alt%3A false%2C key%3A "e" %7D%3B%0A const defaultCloseKey %3D %7B ctrl%3A true%2C shift%3A false%2C alt%3A false%2C key%3A "x" %7D%3B%0A %0A for (const variable in variables) gui.style.setProperty(variable%2C variables%5Bvariable%5D)%3B%0A try %7B%0A Settings.data %3D JSON.parse(localStorage.getItem(settingsKey) %7C%7C "%7B%7D")%3B%0A %7D catch %7B%0A localStorage.setItem(settingsKey%2C "%7B%7D")%3B%0A Settings.data %3D %7B%7D%3B%0A %7D finally %7B%0A for (const variable in Settings.data.theme %7C%7C %7B%7D) gui.style.setProperty("--" %2B variable%2C Settings.data.theme%5Bvariable%5D)%3B%0A Settings.data.hideKey %3F%3F%3D defaultHideKey%3B%0A Settings.data.closeKey %3F%3F%3D defaultCloseKey%3B%0A %7D%0A %0A const styles %3D document.createElement("style")%3B%0A const classes %3D %7B%7D%2C%0A datasets %3D %7B%7D%3B%0A styles.innerHTML %3D%0A "%40import url('https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DTitan%2BOne')%3B%5Cn%40import url('https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DNunito')%3B" %2B%0A %60.bigTextContainer%2C.version%7Balign-items%3Acenter%3Buser-select%3Anone%7D.cheatsList>div%2C.settingsPage>div%7Bpadding%3A5px 10px%7D.gamemode%2C.gui%2C.leaderboardList%2C.sidebar%7Bbox-sizing%3Aborder-box%7D.controls>div%2C.credit%2C.pathText%2C.runCheat%2C.sidebarPath%2C.version%7Buser-select%3Anone%7D.noScroll%3A%3A-webkit-scrollbar%7Bdisplay%3Anone%7D.noScroll%7B-ms-overflow-style%3Anone%3Bscrollbar-width%3Anone%7D.gui%7Bposition%3Afixed%3Bz-index%3A100%3Bbackground%3Avar(--background)%3Bheight%3A500px%3Bwidth%3A800px%3Bcolor%3A%23fff%3Bbox-shadow%3A2px 2px 2px %23000a%3Bpadding-left%3A50px%3Bfont-size%3A16px%7D.controls%2C.credit%2C.gamemodesList%2C.guiContent%2C.guiTopBar%2C.sidebar%2C.sidebarShadow%2C.version%7Bposition%3Aabsolute%7D.sidebarShadow%7Binset%3A0%3Bbackground%3A%23000%3Bopacity%3A0%25%3Bpointer-events%3Anone%3Btransition%3A.2s%3Bz-index%3A9%7D.controls>div%2C.guiContent%2C.sidebar%2Cselect%5Bdata-type%5D option%7Bbackground%3Avar(--background2)%7D.sidebarShadow%3Ahas(~ .sidebar%3Ahover)%7Bopacity%3A40%25%7D.credit%7Bbottom%3A0%3Bleft%3A0%3Bright%3A0%3Bheight%3A0%3Btransition%3A.1s%3Boverflow%3Ahidden%3Btext-align%3Acenter%7D.sidebar%7Btop%3A0%3Bleft%3A0%3Bheight%3A100%25%3Bwidth%3A50px%3Btransition%3A.2s 0.1s%3Bz-index%3A10%3Boverflow-x%3Ahidden%3Bpadding-bottom%3A30px%7D.sidebar%3Ahover%7Bwidth%3A200px%3Btransition-delay%3A0s%7D.sidebar%3Ahover>.credit%7Bheight%3A25px%3Btransition%3A.4s 0.2s%7D.guiContent%7Binset%3A20px%3Bleft%3A70px%3Btop%3A40px%3Bz-index%3A1%3Bpadding-top%3A32px%7D.guiTopBar%7Bz-index%3A1%3Btop%3A0%3Bleft%3A50px%3Bright%3A0%3Bheight%3A25px%7D.version%7Btop%3A0%3Bleft%3A0%3Bmargin-inline%3A10px%3Bcolor%3A%23888%3Bfont-size%3A.9em%3Bletter-spacing%3A.5px%3Bheight%3A100%25%3Bdisplay%3Aflex%7D.controls%7Btop%3A0%3Bright%3A0%3Bdisplay%3Agrid%3Bgrid-template-columns%3A1fr 1fr 1fr%3Bheight%3A25px%3Bwidth%3A122px%3Bgap%3A1px%3Bborder%3A1px solid var(--background)%3Bz-index%3A2%7D.controls>div%7Bdisplay%3Agrid%3Bplace-items%3Acenter%3Bfont-weight%3A100%7D.closeControl%7Btransition%3A.1s%7D.closeControl%3Ahover%7Bbackground%3Ared%7D.creditsPage%2C.gamemodesPage%2C.searchPage%7Bposition%3Aabsolute%3Binset%3A0%3Btop%3A32px%7D.gamemodesList%7Bdisplay%3Agrid%3Bgap%3A0 30px%3Bpadding-inline%3A30px%3Bmargin-top%3A0%3Bpadding-top%3A15px%3Bmargin-bottom%3A0%3Bgrid-template-columns%3A1fr 1fr%3Boverflow-y%3Ascroll%3Binset%3A0%7D.leaderboardPage%2C.logsPage%7Binset%3A10px%3Bposition%3Aabsolute%7D.pathText%7Bposition%3Aabsolute%3Btop%3A40px%3Bleft%3A70px%3Bright%3A20px%3Bz-index%3A3%3Bpadding%3A7px 10px%3Bheight%3A22px%7D.clearLogsButton%2C.refreshControl%7Bz-index%3A5%3Bplace-items%3Acenter%3Bcursor%3Apointer%7D.leaderboardPage%7Btop%3A42px%7D.leaderboardList%7Blist-style%3Anone%3Bmargin%3A0%3Bpadding%3A20px 40px 10px%3Bheight%3A100%25%3Boverflow%3Ascroll%3Bfont-size%3A1.5em%7D.logsPage%7Btop%3A37px%3Bbackground%3A%23000d%3Bborder-radius%3A2.5px%7D.logMessages%7Blist-style%3Anone%3Bmargin%3A10px%3Bpadding%3A0%3Bdisplay%3Aflex%3Bflex-direction%3Acolumn-reverse%3Boverflow-y%3Ascroll%3Bword-wrap%3Abreak-word%3Bposition%3Aabsolute%3Binset%3A0%7D.clearLogsButton%7Bposition%3Aabsolute%3Btop%3A5px%3Bright%3A5px%3Bwidth%3A25px%3Bheight%3A25px%3Bdisplay%3Agrid%3Bscale%3A-1 1 1%3Btransition%3A.2s%7D.searchbarHolder%7Bdisplay%3Aflex%3Boutline%3A2px solid var(--highlight)%3Bmargin%3A10px 20px%3Bheight%3A30px%3Bfont-size%3A2em%7D.searchbarInput%7Boutline%3A0%3Bborder%3Anone%3Bbackground%3A0 0%3Bcolor%3A%23fff%3Bflex%3A1%3Bfont-size%3A.5em%3Bfont-family%3ANunito%3Bpadding-inline%3A5px%7D.gamemode%2C.settingsPage>div%7Bborder-radius%3A2.5px%3Bbackground%3Avar(--background)%7D.searchbarButton%7Bcolor%3A%23fff%3Bfont-size%3A.6em%3Baspect-ratio%3A1%2F1%3Bheight%3A30px%3Bdisplay%3Agrid%3Bplace-items%3Acenter%3Bcursor%3Apointer%7D.bigText%2C.bigTextContainer%7Bheight%3A50px%3Bwidth%3A200px%3Bfont-family%3ATitan One%7D.searchResults%7Bposition%3Aabsolute%3Binset%3A0%3Btop%3A45px%3Bpadding-inline%3A20px%3Boverflow-y%3Ascroll%7D.favoritesPage%2C.settingsPage%7Binset%3A0%3Btop%3A32px%3Boverflow-y%3Ascroll%3Bposition%3Aabsolute%7D.noResult%7Bmargin%3A20px 10px%3Bfont-size%3A.85em%7D.clearLogsButton%3Ahover%2C.licenseMessage%7Bfont-size%3A1.25em%7D.favoritesPage%7Bpadding-block%3A10px%3Bpadding-inline%3A20px%7D.licenseMessage%7Bfont-weight%3A900%3Bpadding-inline%3A20px%3Bmargin-top%3A10px%7D.copyrightTag%7Bfont-size%3A.7em%3Bfont-weight%3A200%3Bposition%3Aabsolute%3Bbottom%3A0%3Bleft%3A0%3Bpadding%3A5px 8px%7D.codingCredits%2C.creditLinks%2C.uploadDates%7Blist-style%3Anone%3Bpadding-inline%3A20px%3Bmargin-block%3A16px%7D.settingsPage%7Bpadding%3A10px%3Bdisplay%3Aflex%3Bflex-direction%3Acolumn%3Bgap%3A10px%7D.sidebarPaths%7Bdisplay%3Aflex%3Bflex-direction%3Acolumn%3Bwidth%3A200px%7D.bigTextContainer%7Bdisplay%3Aflex%3Bfont-size%3A2em%3Bmargin-block%3A10px%3Btransition%3Afont-size .2s .1s%2Cmargin-block .2s .1s%7D.bigText%7Bdisplay%3Aflex%3Balign-items%3Acenter%3Bjustify-content%3Acenter%7D.refreshControl%7Bposition%3Aabsolute%3Btop%3A45px%3Bright%3A25px%3Bwidth%3A25px%3Bheight%3A25px%3Bdisplay%3Agrid%7D.gamemode%7Bwidth%3A100%25%3Bheight%3A200px%3Bmargin-bottom%3A30px%3Bcursor%3Apointer%3Bdisplay%3Aflex%3Bjustify-content%3Acenter%3Balign-items%3Acenter%3Bpadding-top%3A10px%3Bposition%3Arelative%3Boverflow%3Ahidden%3Bpadding-bottom%3A35px%3Btransition%3A.4s%7D.contentPage%2C.gamemode>div%7Bposition%3Aabsolute%3Bbottom%3A0%7D.gamemode%3Ahover%7Bbox-shadow%3A0 0 10px var(--highlight)%3Btransition%3A.2s%7D.gamemode>img%7Bwidth%3A85%25%3Bmax-width%3A100%25%3Bmax-height%3A100%25%7D.gamemode>div%7Bleft%3A0%3Bright%3A0%3Bheight%3A25px%3Bbackground%3Avar(--highlight)%3Bdisplay%3Aflex%3Bjustify-content%3Acenter%3Balign-items%3Acenter%3Bbox-shadow%3A0 -5px 5px %230004%3Bfont-weight%3A800%3Bfont-size%3A1.1em%3Btransition%3A.25s%7D.contentPage%7Binset-inline%3A0%3Btop%3A35px%7D.cheatsList%7Bdisplay%3Aflex%3Bflex-direction%3Acolumn%3Bheight%3A100%25%3Boverflow-y%3Ascroll%3Bpadding-inline%3A10px%7D.cheatToggle%2C.cheatToggle>.toggleTrigger%2C.runCheat%7Bheight%3A35px%3Bborder-radius%3A2.5px%7D.cheatsList>div%7Bdisplay%3Agrid%3Bmargin-bottom%3A10px%3Bposition%3Arelative%3Bbackground%3Avar(--background)%3Bborder-radius%3A2.5px%7D.cheatInfo%2C.cheatInputs%2C.cheatName%2C.cheatTop%2C.logMessage>span%2C.runCheat%2C.sidebarPath%2C.sidebarPath>i%7Bdisplay%3Aflex%7D.cheatInfo%7Bflex-direction%3Acolumn%3Bflex%3A1%7D.cheatName%7Bfont-size%3A1.5em%3Bfont-weight%3A700%7D.cheatDescription%7Bfont-size%3A.8em%3Bmargin-right%3A25px%7D.runCheat%7B--buttonColor%3Avar(--highlight)%3Bwidth%3A20%25%3Bbackground%3Avar(--buttonColor)%3Bmargin-block%3Aauto%3Bcursor%3Apointer%3Balign-items%3Acenter%3Bjustify-content%3Acenter%3Bfont-weight%3A800%3Btransition%3A.5s%3Bcolor%3A%23fff!important%7D.runCheat%3Ahover%7Bbox-shadow%3A0 0 10px 0 var(--buttonColor)%3Btransition%3A.3s%7D.runCheat%3Aactive%7Bbox-shadow%3A0 0 0 0 var(--buttonColor)%3Btransition%3A50ms%7D.cheatInputs%7Bmargin%3A5px 0 5px 5px%3Bflex-direction%3Acolumn%3Bgap%3A5px%7D.searchResult%2C.standing%7Bmargin-bottom%3A10px%3Btransition%3A.2s%7D.creditsPage>ul>li>strong%2C.logMessage img%2C.standingBlook%7Bmargin-right%3A5px%7D.cheatInputs>div%7Bdisplay%3Aflex%3Bflex-direction%3Arow%3Bfont-size%3A.8rem%3Bcolor%3Avar(--highlight)%3Bfont-weight%3A700%3Balign-items%3Acenter%7D.cheatInputs>div>span%7Bflex%3A1%7D.cheatToggle%7Bwidth%3A20%25%3Bbackground%3Avar(--highlight2)%3Bmargin-block%3Aauto%3Bcursor%3Apointer%3Bposition%3Arelative%7D.cheatToggle>.toggleTrigger%7Bwidth%3A45px%3Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bbackground%3Avar(--highlight)%3Bpointer-events%3Anone%3Btransition%3Aleft .2s%2Cbox-shadow .5s%3Bz-index%3A1%7D.cheatToggle%3Ahover>.toggleTrigger%7Bbox-shadow%3A0 0 10px 0 var(--highlight)%3Btransition%3Aleft .2s%2Cbox-shadow .2s%7D.toggleTrigger.active%7Bleft%3Acalc(100%25 - 45px)%7D.toggleColor%7Bposition%3Aabsolute%3Binset%3A10px 20px%3Bbackground%3Argb(from var(--toggleOff) r g b %2F 25%25)%3Bborder-radius%3A2.5px%3Btransition%3A.2s%7D.toggleTrigger.active%2B.toggleColor%7Bbackground%3Argb(from var(--toggleOn) r g b %2F 25%25)%7Dinput%5Bdata-type%5D%2Cselect%5Bdata-type%5D%7Bwidth%3A20%25%3Bheight%3A25px%3Boutline%3A0%3Bborder%3A2px solid var(--highlight)%3Bbox-sizing%3Aborder-box%3Bbackground%3A0 0%3Bcolor%3A%23fff%3Bfont-size%3A.9em%3Bpadding-left%3A5px%3Bfont-family%3ANunito%3Bborder-radius%3A2px%3Bfont-weight%3A800%7D.logo%2C.sidebarPath>i%7Bwidth%3A50px%3Bheight%3A50px%7Dselect%5Bdata-type%5D%7B-webkit-appearance%3Anone%3B-moz-appearance%3Anone%3Btext-indent%3A1px%3Btext-overflow%3A''%7Dinput%3A%3Aplaceholder%7Bcolor%3Argb(from var(--textColor) r g b %2F 50%25)%7Dinput%5Bdata-type%5D%3A%3A-webkit-inner-spin-button%2Cinput%5Bdata-type%5D%3A%3A-webkit-outer-spin-button%7B-webkit-appearance%3Anone%3Bmargin%3A0%7Dinput%5Bdata-type%5D%5Btype%3Dnumber%5D%7B-moz-appearance%3Atextfield%7Dselect%5Bdata-type%5D option%7Bborder-radius%3A0%7Dselect%5Bdata-type%5D%3A%3A-ms-expand%7Bdisplay%3Anone%7D.sidebarPath%7Balign-items%3Acenter%3Bcursor%3Apointer%3Btransition%3A.2s 0.1s%7D.searchResult%3Ahover%2C.sidebarPath%3Ahover%7Bcolor%3Avar(--highlight)%3Btext-shadow%3A0 0 5px var(--highlight)%7D.sidebarPath>i%7Bjustify-content%3Acenter%3Balign-items%3Acenter%3Bfont-size%3A1.5em%7D.sidebarPath>span%7Bpadding-left%3A5px%7D.sidebar%3Ahover .sidebarPath%7Bpadding-left%3A20px%3Btransition-delay%3A0s%7D.logo%7Bleft%3A0%3Btransition%3Aleft .2s .1s%3Bdisplay%3Agrid%3Bplace-items%3Acenter%3Bmin-width%3A50px%3Bposition%3Aabsolute%7D.sidebar%3Ahover .logo%7Bleft%3A28px%3Btransition%3Aleft .2s%7D.bigText%7Bmargin-top%3A-150px%3Btransition%3Amargin-top .1s%7D.sidebar%3Ahover .bigText%7Bmargin-top%3A0%3Btransition%3Amargin-top .4s 0.1s%7D.sidebar%3Ahover .bigTextContainer%7Bfont-size%3A2.5em%3Bmargin-block%3A20px%3Btransition%3Afont-size .2s%2Cmargin-block .2s%7D.creditsPage>ul>li>span%7Bcolor%3Avar(--textColor2)%3Bfont-weight%3A800%7D.creditsPage>ul>li i%7Bmargin-inline%3A2px%3Bline-height%3A1%7D.creditsPage a%7Bcolor%3Avar(--highlight)%3Btext-decoration%3Anone%7D.creditsPage a%3Ahover%2C.pathPage%3Ahover%7Btext-decoration%3Aunderline%7D.warning%7Bcolor%3Avar(--highlight2)%3Bfont-size%3A.85em%7D.searchResult%7Bcursor%3Apointer%7D.searchResultName%7Bfont-weight%3A800%7D.searchResultDescription%7Bfont-size%3A.8em%7D.searchResultSeparator%7Bfont-size%3A1.5em%3Bfont-weight%3A800%3Bmargin-block%3A10px%3Bcursor%3Apointer%3Btransition%3A.2s%3Bborder-bottom%3A2px solid %23fff%3Bpadding-inline%3A5px%3Bfilter%3Adrop-shadow(0px 0px 0px var(--highlight))%7D.searchResultSeparator%3Ahover%7Bcolor%3Avar(--highlight)%3Bborder-bottom%3A2px solid var(--highlight)%3Bfilter%3Adrop-shadow(0px 0px 2.5px var(--highlight))%7D.toggleCheat%7B--buttonColor%3Avar(--toggleOff)%7D.toggleCheat.active%7B--buttonColor%3Avar(--toggleOn)%7D.logMessage img%7Bheight%3A1em%3Balign-self%3Acenter%7D.standing%7Bdisplay%3Aflex%3Bfont-weight%3A800%3Balign-items%3Acenter%3Bposition%3Arelative%3Bpadding%3A5px 10px 5px 50px%3Bborder-radius%3A2.5px%3Bbackground%3Avar(--highlight2)%7D.standing%3Abefore%7Bcontent%3Aattr(data-place) "."%3Bmargin-right%3A10px%7D.standing%3A%3Aafter%7Bcontent%3Aattr(data-value)%3Bflex%3A1%3Btext-align%3Aright%3Bfont-weight%3A100%7D.standing%3Ahover%7Bbackground%3Avar(--standingColor)%3Bbox-shadow%3A0 0 7.5px var(--standingColor)%7D.standingBlook%7Bheight%3A1.25em%3Balign-self%3Acenter%3Bposition%3Aabsolute%3Bleft%3A10px%7D.favoriteButton%2C.favoriteButton>i%7Btransition%3A.2s%3Bdisplay%3Agrid%3Bplace-items%3Acenter%3Bwidth%3A32px%3Bheight%3A32px%7D.favoriteButton%7Bfont-size%3A.8em%3Bpadding-left%3A5px%3Bcursor%3Apointer%7D.favoriteButton%3Ahover%7Bcolor%3A%23ff0%7D.favoriteButton>i%7Bposition%3Aabsolute%3Bscale%3A0%3Btransform-origin%3A50%25 55%25%7D.favoriteButton>i.filled%7Bscale%3A1%7D.pathPage%7Bcursor%3Apointer%3Bcolor%3Avar(--highlight)%7D%5Bdata-favorited%3Dfalse%5D%2C%5Bdata-favorites%3D"0"%5D%7Bdisplay%3Anone%7D%0A %5Bdata-mode%5D%5Bdata-name%5D%5Bdata-description%5D %7B%7D%60%0A .replace(%2F%5C.(%5B%5E0-9%5D%5B%5Cw-%5D%2B)%2Fgm%2C (x%2C y) %3D> "." %2B (classes%5By%5D %3F%3F%3D randString(10)))%0A .replace(%2Fdata-(%5Cw%2B)%2Fgm%2C (x%2C y) %3D> "data-" %2B (datasets%5By%5D %3F%3F%3D randString(10)))%3B%0A %0A gui.className %3D classes.gui%3B%0A %0A gui.append(styles)%3B%0A const sidebarShadow %3D document.createElement("div")%3B%0A sidebarShadow.className %3D classes.sidebarShadow%3B%0A %0A gui.appendChild(sidebarShadow)%3B%0A const credit %3D document.createElement("div")%3B%0A credit.className %3D classes.credit%3B%0A %0A credit.innerText %3D "Created by Adrian"%3B%0A const sidebar %3D document.createElement("div")%3B%0A sidebar.className %3D classes.sidebar%3B%0A %0A sidebar.append(credit)%3B%0A const guiContent %3D document.createElement("div")%3B%0A guiContent.className %3D classes.guiContent%3B%0A %0A const guiTopBar %3D document.createElement("div")%3B%0A guiTopBar.className %3D classes.guiTopBar%3B%0A %0A const version %3D document.createElement("span")%3B%0A version.className %3D classes.version%3B%0A version.innerText %3D "Adrian - Blooket GUI " %2B versionName%3B%0A guiTopBar.append(version)%3B%0A %0A const controls %3D document.createElement("div")%3B%0A controls.className %3D classes.controls%3B%0A %0A const moveControl %3D document.createElement("div")%3B%0A moveControl.style.cursor %3D "grab"%3B%0A %0A moveControl.innerHTML %3D '<i class%3D"fas fa-arrows-alt-h" style%3D"line-height%3A 1"><%2Fi>'%3B%0A const minimizeControl %3D document.createElement("div")%3B%0A %0A minimizeControl.innerHTML %3D '<i class%3D"fas fa-compress" style%3D"line-height%3A 1"><%2Fi>'%3B%0A let hideAnimation %3D false%3B%0A minimizeControl.onclick %3D () %3D> %7B%0A if (hideAnimation %3D%3D (hideAnimation %3D true)) return%3B%0A const hidden %3D minimizeControl.minimized%3B%0A if (hidden) %7B%0A minimizeControl.innerHTML %3D '<i class%3D"fas fa-compress" style%3D"line-height%3A 1"><%2Fi>'%3B%0A gui.animate(%0A %5B%0A %7B%0A width%3A "122px"%2C%0A height%3A "27px"%2C%0A left%3A gui.style.left%2C%0A %7D%2C%0A %7B%0A width%3A "800px"%2C%0A height%3A "500px"%2C%0A left%3A %60%24%7BparseInt(gui.style.left) %2B (hidden %3F -678 %3A 678)%7Dpx%60%2C%0A %7D%2C%0A %5D%2C%0A %7B duration%3A 200%2C easing%3A "ease" %7D%0A )%3B%0A gui.style.width %3D "800px"%3B%0A gui.style.height %3D "500px"%3B%0A %7D else %7B%0A minimizeControl.innerHTML %3D '<i class%3D"fas fa-expand" style%3D"line-height%3A 1"><%2Fi>'%3B%0A gui.animate(%0A %5B%0A %7B%0A width%3A "800px"%2C%0A height%3A "500px"%2C%0A left%3A gui.style.left%2C%0A %7D%2C%0A %7B%0A width%3A "122px"%2C%0A height%3A "27px"%2C%0A left%3A %60%24%7BparseInt(gui.style.left) %2B (hidden %3F -678 %3A 678)%7Dpx%60%2C%0A %7D%2C%0A %5D%2C%0A %7B duration%3A 200%2C easing%3A "ease" %7D%0A )%3B%0A gui.style.width %3D "122px"%3B%0A gui.style.height %3D "27px"%3B%0A %7D%0A setTimeout(%0A () %3D> %7B%0A for (let child of %5B...gui.children%5D) %7B%0A if (child %3D%3D controls) continue%3B%0A if (hidden) child.style.display %3D child.style._display%3B%0A else %7B%0A child.style._display %3D child.style.display%3B%0A child.style.display %3D "none"%3B%0A %7D%0A %7D%0A hideAnimation %3D false%3B%0A %7D%2C%0A hidden %3F 200 %3A 0%0A )%3B%0A gui.style.left %3D %60%24%7BparseInt(gui.style.left) %2B (hidden %3F -678 %3A 678)%7Dpx%60%3B%0A minimizeControl.minimized %3D !hidden%3B%0A %7D%3B%0A const closeControl %3D document.createElement("div")%3B%0A closeControl.className %3D classes.closeControl%3B%0A closeControl.innerHTML %3D '<i class%3D"fas fa-times" style%3D"line-height%3A 1"><%2Fi>'%3B%0A closeControl.onclick %3D () %3D> gui.remove()%3B%0A controls.append(moveControl%2C minimizeControl%2C closeControl)%3B%0A dragElement(moveControl%2C gui)%3B%0A %0A const gamemodesPage %3D document.createElement("div")%3B%0A gamemodesPage.className %3D classes.gamemodesPage%3B%0A %0A const gamemodesList %3D document.createElement("div")%3B%0A gamemodesList.className %3D classes.noScroll %2B " " %2B classes.gamemodesList%3B%0A %0A const path %3D %5B%5B"Gamemodes"%2C gamemodesPage%5D%5D%3B%0A %0A const pathText %3D document.createElement("div")%3B%0A pathText.className %3D classes.pathText%3B%0A %0A path.createPage %3D function (name%2C index%2C current) %7B%0A const page %3D document.createElement("span")%3B%0A %0A page.innerText %3D name%3B%0A if (!current) page.className %3D classes.pathPage%3B%0A page.onclick %3D () %3D> this.goto(index)%3B%0A return page%3B%0A %7D%3B%0A path.updatePath %3D function () %7B%0A pathText.innerHTML %3D ""%3B%0A pathText.append(this.createPage(this%5B0%5D%5B0%5D%2C 0%2C this.length %3D%3D 1))%3B%0A for (let i %3D 1%3B i < this.length%3B i%2B%2B) %7B%0A pathText.append(" > ")%3B%0A pathText.append(this.createPage(this%5Bi%5D%5B0%5D%2C i%2C this.length - 1 %3D%3D i))%3B%0A %7D%0A guiContent.innerHTML %3D ""%3B%0A guiContent.append(this%5Bthis.length - 1%5D%5B1%5D)%3B%0A this%5Bthis.length - 1%5D%5B1%5D%3F.onPath%3F.()%3B%0A %7D%3B%0A path.push %3D function (key%2C page) %7B%0A Array.prototype.push.call(this%2C %5Bkey%2C page%5D)%3B%0A this.updatePath()%3B%0A return this.length%3B%0A %7D%3B%0A %0A path.goto %3D function (index) %7B%0A while (this.length - 1 > index) this.pop()%3B%0A this.updatePath()%3B%0A %7D%3B%0A %0A path.sidebar %3D function (key%2C page) %7B%0A while (this.length > 0) this.pop()%3B%0A return this.push(key%2C page)%3B%0A %7D%3B%0A %0A const leaderboardPage %3D document.createElement("div")%3B%0A leaderboardPage.className %3D classes.leaderboardPage%3B%0A %0A const leaderboardList %3D document.createElement("ul")%3B%0A leaderboardList.className %3D classes.noScroll %2B " " %2B classes.leaderboardList%3B%0A %0A leaderboardPage.append(leaderboardList)%3B%0A %0A const logsPage %3D document.createElement("div")%3B%0A logsPage.className %3D classes.logsPage%3B%0A %0A const logMessages %3D document.createElement("ul")%3B%0A logMessages.className %3D classes.noScroll %2B " " %2B classes.logMessages%3B%0A %0A const clearLogsButton %3D document.createElement("div")%3B%0A clearLogsButton.className %3D classes.clearLogsButton%3B%0A clearLogsButton.innerHTML %3D %60<i class%3D"fas fa-ban" style%3D"line-height%3A 1"><%2Fi>%60%3B%0A %0A logsPage.append(logMessages%2C clearLogsButton)%3B%0A %0A let leaderboardPath%3B%0A const Logs %3D %7B%0A connection%3A null%2C%0A standings%3A %5B%5D%2C%0A data%3A %7B%7D%2C%0A gamemodeData%3A %7B%0A gold%3A %7B%0A sort%3A "g"%2C%0A %7D%2C%0A hack%3A %7B%0A sort%3A "cr"%2C%0A %7D%2C%0A fish%3A %7B%0A sort%3A "w"%2C%0A %7D%2C%0A pirate%3A %7B%0A sort%3A "d"%2C%0A %7D%2C%0A defense2%3A %7B%0A sort%3A "d"%2C%0A %7D%2C%0A brawl%3A %7B%0A sort%3A "xp"%2C%0A upgrades%3A %7B%0A egg%3A "Rapid Eggs"%2C%0A nut%3A "Crazy Acorns"%2C%0A slime%3A "Bouncing Slime"%2C%0A jesterBall%3A "Juggling Spheres"%2C%0A horseshoe%3A "Revolving Horseshoes"%2C%0A shell%3A "Rebounding Shell"%2C%0A pizza%3A "Boomerang Pizza"%2C%0A banana%3A "Curving Banana"%2C%0A arrow%3A "Speeding Arrows"%2C%0A peacock%3A "Peacock Feathers"%2C%0A bone%3A "Whirling Bones"%2C%0A bee%3A "Buzzing Bees"%2C%0A bubble%3A "Booming Bubbles"%2C%0A card%3A "Slicing Cards"%2C%0A laser%3A "Rapid-fire Lasers"%2C%0A darkEnergy%3A "Dark Energy"%2C%0A syrup%3A "Sticky Syrup"%2C%0A birdFeather%3A "Flying Feathers"%2C%0A %7D%2C%0A %7D%2C%0A dino%3A %7B%0A sort%3A "f"%2C%0A %7D%2C%0A royale%3A %7B%0A sort%3A "e"%2C%0A %7D%2C%0A defense%3A %7B%0A sort%3A "d"%2C%0A %7D%2C%0A cafe%3A %7B%0A sort%3A "ca"%2C%0A %7D%2C%0A factory%3A %7B%0A sort%3A "ca"%2C%0A glitches%3A %7B lb%3A "Lunch Break"%2C as%3A "Ad Spam"%2C e37%3A "Error 37"%2C nt%3A "Night Time"%2C lo%3A "%23LOL"%2C j%3A "Jokester"%2C sm%3A "Slow Mo"%2C dp%3A "Dance Party"%2C v%3A "Vortex"%2C r%3A "Reverse"%2C f%3A "Flip"%2C m%3A "Micro" %7D%2C%0A %7D%2C%0A racing%3A %7B%0A sort%3A "pr"%2C%0A %7D%2C%0A rush%3A %7B%0A sort%3A "bs"%2C%0A %7D%2C%0A classic%3A %7B%0A sort%3A "p"%2C%0A %7D%2C%0A tower%3A %7B%7D%2C%0A kingdom%3A %7B%7D%2C%0A toy%3A %7B%0A sort%3A "t"%2C%0A sabotages%3A %7B c%3A "Oh Canada"%2C b%3A "Blizzard"%2C f%3A "Fog Spell"%2C d%3A "Dark %26 Dusk"%2C w%3A "Howling Wind"%2C g%3A "Gift Time!"%2C t%3A "TREES"%2C s%3A "Snow Plow"%2C fr%3A "Use The Force" %7D%2C%0A %7D%2C%0A %7D%2C%0A exponents%3A %5B"⁰"%2C "¹"%2C "²"%2C "³"%2C "⁴"%2C "⁵"%2C "⁶"%2C "⁷"%2C "⁸"%2C "⁹"%5D%2C%0A formatNumber(input) %7B%0A const %5Bnumber%2C exponent%5D %3D (input %3D parseFloat(input)).toLocaleString(undefined%2C %7B notation%3A "engineering" %7D).toLowerCase().split("e")%3B%0A if (exponent < 15) return number %2B %5B""%2C "k"%2C "M"%2C "B"%2C "T"%5D%5Bexponent %2F 3%5D%3B%0A const %5Bnum%2C exp%5D %3D input.toLocaleString(undefined%2C %7B notation%3A "scientific" %7D).toLowerCase().split("e")%3B%0A return num %2B " %5Cxd7 10" %2B exp.split("").reduce((a%2C b) %3D> a %2B Logs.exponents%5Bb%5D%2C "")%3B%0A %7D%2C%0A leaderboardCache%3A %7B%7D%2C%0A createStandingElement(name) %7B%0A const element %3D document.createElement("li")%3B%0A element.className %3D classes.standing%3B%0A element.innerText %3D name%3B%0A const blook %3D document.createElement("img")%3B%0A blook.className %3D classes.standingBlook%3B%0A element.prepend(blook)%3B%0A return (Logs.leaderboardCache%5Bname%5D %3D element)%3B%0A %7D%2C%0A setLeaderboard(standings) %7B%0A if (standings.length > 0) leaderboardPath.style.display %3D "flex"%3B%0A leaderboardList.innerHTML %3D ""%3B%0A let place %3D 1%3B%0A let blookInfo%3B%0A for (let i %3D 0%3B i < standings.length%3B i%2B%2B) %7B%0A const standing %3D standings%5Bi%5D%3B%0A const standingEl %3D Logs.leaderboardCache%5Bstanding.name%5D %7C%7C Logs.createStandingElement(standing.name)%3B%0A standingEl.firstChild.src %3D (blookInfo %3D Logs.blookData%5BLogs.data%5Bstanding.name%5D%3F.b %7C%7C "Black"%5D).url%3B%0A standingEl.style.setProperty("--standingColor"%2C blookInfo.color)%3B%0A standingEl.dataset%5Bdatasets.value%5D %3D Logs.formatNumber(standing.value)%3B%0A if (standings%5Bi - 1%5D%3F.value !%3D standings%5Bi%5D.value) place %3D i %2B 1%3B%0A standingEl.dataset%5Bdatasets.place%5D %3D place%3B%0A leaderboardList.append(standingEl)%3B%0A %7D%0A %7D%2C%0A blookData%3A null%2C%0A fetchBlooks() %7B%0A return (%0A Logs.blookData %3F%3F%0A new Promise((r) %3D> %7B%0A var i %3D document.createElement("iframe")%3B%0A i.style.display %3D "none"%3B%0A var s %3D document.createElement("script")%3B%0A s.type %3D "module"%3B%0A s.src %3D document.querySelector("script%5Bsrc*%3D'ac.blooket.com'%5D").src %2B "%3F" %2B Date.now()%3B%0A const a %3D document.createElement("div")%3B%0A a.id %3D "app"%3B%0A let blooks %3D %7B%7D%3B%0A document.body.appendChild(i)%3B%0A let finish%3B%0A i.contentWindow.Object.prototype.hasOwnProperty.call %3D function (a%2C b) %7B%0A if (a%5Bb%5D%3F.rarity %26%26 a in blooks %3D%3D false) Object.assign(blooks%2C a)%3B%0A finish %3F%3F%3D setTimeout(() %3D> %7B%0A document.body.removeChild(i)%3B%0A r((Logs.blookData %3D blooks))%3B%0A %7D)%3B%0A return Object.prototype.hasOwnProperty.call(a%2C b)%3B%0A %7D%3B%0A i.contentDocument.body.appendChild(a)%3B%0A i.contentDocument.body.appendChild(s)%3B%0A %7D)%0A )%3B%0A %7D%2C%0A async connect() %7B%0A try %7B%0A const stateNode %3D getStateNode()%3B%0A if (!stateNode%3F.props%3F.liveGameController%3F._liveGameCode) return false%3B%0A Logs.connection %3D await stateNode.props.liveGameController.getDatabaseRef("c")%3B%0A if (!Logs.connection) return false%3B%0A await Logs.fetchBlooks()%3B%0A const gamemode %3D Logs.getGamemode()%3B%0A Logs.connection.on("value"%2C (snapshot) %3D> %7B%0A const players %3D snapshot.val() %7C%7C %7B%7D%3B%0A let added%3B%0A if (!players %7C%7C !(added %3D Logs.diffObjects(Logs.data%2C players))) return%3B%0A Logs.data %3D players%3B%0A if (Logs.gamemodeData%5Bgamemode%5D.sort) %7B%0A Logs.standings %3D Object.entries(players)%0A .map((%5Bname%2C data%5D) %3D> (%7B name%2C blook%3A data.b%2C value%3A data%5BLogs.gamemodeData%5Bgamemode%5D.sort%5D %7C%7C 0 %7D))%0A .sort((a%2C b) %3D> b.value - a.value)%3B%0A Logs.setLeaderboard(Logs.standings)%3B%0A %7D%0A try %7B%0A let addedPlayer%3B%0A switch (gamemode) %7B%0A case "brawl"%3A%0A for (const player in added) %7B%0A if (!(addedPlayer %3D added%5Bplayer%5D).up) continue%3B%0A const upgrade %3D addedPlayer.up.split("%3A")%3B%0A if (upgrade.length %3D%3D 2 %26%26 upgrade%5B0%5D in Logs.gamemodeData.brawl.upgrades) Logs.addAlert(player%2C %60upgraded %24%7BLogs.gamemodeData.brawl.upgrades%5Bupgrade%5B0%5D%5D%7D to level %24%7Bupgrade%5B1%5D%7D%60)%3B%0A %7D%0A break%3B%0A case "gold"%3A%0A for (const player in added) %7B%0A if (!(addedPlayer %3D added%5Bplayer%5D).tat) continue%3B%0A const %5Btat%2C amount%5D %3D addedPlayer.tat.split("%3A")%3B%0A if (amount %3D%3D "swap") Logs.addAlert(player%2C %60just swapped %24%7Bdocument.querySelector("%5Bsrc*%3D'assets%2Fcandy'%5D") %3F "candy" %3A "gold"%7D with %24%7Btat%7D%60)%3B%0A else Logs.addAlert(player%2C %60just took %24%7BLogs.formatNumber(parseInt(amount))%7D %24%7Bdocument.querySelector("%5Bsrc*%3D'assets%2Fcandy'%5D") %3F "candy" %3A "gold"%7D from %24%7Btat%7D%60)%3B%0A %7D%0A break%3B%0A case "toy"%3A%0A for (const player in added) %7B%0A if ((addedPlayer %3D added%5Bplayer%5D).s) Logs.addAlert(player%2C %60sabotaged with "%24%7BLogs.gamemodeData.toy.sabotages%5BaddedPlayer.s%5D%7D"%60)%3B%0A else if (addedPlayer.tat) %7B%0A const %5Btat%2C amount%5D %3D addedPlayer.tat.split("%3A")%3B%0A if (amount %3D%3D "swap") Logs.addAlert(player%2C %60just swapped toys with %24%7Btat%7D%60)%3B%0A else Logs.addAlert(player%2C %60just took %24%7BLogs.formatNumber(parseInt(amount))%7D toy%24%7Bamount %3D%3D 1 %3F "" %3A "s"%7D from %24%7Btat%7D%60)%3B%0A %7D%0A %7D%0A break%3B%0A case "hack"%3A%0A for (const player in added) %7B%0A if (!(addedPlayer %3D added%5Bplayer%5D).tat) continue%3B%0A const %5Btat%2C amount%5D %3D addedPlayer.tat.split("%3A")%3B%0A Logs.addAlert(player%2C %60just took %24%7BLogs.formatNumber(parseInt(amount))%7D crypto from %24%7Btat%7D%60)%3B%0A %7D%0A break%3B%0A case "pirate"%3A%0A for (const player in added) %7B%0A if (!(addedPlayer %3D added%5Bplayer%5D).tat) continue%3B%0A const %5Btat%2C amount%5D %3D addedPlayer.tat.split("%3A")%3B%0A Logs.addAlert(player%2C %60just took %24%7BLogs.formatNumber(parseInt(amount))%7D doubloons from %24%7Btat%7D%60)%3B%0A %7D%0A break%3B%0A case "defense2"%3A%0A for (const player in added) %7B%0A if (!(addedPlayer %3D added%5Bplayer%5D).r) continue%3B%0A Logs.addAlert(player%2C %60just completed Round %24%7BaddedPlayer.r%7D!%60)%3B%0A %7D%0A break%3B%0A case "fishing"%3A%0A for (const player in added) %7B%0A if ((addedPlayer %3D added%5Bplayer%5D).f %3D%3D "Frenzy") Logs.addAlert(player%2C %60just started a frenzy%60)%3B%0A else if (addedPlayer.s) Logs.addAlert(player%2C %60just sent a %24%7BaddedPlayer.f%7D distraction%60)%3B%0A %7D%0A break%3B%0A case "dino"%3A%0A for (const player in added) %7B%0A if (!(addedPlayer %3D added%5Bplayer%5D).tat) continue%3B%0A const %5Btat%2C caught%5D %3D addedPlayer.tat.split("%3A")%3B%0A if (caught %3D%3D "true") Logs.addAlert(player%2C %60just caught %24%7Btat%7D CHEATING!%60)%3B%0A else Logs.addAlert(player%2C %60investigated %24%7Btat%7D%60)%3B%0A %7D%0A break%3B%0A case "cafe"%3A%0A for (const player in added) %7B%0A if (!(addedPlayer %3D added%5Bplayer%5D).up) continue%3B%0A const %5Bupgrade%2C level%5D %3D addedPlayer.up.split("%3A")%3B%0A if (level) Logs.addAlert(player%2C %60upgraded %24%7Bupgrade%7D to level %24%7Blevel%7D%60)%3B%0A %7D%0A break%3B%0A case "factory"%3A%0A for (const player in added) %7B%0A if ((addedPlayer %3D added%5Bplayer%5D).g) Logs.addAlert(player%2C %60activated the %24%7BLogs.gamemodeData.factory.glitches%5BaddedPlayer.g%5D%7D glitch!%60)%3B%0A else if (addedPlayer.s) %7B%0A const %5Bamount%2C synergy%5D %3D addedPlayer.s.split("-")%3B%0A Logs.addAlert(player%2C %60has a %24%7Bamount%7D %24%7Bsynergy%7D synergy!%60)%3B%0A %7D else if (addedPlayer.t) Logs.addAlert(player%2C %60now has 10 Blooks!%60)%3B%0A %7D%0A break%3B%0A %7D%0A %7D catch (e) %7B%0A console.error(e)%3B%0A Logs.addLog("Error adding an alert"%2C "red")%3B%0A %7D%0A %7D)%3B%0A return true%3B%0A %7D catch (e) %7B%0A console.warn(e)%3B%0A return false%3B%0A %7D%0A %7D%2C%0A diffObjects(obj1%2C obj2) %7B%0A const changed %3D %7B%7D%3B%0A %0A for (const key in obj1) %7B%0A if (!(key in obj2)) continue%3B%0A if (typeof obj1%5Bkey%5D %3D%3D%3D "object" %26%26 typeof obj2%5Bkey%5D %3D%3D%3D "object") %7B%0A const recChanged %3D Logs.diffObjects(obj1%5Bkey%5D%2C obj2%5Bkey%5D)%3B%0A if (recChanged %26%26 Object.keys(recChanged).length !%3D%3D 0) changed%5Bkey%5D %3D recChanged%3B%0A %7D else if (JSON.stringify(obj1%5Bkey%5D) !%3D%3D JSON.stringify(obj2%5Bkey%5D)) changed%5Bkey%5D %3D obj2%5Bkey%5D%3B%0A %7D%0A %0A for (const key in obj2) if (!(key in obj1)) changed%5Bkey%5D %3D obj2%5Bkey%5D%3B%0A %0A if (Object.keys(changed).length %3D%3D 0) return null%3B%0A return changed%3B%0A %7D%2C%0A getGamemode() %7B%0A const gamemode %3D getStateNode().props%3F.client%3F.type%3B%0A if (typeof gamemode %3D%3D "string") return gamemode.toLowerCase()%3B%0A switch (window.location.pathname) %7B%0A case "%2Fplay%2Fgold"%3A%0A case "%2Fplay%2Fgold%2Ffinal"%3A%0A case "%2Fgold%2Fplay%2Flanding"%3A%0A return "gold"%3B%0A case "%2Fplay%2Fhack"%3A%0A case "%2Fplay%2Fhack%2Ffinal"%3A%0A case "%2Fhack%2Fplay%2Flanding"%3A%0A return "hack"%3B%0A case "%2Fplay%2Ffishing"%3A%0A case "%2Fplay%2Ffishing%2Ffinal"%3A%0A case "%2Ffish%2Fplay%2Flanding"%3A%0A return "fish"%3B%0A case "%2Fplay%2Fpirate"%3A%0A case "%2Fplay%2Fpirate%2Ffinal"%3A%0A case "%2Fpirate%2Fplay%2Flanding"%3A%0A return "pirate"%3B%0A case "%2Fplay%2Fdefense2%2Fload"%3A%0A case "%2Fplay%2Fdefense2"%3A%0A case "%2Fplay%2Fdefense2%2Ffinal"%3A%0A case "%2Fdefense2%2Fplay%2Flanding"%3A%0A return "defense2"%3B%0A case "%2Fplay%2Fbrawl%2Fstart"%3A%0A case "%2Fplay%2Fbrawl%2Fsettings"%3A%0A case "%2Fplay%2Fbrawl"%3A%0A case "%2Fplay%2Fbrawl%2Ffinal"%3A%0A case "%2Fbrawl%2Fplay%2Flanding"%3A%0A return "brawl"%3B%0A case "%2Fplay%2Fdino"%3A%0A case "%2Fplay%2Fdino%2Ffinal"%3A%0A case "%2Fdino%2Fplay%2Flanding"%3A%0A return "dino"%3B%0A case "%2Fplay%2Fbattle-royale%2Fmatch%2Fpreview"%3A%0A case "%2Fplay%2Fbattle-royale%2Fquestion"%3A%0A case "%2Fplay%2Fbattle-royale%2Fanswer%2Fsent"%3A%0A case "%2Fplay%2Fbattle-royale%2Fanswer%2Fresult"%3A%0A case "%2Fplay%2Fbattle-royale%2Fmatch%2Fresult"%3A%0A case "%2Fplay%2Fbattle-royale%2Ffinal"%3A%0A case "%2Froyale%2Fplay%2Flanding"%3A%0A return "royale"%3B%0A case "%2Fdefense%2Fload"%3A%0A case "%2Fdefense"%3A%0A case "%2Fdefense%2Ffinal"%3A%0A case "%2Fdefense%2Fplay%2Flanding"%3A%0A return "defense"%3B%0A case "%2Fcafe%2Fload"%3A%0A case "%2Fcafe"%3A%0A case "%2Fcafe%2Fshop"%3A%0A case "%2Fcafe%2Ffinal"%3A%0A case "%2Fcafe%2Fplay%2Flanding"%3A%0A return "cafe"%3B%0A case "%2Fplay%2Ffactory"%3A%0A case "%2Fplay%2Ffactory%2Fsettings"%3A%0A case "%2Fplay%2Ffactory%2Fstart"%3A%0A case "%2Fplay%2Ffactory%2Ffinal"%3A%0A case "%2Ffactory%2Fplay%2Flanding"%3A%0A return "factory"%3B%0A case "%2Fplay%2Fracing"%3A%0A case "%2Fplay%2Fracing%2Ffinal"%3A%0A case "%2Fracing%2Fplay%2Flanding"%3A%0A return "racing"%3B%0A case "%2Fplay%2Frush"%3A%0A case "%2Fplay%2Frush%2Ffinal"%3A%0A case "%2Frush%2Fplay%2Flanding"%3A%0A return "rush"%3B%0A case "%2Fplay%2Fclassic%2Fget-ready"%3A%0A case "%2Fplay%2Fclassic%2Fquestion"%3A%0A case "%2Fplay%2Fclassic%2Fanswer%2Fsent"%3A%0A case "%2Fplay%2Fclassic%2Fanswer%2Fresult"%3A%0A case "%2Fplay%2Fclassic%2Fstandings"%3A%0A case "%2Fplay%2Fclassic%2Ffinal"%3A%0A case "%2Fclassic%2Fplay%2Flanding"%3A%0A return "classic"%3B%0A case "%2Ftower%2Fload"%3A%0A case "%2Ftower%2Fstart"%3A%0A case "%2Ftower%2Fmap"%3A%0A case "%2Ftower%2Fbattle"%3A%0A case "%2Ftower%2Frest"%3A%0A case "%2Ftower%2Frisk"%3A%0A case "%2Ftower%2Fshop"%3A%0A case "%2Ftower%2Fvictory"%3A%0A case "%2Ftower%2Ffinal"%3A%0A case "%2Ftower%2Fplay%2Flanding"%3A%0A return "tower"%3B%0A case "%2Fkingdom%2Fstart"%3A%0A case "%2Fkingdom"%3A%0A case "%2Fkingdom%2Ffinal"%3A%0A case "%2Fkingdom%2Fplay%2Flanding"%3A%0A return "kingdom"%3B%0A case "%2Fplay%2Ftoy"%3A%0A case "%2Fplay%2Ftoy%2Ffinal"%3A%0A case "%2Ftoy%2Fplay%2Flanding"%3A%0A return "toy"%3B%0A %7D%0A return ""%3B%0A %7D%2C%0A sanitizer%3A document.createElement("div")%2C%0A sanitizeText(text) %7B%0A Logs.sanitizer.textContent %3D text%3B%0A return Logs.sanitizer.innerHTML%3B%0A %7D%2C%0A addAlert(name%2C message) %7B%0A const element %3D document.createElement("li")%3B%0A element.className %3D classes.logMessage%3B%0A const span %3D document.createElement("span")%3B%0A Logs.lastLog.setTime(Date.now())%3B%0A span.innerHTML %3D %60<strong>%24%7BLogs.sanitizeText(name)%7D<%2Fstrong>%26nbsp%3B%24%7BLogs.sanitizeText(message)%7D<span style%3D"opacity%3A 50%25%3B flex%3A 1%3B text-align%3A right%3B">%24%7BparseTime(Logs.lastLog)%7D<%2Fspan>%60%3B%0A let blook%3B%0A if ((blook %3D Logs.blookData%3F.%5BLogs.data%5Bname%5D.b%5D)) %7B%0A const img %3D document.createElement("img")%3B%0A img.src %3D blook.url%3B%0A span.prepend(img)%3B%0A %7D%0A element.append(span)%3B%0A logMessages.prepend(element)%3B%0A %7D%2C%0A lastLog%3A new Date()%2C%0A addLog(message%2C color) %7B%0A const element %3D document.createElement("li")%3B%0A element.className %3D classes.logMessage%3B%0A const span %3D document.createElement("span")%3B%0A if (color) span.style.color %3D color%3B%0A span.style.display %3D "flex"%3B%0A Logs.lastLog.setTime(Date.now())%3B%0A span.innerHTML %3D "%5BLOG%5D " %2B Logs.sanitizeText(message) %2B %60<span style%3D"opacity%3A 50%25%3B flex%3A 1%3B text-align%3A right%3B">%24%7BparseTime(Logs.lastLog)%7D<%2Fspan>%60%3B%0A element.append(span)%3B%0A logMessages.prepend(element)%3B%0A %7D%2C%0A interval%3A null%2C%0A %7D%3B%0A %0A if (window.location.host !%3D "dashboard.blooket.com" %26%26 window.location.host !%3D "blooket.com") Logs.interval %3D setInterval(() %3D> Logs.connect().then((connected) %3D> connected %26%26 clearInterval(Logs.interval))%2C 5000)%3B%0A %0A clearLogsButton.onclick %3D () %3D> %7B%0A clearLogsButton.animate(%5B%7B rotate%3A "0deg" %7D%2C %7B rotate%3A "360deg" %7D%5D%2C %7B duration%3A 750%2C easing%3A "ease" %7D)%3B%0A logMessages.innerHTML %3D ""%3B%0A Logs.addLog("Cleared Logs")%3B%0A %7D%3B%0A %0A const cheats %3D %7B%0A global%3A %7B%0A img%3A "https%3A%2F%2Fac.blooket.com%2Fdashclassic%2Fassets%2FBlooket-M6jYh_hk.png"%2C%0A name%3A "Global"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Auto Answer"%2C%0A description%3A "Toggles auto answer on"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A const stateNode %3D getStateNode()%3B%0A const Question %3D stateNode.state.question %7C%7C stateNode.props.client.question%3B%0A if (stateNode.state.question.qType !%3D "typing") %7B%0A if (stateNode.state.stage !%3D "feedback" %26%26 !stateNode.state.feedback) %7B%0A let ind%3B%0A for (ind %3D 0%3B ind < Question.answers.length%3B ind%2B%2B) %7B%0A let found %3D false%3B%0A for (let j %3D 0%3B j < Question.correctAnswers.length%3B j%2B%2B)%0A if (Question.answers%5Bind%5D %3D%3D Question.correctAnswers%5Bj%5D) %7B%0A found %3D true%3B%0A break%3B%0A %7D%0A if (found) break%3B%0A %7D%0A document.querySelectorAll("%5Bclass*%3D'answerContainer'%5D")%5Bind%5D.click()%3B%0A %7D else document.querySelector("%5Bclass*%3D'feedback'%5D%2C %5Bid*%3D'feedback'%5D").firstChild.click()%3B%0A %7D else Object.values(document.querySelector("%5Bclass*%3D'typingAnswerWrapper'%5D"))%5B1%5D.children._owner.stateNode.sendAnswer(Question.answers%5B0%5D)%3B%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Highlight Answers"%2C%0A description%3A "Toggles highlight answers on"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A const stateNode %3D getStateNode()%3B%0A const Question %3D stateNode.state.question %7C%7C stateNode.props.client.question%3B%0A let ind %3D 0%3B%0A while (ind < Question.answers.length) %7B%0A let found %3D false%3B%0A for (let j %3D 0%3B j < Question.correctAnswers.length%3B j%2B%2B)%0A if (Question.answers%5Bind%5D %3D%3D Question.correctAnswers%5Bj%5D) %7B%0A found %3D true%3B%0A break%3B%0A %7D%0A ind%2B%2B%3B%0A document.querySelector("%5Bclass*%3D'answersHolder'%5D %3Anth-child(" %2B ind %2B ") > div").style.backgroundColor %3D found %3F "rgb(0%2C 207%2C 119)" %3A "rgb(189%2C 15%2C 38)"%3B%0A %7D%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Subtle Highlight Answers"%2C%0A description%3A "Toggles subtle highlight answers on"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A const stateNode %3D getStateNode()%3B%0A const Question %3D stateNode.state.question %7C%7C stateNode.props.client.question%3B%0A let ind %3D 0%3B%0A while (ind < Question.answers.length) %7B%0A let j %3D 0%3B%0A let found %3D false%3B%0A while (j < Question.correctAnswers.length) %7B%0A if (Question.answers%5Bind%5D %3D%3D Question.correctAnswers%5Bj%5D) %7B%0A found %3D true%3B%0A break%3B%0A %7D%0A j%2B%2B%3B%0A %7D%0A ind%2B%2B%3B%0A if (found) document.querySelector("%5Bclass*%3D'answersHolder'%5D %3Anth-child(" %2B ind %2B ") > div").style.boxShadow %3D "unset"%3B%0A %7D%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Percent Auto Answer"%2C%0A description%3A "Answers questions correctly or incorrectly depending on the goal grade given (Disable and re-enable to update goal)"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Target Grade"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function (target) %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A const stateNode %3D getStateNode()%3B%0A this.data %3D setInterval(%0A (TARGET) %3D> %7B%0A try %7B%0A const question %3D stateNode.state.question %7C%7C stateNode.props.client.question%3B%0A if (stateNode.state.stage %3D%3D "feedback" %7C%7C stateNode.state.feedback) return document.querySelector('%5Bclass*%3D"feedback"%5D%2C %5Bid*%3D"feedback"%5D')%3F.firstChild%3F.click%3F.()%3B%0A else if (document.querySelector("%5Bclass*%3D'answerContainer'%5D") %7C%7C document.querySelector("%5Bclass*%3D'typingAnswerWrapper'%5D")) %7B%0A let correct %3D 0%2C%0A total %3D 0%3B%0A for (let corrects in stateNode.corrects) correct %2B%3D stateNode.corrects%5Bcorrects%5D%3B%0A for (let incorrect in stateNode.incorrects) total %2B%3D stateNode.incorrects%5Bincorrect%5D%3B%0A total %2B%3D correct%3B%0A const yes %3D total %3D%3D 0 %7C%7C Math.abs(correct %2F (total %2B 1) - TARGET) >%3D Math.abs((correct %2B 1) %2F (total %2B 1) - TARGET)%3B%0A if (stateNode.state.question.qType !%3D "typing") %7B%0A const answerContainers %3D document.querySelectorAll("%5Bclass*%3D'answerContainer'%5D")%3B%0A for (let i %3D 0%3B i < answerContainers.length%3B i%2B%2B) %7B%0A const contains %3D question.correctAnswers.includes(question.answers%5Bi%5D)%3B%0A if (yes %3D%3D contains) return answerContainers%5Bi%5D%3F.click%3F.()%3B%0A %7D%0A answerContainers%5B0%5D.click()%3B%0A %7D else Object.values(document.querySelector("%5Bclass*%3D'typingAnswerWrapper'%5D"))%5B1%5D.children._owner.stateNode.sendAnswer(yes %3F question.answers%5B0%5D %3A Math.random().toString(36).substring(2))%3B%0A %7D%0A %7D catch %7B%7D%0A %7D%2C%0A 100%2C%0A (target %3F%3F 100) %2F 100%0A )%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Auto Answer"%2C%0A description%3A "Click the correct answer for you"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A const Question %3D stateNode.state.question %7C%7C stateNode.props.client.question%3B%0A if (stateNode.state.question.qType !%3D "typing") %7B%0A if (stateNode.state.stage !%3D "feedback" %26%26 !stateNode.state.feedback) %7B%0A let ind%3B%0A for (ind %3D 0%3B ind < Question.answers.length%3B ind%2B%2B) %7B%0A let found %3D false%3B%0A for (let j %3D 0%3B j < Question.correctAnswers.length%3B j%2B%2B)%0A if (Question.answers%5Bind%5D %3D%3D Question.correctAnswers%5Bj%5D) %7B%0A found %3D true%3B%0A break%3B%0A %7D%0A if (found) break%3B%0A %7D%0A document.querySelectorAll("%5Bclass*%3D'answerContainer'%5D")%5Bind%5D.click()%3B%0A %7D else document.querySelector("%5Bclass*%3D'feedback'%5D%2C %5Bid*%3D'feedback'%5D").firstChild.click()%3B%0A %7D else Object.values(document.querySelector("%5Bclass*%3D'typingAnswerWrapper'%5D"))%5B1%5D.children._owner.stateNode.sendAnswer(Question.answers%5B0%5D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Highlight Answers"%2C%0A description%3A "Colors answers to be red or green highlighting the correct ones"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A const Question %3D stateNode.state.question %7C%7C stateNode.props.client.question%3B%0A let ind %3D 0%3B%0A while (ind < Question.answers.length) %7B%0A let found %3D false%3B%0A for (let j %3D 0%3B j < Question.correctAnswers.length%3B j%2B%2B)%0A if (Question.answers%5Bind%5D %3D%3D Question.correctAnswers%5Bj%5D) %7B%0A found %3D true%3B%0A break%3B%0A %7D%0A ind%2B%2B%3B%0A document.querySelector("%5Bclass*%3D'answersHolder'%5D %3Anth-child(" %2B ind %2B ") > div").style.backgroundColor %3D found %3F "rgb(0%2C 207%2C 119)" %3A "rgb(189%2C 15%2C 38)"%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Spam Buy Blooks"%2C%0A description%3A "Opens a box an amount of times"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Box"%2C%0A type%3A "options"%2C%0A options%3A () %3D>%0A Array.from(document.querySelectorAll("%5Bclass*%3D'packsWrapper'%5D > div")).reduce((a%2C b) %3D> %7B%0A b.querySelector("%5Bclass*%3D'blookContainer'%5D > img") %7C%7C a.push(b.querySelector("%5Bclass*%3D'packImgContainer'%5D > img").alt)%3B%0A return a%3B%0A %7D%2C %5B%5D)%2C%0A %7D%2C%0A %7B%0A name%3A "Amount"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %7B%0A name%3A "Show Unlocks"%2C%0A type%3A "options"%2C%0A options%3A %5B%0A %7B%0A name%3A "Show Unlocks"%2C%0A value%3A true%2C%0A %7D%2C%0A %7B%0A name%3A "Don't Show Unlocks"%2C%0A value%3A false%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A %5D%2C%0A run%3A async function (box%2C amountToOpen%2C alertBlooks) %7B%0A if (window.location.pathname.startsWith("%2Fmarket")) %7B%0A const stateNode %3D getStateNode()%3B%0A const prices %3D Array.prototype.reduce.call(%0A document.querySelectorAll("%5Bclass*%3D'packsWrapper'%5D > div")%2C%0A (a%2C b) %3D> %7B%0A b.querySelector("%5Bclass*%3D'blookContainer'%5D > img") %7C%7C (a%5Bb.querySelector("%5Bclass*%3D'packImgContainer'%5D > img").alt%5D %3D parseInt(b.querySelector("%5Bclass*%3D'packBottom'%5D").textContent))%3B%0A return a%3B%0A %7D%2C%0A %7B%7D%0A )%3B%0A box %3D box%0A .split(" ")%0A .map((str) %3D> str.charAt(0).toUpperCase() %2B str.slice(1).toLowerCase())%0A .join(" ")%3B%0A const cost %3D prices%5Bbox%5D%3B%0A if (!cost) return alert("I couldn't find that box!")%3B%0A %0A const canOpen %3D Math.floor(stateNode.state.tokens %2F cost)%3B%0A if (canOpen <%3D 0) return alert("You do not have enough tokens!")%3B%0A const amount %3D Math.min(canOpen%2C amountToOpen %7C%7C 0)%3B%0A %0A const blooks %3D %7B%7D%2C%0A now %3D Date.now()%3B%0A %0A for (let i %3D 0%3B i < amount%3B i%2B%2B) %7B%0A await stateNode.buyPack(true%2C box)%3B%0A %0A blooks%5BstateNode.state.unlockedBlook%5D %7C%7C%3D 0%3B%0A blooks%5BstateNode.state.unlockedBlook%5D%2B%2B%3B%0A %0A stateNode.startOpening()%3B%0A clearTimeout(stateNode.openTimeout)%3B%0A const rarity %3D stateNode.state.purchasedBlookRarity%3B%0A %0A stateNode.setState(%7B canOpen%3A true%2C currentPack%3A ""%2C opening%3A alertBlooks%2C doneOpening%3A alertBlooks%2C openPack%3A alertBlooks %7D)%3B%0A clearTimeout(stateNode.canOpenTimeout)%3B%0A if (rarity %3D%3D "Chroma") break%3B%0A %7D%0A await new Promise((r) %3D> setTimeout(r))%3B%0A alert(%0A %60(%24%7BDate.now() - now%7Dms) Results%3A%5Cn%24%7BObject.entries(blooks)%0A .map((%5Bblook%2C amount%5D) %3D> %60 %24%7Bblook%7D %24%7Bamount%7D%60)%0A .join(%60%5Cn%60)%7D%60%0A )%3B%0A %7D else alert("This can only be ran in the Market page.")%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Host Any Gamemode"%2C%0A description%3A "Change the selected gamemode on the host settings page"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Gamemode"%2C%0A type%3A "options"%2C%0A options%3A %5B"Racing"%2C "Classic"%2C "Factory"%2C "Cafe"%2C "Defense2"%2C "Defense"%2C "Royale"%2C "Gold"%2C "Candy"%2C "Brawl"%2C "Hack"%2C "Pirate"%2C "Fish"%2C "Dino"%2C "Toy"%2C "Rush"%5D%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (type) %7B%0A if (location.pathname !%3D "%2Fhost%2Fsettings") return alert("Run this script on the host settings page")%3B%0A getStateNode().setState(%7B settings%3A %7B type %7D %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Change Blook Ingame"%2C%0A description%3A "Changes your blook"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Blook (case sensitive)"%2C%0A type%3A "string"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (blook) %7B%0A let %7B props %7D %3D getStateNode()%3B%0A props.liveGameController.setVal(%7B path%3A %60c%2F%24%7Bprops.client.name%7D%2Fb%60%2C val%3A (props.client.blook %3D blook) %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Get Daily Rewards"%2C%0A description%3A "Gets max daily tokens and xp"%2C%0A run%3A async function () %7B%0A if (!window.location.href.includes("play.blooket.com")) alert("This cheat only works on play.blooket.com%2C opening a new tab.")%2C window.open("https%3A%2F%2Fplay.blooket.com%2F")%3B%0A else %7B%0A const gameId %3D %5B%0A "60101da869e8c70013913b59"%2C%0A "625db660c6842334835cb4c6"%2C%0A "60268f8861bd520016eae038"%2C%0A "611e6c804abdf900668699e3"%2C%0A "60ba5ff6077eb600221b7145"%2C%0A "642467af9b704783215c1f1b"%2C%0A "605bd360e35779001bf57c5e"%2C%0A "6234cc7add097ff1c9cff3bd"%2C%0A "600b1491d42a140004d5215a"%2C%0A "5db75fa3f1fa190017b61c0c"%2C%0A "5fac96fe2ca0da00042b018f"%2C%0A "600b14d8d42a140004d52165"%2C%0A "5f88953cdb209e00046522c7"%2C%0A "600b153ad42a140004d52172"%2C%0A "5fe260e72a505b00040e2a11"%2C%0A "5fe3d085a529560004cd3076"%2C%0A "5f5fc017aee59500041a1456"%2C%0A "608b0a5863c4f2001eed43f4"%2C%0A "5fad491512c8620004918ace"%2C%0A "5fc91a9b4ea2e200046bd49a"%2C%0A "5c5d06a7deebc70017245da7"%2C%0A "5ff767051b68750004a6fd21"%2C%0A "5fdcacc85d465a0004b021b9"%2C%0A "5fb7eea20bd44300045ba495"%2C%0A %5D%5BMath.floor(Math.random() * 24)%5D%3B%0A const rand %3D (l%2C h) %3D> Math.floor(Math.random() * (h - l %2B 1)) %2B l%3B%0A const %7B t %7D %3D await fetch("https%3A%2F%2Fplay.blooket.com%2Fapi%2Fplayersessions%2Fsolo"%2C %7B%0A body%3A JSON.stringify(%7B gameMode%3A "Factory"%2C questionSetId%3A gameId %7D)%2C%0A method%3A "POST"%2C%0A credentials%3A "include"%2C%0A %7D)%0A .then((x) %3D> x.json())%0A .catch(() %3D> alert("There was an error creating a solo game."))%3B%0A await fetch("https%3A%2F%2Fplay.blooket.com%2Fapi%2Fplayersessions%2Flandings"%2C %7B%0A body%3A JSON.stringify(%7B t %7D)%2C%0A method%3A "POST"%2C%0A credentials%3A "include"%2C%0A %7D).catch(() %3D> alert("There was an error when landing."))%3B%0A await fetch("https%3A%2F%2Fplay.blooket.com%2Fapi%2Fplayersessions%2Fquestions%3Ft%3D" %2B t%2C %7B credentials%3A "include" %7D)%3B%0A await fetch("https%3A%2F%2Fplay.blooket.com%2Fapi%2Fgamequestionsets%3FgameId%3D" %2B gameId%2C %7B credentials%3A "include" %7D)%3B%0A await fetch("https%3A%2F%2Fplay.blooket.com%2Fapi%2Fusers%2Ffactorystats"%2C %7B%0A body%3A JSON.stringify(%7B t%2C place%3A 1%2C cash%3A rand(10000000%2C 100000000)%2C playersDefeated%3A 0%2C correctAnswers%3A rand(500%2C 2000)%2C upgrades%3A rand(250%2C 750)%2C blookUsed%3A "Chick"%2C nameUsed%3A "You"%2C mode%3A "Time-Solo" %7D)%2C%0A method%3A "PUT"%2C%0A credentials%3A "include"%2C%0A %7D).catch(() %3D> alert("There was an error when spoofing stats."))%3B%0A await fetch("https%3A%2F%2Fplay.blooket.com%2Fapi%2Fusers%2Fadd-rewards"%2C %7B%0A body%3A JSON.stringify(%7B t%2C addedTokens%3A 500%2C addedXp%3A 300 %7D)%2C%0A method%3A "PUT"%2C%0A credentials%3A "include"%2C%0A %7D)%0A .then((x) %3D> x.json())%0A .then((%7B dailyReward %7D) %3D> alert(%60Added max tokens and xp%2C and got %24%7BdailyReward%7D daily wheel tokens!%60))%0A .catch(() %3D> alert("There was an error when adding rewards."))%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Use Any Blook"%2C%0A description%3A "Allows you to play as any blook"%2C%0A data%3A null%2C%0A getBlooks(isLobby%2C stateNode) %7B%0A if (this.data%3F.Black) return%3B%0A isLobby %3D isLobby %3F "keys" %3A "entries"%3B%0A const old %3D Object%5BisLobby%5D%3B%0A const scope %3D this%3B%0A Object%5BisLobby%5D %3D function (obj) %7B%0A if (!obj.Chick) return old.call(this%2C obj)%3B%0A scope.data %3D obj%3B%0A return (Object%5BisLobby%5D %3D old).call(this%2C obj)%3B%0A %7D%3B%0A stateNode.render()%3B%0A %7D%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A const lobby %3D window.location.pathname.startsWith("%2Fplay%2Flobby")%2C%0A blooks %3D !lobby %26%26 window.location.pathname.startsWith("%2Fblooks")%3B%0A if (!blooks %26%26 !lobby) return alert("This only works in lobbies or the dashboard blooks page.")%3B%0A this.getBlooks(lobby%2C stateNode)%3B%0A if (lobby) return stateNode.setState(%7B unlocks%3A Object.keys(this.data) %7D)%3B%0A stateNode.setState(%7B%0A blookData%3A Object.keys(this.data).reduce((a%2C b) %3D> ((a%5Bb%5D %3D stateNode.state.blookData%5Bb%5D %7C%7C 1)%2C a)%2C %7B%7D)%2C%0A allSets%3A Object.values(this.data).reduce((a%2C b) %3D> (b.set %26%26 a.includes(b.set) %3F a %3A a.concat(b.set))%2C %5B%5D)%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Every Answer Correct"%2C%0A description%3A "Sets every answer to be correct"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A for (let i %3D 0%3B i < stateNode.freeQuestions.length%3B i%2B%2B) %7B%0A stateNode.freeQuestions%5Bi%5D.correctAnswers %3D stateNode.freeQuestions%5Bi%5D.answers%3B%0A stateNode.questions%5Bi%5D.correctAnswers %3D stateNode.questions%5Bi%5D.answers%3B%0A stateNode.props.client.questions%5Bi%5D.correctAnswers %3D stateNode.questions%5Bi%5D.answers%3B%0A %7D%0A try %7B%0A stateNode.forceUpdate()%3B%0A %7D catch %7B%7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Subtle Highlight Answers"%2C%0A description%3A "Removes the shadow from correct answers"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A const Question %3D stateNode.state.question %7C%7C stateNode.props.client.question%3B%0A let ind %3D 0%3B%0A while (ind < Question.answers.length) %7B%0A let j %3D 0%3B%0A let found %3D false%3B%0A while (j < Question.correctAnswers.length) %7B%0A if (Question.answers%5Bind%5D %3D%3D Question.correctAnswers%5Bj%5D) %7B%0A found %3D true%3B%0A break%3B%0A %7D%0A j%2B%2B%3B%0A %7D%0A ind%2B%2B%3B%0A if (found) document.querySelector("%5Bclass*%3D'answersHolder'%5D %3Anth-child(" %2B ind %2B ") > div").style.boxShadow %3D "unset"%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Random Name"%2C%0A description%3A "Allows you to put a custom name"%2C%0A run%3A function () %7B%0A getStateNode().setState(%7B isRandom%3A false%2C client%3A %7B name%3A "" %7D %7D)%3B%0A document.querySelector('%5Bclass*%3D"nameInput"%5D')%3F.focus%3F.()%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Sell Duplicate Blooks"%2C%0A description%3A "Sell all duplicate blooks leaving you with 1 each"%2C%0A run%3A async function () %7B%0A if (window.location.pathname.startsWith("%2Fblooks")) %7B%0A if (confirm(%60Are you sure you want to sell your dupes%3F (Legendaries and rarer will not be sold)%60)) %7B%0A let stateNode %3D getStateNode()%3B%0A let now %3D Date.now()%2C%0A results %3D ""%3B%0A for (const blook in stateNode.state.blookData)%0A if (stateNode.state.blookData%5Bblook%5D > 1) %7B%0A stateNode.setState(%7B blook%2C numToSell%3A stateNode.state.blookData%5Bblook%5D - 1 %7D)%3B%0A if (!%5B"Uncommon"%2C "Rare"%2C "Epic"%5D.includes(document.querySelector("%5Bclass*%3D'highlightedRarity'%5D").innerText.trim())) continue%3B%0A results %2B%3D %60 %24%7Bblook%7D %24%7BstateNode.state.blookData%5Bblook%5D - 1%7D%5Cn%60%3B%0A await stateNode.sellBlook(%7B preventDefault%3A () %3D> %7B%7D %7D%2C true)%3B%0A %7D%0A alert(%60(%24%7BDate.now() - now%7Dms) Results%3A%5Cn%24%7Bresults.trim()%7D%60)%3B%0A %7D%0A %7D else alert("This can only be ran in the Blooks page.")%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A gold%3A %7B%0A img%3A new Date().getMonth() %3D%3D 9 %3F "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FCandy_Quest_Logo.png" %3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FGold_Quest_Logo_Resized.png"%2C%0A name%3A "Gold Quest"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Always Triple"%2C%0A description%3A "Always get triple gold"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A %7B type%3A "multiply"%2C val%3A 3%2C text%3A "Triple Gold!"%2C blook%3A "Unicorn" %7D%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode._choosePrize %7C%7C%3D stateNode.choosePrize%3B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A stateNode.choosePrize %3D (i) %3D> %7B%0A stateNode.state.choices%5Bi%5D %3D this.data%3B%0A stateNode._choosePrize(i)%3B%0A %7D%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A if (stateNode._choosePrize) stateNode.choosePrize %3D stateNode._choosePrize%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Auto Choose"%2C%0A description%3A "Automatically picks the option that would give you the most gold"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(async () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A if (stateNode.state.stage %3D%3D "prize") %7B%0A stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> %7B%0A try %7B%0A if (players %3D%3D null) return%3B%0A players %3D Object.entries(players)%3B%0A let most %3D 0%2C%0A max %3D 0%2C%0A index %3D -1%3B%0A for (let i %3D 0%3B i < players.length%3B i%2B%2B) if (players%5Bi%5D%5B0%5D !%3D stateNode.props.client.name %26%26 players%5Bi%5D%5B1%5D > most) most %3D players%5Bi%5D%5B1%5D%3B%0A for (let i %3D 0%3B i < stateNode.state.choices.length%3B i%2B%2B) %7B%0A const choice %3D stateNode.state.choices%5Bi%5D%3B%0A let value %3D stateNode.state.gold%3B%0A if (choice.type %3D%3D "gold") value %3D stateNode.state.gold %2B choice.val %7C%7C stateNode.state.gold%3B%0A else if (choice.type %3D%3D "multiply" %7C%7C choice.type %3D%3D "divide") value %3D Math.round(stateNode.state.gold * choice.val) %7C%7C stateNode.state.gold%3B%0A else if (choice.type %3D%3D "swap") value %3D most %7C%7C stateNode.state.gold%3B%0A else if (choice.type %3D%3D "take") value %3D stateNode.state.gold %2B most * choice.val %7C%7C stateNode.state.gold%3B%0A if ((value %7C%7C 0) <%3D max) continue%3B%0A max %3D value%3B%0A index %3D i %2B 1%3B%0A %7D%0A document.querySelector("div%5Bclass*%3D'choice" %2B index %2B "'%5D")%3F.click()%3B%0A %7D catch %7B%7D%0A %7D)%3B%0A %7D%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Chest ESP"%2C%0A description%3A "Shows what each chest will give you"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A getStateNode().state.choices.forEach((%7B text %7D%2C index) %3D> %7B%0A let chest %3D document.querySelector(%60div%5Bclass*%3D'choice%24%7Bindex %2B 1%7D'%5D%60)%3B%0A if (!chest %7C%7C chest.querySelector("div")) return%3B%0A let choice %3D document.createElement("div")%3B%0A choice.style.color %3D "white"%3B%0A choice.style.fontFamily %3D "Eczar"%3B%0A choice.style.fontSize %3D "2em"%3B%0A choice.style.display %3D "flex"%3B%0A choice.style.justifyContent %3D "center"%3B%0A choice.style.transform %3D "translateY(200px)"%3B%0A choice.innerText %3D text%3B%0A chest.append(choice)%3B%0A %7D)%3B%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Bad Choices"%2C%0A description%3A "Removes the chance of getting Lose 25%25%2C Lose 50%25%2C and Nothing"%2C%0A run%3A function () %7B%0A let iterator %3D Array.prototype%5BSymbol.iterator%5D%3B%0A Array.prototype%5BSymbol.iterator%5D %3D function* values() %7B%0A if (this%5B0%5D%3F.type %3D%3D "gold") %7B%0A Array.prototype%5BSymbol.iterator%5D %3D iterator%3B%0A console.log(this)%3B%0A for (let i %3D 0%3B i < this.length%3B i%2B%2B) if (this%5Bi%5D.type %3D%3D "divide" %7C%7C this%5Bi%5D.type %3D%3D "nothing") this.splice(i--%2C 1)%3B%0A %7D%0A yield* iterator.apply(this)%3B%0A %7D%3B%0A %0A getStateNode().constructor.prototype.answerNext.call(%7B nextReady%3A true%2C here%3A true%2C state%3A %7B correct%3A true %7D%2C setState() %7B%7D %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Reset Players Gold"%2C%0A description%3A "Sets a player's gold to 0"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Player"%2C%0A type%3A "options"%2C%0A options%3A () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A return stateNode.props.liveGameController._liveApp %3F new Promise((res) %3D> stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> players %26%26 res(Object.keys(players)))) %3A %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (target) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name %2B "%2Ftat"%2C%0A val%3A target %2B "%3Aswap%3A0"%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Gold"%2C%0A description%3A "Sets amount of gold"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Gold"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (gold) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B gold%2C gold2%3A gold %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name %2B "%2Fg"%2C%0A val%3A gold%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Player's Gold"%2C%0A description%3A "Sets another player's gold"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Player"%2C%0A type%3A "options"%2C%0A options%3A () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A return stateNode.props.liveGameController._liveApp %3F new Promise((res) %3D> stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> players %26%26 res(Object.keys(players)))) %3A %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Gold"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (player%2C gold) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name %2B "%2Ftat"%2C%0A val%3A player %2B "%3Aswap%3A" %2B gold%0A %7D)%3B%0A %7D%0A %7D%2C%0A %7B%0A name%3A "Swap Gold"%2C%0A description%3A "Swaps gold with someone"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Player"%2C%0A type%3A "options"%2C%0A options%3A () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A return stateNode.props.liveGameController._liveApp %3F new Promise((res) %3D> stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> players %26%26 res(Object.keys(players)))) %3A %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (player) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> %7B%0A if (!players %7C%7C players%5Bplayer%5D %3D%3D null) return%3B%0A const gold %3D players%5Bplayer%5D.g %7C%7C 0%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name%2C%0A val%3A %7B%0A b%3A stateNode.props.client.blook%2C%0A tat%3A player %2B "%3Aswap%3A" %2B (stateNode.state.gold %7C%7C 0)%2C%0A g%3A gold%2C%0A %7D%2C%0A %7D)%3B%0A stateNode.setState(%7B gold%2C gold2%3A gold %7D)%3B%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A hack%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212882%2FMedia%2Flogos%2FCrypto_Hack_Logo_Resized.png"%2C%0A name%3A "Crypto Hack"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Choice ESP"%2C%0A description%3A "Shows what each choice will give you"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A let chest %3D document.querySelector("%5Bclass*%3DfeedbackContainer%5D")%3B%0A if (chest.children.length <%3D 4) %7B%0A let choice %3D document.createElement("div")%3B%0A choice.style.color %3D "white"%3B%0A choice.style.fontFamily %3D "Inconsolata%2CHelvetica%2Cmonospace%2Csans-serif"%3B%0A choice.style.fontSize %3D "2em"%3B%0A choice.style.display %3D "flex"%3B%0A choice.style.justifyContent %3D "center"%3B%0A choice.style.marginTop %3D "675px"%3B%0A choice.innerText %3D getStateNode().state.choices%5B0%5D.text%3B%0A chest.append(choice)%3B%0A %7D%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Password ESP"%2C%0A description%3A "Highlights the correct password"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A let %7B state %7D %3D getStateNode()%3B%0A if (state.stage %3D%3D "hack")%0A for (const button of document.querySelector("div%5Bclass*%3DbuttonContainer%5D").children) %7B%0A if (button.innerText %3D%3D state.correctPassword) continue%3B%0A button.style.outlineColor %3D "rgba(255%2C 64%2C 64%2C 0.8)"%3B%0A button.style.backgroundColor %3D "rgba(255%2C 64%2C 64%2C 0.8)"%3B%0A button.style.textShadow %3D "0 0 1px %23f33"%3B%0A %7D%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Always Triple"%2C%0A description%3A "Always get triple crypto"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval((state) %3D> getStateNode().setState(state)%2C 25%2C %7B choices%3A %5B%7B type%3A "mult"%2C val%3A 3%2C rate%3A 0.075%2C blook%3A "Brainy Bot"%2C text%3A "Triple Crypto" %7D%5D %7D)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Auto Guess"%2C%0A description%3A "Automatically guess the correct password"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A let %7B state %7D %3D getStateNode()%3B%0A if (state.stage %3D%3D "hack") for (const button of document.querySelector("div%5Bclass*%3DbuttonContainer%5D").children) button.innerText %3D%3D state.correctPassword %26%26 button.click()%3B%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Hack"%2C%0A description%3A "Removes an attacking hack"%2C%0A run%3A function () %7B%0A getStateNode().setState(%7B hack%3A "" %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Crypto"%2C%0A description%3A "Sets crypto"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Amount"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (amount) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B crypto%3A amount%2C crypto2%3A amount %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%2Fcr%60%2C%0A val%3A amount%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Password"%2C%0A description%3A "Sets hacking password"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Custom Password"%2C%0A type%3A "string"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (password) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B password %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%2Fp%60%2C%0A val%3A password%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Steal Player's Crypto"%2C%0A description%3A "Steals all of someone's crypto"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Player"%2C%0A type%3A "options"%2C%0A options%3A () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A return stateNode.props.liveGameController._liveApp %3F new Promise((res) %3D> stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> players %26%26 res(Object.keys(players)))) %3A %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (target) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> %7B%0A let player%3B%0A if (players %26%26 (player %3D Object.entries(players).find((x) %3D> x%5B0%5D.toLowerCase() %3D%3D target.toLowerCase()))) %7B%0A const cr %3D player%5B1%5D.cr%3B%0A stateNode.setState(%7B%0A crypto%3A stateNode.state.crypto %2B cr%2C%0A crypto2%3A stateNode.state.crypto %2B cr%2C%0A %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name%2C%0A val%3A %7B%0A b%3A stateNode.props.client.blook%2C%0A p%3A stateNode.state.password%2C%0A cr%3A stateNode.state.crypto %2B cr%2C%0A tat%3A player%5B0%5D %2B "%3A" %2B cr%2C%0A %7D%2C%0A %7D)%3B%0A %7D%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A fish%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FFishing_Frenzy_Logo_Resized.png"%2C%0A name%3A "Fishing Frenzy"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Remove Distractions"%2C%0A description%3A "Removes distractions"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A getStateNode().setState(%7B party%3A "" %7D)%3B%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Frenzy"%2C%0A description%3A "Sets everyone to frenzy mode"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%60%2C%0A val%3A %7B%0A b%3A stateNode.props.client.blook%2C%0A w%3A stateNode.state.weight%2C%0A f%3A "Frenzy"%2C%0A s%3A true%2C%0A %7D%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Send Distraction"%2C%0A description%3A "Sends a distraction to everyone"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Distraction"%2C%0A type%3A "options"%2C%0A options%3A %5B"Crab"%2C "Jellyfish"%2C "Frog"%2C "Pufferfish"%2C "Octopus"%2C "Narwhal"%2C "Megalodon"%2C "Blobfish"%2C "Baby Shark"%5D%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (f) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.safe %3D true%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%60%2C%0A val%3A %7B%0A b%3A stateNode.props.client.blook%2C%0A w%3A stateNode.state.weight%2C%0A f%2C%0A s%3A true%2C%0A %7D%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Lure"%2C%0A description%3A "Sets fishing lure (range 1 - 5)"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Lure (1 - 5)"%2C%0A type%3A "number"%2C%0A min%3A 1%2C%0A max%3A 5%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (lure) %7B%0A getStateNode().setState(%7B lure%3A Math.max(Math.min(lure - 1%2C 4)%2C 0) %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Weight"%2C%0A description%3A "Sets weight"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Weight"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (weight) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B weight%2C weight2%3A weight %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%60%2C%0A val%3A %7B%0A b%3A stateNode.props.client.blook%2C%0A w%3A weight%2C%0A f%3A %5B"Crab"%2C "Jellyfish"%2C "Frog"%2C "Pufferfish"%2C "Octopus"%2C "Narwhal"%2C "Megalodon"%2C "Blobfish"%2C "Baby Shark"%5D%5BMath.floor(Math.random() * 9)%5D%2C%0A %7D%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A pirate%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1695317816%2FMedia%2Flogos%2FPiratesVoyageLogoSmall.png"%2C%0A name%3A "Pirate's Voyage"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Heist ESP"%2C%0A description%3A "Shows you what's under each chest during a heist"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A imgs%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A const stateNode %3D getStateNode()%3B%0A if (stateNode.state.stage !%3D "heist") return%3B%0A if (this.imgs %3D%3D null) this.imgs %3D Array.prototype.map.call(Array.prototype.slice.call(document.querySelector("%5Bclass*%3DprizesList%5D").children%2C 1%2C 4)%2C (x) %3D> x.querySelector("img").src)%3B%0A const esp %3D Object.values(document.querySelector("%5Bclass*%3Dmodal%5D"))%5B0%5D.return.memoizedState.memoizedState%3B%0A for (const e of document.querySelectorAll("%5Bclass*%3DboxContent%5D > div")) e.remove()%3B%0A const open %3D Object.values(document.querySelector("%5Bclass*%3Dmodal%5D"))%5B0%5D.return.memoizedState.next.next.memoizedState%3B%0A Array.prototype.forEach.call(document.querySelector("%5Bclass*%3DchestsWrapper%5D").children%2C (container%2C i) %3D> %7B%0A const box %3D container.firstChild.firstChild%3B%0A if (open.includes(i)) return (box.style.opacity %3D "")%3B%0A box.style.opacity %3D "0.5"%3B%0A let d %3D document.createElement("div")%3B%0A d.innerHTML %3D "<img src%3D'" %2B this.imgs%5B2 - esp%5Bi%5D%5D %2B "' style%3D'max-width%3A 75%25%3B max-height%3A 75%25'><%2Fimg>"%3B%0A d.className %3D "chestESP"%3B%0A d.style.position %3D "absolute"%3B%0A d.style.inset %3D "0"%3B%0A d.style.display %3D "grid"%3B%0A d.style.placeItems %3D "center"%3B%0A d.style.pointerEvents %3D "none"%3B%0A container.onclick %3D () %3D> %7B%0A d.remove()%3B%0A box.style.opacity %3D ""%3B%0A %7D%3B%0A container.firstChild.prepend(d)%3B%0A %7D)%3B%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Max Levels"%2C%0A description%3A "Maxes out all islands and your boat"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B islandLevels%3A new Array(stateNode.state.islandLevels.length).fill(5) %7D%2C stateNode.updateBoatLevel)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Doubloons"%2C%0A description%3A "Sets Doubloons"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Amount"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (doubloons) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B doubloons %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%2Fd%60%2C%0A val%3A doubloons%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Start Heist"%2C%0A description%3A "Starts a heist on someone"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Player"%2C%0A type%3A "options"%2C%0A options%3A () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A return stateNode.props.liveGameController._liveApp %3F new Promise((res) %3D> stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> players %26%26 res(Object.keys(players)))) %3A %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (target) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.getDatabaseVal("c"%2C function (val) %7B%0A if (val%3F.%5Btarget%5D)%0A stateNode.setState(%7B%0A stage%3A "heist"%2C%0A heistInfo%3A %7B name%3A target%2C blook%3A val%5Btarget%5D.b %7D%2C%0A prizeAmount%3A Math.max(1000%2C val%5Btarget%5D.d %7C%7C 0)%2C%0A %7D)%3B%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Swap Doubloons"%2C%0A description%3A "Swaps Doubloons with someone"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Player"%2C%0A type%3A "options"%2C%0A options%3A () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A return stateNode.props.liveGameController._liveApp %3F new Promise((res) %3D> stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> players %26%26 res(Object.keys(players)))) %3A %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A run%3A async function (target) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.getDatabaseVal("c"%2C function (val) %7B%0A if (!val%3F.%5Btarget%5D) return%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%60%2C%0A val%3A %7B%0A b%3A stateNode.props.client.blook%2C%0A d%3A val%5Btarget%5D.d%2C%0A tat%3A %60%24%7Btarget%7D%3A%24%7Bval%5Btarget%5D.d - stateNode.state.doubloons%7D%60%2C%0A %7D%2C%0A %7D)%3B%0A stateNode.setState(%7B doubloons%3A val%5Btarget%5D.d %7D)%3B%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Take Doubloons"%2C%0A description%3A "Takes Doubloons from someone"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Player"%2C%0A type%3A "options"%2C%0A options%3A () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A return stateNode.props.liveGameController._liveApp %3F new Promise((res) %3D> stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> players %26%26 res(Object.keys(players)))) %3A %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A run%3A async function (target) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.getDatabaseVal("c"%2C function (val) %7B%0A if (!val%3F.%5Btarget%5D) return%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%60%2C%0A val%3A %7B%0A b%3A stateNode.props.client.blook%2C%0A d%3A stateNode.state.doubloons %2B val%5Btarget%5D.d%2C%0A tat%3A %60%24%7Btarget%7D%3A%24%7Bval%5Btarget%5D.d%7D%60%2C%0A %7D%2C%0A %7D)%3B%0A stateNode.setState(%7B doubloons%3A stateNode.state.doubloons %2B val%5Btarget%5D.d %7D)%3B%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A defense2%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1676079918%2FMedia%2Flogos%2FTower_Defense_2_Logo_Resize.png"%2C%0A name%3A "Tower Defense 2"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Max Tower Stats"%2C%0A description%3A "Makes all placed towers overpowered"%2C%0A run%3A function () %7B%0A getStateNode().state.towers.forEach((tower) %3D> %7B%0A tower.stats.dmg %3D 1e6%3B%0A tower.stats.fireRate %3D 50%3B%0A tower.stats.ghostDetect %3D true%3B%0A tower.stats.maxTargets %3D 1e6%3B%0A tower.stats.numProjectiles %26%26%3D 100%3B%0A tower.stats.range %3D 100%3B%0A if (tower.stats.auraBuffs) for (const buff in tower.stats.auraBuffs) tower.stats.auraBuffs%5Bbuff%5D *%3D 100%3B%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Kill Enemies"%2C%0A description%3A "Kills all the enemies"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.game.current.config.sceneConfig.enemyQueue.length %3D 0%3B%0A stateNode.game.current.config.sceneConfig.physics.world.bodies.entries.forEach((x) %3D> x%3F.gameObject%3F.receiveDamage%3F.(x.gameObject.hp%2C 1))%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Coins"%2C%0A description%3A "Sets coins"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Coins"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (coins) %7B%0A getStateNode().setState(%7B coins %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Health"%2C%0A description%3A "Sets the amount of health you have"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Health"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (health) %7B%0A getStateNode().setState(%7B health %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Round"%2C%0A description%3A "Sets the current round"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Round"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (round) %7B%0A getStateNode().setState(%7B round %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A brawl%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663366470%2FMedia%2Flogos%2FMonster_Brawl_270x156_1.png"%2C%0A name%3A "Monster Brawl"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Double Enemy XP"%2C%0A description%3A "Doubles enemy XP drop value"%2C%0A run%3A function () %7B%0A const colliders %3D getStateNode().game.current.config.sceneConfig.physics.world.colliders._active.filter((x) %3D> x.callbackContext%3F.toString%3F.()%3F.includes%3F.("dmgCd"))%3B%0A for (let i %3D 0%3B i < colliders.length%3B i%2B%2B) %7B%0A const enemies %3D colliders%5Bi%5D.object2%3B%0A let _start %3D enemies.classType.prototype.start%3B%0A enemies.classType.prototype.start %3D function () %7B%0A _start.apply(this%2C arguments)%3B%0A this.val *%3D 2%3B%0A %7D%3B%0A enemies.children.entries.forEach((e) %3D> (e.val *%3D 2))%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Half Enemy Speed"%2C%0A description%3A "Makes enemies move 2x slower"%2C%0A run%3A function () %7B%0A const colliders %3D getStateNode().game.current.config.sceneConfig.physics.world.colliders._active.filter((x) %3D> x.callbackContext%3F.toString%3F.()%3F.includes%3F.("dmgCd"))%3B%0A for (let i %3D 0%3B i < colliders.length%3B i%2B%2B) %7B%0A const enemies %3D colliders%5Bi%5D.object2%3B%0A let _start %3D enemies.classType.prototype.start%3B%0A enemies.classType.prototype.start %3D function () %7B%0A _start.apply(this%2C arguments)%3B%0A this.speed *%3D 0.5%3B%0A %7D%3B%0A enemies.children.entries.forEach((e) %3D> (e.speed *%3D 0.5))%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Instant Kill"%2C%0A description%3A "Sets all enemies health to 1"%2C%0A run%3A function () %7B%0A const colliders %3D getStateNode().game.current.config.sceneConfig.physics.world.colliders._active.filter((x) %3D> x.callbackContext%3F.toString%3F.()%3F.includes%3F.("dmgCd"))%3B%0A for (let i %3D 0%3B i < colliders.length%3B i%2B%2B) %7B%0A const enemies %3D colliders%5Bi%5D.object2%3B%0A let _start %3D enemies.classType.prototype.start%3B%0A enemies.classType.prototype.start %3D function () %7B%0A _start.apply(this%2C arguments)%3B%0A this.hp %3D 1%3B%0A %7D%3B%0A enemies.children.entries.forEach((e) %3D> (e.hp %3D 1))%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Invincibility"%2C%0A description%3A "Makes you invincible"%2C%0A run%3A function () %7B%0A for (const collider of getStateNode().game.current.config.sceneConfig.physics.world.colliders._active.filter(%0A (x) %3D> x.callbackContext%3F.toString().includes("invulnerableTime") %7C%7C x.callbackContext%3F.toString().includes("dmgCd")%0A ))%0A collider.collideCallback %3D () %3D> %7B%7D%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Kill Enemies"%2C%0A description%3A "Kills all current enemies"%2C%0A run%3A function () %7B%0A getStateNode().game.current.config.sceneConfig.physics.world.bodies.entries.forEach((x) %3D> x%3F.gameObject%3F.receiveDamage%3F.(x.gameObject.hp%2C 1))%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Magnet"%2C%0A description%3A "Pulls all xp towards you"%2C%0A run%3A function () %7B%0A getStateNode()%0A .game.current.config.sceneConfig.physics.world.colliders._active.find((x) %3D> x.collideCallback%3F.toString().includes("magnetTime"))%0A .collideCallback(%7B active%3A true %7D%2C %7B active%3A true%2C setActive() %7B%7D%2C setVisible() %7B%7D %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Max Current Abilities"%2C%0A description%3A "Maxes out all your current abilities"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A for (const %5Bability%2C level%5D of Object.entries(stateNode.state.abilities))%0A for (let i %3D 0%3B i < 10 - level%3B i%2B%2B) stateNode.game.current.config.sceneConfig.game.events.emit("level up"%2C ability%2C stateNode.state.abilities%5Bability%5D%2B%2B)%3B%0A stateNode.setState(%7B%0A level%3A (stateNode.game.current.config.sceneConfig.level %3D %5B1%2C 3%2C 5%2C 10%2C 15%2C 25%2C 35%5D.sort((a%2C b) %3D> Math.abs(a - stateNode.state.level) - Math.abs(b - stateNode.state.level))%5B0%5D - 1)%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Next Level"%2C%0A description%3A "Skips to the next level"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A let %7B object1%3A player%2C object2%3A xp %7D %3D stateNode.game.current.config.sceneConfig.physics.world.colliders._active.find((x) %3D> x.collideCallback%3F.toString().includes('emit("xp'))%3B%0A xp.get().spawn(player.x%2C player.y%2C ((e) %3D> (1 %3D%3D%3D e %3F 1 %3A e < 5 %3F 5 %3A e < 10 %3F 10 %3A e < 20 %3F 20 %3A e < 30 %3F 30 %3A e < 40 %3F 40 %3A e < 50 %3F 50 %3A 100))(stateNode.state.level) - stateNode.xp)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Obstacles"%2C%0A description%3A "Removes all rocks and obstacles"%2C%0A run%3A function () %7B%0A getStateNode().game.current.config.sceneConfig.physics.world.bodies.entries.forEach((body) %3D> %7B%0A try %7B%0A if (body.gameObject.frame.texture.key.includes("obstacle")) body.gameObject.destroy()%3B%0A %7D catch %7B%7D%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Reset Health"%2C%0A description%3A "Resets health and gives invincibility for 3 seconds"%2C%0A run%3A function () %7B%0A getStateNode().game.current.events._events.respawn.fn()%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A dino%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FDeceptive_Dinos_Logo_Resized.png"%2C%0A name%3A "Deceptive Dinos"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Auto Choose"%2C%0A description%3A "Automatically choose the best fossil when excavating"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A rand(e%2C t) %7B%0A const s %3D %5B%5D%3B%0A while (s.length < t) %7B%0A const i %3D Math.random()%3B%0A let r %3D 0%2C%0A g %3D null%3B%0A for (let o %3D 0%3B o < e.length%3B o%2B%2B) %7B%0A r %2B%3D e%5Bo%5D.rate%3B%0A if (r >%3D i) %7B%0A g %3D e%5Bo%5D%3B%0A break%3B%0A %7D%0A %7D%0A g %26%26 !s.includes(g) %26%26 s.push(g)%3B%0A %7D%0A return s%3B%0A %7D%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A try %7B%0A let stateNode %3D getStateNode()%3B%0A if (stateNode.state.stage %3D%3D%3D "excavate") %7B%0A stateNode.state.choices.length %7C%7C%0A (stateNode.state.choices %3D this.rand(%0A %5B%0A %7B type%3A "fossil"%2C val%3A 10%2C rate%3A 0.1%2C blook%3A "Amber" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 25%2C rate%3A 0.1%2C blook%3A "Dino Egg" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 50%2C rate%3A 0.175%2C blook%3A "Dino Fossil" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 75%2C rate%3A 0.175%2C blook%3A "Stegosaurus" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 100%2C rate%3A 0.15%2C blook%3A "Velociraptor" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 125%2C rate%3A 0.125%2C blook%3A "Brontosaurus" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 250%2C rate%3A 0.075%2C blook%3A "Triceratops" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 500%2C rate%3A 0.025%2C blook%3A "Tyrannosaurus Rex" %7D%2C%0A %7B type%3A "mult"%2C val%3A 1.5%2C rate%3A 0.05 %7D%2C%0A %7B type%3A "mult"%2C val%3A 2%2C rate%3A 0.025 %7D%2C%0A %5D%2C%0A 3%0A ))%3B%0A let max %3D 0%2C%0A index %3D -1%3B%0A for (let i %3D 0%3B i < stateNode.state.choices.length%3B i%2B%2B) %7B%0A const %7B type%2C val %7D %3D stateNode.state.choices%5Bi%5D%3B%0A const value %3D (type %3D%3D "fossil" %3F stateNode.state.fossils %2B val * stateNode.state.fossilMult %3A stateNode.state.fossils * val) %7C%7C 0%3B%0A if (value <%3D max %26%26 type !%3D "mult") continue%3B%0A (max %3D value)%2C (index %3D i %2B 1)%3B%0A %7D%0A document.querySelector('div%5Bclass*%3DrockRow%5D > div%5Brole%3D"button"%5D%3Anth-child(' %2B index %2B ")").click()%3B%0A %7D%0A %7D catch %7B%7D%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Rock ESP"%2C%0A description%3A "Shows what is under the rocks"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A (() %3D> %7B%0A function rand(e%2C t) %7B%0A const s %3D %5B%5D%3B%0A while (s.length < t) %7B%0A const i %3D Math.random()%3B%0A let r %3D 0%3B%0A let g%3B%0A for (let o %3D 0%3B o < e.length%3B o%2B%2B) %7B%0A r %2B%3D e%5Bo%5D.rate%3B%0A if (r >%3D i) %7B%0A g %3D e%5Bo%5D%3B%0A break%3B%0A %7D%0A %7D%0A if (g %26%26 !s.includes(g)) s.push(g)%3B%0A %7D%0A return s%3B%0A %7D%0A const exps %3D %5B"⁰"%2C "¹"%2C "²"%2C "³"%2C "⁴"%2C "⁵"%2C "⁶"%2C "⁷"%2C "⁸"%2C "⁹"%5D%3B%0A const getExpAscii %3D (num) %3D> %7B%0A let res %3D ""%3B%0A while (num > 0) %7B%0A res %3D exps%5Bnum %25 10%5D %2B res%3B%0A num %3D ~~(num %2F 10)%3B%0A %7D%0A return res%3B%0A %7D%3B%0A %0A function shortNum(value) %7B%0A let newValue %3D value.toString()%3B%0A if (value >%3D 1000) %7B%0A const suffixes %3D %5B""%2C "K"%2C "M"%2C "B"%2C "T"%5D%3B%0A const suffixNum %3D Math.floor(Math.floor((Math.log(value) %2F Math.log(10)).toPrecision(14)) %2F 3)%3B%0A if (suffixNum < suffixes.length) %7B%0A let shortValue %3D ""%3B%0A for (let precision %3D 3%3B precision >%3D 1%3B precision--) %7B%0A shortValue %3D parseFloat((suffixNum !%3D 0 %3F value %2F Math.pow(1000%2C suffixNum) %3A value).toPrecision(precision)).toString()%3B%0A const dotLessShortValue %3D shortValue.replace(%2F%5B%5Ea-zA-Z 0-9%5D%2B%2Fg%2C "")%3B%0A if (dotLessShortValue.length <%3D 3) break%3B%0A %7D%0A if (Number(shortValue) %25 1 !%3D 0) shortValue %3D Number(shortValue).toFixed(1)%3B%0A newValue %3D shortValue %2B suffixes%5BsuffixNum%5D%3B%0A %7D else %7B%0A let num %3D value%3B%0A let exp %3D 0%3B%0A while (num >%3D 100) %7B%0A num %3D Math.floor(num %2F 10)%3B%0A exp %2B%3D 1%3B%0A %7D%0A newValue %3D num %2F 10 %2B " × 10" %2B getExpAscii(exp %2B 1)%3B%0A %7D%0A %7D%0A return newValue%3B%0A %7D%0A return function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A const rocks %3D document.querySelector('%5Bclass*%3D"rockButton"%5D').parentElement.children%3B%0A %0A if (!Array.prototype.every.call(rocks%2C (element) %3D> element.querySelector("div")))%0A stateNode.setState(%0A %7B%0A choices%3A rand(%0A %5B%0A %7B type%3A "fossil"%2C val%3A 10%2C rate%3A 0.1%2C blook%3A "Amber" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 25%2C rate%3A 0.1%2C blook%3A "Dino Egg" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 50%2C rate%3A 0.175%2C blook%3A "Dino Fossil" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 75%2C rate%3A 0.175%2C blook%3A "Stegosaurus" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 100%2C rate%3A 0.15%2C blook%3A "Velociraptor" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 125%2C rate%3A 0.125%2C blook%3A "Brontosaurus" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 250%2C rate%3A 0.075%2C blook%3A "Triceratops" %7D%2C%0A %7B type%3A "fossil"%2C val%3A 500%2C rate%3A 0.025%2C blook%3A "Tyrannosaurus Rex" %7D%2C%0A %7B type%3A "mult"%2C val%3A 1.5%2C rate%3A 0.05 %7D%2C%0A %7B type%3A "mult"%2C val%3A 2%2C rate%3A 0.025 %7D%2C%0A %5D%2C%0A 3%0A )%2C%0A %7D%2C%0A () %3D> %7B%0A Array.prototype.forEach.call(rocks%2C (element%2C index) %3D> %7B%0A const rock %3D stateNode.state.choices%5Bindex%5D%3B%0A if (element.querySelector("div")) element.querySelector("div").remove()%3B%0A const choice %3D document.createElement("div")%3B%0A choice.style.color %3D "white"%3B%0A choice.style.fontFamily %3D "Macondo"%3B%0A choice.style.fontSize %3D "1em"%3B%0A choice.style.display %3D "flex"%3B%0A choice.style.justifyContent %3D "center"%3B%0A choice.style.transform %3D "translateY(25px)"%3B%0A choice.innerText %3D%0A rock.type %3D%3D%3D "fossil"%0A %3F %60%2B%24%7B%0A Math.round(rock.val * stateNode.state.fossilMult) > 99999999 %3F shortNum(Math.round(rock.val * stateNode.state.fossilMult)) %3A Math.round(rock.val * stateNode.state.fossilMult)%0A %7D Fossils%60%0A %3A %60x%24%7Brock.val%7D Fossils Per Excavation%60%3B%0A element.append(choice)%3B%0A %7D)%3B%0A %7D%0A )%3B%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%3B%0A %7D)()%2C%0A %7D%2C%0A %7B%0A name%3A "Set Fossils"%2C%0A description%3A "Sets the amount of fossils you have"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Fossils"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (fossils) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B fossils %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%2Ff%60%2C%0A val%3A fossils%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Multiplier"%2C%0A description%3A "Sets fossil multiplier"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Multiplier"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (fossilMult) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B fossilMult %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Stop Cheating"%2C%0A description%3A "Undoes cheating so that you can't be caught"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B isCheating%3A false %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%2Fic%60%2C%0A val%3A false%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A royale%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FBattle_Royale_Logo_Resized.png"%2C%0A name%3A "Battle Royale"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Auto Answer (Toggle)"%2C%0A description%3A "Toggles auto answer on"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(() %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode%3F.onAnswer%3F.(true%2C stateNode.props.client.question.correctAnswers%5B0%5D)%3B%0A %7D%2C 50)%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Auto Answer"%2C%0A description%3A "Chooses the correct answer for you"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode%3F.onAnswer%3F.(true%2C stateNode.props.client.question.correctAnswers%5B0%5D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A defense%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FTower_Defense_Logo_Resized.png"%2C%0A name%3A "Tower Defense"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Earthquake"%2C%0A description%3A "Shuffles around towers"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%0A %7B%0A eventName%3A "Earthquake"%2C%0A event%3A %7B%0A short%3A "e"%2C%0A color%3A "%23805500"%2C%0A icon%3A "fas fa-mountain"%2C%0A desc%3A "All of your towers get mixed up"%2C%0A rate%3A 0.02%2C%0A %7D%2C%0A buyTowerName%3A ""%2C%0A buyTower%3A %7B%7D%2C%0A %7D%2C%0A () %3D> (stateNode.eventTimeout %3D setTimeout(() %3D> stateNode.setState(%7B event%3A %7B%7D%2C eventName%3A "" %7D)%2C 6e3))%0A )%3B%0A stateNode.tiles.forEach((row) %3D> row.forEach((col%2C i) %3D> col %3D%3D 3 %26%26 (row%5Bi%5D %3D 0)))%3B%0A let tiles %3D %5B%5D%3B%0A for (let y %3D 0%3B y < stateNode.tiles.length%3B y%2B%2B) for (let x %3D 0%3B x < stateNode.tiles%5By%5D.length%3B x%2B%2B) if (stateNode.tiles%5By%5D%5Bx%5D %3D%3D 0) tiles.push(%7B x%2C y %7D)%3B%0A tiles.sort(() %3D> Math.random() - Math.random())%3B%0A stateNode.towers.forEach((tower) %3D> %7B%0A let %7B x%2C y %7D %3D tiles.pop()%3B%0A tower.move(x%2C y%2C stateNode.tileSize)%3B%0A stateNode.tiles%5By%5D%5Bx%5D %3D 3%3B%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Max Tower Stats"%2C%0A description%3A "Makes all placed towers overpowered"%2C%0A run%3A function () %7B%0A getStateNode().towers.forEach((tower) %3D> %7B%0A tower.range %3D 100%3B%0A tower.fullCd %3D tower.cd %3D 0%3B%0A tower.damage %3D 1e6%3B%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Ducks"%2C%0A description%3A "Removes ducks"%2C%0A run%3A function () %7B%0A let %7B ducks%2C tiles %7D %3D getStateNode()%3B%0A ducks.forEach((x) %3D> (tiles%5Bx.y%5D%5Bx.x%5D %3D 0))%3B%0A ducks.length %3D 0%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Enemies"%2C%0A description%3A "Removes all the enemies"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.enemies %3D stateNode.futureEnemies %3D %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Obstacles"%2C%0A description%3A "Lets you place towers anywhere"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.tiles %3D stateNode.tiles.map((row) %3D> row.fill(0))%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Damage"%2C%0A description%3A "Sets damage"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Damage"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (dmg) %7B%0A getStateNode().dmg %3D dmg%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Round"%2C%0A description%3A "Sets the current round"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Round"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (round) %7B%0A getStateNode().setState(%7B round %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Tokens"%2C%0A description%3A "Sets the amount of tokens you have"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Tokens"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (tokens) %7B%0A getStateNode().setState(%7B tokens %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A cafe%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FCafe_Logo_Resized.png"%2C%0A name%3A "Café"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Max Items"%2C%0A description%3A "Maxes out items in the shop (Only usable in the shop)"%2C%0A run%3A function () %7B%0A if (window.location.pathname !%3D%3D "%2Fcafe%2Fshop") alert("This can only be run in the shop")%3B%0A else %7B%0A const stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B items%3A Object.keys(stateNode.state.items).reduce((obj%2C item) %3D> ((obj%5Bitem%5D %3D 5)%2C obj)%2C %7B%7D) %7D)%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Customers"%2C%0A description%3A "Skips the current customers (Not usable in the shop)"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A stateNode.state.customers.forEach((customer%2C i) %3D> window.setTimeout(() %3D> customer.blook %26%26 stateNode.removeCustomer(i%2C true)%2C i * 250))%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Reset Abilities"%2C%0A description%3A "Resets used abilities in shop (Only usable in the shop)"%2C%0A run%3A function () %7B%0A if (window.location.pathname !%3D%3D "%2Fcafe%2Fshop") alert("This can only be run in the shop")%3B%0A else %7B%0A const stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B abilities%3A Object.keys(stateNode.state.abilities).reduce((obj%2C item) %3D> ((obj%5Bitem%5D %3D 5)%2C obj)%2C %7B%7D) %7D)%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Cash"%2C%0A description%3A "Sets cafe cash"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Amount"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (cafeCash) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B cafeCash %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A %60c%2F%24%7BstateNode.props.client.name%7D%2Fca%60%2C%0A val%3A cafeCash%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Stock Food"%2C%0A description%3A "Stocks all food to 99 (Not usable in the shop)"%2C%0A run%3A function () %7B%0A if (window.location.pathname !%3D%3D "%2Fcafe") alert("This can't be run in the shop")%3B%0A else %7B%0A const stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B foods%3A stateNode.state.foods.map((e) %3D> (%7B ...e%2C stock%3A 99%2C level%3A 5 %7D)) %7D)%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A factory%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FFactory_Logo_Resized.png"%2C%0A name%3A "Factory"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Choose Blook"%2C%0A description%3A "Gives you a blook"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Blook"%2C%0A type%3A "options"%2C%0A options%3A %5B%0A %7B name%3A "Chick"%2C color%3A "%23ffcd05"%2C class%3A "%5CuD83C%5CuDF3D"%2C rarity%3A "Common"%2C cash%3A %5B3%2C 7%2C 65%2C 400%2C 2500%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B300%2C 3e3%2C 3e4%2C 2e5%5D %7D%2C%0A %7B name%3A "Chicken"%2C color%3A "%23ed1c24"%2C class%3A "%5CuD83C%5CuDF3D"%2C rarity%3A "Common"%2C cash%3A %5B10%2C 40%2C 200%2C 1400%2C 1e4%5D%2C time%3A %5B5%2C 4%2C 3%2C 2%2C 1%5D%2C price%3A %5B570%2C 4e3%2C 5e4%2C 8e5%5D %7D%2C%0A %7B name%3A "Cow"%2C color%3A "%2358595b"%2C class%3A "%5CuD83C%5CuDF3D"%2C rarity%3A "Common"%2C cash%3A %5B25%2C 75%2C 1500%2C 25e3%2C 25e4%5D%2C time%3A %5B15%2C 10%2C 10%2C 10%2C 5%5D%2C price%3A %5B500%2C 9500%2C 16e4%2C 4e6%5D %7D%2C%0A %7B name%3A "Duck"%2C color%3A "%234ab96d"%2C class%3A "%5CuD83C%5CuDF3D"%2C rarity%3A "Common"%2C cash%3A %5B4%2C 24%2C 200%2C 3e3%2C 4e4%5D%2C time%3A %5B3%2C 3%2C 3%2C 3%2C 3%5D%2C price%3A %5B450%2C 4200%2C 7e4%2C 11e5%5D %7D%2C%0A %7B name%3A "Goat"%2C color%3A "%23c59a74"%2C class%3A "%5CuD83C%5CuDF3D"%2C rarity%3A "Common"%2C cash%3A %5B5%2C 28%2C 200%2C 1300%2C 12e3%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 2%5D%2C price%3A %5B500%2C 6400%2C 45e3%2C 5e5%5D %7D%2C%0A %7B name%3A "Horse"%2C color%3A "%23995b3c"%2C class%3A "%5CuD83C%5CuDF3D"%2C rarity%3A "Common"%2C cash%3A %5B5%2C 20%2C 270%2C 1800%2C 15e3%5D%2C time%3A %5B2%2C 2%2C 2%2C 2%2C 2%5D%2C price%3A %5B550%2C 8200%2C 65e3%2C 6e5%5D %7D%2C%0A %7B name%3A "Pig"%2C color%3A "%23f6a9cb"%2C class%3A "%5CuD83C%5CuDF3D"%2C rarity%3A "Common"%2C cash%3A %5B20%2C 50%2C 1300%2C 8e3%2C 8e4%5D%2C time%3A %5B7%2C 7%2C 7%2C 7%2C 5%5D%2C price%3A %5B400%2C 11e3%2C 8e4%2C 13e5%5D %7D%2C%0A %7B name%3A "Sheep"%2C color%3A "%23414042"%2C class%3A "%5CuD83C%5CuDF3D"%2C rarity%3A "Common"%2C cash%3A %5B6%2C 25%2C 250%2C 1500%2C 11e3%5D%2C time%3A %5B3%2C 3%2C 3%2C 2%2C 2%5D%2C price%3A %5B500%2C 5e3%2C 5e4%2C 43e4%5D %7D%2C%0A %7B name%3A "Cat"%2C color%3A "%23f49849"%2C class%3A "%5CuD83D%5CuDC3E"%2C rarity%3A "Common"%2C cash%3A %5B5%2C 18%2C 170%2C 1700%2C 13e3%5D%2C time%3A %5B2%2C 2%2C 2%2C 2%2C 2%5D%2C price%3A %5B480%2C 5500%2C 6e4%2C 5e5%5D %7D%2C%0A %7B name%3A "Dog"%2C color%3A "%23995b3c"%2C class%3A "%5CuD83D%5CuDC3E"%2C rarity%3A "Common"%2C cash%3A %5B7%2C 25%2C 220%2C 1900%2C 9e3%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 1%5D%2C price%3A %5B460%2C 6600%2C 7e4%2C 73e4%5D %7D%2C%0A %7B name%3A "Goldfish"%2C color%3A "%23f18221"%2C class%3A "%5CuD83D%5CuDC3E"%2C rarity%3A "Common"%2C cash%3A %5B5%2C 40%2C 350%2C 3500%2C 35e3%5D%2C time%3A %5B3%2C 3%2C 3%2C 3%2C 3%5D%2C price%3A %5B750%2C 7200%2C 84e3%2C 95e4%5D %7D%2C%0A %7B name%3A "Rabbit"%2C color%3A "%23e7bf9a"%2C class%3A "%5CuD83D%5CuDC3E"%2C rarity%3A "Common"%2C cash%3A %5B3%2C 18%2C 185%2C 800%2C 7e3%5D%2C time%3A %5B2%2C 2%2C 2%2C 1%2C 1%5D%2C price%3A %5B500%2C 5800%2C 56e3%2C 55e4%5D %7D%2C%0A %7B name%3A "Hamster"%2C color%3A "%23ce9176"%2C class%3A "%5CuD83D%5CuDC3E"%2C rarity%3A "Common"%2C cash%3A %5B10%2C 45%2C 450%2C 4500%2C 45e3%5D%2C time%3A %5B4%2C 4%2C 4%2C 4%2C 4%5D%2C price%3A %5B650%2C 6500%2C 8e4%2C 93e4%5D %7D%2C%0A %7B name%3A "Turtle"%2C color%3A "%23619a3c"%2C class%3A "%5CuD83D%5CuDC3E"%2C rarity%3A "Common"%2C cash%3A %5B23%2C 120%2C 1400%2C 15e3%2C 17e4%5D%2C time%3A %5B10%2C 10%2C 10%2C 10%2C 10%5D%2C price%3A %5B700%2C 8500%2C 11e4%2C 13e5%5D %7D%2C%0A %7B name%3A "Puppy"%2C color%3A "%23414042"%2C class%3A "%5CuD83D%5CuDC3E"%2C rarity%3A "Common"%2C cash%3A %5B4%2C 10%2C 75%2C 500%2C 3e3%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B450%2C 4e3%2C 35e3%2C 25e4%5D %7D%2C%0A %7B name%3A "Kitten"%2C color%3A "%2358595b"%2C class%3A "%5CuD83D%5CuDC3E"%2C rarity%3A "Common"%2C cash%3A %5B4%2C 8%2C 60%2C 400%2C 2e3%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B350%2C 3500%2C 26e3%2C 17e4%5D %7D%2C%0A %7B name%3A "Bear"%2C color%3A "%23995b3c"%2C class%3A "%5CuD83C%5CuDF32"%2C rarity%3A "Common"%2C cash%3A %5B12%2C 70%2C 550%2C 4500%2C 1e5%5D%2C time%3A %5B7%2C 7%2C 6%2C 5%2C 5%5D%2C price%3A %5B550%2C 5500%2C 63e3%2C 16e5%5D %7D%2C%0A %7B name%3A "Moose"%2C color%3A "%23995b3c"%2C class%3A "%5CuD83C%5CuDF32"%2C rarity%3A "Common"%2C cash%3A %5B8%2C 45%2C 400%2C 3500%2C 26e3%5D%2C time%3A %5B5%2C 5%2C 4%2C 4%2C 3%5D%2C price%3A %5B520%2C 6500%2C 58e3%2C 7e5%5D %7D%2C%0A %7B name%3A "Fox"%2C color%3A "%23f49849"%2C class%3A "%5CuD83C%5CuDF32"%2C rarity%3A "Common"%2C cash%3A %5B7%2C 15%2C 80%2C 550%2C 3e3%5D%2C time%3A %5B2%2C 2%2C 1%2C 1%2C 1%5D%2C price%3A %5B400%2C 4e3%2C 36e3%2C 24e4%5D %7D%2C%0A %7B name%3A "Raccoon"%2C color%3A "%236d6e71"%2C class%3A "%5CuD83C%5CuDF32"%2C rarity%3A "Common"%2C cash%3A %5B5%2C 14%2C 185%2C 1900%2C 19e3%5D%2C time%3A %5B2%2C 2%2C 2%2C 2%2C 2%5D%2C price%3A %5B400%2C 5e3%2C 71e3%2C 8e5%5D %7D%2C%0A %7B name%3A "Squirrel"%2C color%3A "%23d25927"%2C class%3A "%5CuD83C%5CuDF32"%2C rarity%3A "Common"%2C cash%3A %5B3%2C 10%2C 65%2C 470%2C 2600%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B420%2C 3600%2C 32e3%2C 21e4%5D %7D%2C%0A %7B name%3A "Owl"%2C color%3A "%23594a42"%2C class%3A "%5CuD83C%5CuDF32"%2C rarity%3A "Common"%2C cash%3A %5B4%2C 17%2C 155%2C 1500%2C 15e3%5D%2C time%3A %5B2%2C 2%2C 2%2C 2%2C 2%5D%2C price%3A %5B500%2C 4800%2C 55e3%2C 58e4%5D %7D%2C%0A %7B name%3A "Hedgehog"%2C color%3A "%233f312b"%2C class%3A "%5CuD83C%5CuDF32"%2C rarity%3A "Common"%2C cash%3A %5B11%2C 37%2C 340%2C 2200%2C 3e4%5D%2C time%3A %5B5%2C 4%2C 3%2C 2%2C 2%5D%2C price%3A %5B540%2C 7e3%2C 77e3%2C 12e5%5D %7D%2C%0A %7B name%3A "Seal"%2C color%3A "%237ca1d5"%2C class%3A "❄%EF%B8%8F"%2C rarity%3A "Common"%2C cash%3A %5B6%2C 17%2C 150%2C 1200%2C 13e3%5D%2C time%3A %5B2%2C 2%2C 2%2C 2%2C 2%5D%2C price%3A %5B480%2C 4500%2C 43e3%2C 52e4%5D %7D%2C%0A %7B name%3A "Arctic Fox"%2C color%3A "%237ca1d5"%2C class%3A "❄%EF%B8%8F"%2C rarity%3A "Common"%2C cash%3A %5B5%2C 18%2C 180%2C 850%2C 8500%5D%2C time%3A %5B2%2C 2%2C 2%2C 1%2C 1%5D%2C price%3A %5B520%2C 550%2C 61e3%2C 68e4%5D %7D%2C%0A %7B name%3A "Snowy Owl"%2C color%3A "%23feda3f"%2C class%3A "❄%EF%B8%8F"%2C rarity%3A "Common"%2C cash%3A %5B5%2C 20%2C 190%2C 1900%2C 16e3%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 2%5D%2C price%3A %5B370%2C 5300%2C 76e3%2C 62e4%5D %7D%2C%0A %7B name%3A "Arctic Hare"%2C color%3A "%237ca1d5"%2C class%3A "❄%EF%B8%8F"%2C rarity%3A "Common"%2C cash%3A %5B6%2C 19%2C 85%2C 900%2C 7e3%5D%2C time%3A %5B2%2C 2%2C 1%2C 1%2C 1%5D%2C price%3A %5B540%2C 5200%2C 66e3%2C 55e4%5D %7D%2C%0A %7B name%3A "Penguin"%2C color%3A "%23fb8640"%2C class%3A "❄%EF%B8%8F"%2C rarity%3A "Common"%2C cash%3A %5B4%2C 21%2C 310%2C 3200%2C 33e3%5D%2C time%3A %5B3%2C 3%2C 3%2C 3%2C 3%5D%2C price%3A %5B400%2C 6500%2C 76e3%2C 87e4%5D %7D%2C%0A %7B name%3A "Baby Penguin"%2C color%3A "%23414042"%2C class%3A "❄%EF%B8%8F"%2C rarity%3A "Common"%2C cash%3A %5B3%2C 8%2C 70%2C 450%2C 2700%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B420%2C 3300%2C 33e3%2C 23e4%5D %7D%2C%0A %7B name%3A "Polar Bear"%2C color%3A "%237ca1d5"%2C class%3A "❄%EF%B8%8F"%2C rarity%3A "Common"%2C cash%3A %5B12%2C 75%2C 700%2C 6500%2C 85e3%5D%2C time%3A %5B8%2C 7%2C 6%2C 5%2C 5%5D%2C price%3A %5B630%2C 7e3%2C 91e3%2C 14e5%5D %7D%2C%0A %7B name%3A "Walrus"%2C color%3A "%237d4f33"%2C class%3A "❄%EF%B8%8F"%2C rarity%3A "Common"%2C cash%3A %5B11%2C 46%2C 420%2C 3700%2C 51e3%5D%2C time%3A %5B5%2C 5%2C 4%2C 4%2C 4%5D%2C price%3A %5B550%2C 6200%2C 68e3%2C 1e6%5D %7D%2C%0A %7B name%3A "Tiger"%2C color%3A "%23f18221"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B6%2C 20%2C 100%2C 975%2C 7500%5D%2C time%3A %5B3%2C 3%2C 1%2C 1%2C 1%5D%2C price%3A %5B390%2C 6e3%2C 7e4%2C 61e4%5D %7D%2C%0A %7B name%3A "Jaguar"%2C color%3A "%23fbb040"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B8%2C 28%2C 230%2C 1600%2C 17e3%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 2%5D%2C price%3A %5B390%2C 6e3%2C 7e4%2C 61e4%5D %7D%2C%0A %7B name%3A "Toucan"%2C color%3A "%23ffca34"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B9%2C 20%2C 175%2C 625%2C 3800%5D%2C time%3A %5B2%2C 2%2C 2%2C 1%2C 1%5D%2C price%3A %5B520%2C 4800%2C 42e3%2C 3e5%5D %7D%2C%0A %7B name%3A "Cockatoo"%2C color%3A "%237ca1d5"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B6%2C 35%2C 160%2C 1700%2C 18e3%5D%2C time%3A %5B4%2C 4%2C 2%2C 2%2C 2%5D%2C price%3A %5B500%2C 5e3%2C 63e3%2C 7e5%5D %7D%2C%0A %7B name%3A "Macaw"%2C color%3A "%2300aeef"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B3%2C 8%2C 85%2C 850%2C 8500%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B480%2C 5400%2C 62e3%2C 63e4%5D %7D%2C%0A %7B name%3A "Parrot"%2C color%3A "%23ed1c24"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B3%2C 9%2C 90%2C 900%2C 9e3%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B540%2C 5700%2C 65e3%2C 69e4%5D %7D%2C%0A %7B name%3A "Panther"%2C color%3A "%232f2c38"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B12%2C 28%2C 215%2C 2100%2C 21e3%5D%2C time%3A %5B5%2C 3%2C 2%2C 2%2C 2%5D%2C price%3A %5B530%2C 6500%2C 76e3%2C 87e4%5D %7D%2C%0A %7B name%3A "Anaconda"%2C color%3A "%238a9143"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B3%2C 15%2C 85%2C 1500%2C 7600%5D%2C time%3A %5B1%2C 2%2C 1%2C 2%2C 1%5D%2C price%3A %5B410%2C 5100%2C 58e3%2C 59e4%5D %7D%2C%0A %7B name%3A "Orangutan"%2C color%3A "%23bc6234"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B13%2C 52%2C 570%2C 4300%2C 7e4%5D%2C time%3A %5B5%2C 5%2C 5%2C 4%2C 4%5D%2C price%3A %5B600%2C 7e3%2C 8e4%2C 14e5%5D %7D%2C%0A %7B name%3A "Capuchin"%2C color%3A "%23e0b0a6"%2C class%3A "%5CuD83C%5CuDF34"%2C rarity%3A "Common"%2C cash%3A %5B4%2C 14%2C 160%2C 780%2C 8200%5D%2C time%3A %5B2%2C 2%2C 2%2C 1%2C 1%5D%2C price%3A %5B390%2C 4700%2C 57e3%2C 68e4%5D %7D%2C%0A %7B name%3A "Elf"%2C color%3A "%23a7d054"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Uncommon"%2C cash%3A %5B5e3%2C 15e3%2C 15e4%2C 15e5%2C 1e7%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B8e5%2C 9e6%2C 11e7%2C 8e8%5D %7D%2C%0A %7B name%3A "Witch"%2C color%3A "%234ab96d"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Uncommon"%2C cash%3A %5B18e3%2C 6e4%2C 4e4%2C 4e6%2C 35e6%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 2%5D%2C price%3A %5B11e5%2C 12e6%2C 15e7%2C 14e8%5D %7D%2C%0A %7B name%3A "Wizard"%2C color%3A "%235a459c"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Uncommon"%2C cash%3A %5B19500%2C 65e3%2C 44e4%2C 46e5%2C 4e6%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 2%5D%2C price%3A %5B13e5%2C 135e5%2C 16e7%2C 16e8%5D %7D%2C%0A %7B name%3A "Fairy"%2C color%3A "%23df6d9c"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Uncommon"%2C cash%3A %5B18500%2C 6e4%2C 62e4%2C 44e5%2C 38e6%5D%2C time%3A %5B3%2C 3%2C 3%2C 2%2C 2%5D%2C price%3A %5B12e5%2C 125e5%2C 15e6%2C 15e8%5D %7D%2C%0A %7B name%3A "Slime Monster"%2C color%3A "%232fa04a"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Uncommon"%2C cash%3A %5B35e3%2C 14e4%2C 1e6%2C 11e6%2C 11e7%5D%2C time%3A %5B5%2C 5%2C 4%2C 4%2C 4%5D%2C price%3A %5B16e5%2C 15e6%2C 2e8%2C 23e8%5D %7D%2C%0A %7B name%3A "Jester"%2C color%3A "%23be1e2d"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Rare"%2C cash%3A %5B25e3%2C 1e5%2C 68e4%2C 65e5%2C 32e6%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 1%5D%2C price%3A %5B2e6%2C 21e6%2C 23e7%2C 26e8%5D %7D%2C%0A %7B name%3A "Dragon"%2C color%3A "%232fa04a"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Rare"%2C cash%3A %5B36e3%2C 15e4%2C 15e5%2C 15e6%2C 15e7%5D%2C time%3A %5B4%2C 4%2C 4%2C 4%2C 4%5D%2C price%3A %5B23e5%2C 24e6%2C 27e7%2C 3e9%5D %7D%2C%0A %7B name%3A "Unicorn"%2C color%3A "%23f6afce"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Epic"%2C cash%3A %5B24e3%2C 15e4%2C 14e5%2C 7e6%2C 75e6%5D%2C time%3A %5B2%2C 2%2C 2%2C 1%2C 1%5D%2C price%3A %5B45e5%2C 45e6%2C 55e7%2C 65e8%5D %7D%2C%0A %7B name%3A "Queen"%2C color%3A "%239e1f63"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Rare"%2C cash%3A %5B24e3%2C 95e3%2C 95e4%2C 97e5%2C 95e6%5D%2C time%3A %5B3%2C 3%2C 3%2C 3%2C 3%5D%2C price%3A %5B19e5%2C 2e7%2C 23e7%2C 25e8%5D %7D%2C%0A %7B name%3A "King"%2C color%3A "%23ee2640"%2C class%3A "⚔%EF%B8%8F"%2C rarity%3A "Legendary"%2C cash%3A %5B75e3%2C 4e5%2C 6e6%2C 9e7%2C 125e7%5D%2C time%3A %5B5%2C 5%2C 5%2C 5%2C 5%5D%2C price%3A %5B6e6%2C 95e6%2C 16e8%2C 25e9%5D %7D%2C%0A %7B name%3A "Two of Spades"%2C color%3A "%23414042"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Uncommon"%2C cash%3A %5B4500%2C 14e3%2C 14e4%2C 14e5%2C 9e6%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B77e4%2C 83e5%2C 98e6%2C 71e7%5D %7D%2C%0A %7B name%3A "Eat Me"%2C color%3A "%23d58c55"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Uncommon"%2C cash%3A %5B13e3%2C 45e3%2C 45e4%2C 45e5%2C 5e7%5D%2C time%3A %5B2%2C 2%2C 2%2C 2%2C 2%5D%2C price%3A %5B13e5%2C 14e6%2C 16e7%2C 2e9%5D %7D%2C%0A %7B name%3A "Drink Me"%2C color%3A "%23dd7399"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Uncommon"%2C cash%3A %5B12e3%2C 4e4%2C 4e5%2C 4e6%2C 45e6%5D%2C time%3A %5B2%2C 2%2C 2%2C 2%2C 2%5D%2C price%3A %5B12e5%2C 12e6%2C 14e7%2C 18e8%5D %7D%2C%0A %7B name%3A "Alice"%2C color%3A "%234cc9f5"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Uncommon"%2C cash%3A %5B13e3%2C 42e3%2C 21e4%2C 21e5%2C 23e6%5D%2C time%3A %5B2%2C 2%2C 1%2C 1%2C 1%5D%2C price%3A %5B12e5%2C 13e6%2C 15e7%2C 19e8%5D %7D%2C%0A %7B name%3A "Queen of Hearts"%2C color%3A "%23d62027"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Uncommon"%2C cash%3A %5B23e3%2C 87e3%2C 62e4%2C 75e5%2C 9e7%5D%2C time%3A %5B4%2C 4%2C 3%2C 3%2C 3%5D%2C price%3A %5B13e5%2C 13e6%2C 18e7%2C 24e8%5D %7D%2C%0A %7B name%3A "Dormouse"%2C color%3A "%2389d6f8"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Rare"%2C cash%3A %5B17e3%2C 68e3%2C 7e5%2C 35e5%2C 35e6%5D%2C time%3A %5B2%2C 2%2C 1%2C 1%2C 1%5D%2C price%3A %5B2e6%2C 22e6%2C 25e7%2C 28e8%5D %7D%2C%0A %7B name%3A "White Rabbit"%2C color%3A "%23ffcd05"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Rare"%2C cash%3A %5B26e3%2C 105e3%2C 11e6%2C 77e5%2C 72e6%5D%2C time%3A %5B3%2C 3%2C 3%2C 2%2C 2%5D%2C price%3A %5B2e6%2C 23e6%2C 28e7%2C 29e8%5D %7D%2C%0A %7B name%3A "Cheshire Cat"%2C color%3A "%23dd7399"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Rare"%2C cash%3A %5B32e3%2C 1e5%2C 9e5%2C 9e6%2C 6e7%5D%2C time%3A %5B4%2C 3%2C 3%2C 3%2C 2%5D%2C price%3A %5B18e5%2C 19e6%2C 22e7%2C 24e8%5D %7D%2C%0A %7B name%3A "Caterpillar"%2C color%3A "%2300c0f3"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Epic"%2C cash%3A %5B1e4%2C 7e4%2C 65e4%2C 75e5%2C 85e6%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B42e5%2C 42e6%2C 54e7%2C 69e8%5D %7D%2C%0A %7B name%3A "Mad Hatter"%2C color%3A "%23914f93"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Epic"%2C cash%3A %5B38e3%2C 25e4%2C 15e5%2C 14e6%2C 8e7%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 1%5D%2C price%3A %5B48e5%2C 48e6%2C 52e7%2C 66e8%5D %7D%2C%0A %7B name%3A "King of Hearts"%2C color%3A "%23c62127"%2C class%3A "%5CuD83C%5CuDFF0"%2C rarity%3A "Legendary"%2C cash%3A %5B8e4%2C 42e4%2C 68e5%2C 1e8%2C 15e8%5D%2C time%3A %5B5%2C 5%2C 5%2C 5%2C 5%5D%2C price%3A %5B7e6%2C 11e7%2C 18e8%2C 3e10%5D %7D%2C%0A %7B name%3A "Earth"%2C color%3A "%23416eb5"%2C class%3A "%5CuD83D%5CuDE80"%2C rarity%3A "Uncommon"%2C cash%3A %5B15e3%2C 45e3%2C 6e5%2C 65e5%2C 65e6%5D%2C time%3A %5B3%2C 3%2C 3%2C 3%2C 3%5D%2C price%3A %5B1e6%2C 11e6%2C 15e7%2C 17e8%5D %7D%2C%0A %7B name%3A "Meteor"%2C color%3A "%23c68c3c"%2C class%3A "%5CuD83D%5CuDE80"%2C rarity%3A "Uncommon"%2C cash%3A %5B23e3%2C 65e3%2C 7e5%2C 45e5%2C 2e7%5D%2C time%3A %5B5%2C 4%2C 3%2C 2%2C 1%5D%2C price%3A %5B95e4%2C 13e6%2C 16e7%2C 16e8%5D %7D%2C%0A %7B name%3A "Stars"%2C color%3A "%2319184d"%2C class%3A "%5CuD83D%5CuDE80"%2C rarity%3A "Uncommon"%2C cash%3A %5B1e4%2C 4e4%2C 2e5%2C 2e6%2C 18e6%5D%2C time%3A %5B2%2C 2%2C 1%2C 1%2C 1%5D%2C price%3A %5B14e5%2C 14e6%2C 15e7%2C 15e8%5D %7D%2C%0A %7B name%3A "Alien"%2C color%3A "%238dc63f"%2C class%3A "%5CuD83D%5CuDE80"%2C rarity%3A "Uncommon"%2C cash%3A %5B3e4%2C 1e5%2C 1e6%2C 11e6%2C 85e6%5D%2C time%3A %5B4%2C 4%2C 4%2C 4%2C 4%5D%2C price%3A %5B15e5%2C 17e6%2C 19e7%2C 17e8%5D %7D%2C%0A %7B name%3A "Planet"%2C color%3A "%239dc6ea"%2C class%3A "%5CuD83D%5CuDE80"%2C rarity%3A "Rare"%2C cash%3A %5B25e3%2C 1e5%2C 9e5%2C 9e6%2C 9e7%5D%2C time%3A %5B3%2C 3%2C 3%2C 3%2C 3%5D%2C price%3A %5B2e6%2C 21e6%2C 21e7%2C 24e8%5D %7D%2C%0A %7B name%3A "UFO"%2C color%3A "%23a15095"%2C class%3A "%5CuD83D%5CuDE80"%2C rarity%3A "Rare"%2C cash%3A %5B17e3%2C 7e4%2C 7e5%2C 7e6%2C 7e7%5D%2C time%3A %5B2%2C 2%2C 2%2C 2%2C 2%5D%2C price%3A %5B21e5%2C 23e6%2C 25e7%2C 28e8%5D %7D%2C%0A %7B name%3A "Spaceship"%2C color%3A "%23ffcb29"%2C class%3A "%5CuD83D%5CuDE80"%2C rarity%3A "Epic"%2C cash%3A %5B6e4%2C 32e4%2C 21e5%2C 15e6%2C 85e6%5D%2C time%3A %5B5%2C 4%2C 3%2C 2%2C 1%5D%2C price%3A %5B48e5%2C 46e6%2C 54e7%2C 68e8%5D %7D%2C%0A %7B name%3A "Astronaut"%2C color%3A "%239bd4ee"%2C class%3A "%5CuD83D%5CuDE80"%2C rarity%3A "Legendary"%2C cash%3A %5B45e3%2C 26e4%2C 25e5%2C 38e6%2C 55e7%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 2%5D%2C price%3A %5B65e5%2C 1e8%2C 17e8%2C 27e9%5D %7D%2C%0A %7B name%3A "Lil Bot"%2C color%3A "%233e564a"%2C class%3A "%5CuD83E%5CuDD16"%2C rarity%3A "Uncommon"%2C cash%3A %5B4e3%2C 12e3%2C 18e4%2C 19e5%2C 25e6%5D%2C time%3A %5B1%2C 1%2C 1%2C 1%2C 1%5D%2C price%3A %5B73e4%2C 12e6%2C 13e7%2C 19e8%5D %7D%2C%0A %7B name%3A "Lovely Bot"%2C color%3A "%23f179af"%2C class%3A "%5CuD83E%5CuDD16"%2C rarity%3A "Uncommon"%2C cash%3A %5B16e3%2C 65e3%2C 65e4%2C 48e5%2C 42e6%5D%2C time%3A %5B3%2C 3%2C 3%2C 2%2C 2%5D%2C price%3A %5B13e5%2C 14e6%2C 17e7%2C 16e8%5D %7D%2C%0A %7B name%3A "Angry Bot"%2C color%3A "%23f1613a"%2C class%3A "%5CuD83E%5CuDD16"%2C rarity%3A "Uncommon"%2C cash%3A %5B22e3%2C 85e3%2C 8e5%2C 62e5%2C 65e6%5D%2C time%3A %5B4%2C 4%2C 4%2C 3%2C 3%5D%2C price%3A %5B12e5%2C 13e6%2C 15e7%2C 17e8%5D %7D%2C%0A %7B name%3A "Happy Bot"%2C color%3A "%2351ba6b"%2C class%3A "%5CuD83E%5CuDD16"%2C rarity%3A "Uncommon"%2C cash%3A %5B11e3%2C 45e3%2C 5e5%2C 25e5%2C 3e7%5D%2C time%3A %5B2%2C 2%2C 2%2C 1%2C 1%5D%2C price%3A %5B14e5%2C 15e6%2C 18e7%2C 24e8%5D %7D%2C%0A %7B name%3A "Watson"%2C color%3A "%23d69b5a"%2C class%3A "%5CuD83E%5CuDD16"%2C rarity%3A "Rare"%2C cash%3A %5B24e3%2C 1e5%2C 1e6%2C 1e7%2C 1e8%5D%2C time%3A %5B3%2C 3%2C 3%2C 3%2C 3%5D%2C price%3A %5B2e6%2C 22e6%2C 24e7%2C 26e8%5D %7D%2C%0A %7B name%3A "Buddy Bot"%2C color%3A "%239dc6ea"%2C class%3A "%5CuD83E%5CuDD16"%2C rarity%3A "Rare"%2C cash%3A %5B22e3%2C 95e3%2C 65e4%2C 65e5%2C 65e6%5D%2C time%3A %5B3%2C 3%2C 2%2C 2%2C 2%5D%2C price%3A %5B19e5%2C 21e6%2C 23e7%2C 25e8%5D %7D%2C%0A %7B name%3A "Brainy Bot"%2C color%3A "%239ecf7a"%2C class%3A "%5CuD83E%5CuDD16"%2C rarity%3A "Epic"%2C cash%3A %5B5e4%2C 25e4%2C 21e5%2C 21e6%2C 17e7%5D%2C time%3A %5B4%2C 3%2C 3%2C 3%2C 2%5D%2C price%3A %5B5e6%2C 46e6%2C 5e8%2C 67e8%5D %7D%2C%0A %7B name%3A "Mega Bot"%2C color%3A "%23d71f27"%2C class%3A "%5CuD83E%5CuDD16"%2C rarity%3A "Legendary"%2C cash%3A %5B8e4%2C 43e4%2C 42e5%2C 62e6%2C 1e9%5D%2C time%3A %5B5%2C 5%2C 3%2C 3%2C 3%5D%2C price%3A %5B7e6%2C 12e7%2C 19e8%2C 35e9%5D %7D%2C%0A %5D.map((x) %3D> (%7B name%3A x.name%2C value%3A JSON.stringify(x) %7D))%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (blook) %7B%0A const stateNode %3D getStateNode()%3B%0A if (stateNode.state.blooks.length >%3D 10) alert("Choose a blook to replace")%3B%0A stateNode.waiting %3D false%3B%0A stateNode.chooseBlook(JSON.parse(blook))%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Free Upgrades"%2C%0A description%3A "Sets upgrade prices to 0 for all current blooks"%2C%0A run%3A function () %7B%0A const prices %3D %5B0%2C 0%2C 0%2C 0%5D%3B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B blooks%3A stateNode.state.blooks.map((blook) %3D> ((blook.price %3D prices)%2C blook)) %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Max Blooks"%2C%0A description%3A "Maxes out all your blooks' levels"%2C%0A run%3A function () %7B%0A getStateNode().state.blooks.forEach((blook) %3D> (blook.level %3D 4))%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Remove Glitches"%2C%0A description%3A "Removes all enemy glitches"%2C%0A run%3A function () %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B%0A bits%3A 0%2C%0A ads%3A %5B%5D%2C%0A hazards%3A %5B%5D%2C%0A color%3A ""%2C%0A lol%3A false%2C%0A joke%3A false%2C%0A slow%3A false%2C%0A dance%3A false%2C%0A glitch%3A ""%2C%0A glitcherName%3A ""%2C%0A glitcherBlook%3A ""%2C%0A %7D)%3B%0A clearTimeout(stateNode.adTimeout)%3B%0A clearInterval(stateNode.hazardInterval)%3B%0A clearTimeout(stateNode.nightTimeout)%3B%0A clearTimeout(stateNode.glitchTimeout)%3B%0A clearTimeout(stateNode.lolTimeout)%3B%0A clearTimeout(stateNode.jokeTimeout)%3B%0A clearTimeout(stateNode.slowTimeout)%3B%0A clearTimeout(stateNode.danceTimeout)%3B%0A clearTimeout(stateNode.nameTimeout)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Send Glitch"%2C%0A description%3A "Sends a glitch to everyone else playing"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Glitch"%2C%0A type%3A "options"%2C%0A options%3A Object.entries(%7B lb%3A "Lunch Break"%2C as%3A "Ad Spam"%2C e37%3A "Error 37"%2C nt%3A "Night Time"%2C lo%3A "%23LOL"%2C j%3A "Jokester"%2C sm%3A "Slow Mo"%2C dp%3A "Dance Party"%2C v%3A "Vortex"%2C r%3A "Reverse"%2C f%3A "Flip"%2C m%3A "Micro" %7D).map(%0A (%5Bvalue%2C name%5D) %3D> (%7B name%2C value %7D)%0A )%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (val) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.safe %3D true%3B%0A stateNode.props.liveGameController.setVal(%7B path%3A %60c%2F%24%7BstateNode.props.client.name%7D%2Ftat%60%2C val %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set All MegaBot"%2C%0A description%3A "Sets all your blooks to maxed out Mega Bots"%2C%0A run%3A function () %7B%0A getStateNode().setState(%7B%0A blooks%3A Array.from(%7B length%3A 10 %7D%2C () %3D> (%7B%0A name%3A "Mega Bot"%2C%0A color%3A "%23d71f27"%2C%0A class%3A "🤖"%2C%0A rarity%3A "Legendary"%2C%0A cash%3A %5B8e4%2C 43e4%2C 42e5%2C 62e6%2C 1e9%5D%2C%0A time%3A %5B5%2C 5%2C 3%2C 3%2C 3%5D%2C%0A price%3A %5B7e6%2C 12e7%2C 19e8%2C 35e9%5D%2C%0A active%3A false%2C%0A level%3A 4%2C%0A bonus%3A 5.5%2C%0A %7D))%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Cash"%2C%0A description%3A "Sets amount of cash you have"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Cash"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (cash) %7B%0A getStateNode().setState(%7B cash %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A racing%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212882%2FMedia%2Flogos%2FRacing_Logo_Resized.png"%2C%0A name%3A "Racing"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Instant Win"%2C%0A description%3A "Instantly Wins the race"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B progress%3A stateNode.state.goalAmount %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name %2B "%2Fpr"%2C%0A val%3A stateNode.state.goalAmount%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Questions"%2C%0A description%3A "Sets the number of questions left"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Questions"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (progress) %7B%0A let stateNode %3D getStateNode()%3B%0A progress %3D stateNode.props.client.amount - progress%3B%0A stateNode.setState(%7B progress %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name %2B "%2Fpr"%2C%0A val%3A progress%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A rush%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FBlook_Rush_Logo_Resized.png"%2C%0A name%3A "Blook Rush"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Set Blooks"%2C%0A description%3A "Sets amount of blooks you or your team has"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Blooks"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (numBlooks) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B numBlooks %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A (stateNode.isTeam %3F "a%2F" %3A "c%2F") %2B stateNode.props.client.name %2B "%2Fbs"%2C%0A val%3A numBlooks%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Defense"%2C%0A description%3A "Sets amount of defense you or your team has (Max 4)"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Defense (max 4)"%2C%0A type%3A "number"%2C%0A max%3A 4%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (defense) %7B%0A let numDefense %3D Math.min(defense%2C 4)%3B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B numDefense %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A (stateNode.isTeam %3F "a%2F" %3A "c%2F") %2B stateNode.props.client.name %2B "%2Fd"%2C%0A val%3A numDefense%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A tower%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FTower_Of_Doom_Logo_Resized.png"%2C%0A name%3A "Tower of Doom"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Fill Deck"%2C%0A description%3A "Fills your deck with every maxed out card and artifact (Only works on towers page)"%2C%0A run%3A function () %7B%0A if (window.location.pathname %3D%3D "%2Ftower%2Fmap") %7B%0A const stateNode %3D getStateNode()%3B%0A stateNode.props.tower.artifacts %3D%0A "Medical Kit%7CFury Relic%7CSurvival Guide%7CSteel Socks%7CPiggy Bank%7CLucky Feather%7CCoupon%7CCheese%7CTasty Egg%7CTraining Weights%7CMighty Shield%7CToxic Waste%7CLifeline Totem%7CCursed Hourglass%7CBand-Aid%7CElder Coins%7CCaptain's Anchor%7CChess Pieces%7CPink Hippo%7CAnorak's Wizard Cap%7CDave's Doggo%7CAnubis' Obelisk%7CFarm Tractor%7CMagic Seedling%7CJust A Bone%7CCozy Igloo%7CKing's Crown%7CSacred Scroll".split(%0A "%7C"%0A )%3B%0A stateNode.props.tower.cards %3D%0A "Chick%2C🌽%7CChicken%2C🌽%7CCow%2C🌽%7CGoat%2C🌽%7CHorse%2C🌽%7CPig%2C🌽%7CSheep%2C🌽%7CDuck%2C🌽%7CDog%2C🌽%7CCat%2C🐾%7CRabbit%2C🐾%7CGoldfish%2C🐾%7CHamster%2C🐾%7CTurtle%2C🐾%7CKitten%2C🐾%7CPuppy%2C🐾%7CBear%2C🌲%7CMoose%2C🌲%7CFox%2C🌲%7CRaccoon%2C🌲%7CSquirrel%2C🌲%7COwl%2C🌲%7CHedgehog%2C🌲%7CBaby Penguin%2C❄%EF%B8%8F%7CPenguin%2C❄%EF%B8%8F%7CArctic Fox%2C❄%EF%B8%8F%7CSnowy Owl%2C❄%EF%B8%8F%7CPolar Bear%2C❄%EF%B8%8F%7CArctic Hare%2C❄%EF%B8%8F%7CSeal%2C❄%EF%B8%8F%7CWalrus%2C❄%EF%B8%8F%7CTiger%2C🌴%7CPanther%2C🌴%7CCockatoo%2C🌴%7COrangutan%2C🌴%7CAnaconda%2C🌴%7CMacaw%2C🌴%7CJaguar%2C🌴%7CCapuchin%2C🌴%7CToucan%2C🌴%7CParrot%2C🌴%7CElf%2C⚔%EF%B8%8F%7CWitch%2C⚔%EF%B8%8F%7CWizard%2C⚔%EF%B8%8F%7CFairy%2C⚔%EF%B8%8F%7CSlime Monster%2C⚔%EF%B8%8F%7CJester%2C⚔%EF%B8%8F%7CDragon%2C⚔%EF%B8%8F%7CUnicorn%2C⚔%EF%B8%8F%7CQueen%2C⚔%EF%B8%8F%7CKing%2C⚔%EF%B8%8F%7CSnow Globe%2C☃%EF%B8%8F%7CHoliday Gift%2C☃%EF%B8%8F%7CHot Chocolate%2C☃%EF%B8%8F%7CGingerbread Man%2C☃%EF%B8%8F%7CGingerbread House%2C☃%EF%B8%8F%7CHoliday Wreath%2C☃%EF%B8%8F%7CSnowman%2C☃%EF%B8%8F%7CSanta Claus%2C☃%EF%B8%8F%7CTwo of Spades%2C🏰%7CEat Me%2C🏰%7CDrink Me%2C🏰%7CAlice%2C🏰%7CQueen of Hearts%2C🏰%7CDormouse%2C🏰%7CWhite Rabbit%2C🏰%7CCheshire Cat%2C🏰%7CCaterpillar%2C🏰%7CMad Hatter%2C🏰%7CKing of Hearts%2C🏰"%0A .split("%7C")%0A .map((x) %3D> %7B%0A const %5Bblook%2C c%5D %3D x.split("%2C")%3B%0A return %7B strength%3A 20%2C charisma%3A 20%2C wisdom%3A 20%2C class%3A c%2C blook %7D%3B%0A %7D)%3B%0A try %7B%0A stateNode.props.addTowerNode()%3B%0A %7D catch %7B%7D%0A stateNode.setState(%7B showDeck%3A false %7D)%3B%0A %7D else alert("You need to be on the map to run this cheat!")%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Max Cards"%2C%0A description%3A "Maxes out all the cards in your deck"%2C%0A run%3A function () %7B%0A if (window.location.pathname %3D%3D "%2Ftower%2Fmap") %7B%0A const stateNode %3D getStateNode()%3B%0A stateNode.props.tower.cards.forEach((card) %3D> %7B%0A card.strength %3D 20%3B%0A card.charisma %3D 20%3B%0A card.wisdom %3D 20%3B%0A %7D)%3B%0A try %7B%0A stateNode.forceUpdate()%3B%0A %7D catch %7B%7D%0A %7D else alert("You need to be on the map to run this cheat!")%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Max Health"%2C%0A description%3A "Fills the player's health"%2C%0A run%3A function () %7B%0A if (window.location.pathname %3D%3D "%2Ftower%2Fbattle") getStateNode().setState(%7B myHealth%3A 100%2C myLife%3A 100 %7D)%3B%0A else alert("You need to be in battle to run this cheat!")%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Max Card Stats"%2C%0A description%3A "Maxes out player's current card (Only works on attribute select page)"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A if (stateNode.state.phase !%3D%3D "select") alert("You must be on the attribute selection page!")%3B%0A else stateNode.setState(%7B myCard%3A %7B ...stateNode.state.myCard%2C strength%3A 20%2C charisma%3A 20%2C wisdom%3A 20 %7D %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Min Enemy Stats"%2C%0A description%3A "Makes the enemy card stats all 0 (Only works on attribute select page)"%2C%0A run%3A function () %7B%0A const stateNode %3D getStateNode()%3B%0A if (stateNode.state.phase !%3D%3D "select") alert("You must be on the attribute selection page!")%3B%0A else stateNode.setState(%7B enemyCard%3A %7B ...stateNode.state.enemyCard%2C strength%3A 0%2C charisma%3A 0%2C wisdom%3A 0 %7D %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Coins"%2C%0A description%3A "Try's to set amount of tower coins you have"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Coins"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (coins) %7B%0A if (window.location.pathname %3D%3D "%2Ftower%2Fbattle")%0A try %7B%0A getStateNode().props.setTowerCoins(coins)%3B%0A %7D catch %7B%7D%0A else alert("You need to be in battle to run this cheat!")%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A kingdom%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FCrazy_Kingdom_Logo_Resized.png"%2C%0A name%3A "Crazy Kingdom"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Choice ESP"%2C%0A description%3A "Shows you what will happen if you say Yes or No"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A data%3A null%2C%0A run%3A function () %7B%0A if (!this.enabled) %7B%0A this.enabled %3D true%3B%0A this.data %3D setInterval(%0A (stats) %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A let elements %3D Array.prototype.reduce.call(document.querySelectorAll("%5Bclass*%3DstatContainer%5D")%2C (obj%2C container%2C i) %3D> ((obj%5Bstats%5Bi%5D%5D %3D container)%2C obj)%2C %7B%7D)%3B%0A if (stateNode.state.phase %3D%3D "choice") %7B%0A Array.prototype.forEach.call(document.querySelectorAll(".choiceESP")%2C (x) %3D> x.remove())%3B%0A Object.keys(stateNode.state.guest.yes %7C%7C %7B%7D).forEach((x) %3D> %7B%0A if (elements%5Bx%5D %3D%3D null) return%3B%0A let element %3D document.createElement("div")%3B%0A element.className %3D "choiceESP"%3B%0A element.style %3D "font-size%3A 24px%3B color%3A rgb(75%2C 194%2C 46)%3B font-weight%3A bolder%3B"%3B%0A element.innerText %3D String(stateNode.state.guest.yes%5Bx%5D)%3B%0A elements%5Bx%5D.appendChild(element)%3B%0A %7D)%3B%0A Object.keys(stateNode.state.guest.no %7C%7C %7B%7D).forEach((x) %3D> %7B%0A if (elements%5Bx%5D %3D%3D null) return%3B%0A let element %3D document.createElement("div")%3B%0A element.className %3D "choiceESP"%3B%0A element.style %3D "font-size%3A 24px%3B color%3A darkred%3B font-weight%3A bolder%3B"%3B%0A element.innerText %3D String(stateNode.state.guest.no%5Bx%5D)%3B%0A elements%5Bx%5D.appendChild(element)%3B%0A %7D)%3B%0A Array.prototype.forEach.call(%0A document.querySelectorAll("%5Bclass*%3DguestButton%5D%5Brole%3Dbutton%5D")%2C%0A (x) %3D> (x.onclick %3D () %3D> Array.prototype.forEach.call(document.querySelectorAll(".choiceESP")%2C (x) %3D> x.remove()))%0A )%3B%0A %7D%0A %7D%2C%0A 50%2C%0A %5B"materials"%2C "people"%2C "happiness"%2C "gold"%5D%0A )%3B%0A %7D else %7B%0A this.enabled %3D false%3B%0A clearInterval(this.data)%3B%0A Array.prototype.forEach.call(document.querySelectorAll(".choiceESP")%2C (x) %3D> x.remove())%3B%0A this.data %3D null%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Disable Tax Toucan"%2C%0A description%3A "Tax evasion"%2C%0A run%3A function () %7B%0A getStateNode().taxCounter %3D Number.MAX_VALUE%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Max Stats"%2C%0A description%3A "Sets all resources to the max"%2C%0A run%3A function () %7B%0A getStateNode().setState(%7B materials%3A 100%2C people%3A 100%2C happiness%3A 100%2C gold%3A 100 %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Guests"%2C%0A description%3A "Sets the amount of guests you've seen"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Guests"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (guestScore) %7B%0A getStateNode().setState(%7B guestScore %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Skip Guest"%2C%0A description%3A "Skips the current guest"%2C%0A run%3A function () %7B%0A getStateNode().nextGuest()%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A toy%3A %7B%0A img%3A "https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1663212881%2FMedia%2Flogos%2FSantas_Workshop_Logo_Resized.png"%2C%0A name%3A "Santa's Workshop"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Remove Distractions"%2C%0A description%3A "Removes all enemy distractions"%2C%0A run%3A function () %7B%0A getStateNode().setState(%7B fog%3A !1%2C dusk%3A !1%2C wind%3A !1%2C plow%3A !1%2C blizzard%3A !1%2C force%3A !1%2C canada%3A !1%2C trees%3A %5B!1%2C !1%2C !1%2C !1%2C !1%2C !1%2C !1%2C !1%2C !1%2C !1%5D %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Send Distraction"%2C%0A description%3A "Sends a distraction to everyone else playing"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Distraction"%2C%0A type%3A "options"%2C%0A options%3A Object.entries(%7B c%3A "Oh Canada"%2C b%3A "Blizzard"%2C f%3A "Fog Spell"%2C d%3A "Dark %26 Dusk"%2C w%3A "Howling Wind"%2C g%3A "Gift Time!"%2C t%3A "TREES"%2C s%3A "Snow Plow"%2C fr%3A "Use The Force" %7D).map((%5Bvalue%2C name%5D) %3D> (%7B%0A name%2C%0A value%2C%0A %7D))%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (val) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.safe %3D true%3B%0A stateNode.props.liveGameController.setVal(%7B path%3A %60c%2F%24%7BstateNode.props.client.name%7D%2Ftat%60%2C val %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Toys"%2C%0A description%3A "Sets amount of toys"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Toys"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (toys) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.setState(%7B toys %7D)%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name %2B "%2Ft"%2C%0A val%3A toys%2C%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Toys Per Question"%2C%0A description%3A "Sets amount of toys per question"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Toys Per Question"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (toysPerQ) %7B%0A getStateNode().setState(%7B toysPerQ %7D)%3B%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Swap Toys"%2C%0A description%3A "Swaps toys with someone"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Player"%2C%0A type%3A "options"%2C%0A options%3A () %3D> %7B%0A let stateNode %3D getStateNode()%3B%0A return stateNode.props.liveGameController._liveApp %3F new Promise((res) %3D> stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> players %26%26 res(Object.keys(players)))) %3A %5B%5D%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (target) %7B%0A let stateNode %3D getStateNode()%3B%0A stateNode.props.liveGameController.getDatabaseVal("c"%2C (players) %3D> %7B%0A if (!players %7C%7C players%5Btarget%5D %3D%3D null) return%3B%0A stateNode.props.liveGameController.setVal(%7B%0A path%3A "c%2F" %2B stateNode.props.client.name %2B "%2Ftat"%2C%0A val%3A %60%24%7Btarget%7D%3Aswap%3A%24%7BstateNode.state.toys%7D%60%2C%0A %7D)%3B%0A stateNode.setState(%7B toys%3A players%5Btarget%5D.t %7D)%3B%0A %7D)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A flappy%3A %7B%0A img%3A "https%3A%2F%2Fac.blooket.com%2Fmarketassets%2Fblooks%2Fchick.svg"%2C%0A name%3A "Flappy Blook"%2C%0A cheats%3A %5B%0A %7B%0A name%3A "Toggle Ghost"%2C%0A description%3A "Lets you go through the pipes"%2C%0A type%3A "toggle"%2C%0A enabled%3A false%2C%0A run%3A function () %7B%0A this.enabled %3D !this.enabled%3B%0A for (const body of Object.values(document.querySelector("%23phaser-bouncy"))%5B0%5D.return.updateQueue.lastEffect.deps%5B0%5D.current.config.sceneConfig.physics.world.bodies.entries) %7B%0A if (!body.gameObject.frame.texture.key.startsWith("blook")) continue%3B%0A body.checkCollision.none %3D this.enabled%3B%0A body.gameObject.setAlpha(this.enabled %3F 0.5 %3A 1)%3B%0A break%3B%0A %7D%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Set Score"%2C%0A description%3A "Sets flappy blook score"%2C%0A inputs%3A %5B%0A %7B%0A name%3A "Score"%2C%0A type%3A "number"%2C%0A %7D%2C%0A %5D%2C%0A run%3A function (score) %7B%0A Object.values(document.querySelector("%23phaser-bouncy"))%5B0%5D.return.updateQueue.lastEffect.deps%5B1%5D(score %7C%7C 0)%3B%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A %7D%3B%0A %0A const searchPage %3D document.createElement("div")%3B%0A searchPage.className %3D classes.searchPage%3B%0A %0A const searchbarHolder %3D document.createElement("form")%3B%0A searchbarHolder.className %3D classes.searchbarHolder%3B%0A %0A const searchbarInput %3D document.createElement("input")%3B%0A searchbarInput.placeholder %3D "Search Cheats"%3B%0A searchbarInput.className %3D classes.searchbarInput%3B%0A %0A const searchbarButton %3D document.createElement("div")%3B%0A searchbarButton.onclick %3D () %3D> (searchbarInput.value %3D "")%3B%0A searchbarButton.innerHTML %3D '<i class%3D"fas fa-times" style%3D"line-height%3A 1%3B"><%2Fi>'%3B%0A searchbarButton.className %3D classes.searchbarButton%3B%0A %0A searchbarHolder.append(searchbarInput%2C searchbarButton)%3B%0A %0A const searchResults %3D document.createElement("div")%3B%0A searchResults.className %3D classes.noScroll %2B " " %2B classes.searchResults%3B%0A %0A const noResult %3D document.createElement("div")%3B%0A noResult.className %3D classes.noResult%3B%0A %0A searchPage.append(searchbarHolder%2C searchResults)%3B%0A %0A let searchThrottle%2C%0A gamemodeResults %3D %7B%7D%3B%0A searchPage.onPath %3D searchbarHolder.onsubmit %3D (e) %3D> %7B%0A clearTimeout(searchThrottle)%3B%0A e%3F.preventDefault%3F.()%3B%0A const query %3D searchbarInput.value.toLowerCase()%3B%0A let hasResults %3D false%3B%0A for (const child of searchResults.children) %7B%0A if (child !%3D noResult) %7B%0A if (child.dataset%5Bdatasets.mode%5D%3F.includes%3F.(query) %7C%7C child.dataset%5Bdatasets.name%5D.includes(query) %7C%7C child.dataset%5Bdatasets.description%5D%3F.includes%3F.(query)) %7B%0A hasResults %3D true%3B%0A child.style.display %3D "block"%3B%0A if (child.dataset%5Bdatasets.mode%5D) gamemodeResults%5Bchild.dataset%5Bdatasets.mode%5D%5D.style.display %3D "block"%3B%0A %7D else child.style.display %3D "none"%3B%0A %7D%0A %7D%0A if (!hasResults) %7B%0A noResult.innerText %3D %60No results found for "%24%7Bquery%7D"%60%3B%0A noResult.style.display %3D "block"%3B%0A %7D else noResult.style.display %3D "none"%3B%0A %7D%3B%0A %0A searchbarInput.oninput %3D (e) %3D> %7B%0A clearTimeout(searchThrottle)%3B%0A searchThrottle %3D setTimeout(searchbarHolder.onsubmit%2C 1000)%3B%0A %7D%3B%0A %0A const favoritesPage %3D document.createElement("div")%3B%0A favoritesPage.className %3D classes.noScroll %2B " " %2B classes.favoritesPage%3B%0A %0A const noFavorites %3D document.createElement("span")%3B%0A noFavorites.innerText %3D "You have no favorites."%3B%0A %0A favoritesPage.append(noFavorites)%3B%0A %0A favoritesPage.onPath %3D () %3D> %7B%0A noFavorites.style.display %3D favoritesPage.querySelector("%5Bdata-" %2B datasets.favorited %2B "%3D'true'%5D") %3D%3D null %3F "block" %3A "none"%3B%0A %7D%3B%0A %0A gamemodesList.innerHTML %3D ""%3B%0A searchResults.innerHTML %3D ""%3B%0A searchResults.append(noResult)%3B%0A for (const mode in cheats) %7B%0A const gamemode %3D document.createElement("div")%3B%0A gamemode.className %3D classes.gamemode%3B%0A const image %3D document.createElement("img")%3B%0A image.src %3D cheats%5Bmode%5D.img%3B%0A const name %3D document.createElement("div")%3B%0A image.alt %3D name.innerText %3D cheats%5Bmode%5D.name%3B%0A gamemode.append(image%2C name)%3B%0A %0A const cheatsPage %3D document.createElement("div")%3B%0A cheatsPage.className %3D classes.contentPage%3B%0A %0A const cheatsList %3D document.createElement("div")%3B%0A cheatsList.className %3D classes.cheatsList %2B " " %2B classes.noScroll%3B%0A %0A const inputElements %3D %5B%5D%3B%0A cheatsPage.onPath %3D () %3D> inputElements.forEach((x) %3D> x())%3B%0A %0A const searchResultSeparator %3D document.createElement("div")%3B%0A searchResultSeparator.onclick %3D () %3D> path.push(cheats%5Bmode%5D.name%2C cheatsPage)%3B%0A searchResultSeparator.className %3D classes.searchResultSeparator%3B%0A searchResultSeparator.dataset%5Bdatasets.name%5D %3D (searchResultSeparator.innerText %3D cheats%5Bmode%5D.name).toLowerCase()%3B%0A gamemodeResults%5Bcheats%5Bmode%5D.name.toLowerCase()%5D %3D searchResultSeparator%3B%0A searchResults.append(searchResultSeparator)%3B%0A %0A const favoritesSeparator %3D searchResultSeparator.cloneNode(true)%3B%0A favoritesSeparator.dataset%5Bdatasets.favorites%5D %3D 0%3B%0A favoritesSeparator.onclick %3D searchResultSeparator.onclick%3B%0A favoritesPage.append(favoritesSeparator)%3B%0A %0A for (const cheat of cheats%5Bmode%5D.cheats) %7B%0A const cheatId %3D %60%24%7Bmode%7D.%24%7Bcheat.name.toLowerCase()%7D.%24%7Bcheat.type %3D%3D "toggle" %3F "toggle" %3A "execute"%7D%60%3B%0A const cheatElement %3D document.createElement("div")%3B%0A %0A const searchResult %3D document.createElement("div")%3B%0A searchResult.className %3D classes.searchResult%3B%0A %0A const searchResultInfo %3D document.createElement("div")%3B%0A searchResultInfo.className %3D classes.searchResultInfo%3B%0A %0A const searchResultName %3D document.createElement("div")%3B%0A searchResultName.className %3D classes.searchResultName%3B%0A searchResult.dataset%5Bdatasets.name%5D %3D (searchResultName.innerText %3D cheat.name %2B (cheat.type %3D%3D "toggle" %26%26 !cheat.name.includes("toggle") %3F " (Toggle)" %3A "")).toLowerCase()%3B%0A searchResult.dataset%5Bdatasets.mode%5D %3D cheats%5Bmode%5D.name.toLowerCase()%3B%0A const searchResultDescription %3D document.createElement("div")%3B%0A searchResultDescription.className %3D classes.searchResultDescription%3B%0A searchResult.dataset%5Bdatasets.description%5D %3D (searchResultDescription.innerText %3D cheat.description).toLowerCase()%3B%0A %0A searchResultInfo.append(searchResultName%2C searchResultDescription)%3B%0A %0A searchResult.onclick %3D () %3D> %7B%0A path.push(searchResultName.innerText%2C cheatsPage)%3B%0A cheatElement.scrollIntoView()%3B%0A cheatElement.animate(%0A %5B%0A %7B%0A color%3A "var(--textColor)"%2C%0A textShadow%3A "0 0 0px var(--highlight)"%2C%0A %7D%2C%0A %7B%0A color%3A "var(--highlight)"%2C%0A textShadow%3A "0 0 5px var(--highlight)"%2C%0A offset%3A 0.25%2C%0A %7D%2C%0A %7B%0A color%3A "var(--textColor)"%2C%0A textShadow%3A "0 0 0px var(--highlight)"%2C%0A %7D%2C%0A %5D%2C%0A 1500%0A )%3B%0A %7D%3B%0A %0A searchResult.append(searchResultInfo)%3B%0A %0A searchResults.append(searchResult)%3B%0A %0A const cheatTop %3D document.createElement("div")%3B%0A cheatTop.className %3D classes.cheatTop%3B%0A const cheatInfo %3D document.createElement("div")%3B%0A cheatInfo.className %3D classes.cheatInfo%3B%0A const cheatName %3D document.createElement("span")%3B%0A cheatName.innerText %3D cheat.name%3B%0A cheatName.className %3D classes.cheatName%3B%0A %0A const favoriteButton %3D document.createElement("i")%3B%0A favoriteButton.className %3D "far fa-star " %2B classes.favoriteButton%3B%0A %0A const favoriteInner %3D document.createElement("i")%3B%0A favoriteInner.className %3D "fas fa-star"%3B%0A favoriteButton.append(favoriteInner)%3B%0A %0A let favoritesPageCopy %3D searchResult.cloneNode(true)%3B%0A favoritesPageCopy.dataset%5Bdatasets.favorited%5D %3D false%3B%0A favoritesPageCopy.onclick %3D searchResult.onclick%3B%0A favoritesPage.append(favoritesPageCopy)%3B%0A %0A favoriteButton.onclick %3D () %3D> %7B%0A const favorited %3D cheatId in Settings.data.favorites%3B%0A favoriteInner.classList.toggle(classes.filled%2C !favorited)%3B%0A if (favorited) %7B%0A delete Settings.data.favorites%5BcheatId%5D%3B%0A favoritesPageCopy.dataset%5Bdatasets.favorited%5D %3D false%3B%0A favoritesSeparator.dataset%5Bdatasets.favorites%5D--%3B%0A %7D else %7B%0A Settings.data.favorites%5BcheatId%5D %3D 1%3B%0A favoritesPageCopy.dataset%5Bdatasets.favorited%5D %3D true%3B%0A favoritesSeparator.dataset%5Bdatasets.favorites%5D%2B%2B%3B%0A %7D%0A favoritesPage.onPath()%3B%0A Settings.setData(Settings.data)%3B%0A %7D%3B%0A %0A if (cheatId in (Settings.data.favorites %3F%3F%3D %7B%7D)) %7B%0A favoriteInner.classList.toggle(classes.filled%2C true)%3B%0A favoritesPageCopy.dataset%5Bdatasets.favorited%5D %3D true%3B%0A favoritesSeparator.dataset%5Bdatasets.favorites%5D%2B%2B%3B%0A %7D%0A %0A cheatName.append(favoriteButton)%3B%0A %0A const cheatDescription %3D document.createElement("span")%3B%0A cheatDescription.innerText %3D cheat.description%3B%0A cheatDescription.className %3D classes.cheatDescription%3B%0A cheatInfo.append(cheatName%2C cheatDescription)%3B%0A cheatElement.append(cheatTop)%3B%0A const inputs %3D %5B%5D%3B%0A if (Array.isArray(cheat.inputs)) %7B%0A const cheatInputs %3D document.createElement("div")%3B%0A cheatInputs.className %3D classes.cheatInputs%3B%0A for (const input of cheat.inputs) %7B%0A const inputElement %3D document.createElement("div")%3B%0A const inputName %3D document.createElement("span")%3B%0A inputName.innerText %3D input.name%3B%0A inputElement.append(inputName)%3B%0A cheatInputs.append(inputElement)%3B%0A %0A if (input.type %3D%3D "options") %7B%0A const inputField %3D document.createElement("select")%3B%0A inputField.dataset%5Bdatasets.type%5D %3D "options"%3B%0A inputElement.append(inputField)%3B%0A inputs.push(inputField)%3B%0A let curField %3D inputField%3B%0A const updateOptions %3D () %3D> %7B%0A let choose %3D input.options%3B%0A %0A const newInputField %3D document.createElement("select")%3B%0A newInputField.dataset%5Bdatasets.type%5D %3D "options"%3B%0A inputs%5Binputs.indexOf(curField)%5D %3D newInputField%3B%0A curField.replaceWith(newInputField)%3B%0A curField %3D newInputField%3B%0A %0A if (typeof choose %3D%3D "function")%0A try %7B%0A choose %3D choose()%3B%0A %7D catch %7B%0A choose %3D %5B%5D%3B%0A %7D%0A if (choose instanceof Promise) %7B%0A const waiting %3D document.createElement("option")%3B%0A waiting.value %3D '""'%3B%0A waiting.innerHTML %3D "Loading Options..."%3B%0A curField.append(waiting)%3B%0A choose.then((choices) %3D> %7B%0A if (choices%3F.length > 0) %7B%0A curField.innerHTML %3D ""%3B%0A for (const choice of choices) %7B%0A const option %3D document.createElement("option")%3B%0A option.value %3D JSON.stringify(choice%3F.value %3F%3F choice)%3B%0A option.innerHTML %3D choice%3F.name %7C%7C choice%3B%0A curField.append(option)%3B%0A %7D%0A %7D else %7B%0A const newInputField %3D document.createElement("input")%3B%0A inputs%5Binputs.indexOf(curField)%5D %3D newInputField%3B%0A curField.replaceWith(newInputField)%3B%0A newInputField.dataset%5Bdatasets.type%5D %3D "string"%3B%0A newInputField.placeholder %3D input.name%3B%0A curField %3D newInputField%3B%0A %7D%0A %7D)%3B%0A %7D else %7B%0A if (choose%3F.length > 0) %7B%0A for (const choice of choose) %7B%0A const option %3D document.createElement("option")%3B%0A option.value %3D JSON.stringify(choice%3F.value %3F%3F choice)%3B%0A option.innerHTML %3D choice%3F.name %7C%7C choice%3B%0A curField.append(option)%3B%0A %7D%0A %7D else %7B%0A const newInputField %3D document.createElement("input")%3B%0A inputs%5Binputs.indexOf(curField)%5D %3D newInputField%3B%0A curField.replaceWith(newInputField)%3B%0A newInputField.dataset%5Bdatasets.type%5D %3D "string"%3B%0A newInputField.placeholder %3D input.name%3B%0A curField %3D newInputField%3B%0A %7D%0A %7D%0A %7D%3B%0A updateOptions()%3B%0A inputElements.push(updateOptions)%3B%0A %7D else %7B%0A const inputField %3D document.createElement("input")%3B%0A inputField.dataset%5Bdatasets.type%5D %3D input.type%3B%0A if (input.type %3D%3D "number") %7B%0A inputField.type %3D "number"%3B%0A inputField.min %3D input.min%3B%0A inputField.max %3D input.max%3B%0A inputField.value %3D input.value %7C%7C (input.min %3F%3F 0)%3B%0A %7D%0A inputField.placeholder %3D input.name%3B%0A inputElement.append(inputField)%3B%0A inputs.push(inputField)%3B%0A %7D%0A %7D%0A cheatElement.append(cheatInputs)%3B%0A %7D%0A cheatTop.append(cheatInfo)%3B%0A const runButton %3D document.createElement("div")%3B%0A runButton.className %3D classes.runCheat%3B%0A if (cheat.type %3D%3D "toggle") %7B%0A runButton.innerText %3D "Toggle On"%3B%0A runButton.classList.add(classes.toggleCheat)%3B%0A %7D else runButton.innerText %3D "Execute"%3B%0A runButton.onclick %3D () %3D> %7B%0A cheat.run.apply(%0A cheat%2C%0A inputs.map((x) %3D> (x.dataset%5Bdatasets.type%5D %3D%3D "number" %3F parseFloat("0" %2B x.value) %3A x.dataset%5Bdatasets.type%5D %3D%3D "options" %3F JSON.parse(x.value) %3A x.value))%0A )%3B%0A if (cheat.type %3D%3D "toggle") %7B%0A runButton.innerText %3D "Toggle " %2B (cheat.enabled %3F "Off" %3A "On")%3B%0A runButton.classList.toggle(classes.active%2C cheat.enabled)%3B%0A Logs.addLog(%60Toggled "%24%7Bcheat.name%7D" %24%7Bcheat.enabled %3F "on" %3A "off"%7D%60%2C cheat.enabled %3F "var(--toggleOn)" %3A "var(--toggleOff)")%3B%0A %7D%0A Logs.addLog(%60Ran "%24%7Bcheat.name%7D"%60%2C "var(--highlight)")%3B%0A %7D%3B%0A cheatTop.append(runButton)%3B%0A cheatsList.append(cheatElement)%3B%0A %7D%0A %0A cheatsPage.append(cheatsList)%3B%0A %0A gamemode.onclick %3D () %3D> path.push(cheats%5Bmode%5D.name%2C cheatsPage)%3B%0A gamemodesList.append(gamemode)%3B%0A %7D%0A gamemodesPage.append(gamemodesList)%3B%0A %0A const creditsPage %3D document.createElement("div")%3B%0A creditsPage.className %3D classes.creditsPage%3B%0A %0A const licenseMessage %3D document.createElement("div")%3B%0A licenseMessage.className %3D classes.licenseMessage%3B%0A %0A const copyrightTag %3D document.createElement("span")%3B%0A copyrightTag.className %3D classes.copyrightTag%3B%0A %0A copyrightTag.innerText %3D %60Dont steal my ui pls %3AD%60%3B%0A %0A const codingCredits %3D document.createElement("ul")%3B%0A codingCredits.className %3D classes.codingCredits%3B%0A %0A codingCredits.append(createCredit("By Adrian"))%3B%0A %0A const creditLinks %3D document.createElement("ul")%3B%0A creditLinks.className %3D classes.creditLinks%3B%0A %0A %0A function parseTime(d) %7B%0A const hour %3D d.getHours() %25 12 %3D%3D 0 %3F 12 %3A d.getHours() %25 12%3B%0A const minutes %3D d.getMinutes().toString().padStart(2%2C "0")%3B%0A return %60%24%7Bhour%7D%3A%24%7Bminutes%7D %24%7Bd.getHours() >%3D 12 %3F "PM" %3A "AM"%7D%60%3B%0A %7D%0A %0A function parseDate(d) %7B%0A const month %3D %5B"January"%2C "February"%2C "March"%2C "April"%2C "May"%2C "June"%2C "July"%2C "August"%2C "September"%2C "October"%2C "November"%2C "December"%5D%5Bd.getMonth()%5D%3B%0A return %60%24%7Bmonth%7D %24%7Bd.getDate()%7D%24%7BgetOrdinal(d.getDate())%7D%2C %24%7Bd.getFullYear()%7D - %24%7BparseTime(d)%7D%60%3B%0A %7D%0A %0A const uploadDates %3D document.createElement("ul")%3B%0A uploadDates.className %3D classes.uploadDates%3B%0A %0A try %7B%0A let currentDate %3D new Date(timeProcessed)%2C%0A latestDate %3D new Date(latestProcess)%3B%0A uploadDates.append(createCredit("Current GUI Upload Date"%2C parseDate(currentDate)))%3B%0A if (latestProcess !%3D -1) uploadDates.append(createCredit("Latest GUI Upload Date"%2C parseDate(latestDate)))%3B%0A if (currentDate < latestDate) %7B%0A const warning %3D document.createElement("span")%3B%0A warning.className %3D classes.warning%3B%0A warning.innerText %3D "You are using an outdated version of AA-Gui%2C check out the GitHub %2F GitLab for a newer version."%3B%0A uploadDates.append(warning)%3B%0A %7D%0A %7D catch %7B%0A const warning %3D document.createElement("span")%3B%0A warning.className %3D classes.warning%3B%0A warning.innerText %3D "Unable to check update information."%3B%0A uploadDates.append(warning)%3B%0A %7D%0A %0A creditsPage.append(codingCredits%2C copyrightTag)%3B%0A %0A function getOrdinal(n) %7B%0A if (n %25 10 %3D%3D 1 %26%26 n %25 100 !%3D 11) return "st"%3B%0A if (n %25 10 %3D%3D 2 %26%26 n %25 100 !%3D 12) return "nd"%3B%0A if (n %25 10 %3D%3D 3 %26%26 n %25 100 !%3D 13) return "rd"%3B%0A return "th"%3B%0A %7D%0A %0A function createCredit(contribution%2C html) %7B%0A const listItem %3D document.createElement("li")%3B%0A const contributionText %3D document.createElement("strong")%3B%0A contributionText.innerText %3D contribution %2B "%3A"%3B%0A const right %3D document.createElement("span")%3B%0A right.innerHTML %3D html%3B%0A listItem.append(contributionText%2C right)%3B%0A return listItem%3B%0A %7D%0A %0A const settingsPage %3D document.createElement("div")%3B%0A settingsPage.className %3D classes.noScroll %2B " " %2B classes.settingsPage%3B%0A %0A const searchResultSeparator %3D document.createElement("div")%3B%0A searchResultSeparator.onclick %3D () %3D> path.push("Settings"%2C settingsPage)%3B%0A searchResultSeparator.className %3D classes.searchResultSeparator%3B%0A searchResultSeparator.innerText %3D "Settings"%3B%0A searchResultSeparator.dataset%5Bdatasets.name%5D %3D "settings"%3B%0A gamemodeResults.settings %3D searchResultSeparator%3B%0A searchResults.append(searchResultSeparator)%3B%0A %0A const settingRefresh %3D %5B%5D%3B%0A function addSetting(name%2C description%2C input%2C onUpdate) %7B%0A const settingElement %3D document.createElement("div")%3B%0A %0A const searchResult %3D document.createElement("div")%3B%0A searchResult.className %3D classes.searchResult%3B%0A %0A const searchResultInfo %3D document.createElement("div")%3B%0A searchResultInfo.className %3D classes.searchResultInfo%3B%0A %0A const searchResultName %3D document.createElement("div")%3B%0A searchResultName.className %3D classes.searchResultName%3B%0A searchResult.dataset%5Bdatasets.name%5D %3D (searchResultName.innerText %3D name).toLowerCase()%3B%0A searchResult.dataset%5Bdatasets.mode%5D %3D "settings"%3B%0A const searchResultDescription %3D document.createElement("div")%3B%0A searchResultDescription.className %3D classes.searchResultDescription%3B%0A searchResult.dataset%5Bdatasets.description%5D %3D (searchResultDescription.innerText %3D description).toLowerCase()%3B%0A %0A searchResultInfo.append(searchResultName%2C searchResultDescription)%3B%0A %0A searchResult.onclick %3D () %3D> %7B%0A path.push(name%2C settingsPage)%3B%0A settingElement.scrollIntoView()%3B%0A settingElement.animate(%0A %5B%0A %7B%0A color%3A "var(--textColor)"%2C%0A textShadow%3A "0 0 0px var(--highlight)"%2C%0A %7D%2C%0A %7B%0A color%3A "var(--highlight)"%2C%0A textShadow%3A "0 0 5px var(--highlight)"%2C%0A offset%3A 0.25%2C%0A %7D%2C%0A %7B%0A color%3A "var(--textColor)"%2C%0A textShadow%3A "0 0 0px var(--highlight)"%2C%0A %7D%2C%0A %5D%2C%0A 1500%0A )%3B%0A %7D%3B%0A %0A searchResult.append(searchResultInfo)%3B%0A %0A searchResults.append(searchResult)%3B%0A %0A const settingTop %3D document.createElement("div")%3B%0A settingTop.className %3D classes.cheatTop%3B%0A const settingInfo %3D document.createElement("div")%3B%0A settingInfo.className %3D classes.cheatInfo%3B%0A const settingName %3D document.createElement("span")%3B%0A settingName.innerText %3D name%3B%0A settingName.className %3D classes.cheatName%3B%0A const settingDescription %3D document.createElement("span")%3B%0A settingDescription.innerText %3D description%3B%0A settingDescription.className %3D classes.cheatDescription%3B%0A settingInfo.append(settingName%2C settingDescription)%3B%0A settingElement.append(settingTop)%3B%0A %0A const settingInputs %3D document.createElement("div")%3B%0A settingInputs.className %3D classes.cheatInputs%3B%0A %0A const inputElement %3D document.createElement("div")%3B%0A const inputName %3D document.createElement("span")%3B%0A inputName.innerText %3D input.name%3B%0A inputElement.append(inputName)%3B%0A settingInputs.append(inputElement)%3B%0A %0A let inputField %3D document.createElement("input")%3B%0A inputField.dataset%5Bdatasets.type%5D %3D input.type%3B%0A if (input.type %3D%3D "keybind") %7B%0A inputField.readOnly %3D true%3B%0A let locked %3D false%3B%0A inputField.data %3D input.data%3B%0A inputField.onclick %3D async () %3D> %7B%0A if (locked) return%3B%0A inputField.value %3D "Waiting for input..."%3B%0A locked %3D true%3B%0A inputField.data %3D await input.listen((e) %3D> (inputField.value %3D e %2B "..."))%3B%0A locked %3D false%3B%0A inputField.value %3D inputField.value.slice(0%2C -3)%3B%0A %7D%3B%0A (settingRefresh%5BsettingRefresh.length%5D %3D () %3D> (inputField.value %3D input.value()))()%3B%0A %7D else if (input.type %3D%3D "options") %7B%0A inputField %3D document.createElement("select")%3B%0A inputField.dataset%5Bdatasets.type%5D %3D "options"%3B%0A %0A const defaultOption %3D document.createElement("option")%3B%0A defaultOption.value %3D "%7B%7D"%3B%0A defaultOption.innerHTML %3D "Select a Theme"%3B%0A (settingRefresh%5BsettingRefresh.length%5D %3D () %3D> (defaultOption.selected %3D true))()%3B%0A inputField.append(defaultOption)%3B%0A %0A for (const choice of input.options) %7B%0A const option %3D document.createElement("option")%3B%0A option.value %3D JSON.stringify(choice%3F.value %3F%3F choice)%3B%0A option.innerHTML %3D choice%3F.name %7C%7C choice%3B%0A inputField.append(option)%3B%0A %7D%0A %7D else %7B%0A if (input.type %3D%3D "number") %7B%0A inputField.type %3D "number"%3B%0A inputField.min %3D input.min%3B%0A inputField.max %3D input.max%3B%0A %7D%0A (settingRefresh%5BsettingRefresh.length%5D %3D () %3D> (inputField.value %3D input.value()))()%3B%0A inputField.placeholder %3D input.name%3B%0A %7D%0A inputElement.append(inputField)%3B%0A %0A settingElement.append(settingInputs)%3B%0A %0A settingTop.append(settingInfo)%3B%0A %0A const runButton %3D document.createElement("div")%3B%0A runButton.className %3D classes.runCheat%3B%0A runButton.innerText %3D "Update"%3B%0A runButton.onclick %3D () %3D>%0A onUpdate(inputField.dataset%5Bdatasets.type%5D %3D%3D "number" %3F parseFloat("0" %2B inputField.value) %3A inputField.dataset%5Bdatasets.type%5D %3D%3D "options" %3F JSON.parse(inputField.value) %3A inputField.data %3F%3F inputField.value)%3B%0A settingTop.append(runButton)%3B%0A %0A settingsPage.append(settingElement)%3B%0A %7D%0A %0A settingsPage.onPath %3D () %3D> settingRefresh.forEach((x) %3D> x())%3B%0A %0A addSetting(%0A "Hide Keybind"%2C%0A "Shortcut to hide to GUI"%2C%0A %7B%0A type%3A "keybind"%2C%0A name%3A "Shortcut"%2C%0A data%3A defaultHideKey%2C%0A value%3A () %3D> parseKeybind(Settings.data.hideKey)%2C%0A listen%3A (change) %3D> createKeybindListener((keys) %3D> change(parseKeybind(keys)))%2C%0A %7D%2C%0A (x) %3D> %7B%0A Settings.setItem("hideKey"%2C x)%3B%0A %7D%0A )%3B%0A addSetting(%0A "Close Keybind"%2C%0A "Shortcut to disable all toggles and close GUI"%2C%0A %7B%0A type%3A "keybind"%2C%0A name%3A "Shortcut"%2C%0A data%3A defaultCloseKey%2C%0A value%3A () %3D> parseKeybind(Settings.data.closeKey)%2C%0A listen%3A (change) %3D> createKeybindListener((keys) %3D> change(parseKeybind(keys)))%2C%0A %7D%2C%0A (x) %3D> %7B%0A Settings.setItem("closeKey"%2C x)%3B%0A %7D%0A )%3B%0A addSetting(%0A "Theme"%2C%0A "A preset look for the GUI"%2C%0A %7B%0A type%3A "options"%2C%0A name%3A "Preset"%2C%0A options%3A %5B%0A %7B%0A name%3A "Default"%2C%0A value%3A %7B%0A highlight%3A variables%5B"--highlight"%5D%2C%0A highlight2%3A variables%5B"--highlight2"%5D%2C%0A background%3A variables%5B"--background"%5D%2C%0A background2%3A variables%5B"--background2"%5D%2C%0A textColor%3A variables%5B"--textColor"%5D%2C%0A textColor2%3A variables%5B"--textColor2"%5D%2C%0A toggleOff%3A variables%5B"--toggleOff"%5D%2C%0A toggleOn%3A variables%5B"--toggleOn"%5D%2C%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Crypto Hack"%2C%0A value%3A %7B%0A highlight%3A "rgb(88 175 88)"%2C%0A toggleOn%3A "%230b601b"%2C%0A background%3A "radial-gradient(%2311581e%2C%23041607)"%2C%0A background2%3A "%231a1a1a"%2C%0A toggleOff%3A "%23A02626"%2C%0A highlight2%3A "%2349d149"%2C%0A textColor2%3A "%2349d149"%2C%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Deceptive Dinos"%2C%0A value%3A %7B%0A highlight%3A "%23af8942"%2C%0A toggleOn%3A "%232fb62f"%2C%0A background%3A "radial-gradient(rgba(220%2C 184%2C 86%2C 0)%2C rgba(220%2C 184%2C 86%2C 0.4))%2C url(https%3A%2F%2Fac.blooket.com%2Fplay%2F111cb7e0ee6607ac3d1a13d534c0e0f1.png)%2C %23ead49a"%2C%0A background2%3A "radial-gradient(rgba(1%2C104%2C162%2C.6)%2Crgba(24%2C55%2C110%2C.5))%2Cradial-gradient(%232783b4 1.5px%2C%2318376e 0) center %2F 24px 24px"%2C%0A toggleOff%3A "%23A02626"%2C%0A highlight2%3A "rgb(0 0 0 %2F 25%25)"%2C%0A textColor2%3A "%23FFFFFF"%2C%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Blook Rush"%2C%0A value%3A %7B%0A highlight%3A "%23888"%2C%0A toggleOn%3A "%2347A547"%2C%0A background%3A "repeating-linear-gradient(45deg%2Cwhite%2Cwhite 8%25%2C%23e6e6e6 0%2C%23e6e6e6 16%25)"%2C%0A background2%3A "%2336c"%2C%0A toggleOff%3A "%23A02626"%2C%0A highlight2%3A "rgb(0 0 0 %2F 25%25)"%2C%0A textColor2%3A "%23FFFFFF"%2C%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Factory"%2C%0A value%3A %7B%0A highlight%3A "%231563bf"%2C%0A toggleOn%3A "rgb(75%2C 194%2C 46)"%2C%0A background%3A "%233a3a3a"%2C%0A background2%3A "%232d313d"%2C%0A toggleOff%3A "%239a49aa"%2C%0A highlight2%3A "rgb(0 0 0 %2F 25%25)"%2C%0A textColor2%3A "%23a5aabe"%2C%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Cafe"%2C%0A value%3A %7B%0A highlight%3A "%230bc2cf"%2C%0A toggleOn%3A "%2347A547"%2C%0A background%3A "linear-gradient(90deg%2Crgba(200%2C0%2C0%2C.5) 50%25%2Ctransparent 0) center %2F 50px 50px%2Clinear-gradient(rgba(200%2C0%2C0%2C0.5) 50%25%2Ctransparent 0) white center %2F 50px 50px"%2C%0A background2%3A "rgb(64%2C 64%2C 64)"%2C%0A toggleOff%3A "%23A02626"%2C%0A highlight2%3A "rgb(0 0 0 %2F 25%25)"%2C%0A textColor2%3A "%23ac7339"%2C%0A textColor%3A "%23FFFFFF"%2C%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Tower of Doom"%2C%0A value%3A %7B%0A highlight%3A "%239a49aa"%2C%0A toggleOn%3A "%234bc22e"%2C%0A background%3A "rgb(41 41 41)"%2C%0A background2%3A "%23404040"%2C%0A toggleOff%3A "rgb(151%2C 15%2C 5)"%2C%0A highlight2%3A "rgb(0 0 0 %2F 25%25)"%2C%0A textColor2%3A "%239a49aa"%2C%0A textColor%3A "%23FFFFFF"%2C%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Monster Brawl"%2C%0A value%3A %7B%0A highlight%3A "%232966a6"%2C%0A toggleOn%3A "%2347A547"%2C%0A background%3A "rgb(45%2C 51%2C 67)"%2C%0A background2%3A "%23374154"%2C%0A toggleOff%3A "%23A02626"%2C%0A highlight2%3A "%23264d99"%2C%0A textColor2%3A "%23264d99"%2C%0A textColor%3A "%23FFFFFF"%2C%0A %7D%2C%0A %7D%2C%0A %7B%0A name%3A "Tower Defense 2"%2C%0A value%3A %7B%0A highlight%3A "%2340b1d8"%2C%0A toggleOn%3A "%2347A547"%2C%0A background%3A "url(https%3A%2F%2Fmedia.blooket.com%2Fimage%2Fupload%2Fv1676164454%2FMedia%2Fdefense%2FbackgroundTd1-02.svg) center %2F cover"%2C%0A background2%3A "%23293c82"%2C%0A toggleOff%3A "%23A02626"%2C%0A highlight2%3A "rgb(0 0 0 %2F 25%25)"%2C%0A textColor2%3A "%23a33c22"%2C%0A textColor%3A "%23FFFFFF"%2C%0A %7D%2C%0A %7D%2C%0A %5D%2C%0A %7D%2C%0A (x) %3D> %7B%0A Settings.setItem("theme"%2C %7B ...Settings.data.theme%2C ...x %7D)%3B%0A for (const prop in x) gui.style.setProperty(%60--%24%7Bprop%7D%60%2C x%5Bprop%5D)%3B%0A path.updatePath()%3B%0A %7D%0A )%3B%0A addSetting("Highlight 1"%2C "Hover color%2C sub-text color%2C button color%2C and input outlines"%2C %7B type%3A "string"%2C name%3A "CSS Value"%2C value%3A () %3D> gui.style.getPropertyValue("--highlight") %7D%2C (x) %3D>%0A gui.style.setProperty("--highlight"%2C Settings.setItem("theme.highlight"%2C x %7C%7C variables%5B"--highlight"%5D))%0A )%3B%0A addSetting("Highlight 2"%2C "Credits page's warning message color"%2C %7B type%3A "string"%2C name%3A "CSS Value"%2C value%3A () %3D> gui.style.getPropertyValue("--highlight2") %7D%2C (x) %3D>%0A gui.style.setProperty("--highlight2"%2C Settings.setItem("theme.highlight2"%2C x %7C%7C variables%5B"--highlight2"%5D))%0A )%3B%0A addSetting("Background"%2C "Main GUI background color"%2C %7B type%3A "string"%2C name%3A "CSS Value"%2C value%3A () %3D> gui.style.getPropertyValue("--background") %7D%2C (x) %3D>%0A gui.style.setProperty("--background"%2C Settings.setItem("theme.background"%2C x %7C%7C variables%5B"--background"%5D))%0A )%3B%0A addSetting("Background 2"%2C "Secondary GUI background color"%2C %7B type%3A "string"%2C name%3A "CSS Value"%2C value%3A () %3D> gui.style.getPropertyValue("--background2") %7D%2C (x) %3D>%0A gui.style.setProperty("--background2"%2C Settings.setItem("theme.background2"%2C x %7C%7C variables%5B"--background2"%5D))%0A )%3B%0A addSetting("Text Color"%2C "Main text color"%2C %7B type%3A "string"%2C name%3A "CSS Value"%2C value%3A () %3D> gui.style.getPropertyValue("--textColor") %7D%2C (x) %3D>%0A gui.style.setProperty("--textColor"%2C Settings.setItem("theme.textColor"%2C x %7C%7C variables%5B"--textColor"%5D))%0A )%3B%0A addSetting("Text Color 2"%2C "Credit page's contributor color"%2C %7B type%3A "string"%2C name%3A "CSS Value"%2C value%3A () %3D> gui.style.getPropertyValue("--textColor2") %7D%2C (x) %3D>%0A gui.style.setProperty("--textColor2"%2C Settings.setItem("theme.textColor2"%2C x %7C%7C variables%5B"--textColor2"%5D))%0A )%3B%0A addSetting("Toggle (On)"%2C "Enabled toggle button color"%2C %7B type%3A "string"%2C name%3A "CSS Value"%2C value%3A () %3D> gui.style.getPropertyValue("--toggleOn") %7D%2C (x) %3D>%0A gui.style.setProperty("--toggleOn"%2C Settings.setItem("theme.toggleOn"%2C x %7C%7C variables%5B"--toggleOn"%5D))%0A )%3B%0A addSetting("Toggle (Off)"%2C "Disabled toggle button color"%2C %7B type%3A "string"%2C name%3A "CSS Value"%2C value%3A () %3D> gui.style.getPropertyValue("--toggleOff") %7D%2C (x) %3D>%0A gui.style.setProperty("--toggleOff"%2C Settings.setItem("theme.toggleOff"%2C x %7C%7C variables%5B"--toggleOff"%5D))%0A )%3B%0A %0A const sidebarPaths %3D document.createElement("div")%3B%0A sidebarPaths.className %3D classes.sidebarPaths%3B%0A %0A function createSidebarPath(name%2C icon%2C page) %7B%0A const sidebarPath %3D document.createElement("div")%3B%0A sidebarPath.className %3D classes.sidebarPath%3B%0A %0A const iconImg %3D document.createElement("i")%3B%0A iconImg.className %3D icon%3B%0A %0A const pathName %3D document.createElement("span")%3B%0A pathName.innerText %3D name%3B%0A %0A sidebarPath.append(iconImg%2C pathName)%3B%0A %0A sidebarPath.onclick %3D () %3D> path.sidebar(name%2C page)%3B%0A %0A sidebarPaths.append(sidebarPath)%3B%0A %0A return sidebarPath%3B%0A %7D%0A %0A createSidebarPath("Search"%2C "fas fa-search"%2C searchPage)%3B%0A createSidebarPath("Gamemodes"%2C "fas fa-gamepad"%2C gamemodesPage)%3B%0A createSidebarPath("Favorites"%2C "fas fa-star"%2C favoritesPage)%3B%0A (leaderboardPath %3D createSidebarPath("Leaderboard"%2C "fas fa-trophy"%2C leaderboardPage)).style.display %3D "none"%3B%0A createSidebarPath("Logs"%2C "fas fa-terminal"%2C logsPage)%3B%0A createSidebarPath("Settings"%2C "fas fa-cog"%2C settingsPage)%3B%0A createSidebarPath("Credits"%2C "fas fa-code"%2C creditsPage)%3B%0A %0A sidebar.append(sidebarPaths)%3B%0A %0A const bigTextContainer %3D document.createElement("div")%3B%0A bigTextContainer.className %3D classes.bigTextContainer%3B%0A %0A %0A const dummyK %3D document.createElement("span")%3B%0A dummyK.innerText %3D "K"%3B%0A dummyK.style.opacity %3D "0"%3B%0A %0A const bigText %3D document.createElement("span")%3B%0A bigText.className %3D classes.bigText%3B%0A bigText.innerText %3D "%E3%85%A4GUI"%3B%0A %0A const logo %3D document.createElement("span")%3B%0A logo.className %3D classes.logo%3B%0A logo.innerHTML %3D "AA"%3B%0A %0A bigTextContainer.append(logo%2C dummyK%2C bigText)%3B%0A %0A sidebar.prepend(bigTextContainer)%3B%0A %0A const refreshControl %3D document.createElement("div")%3B%0A refreshControl.innerHTML %3D %60<i class%3D"fas fa-sync" style%3D"line-height%3A 1"><%2Fi>%60%3B%0A refreshControl.className %3D classes.refreshControl%3B%0A refreshControl.onclick %3D () %3D> %7B%0A refreshControl.animate(%5B%7B rotate%3A "0deg" %7D%2C %7B rotate%3A "360deg" %7D%5D%2C %7B duration%3A 1000%2C easing%3A "ease" %7D)%3B%0A path.updatePath()%3B%0A %7D%3B%0A %0A gui.append(controls%2C guiTopBar%2C sidebar%2C guiContent%2C pathText%2C refreshControl)%3B%0A path.updatePath()%3B%0A document.body.appendChild(gui)%3B%0A %0A Logs.addLog("Opened AA Gui")%3B%0A %2F* Anti-Suspend By CryptoDude3 *%2F%0A if (window.fetch.call.toString() %3D%3D "function call() %7B %5Bnative code%5D %7D") %7B%0A const call %3D window.fetch.call%3B%0A window.fetch.call %3D function () %7B%0A if (!arguments%5B1%5D.includes("s.blooket.com%2Frc")) return call.apply(this%2C arguments)%3B%0A Logs.addLog("Blocked Suspension API!"%2C "red")%3B%0A %7D%3B%0A Logs.addLog("Enabled Anti-Suspend")%3B%0A %7D%0A %0A if (gui.querySelector("i").clientHeight %3D%3D 0) %7B%0A const link %3D document.createElement("link")%3B%0A link.rel %3D "stylesheet"%3B%0A link.href %3D "https%3A%2F%2Fka-f.fontawesome.com%2Freleases%2Fv6.5.1%2Fcss%2Fpro.min.css"%3B%0A gui.prepend(link)%3B%0A %7D%0A %0A function randString(length) %7B%0A return Array.from(%7B length %7D%2C () %3D> String.fromCharCode(Math.floor(Math.random() * 25) %2B 97)).reduce((a) %3D> a %2B String.fromCharCode(Math.floor(Math.random() * 25) %2B 97)%2C "")%3B%0A %7D%0A %0A function dragElement(element%2C parent) %7B%0A var pos1 %3D 0%2C%0A pos2 %3D 0%2C%0A pos3 %3D 0%2C%0A pos4 %3D 0%3B%0A element.onpointerdown %3D function (e %3D window.event) %7B%0A element.style.cursor %3D "grabbing"%3B%0A pos3 %3D e.clientX%3B%0A pos4 %3D e.clientY%3B%0A document.onpointerup %3D function () %7B%0A element.style.cursor %3D "grab"%3B%0A document.onpointerup %3D null%3B%0A document.onpointermove %3D null%3B%0A %7D%3B%0A document.onpointermove %3D function (e %3D window.event) %7B%0A pos1 %3D pos3 - e.clientX%3B%0A pos2 %3D pos4 - e.clientY%3B%0A pos3 %3D e.clientX%3B%0A pos4 %3D e.clientY%3B%0A parent.style.top %3D parent.offsetTop - pos2 %2B "px"%3B%0A parent.style.left %3D parent.offsetLeft - pos1 %2B "px"%3B%0A %7D%3B%0A %7D%3B%0A %7D%0A %0A const keys %3D %5B"shift"%2C "control"%2C "alt"%2C "meta"%5D%3B%0A function createKeybindListener(onpress%2C element %3D window) %7B%0A return new Promise((resolve) %3D> %7B%0A const pressed %3D new Set()%3B%0A let shift%2C ctrl%2C alt%2C key%3B%0A const keydown %3D (e) %3D> %7B%0A e.preventDefault()%3B%0A pressed.add(e.code)%3B%0A shift %7C%7C%3D e.shiftKey%3B%0A ctrl %7C%7C%3D e.ctrlKey%3B%0A alt %7C%7C%3D e.altKey%3B%0A if (!keys.includes(e.key.toLowerCase())) key %3D e.key.toLowerCase()%3B%0A onpress%3F.(%7B shift%2C ctrl%2C alt%2C key %7D)%3B%0A %7D%3B%0A const keyup %3D (e) %3D> %7B%0A pressed.delete(e.code)%3B%0A if (pressed.size > 0) return%3B%0A element.removeEventListener("keydown"%2C keydown)%3B%0A element.removeEventListener("keyup"%2C keyup)%3B%0A resolve(%7B shift%2C ctrl%2C alt%2C key %7D)%3B%0A %7D%3B%0A element.addEventListener("keydown"%2C keydown)%3B%0A element.addEventListener("keyup"%2C keyup)%3B%0A %7D)%3B%0A %7D%0A function parseKeybind(%7B shift%2C ctrl%2C alt%2C key %7D) %7B%0A return %5Bctrl %26%26 "Ctrl"%2C shift %26%26 "Shift"%2C alt %26%26 "Alt"%2C key %26%26 key.toUpperCase()%5D.filter(Boolean).join(" %2B ")%3B%0A %7D%0A %0A function compareKeybind(keybind%2C event) %7B%0A return keybind.ctrl %3D%3D event.ctrlKey %26%26 keybind.shift %3D%3D event.shiftKey %26%26 keybind.alt %3D%3D event.altKey %26%26 event.key.toLowerCase() %3D%3D keybind.key%3B%0A %7D%0A %0A function keydown(e) %7B%0A if (compareKeybind(Settings.data.hideKey %3F%3F defaultHideKey%2C e)) %7B%0A e.preventDefault()%3B%0A return (gui.style.display %3D gui.style.display %3D%3D%3D "block" %3F "none" %3A "block")%3B%0A %7D%0A if (compareKeybind(Settings.data.closeKey %3F%3F defaultCloseKey%2C e)) %7B%0A e.preventDefault()%3B%0A close()%3B%0A %7D%0A %7D%0A %0A function close() %7B%0A gui.remove()%3B%0A clearInterval(Logs.interval)%3B%0A for (const category in cheats) for (const cheat of cheats%5Bcategory%5D.cheats) if (cheat.enabled) cheat.run()%3B%0A window.removeEventListener("keydown"%2C keydown)%3B%0A %7D%0A %0A function getStateNode() %7B%0A return Object.values(%0A (function react(r %3D document.querySelector("body>div")) %7B%0A return Object.values(r)%5B1%5D%3F.children%3F.%5B0%5D%3F._owner.stateNode %3F r %3A react(r.querySelector("%3Ascope>div"))%3B%0A %7D)()%0A )%5B1%5D.children%5B0%5D._owner.stateNode%3B%0A %7D%0A %0A window.addEventListener("keydown"%2C keydown)%3B%0A %0A %7D)%3B%0A let img %3D new Image%3B%0A img.src %3D "https%3A%2F%2Fraw.githubusercontent.com%2FBlooket-Council%2FBlooket-Cheats%2Fmain%2Fautoupdate%2Ftimestamps%2FKGui.png%3F" %2B Date.now()%3B%0A img.crossOrigin %3D "Anonymous"%3B%0A img.onload %3D function() %7B%0A const c %3D document.createElement("canvas")%3B%0A const ctx %3D c.getContext("2d")%3B%0A ctx.drawImage(img%2C 0%2C 0%2C this.width%2C this.height)%3B%0A let %7B data %7D %3D ctx.getImageData(0%2C 0%2C this.width%2C this.height)%2C decode %3D ""%2C last%3B%0A let i %3D 0%3B%0A while (i < data.length) %7B%0A let char %3D String.fromCharCode(data%5Bi %25 4 %3D%3D 3 %3F (i%2B%2B%2C i%2B%2B) %3A i%2B%2B%5D %2B data%5Bi %25 4 %3D%3D 3 %3F (i%2B%2B%2C i%2B%2B) %3A i%2B%2B%5D * 256)%3B%0A decode %2B%3D char%3B%0A if (char %3D%3D "%2F" %26%26 last %3D%3D "*") break%3B%0A last %3D char%3B%0A %7D%0A let _%2C time %3D timeProcessed%2C error %3D "There was an error checking for script updates. Run cheat anyway%3F"%3B%0A try %7B%0A %5B_%2C time%2C error%5D %3D decode.match(%2FLastUpdated%3A (.%2B%3F)%3B ErrorMessage%3A "((.%7C%5Cn)%2B%3F)"%2F)%3B%0A %7D catch (e) %7B%7D%0A if ((latestProcess %3D parseInt(time)) <%3D timeProcessed %7C%7C iframe.contentWindow.confirm(error)) cheat()%3B%0A %7D%0A img.onerror %3D img.onabort %3D () %3D> %7B%0A img.onerror %3D img.onabort %3D null%3B%0A cheat()%3B%0A let iframe %3D document.querySelector("iframe")%3B%0A iframe.contentWindow.alert("Adrians Blooket hack loaded click ok to continue!")%0A %7D%0A%7D)()%3B%7D)()%3B