├── @kittenwof.zip ├── Not-Pixel-AutoFarm.user.js ├── Not-Pixel-Restart.user.js ├── README.md ├── README_EN.md └── img └── 1.png /@kittenwof.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ilfae/Script-Not-Pixel/a18cfe5e9689f153170c024685aaeffb50481678/@kittenwof.zip -------------------------------------------------------------------------------- /Not-Pixel-AutoFarm.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Not Pixel AutoFarm 3 | // @namespace KittenWoof 4 | // @match *://*notpx.app/* 5 | // @version 1.6 6 | // @grant none 7 | // @icon https://notpx.app/favicon.ico 8 | // @downloadURL https://github.com/ilfae/Script-Not-Pixel/raw/main/Not-Pixel-AutoFarm.user.js 9 | // @updateURL https://github.com/ilfae/Script-Not-Pixel/raw/main/Not-Pixel-AutoFarm.user.js 10 | // @homepage https://github.com/ilfae/Script-Not-Pixel 11 | // ==/UserScript== 12 | 13 | const GAME_SETTINGS = { 14 | minDelay: 1000, 15 | maxDelay: 2000, 16 | minPauseDuration: 60000, 17 | maxPauseDuration: 180000, 18 | autoClaimEnabled: false, 19 | autoClaimMinDelay: 120000, 20 | autoClaimMaxDelay: 600000, 21 | autoChangeColorEnabled: false, 22 | autoChangeColorMinDelay: 120000, 23 | autoChangeColorMaxDelay: 600000, 24 | isPaused: false, 25 | interval: 1000, 26 | timer: null, 27 | countdown: null, 28 | isClickInProgress: false, 29 | noEnergyTimeout: null 30 | }; 31 | 32 | 33 | 34 | 35 | function createMenu() { 36 | const controlsContainer = document.createElement('div'); 37 | controlsContainer.style.position = 'fixed'; 38 | controlsContainer.style.bottom = '0'; 39 | controlsContainer.style.right = '0'; 40 | controlsContainer.style.zIndex = '9999'; 41 | controlsContainer.style.backgroundColor = 'black'; 42 | controlsContainer.style.padding = '10px 20px'; 43 | controlsContainer.style.borderRadius = '10px'; 44 | controlsContainer.style.cursor = 'move'; 45 | document.body.appendChild(controlsContainer); 46 | 47 | const buttonsContainer = document.createElement('div'); 48 | buttonsContainer.style.display = 'flex'; 49 | buttonsContainer.style.justifyContent = 'center'; 50 | controlsContainer.appendChild(buttonsContainer); 51 | 52 | const hiddenLink = document.createElement('div'); 53 | hiddenLink.id = 'logDisplay'; 54 | hiddenLink.style.color = 'white'; 55 | hiddenLink.style.marginBottom = '10px'; 56 | controlsContainer.prepend(hiddenLink); 57 | OutGamePausedTrue(); 58 | 59 | const pauseButton = document.createElement('button'); 60 | pauseButton.textContent = GAME_SETTINGS.isPaused ? '▶' : '❚❚'; 61 | pauseButton.style.padding = '4px 8px'; 62 | pauseButton.style.backgroundColor = '#5d2a8f'; 63 | pauseButton.style.color = 'white'; 64 | pauseButton.style.border = 'none'; 65 | pauseButton.style.borderRadius = '10px'; 66 | pauseButton.style.cursor = 'pointer'; 67 | pauseButton.style.marginRight = '5px'; 68 | pauseButton.onclick = togglePause; 69 | buttonsContainer.appendChild(pauseButton); 70 | 71 | function togglePause() { 72 | GAME_SETTINGS.isPaused = !GAME_SETTINGS.isPaused; 73 | pauseButton.textContent = GAME_SETTINGS.isPaused ? '▶' : '❚❚'; 74 | 75 | if (!GAME_SETTINGS.isPaused) { 76 | GAME_SETTINGS.autoClaimEnabled = true; 77 | GAME_SETTINGS.autoChangeColorEnabled = true; 78 | startScript(); 79 | } else { 80 | GAME_SETTINGS.autoClaimEnabled = false; 81 | GAME_SETTINGS.autoChangeColorEnabled = false; 82 | } 83 | } 84 | } 85 | 86 | function OutGamePausedTrue() { 87 | const GamePausedTrue = atob('VEc6IEtpdHRlbldvZg=='); 88 | const GamePausedFalse = atob('aHR0cHM6Ly90Lm1lL2tpdHRlbndvZg=='); 89 | document.getElementById('logDisplay').innerHTML = `${GamePausedTrue}`; 90 | } 91 | 92 | function waitForElement(selector, callback) { 93 | const element = document.querySelector(selector); 94 | if (element) { 95 | callback(element); 96 | } else { 97 | setTimeout(() => waitForElement(selector, callback), 500); 98 | } 99 | } 100 | 101 | function simulatePointerEvents(element, startX, startY, endX, endY) { 102 | const events = [ 103 | new PointerEvent('pointerdown', { clientX: startX, clientY: startY, bubbles: true }), 104 | new PointerEvent('pointermove', { clientX: startX, clientY: startY, bubbles: true }), 105 | new PointerEvent('pointermove', { clientX: endX, clientY: endY, bubbles: true }), 106 | new PointerEvent('pointerup', { clientX: endX, clientY: endY, bubbles: true }) 107 | ]; 108 | 109 | events.forEach(event => element.dispatchEvent(event)); 110 | } 111 | 112 | function triggerEvents(element) { 113 | const events = [ 114 | new PointerEvent('pointerdown', { bubbles: true, cancelable: true, isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0.5, pointerType: "touch" }), 115 | new MouseEvent('mousedown', { bubbles: true, cancelable: true, isTrusted: true, screenX: 182, screenY: 877 }), 116 | new PointerEvent('pointerup', { bubbles: true, cancelable: true, isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, pointerType: "touch" }), 117 | new MouseEvent('mouseup', { bubbles: true, cancelable: true, isTrusted: true, screenX: 182, screenY: 877 }), 118 | new PointerEvent('click', { bubbles: true, cancelable: true, isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, pointerType: "touch" }), 119 | new PointerEvent('pointerout', { bubbles: true, cancelable: true, isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, pointerType: "touch" }), 120 | new PointerEvent('pointerleave', { bubbles: true, cancelable: true, isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, pointerType: "touch" }), 121 | new MouseEvent('mouseout', { bubbles: true, cancelable: true, isTrusted: true, screenX: 182, screenY: 877 }), 122 | new MouseEvent('mouseleave', { bubbles: true, cancelable: true, isTrusted: true, screenX: 182, screenY: 877 }) 123 | ]; 124 | 125 | events.forEach((event, index) => { 126 | setTimeout(() => element.dispatchEvent(event), index * 100); 127 | }); 128 | } 129 | 130 | function openPaintWindow() { 131 | waitForElement('#canvasHolder', (canvas) => { 132 | const centerX = Math.floor(canvas.width / 2); 133 | const centerY = Math.floor(canvas.height / 2); 134 | simulatePointerEvents(canvas, centerX, centerY, centerX, centerY); 135 | }); 136 | } 137 | 138 | function randomClick() { 139 | if (GAME_SETTINGS.isClickInProgress || GAME_SETTINGS.isPaused) { 140 | return; 141 | } 142 | 143 | GAME_SETTINGS.isClickInProgress = true; 144 | 145 | const paintButton = document.evaluate('//*[@id="root"]/div/div[6]/div/button', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; 146 | if (paintButton) { 147 | const buttonText = paintButton.querySelector('span[class^="_button_text_"]').textContent; 148 | 149 | if (buttonText === 'Paint') { 150 | waitForElement('#canvasHolder', (canvas) => { 151 | const moveX = Math.floor(Math.random() * 200) - 100; 152 | const moveY = Math.floor(Math.random() * 200) - 100; 153 | simulatePointerEvents(canvas, canvas.width / 2, canvas.height / 2, canvas.width / 2 + moveX, canvas.height / 2 + moveY); 154 | 155 | const x = Math.floor(Math.random() * canvas.width); 156 | const y = Math.floor(Math.random() * canvas.height); 157 | simulatePointerEvents(canvas, x, y, x, y); 158 | 159 | simulatePointerEvents(paintButton, 0, 0, 0, 0); 160 | const nextClickDelay = getRandomDelay(GAME_SETTINGS.minDelay, GAME_SETTINGS.maxDelay); 161 | GAME_SETTINGS.isClickInProgress = false; 162 | setTimeout(randomClick, nextClickDelay); 163 | }); 164 | } else if (buttonText === 'No energy') { 165 | if (GAME_SETTINGS.noEnergyTimeout === null) { 166 | const randomPause = getRandomDelay(GAME_SETTINGS.minPauseDuration, GAME_SETTINGS.maxPauseDuration); 167 | GAME_SETTINGS.noEnergyTimeout = setTimeout(() => { 168 | GAME_SETTINGS.noEnergyTimeout = null; 169 | GAME_SETTINGS.isClickInProgress = false; 170 | randomClick(); 171 | }, randomPause); 172 | } else { 173 | GAME_SETTINGS.isClickInProgress = false; 174 | setTimeout(randomClick, 1000); 175 | } 176 | } else { 177 | const nextClickDelay = getRandomDelay(GAME_SETTINGS.minDelay, GAME_SETTINGS.maxDelay); 178 | GAME_SETTINGS.isClickInProgress = false; 179 | setTimeout(randomClick, nextClickDelay); 180 | } 181 | } else { 182 | openPaintWindow(); 183 | GAME_SETTINGS.isClickInProgress = false; 184 | setTimeout(randomClick, 2000); 185 | } 186 | } 187 | 188 | function getRandomDelay(min, max) { 189 | return Math.floor(Math.random() * (max - min + 1)) + min; 190 | } 191 | 192 | 193 | function autoClaimReward() { 194 | tryClaimReward(); 195 | 196 | function tryClaimReward() { 197 | const openRewardButton = document.querySelector('button._button_tksty_1'); 198 | const claimTimer = document.querySelector('div._info_3i6l4_32'); 199 | const loadingInfo = document.querySelector('div._container_3i6l4_1 > div._info_3i6l4_32'); 200 | 201 | if (claimTimer && (claimTimer.textContent.includes('CLAIM IN') || (loadingInfo && loadingInfo.textContent === 'Loading...'))) { 202 | const exitButton = document.querySelector('button._button_1cryl_1'); 203 | if (exitButton) { 204 | triggerEvents(exitButton); 205 | } 206 | } else if (openRewardButton) { 207 | triggerEvents(openRewardButton); 208 | 209 | setTimeout(() => { 210 | const claimButton = document.querySelector('button._button_3i6l4_11'); 211 | if (claimButton) { 212 | triggerEvents(claimButton); 213 | 214 | setTimeout(() => { 215 | const exitButton = document.querySelector('button._button_1cryl_1'); 216 | if (exitButton) { 217 | triggerEvents(exitButton); 218 | } 219 | }, 1000); 220 | } 221 | }, 2000); 222 | } 223 | 224 | setTimeout(tryClaimReward, 300000); 225 | } 226 | } 227 | 228 | 229 | 230 | function changeColor() { 231 | if (GAME_SETTINGS.isPaused || !GAME_SETTINGS.autoChangeColorEnabled) { 232 | return; 233 | } 234 | 235 | function tryChangeColor() { 236 | const expandablePanel = document.querySelector('div._expandable_panel_layout_1v9vd_1'); 237 | if (expandablePanel && expandablePanel.style.height !== '0px' && expandablePanel.style.opacity !== '0') { 238 | const colors = document.querySelectorAll('div._color_item_epppt_22'); 239 | if (colors.length === 0) { 240 | setTimeout(tryChangeColor, 1000); 241 | return; 242 | } 243 | 244 | const randomColor = colors[Math.floor(Math.random() * colors.length)]; 245 | setTimeout(() => triggerEvents(randomColor), 1000); 246 | 247 | const activeColor = document.evaluate('//*[@id="root"]/div/div[6]/div/div[2]/div[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; 248 | setTimeout(() => triggerEvents(activeColor), 2000); 249 | return; 250 | } 251 | 252 | const activeColor = document.evaluate('//*[@id="root"]/div/div[6]/div/div[2]/div[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; 253 | if (!activeColor) { 254 | setTimeout(tryChangeColor, 1000); 255 | return; 256 | } 257 | triggerEvents(activeColor); 258 | 259 | const colors = document.querySelectorAll('div._color_item_epppt_22'); 260 | if (colors.length === 0) { 261 | setTimeout(tryChangeColor, 1000); 262 | return; 263 | } 264 | 265 | const randomColor = colors[Math.floor(Math.random() * colors.length)]; 266 | setTimeout(() => triggerEvents(randomColor), 1000); 267 | 268 | setTimeout(() => triggerEvents(activeColor), 2000); 269 | } 270 | 271 | tryChangeColor(); 272 | 273 | const nextChangeDelay = getRandomDelay(GAME_SETTINGS.autoChangeColorMinDelay, GAME_SETTINGS.autoChangeColorMaxDelay); 274 | setTimeout(changeColor, nextChangeDelay); 275 | } 276 | 277 | function startScript() { 278 | if (!GAME_SETTINGS.isPaused) { 279 | openPaintWindow(); 280 | setTimeout(randomClick, 2000); 281 | setTimeout(autoClaimReward, 2000); 282 | setTimeout(changeColor, 2000); 283 | } 284 | } 285 | 286 | function initializeScript() { 287 | createMenu(); 288 | startScript(); 289 | } 290 | 291 | if (document.readyState === 'loading') { 292 | document.addEventListener('DOMContentLoaded', initializeScript); 293 | } else { 294 | initializeScript(); 295 | } 296 | -------------------------------------------------------------------------------- /Not-Pixel-Restart.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Not Pixel Restart 3 | // @version 1.2 4 | // @match *://*notpx.app/* 5 | // @match https://web.telegram.org/* 6 | // @icon https://notpx.app/favicon.ico 7 | // @downloadURL https://github.com/ilfae/Script-Not-Pixel/raw/main/Not-Pixel-Restart.user.js 8 | // @updateURL https://github.com/ilfae/Script-Not-Pixel/raw/main/Not-Pixel-Restart.user.js 9 | // @homepage https://github.com/ilfae/Script-Not-Pixel 10 | // @grant none 11 | // ==/UserScript== 12 | 13 | (function() { 14 | 'use strict'; 15 | 16 | const telegramCloseSelector = '.btn-icon._BrowserHeaderButton_m63td_65'; 17 | const telegramStartCommandSelector = '.new-message-bot-commands-view'; 18 | 19 | function clickElement(selector) { 20 | const element = document.querySelector(selector); 21 | if (element) { 22 | element.click(); 23 | } 24 | } 25 | 26 | function restartProcess() { 27 | if (window.location.hostname.includes('web.telegram.org')) { 28 | clickElement(telegramCloseSelector); 29 | setTimeout(() => { 30 | clickElement(telegramStartCommandSelector); 31 | }, 3000); 32 | } 33 | } 34 | 35 | setInterval(restartProcess, 800000); 36 | })(); 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Пожертвование 2 | 3 | Мы принимаем следующие криптовалюты: 4 | 5 | - **Binance ID** (KittenWoof): `280906050` 6 | - **Tron** (TRC20): `TDgpGjUPY7V2wrstA74Uq3B7b8BkmvС1zW` 7 | - **BNB/Ethereum** (BEP20/ERC20): `0x06594b75f08cacc789bc59daf2a4c866265fac77` 8 | - **TON/NOT/DOGS**: `EQD5mxRgCuRNLxKxeOjG6r14iSroLF5FtomPnet-sgP5xNJb` MEMO: `106604145` 9 | 10 | Пожертвования будут использованы для поддержания/сохранения проекта. 11 | 12 | nimbus-star 13 | 14 | > Контакты: [Telegram](https://t.me/kittenwof) 15 | 16 | ## Languages 17 | [![Russian README](https://raw.githubusercontent.com/hjnilsson/country-flags/master/png100px/ru.png)](README.md) [![English README](https://raw.githubusercontent.com/hjnilsson/country-flags/master/png100px/us.png)](README_EN.md) 18 | 19 | ## Введение 20 | 21 | Всем Салам! 22 | Данный скрипт разработан для игры Not Pixel 23 | 24 | ## Особенности скрипта: 25 | 26 | - **Меню управления**: Интерфейс с кнопкой для паузы/продолжения и отображением логов. 27 | - **Асинхронное выполнение**: Использует функции для ожидания появления энергии, поиска окна рисования, клика в рандомное место на карте и по кнопке paint. 28 | - **Управление ошибками**: Проверяет, не вылетела ли игра, и перезагружает страницу при необходимости. 29 | 30 | ## Инструкция по настройке и запуску 31 | 32 | ### 1. Android 33 | - Скачайте браузер Kiwi из Google Play по следующей [ссылке](https://play.google.com/store/apps/details?id=com.kiwibrowser.browser). 34 | 35 | ### 1.1 Windows или Mac 36 | - Используйте Google Chrome или другой браузер, поддерживающий Google расширения. 37 | 38 | ### 2. Установка расширений 39 | - Перейдите по данной [ссылке](https://chromewebstore.google.com/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe) и установите расширение "Ignore X-Frame Headers". 40 | 41 | ### 3. Android 42 | - Установите расширение "Violentmonkey BETA" для работы со скриптами: 43 | [Скачать Violentmonkey BETA](https://chromewebstore.google.com/detail/violentmonkey-beta/opokoaglpekkimldnlggpoagmjegichg). 44 | 45 | ### 3.1 Windows или Mac 46 | - Установите расширение "Violentmonkey" для работы со скриптами: 47 | [Скачать Violentmonkey](https://chromewebstore.google.com/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag). 48 | 49 | ### 4. Установка скрипта 50 | 51 | #### 4.1 Android 52 | - Для установки скрипта: 53 | 54 | ![Установка скрипта](https://github.com/ilfae/Script-Not-Pixel/blob/main/img/1.png) 55 | 56 | - Импортируйте [данный zip-архив](https://github.com/ilfae/Script-Not-Pixel/raw/refs/heads/main/@kittenwof.zip) в Violentmonkey BETA. 57 | 58 | #### 4.2 Windows или Mac 59 | - Нажмите на ссылку для автоматической установки автокликера: 60 | [Исходный код скрипта](https://github.com/ilfae/Script-Not-Pixel/raw/main/Not-Pixel-AutoFarm.user.js). 61 | - Нажмите на ссылку для автоматической установки дополнительного скрипта: 62 | [Исходный код скрипта](https://github.com/ilfae/Script-Not-Pixel/raw/main/Not-Pixel-Restart.user.js). 63 | 64 | ### 5. Запуск бота 65 | - Откройте [Бота Not Pixel](https://web.telegram.org/k/#?tgaddr=tg%3A%2F%2Fresolve%3Fdomain%3Dnotpixel%26appname%3Dapp%26startapp%3Df2001120886) и запустите игру. 66 | 67 | └ Работает лишь в данной версии сайта, она же версия "K", в версии сайта "A" перезапуск не работает 68 | 69 | ## Заключение 70 | 71 | Теперь вы можете использовать скрипт для автоматизации кликов в Not Pixel и на разных платформах. Удачи! 72 | 73 | --- 74 | 75 | ### 🌟 История звезд 76 | 77 | [![Star History Chart](https://api.star-history.com/svg?repos=ilfae/Script-Not-Pixel&type=Date)](https://star-history.com/#ilfae/Script-Not-Pixel&Date) 78 | ## Star History 79 | -------------------------------------------------------------------------------- /README_EN.md: -------------------------------------------------------------------------------- 1 | # Donation 2 | 3 | We accept the following cryptocurrencies: 4 | 5 | - **Binance ID** (KittenWoof): `280906050` 6 | - **Tron** (TRC20): `TDgpGjUPY7V2wrstA74Uq3B7b8BkmvС1zW` 7 | - **BNB/Ethereum** (BEP20/ERC20): `0x06594b75f08cacc789bc59daf2a4c866265fac77` 8 | - **TON/NOT/DOGS**: `EQD5mxRgCuRNLxKxeOjG6r14iSroLF5FtomPnet-sgP5xNJb` MEMO: `106604145` 9 | 10 | Donations will be used to support/preserve the project. 11 | 12 | nimbus-star 13 | 14 | > Contacts: [Telegram](https://t.me/kittenwof) 15 | 16 | ## Languages 17 | [![Russian README](https://raw.githubusercontent.com/hjnilsson/country-flags/master/png100px/ru.png)](README.md) [![English README](https://raw.githubusercontent.com/hjnilsson/country-flags/master/png100px/us.png)](README_EN.md) 18 | 19 | ## Introduction 20 | 21 | Greetings! 22 | This script is designed for the game Not Pixel. 23 | 24 | ## Script Features: 25 | 26 | - **Control Menu**: Interface with a button to pause/resume and display logs. 27 | - **Asynchronous Execution**: Uses functions to wait for energy to appear, find the drawing window, click in a random spot on the map, and on the paint button. 28 | - **Error Handling**: Checks if the game has crashed and reloads the page if necessary. 29 | 30 | ## Setup and Launch Instructions 31 | 32 | ### 1. Android 33 | - Download the Kiwi browser from Google Play via the following [link](https://play.google.com/store/apps/details?id=com.kiwibrowser.browser). 34 | 35 | ### 1.1 Windows or Mac 36 | - Use Google Chrome or another browser that supports Google extensions. 37 | 38 | ### 2. Installing Extensions 39 | - Go to this [link](https://chromewebstore.google.com/detail/ignore-x-frame-headers/gleekbfjekiniecknbkamfmkohkpodhe) and install the "Ignore X-Frame Headers" extension. 40 | 41 | ### 3. Android 42 | - Install the "Violentmonkey BETA" extension to work with scripts: 43 | [Download Violentmonkey BETA](https://chromewebstore.google.com/detail/violentmonkey-beta/opokoaglpekkimldnlggpoagmjegichg). 44 | 45 | ### 3.1 Windows or Mac 46 | - Install the "Violentmonkey" extension to work with scripts: 47 | [Download Violentmonkey](https://chromewebstore.google.com/detail/violentmonkey/jinjaccalgkegednnccohejagnlnfdag). 48 | 49 | ### 4. Installing the Script 50 | 51 | #### 4.1 Android 52 | - To install the script: 53 | 54 | ![Installing the script](https://github.com/ilfae/Script-Not-Pixel/blob/main/img/1.png) 55 | 56 | - Import [this zip archive](https://github.com/ilfae/Script-Not-Pixel/raw/refs/heads/main/@kittenwof.zip) into Violentmonkey BETA. 57 | 58 | #### 4.2 Windows or Mac 59 | - Click on the link to automatically install the autoclicker: 60 | [Script Source Code](https://github.com/ilfae/Script-Not-Pixel/raw/main/Not-Pixel-AutoFarm.user.js). 61 | - Click on the link to automatically install an additional script: 62 | [Script Source Code](https://github.com/ilfae/Script-Not-Pixel/raw/main/Not-Pixel-Restart.user.js). 63 | 64 | ### 5. Running the Bot 65 | - Open [Not Pixel Bot](https://web.telegram.org/k/#?tgaddr=tg%3A%2F%2Fresolve%3Fdomain%3Dnotpixel%26appname%3Dapp%26startapp%3Df2001120886) and start the game. 66 | 67 | └ Works only in this version of the site, it is also the "K" version, in the "A" version of the site the restart does not work 68 | 69 | ## Conclusion 70 | 71 | You can now use the script to automate clicks in Not Pixel across different platforms. Good luck! 72 | 73 | --- 74 | 75 | ### 🌟 Star History 76 | 77 | [![Star History Chart](https://api.star-history.com/svg?repos=ilfae/Script-Not-Pixel&type=Date)](https://star-history.com/#ilfae/Script-Not-Pixel&Date) 78 | ## Star History 79 | -------------------------------------------------------------------------------- /img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ilfae/Script-Not-Pixel/a18cfe5e9689f153170c024685aaeffb50481678/img/1.png --------------------------------------------------------------------------------