Arras.io Placeholder Mod Menu

Visual-only placeholder mod menu for Arras.io (press L to toggle)

  1. // ==UserScript==
  2. // @name Arras.io Placeholder Mod Menu
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.3.2
  5. // @description Visual-only placeholder mod menu for Arras.io (press L to toggle)
  6. // @author Jasper
  7. // @match *://arras.io/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function () {
  13. 'use strict';
  14.  
  15. const style = document.createElement("style");
  16. style.textContent = `
  17. #modMenu, .subMenu {
  18. position: fixed;
  19. top: 80px;
  20. width: 250px;
  21. background: #1e1e2f;
  22. border: 1px solid #444;
  23. color: #fff;
  24. font-family: Arial, sans-serif;
  25. font-size: 14px;
  26. padding: 10px;
  27. border-radius: 8px;
  28. box-shadow: 0 0 10px rgba(255,255,255,0.05);
  29. z-index: 9999;
  30. }
  31.  
  32. #modMenu {
  33. right: 20px;
  34. }
  35.  
  36. .subMenu {
  37. right: 290px;
  38. max-height: 300px;
  39. overflow-y: auto;
  40. display: none;
  41. }
  42.  
  43. .modButton {
  44. width: 100%;
  45. padding: 8px;
  46. margin-top: 5px;
  47. background: #2a2a3f;
  48. border: none;
  49. border-radius: 8px;
  50. color: #fff;
  51. cursor: pointer;
  52. transition: background 0.2s ease;
  53. }
  54.  
  55. .modButton:hover {
  56. background: #3a3a5f;
  57. }
  58.  
  59. .checkboxContainer, .sliderContainer {
  60. margin-top: 8px;
  61. }
  62.  
  63. .subMenuHeader {
  64. display: flex;
  65. justify-content: space-between;
  66. align-items: center;
  67. margin-bottom: 10px;
  68. }
  69.  
  70. .closeButton {
  71. background: none;
  72. border: none;
  73. color: #fff;
  74. font-size: 18px;
  75. cursor: pointer;
  76. }
  77.  
  78. .sliderLabels {
  79. display: flex;
  80. justify-content: space-between;
  81. font-size: 12px;
  82. margin-bottom: 5px;
  83. }
  84.  
  85. .sliderMiddle {
  86. text-align: center;
  87. font-size: 16px;
  88. margin-bottom: 10px;
  89. color: #ccc;
  90. font-weight: bold;
  91. }
  92.  
  93. input[type="range"] {
  94. width: 100%;
  95. }
  96.  
  97. ::-webkit-scrollbar {
  98. width: 6px;
  99. }
  100.  
  101. ::-webkit-scrollbar-thumb {
  102. background-color: #555;
  103. border-radius: 10px;
  104. }
  105. `;
  106. document.head.appendChild(style);
  107.  
  108. const html = `
  109. <div id="modMenu" style="display:none;">
  110. <strong style="display:block; text-align:center; margin-bottom:10px;">Mod Menu (Placeholder)</strong>
  111. <button class="modButton" id="speedhackButton">Speedhack</button>
  112. <button class="modButton" id="espButton">ESP</button>
  113. <button class="modButton" id="invisibleButton">Invisible</button>
  114. <button class="modButton" id="noclipButton">NOclip</button>
  115. <button class="modButton" id="devButton">Dev Commands</button>
  116. <button class="modButton" id="tokenButton">BetaTester Token</button>
  117. <button class="modButton" id="zoomButton">Zoom</button>
  118. <button class="modButton" id="spawnButton">Spawn</button>
  119. </div>
  120.  
  121. <!-- Spawn Submenu -->
  122. <div class="subMenu" id="spawnSubMenu">
  123. <div class="subMenuHeader">
  124. <strong>Spawn Options</strong>
  125. <button class="closeButton" data-close="spawnSubMenu">&times;</button>
  126. </div>
  127. ${["Egg", "Square", "Triangle", "Pentagon", "Alpha Pentagon", "Shadow Alpha Pentagon", "Rainbow Alpha Pentagon", "Trans Alpha Pentagon", "God Pentagon"]
  128. .map(type => `<div class="checkboxContainer"><input type="checkbox" /> Spawn ${type}</div>`).join('')}
  129. </div>
  130.  
  131. <!-- Speedhack Submenu -->
  132. <div class="subMenu" id="speedhackSubMenu">
  133. <div class="subMenuHeader">
  134. <strong>Speedhack</strong>
  135. <button class="closeButton" data-close="speedhackSubMenu">&times;</button>
  136. </div>
  137. <div class="sliderMiddle" id="speedValue">1x</div>
  138. <div class="sliderLabels">
  139. <span>0.1x</span>
  140. <span>10x</span>
  141. </div>
  142. <input type="range" min="0.1" max="10" step="0.1" value="1" id="speedSlider" />
  143. </div>
  144. `;
  145.  
  146. const container = document.createElement("div");
  147. container.innerHTML = html;
  148. document.body.appendChild(container);
  149.  
  150. const modMenu = document.getElementById("modMenu");
  151. const menuButtons = {
  152. speedhackButton: "speedhackSubMenu",
  153. spawnButton: "spawnSubMenu",
  154. espButton: null,
  155. invisibleButton: null,
  156. noclipButton: null,
  157. devButton: null,
  158. tokenButton: null,
  159. zoomButton: null
  160. };
  161.  
  162. let menuVisible = false;
  163.  
  164. function hideAllSubMenus() {
  165. document.querySelectorAll('.subMenu').forEach(m => m.style.display = 'none');
  166. }
  167.  
  168. document.addEventListener("keydown", (e) => {
  169. if (e.key.toLowerCase() === "l") {
  170. menuVisible = !menuVisible;
  171. modMenu.style.display = menuVisible ? "block" : "none";
  172. if (!menuVisible) hideAllSubMenus();
  173. }
  174. });
  175.  
  176. // Attach button handlers
  177. for (const [btnId, menuId] of Object.entries(menuButtons)) {
  178. const btn = document.getElementById(btnId);
  179. if (!btn) continue;
  180. btn.addEventListener("click", () => {
  181. hideAllSubMenus();
  182. if (menuId) {
  183. const menu = document.getElementById(menuId);
  184. if (menu) menu.style.display = "block";
  185. }
  186. });
  187. }
  188.  
  189. // Close buttons on submenus
  190. document.querySelectorAll(".closeButton").forEach(btn => {
  191. btn.addEventListener("click", () => {
  192. const target = btn.getAttribute("data-close");
  193. document.getElementById(target).style.display = "none";
  194. });
  195. });
  196.  
  197. // Speed slider live label
  198. const speedSlider = document.getElementById("speedSlider");
  199. const speedValue = document.getElementById("speedValue");
  200. speedSlider.addEventListener("input", () => {
  201. speedValue.textContent = parseFloat(speedSlider.value).toFixed(1) + "x";
  202. });
  203. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址