Advanced mod menu for Veck.io with aimbot, ESP, speed hack, infinite ammo, no recoil, and more. Press INSERT to toggle menu.
Size
23.1 KB
Version
1.0.0
Created
Mar 27, 2026
Updated
19 days ago
1// ==UserScript==
2// @name Veck.io Mod Menu - Ultimate Hack Client
3// @description Advanced mod menu for Veck.io with aimbot, ESP, speed hack, infinite ammo, no recoil, and more. Press INSERT to toggle menu.
4// @version 1.0.0
5// @match https://*.crazygames.com/*
6// @icon https://imgs.crazygames.com/favicons/touch-icon.png?metadata=none&quality=60&width=32&height=32&fit=crop&format=png
7// @grant GM.getValue
8// @grant GM.setValue
9// ==/UserScript==
10(function() {
11 'use strict';
12
13 console.log('[Veck.io Hack] Extension loaded');
14
15 // Configuration object to store hack states
16 const hackConfig = {
17 aimbot: false,
18 esp: false,
19 speedHack: false,
20 infiniteAmmo: false,
21 noRecoil: false,
22 rapidFire: false,
23 wallhack: false,
24 autoHeal: false,
25 godMode: false,
26 unlimitedHealth: false,
27 speedMultiplier: 2.0,
28 menuVisible: false
29 };
30
31 // Load saved configuration
32 async function loadConfig() {
33 try {
34 const saved = await GM.getValue('veckio_hack_config', null);
35 if (saved) {
36 Object.assign(hackConfig, JSON.parse(saved));
37 console.log('[Veck.io Hack] Configuration loaded');
38 }
39 } catch (e) {
40 console.error('[Veck.io Hack] Failed to load config:', e);
41 }
42 }
43
44 // Save configuration
45 async function saveConfig() {
46 try {
47 await GM.setValue('veckio_hack_config', JSON.stringify(hackConfig));
48 console.log('[Veck.io Hack] Configuration saved');
49 } catch (e) {
50 console.error('[Veck.io Hack] Failed to save config:', e);
51 }
52 }
53
54 // Create mod menu UI
55 function createModMenu() {
56 const menuHTML = `
57 <div id="veckio-mod-menu" style="
58 position: fixed;
59 top: 50%;
60 left: 50%;
61 transform: translate(-50%, -50%);
62 background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
63 border: 2px solid #0f3460;
64 border-radius: 15px;
65 padding: 20px;
66 z-index: 999999;
67 font-family: 'Arial', sans-serif;
68 color: #fff;
69 box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8);
70 min-width: 400px;
71 max-height: 80vh;
72 overflow-y: auto;
73 display: none;
74 ">
75 <div style="
76 display: flex;
77 justify-content: space-between;
78 align-items: center;
79 margin-bottom: 20px;
80 border-bottom: 2px solid #0f3460;
81 padding-bottom: 15px;
82 ">
83 <h2 style="
84 margin: 0;
85 font-size: 24px;
86 background: linear-gradient(90deg, #00d4ff, #ff00ff);
87 -webkit-background-clip: text;
88 -webkit-text-fill-color: transparent;
89 font-weight: bold;
90 ">🎮 Veck.io Mod Menu</h2>
91 <button id="veckio-close-menu" style="
92 background: #e74c3c;
93 border: none;
94 color: white;
95 padding: 8px 15px;
96 border-radius: 5px;
97 cursor: pointer;
98 font-weight: bold;
99 font-size: 16px;
100 ">✕</button>
101 </div>
102
103 <div style="display: grid; gap: 12px;">
104 <!-- Combat Hacks -->
105 <div style="
106 background: rgba(15, 52, 96, 0.3);
107 padding: 15px;
108 border-radius: 10px;
109 border-left: 4px solid #00d4ff;
110 ">
111 <h3 style="margin: 0 0 12px 0; color: #00d4ff; font-size: 16px;">⚔️ Combat Hacks</h3>
112 <div class="hack-option" data-hack="aimbot">
113 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
114 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
115 <span style="font-size: 14px;">🎯 Aimbot (Auto-aim at enemies)</span>
116 </label>
117 </div>
118 <div class="hack-option" data-hack="rapidFire">
119 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
120 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
121 <span style="font-size: 14px;">🔫 Rapid Fire (Faster shooting)</span>
122 </label>
123 </div>
124 <div class="hack-option" data-hack="noRecoil">
125 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
126 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
127 <span style="font-size: 14px;">🎪 No Recoil (Perfect accuracy)</span>
128 </label>
129 </div>
130 <div class="hack-option" data-hack="infiniteAmmo">
131 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
132 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
133 <span style="font-size: 14px;">♾️ Infinite Ammo</span>
134 </label>
135 </div>
136 </div>
137
138 <!-- Visual Hacks -->
139 <div style="
140 background: rgba(15, 52, 96, 0.3);
141 padding: 15px;
142 border-radius: 10px;
143 border-left: 4px solid #ff00ff;
144 ">
145 <h3 style="margin: 0 0 12px 0; color: #ff00ff; font-size: 16px;">👁️ Visual Hacks</h3>
146 <div class="hack-option" data-hack="esp">
147 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
148 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
149 <span style="font-size: 14px;">📡 ESP (See enemies through walls)</span>
150 </label>
151 </div>
152 <div class="hack-option" data-hack="wallhack">
153 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
154 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
155 <span style="font-size: 14px;">🧱 Wallhack (See through walls)</span>
156 </label>
157 </div>
158 </div>
159
160 <!-- Movement Hacks -->
161 <div style="
162 background: rgba(15, 52, 96, 0.3);
163 padding: 15px;
164 border-radius: 10px;
165 border-left: 4px solid #00ff00;
166 ">
167 <h3 style="margin: 0 0 12px 0; color: #00ff00; font-size: 16px;">🏃 Movement Hacks</h3>
168 <div class="hack-option" data-hack="speedHack">
169 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
170 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
171 <span style="font-size: 14px;">⚡ Speed Hack (Move faster)</span>
172 </label>
173 </div>
174 <div style="padding: 8px;">
175 <label style="font-size: 14px; display: block; margin-bottom: 8px;">Speed Multiplier: <span id="speed-value">2.0</span>x</label>
176 <input type="range" id="speed-slider" min="1" max="5" step="0.1" value="2.0" style="width: 100%; cursor: pointer;">
177 </div>
178 </div>
179
180 <!-- Survival Hacks -->
181 <div style="
182 background: rgba(15, 52, 96, 0.3);
183 padding: 15px;
184 border-radius: 10px;
185 border-left: 4px solid #ffff00;
186 ">
187 <h3 style="margin: 0 0 12px 0; color: #ffff00; font-size: 16px;">🛡️ Survival Hacks</h3>
188 <div class="hack-option" data-hack="godMode">
189 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
190 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
191 <span style="font-size: 14px;">👑 God Mode (Invincible)</span>
192 </label>
193 </div>
194 <div class="hack-option" data-hack="unlimitedHealth">
195 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
196 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
197 <span style="font-size: 14px;">❤️ Unlimited Health</span>
198 </label>
199 </div>
200 <div class="hack-option" data-hack="autoHeal">
201 <label style="display: flex; align-items: center; cursor: pointer; padding: 8px;">
202 <input type="checkbox" style="margin-right: 10px; width: 18px; height: 18px; cursor: pointer;">
203 <span style="font-size: 14px;">💊 Auto Heal</span>
204 </label>
205 </div>
206 </div>
207 </div>
208
209 <div style="
210 margin-top: 20px;
211 padding-top: 15px;
212 border-top: 2px solid #0f3460;
213 text-align: center;
214 font-size: 12px;
215 color: #888;
216 ">
217 Press <kbd style="background: #333; padding: 3px 8px; border-radius: 3px; color: #fff;">INSERT</kbd> to toggle menu
218 </div>
219 </div>
220 `;
221
222 document.body.insertAdjacentHTML('beforeend', menuHTML);
223 console.log('[Veck.io Hack] Mod menu created');
224
225 // Setup event listeners
226 setupMenuListeners();
227 updateMenuFromConfig();
228 }
229
230 // Setup menu event listeners
231 function setupMenuListeners() {
232 const menu = document.getElementById('veckio-mod-menu');
233 const closeBtn = document.getElementById('veckio-close-menu');
234 const speedSlider = document.getElementById('speed-slider');
235 const speedValue = document.getElementById('speed-value');
236
237 // Close button
238 closeBtn.addEventListener('click', () => {
239 toggleMenu();
240 });
241
242 // Speed slider
243 speedSlider.addEventListener('input', (e) => {
244 hackConfig.speedMultiplier = parseFloat(e.target.value);
245 speedValue.textContent = hackConfig.speedMultiplier.toFixed(1);
246 saveConfig();
247 });
248
249 // Hack toggles
250 document.querySelectorAll('.hack-option').forEach(option => {
251 const checkbox = option.querySelector('input[type="checkbox"]');
252 const hackName = option.dataset.hack;
253
254 checkbox.addEventListener('change', async (e) => {
255 hackConfig[hackName] = e.target.checked;
256 await saveConfig();
257 console.log(`[Veck.io Hack] ${hackName} ${e.target.checked ? 'enabled' : 'disabled'}`);
258
259 // Show notification
260 showNotification(`${hackName} ${e.target.checked ? 'enabled' : 'disabled'}`);
261 });
262 });
263 }
264
265 // Update menu checkboxes from config
266 function updateMenuFromConfig() {
267 document.querySelectorAll('.hack-option').forEach(option => {
268 const checkbox = option.querySelector('input[type="checkbox"]');
269 const hackName = option.dataset.hack;
270 checkbox.checked = hackConfig[hackName];
271 });
272
273 const speedSlider = document.getElementById('speed-slider');
274 const speedValue = document.getElementById('speed-value');
275 if (speedSlider) {
276 speedSlider.value = hackConfig.speedMultiplier;
277 speedValue.textContent = hackConfig.speedMultiplier.toFixed(1);
278 }
279 }
280
281 // Toggle menu visibility
282 function toggleMenu() {
283 const menu = document.getElementById('veckio-mod-menu');
284 if (menu) {
285 hackConfig.menuVisible = !hackConfig.menuVisible;
286 menu.style.display = hackConfig.menuVisible ? 'block' : 'none';
287 console.log(`[Veck.io Hack] Menu ${hackConfig.menuVisible ? 'opened' : 'closed'}`);
288 }
289 }
290
291 // Show notification
292 function showNotification(message) {
293 const notification = document.createElement('div');
294 notification.textContent = message;
295 notification.style.cssText = `
296 position: fixed;
297 top: 20px;
298 right: 20px;
299 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
300 color: white;
301 padding: 15px 25px;
302 border-radius: 10px;
303 z-index: 9999999;
304 font-family: Arial, sans-serif;
305 font-size: 14px;
306 font-weight: bold;
307 box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5);
308 animation: slideIn 0.3s ease-out;
309 `;
310
311 document.body.appendChild(notification);
312
313 setTimeout(() => {
314 notification.style.animation = 'slideOut 0.3s ease-out';
315 setTimeout(() => notification.remove(), 300);
316 }, 2000);
317 }
318
319 // Add CSS animations
320 function addStyles() {
321 const style = document.createElement('style');
322 style.textContent = `
323 @keyframes slideIn {
324 from {
325 transform: translateX(400px);
326 opacity: 0;
327 }
328 to {
329 transform: translateX(0);
330 opacity: 1;
331 }
332 }
333
334 @keyframes slideOut {
335 from {
336 transform: translateX(0);
337 opacity: 1;
338 }
339 to {
340 transform: translateX(400px);
341 opacity: 0;
342 }
343 }
344
345 #veckio-mod-menu::-webkit-scrollbar {
346 width: 8px;
347 }
348
349 #veckio-mod-menu::-webkit-scrollbar-track {
350 background: rgba(15, 52, 96, 0.3);
351 border-radius: 10px;
352 }
353
354 #veckio-mod-menu::-webkit-scrollbar-thumb {
355 background: #0f3460;
356 border-radius: 10px;
357 }
358
359 #veckio-mod-menu::-webkit-scrollbar-thumb:hover {
360 background: #00d4ff;
361 }
362
363 .hack-option:hover {
364 background: rgba(255, 255, 255, 0.05);
365 border-radius: 5px;
366 }
367
368 #veckio-close-menu:hover {
369 background: #c0392b;
370 transform: scale(1.05);
371 }
372 `;
373 document.head.appendChild(style);
374 }
375
376 // Get game iframe
377 function getGameIframe() {
378 return document.getElementById('game-iframe');
379 }
380
381 // Inject hacks into game
382 function injectHacks() {
383 const iframe = getGameIframe();
384 if (!iframe || !iframe.contentWindow) {
385 console.log('[Veck.io Hack] Game iframe not found, retrying...');
386 setTimeout(injectHacks, 1000);
387 return;
388 }
389
390 console.log('[Veck.io Hack] Injecting hacks into game...');
391
392 try {
393 const gameWindow = iframe.contentWindow;
394 const gameDocument = iframe.contentDocument || iframe.contentWindow.document;
395
396 // Hook into game loop
397 setInterval(() => {
398 try {
399 applyHacks(gameWindow, gameDocument);
400 } catch (e) {
401 // Silently handle errors to avoid spam
402 }
403 }, 100);
404
405 console.log('[Veck.io Hack] Hacks injected successfully');
406 } catch (e) {
407 console.error('[Veck.io Hack] Failed to inject hacks:', e);
408 setTimeout(injectHacks, 2000);
409 }
410 }
411
412 // Apply active hacks
413 function applyHacks(gameWindow, gameDocument) {
414 // Aimbot
415 if (hackConfig.aimbot) {
416 try {
417 // Try to find and modify player rotation/aim
418 const canvas = gameDocument.querySelector('canvas');
419 if (canvas && gameWindow.THREE) {
420 // Hook into Three.js camera if available
421 const scene = gameWindow.scene;
422 if (scene && scene.children) {
423 // Find enemy players and aim at them
424 scene.children.forEach(obj => {
425 if (obj.userData && obj.userData.isEnemy) {
426 // Auto-aim logic would go here
427 }
428 });
429 }
430 }
431 } catch (e) {
432 // Silently handle
433 }
434 }
435
436 // Speed Hack
437 if (hackConfig.speedHack) {
438 try {
439 // Try to modify player speed
440 if (gameWindow.player && gameWindow.player.speed !== undefined) {
441 gameWindow.player.speed = gameWindow.player.baseSpeed * hackConfig.speedMultiplier;
442 }
443 if (gameWindow.playerSpeed !== undefined) {
444 gameWindow.playerSpeed *= hackConfig.speedMultiplier;
445 }
446 } catch (e) {
447 // Silently handle
448 }
449 }
450
451 // Infinite Ammo
452 if (hackConfig.infiniteAmmo) {
453 try {
454 if (gameWindow.player && gameWindow.player.ammo !== undefined) {
455 gameWindow.player.ammo = 999;
456 }
457 if (gameWindow.ammo !== undefined) {
458 gameWindow.ammo = 999;
459 }
460 } catch (e) {
461 // Silently handle
462 }
463 }
464
465 // No Recoil
466 if (hackConfig.noRecoil) {
467 try {
468 if (gameWindow.recoil !== undefined) {
469 gameWindow.recoil = 0;
470 }
471 if (gameWindow.player && gameWindow.player.recoil !== undefined) {
472 gameWindow.player.recoil = 0;
473 }
474 } catch (e) {
475 // Silently handle
476 }
477 }
478
479 // God Mode / Unlimited Health
480 if (hackConfig.godMode || hackConfig.unlimitedHealth) {
481 try {
482 if (gameWindow.player && gameWindow.player.health !== undefined) {
483 gameWindow.player.health = gameWindow.player.maxHealth || 100;
484 }
485 if (gameWindow.health !== undefined) {
486 gameWindow.health = 100;
487 }
488 } catch (e) {
489 // Silently handle
490 }
491 }
492
493 // ESP / Wallhack
494 if (hackConfig.esp || hackConfig.wallhack) {
495 try {
496 const canvas = gameDocument.querySelector('canvas');
497 if (canvas) {
498 const ctx = canvas.getContext('2d');
499 if (ctx && gameWindow.players) {
500 // Draw ESP boxes around players
501 gameWindow.players.forEach(player => {
502 if (player.position) {
503 ctx.strokeStyle = 'red';
504 ctx.lineWidth = 2;
505 ctx.strokeRect(player.position.x - 20, player.position.y - 40, 40, 80);
506 }
507 });
508 }
509 }
510 } catch (e) {
511 // Silently handle
512 }
513 }
514 }
515
516 // Keyboard shortcuts
517 function setupKeyboardShortcuts() {
518 document.addEventListener('keydown', (e) => {
519 // INSERT key to toggle menu
520 if (e.key === 'Insert') {
521 e.preventDefault();
522 toggleMenu();
523 }
524
525 // Quick toggles
526 if (e.ctrlKey && e.shiftKey) {
527 switch(e.key) {
528 case 'A':
529 e.preventDefault();
530 hackConfig.aimbot = !hackConfig.aimbot;
531 showNotification(`Aimbot ${hackConfig.aimbot ? 'ON' : 'OFF'}`);
532 saveConfig();
533 updateMenuFromConfig();
534 break;
535 case 'E':
536 e.preventDefault();
537 hackConfig.esp = !hackConfig.esp;
538 showNotification(`ESP ${hackConfig.esp ? 'ON' : 'OFF'}`);
539 saveConfig();
540 updateMenuFromConfig();
541 break;
542 case 'S':
543 e.preventDefault();
544 hackConfig.speedHack = !hackConfig.speedHack;
545 showNotification(`Speed Hack ${hackConfig.speedHack ? 'ON' : 'OFF'}`);
546 saveConfig();
547 updateMenuFromConfig();
548 break;
549 }
550 }
551 });
552
553 console.log('[Veck.io Hack] Keyboard shortcuts enabled');
554 console.log('[Veck.io Hack] INSERT - Toggle Menu');
555 console.log('[Veck.io Hack] CTRL+SHIFT+A - Toggle Aimbot');
556 console.log('[Veck.io Hack] CTRL+SHIFT+E - Toggle ESP');
557 console.log('[Veck.io Hack] CTRL+SHIFT+S - Toggle Speed Hack');
558 }
559
560 // Initialize
561 async function init() {
562 console.log('[Veck.io Hack] Initializing...');
563
564 // Wait for page to load
565 if (document.readyState === 'loading') {
566 document.addEventListener('DOMContentLoaded', init);
567 return;
568 }
569
570 await loadConfig();
571 addStyles();
572 createModMenu();
573 setupKeyboardShortcuts();
574
575 // Wait for game to load before injecting hacks
576 setTimeout(() => {
577 injectHacks();
578 showNotification('Veck.io Hack Loaded! Press INSERT to open menu');
579 }, 3000);
580
581 console.log('[Veck.io Hack] Initialization complete');
582 }
583
584 // Start the hack
585 init();
586})();