├── 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 |
10 |

Click here to open in about:blank page.

11 |

If you want to stop seeing this page, allow popups.

12 |
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 | [![Deploy on Railway](https://binbashbanana.github.io/deploy-buttons/buttons/remade/railway.svg)](https://railway.app/new/template?template=https://github.com/xlluminate/Illuminate) 8 | [![Deploy to Cyclic](https://binbashbanana.github.io/deploy-buttons/buttons/remade/cyclic.svg)](https://app.cyclic.sh/api/app/deploy/xlluminate/Illuminate) 9 | [![Deploy to Koyeb](https://binbashbanana.github.io/deploy-buttons/buttons/remade/koyeb.svg)](https://app.koyeb.com/deploy?type=git&repository=github.com/xlluminate/Illuminate&branch=main&name=illuminate) 10 | [![Deploy to Render](https://binbashbanana.github.io/deploy-buttons/buttons/remade/render.svg)](https://render.com/deploy?repo=https://github.com/xlluminate/Illuminate) 11 | [![Run on Replit](https://binbashbanana.github.io/deploy-buttons/buttons/remade/replit.svg)](https://replit.com/github/xlluminate/Illuminate) 12 | [![Remix on Glitch](https://binbashbanana.github.io/deploy-buttons/buttons/remade/glitch.svg)](https://glitch.com/edit/#!/import/github/xlluminate/Illuminate) 13 | [![Deploy to Vercel](https://binbashbanana.github.io/deploy-buttons/buttons/remade/vercel.svg)](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 | '
' + 60 | cookiePopupTitle + 61 | '

' + 62 | cookiePopupDesc + 63 | " " + 64 | cookiePopupLink + 65 | '

' + 66 | cookiePopupButton + 67 | "
"; 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 | 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 | 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 | 32 |

Contact

33 |
34 |
35 |

There are a couple of ways to contact us, and they are linked here.

36 |
Email support at support@teacherease.net
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 |
This form is for writing a review, overall feedback and requests are accepted.
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 |
Overall feedback and requests are here.
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 | 32 |

Credits

33 |
34 |
35 |

Site Creators:

36 |

mmtrucefacts

37 |

MINECRAFTGOLDFISH3 (Check this site out!)

38 |

Link to the Github Repository

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 |
18 | 34 |

Apps

35 |

Unblocked apps in this website are here.

36 |
37 |
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 |
17 | 33 |

Random Number Generator

34 |

Generates a random number from the minimum to maximum.

35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | 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 | 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 | 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 |
17 | 33 |

Cheats and Hacks

34 |

I am not responsible for your actions with these cheats and hacks.

35 |
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 |
15 |
16 | 32 |

About

33 |
34 |
35 |

Illuminate is a unblocked games website with over 800 games, tab cloak, and other features. Illuminate was started as a small idea. After some time, we transferred to a custom made website. After a few rebrandings and redesigns, we've ended up at the Illuminate now.

36 |
37 |

All official Illuminate sites as of 8/11/2024:

38 |

teacherease.net

39 |

illuminating.pages.dev

40 |

schoolfacts.xyz

41 |

illuminating.us

42 |

illuminating.netlify.app

43 |

illuminating.onrender.com

44 |

goilluminating.web.app

45 |

goilluminating.firebaseapp.com

46 |

illuminating.surge.sh

47 |
48 |

All other sites are not created by the owners of Illuminate and are not official.

49 |
50 |
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 |
16 |
17 | 33 |

QR Code Generator

34 |

Generates a QR code. Right-click the QR code to save it as an image.

35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | 43 | 49 |
50 | 51 |
52 |

Credits to https://github.com/kazuhikoarase/qrcode-generator/tree/master/js.

53 |
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 |
18 | 34 |

Proxies

35 |

Proxies in this website are here.

36 |
37 |
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 | 51 |

Illuminate

52 | ...

53 |

54 |
55 |
56 |
57 |
58 |
59 |
60 | 62 | 63 | 69 | 72 |
73 | 74 | GitHub Logo 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 | 32 |

Other

33 |
34 |
35 |

Extra Content:

36 |
About:Blank Embedder
37 |
Random Number Generator
38 |
Random Password Generator
39 |
QR Code Generator
40 |
Redirect Generator
41 |
Bookmarklets
42 |
Frequently Asked Questions
43 |
Timer
44 |
Browser Information
45 |
Chat
46 |
Write a Review
47 |
Write a Review (Google Form)
48 |
Github Repository
49 |

Other Links:

50 |
Cookie Info
51 |
Terms of Use
52 |
Privacy Policy
53 |
Changelog
54 |
Credits
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 | 34 |

Settings

35 |
36 |
37 |

Tab Cloaker:

38 |

Title Changer

39 |

Enter the title of the site you want to appear.

40 | 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 |
44 | 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 | 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 | 54 |
55 |

Light / Dark Mode:

56 | 57 | 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 | 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 | 71 |

Redirect Generator

72 |
73 |
74 |

Enter a URL to redirect:

75 | 76 |

External Redirect:

77 | 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 |
16 |
17 | 33 |

Browser Information

34 |

Gets your info, including your IP address.

35 |

Information from https://ipgeolocation.abstractapi.com/.

36 |
37 |
38 |

39 |
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 |
17 | 33 |

Timer

34 |

This is the most simple timer, just get started by setting a time.

35 |
36 |
37 |

38 | 39 |

40 | Set Time

41 | 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 |
27 | 43 |

Projects

44 |

If games don't load or show a blank screen, try reloading the page or switching the Game Domain.

45 |
46 | 47 | 48 | 54 | 57 |
58 |
59 | 60 |

Select Game Domain

61 | 67 | 71 | 72 |

What is this?

73 |
74 | 75 |
76 | 77 | 78 | 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 | --------------------------------------------------------------------------------