├── ads.txt
├── favicon.ico
├── img
├── chatgpt.JPG
├── IMG_1729.png
├── obfuscator.PNG
├── rammerhead.PNG
├── sourcecode.WEBP
├── github.svg
├── fullscreen.svg
└── back.svg
├── favicon-16x16.png
├── favicon-32x32.png
├── apple-touch-icon.png
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── js
├── cheats
│ ├── scripts
│ │ ├── blooket.js
│ │ ├── quizlet.js
│ │ └── wordle.js
│ └── blooket
│ │ ├── global-freeTokens.js
│ │ ├── deceptiveDinos-setFossils.js
│ │ ├── crazyKingdom-skipGuest.js
│ │ ├── towerDefense-clearEnemies.js
│ │ ├── global-getAllBlooksInGame.js
│ │ ├── cafe-setCash.js
│ │ ├── crazyKingdom-maxStats.js
│ │ ├── cafe-infiniteFood.js
│ │ ├── gold-setGold.js
│ │ ├── crazyKingdom-setGuests.js
│ │ ├── towerDefense-setCash.js
│ │ ├── fishingFrenzy-setWeight.js
│ │ ├── cryptoHack-setCrypto.js
│ │ ├── fishingFrenzy-setLure.js
│ │ ├── towerOfDoom-setCoins.js
│ │ ├── towerDefense-maxOutTowerStats.js
│ │ ├── blookRush-setBlooks.js
│ │ ├── blookRush-setDefense.js
│ │ ├── towerOfDoom-lowerEnemyStats.js
│ │ ├── towerOfDoom-maxPlayerStats.js
│ │ ├── gold-setPlayerGold.js
│ │ ├── racing-instantWin.js
│ │ ├── gold-chestESP.js
│ │ ├── global-sellDupeBlooks.js
│ │ ├── global-addTokens.js
│ │ └── global-spamOpenBoxes.js
├── setdomain.js
├── search.js
├── cookies.js
├── projects.js
├── settings.js
├── main.js
├── project.js
└── projects-list.js
├── other
├── extra
│ ├── iframes
│ │ └── iframe.html
│ ├── fullscreen.html
│ ├── ad.html
│ ├── faq.html
│ ├── number-gen.html
│ ├── setdomaininfo.html
│ ├── qr-gen.html
│ ├── redirect-gen.html
│ ├── browser-info.html
│ └── timer.html
├── review.html
├── cookieinfo.html
├── credits.html
├── terms.html
├── index.html
└── privacy.html
├── site.webmanifest
├── chat.html
├── review.html
├── package.json
├── css
├── box.css
├── settings.css
├── cookies.css
├── extra.css
├── backup.css
└── projects.css
├── 404.html
├── about-blank.html
├── README.md
├── contact.html
├── apps.html
├── cheats.html
├── about.html
├── proxies.html
├── index.html
├── settings.html
├── projects.html
└── project.html
/ads.txt:
--------------------------------------------------------------------------------
1 | google.com, pub-3317735030374126, DIRECT, f08c47fec0942fa0
2 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/favicon.ico
--------------------------------------------------------------------------------
/img/chatgpt.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/img/chatgpt.JPG
--------------------------------------------------------------------------------
/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/favicon-16x16.png
--------------------------------------------------------------------------------
/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/favicon-32x32.png
--------------------------------------------------------------------------------
/img/IMG_1729.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/img/IMG_1729.png
--------------------------------------------------------------------------------
/img/obfuscator.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/img/obfuscator.PNG
--------------------------------------------------------------------------------
/img/rammerhead.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/img/rammerhead.PNG
--------------------------------------------------------------------------------
/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/apple-touch-icon.png
--------------------------------------------------------------------------------
/img/sourcecode.WEBP:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/img/sourcecode.WEBP
--------------------------------------------------------------------------------
/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/android-chrome-192x192.png
--------------------------------------------------------------------------------
/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/android-chrome-512x512.png
--------------------------------------------------------------------------------
/js/cheats/scripts/blooket.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xlluminate/Illuminate/HEAD/js/cheats/scripts/blooket.js
--------------------------------------------------------------------------------
/js/cheats/scripts/quizlet.js:
--------------------------------------------------------------------------------
1 | javascript: fetch('https://scripts.quizit.online/quizlet').then(res => res.text()).then(script => eval(script))
--------------------------------------------------------------------------------
/other/extra/iframes/iframe.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/site.webmanifest:
--------------------------------------------------------------------------------
1 | {"name":"Illuminate","short_name":"Illuminate","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
--------------------------------------------------------------------------------
/chat.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Chat | Illuminate
4 |
5 |
6 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/review.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Review | Illuminate
4 |
5 |
6 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "illuminate",
3 | "description": "Illuminate",
4 | "version": "1.6",
5 | "scripts": {
6 | "build": "yarn",
7 | "start": "yarn run"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/xlluminate/Illuminate.git"
12 | },
13 | "keywords": [],
14 | "author": "xlluminate",
15 | "license": "GPL-3.0-only",
16 | "bugs": {
17 | "url": "https://github.com/xlluminate/Illuminate/issues"
18 | },
19 | "homepage": "https://github.com/xlluminate/Illuminate"
20 | }
21 |
--------------------------------------------------------------------------------
/css/box.css:
--------------------------------------------------------------------------------
1 | .app-grid {
2 | text-align: center;
3 | display: grid;
4 | grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
5 | grid-gap: 20px;
6 | }
7 |
8 | .app-box {
9 | background-color: #f5f5f5; /* Light grey background */
10 | border-radius: 10px;
11 | box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
12 | overflow: hidden;
13 | }
14 |
15 | .app-box img {
16 | width: 100%;
17 | height: auto;
18 | border-bottom: 1px solid #ffffcc; /* Yellow border at the bottom */
19 | }
20 |
21 | .app-box p {
22 | padding: 10px;
23 | text-align: center;
24 | font-size: 18px;
25 | }
26 |
--------------------------------------------------------------------------------
/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 404 - Page Not Found
11 |
12 |
13 |
14 |
404 - Page Not Found
15 |
The page you are looking for might have been removed or doesn't exist.
16 |
Go back to the homepage .
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/img/github.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/js/cheats/blooket/global-freeTokens.js:
--------------------------------------------------------------------------------
1 | async function getName(authToken) { const response = await fetch('https://api.blooket.com/api/users/verify-token?token=JWT+' + authToken); const data = await response.json();
2 |
3 | return data.name
4 | };
5 |
6 | async function addCurrencies() { const tokens = Number(prompt('How many tokens do you want to add to your account? (10000 daily)')); const myToken = localStorage.token.split('JWT ')[1];
7 |
8 | if (tokens > 10000) {
9 | alert('You can add up to 10000 tokens daily.')
10 | }
11 |
12 | const response = await fetch('https://api.blooket.com/api/users/add-rewards', {
13 | method: "PUT",
14 | headers: {
15 | "referer": "https://www.blooket.com/",
16 | "content-type": "application/json",
17 | "authorization": localStorage.token
18 | },
19 | body: JSON.stringify({
20 | addedTokens: tokens,
21 | addedXp: 300,
22 | name: await getName(myToken)
23 | })
24 | });
25 |
26 | if (response.status == 200) {
27 | alert(`${tokens} tokens and 300 XP added to your account!`);
28 | } else {
29 | alert('An error occured.');
30 | };
31 | };
32 |
33 | addCurrencies();
34 |
--------------------------------------------------------------------------------
/img/fullscreen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/css/settings.css:
--------------------------------------------------------------------------------
1 |
2 | .center {
3 | text-align: center;
4 | }
5 |
6 | input {
7 | height: 40px;
8 | border-radius: 6px;
9 | border: 1px solid #e0e0e0; /* Slightly darker grey for inputs */
10 | color: #333333;
11 | background-color: #ffffcc; /* Pale yellow for inputs */
12 | padding: 0 15px;
13 | margin-bottom: 10px;
14 | box-sizing: border-box;
15 | width: calc(100% - 30px);
16 | transition: background-color 0.3s ease;
17 | }
18 |
19 | input:focus {
20 | outline: none;
21 | }
22 |
23 | input:hover {
24 | background-color: #ffff99; /* Lighter shade of yellow on hover */
25 | }
26 |
27 | button {
28 | height: 40px;
29 | border-radius: 6px;
30 | background-color: #ffffcc; /* Pale yellow for buttons */
31 | color: #333333;
32 | padding: 0 20px;
33 | margin-bottom: 10px;
34 | cursor: pointer;
35 | border: none;
36 | transition: background-color 0.3s ease, color 0.3s ease;
37 | }
38 |
39 | button:hover {
40 | background-color: #ffff99; /* Lighter shade of yellow on hover */
41 | color: #666666; /* Darker grey text color on hover */
42 | }
43 |
--------------------------------------------------------------------------------
/other/review.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Write a Review | Illuminate
7 |
31 |
32 |
33 |
34 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/img/back.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/css/cookies.css:
--------------------------------------------------------------------------------
1 | .cookiePopupBoxContainer {
2 | z-index: 999;
3 | width: 350px;
4 | min-height: 20px;
5 | box-sizing: border-box;
6 | padding: 30px 30px 30px 30px;
7 | background: #0b0c10;
8 | overflow: hidden;
9 | position: fixed;
10 | bottom: 30px;
11 | right: 30px;
12 | display: none;
13 | }
14 | .cookiePopupBoxContainer .cookieTitle a {
15 | font-family: OpenSans, arial, "sans-serif";
16 | color: #FFFFFF;
17 | font-size: 22px;
18 | line-height: 20px;
19 | display: block;
20 | }
21 | .cookiePopupBoxContainer .cookieDesc p {
22 | margin: 0;
23 | padding: 0;
24 | font-family: OpenSans, arial, "sans-serif";
25 | color: #FFFFFF;
26 | font-size: 13px;
27 | line-height: 20px;
28 | display: block;
29 | margin-top: 10px;
30 | } .cookiePopupBoxContainer .cookieDesc a {
31 | font-family: OpenSans, arial, "sans-serif";
32 | color: #FFFFFF;
33 | text-decoration: underline;
34 | }
35 | .cookiePopupBoxContainer .cookieButton a {
36 | display: inline-block;
37 | font-family: OpenSans, arial, "sans-serif";
38 | color: #FFFFFF;
39 | font-size: 14px;
40 | font-weight: bold;
41 | margin-top: 14px;
42 | background: #000000;
43 | box-sizing: border-box;
44 | padding: 15px 24px;
45 | text-align: center;
46 | transition: background 0.3s;
47 | }
48 | .cookiePopupBoxContainer .cookieButton a:hover {
49 | cursor: pointer;
50 | background: #d7e31a;
51 | }
52 |
53 | @media (max-width: 980px) {
54 | .cookiePopupBoxContainer {
55 | bottom: 0px !important;
56 | left: 0px !important;
57 | width: 100% !important;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/about-blank.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | about:blank | Illuminate
7 |
8 |
9 |
13 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/css/extra.css:
--------------------------------------------------------------------------------
1 | input {
2 | height: 40px;
3 | border-radius: 6px;
4 | border: 1px solid #e0e0e0; /* Slightly darker grey for inputs */
5 | color: #333333;
6 | background-color: #ffffcc; /* Pale yellow for inputs */
7 | padding: 0 15px;
8 | margin-bottom: 10px;
9 | box-sizing: border-box;
10 | width: 50%;
11 | transition: background-color 0.3s ease;
12 | }
13 |
14 | input:focus {
15 | outline: none;
16 | }
17 |
18 | input:hover {
19 | background-color: #ffff99; /* Lighter shade of yellow on hover */
20 | }
21 |
22 | textarea {
23 | width: 400px;
24 | height: 40px;
25 | border-radius: 0px;
26 | border: none;
27 | color: #333333;
28 | background-color: #ffffcc; /* Pale yellow for textareas */
29 | padding: 10px;
30 | margin: 5px 0 20px 0;
31 | margin-bottom: 10px;
32 | transition: background-color 0.3s ease;
33 | font-family: Arial;
34 | }
35 |
36 | textarea:focus {
37 | outline: none;
38 | background-color: #ffff99; /* Lighter shade of yellow on focus */
39 | }
40 |
41 | textarea:hover {
42 | background-color: #ffff99; /* Lighter shade of yellow on hover */
43 | transition: background-color 0.3s ease;
44 | }
45 |
46 | select {
47 | display: block;
48 | width: 20%;
49 | padding: 10px;
50 | margin: 10px auto;
51 | border: 1px solid #cccccc;
52 | border-radius: 5px;
53 | font-size: 16px;
54 | background-color: #f9f9f9;
55 | color: #333333;
56 | }
57 |
58 | button {
59 | height: 40px;
60 | border-radius: 6px;
61 | background-color: #ffffcc; /* Pale yellow for buttons */
62 | color: #333333;
63 | padding: 0 20px;
64 | margin-bottom: 10px;
65 | cursor: pointer;
66 | border: none;
67 | transition: background-color 0.3s ease, color 0.3s ease;
68 | }
69 |
70 | button:hover {
71 | background-color: #ffff99; /* Lighter shade of yellow on hover */
72 | color: #666666; /* Darker grey text color on hover */
73 | }
--------------------------------------------------------------------------------
/other/extra/fullscreen.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Project | Illuminate
7 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/js/setdomain.js:
--------------------------------------------------------------------------------
1 | function setCookie(name, value, days) {
2 | var expires = "";
3 | if (days) {
4 | var date = new Date();
5 | date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
6 | expires = "; expires=" + date.toUTCString();
7 | }
8 | document.cookie = name + "=" + (value || "") + expires + "; path=/";
9 | }
10 |
11 | function getCookie(name) {
12 | var nameEQ = name + "=";
13 | var ca = document.cookie.split(";");
14 | for (var i = 0; i < ca.length; i++) {
15 | var c = ca[i];
16 | while (c.charAt(0) == " ") c = c.substring(1, c.length);
17 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
18 | }
19 | return null;
20 | }
21 |
22 | function handleDomainSelectChange() {
23 | var domainSelect = document.getElementById('domain-select');
24 | var customDomainInput = document.getElementById('custom-domain-input');
25 |
26 | if (domainSelect.value === 'custom') {
27 | customDomainInput.style.display = 'block';
28 | } else {
29 | customDomainInput.style.display = 'none';
30 | }
31 | }
32 |
33 | function setGameDomain() {
34 | var domainSelect = document.getElementById('domain-select');
35 | var customDomainInput = document.getElementById('custom-domain');
36 |
37 | var selectedDomain = domainSelect.value;
38 | if (selectedDomain === 'custom') {
39 | selectedDomain = customDomainInput.value.trim();
40 | }
41 |
42 | if (selectedDomain) {
43 | setCookie('gamedomain', selectedDomain, 365);
44 | alert('Game domain set to: ' + selectedDomain);
45 | location.reload(); // reload
46 | } else {
47 | alert('Please enter a valid domain.');
48 | }
49 | }
50 |
51 | document.addEventListener('DOMContentLoaded', function() {
52 | var savedDomain = getCookie('gamedomain');
53 | if (!savedDomain) {
54 | setCookie('gamedomain', 'projectassets.teacherease.net', 365);
55 | }
56 |
57 | var domainSelect = document.getElementById('domain-select');
58 | if (domainSelect) {
59 | domainSelect.value = savedDomain || 'default';
60 | handleDomainSelectChange();
61 | }
62 | });
63 |
--------------------------------------------------------------------------------
/js/cheats/blooket/deceptiveDinos-setFossils.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | let fossils = Number(parseFloat(prompt('How many fossils do you want?')));
13 | reactHandler().stateNode.setState({ fossils: fossils });
14 |
15 | alert('Fossils added!');
16 | })();
17 |
18 |
19 | function footer() {
20 | let element = document.createElement('div');
21 |
22 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
23 | element.innerHTML = `Made by gliz My twitter
`;
24 | document.body.appendChild(element);
25 |
26 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
27 | element.onmousedown = ((e = window.event) => {
28 | e.preventDefault();
29 | pos3 = e.clientX;
30 | pos4 = e.clientY;
31 | document.onmouseup = (() => {
32 | document.onmouseup = null;
33 | document.onmousemove = null;
34 | });
35 | document.onmousemove = ((e) => {
36 | e = e || window.event;
37 | e.preventDefault();
38 | pos1 = pos3 - e.clientX;
39 | pos2 = pos4 - e.clientY;
40 | pos3 = e.clientX;
41 | pos4 = e.clientY;
42 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
43 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
44 | element.style.top = top + "px";
45 | element.style.left = left + "px";
46 | });
47 | });
48 | };
49 |
--------------------------------------------------------------------------------
/js/cheats/blooket/crazyKingdom-skipGuest.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/kingdom') {
13 | alert('You must be in a crazy kingdom game!');
14 | } else {
15 | reactHandler().stateNode.nextGuest();
16 |
17 | alert('Guest skipped!');
18 | };
19 | })();
20 |
21 |
22 | function footer() {
23 | let element = document.createElement('div');
24 |
25 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
26 | element.innerHTML = `Made by gliz My twitter
`;
27 | document.body.appendChild(element);
28 |
29 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
30 | element.onmousedown = ((e = window.event) => {
31 | e.preventDefault();
32 | pos3 = e.clientX;
33 | pos4 = e.clientY;
34 | document.onmouseup = (() => {
35 | document.onmouseup = null;
36 | document.onmousemove = null;
37 | });
38 | document.onmousemove = ((e) => {
39 | e = e || window.event;
40 | e.preventDefault();
41 | pos1 = pos3 - e.clientX;
42 | pos2 = pos4 - e.clientY;
43 | pos3 = e.clientX;
44 | pos4 = e.clientY;
45 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
46 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
47 | element.style.top = top + "px";
48 | element.style.left = left + "px";
49 | });
50 | });
51 | };
52 |
--------------------------------------------------------------------------------
/js/cheats/blooket/towerDefense-clearEnemies.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/defense') {
13 | alert('You must be in a tower defense game!');
14 | } else {
15 | reactHandler().stateNode.enemies = [];
16 |
17 | alert('Enemies cleared!');
18 | };
19 | })();
20 |
21 |
22 | function footer() {
23 | let element = document.createElement('div');
24 |
25 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
26 | element.innerHTML = `Made by gliz My twitter
`;
27 | document.body.appendChild(element);
28 |
29 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
30 | element.onmousedown = ((e = window.event) => {
31 | e.preventDefault();
32 | pos3 = e.clientX;
33 | pos4 = e.clientY;
34 | document.onmouseup = (() => {
35 | document.onmouseup = null;
36 | document.onmousemove = null;
37 | });
38 | document.onmousemove = ((e) => {
39 | e = e || window.event;
40 | e.preventDefault();
41 | pos1 = pos3 - e.clientX;
42 | pos2 = pos4 - e.clientY;
43 | pos3 = e.clientX;
44 | pos4 = e.clientY;
45 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
46 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
47 | element.style.top = top + "px";
48 | element.style.left = left + "px";
49 | });
50 | });
51 | };
52 |
--------------------------------------------------------------------------------
/js/cheats/blooket/global-getAllBlooksInGame.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (!window.location.pathname.split('/').includes('lobby')) return alert('You must be in a game lobby! (e.g. https://www.blooket.com/play/lobby)');
13 |
14 | reactHandler().stateNode.setState({ lockedBlooks: [], takenBlooks: [] });
15 | alert('Blooks unlocked!');
16 | })();
17 |
18 |
19 | function footer() {
20 | let element = document.createElement('div');
21 |
22 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
23 | element.innerHTML = `Made by gliz My twitter
`;
24 | document.body.appendChild(element);
25 |
26 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
27 | element.onmousedown = ((e = window.event) => {
28 | e.preventDefault();
29 | pos3 = e.clientX;
30 | pos4 = e.clientY;
31 | document.onmouseup = (() => {
32 | document.onmouseup = null;
33 | document.onmousemove = null;
34 | });
35 | document.onmousemove = ((e) => {
36 | e = e || window.event;
37 | e.preventDefault();
38 | pos1 = pos3 - e.clientX;
39 | pos2 = pos4 - e.clientY;
40 | pos3 = e.clientX;
41 | pos4 = e.clientY;
42 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
43 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
44 | element.style.top = top + "px";
45 | element.style.left = left + "px";
46 | });
47 | });
48 | };
49 |
--------------------------------------------------------------------------------
/js/cheats/blooket/cafe-setCash.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (document.location.pathname != "/cafe") {
13 | alert("You must be in a cafe game!");
14 | } else {
15 | reactHandler().stateNode.setState({ cafeCash: Number(parseFloat(prompt('How much cash would you like?'))) });
16 |
17 |
18 | alert('Added cash!');
19 | };
20 | })();
21 |
22 |
23 | function footer() {
24 | let element = document.createElement('div');
25 |
26 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
27 | element.innerHTML = `Made by gliz My twitter
`;
28 | document.body.appendChild(element);
29 |
30 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
31 | element.onmousedown = ((e = window.event) => {
32 | e.preventDefault();
33 | pos3 = e.clientX;
34 | pos4 = e.clientY;
35 | document.onmouseup = (() => {
36 | document.onmouseup = null;
37 | document.onmousemove = null;
38 | });
39 | document.onmousemove = ((e) => {
40 | e = e || window.event;
41 | e.preventDefault();
42 | pos1 = pos3 - e.clientX;
43 | pos2 = pos4 - e.clientY;
44 | pos3 = e.clientX;
45 | pos4 = e.clientY;
46 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
47 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
48 | element.style.top = top + "px";
49 | element.style.left = left + "px";
50 | });
51 | });
52 | };
53 |
--------------------------------------------------------------------------------
/js/cheats/blooket/crazyKingdom-maxStats.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/kingdom') {
13 | alert('You must be in a crazy kingdom game!');
14 | } else {
15 | reactHandler().stateNode.setState({ materials: 100, people: 100, happiness: 100, gold: 100 });
16 |
17 | alert('max stats set!');
18 | };
19 | })();
20 |
21 |
22 | function footer() {
23 | let element = document.createElement('div');
24 |
25 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
26 | element.innerHTML = `Made by gliz My twitter
`;
27 | document.body.appendChild(element);
28 |
29 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
30 | element.onmousedown = ((e = window.event) => {
31 | e.preventDefault();
32 | pos3 = e.clientX;
33 | pos4 = e.clientY;
34 | document.onmouseup = (() => {
35 | document.onmouseup = null;
36 | document.onmousemove = null;
37 | });
38 | document.onmousemove = ((e) => {
39 | e = e || window.event;
40 | e.preventDefault();
41 | pos1 = pos3 - e.clientX;
42 | pos2 = pos4 - e.clientY;
43 | pos3 = e.clientX;
44 | pos4 = e.clientY;
45 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
46 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
47 | element.style.top = top + "px";
48 | element.style.left = left + "px";
49 | });
50 | });
51 | };
52 |
--------------------------------------------------------------------------------
/js/cheats/blooket/cafe-infiniteFood.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (document.location.pathname != "/cafe") {
13 | alert("You must be in a cafe game!");
14 | } else {
15 | reactHandler().stateNode.state.foods.forEach(e => e.stock = 99999);
16 | reactHandler().stateNode.forceUpdate();
17 |
18 | alert('Added infinite food level!');
19 | }
20 | })();
21 |
22 |
23 | function footer() {
24 | let element = document.createElement('div');
25 |
26 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
27 | element.innerHTML = `Made by gliz My twitter
`;
28 | document.body.appendChild(element);
29 |
30 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
31 | element.onmousedown = ((e = window.event) => {
32 | e.preventDefault();
33 | pos3 = e.clientX;
34 | pos4 = e.clientY;
35 | document.onmouseup = (() => {
36 | document.onmouseup = null;
37 | document.onmousemove = null;
38 | });
39 | document.onmousemove = ((e) => {
40 | e = e || window.event;
41 | e.preventDefault();
42 | pos1 = pos3 - e.clientX;
43 | pos2 = pos4 - e.clientY;
44 | pos3 = e.clientX;
45 | pos4 = e.clientY;
46 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
47 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
48 | element.style.top = top + "px";
49 | element.style.left = left + "px";
50 | });
51 | });
52 | };
53 |
--------------------------------------------------------------------------------
/js/cheats/blooket/gold-setGold.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/play/gold') {
13 | alert('You must be in a gold quest game!');
14 | } else {
15 | let gold = Number(parseFloat(prompt('How much gold do you want?')));
16 | reactHandler().stateNode.setState({ gold2: gold, gold });
17 |
18 | alert('Gold added!');
19 | };
20 | })();
21 |
22 |
23 | function footer() {
24 | let element = document.createElement('div');
25 |
26 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
27 | element.innerHTML = `Made by gliz My twitter
`;
28 | document.body.appendChild(element);
29 |
30 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
31 | element.onmousedown = ((e = window.event) => {
32 | e.preventDefault();
33 | pos3 = e.clientX;
34 | pos4 = e.clientY;
35 | document.onmouseup = (() => {
36 | document.onmouseup = null;
37 | document.onmousemove = null;
38 | });
39 | document.onmousemove = ((e) => {
40 | e = e || window.event;
41 | e.preventDefault();
42 | pos1 = pos3 - e.clientX;
43 | pos2 = pos4 - e.clientY;
44 | pos3 = e.clientX;
45 | pos4 = e.clientY;
46 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
47 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
48 | element.style.top = top + "px";
49 | element.style.left = left + "px";
50 | });
51 | });
52 | };
53 |
--------------------------------------------------------------------------------
/js/cheats/blooket/crazyKingdom-setGuests.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/kingdom') {
13 | alert('You must be in a crazy kingdom game!');
14 | } else {
15 | let guestScore = Number(parseFloat(prompt('How many guests do you want?')));
16 | reactHandler().stateNode.setState({ guestScore });
17 |
18 | alert('Guests set!');
19 | };
20 | })();
21 |
22 |
23 | function footer() {
24 | let element = document.createElement('div');
25 |
26 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
27 | element.innerHTML = `Made by gliz My twitter
`;
28 | document.body.appendChild(element);
29 |
30 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
31 | element.onmousedown = ((e = window.event) => {
32 | e.preventDefault();
33 | pos3 = e.clientX;
34 | pos4 = e.clientY;
35 | document.onmouseup = (() => {
36 | document.onmouseup = null;
37 | document.onmousemove = null;
38 | });
39 | document.onmousemove = ((e) => {
40 | e = e || window.event;
41 | e.preventDefault();
42 | pos1 = pos3 - e.clientX;
43 | pos2 = pos4 - e.clientY;
44 | pos3 = e.clientX;
45 | pos4 = e.clientY;
46 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
47 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
48 | element.style.top = top + "px";
49 | element.style.left = left + "px";
50 | });
51 | });
52 | };
53 |
--------------------------------------------------------------------------------
/js/cheats/blooket/towerDefense-setCash.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/defense') {
13 | alert('This cheat only supports tower defence game mode!')
14 | } else {
15 | let tokens = Number(parseFloat(prompt('How many tokens do you want?')));
16 | reactHandler().stateNode.setState({ tokens });
17 |
18 | alert('Tokens set!');
19 | };
20 | })();
21 |
22 |
23 | function footer() {
24 | let element = document.createElement('div');
25 |
26 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
27 | element.innerHTML = `Made by gliz My twitter
`;
28 | document.body.appendChild(element);
29 |
30 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
31 | element.onmousedown = ((e = window.event) => {
32 | e.preventDefault();
33 | pos3 = e.clientX;
34 | pos4 = e.clientY;
35 | document.onmouseup = (() => {
36 | document.onmouseup = null;
37 | document.onmousemove = null;
38 | });
39 | document.onmousemove = ((e) => {
40 | e = e || window.event;
41 | e.preventDefault();
42 | pos1 = pos3 - e.clientX;
43 | pos2 = pos4 - e.clientY;
44 | pos3 = e.clientX;
45 | pos4 = e.clientY;
46 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
47 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
48 | element.style.top = top + "px";
49 | element.style.left = left + "px";
50 | });
51 | });
52 | };
53 |
--------------------------------------------------------------------------------
/js/cheats/blooket/fishingFrenzy-setWeight.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/play/fishing') {
13 | alert('You must be in a fishing frenzy game!');
14 | } else {
15 | let weight = Number(parseFloat(prompt('How much weight do you want?')));
16 | reactHandler().stateNode.setState({ weight2: weight, weight });
17 |
18 | alert('Weight set!');
19 | };
20 | })();
21 |
22 |
23 | function footer() {
24 | let element = document.createElement('div');
25 |
26 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
27 | element.innerHTML = `Made by gliz My twitter
`;
28 | document.body.appendChild(element);
29 |
30 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
31 | element.onmousedown = ((e = window.event) => {
32 | e.preventDefault();
33 | pos3 = e.clientX;
34 | pos4 = e.clientY;
35 | document.onmouseup = (() => {
36 | document.onmouseup = null;
37 | document.onmousemove = null;
38 | });
39 | document.onmousemove = ((e) => {
40 | e = e || window.event;
41 | e.preventDefault();
42 | pos1 = pos3 - e.clientX;
43 | pos2 = pos4 - e.clientY;
44 | pos3 = e.clientX;
45 | pos4 = e.clientY;
46 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
47 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
48 | element.style.top = top + "px";
49 | element.style.left = left + "px";
50 | });
51 | });
52 | };
53 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Illuminate
2 | A weekly updated unblocked games website with multiple features, including proxies, apps, and more!
3 | ## Deploy using BYOD
4 | Follow instructions here:
5 | https://docs.google.com/document/u/0/d/1-oq5FYTt-ZnClJ0ZlUjVplnCGpiaSPgwSBOflxfY9j0/
6 | ## Deploy to a web service
7 | [](https://railway.app/new/template?template=https://github.com/xlluminate/Illuminate)
8 | [](https://app.cyclic.sh/api/app/deploy/xlluminate/Illuminate)
9 | [](https://app.koyeb.com/deploy?type=git&repository=github.com/xlluminate/Illuminate&branch=main&name=illuminate)
10 | [](https://render.com/deploy?repo=https://github.com/xlluminate/Illuminate)
11 | [](https://replit.com/github/xlluminate/Illuminate)
12 | [](https://glitch.com/edit/#!/import/github/xlluminate/Illuminate)
13 | [](https://vercel.com/new/clone?repository-url=https://github.com/xlluminate/Illuminate)
14 |
15 | If you're deploying to Github Pages, rename the repo to (yourusername).github.io then deploy Github Pages.
16 |
17 | Most web hosts not listed here are still supported by Illuminate. If you're forking this repo, please give it a star!
18 | ## Links
19 | Here are the current official links for Illuminate:
20 |
21 | * https://teacherease.net
22 |
23 | * https://illuminating.pages.dev
24 |
25 | * https://www.schoolfacts.xyz
26 |
27 | * https://illuminating.us
28 |
29 | * https://illuminating.netlify.app
30 |
31 | * https://illuminating.onrender.com
32 |
33 | * https://goilluminating.web.app
34 |
35 | * https://goilluminating.firebaseapp.com
36 |
37 | * https://illuminating.surge.sh
38 | ## Support
39 | For support relating to the site, please contact support@teacherease.net, or using the google forms provided on the site.
40 | ## Assets
41 | Because of the large amount of games, they have been moved to https://github.com/xlluminate/assets
42 |
--------------------------------------------------------------------------------
/js/cheats/blooket/cryptoHack-setCrypto.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/play/hack') {
13 | alert('You must be in a crypto hack game mode to use this hack!');
14 | } else {
15 | let amount = Number(parseFloat(prompt('How much crypto do you want?')));
16 | reactHandler().stateNode.setState({ crypto2: amount, crypto: amount });
17 |
18 | alert('Crypto added!');
19 | };
20 | })();
21 |
22 |
23 | function footer() {
24 | let element = document.createElement('div');
25 |
26 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
27 | element.innerHTML = `Made by gliz My twitter
`;
28 | document.body.appendChild(element);
29 |
30 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
31 | element.onmousedown = ((e = window.event) => {
32 | e.preventDefault();
33 | pos3 = e.clientX;
34 | pos4 = e.clientY;
35 | document.onmouseup = (() => {
36 | document.onmouseup = null;
37 | document.onmousemove = null;
38 | });
39 | document.onmousemove = ((e) => {
40 | e = e || window.event;
41 | e.preventDefault();
42 | pos1 = pos3 - e.clientX;
43 | pos2 = pos4 - e.clientY;
44 | pos3 = e.clientX;
45 | pos4 = e.clientY;
46 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
47 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
48 | element.style.top = top + "px";
49 | element.style.left = left + "px";
50 | });
51 | });
52 | };
53 |
--------------------------------------------------------------------------------
/js/cheats/blooket/fishingFrenzy-setLure.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/play/fishing') {
13 | alert('You must be in a fishing frenzy game!');
14 | } else {
15 | let lure = Number(parseFloat(prompt('What do you want to set your lure to? (1 - 5)'))) - 1;
16 | reactHandler().stateNode.setState({ lure: lure < 0 ? 0 : lure > 4 ? 4 : lure });
17 |
18 | alert('Lure set!');
19 | };
20 | })();
21 |
22 |
23 | function footer() {
24 | let element = document.createElement('div');
25 |
26 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
27 | element.innerHTML = `Made by gliz My twitter
`;
28 | document.body.appendChild(element);
29 |
30 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
31 | element.onmousedown = ((e = window.event) => {
32 | e.preventDefault();
33 | pos3 = e.clientX;
34 | pos4 = e.clientY;
35 | document.onmouseup = (() => {
36 | document.onmouseup = null;
37 | document.onmousemove = null;
38 | });
39 | document.onmousemove = ((e) => {
40 | e = e || window.event;
41 | e.preventDefault();
42 | pos1 = pos3 - e.clientX;
43 | pos2 = pos4 - e.clientY;
44 | pos3 = e.clientX;
45 | pos4 = e.clientY;
46 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
47 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
48 | element.style.top = top + "px";
49 | element.style.left = left + "px";
50 | });
51 | });
52 | };
53 |
--------------------------------------------------------------------------------
/js/search.js:
--------------------------------------------------------------------------------
1 | var allElements = [];
2 | //var num = 900;
3 | for (let i = 0; i < num; i++) {
4 | allElements.push('' + document.querySelector('.card').innerHTML + '
');
5 | document.querySelector('.card').remove();
6 | }
7 | //document.querySelector('#games').innerHTML = allElements;
8 | function writeAll() {
9 | for (let i = 0; i < allElements.length; i++) {
10 | document.querySelector('#games').innerHTML += allElements[i];
11 | }
12 | }
13 | var elements = [];
14 | var elementsNew = [];
15 | function writeNew() {
16 | for (let i = 0; i < elementsNew.length; i++) {
17 | document.querySelector('#games').innerHTML += elementsNew[i];
18 | }
19 | }
20 | writeAll();
21 | function search() {
22 | document.querySelector('#games').innerHTML = '';
23 | writeAll();
24 | value = document.getElementById('search').value;
25 | elements = [];
26 | elementsNew = [];
27 | console.log(document.querySelector('.card').textContent);
28 | if (!(value == '')) {
29 | for (let i = 0; i < num; i++) {
30 | console.log(document.querySelector('.card').textContent.toLowerCase().includes(value.toLowerCase()));
31 | if (document.querySelector('.card').textContent.toLowerCase().includes(value.toLowerCase())) {
32 | //document.querySelector('.card').style.display = 'block';
33 | elementsNew.push('' + document.querySelector('.card').innerHTML + '
');
34 | document.querySelector('.card').remove();
35 | } else {
36 | //document.querySelector('.card').style.display = 'none';
37 | elements.push('' + document.querySelector('.card').innerHTML + '
');
38 | document.querySelector('.card').remove();
39 | }
40 | }
41 | //document.querySelector('#games').innerHTML = elementsNew;
42 | document.querySelector('#games').innerHTML = '';
43 | writeNew();
44 | } else {
45 | //document.querySelector('#games').innerHTML = allElements;
46 | document.querySelector('#games').innerHTML = '';
47 | writeAll();
48 | }
49 | }
50 | function random() {
51 | var game = Math.floor(Math.random() * allElements.length);
52 | document.querySelector('#games').innerHTML = '';
53 | document.querySelector('#games').innerHTML += allElements[game];
54 | }
55 |
--------------------------------------------------------------------------------
/js/cheats/blooket/towerOfDoom-setCoins.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname == '/tower/battle' || window.location.pathname == '/tower/start') {
13 | try {
14 | reactHandler().stateNode.props.setTowerCoins(Number(parseFloat(prompt('How many coins do you want?'))));
15 |
16 | alert('Coins added!')
17 | } catch { }
18 | } else {
19 | alert('You must be in a tower of doom game!');
20 | };
21 | })();
22 |
23 |
24 | function footer() {
25 | let element = document.createElement('div');
26 |
27 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
28 | element.innerHTML = `Made by gliz My twitter
`;
29 | document.body.appendChild(element);
30 |
31 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
32 | element.onmousedown = ((e = window.event) => {
33 | e.preventDefault();
34 | pos3 = e.clientX;
35 | pos4 = e.clientY;
36 | document.onmouseup = (() => {
37 | document.onmouseup = null;
38 | document.onmousemove = null;
39 | });
40 | document.onmousemove = ((e) => {
41 | e = e || window.event;
42 | e.preventDefault();
43 | pos1 = pos3 - e.clientX;
44 | pos2 = pos4 - e.clientY;
45 | pos3 = e.clientX;
46 | pos4 = e.clientY;
47 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
48 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
49 | element.style.top = top + "px";
50 | element.style.left = left + "px";
51 | });
52 | });
53 | };
54 |
--------------------------------------------------------------------------------
/other/extra/ad.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Ad Testing | minecraftgoldfish3
7 |
8 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
22 |
25 |
26 |
28 |
29 |
35 |
38 |
39 |
41 |
42 |
46 |
49 |
50 |
52 |
53 |
57 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/js/cheats/blooket/towerDefense-maxOutTowerStats.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/defense') {
13 | alert('You must be in a Tower Defense game!');
14 | } else {
15 | reactHandler().stateNode.towers.forEach(tower => {
16 | tower.damage = 1e308;
17 | tower.range = 1e308;
18 | tower.level = 3;
19 | tower.blastRadius = 1e308
20 | tower.fullCd = 0;
21 | });
22 |
23 | alert('Maxed out towers!');
24 | };
25 | })();
26 |
27 |
28 | function footer() {
29 | let element = document.createElement('div');
30 |
31 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
32 | element.innerHTML = `Made by gliz My twitter
`;
33 | document.body.appendChild(element);
34 |
35 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
36 | element.onmousedown = ((e = window.event) => {
37 | e.preventDefault();
38 | pos3 = e.clientX;
39 | pos4 = e.clientY;
40 | document.onmouseup = (() => {
41 | document.onmouseup = null;
42 | document.onmousemove = null;
43 | });
44 | document.onmousemove = ((e) => {
45 | e = e || window.event;
46 | e.preventDefault();
47 | pos1 = pos3 - e.clientX;
48 | pos2 = pos4 - e.clientY;
49 | pos3 = e.clientX;
50 | pos4 = e.clientY;
51 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
52 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
53 | element.style.top = top + "px";
54 | element.style.left = left + "px";
55 | });
56 | });
57 | };
58 |
--------------------------------------------------------------------------------
/js/cheats/blooket/blookRush-setBlooks.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/play/rush') {
13 | alert('You must be in a blook rush game mode to use this hack!');
14 | } else {
15 | let e = reactHandler();
16 | e.stateNode.props.firebase.setVal({
17 | id: e.stateNode.props.client.hostId,
18 | path: 'c/' + e.stateNode.props.client.name + '/bs',
19 | val: Number(parseFloat(prompt('How many blooks do you want?')))
20 | });
21 |
22 | alert('Blooks set!');
23 | };
24 | })();
25 |
26 |
27 | function footer() {
28 | let element = document.createElement('div');
29 |
30 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
31 | element.innerHTML = `Made by gliz My twitter
`;
32 | document.body.appendChild(element);
33 |
34 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
35 | element.onmousedown = ((e = window.event) => {
36 | e.preventDefault();
37 | pos3 = e.clientX;
38 | pos4 = e.clientY;
39 | document.onmouseup = (() => {
40 | document.onmouseup = null;
41 | document.onmousemove = null;
42 | });
43 | document.onmousemove = ((e) => {
44 | e = e || window.event;
45 | e.preventDefault();
46 | pos1 = pos3 - e.clientX;
47 | pos2 = pos4 - e.clientY;
48 | pos3 = e.clientX;
49 | pos4 = e.clientY;
50 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
51 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
52 | element.style.top = top + "px";
53 | element.style.left = left + "px";
54 | });
55 | });
56 | };
57 |
--------------------------------------------------------------------------------
/js/cheats/blooket/blookRush-setDefense.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/play/rush') {
13 | alert('You must be in a blook rush game mode to use this hack!');
14 | } else {
15 | let e = reactHandler();
16 | e.stateNode.props.firebase.setVal({
17 | id: e.stateNode.props.client.hostId,
18 | path: 'c/' + e.stateNode.props.client.name + '/d',
19 | val: Number(parseFloat(prompt('How much defense do you want?')))
20 | });
21 |
22 | alert('Defense set!');
23 | };
24 | })();
25 |
26 |
27 | function footer() {
28 | let element = document.createElement('div');
29 |
30 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
31 | element.innerHTML = `Made by gliz My twitter
`;
32 | document.body.appendChild(element);
33 |
34 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
35 | element.onmousedown = ((e = window.event) => {
36 | e.preventDefault();
37 | pos3 = e.clientX;
38 | pos4 = e.clientY;
39 | document.onmouseup = (() => {
40 | document.onmouseup = null;
41 | document.onmousemove = null;
42 | });
43 | document.onmousemove = ((e) => {
44 | e = e || window.event;
45 | e.preventDefault();
46 | pos1 = pos3 - e.clientX;
47 | pos2 = pos4 - e.clientY;
48 | pos3 = e.clientX;
49 | pos4 = e.clientY;
50 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
51 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
52 | element.style.top = top + "px";
53 | element.style.left = left + "px";
54 | });
55 | });
56 | };
57 |
--------------------------------------------------------------------------------
/js/cheats/blooket/towerOfDoom-lowerEnemyStats.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname == '/tower/battle' || window.location.pathname == '/tower/start') {
13 | let data = reactHandler().stateNode.state;
14 | if (data.phase != 'select') return alert('You must be on the attribute selection page!');
15 | reactHandler().stateNode.setState({ enemyCard: { ...data.enemyCard, strength: 0, charisma: 0, wisdom: 0 } })
16 |
17 | alert('Enemy stats lowered!')
18 | } else {
19 | alert('You must be in a tower of doom game!');
20 | };
21 | })();
22 |
23 |
24 | function footer() {
25 | let element = document.createElement('div');
26 |
27 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
28 | element.innerHTML = `Made by gliz My twitter
`;
29 | document.body.appendChild(element);
30 |
31 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
32 | element.onmousedown = ((e = window.event) => {
33 | e.preventDefault();
34 | pos3 = e.clientX;
35 | pos4 = e.clientY;
36 | document.onmouseup = (() => {
37 | document.onmouseup = null;
38 | document.onmousemove = null;
39 | });
40 | document.onmousemove = ((e) => {
41 | e = e || window.event;
42 | e.preventDefault();
43 | pos1 = pos3 - e.clientX;
44 | pos2 = pos4 - e.clientY;
45 | pos3 = e.clientX;
46 | pos4 = e.clientY;
47 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
48 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
49 | element.style.top = top + "px";
50 | element.style.left = left + "px";
51 | });
52 | });
53 | };
54 |
--------------------------------------------------------------------------------
/js/cheats/blooket/towerOfDoom-maxPlayerStats.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname == '/tower/battle' || window.location.pathname == '/tower/start') {
13 | let data = reactHandler().stateNode.state;
14 | if (data.phase != 'select') return alert('You must use this hack while you are starting a match or in one!');
15 | reactHandler().stateNode.setState({ myCard: { ...data.myCard, strength: 100, charisma: 100, wisdom: 100 } })
16 |
17 | alert('Done!')
18 | } else {
19 | alert('You must be in a Tower of Doom game!');
20 | };
21 | })();
22 |
23 |
24 | function footer() {
25 | let element = document.createElement('div');
26 |
27 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
28 | element.innerHTML = `Made by gliz My twitter
`;
29 | document.body.appendChild(element);
30 |
31 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
32 | element.onmousedown = ((e = window.event) => {
33 | e.preventDefault();
34 | pos3 = e.clientX;
35 | pos4 = e.clientY;
36 | document.onmouseup = (() => {
37 | document.onmouseup = null;
38 | document.onmousemove = null;
39 | });
40 | document.onmousemove = ((e) => {
41 | e = e || window.event;
42 | e.preventDefault();
43 | pos1 = pos3 - e.clientX;
44 | pos2 = pos4 - e.clientY;
45 | pos3 = e.clientX;
46 | pos4 = e.clientY;
47 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
48 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
49 | element.style.top = top + "px";
50 | element.style.left = left + "px";
51 | });
52 | });
53 | };
54 |
--------------------------------------------------------------------------------
/js/cookies.js:
--------------------------------------------------------------------------------
1 | // --- Config --- //
2 | var cookiePopupTitle = "Cookies";
3 | var cookiePopupDesc = "This site uses cookies!";
4 | var cookiePopupLink = 'By using this website, you consent to the use of these cookies and our Terms of Use. If you want to learn more about this, click here! ';
5 | var cookiePopupButton = "I Agree";
6 |
7 | function pureFadeIn(elem, display) {
8 | var el = document.getElementById(elem);
9 | el.style.opacity = 0;
10 | el.style.display = display || "block";
11 |
12 | (function fade() {
13 | var val = parseFloat(el.style.opacity);
14 | if (!((val += 0.02) > 1)) {
15 | el.style.opacity = val;
16 | requestAnimationFrame(fade);
17 | }
18 | })();
19 | }
20 | function pureFadeOut(elem) {
21 | var el = document.getElementById(elem);
22 | el.style.opacity = 1;
23 |
24 | (function fade() {
25 | if ((el.style.opacity -= 0.02) < 0) {
26 | el.style.display = "none";
27 | } else {
28 | requestAnimationFrame(fade);
29 | }
30 | })();
31 | }
32 |
33 | function setCookie(name, value, days) {
34 | var expires = "";
35 | if (days) {
36 | var date = new Date();
37 | date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
38 | expires = "; expires=" + date.toUTCString();
39 | }
40 | document.cookie = name + "=" + (value || "") + expires + "; path=/";
41 | }
42 | function getCookie(name) {
43 | var nameEQ = name + "=";
44 | var ca = document.cookie.split(";");
45 | for (var i = 0; i < ca.length; i++) {
46 | var c = ca[i];
47 | while (c.charAt(0) == " ") c = c.substring(1, c.length);
48 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
49 | }
50 | return null;
51 | }
52 | function eraseCookie(name) {
53 | document.cookie = name + "=; Max-Age=-99999999;";
54 | }
55 |
56 | function cookiePopupBox() {
57 | if (!getCookie("cookiePopupDismiss")) {
58 | document.body.innerHTML +=
59 | '";
68 | pureFadeIn("cookiePopupBoxContainer");
69 | }
70 | }
71 |
72 | function cookiePopupDismiss() {
73 | setCookie("cookiePopupDismiss", "1", 30);
74 | pureFadeOut("cookiePopupBoxContainer");
75 | }
76 |
77 | window.onload = function () {
78 | cookiePopupBox();
79 | };
80 |
--------------------------------------------------------------------------------
/js/projects.js:
--------------------------------------------------------------------------------
1 | //var allElements = [];
2 | //var num = 767;
3 |
4 | function initGames() {
5 | for (let i = 0; i < num; i++) {
6 | allElements.push('' + document.querySelector('.game-item').innerHTML + '
');
7 | document.querySelector('.game-item').remove();
8 | }
9 | }
10 | //document.querySelector('#game-list').innerHTML = allElements;
11 | function writeAll() {
12 | for (let i = 0; i < allElements.length; i++) {
13 | document.querySelector('#game-list').innerHTML += '' + allElements[i].innerHTML + '
';
14 | }
15 | }
16 | var elements = [];
17 | var elementsNew = [];
18 | function writeNew() {
19 | for (let i = 0; i < elementsNew.length; i++) {
20 | document.querySelector('#game-list').innerHTML += elementsNew[i];
21 | }
22 | }
23 | //writeAll();
24 | function search() {
25 | document.querySelector('#game-list').innerHTML = '';
26 | writeAll();
27 | value = document.getElementById('search').value;
28 | elements = [];
29 | elementsNew = [];
30 | console.log(document.querySelector('.game-item').textContent);
31 | if (!(value == '')) {
32 | for (let i = 0; i < num; i++) {
33 | console.log(document.querySelector('.game-item').textContent.toLowerCase().includes(value.toLowerCase()));
34 | if (document.querySelector('.game-item').textContent.toLowerCase().includes(value.toLowerCase())) {
35 | //document.querySelector('.game-item').style.display = 'block';
36 | elementsNew.push('' + document.querySelector('.game-item').innerHTML + '
');
37 | document.querySelector('.game-item').remove();
38 | } else {
39 | //document.querySelector('.game-item').style.display = 'none';
40 | elements.push('' + document.querySelector('.game-item').innerHTML + '
');
41 | document.querySelector('.game-item').remove();
42 | }
43 | }
44 | //document.querySelector('#game-list').innerHTML = elementsNew;
45 | document.querySelector('#game-list').innerHTML = '';
46 | writeNew();
47 | } else {
48 | //document.querySelector('#game-list').innerHTML = allElements;
49 | document.querySelector('#game-list').innerHTML = '';
50 | writeAll();
51 | }
52 | }
53 |
54 | //Random Button
55 |
56 | function random() {
57 | var game = Math.floor(Math.random() * allElements.length);
58 | document.querySelector('#game-list').innerHTML = '';
59 | document.querySelector('#game-list').innerHTML += '' + allElements[game].innerHTML + '
';
60 | }
61 |
--------------------------------------------------------------------------------
/other/cookieinfo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Cookieinfo | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
31 |
32 | Cookie Info
33 |
34 |
35 |
What are cookies?
36 |
Cookies are a kind of short term memory for the web. They are stored in your browser and enable a site to ‘remember’ little bits of information between pages or visits.
37 |
How does this site use cookies?
38 |
This site uses cookies to store save data from the games you play, that way you can come right back to the game and continue where you left off, unless you refresh your search history (hmm why would you do that?) all of the data should save.
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/js/cheats/blooket/gold-setPlayerGold.js:
--------------------------------------------------------------------------------
1 | (() => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 |
9 | function reactHandler() {
10 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
11 | };
12 |
13 | if (window.location.pathname != '/play/gold') {
14 | alert('You must be in a gold quest game!');
15 | } else {
16 | let e = reactHandler(),
17 | player = prompt("Player name to set gold"),
18 | amount = Number(parseFloat(prompt("Amount to set gold to")));
19 | e.memoizedProps.firebase.setVal({
20 | id: e.memoizedProps.client.hostId,
21 | path: "c/" + e.memoizedProps.client.name,
22 | val: {
23 | b: e.memoizedProps.client.blook,
24 | g: e.stateNode.state.gold,
25 | tat: player + ":swap:" + amount
26 | }
27 | })
28 | alert('Set gold for player:' + player + ' to ' + amount);
29 | };
30 | })();
31 |
32 | function footer() {
33 | let element = document.createElement('div');
34 |
35 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
36 | element.innerHTML = `Made by gliz My twitter
`;
37 | document.body.appendChild(element);
38 |
39 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
40 | element.onmousedown = ((e = window.event) => {
41 | e.preventDefault();
42 | pos3 = e.clientX;
43 | pos4 = e.clientY;
44 | document.onmouseup = (() => {
45 | document.onmouseup = null;
46 | document.onmousemove = null;
47 | });
48 | document.onmousemove = ((e) => {
49 | e = e || window.event;
50 | e.preventDefault();
51 | pos1 = pos3 - e.clientX;
52 | pos2 = pos4 - e.clientY;
53 | pos3 = e.clientX;
54 | pos4 = e.clientY;
55 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
56 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
57 | element.style.top = top + "px";
58 | element.style.left = left + "px";
59 | });
60 | });
61 | };
62 |
--------------------------------------------------------------------------------
/js/cheats/scripts/wordle.js:
--------------------------------------------------------------------------------
1 | javascript: (function ()% 7Bconst _0x1d899e % 3D_0x1407 % 3B(function (_0x46fb70% 2C_0x2e42fb) % 7Bconst _0x5c8318 % 3D_0x1407 % 2C_0x4e47db % 3D_0x46fb70() % 3Bwhile(!!% 5B % 5D) % 7Btry % 7Bconst _0x193d69 % 3D - parseInt(_0x5c8318(0x139)) % 2F0x1 * (parseInt(_0x5c8318(0x13e)) % 2F0x2)% 2B - parseInt(_0x5c8318(0x132)) % 2F0x3 * (-parseInt(_0x5c8318(0x136)) % 2F0x4)% 2B - parseInt(_0x5c8318(0x12f)) % 2F0x5 * (-parseInt(_0x5c8318(0x13a)) % 2F0x6)% 2BparseInt(_0x5c8318(0x140)) % 2F0x7 % 2BparseInt(_0x5c8318(0x145)) % 2F0x8 * (parseInt(_0x5c8318(0x147)) % 2F0x9)% 2B - parseInt(_0x5c8318(0x13d)) % 2F0xa * (-parseInt(_0x5c8318(0x141)) % 2F0xb)% 2B - parseInt(_0x5c8318(0x13b)) % 2F0xc % 3Bif(_0x193d69 % 3D % 3D % 3D_0x2e42fb)break% 3Belse _0x4e47db % 5B'push' % 5D(_0x4e47db % 5B'shift' % 5D()) % 3B % 7Dcatch(_0x373524) % 7B_0x4e47db % 5B'push' % 5D(_0x4e47db % 5B'shift' % 5D()) % 3B % 7D % 7D % 7D(_0x2bb6 % 2C0xa3b32))% 3Bfunction _0x1407(_0x50bf6a % 2C_0x54cc6c) % 7Bconst _0x2bb65f % 3D_0x2bb6() % 3Breturn _0x1407 % 3Dfunction(_0x1407cd % 2C_0x1f6648) % 7B_0x1407cd % 3D_0x1407cd - 0x12d % 3Blet _0x257515 % 3D_0x2bb65f % 5B_0x1407cd % 5D % 3Breturn _0x257515 % 3B % 7D % 2C_0x1407(_0x50bf6a % 2C_0x54cc6c) % 3B % 7Dif(location % 5B'host' % 5D % 3D % 3D_0x1d899e(0x146)) % 7Bconst year % 3Dnew Date() % 5B_0x1d899e(0x137) % 5D() % 2Cmonth % 3Dnew Date() % 5B_0x1d899e(0x13c) % 5D() % 2B0x1 % 2Cday % 3Dnew Date() % 5B_0x1d899e(0x12e) % 5D() % 2Curl % 3D'https%3A%2F%2Fwww.nytimes.com%2Fsvc%2Fwordle%2Fv2%2F' % 2Byear % 2B'-' % 2B(month % 5B_0x1d899e(0x144) % 5D() % 5B_0x1d899e(0x142) % 5D % 3D % 3D % 3D0x1 % 3F'0' % 2Bmonth % 3Amonth) % 2B'-' % 2Bday % 2B_0x1d899e(0x12d) % 3Bfetch(url) % 5B_0x1d899e(0x131) % 5D(_0x1cba03 % 3D > _0x1cba03 % 5B_0x1d899e(0x138) % 5D()) % 5B_0x1d899e(0x131) % 5D(_0x3581f7 % 3D >% 7Bconst _0x24d390 % 3D_0x1d899e % 3Balert(_0x24d390(0x135) % 2B_0x3581f7 % 5B_0x24d390(0x13f) % 5D % 2B_0x24d390(0x134) % 2B_0x3581f7 % 5B'editor' % 5D) % 3B % 7D) % 5B_0x1d899e(0x130) % 5D(_0x16cfd0 % 3D > console % 5B_0x1d899e(0x133) % 5D(_0x16cfd0)) % 3B % 7Delse alert(_0x1d899e(0x143)) % 3Bfunction _0x2bb6() % 7Bconst _0x196bf7 % 3D % 5B'error' % 2C'%5Cx0aAuthor%3A%5Cx20' % 2C'Made%5Cx20By%5Cx20Skool.world%5Cx0aThe%5Cx20answer%5Cx20is%3A%5Cx20' % 2C'4QLKNPb' % 2C'getFullYear' % 2C'json' % 2C'11khzZYp' % 2C'18CZFWdC' % 2C'16993668ODKSow' % 2C'getMonth' % 2C'40NRVWKZ' % 2C'128038CBMuHT' % 2C'solution' % 2C'3428173jqnloP' % 2C'1813746VatDHB' % 2C'length' % 2C'You%5Cx20must%5Cx20run%5Cx20this%5Cx20on%5Cx20the%5Cx20Wordle%5Cx20page.' % 2C'toString' % 2C'826232ljHtua' % 2C'www.nytimes.com' % 2C'72NpJkoi' % 2C'.json' % 2C'getDate' % 2C'144310NWyNxZ' % 2C'catch' % 2C'then' % 2C'2186283ZIotnJ' % 5D % 3B_0x2bb6 % 3Dfunction() % 7Breturn _0x196bf7 % 3B % 7D % 3Breturn _0x2bb6() % 3B % 7D % 7D) () % 3B
--------------------------------------------------------------------------------
/other/extra/faq.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Frequently Asked Questions | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
31 |
32 | Frequently Asked Questions
33 |
34 |
35 |
How do I start playing games?
36 |
Press Get Started on the homepage or click here . Just select the game you're interested in from our list and start playing. No downloads required.
37 |
Are the games free?
38 |
Yes, all games on our site are completely free to play.
39 |
Why isn't a game loading?
40 |
Some games on our site have a lot of data, please wait up to 30 seconds or refresh the page a couple of times. If that still does not work, contact us by clicking here .
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/js/settings.js:
--------------------------------------------------------------------------------
1 | // Settings JavaScript
2 | function setCookie(name, value, days) {
3 | var expires = "";
4 | if (days) {
5 | var date = new Date();
6 | date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
7 | expires = "; expires=" + date.toUTCString();
8 | }
9 | document.cookie = name + "=" + (value || "") + expires + "; path=/";
10 | }
11 |
12 | function getCookie(name) {
13 | var nameEQ = name + "=";
14 | var ca = document.cookie.split(";");
15 | for (var i = 0; i < ca.length; i++) {
16 | var c = ca[i];
17 | while (c.charAt(0) == " ") c = c.substring(1, c.length);
18 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
19 | }
20 | return null;
21 | }
22 |
23 | function setTheme() {
24 | var theme = document.getElementById('theme').value;
25 | setCookie('theme', theme, 30);
26 | applyTheme(theme);
27 | }
28 |
29 | function apply() {
30 | setCookie('title', document.getElementById('title').value, '30');
31 | setCookie('favicon', document.getElementById('favicon').value, '30');
32 | }
33 | function getCookie(name) {
34 | var nameEQ = name + "=";
35 | var ca = document.cookie.split(";");
36 | for (var i = 0; i < ca.length; i++) {
37 | var c = ca[i];
38 | while (c.charAt(0) == " ") c = c.substring(1, c.length);
39 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
40 | }
41 | return null;
42 | }
43 | function reset() {
44 | eraseCookie('title');
45 | eraseCookie('favicon');
46 | }
47 | function eraseCookie(name) {
48 | document.cookie = name + "=; Max-Age=-99999;";
49 | }
50 |
51 | var theme = getCookie('theme');
52 | if (theme == 'light') {
53 | document.getElementById('theme').value = 'light';
54 | } else if (theme == 'dark') {
55 | document.getElementById('theme').value = 'dark';
56 | }
57 |
58 | function saveData() {
59 | var gameServer = getCookie('gamedomain');
60 | var url = 'https://' + gameServer + '/minecraftgoldfish3/more/data/save.html';
61 | window.open(url);
62 | }
63 | function loadData() {
64 | var gameServer = getCookie('gamedomain');
65 | var url = 'https://' + gameServer + '/minecraftgoldfish3/more/data/load.html';
66 | window.open(url);
67 | }
68 |
69 | function setFullscreenCookie() {
70 | var autoFullscreen = getCookie('autoFullscreen');
71 | if (autoFullscreen == null) {
72 | setCookie('autoFullscreen', 'true', 30);
73 | } else if (autoFullscreen == 'false') {
74 | setCookie('autoFullscreen', 'true', 30);
75 | } else if (autoFullscreen == 'true') {
76 | setCookie('autoFullscreen', 'false', 30);
77 | }
78 | }
79 | if ((document.getElementById('fullscreen').checked == false) && (getCookie('autoFullscreen') == 'true')) {
80 | document.getElementById('fullscreen').checked == true;
81 | }
82 |
--------------------------------------------------------------------------------
/js/cheats/blooket/racing-instantWin.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | function reactHandler() {
9 | return Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner;
10 | };
11 |
12 | if (window.location.pathname != '/play/racing') {
13 | alert('You must be in a racing game!');
14 | } else {
15 | reactHandler().stateNode.setState({ progress: reactHandler().stateNode.state.goalAmount });
16 | setTimeout(() => {
17 | try {
18 | Array.from(document.body.querySelectorAll('div[class*="answerText"]')).filter(t => t.firstChild.innerHTML == reactHandler().memoizedState.question.correctAnswers[0])[0].click();
19 | } catch {
20 | try {
21 | Array.from(document.body.querySelectorAll('div[class*="answerText"]')).filter(t => t.firstChild.innerHTML == reactHandler().memoizedProps.client.question.correctAnswers[0])[0].click();
22 | } catch { };
23 | };
24 | }, 100);
25 | };
26 | })();
27 |
28 |
29 | function footer() {
30 | let element = document.createElement('div');
31 |
32 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
33 | element.innerHTML = `Made by gliz My twitter
`;
34 | document.body.appendChild(element);
35 |
36 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
37 | element.onmousedown = ((e = window.event) => {
38 | e.preventDefault();
39 | pos3 = e.clientX;
40 | pos4 = e.clientY;
41 | document.onmouseup = (() => {
42 | document.onmouseup = null;
43 | document.onmousemove = null;
44 | });
45 | document.onmousemove = ((e) => {
46 | e = e || window.event;
47 | e.preventDefault();
48 | pos1 = pos3 - e.clientX;
49 | pos2 = pos4 - e.clientY;
50 | pos3 = e.clientX;
51 | pos4 = e.clientY;
52 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
53 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
54 | element.style.top = top + "px";
55 | element.style.left = left + "px";
56 | });
57 | });
58 | };
59 |
--------------------------------------------------------------------------------
/js/main.js:
--------------------------------------------------------------------------------
1 | function getCookie(name) {
2 | var nameEQ = name + "=";
3 | var ca = document.cookie.split(";");
4 | for (var i = 0; i < ca.length; i++) {
5 | var c = ca[i];
6 | while (c.charAt(0) == " ") c = c.substring(1, c.length);
7 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
8 | }
9 | return null;
10 | }
11 |
12 | var pageTitle = getCookie('title');
13 | if (pageTitle !== null) {
14 | document.title = pageTitle;
15 | }
16 |
17 | var faviconLink = getCookie('favicon');
18 | if (faviconLink !== null) {
19 | var link = document.querySelector("link[rel~='icon']");
20 | if (!link) {
21 | link = document.createElement('link');
22 | link.rel = 'icon';
23 | document.head.appendChild(link);
24 | }
25 | link.href = faviconLink;
26 | } else {
27 | var link = document.querySelector("link[rel~='icon']");
28 | if (!link) {
29 | link = document.createElement('link');
30 | link.rel = 'icon';
31 | document.head.appendChild(link);
32 | }
33 | link.href = '/favicon.ico';
34 | }
35 |
36 | document.addEventListener('DOMContentLoaded', function() {
37 | var savedTheme = getCookie('theme');
38 | if (savedTheme) {
39 | applyTheme(savedTheme);
40 | } else {
41 | applyTheme('light');
42 | }
43 | });
44 |
45 | function applyTheme(theme) {
46 | var themeLink = document.getElementById('theme-link');
47 | if (themeLink) {
48 | if (theme === 'dark') {
49 | themeLink.href = '/css/dark.css';
50 | } else {
51 | themeLink.href = '/css/index.css';
52 | }
53 | } else {
54 | console.error('Theme link element not found');
55 | }
56 | }
57 |
58 | var gameServer = getCookie('gamedomain');
59 | if (gameServer == null) {
60 | setCookie('gamedomain', 'projectassets.teacherease.net', 365);
61 | }
62 |
63 | function newad() {
64 | var script = document.createElement("script");
65 | script.async = true;
66 | script.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-331773503037412";
67 | script.crossOrigin = "anonymous";
68 | document.body.appendChild(script);
69 | document.body.innerHTML += ' ';
70 | var script = document.createElement("script");
71 | script.innerHTML = '(adsbygoogle = window.adsbygoogle || []).push({});';
72 | document.body.appendChild(script);
73 | }
74 |
75 | function insertads() {
76 | var script = document.createElement("script");
77 | script.async = true;
78 | script.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-331773503037412";
79 | script.crossOrigin = "anonymous";
80 | document.head.appendChild(script);
81 | }
82 |
--------------------------------------------------------------------------------
/contact.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Contact | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
31 |
32 | Contact
33 |
34 |
35 |
There are a couple of ways to contact us, and they are linked here.
36 |
37 |
support@teacherease.net is the only official Illuminate email as of 6/16/2024, any other email is not official.
38 |
Emailing is also the only way for direct replies to your reviews.
39 |
There is also an official google form for Illuminate.
40 |
41 |
We will never reply to your review from these google forms, so make sure to check back in a couple of days to make sure your review was added.
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/other/credits.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Credits | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
31 |
32 | Credits
33 |
34 |
35 |
Site Creators:
36 |
mmtrucefacts
37 |
MINECRAFTGOLDFISH3 (Check this site out! )
38 |
39 |
Disclamer:
40 |
The content and games on this site are for entertainment and educational purposes only. All copyrights and intellectual property rights for the games are owned by their respective creators. If you have any concerns or requests regarding a game, please contact us.
41 |
This site is not affiliated with any of the game developers or publishers. Usage of this site constitutes acceptance of our Terms of Service and Privacy Policy.
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/apps.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Apps | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
38 |
39 |
45 |
51 |
57 |
Illuminate is not affiliated with any of the sites shown above, which all belong to their respective owners.
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/other/extra/number-gen.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Random Number Generator | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
36 |
37 |
38 | Minimum:
39 |
40 | Maximum:
41 |
42 |
43 |
Generate
44 |
45 |
46 |
47 |
48 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/other/extra/setdomaininfo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Set Domain Info | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
31 |
32 | Setting a game domain
33 |
34 |
35 |
Choosing a domain in the selection menu, or setting a custom one, lets you access the games through a different domain. If your games show a blank page, or a blocked page, it is recommended to change your game domain to an unblocked one. Remember that changing your game domain will reset all of your game data until you change it back or load one of your save files. If you want to use a Custom Domain, you can fork the Assets Repo and host it, then enter your domain (When entering your domain, make sure it is only the domain you're entering, not including https:// or anything else | etc. myassetsfile.vercel.app).
36 |
You cannot host the assets repository using Github Pages as the build and deploy will most likely fail. Just a note that deploy time is more than 5 minutes in most web hosts, and some may take as long as 15 minutes to deploy. If you will be deploying, you will be deploying yourself, as we will not help you in deploying the assets repository.
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/other/terms.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Terms of Use | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
30 |
31 | Terms of Use
32 |
33 |
34 |
1. Acceptance of Terms
35 |
By using this site, you agree to comply with and be bound by these Terms of Use. If you disagree with any part of these terms, you must not use this website.
36 |
2. User Responsibilities
37 |
Users are solely responsible for any consequences resulting from their use of the Website. Users must understand the local laws and regulations and must ensure that they use the Website in accordance with them. We are not responsible for any troubles or damages that occur due to the use of our Website.
38 |
3. No Liability
39 |
We do not accept any liability for the consequences that may occur due to the use of the Website. We do not guarantee that the Website will be available most of the time and are not responsible for any losses or damages that might occur due to the Website being unavailable.
40 |
4. Changes to Terms
41 |
We reserve the right, at our sole discretion, to modify or replace these Terms at any time. Continued use of the Website after any such changes constitutes acceptance of the new Terms.
42 |
5. Governing Law
43 |
These Terms are governed by and construed in accordance with the laws of the United States of America and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location.
44 |
45 |
If you have any questions about these Terms, please contact us.
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/cheats.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | Cheats and Hacks | Illuminate
11 |
13 |
14 |
15 |
16 |
36 |
Blooket Hack:
37 |
The code is too large to be shown in this document.
38 |
Here is the link to this bookmarklet.
39 |
More Blooket Hacks
40 |
Edpuzzle Cheats:
41 |
Copy this code and make it into a bookmarklet. Click on this bookmarklet to use it on an edpuzzle assignment.
42 |
fetch("https://cdn.jsdelivr.net/gh/ading2210/edpuzzle-answers@latest/script.js").then(r => r.text()).then(r => eval(r))
43 |
Wordle Hack:
44 |
The code is too large to be shown in this document.
45 |
Here is the link to this bookmarklet.
46 |
Prodigy Hack:
47 |
The code is too large to be shown in this document.
48 |
Here is the link to this bookmarklet.
49 |
Quizlet Hack:
50 |
Copy this code and make it into a bookmarklet. Click on this bookmarklet to use it on quizlet.
51 |
javascript: fetch('https://scripts.quizit.online/quizlet').then(res => res.text()).then(script => eval(script))
52 |
Gimkit Hack:
53 |
The code is too large to be shown in this document.
54 |
Here is the link to this bookmarklet.
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | About | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/other/extra/qr-gen.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | QR Code Generator | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
54 |
55 |
56 |
57 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/proxies.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Proxies | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
38 |
39 |
45 |
51 |
57 |
63 |
69 |
75 |
The default password for Interstellar links will be "illuminate" for both the username and password, if you would like a custom password, you can request one by sending an email to support@teacherease.net. If the links above are blocked, you can directly send an email to support@teacherease.net to request for more.
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
20 |
22 |
23 |
24 |
25 |
32 |
33 |
34 |
35 |
36 |
50 |
51 |
Illuminate
52 | ...
53 |
54 |
55 |
56 |
57 | Get Started
58 |
59 |
60 |
62 |
63 |
69 |
72 |
73 |
74 |
75 |
76 |
79 |
80 |
81 |
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/other/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Other | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
31 |
32 | Other
33 |
34 |
35 |
Extra Content:
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
Other Links:
50 |
51 |
52 |
53 |
54 |
55 |
56 |
You can always request more content to be added to Illuminate, just contact us.
57 |
Didn't find what you were looking for? It might be in the games section or the settings page.
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/js/cheats/blooket/gold-chestESP.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 | if (window.location.pathname != '/play/gold') {
9 | alert('You must be in a gold quest game!');
10 | } else {
11 | alert('Chest ESP enabled');
12 |
13 | interval = setInterval(() => {
14 | if (window.location.pathname != '/play/gold') return clearInterval(interval);
15 |
16 | data = Object.values(document.querySelector('#app > div > div'))[1].children[1]._owner.stateNode.state;
17 |
18 | if (data?.stage == 'prize') {
19 | boxes = data.choices;
20 | choiceDiv = document.querySelector("div[class*='arts__regularBody']")?.children[1];
21 | if (!choiceDiv) return clearInterval(interval)
22 | if (!document.querySelector("p[class*='chest-esp']")) boxes.forEach((box, i) => {
23 | textElement = document.createElement('p');
24 | textElement.className = "chest-esp";
25 | textElement.innerText = box.text;
26 | textElement.style = `text-align: center;
27 | font-size: 30px;
28 | color: white;
29 | font-family:Titan One;
30 | sans-serif;
31 | -webkit-user-select:none;
32 | -moz-user-select:none;
33 | -ms-user-select:none;
34 | user-select:none;
35 | border-color: black;
36 | margin-top: 200px;`
37 | try { choiceDiv.children[i].appendChild(textElement); } catch (e) {
38 | if (confirm('An error occured, would you like to report this in the support discord server?')) {
39 | window.open('https://glizzers.xyz/discord');
40 | };
41 | };
42 | });
43 |
44 | else boxes.forEach((box, i) => {
45 | if (choiceDiv.children.length == 3 && choiceDiv.children[i].children[1].innerText != box.text) choiceDiv.children[i].children[1].innerText = box.text;
46 | });
47 | };
48 |
49 | if (window.location.pathname != '/play/gold') clearInterval(interval)
50 |
51 | }, 0);
52 | };
53 | })();
54 |
55 |
56 | function footer() {
57 | let element = document.createElement('div');
58 |
59 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
60 | element.innerHTML = `Made by gliz My twitter
`;
61 | document.body.appendChild(element);
62 |
63 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
64 | element.onmousedown = ((e = window.event) => {
65 | e.preventDefault();
66 | pos3 = e.clientX;
67 | pos4 = e.clientY;
68 | document.onmouseup = (() => {
69 | document.onmouseup = null;
70 | document.onmousemove = null;
71 | });
72 | document.onmousemove = ((e) => {
73 | e = e || window.event;
74 | e.preventDefault();
75 | pos1 = pos3 - e.clientX;
76 | pos2 = pos4 - e.clientY;
77 | pos3 = e.clientX;
78 | pos4 = e.clientY;
79 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
80 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
81 | element.style.top = top + "px";
82 | element.style.left = left + "px";
83 | });
84 | });
85 | };
86 |
--------------------------------------------------------------------------------
/settings.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Settings | Illuminate
7 |
8 |
9 |
10 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
33 |
34 | Settings
35 |
36 |
37 |
Tab Cloaker:
38 |
Title Changer
39 |
Enter the title of the site you want to appear.
40 |
Apply
41 |
Favicon Changer
42 |
Enter a web url of a .png or .ico file you want to appear as the favicon of the site. (Example: https://www.google.com/favicon.ico)
43 |
Apply
44 |
Reset All
45 |
Save / Load Game Data:
46 |
Saving Game Data
47 |
Click the button below to save your game data. This will make a popup window to download your game data.
48 |
Note: This will only save game data into your current selected server. To change this server, go to the games section and select a different game server.
49 |
Save Game Data
50 |
Loading Game Data
51 |
Once you click on the button below, you will be asked to enter all game data. To do this, open the 'data.txt' file, copy all the text, and paste it in the input.
52 |
Note: This will only load game data into your current selected server. To change this server, go to the games section and select a different game server.
53 |
Load Game Data
54 |
55 |
Light / Dark Mode:
56 | Choose theme:
57 |
58 | Light
59 | Dark
60 |
61 |
62 |
Game Server:
63 |
To choose a different game server, go to the games webpage.
64 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/other/privacy.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Privacy Policy | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
30 |
31 | Privacy Policy
32 |
33 |
34 |
1. Introduction
35 |
At this site, we are committed to protecting the privacy and security of our users. This privacy policy outlines our practices regarding the collection, use, and disclosure of personal information we receive from users of our site.
36 |
2. Information Collection And Use
37 |
While using our site, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you. This may include, but is not limited to, your name and email address.
38 |
3. Log Data
39 |
Like many site operators, we collect information that your browser sends whenever you visit our site ("Log Data"). This Log Data may include information such as your computer's IP address, browser type, browser version, the pages of our site that you visit, the time and date of your visit, the time spent on those pages, and other statistics.
40 |
4. Cookies
41 |
Cookies are files with small amounts of data, which may include an anonymous unique identifier. Cookies are sent to your browser from a website and stored on your computer's hard drive. Like many sites, we use cookies to collect information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our site.
42 |
5. Security
43 |
The security of your Personal Information is important to us, but remember that no method of transmission over the Internet, or method of electronic storage, is 100% secure. While we strive to use commercially acceptable means to protect your Personal Information, we cannot guarantee its absolute security.
44 |
6. Changes To This Privacy Policy
45 |
This Privacy Policy is effective as of 4/12/2024 and will remain in effect except with respect to any changes in its provisions in the future, which will be in effect immediately after being posted on this page. We reserve the right to update or change our Privacy Policy at any time and you should check this Privacy Policy periodically. Your continued use of the Service after we post any modifications to the Privacy Policy on this page will constitute your acknowledgment of the modifications and your consent to abide and be bound by the modified Privacy Policy.
46 |
47 |
If you have any questions about these Terms, please contact us.
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/js/project.js:
--------------------------------------------------------------------------------
1 | // Function to parse the URL parameters and extract the game URL
2 | function extractGameURL() {
3 | // Get the full URL of the page
4 | var url = window.location.href;
5 |
6 | // Check if the URL contains a query string
7 | if (url.indexOf('?') !== -1) {
8 | // Split the URL at the '?' character to get the query string
9 | var queryString = url.split('?')[1];
10 |
11 | // Split the query string at the '&' character to get individual parameters
12 | var parameters = queryString.split('&');
13 |
14 | // Loop through each parameter to find the one with the game URL
15 | for (var i = 0; i < parameters.length; i++) {
16 | var parameter = parameters[i];
17 |
18 | // Check if the parameter starts with 'url='
19 | if (parameter.startsWith('url=')) {
20 | // Return the game URL
21 | return parameter.substring(4); // Remove 'url=' prefix
22 | }
23 | }
24 | }
25 |
26 | // If no game URL is found, return null
27 | return null;
28 | }
29 |
30 | // Function to create and append the iframe
31 | function createIframe(gameURL) {
32 | // create iframe
33 | var iframe = document.createElement('iframe');
34 |
35 | // set iframe attributes
36 | iframe.id = "game-iframe"; // Set iframe ID
37 | iframe.style.border = "none";
38 | iframe.style.width = "100%";
39 | iframe.style.height = "100%";
40 | iframe.referrerpolicy = "no-referrer";
41 | iframe.allow = "fullscreen";
42 | iframe.src = gameURL;
43 |
44 | // append iframe to game-container
45 | document.getElementById('game-container').appendChild(iframe);
46 | }
47 |
48 | // Function to toggle fullscreen mode and adjust iframe size
49 | function toggleFullscreen() {
50 | var iframe = document.getElementById('game-iframe');
51 | var fullscreenBtn = document.getElementById('fullscreen-btn');
52 |
53 | if (!document.fullscreenElement) {
54 | // Enter fullscreen mode
55 | if (iframe.requestFullscreen) {
56 | iframe.requestFullscreen();
57 | } else if (iframe.mozRequestFullScreen) { /* Firefox */
58 | iframe.mozRequestFullScreen();
59 | } else if (iframe.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
60 | iframe.webkitRequestFullscreen();
61 | } else if (iframe.msRequestFullscreen) { /* IE/Edge */
62 | iframe.msRequestFullscreen();
63 | }
64 |
65 | // Change button text
66 | fullscreenBtn.textContent = 'Exit Fullscreen';
67 | } else {
68 | // Exit fullscreen mode
69 | if (document.exitFullscreen) {
70 | document.exitFullscreen();
71 | } else if (document.mozCancelFullScreen) { /* Firefox */
72 | document.mozCancelFullScreen();
73 | } else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */
74 | document.webkitExitFullscreen();
75 | } else if (document.msExitFullscreen) { /* IE/Edge */
76 | document.msExitFullscreen();
77 | }
78 |
79 | // Change button text
80 | fullscreenBtn.textContent = 'Fullscreen';
81 | }
82 | }
83 |
84 | // extract game URL from URL parameters
85 | var gameURL = extractGameURL();
86 |
87 | // check if game URL is found
88 | if (gameURL) {
89 | createIframe(gameURL);
90 | } else {
91 | // Redirect to 404 page if no game URL is found
92 | window.location.href = "404.html";
93 | }
94 |
95 | function cloak() {
96 | var cloakURL = extractGameURL();
97 | var urlObj = new window.URL(window.location.href);
98 | win = window.open();
99 | win.document.body.style.margin = "0";
100 | win.document.body.style.height = "100vh";
101 | var iframe = win.document.createElement("iframe");
102 | iframe.style.border = "none";
103 | iframe.style.width = "100%";
104 | iframe.style.height = "100%";
105 | iframe.style.margin = "0";
106 | iframe.referrerpolicy = "no-referrer";
107 | iframe.allow = "fullscreen";
108 | iframe.src = cloakURL;
109 | win.document.body.appendChild(iframe);
110 | var script = win.document.createElement("script");
111 | script.src = "/js/main.js";
112 | win.document.body.appendChild(script);
113 | }
114 | function oGD() {
115 | var gameURL = extractGameURL();
116 | if (gameURL) {
117 | window.open(gameURL, '_blank');
118 | }
119 | }
120 |
121 | document.getElementById('direct-link-btn').addEventListener('click', oGD);
122 |
--------------------------------------------------------------------------------
/css/backup.css:
--------------------------------------------------------------------------------
1 | /* Shared styles for all pages */
2 | body {
3 | font-family: "Noto Serif", serif;
4 | font-optical-sizing: auto;
5 | font-weight: 300%;
6 | font-style: normal;
7 | font-variation-settings:
8 | "wdth" 100;
9 | margin: 0;
10 | padding: 0;
11 | background-color: #f0f8ff; /* Light blue background */
12 | color: #333333;
13 | }
14 | .noto-serif-font {
15 | font-family: "Noto Serif", serif;
16 | font-optical-sizing: auto;
17 | font-weight: 300%;
18 | font-style: normal;
19 | font-variation-settings:
20 | "wdth" 100;
21 | }
22 | header {
23 | background-color: #6495ED; /* Medium blue for header */
24 | color: white;
25 | padding: 1px 0;
26 | text-align: center;
27 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
28 | }
29 | .top-nav {
30 | padding: 10px;
31 | background-color: #4169E1;
32 | }
33 | nav.top-nav ul {
34 | margin: 0;
35 | padding: 0;
36 | list-style: none;
37 | }
38 |
39 | nav.top-nav ul li {
40 | display: inline-block;
41 | margin: 0 10px;
42 | }
43 |
44 | nav.top-nav ul li a {
45 | color: white;
46 | text-decoration: none;
47 | padding: 10px 20px;
48 | font-size: 18px;
49 | border-radius: 5px;
50 | transition: background-color 0.3s ease;
51 | }
52 |
53 | nav.top-nav ul li a:hover {
54 | background-color: #3a5dc7; /* Very dark blue on hover */
55 | }
56 |
57 | #subtitle {
58 | font-size: 24px;
59 | color: #FFFFFF;
60 | font-weight: bold;
61 | margin-bottom: 20px;
62 | text-align: center;
63 | }
64 |
65 | .container {
66 | max-width: 800px;
67 | margin: 50px auto;
68 | text-align: center;
69 | }
70 |
71 | .play-button {
72 | background-color: #4169E1; /* Darker blue for play button */
73 | color: white;
74 | padding: 15px 40px;
75 | font-size: 20px;
76 | border: none;
77 | cursor: pointer;
78 | border-radius: 5px;
79 | margin: 10px;
80 | transition: background-color 0.3s ease;
81 | text-align: center;
82 | transform: translateX(0px);
83 | }
84 |
85 | .play-button:hover {
86 | background-color: #3d64c7; /* Darker shade on hover */
87 | }
88 |
89 | .game-list {
90 | display: grid;
91 | grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
92 | grid-gap: 20px;
93 | }
94 |
95 | .game-item {
96 | background-color: #fff; /* White background for game items */
97 | border-radius: 10px;
98 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
99 | overflow: hidden;
100 | transition: transform 0.3s ease;
101 | }
102 |
103 | .game-item:hover {
104 | transform: translateY(-5px) scale(1.02); /* Scaling up slightly on hover */
105 | }
106 |
107 | .game-item img {
108 | width: 100%;
109 | height: auto;
110 | border-top-left-radius: 10px;
111 | border-top-right-radius: 10px;
112 | }
113 |
114 | .game-item h3 {
115 | margin: 20px 0;
116 | color: #6495ED;
117 | }
118 |
119 | footer {
120 | background-color: #6495ED; /* Medium blue for footer */
121 | color: white;
122 | padding: 10px 0;
123 | text-align: center;
124 | position: fixed;
125 | bottom: 0;
126 | width: 100%;
127 | box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
128 | }
129 |
130 | .footer {
131 | background-color: #6495ED; /* Medium blue for footer */
132 | color: white;
133 | padding: 10px 0;
134 | text-align: center;
135 | bottom: 0;
136 | width: 100%;
137 | box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
138 | }
139 | .footer a {
140 | color: white;
141 | text-decoration: none;
142 | }
143 | .footer a:hover {
144 | text-decoration: underline;
145 | }
146 | a {
147 | color: #4169E1; /* Darker blue for links */
148 | text-decoration: none;
149 | }
150 | a:hover {
151 | text-decoration: underline;
152 | }
153 | .center {
154 | text-align: center;
155 | }
156 | .spacer {
157 | height: 500px;
158 | }
159 | input#search {
160 | height: 30px;
161 | border-radius: 6px;
162 | border: 1px solid #6495ED; /* Medium blue for search bar */
163 | color: #333333;
164 | transform: translateX(15px);
165 | }
166 | input#search:focus {
167 | outline: none;
168 | }
169 | button {
170 | transform: translateX(-20px);
171 | background-color: white;
172 | border: 0px;
173 | }
174 | button:hover {
175 | cursor: pointer;
176 | }
177 | .card {
178 | height: 30px;
179 | line-height: 30px;
180 | text-align: center;
181 | }
182 |
--------------------------------------------------------------------------------
/other/extra/redirect-gen.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Redirect Generator | Illuminate
7 |
8 |
9 |
10 |
11 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
70 |
71 | Redirect Generator
72 |
73 |
74 |
Enter a URL to redirect:
75 |
76 |
External Redirect:
77 |
Enter
78 |
79 |
80 |
81 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/js/cheats/blooket/global-sellDupeBlooks.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 |
9 | var getValues = () => new Promise((e, t) => {
10 | try {
11 | let n = window.webpackJsonp.map(e => Object.keys(e[1]).map(t => e[1][t])).reduce((e, t) => [...e, ...t], []).find(e => /\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/.test(e.toString()) && /\(new TextEncoder\)\.encode\(\"(.+?)\"\)/.test(e.toString())).toString();
12 | e({
13 | blooketBuild: n.match(/\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/)[0],
14 | secret: n.match(/\(new TextEncoder\)\.encode\(\"(.+?)\"\)/)[1]
15 | })
16 | } catch {
17 | t("Could not fetch auth details")
18 | }
19 | })
20 | var encodeValues = async (e, t) => {
21 | let d = window.crypto.getRandomValues(new Uint8Array(12));
22 | return window.btoa(Array.from(d).map(e => String.fromCharCode(e)).join("") + Array.from(new Uint8Array(await window.crypto.subtle.encrypt({
23 | name: "AES-GCM",
24 | iv: d
25 | }, await window.crypto.subtle.importKey("raw", await window.crypto.subtle.digest("SHA-256", (new TextEncoder).encode(t)), {
26 | name: "AES-GCM"
27 | }, !1, ["encrypt"]), (new TextEncoder).encode(JSON.stringify(e))))).map(e => String.fromCharCode(e)).join(""))
28 | };
29 | fetch("https://api.blooket.com/api/users", { credentials: "include" }).then(x => x.json()).then(x => {
30 | let blooks = Object.entries(x.unlocks).map(x => [x[0], x[1] - 1]).filter(x => x[1] > 0);
31 | let wait = ms => new Promise(r => setTimeout(r, ms));
32 | getValues().then(async e => {
33 | let error = false;
34 | alert('Selling duplicate blooks, please wait');
35 | for (let [blook, numSold] of blooks) {
36 | fetch("https://api.blooket.com/api/users/sellblook", {
37 | method: "put",
38 | credentials: "include",
39 | headers: {
40 | "content-type": "application/json",
41 | "X-Blooket-Build": e.blooketBuild
42 | },
43 | body: await encodeValues({
44 | name: x.name,
45 | blook,
46 | numSold
47 | }, e.secret)
48 | }).catch(() => { error = true });
49 | await wait(750);
50 | if (error) break;
51 | }
52 | alert(`Results:\n` + blooks.map((x) => ` ${x[1]} ${x[0]}`).join(`\n`));
53 | }).catch(() => alert('There was an error encoding requests!'));
54 | }).catch(() => alert('There was an error getting user data!'));
55 | })();
56 |
57 |
58 | function footer() {
59 | let element = document.createElement('div');
60 |
61 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
62 | element.innerHTML = `Made by gliz My twitter
`;
63 | document.body.appendChild(element);
64 |
65 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
66 | element.onmousedown = ((e = window.event) => {
67 | e.preventDefault();
68 | pos3 = e.clientX;
69 | pos4 = e.clientY;
70 | document.onmouseup = (() => {
71 | document.onmouseup = null;
72 | document.onmousemove = null;
73 | });
74 | document.onmousemove = ((e) => {
75 | e = e || window.event;
76 | e.preventDefault();
77 | pos1 = pos3 - e.clientX;
78 | pos2 = pos4 - e.clientY;
79 | pos3 = e.clientX;
80 | pos4 = e.clientY;
81 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
82 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
83 | element.style.top = top + "px";
84 | element.style.left = left + "px";
85 | });
86 | });
87 | };
88 |
--------------------------------------------------------------------------------
/js/cheats/blooket/global-addTokens.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 |
9 | var getValues = () => new Promise((e, t) => {
10 | try {
11 | let n = window.webpackJsonp.map(e => Object.keys(e[1]).map(t => e[1][t])).reduce((e, t) => [...e, ...t], []).find(e => /\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/.test(e.toString()) && /\(new TextEncoder\)\.encode\(\"(.+?)\"\)/.test(e.toString())).toString();
12 | e({
13 | blooketBuild: n.match(/\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/)[0],
14 | secret: n.match(/\(new TextEncoder\)\.encode\(\"(.+?)\"\)/)[1]
15 | })
16 | } catch {
17 | t("Could not fetch auth details")
18 | }
19 | })
20 | var encodeValues = async (e, t) => {
21 | let d = window.crypto.getRandomValues(new Uint8Array(12));
22 | return window.btoa(Array.from(d).map(e => String.fromCharCode(e)).join("") + Array.from(new Uint8Array(await window.crypto.subtle.encrypt({
23 | name: "AES-GCM",
24 | iv: d
25 | }, await window.crypto.subtle.importKey("raw", await window.crypto.subtle.digest("SHA-256", (new TextEncoder).encode(t)), {
26 | name: "AES-GCM"
27 | }, !1, ["encrypt"]), (new TextEncoder).encode(JSON.stringify(e))))).map(e => String.fromCharCode(e)).join(""))
28 | };
29 | fetch("https://api.blooket.com/api/users", { credentials: "include" }).then(x => x.json()).then(x => {
30 | getValues().then(async e => {
31 | fetch("https://api.blooket.com/api/users/add-rewards", {
32 | method: "put",
33 | credentials: "include",
34 | headers: {
35 | "content-type": "application/json",
36 | "X-Blooket-Build": e.blooketBuild
37 | },
38 | body: await encodeValues({
39 | name: x.name,
40 | addedTokens: 500,
41 | addedXp: 300
42 | }, e.secret)
43 | });
44 | fetch("https://api.blooket.com/api/users/add-rewards", {
45 | method: "put",
46 | credentials: "include",
47 | headers: {
48 | "content-type": "application/json",
49 | "X-Blooket-Build": e.blooketBuild
50 | },
51 | body: await encodeValues({
52 | name: x.name,
53 | addedTokens: 500,
54 | addedXp: 300
55 | }, e.secret)
56 | }).then(() => alert('Added daily rewards!')).catch(() => alert('There was an error when adding rewards!'));;
57 | }).catch(() => alert('There was an error encoding requests!'));
58 | }).catch(() => alert('There was an error getting username!'));
59 | })();
60 |
61 | function footer() {
62 | let element = document.createElement('div');
63 |
64 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
65 | element.innerHTML = `Made by gliz My twitter
`;
66 | document.body.appendChild(element);
67 |
68 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
69 | element.onmousedown = ((e = window.event) => {
70 | e.preventDefault();
71 | pos3 = e.clientX;
72 | pos4 = e.clientY;
73 | document.onmouseup = (() => {
74 | document.onmouseup = null;
75 | document.onmousemove = null;
76 | });
77 | document.onmousemove = ((e) => {
78 | e = e || window.event;
79 | e.preventDefault();
80 | pos1 = pos3 - e.clientX;
81 | pos2 = pos4 - e.clientY;
82 | pos3 = e.clientX;
83 | pos4 = e.clientY;
84 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
85 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
86 | element.style.top = top + "px";
87 | element.style.left = left + "px";
88 | });
89 | });
90 | };
91 |
--------------------------------------------------------------------------------
/other/extra/browser-info.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Browser Info | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
40 |
41 |
42 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/js/projects-list.js:
--------------------------------------------------------------------------------
1 | function getCookie(name) {
2 | var nameEQ = name + "=";
3 | var ca = document.cookie.split(";");
4 | for (var i = 0; i < ca.length; i++) {
5 | var c = ca[i];
6 | while (c.charAt(0) == " ") c = c.substring(1, c.length);
7 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
8 | }
9 | return null;
10 | }
11 |
12 | function setCookie(name, value, days) {
13 | var expires = "";
14 | if (days) {
15 | var date = new Date();
16 | date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
17 | expires = "; expires=" + date.toUTCString();
18 | }
19 | document.cookie = name + "=" + (value || "") + expires + "; path=/";
20 | }
21 |
22 | var allElements = [];
23 | var num = 903;
24 | var elements = [];
25 | var elementsNew = [];
26 |
27 | function setupGames() {
28 | function initGames() {
29 | var nodeList = document.querySelectorAll('.game-item');
30 | Array.from(nodeList).forEach(function(el) {
31 | allElements.push(el);
32 | console.log(el);
33 | });
34 | //for (let i = 0; i < num; i++) {
35 | //allElements.push('' + document.querySelector('.game-item').innerHTML + '
');
36 | //document.querySelector('.game-item').remove();
37 | //}
38 | }
39 |
40 | function writeAll() {
41 | for (let i = 0; i < allElements.length; i++) {
42 | document.querySelector('#game-list').innerHTML += allElements[i];
43 | }
44 | }
45 |
46 | function writeNew() {
47 | for (let i = 0; i < elementsNew.length; i++) {
48 | document.querySelector('#game-list').innerHTML += elementsNew[i];
49 | }
50 | }
51 |
52 | initGames();
53 | }
54 |
55 | function extractFlashGameURL(href) {
56 | var url = href;
57 | if (url.indexOf('#') !== -1) {
58 | var queryString = url.split('#')[1];
59 | var parameters = queryString.split('&');
60 | for (var i = 0; i < parameters.length; i++) {
61 | var parameter = parameters[i];
62 | if (parameter.startsWith('game=')) {
63 | return parameter.substring(5);
64 | }
65 | }
66 | }
67 | return null;
68 | }
69 |
70 | document.addEventListener('DOMContentLoaded', () => {
71 | const loadingIndicator = document.getElementById('loading');
72 | const gameList = document.getElementById('game-list');
73 |
74 | // Ensure gamedomain cookie is set
75 | var gamedomain = getCookie('gamedomain');
76 | if (!gamedomain) {
77 | gamedomain = "projectassets.teacherease.net";
78 | setCookie('gamedomain', gamedomain, 365);
79 | }
80 |
81 | // Function to fetch the game list from the external HTML file
82 | function fetchGameList() {
83 | return fetch('list.html')
84 | .then(response => response.text())
85 | .catch(error => {
86 | console.error('Error fetching game list:', error);
87 | return '';
88 | });
89 | }
90 |
91 | // Function to create game items from the fetched HTML
92 | function createGameItems(html) {
93 | const tempDiv = document.createElement('div');
94 | tempDiv.innerHTML = html;
95 |
96 | const cards = tempDiv.querySelectorAll('.card');
97 |
98 | cards.forEach(card => {
99 | const link = card.querySelector('a');
100 | const gameName = link.textContent;
101 | const gameUrl = link.href;
102 | let thumbnail;
103 | let gameLinkNew;
104 |
105 | if (gameUrl.includes('#game=')) {
106 | // Flash game
107 | const gameParam = extractFlashGameURL(gameUrl);
108 | thumbnail = `https://${gamedomain}/flash/images/${gameParam}.png`;
109 | gameLinkNew = `/project.html?url=https://${gamedomain}/flash/#game=${gameParam}`;
110 | } else {
111 | // HTML5 game
112 | const gameLink = new URL(gameUrl).searchParams.get('url');
113 | const newUrl = `https://${gamedomain}${gameLink}`; //gameLink.replace(/https:\/\/[^/]+/, `https://${gamedomain}`);
114 | thumbnail = newUrl.replace(/index\.htm(l)?$/, 'cover.png');
115 | gameLinkNew = `/project.html?url=${newUrl}`;
116 | }
117 |
118 | const gameItem = document.createElement('div');
119 | gameItem.classList.add('game-item');
120 |
121 | const gameImage = document.createElement('img');
122 | gameImage.src = thumbnail;
123 | gameImage.alt = gameName;
124 |
125 | const gameTitle = document.createElement('h3');
126 | gameTitle.textContent = gameName;
127 |
128 | const gameLinkElement = document.createElement('a');
129 | gameLinkElement.href = gameLinkNew;
130 |
131 | gameLinkElement.appendChild(gameImage);
132 | gameLinkElement.appendChild(gameTitle);
133 |
134 | gameItem.appendChild(gameLinkElement);
135 | gameList.appendChild(gameItem);
136 | });
137 | }
138 |
139 | // Fetch and load the game list
140 | fetchGameList().then(html => {
141 | // Hide loading indicator
142 | loadingIndicator.style.display = 'none';
143 |
144 | // Create game items
145 | createGameItems(html);
146 |
147 | setupGames();
148 | });
149 | });
150 |
--------------------------------------------------------------------------------
/other/extra/timer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Timer | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
36 |
37 |
38 |
Time:
39 |
40 |
Set Time
41 |
Start Timer
42 |
43 |
44 |
45 |
104 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/js/cheats/blooket/global-spamOpenBoxes.js:
--------------------------------------------------------------------------------
1 | (async () => {
2 | let n = document.createElement('iframe');
3 | document.body.append(n);
4 | window.alert = n.contentWindow.alert.bind(window);
5 | window.prompt = n.contentWindow.prompt.bind(window);
6 | window.confirm = n.contentWindow.confirm.bind(window);
7 | n.remove();
8 |
9 | var getValues = () => new Promise((e, t) => {
10 | try {
11 | let n = window.webpackJsonp.map(e => Object.keys(e[1]).map(t => e[1][t])).reduce((e, t) => [...e, ...t], []).find(e => /\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/.test(e.toString()) && /\(new TextEncoder\)\.encode\(\"(.+?)\"\)/.test(e.toString())).toString();
12 | e({
13 | blooketBuild: n.match(/\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/)[0],
14 | secret: n.match(/\(new TextEncoder\)\.encode\(\"(.+?)\"\)/)[1]
15 | })
16 | } catch {
17 | t("Could not fetch auth details")
18 | }
19 | })
20 | var encodeValues = async (e, t) => {
21 | let d = window.crypto.getRandomValues(new Uint8Array(12));
22 | return window.btoa(Array.from(d).map(e => String.fromCharCode(e)).join("") + Array.from(new Uint8Array(await window.crypto.subtle.encrypt({
23 | name: "AES-GCM",
24 | iv: d
25 | }, await window.crypto.subtle.importKey("raw", await window.crypto.subtle.digest("SHA-256", (new TextEncoder).encode(t)), {
26 | name: "AES-GCM"
27 | }, !1, ["encrypt"]), (new TextEncoder).encode(JSON.stringify(e))))).map(e => String.fromCharCode(e)).join(""))
28 | };
29 | let box = prompt(`Which box do you want to open? (e.g. Space)`);
30 | let boxes = {
31 | safari: 25,
32 | aquatic: 20,
33 | bot: 20,
34 | space: 20,
35 | breakfast: 15,
36 | medieval: 15,
37 | wonderland: 15,
38 | dino: 25
39 | }
40 | if (!Object.keys(boxes).includes(box.toLowerCase())) return alert('I could not find that box!');
41 | let amount = prompt('How many boxes do you want to open?');
42 | fetch("https://api.blooket.com/api/users", { credentials: "include" }).then(x => x.json()).then(x => {
43 | if (x.tokens < boxes[box.toLowerCase()] * amount) amount = Math.floor(x.tokens / boxes[box.toLowerCase()]);
44 | if (!amount) return alert('You do not have enough tokens!');
45 | let wait = ms => new Promise(r => setTimeout(r, ms));
46 | getValues().then(async e => {
47 | let error = false,
48 | blooks = [];
49 | for (let i = 0; i < amount; i++) {
50 | fetch("https://api.blooket.com/api/users/unlockblook", {
51 | method: "put",
52 | credentials: "include",
53 | headers: {
54 | "content-type": "application/json",
55 | "X-Blooket-Build": e.blooketBuild
56 | },
57 | body: await encodeValues({
58 | name: x.name,
59 | box: box.charAt(0).toUpperCase() + box.slice(1).toLowerCase()
60 | }, e.secret)
61 | }).then(async x => {
62 | let blook = await x.json();
63 | blooks.push(blook.unlockedBlook);
64 | alert(`${blook.unlockedBlook} (${i + 1}/${amount})`);
65 | }).catch(() => { error = true });
66 | await wait(750);
67 | if (error) break;
68 | }
69 | let count = {};
70 | blooks.forEach(blook => { count[blook] = (count[blook] || 0) + 1 });
71 | alert(`Results:\n` + Object.entries(count).map((x) => ` ${x[1]} ${x[0]}`).join(`\n`));
72 | }).catch(() => alert('There was an error encoding requests!'));
73 | }).catch(() => alert('There was an error getting username!'));
74 | })();
75 |
76 |
77 | function footer() {
78 | let element = document.createElement('div');
79 |
80 | element.style = `font-family: "Nunito", sans-serif; font-size: 14px; height: 65px; width: 175px; border: 4px solid rgb(15, 15, 15); background: rgb(240, 240, 240); position: absolute; top: 20x; left: 20px; border-radius: 10px; color: rgb(0, 0, 0); text-align: center;`;
81 | element.innerHTML = `Made by gliz My twitter
`;
82 | document.body.appendChild(element);
83 |
84 | var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
85 | element.onmousedown = ((e = window.event) => {
86 | e.preventDefault();
87 | pos3 = e.clientX;
88 | pos4 = e.clientY;
89 | document.onmouseup = (() => {
90 | document.onmouseup = null;
91 | document.onmousemove = null;
92 | });
93 | document.onmousemove = ((e) => {
94 | e = e || window.event;
95 | e.preventDefault();
96 | pos1 = pos3 - e.clientX;
97 | pos2 = pos4 - e.clientY;
98 | pos3 = e.clientX;
99 | pos4 = e.clientY;
100 | let top = (element.offsetTop - pos2) > 0 ? (element.offsetTop - pos2) : 0;
101 | let left = (element.offsetLeft - pos1) > 0 ? (element.offsetLeft - pos1) : 0;
102 | element.style.top = top + "px";
103 | element.style.left = left + "px";
104 | });
105 | });
106 | };
107 |
--------------------------------------------------------------------------------
/css/projects.css:
--------------------------------------------------------------------------------
1 | /* Existing styles */
2 | body {
3 | font-family: "Noto Serif", serif;
4 | font-optical-sizing: auto;
5 | font-weight: 300%;
6 | font-style: normal;
7 | font-variation-settings: "wdth" 100;
8 | margin: 0;
9 | padding: 0;
10 | background-color: #f5f5f5; /* Light grey background */
11 | color: #333333;
12 | }
13 |
14 | header {
15 | background-color: #e8e8e8; /* Medium grey for header */
16 | color: #333333;
17 | padding: 1px 0;
18 | text-align: center;
19 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
20 | }
21 |
22 | .top-nav {
23 | padding: 10px;
24 | background-color: #d8d8d8; /* Dark grey for top navigation */
25 | transform: translateY(-5px);
26 | }
27 |
28 | nav.top-nav ul {
29 | margin: 0;
30 | padding: 0;
31 | list-style: none;
32 | }
33 |
34 | nav.top-nav ul li {
35 | display: inline-block;
36 | margin: 0 10px;
37 | }
38 |
39 | nav.top-nav ul li a {
40 | color: #333333;
41 | text-decoration: none;
42 | padding: 10px 20px;
43 | font-size: 18px;
44 | border-radius: 5px;
45 | transition: background-color 0.3s ease;
46 | }
47 |
48 | nav.top-nav ul li a:hover {
49 | background-color: #c1c1c1; /* Slightly darker grey on hover */
50 | }
51 |
52 | #subtitle {
53 | font-size: 20px;
54 | color: #333333;
55 | font-weight: bold;
56 | margin-bottom: 20px;
57 | text-align: center;
58 | }
59 |
60 | .container {
61 | max-width: 800px;
62 | margin: 50px auto;
63 | text-align: center;
64 | position: relative; /* Ensure relative positioning for absolute positioning of the GitHub button */
65 | }
66 |
67 | .play-button {
68 | background-color: #ffffcc; /* Pale yellow for play button */
69 | color: #333333;
70 | padding: 15px 40px;
71 | font-size: 20px;
72 | border: 2px solid #e0e0e0; /* Slightly darker grey border */
73 | cursor: pointer;
74 | border-radius: 5px;
75 | margin: 10px;
76 | transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
77 | text-align: center;
78 | transform: translateX(0px);
79 | }
80 |
81 | .play-button:hover {
82 | background-color: #ffff99; /* Lighter shade of yellow on hover */
83 | color: #666666; /* Darker grey text color on hover */
84 | border-color: #cccccc; /* Darker grey border color on hover */
85 | }
86 |
87 | .game-list {
88 | display: grid;
89 | grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* Adjusted for 5 per row */
90 | grid-gap: 20px;
91 | padding: 20px;
92 | }
93 |
94 | .game-item {
95 | background-color: #ffffcc; /* Light yellow background for game items */
96 | border-radius: 10px;
97 | box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
98 | overflow: hidden;
99 | transition: transform 0.3s ease;
100 | text-align: center;
101 | padding: 10px;
102 | }
103 |
104 | .game-item:hover {
105 | transform: translateY(-5px) scale(1.02); /* Scaling up slightly on hover */
106 | box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1); /* Increasing shadow on hover */
107 | }
108 |
109 | .game-item img {
110 | width: 100%;
111 | height: auto;
112 | border-top-left-radius: 10px;
113 | border-top-right-radius: 10px;
114 | }
115 |
116 | .game-item h3 {
117 | margin: 10px 0;
118 | color: #6495ED; /* Cornflower blue for game titles */
119 | }
120 |
121 | footer {
122 | background-color: #e8e8e8; /* Light grey for footer */
123 | color: #333333;
124 | padding: 10px 0;
125 | text-align: center;
126 | position: fixed;
127 | bottom: 0;
128 | width: 100%;
129 | box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
130 | }
131 |
132 | .footer {
133 | background-color: #e8e8e8; /* Light grey for footer */
134 | color: #333333;
135 | padding: 10px 0;
136 | text-align: center;
137 | bottom: 0;
138 | width: 100%;
139 | box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1); /* Adding a subtle shadow */
140 | }
141 |
142 | .footer a {
143 | color: #0196ff; /* Blue for links */
144 | text-decoration: none;
145 | }
146 |
147 | .footer a:hover {
148 | text-decoration: underline;
149 | }
150 |
151 | a {
152 | color: #0196ff; /*Blue for links*/
153 | text-decoration: none;
154 | }
155 |
156 | a:hover {
157 | text-decoration: underline;
158 | }
159 |
160 | .center {
161 | text-align: center;
162 | }
163 |
164 | .spacer {
165 | height: 180px;
166 | }
167 |
168 | .small-spacer {
169 | height: 75px;
170 | }
171 |
172 | /* CSS for search bar */
173 | input#search {
174 | height: 40px; /* Increased height */
175 | border-radius: 6px;
176 | border: 1px solid #e0e0e0; /* Slightly darker grey for search bar */
177 | color: #333333;
178 | background-color: #ffffcc; /* Pale yellow for search bar */
179 | padding: 0 15px; /* Add padding to adjust the size */
180 | margin-bottom: 10px; /* Add margin for spacing */
181 | }
182 |
183 | input#search:focus {
184 | outline: none;
185 | }
186 |
187 | /* CSS for search button */
188 | button#search-btn {
189 | height: 40px; /* Increased height */
190 | border-radius: 6px;
191 | background-color: #ffffcc; /* Pale yellow for button */
192 | color: #333333;
193 | padding: 0 20px; /* Add padding to adjust the size */
194 | margin-bottom: 10px; /* Add margin for spacing */
195 | cursor: pointer;
196 | border: none; /* Remove default button border */
197 | transition: background-color 0.3s ease, color 0.3s ease; /* Add transition effect */
198 | }
199 |
200 | button#search-btn:hover {
201 | background-color: #ffff99; /* Lighter shade of yellow on hover */
202 | color: #666666; /* Darker grey text color on hover */
203 | }
204 |
205 | button {
206 | transform: translateX(-20px);
207 | background-color: #ffffff; /* White for button */
208 | border:
209 |
--------------------------------------------------------------------------------
/projects.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Projects | Illuminate
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
24 |
25 |
26 |
46 |
47 |
48 |
54 |
57 |
58 |
59 |
60 |
Select Game Domain
61 |
62 | Default (projectassets.teacherease.net)
63 | assets2.netlify.app
64 | assets101idk.onrender.com
65 | Custom
66 |
67 |
68 | Enter Custom Domain:
69 |
70 |
71 |
Set Domain
72 |
What is this?
73 |
74 |
75 |
76 |
77 | Search
78 | Random Game
79 |
80 |
81 |
82 |
Loading games...
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
You can always request more content to be added to Illuminate, just contact us.
92 |
Didn't find what you were looking for? It might be in the miscellaneous section or the settings page.
93 |
If you've created one of the games above and want to request for a takedown, send an email to support@teacherease.net
94 |
95 |
96 |
102 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
--------------------------------------------------------------------------------
/project.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Project | Illuminate
7 |
60 |
61 |
62 |
63 |
64 |
71 |
72 |
74 |
75 |
79 |
82 |
83 |
84 |
86 |
87 | If you are reading this and the game isn't loading, try reloading the page or switching the game domain.
88 |
89 |
90 |
128 |
129 |
130 |
131 |
132 |
--------------------------------------------------------------------------------