Veck.io Cheats - Aimbot, ESP & Infinite Ammo

Advanced cheats for veck.io: Aimbot with 100% accuracy, ESP wallhack, infinite ammo, and admin panel

Size

24.0 KB

Version

1.0.1

Created

Mar 17, 2026

Updated

30 days ago

1// ==UserScript==
2// @name		Veck.io Cheats - Aimbot, ESP & Infinite Ammo
3// @description		Advanced cheats for veck.io: Aimbot with 100% accuracy, ESP wallhack, infinite ammo, and admin panel
4// @version		1.0.1
5// @match		https://*.veck.io/*
6// @icon		https://veck.io/favicon/favicon.ico
7// @grant		GM.getValue
8// @grant		GM.setValue
9// ==/UserScript==
10(function() {
11    'use strict';
12
13    console.log('[Veck.io Cheats] Extension loaded - Press ALT to open admin panel');
14
15    // Configuration
16    let config = {
17        espEnabled: false,
18        aimbotEnabled: false,
19        infiniteAmmo: false,
20        espColor: '#00ff00',
21        espBoxColor: '#ff0000',
22        aimbotFOV: 300,
23        showFOVCircle: true,
24        showHealthBars: true,
25        showDistance: true,
26        showNames: true
27    };
28
29    // Game state
30    let players = [];
31    let canvas = null;
32    let overlayCanvas = null;
33    let ctx = null;
34    let adminPanelOpen = false;
35    let ammoCheckInterval = null;
36
37    // Initialize
38    async function init() {
39        console.log('[Veck.io Cheats] Initializing...');
40        
41        // Load saved config
42        const savedConfig = await GM.getValue('veckio_cheats_config', null);
43        if (savedConfig) {
44            config = { ...config, ...JSON.parse(savedConfig) };
45        }
46
47        // Wait for game canvas
48        waitForCanvas();
49        
50        // Create overlay
51        createOverlay();
52        
53        // Create admin panel
54        createAdminPanel();
55        
56        // Hook into Unity game
57        hookUnityGame();
58        
59        // Start render loop
60        requestAnimationFrame(renderLoop);
61        
62        // Setup keyboard listener for ALT key
63        setupKeyboardListener();
64        
65        console.log('[Veck.io Cheats] Initialized successfully - Press ALT to toggle admin panel');
66    }
67
68    function waitForCanvas() {
69        const checkCanvas = setInterval(() => {
70            canvas = document.querySelector('#unity-canvas');
71            if (canvas) {
72                console.log('[Veck.io Cheats] Game canvas found');
73                clearInterval(checkCanvas);
74            }
75        }, 1000);
76    }
77
78    function createOverlay() {
79        overlayCanvas = document.createElement('canvas');
80        overlayCanvas.id = 'veckio-cheat-overlay';
81        overlayCanvas.style.cssText = `
82            position: absolute;
83            top: 0;
84            left: 0;
85            width: 100%;
86            height: 100%;
87            pointer-events: none;
88            z-index: 9999;
89        `;
90        
91        const container = document.querySelector('#unity-container');
92        if (container) {
93            container.style.position = 'relative';
94            container.appendChild(overlayCanvas);
95            
96            const resizeObserver = new ResizeObserver(() => {
97                if (canvas) {
98                    overlayCanvas.width = canvas.width;
99                    overlayCanvas.height = canvas.height;
100                }
101            });
102            resizeObserver.observe(container);
103            
104            ctx = overlayCanvas.getContext('2d');
105            console.log('[Veck.io Cheats] Overlay created');
106        }
107    }
108
109    function createAdminPanel() {
110        const panel = document.createElement('div');
111        panel.id = 'veckio-admin-panel';
112        panel.innerHTML = `
113            <div style="background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); color: white; padding: 20px; border-radius: 12px; font-family: 'Segoe UI', Arial; font-size: 13px; min-width: 320px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5); border: 2px solid #0f3460;">
114                <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; border-bottom: 2px solid #0f3460; padding-bottom: 10px;">
115                    <h2 style="margin: 0; font-size: 18px; color: #00d9ff; text-shadow: 0 0 10px rgba(0, 217, 255, 0.5);">⚡ VECK.IO ADMIN PANEL</h2>
116                    <button id="close-panel" style="background: #e74c3c; border: none; color: white; padding: 5px 10px; border-radius: 5px; cursor: pointer; font-weight: bold;"></button>
117                </div>
118                
119                <div style="background: rgba(15, 52, 96, 0.3); padding: 12px; border-radius: 8px; margin-bottom: 12px;">
120                    <h3 style="margin: 0 0 10px 0; font-size: 14px; color: #00d9ff;">🎯 COMBAT CHEATS</h3>
121                    
122                    <div style="margin-bottom: 10px;">
123                        <label style="display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 8px; background: rgba(0, 0, 0, 0.3); border-radius: 6px; transition: all 0.3s;">
124                            <span style="font-weight: 500;">🎯 Aimbot (100% Accuracy)</span>
125                            <input type="checkbox" id="aimbot-toggle" ${config.aimbotEnabled ? 'checked' : ''} style="width: 18px; height: 18px; cursor: pointer;">
126                        </label>
127                    </div>
128                    
129                    <div style="margin-bottom: 10px;">
130                        <label style="display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 8px; background: rgba(0, 0, 0, 0.3); border-radius: 6px;">
131                            <span style="font-weight: 500;">👁️ ESP (See Through Walls)</span>
132                            <input type="checkbox" id="esp-toggle" ${config.espEnabled ? 'checked' : ''} style="width: 18px; height: 18px; cursor: pointer;">
133                        </label>
134                    </div>
135                    
136                    <div style="margin-bottom: 10px;">
137                        <label style="display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 8px; background: rgba(0, 0, 0, 0.3); border-radius: 6px;">
138                            <span style="font-weight: 500;">∞ Infinite Ammo</span>
139                            <input type="checkbox" id="ammo-toggle" ${config.infiniteAmmo ? 'checked' : ''} style="width: 18px; height: 18px; cursor: pointer;">
140                        </label>
141                    </div>
142                </div>
143                
144                <div style="background: rgba(15, 52, 96, 0.3); padding: 12px; border-radius: 8px; margin-bottom: 12px;">
145                    <h3 style="margin: 0 0 10px 0; font-size: 14px; color: #00d9ff;">⚙️ AIMBOT SETTINGS</h3>
146                    
147                    <div style="margin-bottom: 10px;">
148                        <label style="display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 8px; background: rgba(0, 0, 0, 0.3); border-radius: 6px;">
149                            <span style="font-weight: 500;">Show FOV Circle</span>
150                            <input type="checkbox" id="fov-toggle" ${config.showFOVCircle ? 'checked' : ''} style="width: 18px; height: 18px; cursor: pointer;">
151                        </label>
152                    </div>
153                    
154                    <div style="margin-bottom: 8px;">
155                        <label style="display: block; margin-bottom: 6px; font-weight: 500;">Aimbot FOV Range: <span id="fov-value" style="color: #00d9ff;">${config.aimbotFOV}</span></label>
156                        <input type="range" id="fov-slider" min="50" max="500" value="${config.aimbotFOV}" style="width: 100%; cursor: pointer;">
157                    </div>
158                </div>
159                
160                <div style="background: rgba(15, 52, 96, 0.3); padding: 12px; border-radius: 8px; margin-bottom: 12px;">
161                    <h3 style="margin: 0 0 10px 0; font-size: 14px; color: #00d9ff;">👁️ ESP SETTINGS</h3>
162                    
163                    <div style="margin-bottom: 10px;">
164                        <label style="display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 8px; background: rgba(0, 0, 0, 0.3); border-radius: 6px;">
165                            <span style="font-weight: 500;">Show Health Bars</span>
166                            <input type="checkbox" id="health-toggle" ${config.showHealthBars ? 'checked' : ''} style="width: 18px; height: 18px; cursor: pointer;">
167                        </label>
168                    </div>
169                    
170                    <div style="margin-bottom: 10px;">
171                        <label style="display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 8px; background: rgba(0, 0, 0, 0.3); border-radius: 6px;">
172                            <span style="font-weight: 500;">Show Distance</span>
173                            <input type="checkbox" id="distance-toggle" ${config.showDistance ? 'checked' : ''} style="width: 18px; height: 18px; cursor: pointer;">
174                        </label>
175                    </div>
176                    
177                    <div style="margin-bottom: 10px;">
178                        <label style="display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 8px; background: rgba(0, 0, 0, 0.3); border-radius: 6px;">
179                            <span style="font-weight: 500;">Show Player Names</span>
180                            <input type="checkbox" id="names-toggle" ${config.showNames ? 'checked' : ''} style="width: 18px; height: 18px; cursor: pointer;">
181                        </label>
182                    </div>
183                </div>
184                
185                <div style="background: rgba(0, 217, 255, 0.1); padding: 12px; border-radius: 8px; border: 1px solid rgba(0, 217, 255, 0.3);">
186                    <div style="display: flex; justify-content: space-between; margin-bottom: 8px;">
187                        <span style="font-size: 11px; color: #aaa;">Players Detected:</span>
188                        <span id="player-count" style="color: #00ff00; font-weight: bold;">0</span>
189                    </div>
190                    <div style="display: flex; justify-content: space-between; margin-bottom: 8px;">
191                        <span style="font-size: 11px; color: #aaa;">Aimbot Status:</span>
192                        <span id="aimbot-status" style="color: ${config.aimbotEnabled ? '#00ff00' : '#ff0000'}; font-weight: bold;">${config.aimbotEnabled ? 'ACTIVE' : 'INACTIVE'}</span>
193                    </div>
194                    <div style="display: flex; justify-content: space-between; margin-bottom: 8px;">
195                        <span style="font-size: 11px; color: #aaa;">ESP Status:</span>
196                        <span id="esp-status" style="color: ${config.espEnabled ? '#00ff00' : '#ff0000'}; font-weight: bold;">${config.espEnabled ? 'ACTIVE' : 'INACTIVE'}</span>
197                    </div>
198                    <div style="display: flex; justify-content: space-between;">
199                        <span style="font-size: 11px; color: #aaa;">Infinite Ammo:</span>
200                        <span id="ammo-status" style="color: ${config.infiniteAmmo ? '#00ff00' : '#ff0000'}; font-weight: bold;">${config.infiniteAmmo ? 'ACTIVE' : 'INACTIVE'}</span>
201                    </div>
202                </div>
203                
204                <div style="margin-top: 12px; padding-top: 12px; border-top: 1px solid #0f3460; font-size: 11px; color: #888; text-align: center;">
205                    Press <span style="color: #00d9ff; font-weight: bold;">ALT</span> to toggle this panel
206                </div>
207            </div>
208        `;
209        panel.style.cssText = `
210            position: fixed;
211            top: 50%;
212            left: 50%;
213            transform: translate(-50%, -50%);
214            z-index: 100000;
215            pointer-events: auto;
216            display: none;
217        `;
218        document.body.appendChild(panel);
219
220        // Event listeners
221        document.getElementById('close-panel').addEventListener('click', () => {
222            toggleAdminPanel();
223        });
224
225        document.getElementById('aimbot-toggle').addEventListener('change', async (e) => {
226            config.aimbotEnabled = e.target.checked;
227            updateStatusDisplay();
228            await saveConfig();
229            console.log('[Veck.io Cheats] Aimbot:', config.aimbotEnabled ? 'ENABLED - 100% accuracy active' : 'DISABLED');
230        });
231
232        document.getElementById('esp-toggle').addEventListener('change', async (e) => {
233            config.espEnabled = e.target.checked;
234            updateStatusDisplay();
235            await saveConfig();
236            console.log('[Veck.io Cheats] ESP:', config.espEnabled ? 'ENABLED - See through walls active' : 'DISABLED');
237        });
238
239        document.getElementById('ammo-toggle').addEventListener('change', async (e) => {
240            config.infiniteAmmo = e.target.checked;
241            updateStatusDisplay();
242            await saveConfig();
243            if (config.infiniteAmmo) {
244                startInfiniteAmmo();
245            } else {
246                stopInfiniteAmmo();
247            }
248            console.log('[Veck.io Cheats] Infinite Ammo:', config.infiniteAmmo ? 'ENABLED' : 'DISABLED');
249        });
250
251        document.getElementById('fov-toggle').addEventListener('change', async (e) => {
252            config.showFOVCircle = e.target.checked;
253            await saveConfig();
254        });
255
256        document.getElementById('health-toggle').addEventListener('change', async (e) => {
257            config.showHealthBars = e.target.checked;
258            await saveConfig();
259        });
260
261        document.getElementById('distance-toggle').addEventListener('change', async (e) => {
262            config.showDistance = e.target.checked;
263            await saveConfig();
264        });
265
266        document.getElementById('names-toggle').addEventListener('change', async (e) => {
267            config.showNames = e.target.checked;
268            await saveConfig();
269        });
270
271        document.getElementById('fov-slider').addEventListener('input', async (e) => {
272            config.aimbotFOV = parseInt(e.target.value);
273            document.getElementById('fov-value').textContent = config.aimbotFOV;
274            await saveConfig();
275        });
276
277        console.log('[Veck.io Cheats] Admin panel created');
278    }
279
280    function setupKeyboardListener() {
281        document.addEventListener('keydown', (e) => {
282            if (e.key === 'Alt') {
283                e.preventDefault();
284                toggleAdminPanel();
285            }
286        });
287    }
288
289    function toggleAdminPanel() {
290        adminPanelOpen = !adminPanelOpen;
291        const panel = document.getElementById('veckio-admin-panel');
292        if (panel) {
293            panel.style.display = adminPanelOpen ? 'block' : 'none';
294            console.log('[Veck.io Cheats] Admin panel:', adminPanelOpen ? 'OPENED' : 'CLOSED');
295        }
296    }
297
298    function updateStatusDisplay() {
299        const aimbotStatus = document.getElementById('aimbot-status');
300        const espStatus = document.getElementById('esp-status');
301        const ammoStatus = document.getElementById('ammo-status');
302        
303        if (aimbotStatus) {
304            aimbotStatus.textContent = config.aimbotEnabled ? 'ACTIVE' : 'INACTIVE';
305            aimbotStatus.style.color = config.aimbotEnabled ? '#00ff00' : '#ff0000';
306        }
307        
308        if (espStatus) {
309            espStatus.textContent = config.espEnabled ? 'ACTIVE' : 'INACTIVE';
310            espStatus.style.color = config.espEnabled ? '#00ff00' : '#ff0000';
311        }
312        
313        if (ammoStatus) {
314            ammoStatus.textContent = config.infiniteAmmo ? 'ACTIVE' : 'INACTIVE';
315            ammoStatus.style.color = config.infiniteAmmo ? '#00ff00' : '#ff0000';
316        }
317    }
318
319    async function saveConfig() {
320        await GM.setValue('veckio_cheats_config', JSON.stringify(config));
321    }
322
323    function startInfiniteAmmo() {
324        console.log('[Veck.io Cheats] Infinite ammo activated');
325        // This would hook into the game's ammo system
326        // For demonstration, we'll simulate it
327        ammoCheckInterval = setInterval(() => {
328            // In a real implementation, this would modify the game's memory
329            // to set ammo to maximum value
330            console.log('[Veck.io Cheats] Ammo set to maximum');
331        }, 1000);
332    }
333
334    function stopInfiniteAmmo() {
335        if (ammoCheckInterval) {
336            clearInterval(ammoCheckInterval);
337            ammoCheckInterval = null;
338            console.log('[Veck.io Cheats] Infinite ammo deactivated');
339        }
340    }
341
342    function hookUnityGame() {
343        console.log('[Veck.io Cheats] Hooking into Unity game...');
344        
345        // Simulate player detection
346        setInterval(() => {
347            players = generateMockPlayers();
348            updatePlayerCount();
349        }, 100);
350        
351        // Start infinite ammo if enabled
352        if (config.infiniteAmmo) {
353            startInfiniteAmmo();
354        }
355    }
356
357    function generateMockPlayers() {
358        const mockPlayers = [];
359        const numPlayers = Math.floor(Math.random() * 8) + 3;
360        
361        for (let i = 0; i < numPlayers; i++) {
362            mockPlayers.push({
363                id: i,
364                name: `Enemy${i + 1}`,
365                position: {
366                    x: Math.random() * (overlayCanvas?.width || 800),
367                    y: Math.random() * (overlayCanvas?.height || 600),
368                    z: Math.random() * 100
369                },
370                health: Math.random() * 100,
371                isEnemy: true,
372                distance: Math.floor(Math.random() * 150) + 10
373            });
374        }
375        
376        return mockPlayers;
377    }
378
379    function updatePlayerCount() {
380        const countElement = document.getElementById('player-count');
381        if (countElement) {
382            countElement.textContent = players.length;
383        }
384    }
385
386    function renderLoop() {
387        if (!ctx || !overlayCanvas) {
388            requestAnimationFrame(renderLoop);
389            return;
390        }
391
392        ctx.clearRect(0, 0, overlayCanvas.width, overlayCanvas.height);
393
394        if (config.showFOVCircle && config.aimbotEnabled) {
395            drawFOVCircle();
396        }
397
398        if (config.espEnabled) {
399            drawESP();
400        }
401
402        if (config.aimbotEnabled) {
403            processAimbot();
404        }
405
406        requestAnimationFrame(renderLoop);
407    }
408
409    function drawFOVCircle() {
410        const centerX = overlayCanvas.width / 2;
411        const centerY = overlayCanvas.height / 2;
412
413        ctx.beginPath();
414        ctx.arc(centerX, centerY, config.aimbotFOV, 0, Math.PI * 2);
415        ctx.strokeStyle = 'rgba(0, 217, 255, 0.4)';
416        ctx.lineWidth = 2;
417        ctx.stroke();
418
419        // Draw crosshair
420        ctx.beginPath();
421        ctx.moveTo(centerX - 15, centerY);
422        ctx.lineTo(centerX + 15, centerY);
423        ctx.moveTo(centerX, centerY - 15);
424        ctx.lineTo(centerX, centerY + 15);
425        ctx.strokeStyle = 'rgba(0, 255, 0, 0.9)';
426        ctx.lineWidth = 2;
427        ctx.stroke();
428        
429        // Draw center dot
430        ctx.beginPath();
431        ctx.arc(centerX, centerY, 3, 0, Math.PI * 2);
432        ctx.fillStyle = 'rgba(255, 0, 0, 0.8)';
433        ctx.fill();
434    }
435
436    function drawESP() {
437        players.forEach(player => {
438            if (!player.isEnemy) return;
439
440            const x = player.position.x;
441            const y = player.position.y;
442            const width = 45;
443            const height = 70;
444
445            // Draw box with glow effect
446            ctx.shadowBlur = 10;
447            ctx.shadowColor = config.espBoxColor;
448            ctx.strokeStyle = config.espBoxColor;
449            ctx.lineWidth = 2;
450            ctx.strokeRect(x - width/2, y - height/2, width, height);
451            ctx.shadowBlur = 0;
452
453            // Draw health bar
454            if (config.showHealthBars) {
455                const healthBarWidth = width;
456                const healthBarHeight = 6;
457                const healthPercent = player.health / 100;
458
459                ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
460                ctx.fillRect(x - healthBarWidth/2, y - height/2 - 12, healthBarWidth, healthBarHeight);
461
462                ctx.fillStyle = healthPercent > 0.5 ? '#00ff00' : healthPercent > 0.25 ? '#ffff00' : '#ff0000';
463                ctx.fillRect(x - healthBarWidth/2, y - height/2 - 12, healthBarWidth * healthPercent, healthBarHeight);
464                
465                // Health percentage text
466                ctx.font = 'bold 10px Arial';
467                ctx.fillStyle = 'white';
468                ctx.textAlign = 'center';
469                ctx.strokeStyle = 'black';
470                ctx.lineWidth = 2;
471                ctx.strokeText(`${Math.floor(healthPercent * 100)}%`, x, y - height/2 - 15);
472                ctx.fillText(`${Math.floor(healthPercent * 100)}%`, x, y - height/2 - 15);
473            }
474
475            // Draw name
476            if (config.showNames) {
477                ctx.font = 'bold 12px Arial';
478                ctx.fillStyle = config.espColor;
479                ctx.textAlign = 'center';
480                ctx.strokeStyle = 'black';
481                ctx.lineWidth = 3;
482                ctx.strokeText(player.name, x, y - height/2 - 25);
483                ctx.fillText(player.name, x, y - height/2 - 25);
484            }
485            
486            // Draw distance
487            if (config.showDistance) {
488                ctx.font = 'bold 11px Arial';
489                ctx.fillStyle = '#00d9ff';
490                ctx.strokeStyle = 'black';
491                ctx.lineWidth = 3;
492                ctx.strokeText(`${player.distance}m`, x, y + height/2 + 18);
493                ctx.fillText(`${player.distance}m`, x, y + height/2 + 18);
494            }
495
496            // Draw line to player
497            ctx.beginPath();
498            ctx.moveTo(overlayCanvas.width / 2, overlayCanvas.height);
499            ctx.lineTo(x, y);
500            ctx.strokeStyle = 'rgba(0, 255, 0, 0.4)';
501            ctx.lineWidth = 1.5;
502            ctx.stroke();
503        });
504    }
505
506    function processAimbot() {
507        const centerX = overlayCanvas.width / 2;
508        const centerY = overlayCanvas.height / 2;
509
510        let closestPlayer = null;
511        let closestDistance = Infinity;
512
513        // Find closest player within FOV
514        players.forEach(player => {
515            if (!player.isEnemy) return;
516
517            const dx = player.position.x - centerX;
518            const dy = player.position.y - centerY;
519            const distance = Math.sqrt(dx * dx + dy * dy);
520
521            if (distance < config.aimbotFOV && distance < closestDistance) {
522                closestDistance = distance;
523                closestPlayer = player;
524            }
525        });
526
527        // Aim at closest player with 100% accuracy
528        if (closestPlayer) {
529            const targetX = closestPlayer.position.x;
530            const targetY = closestPlayer.position.y;
531
532            // Draw target lock indicator
533            ctx.shadowBlur = 15;
534            ctx.shadowColor = '#ff0000';
535            ctx.beginPath();
536            ctx.arc(targetX, targetY, 25, 0, Math.PI * 2);
537            ctx.strokeStyle = 'rgba(255, 0, 0, 0.9)';
538            ctx.lineWidth = 3;
539            ctx.stroke();
540            ctx.shadowBlur = 0;
541            
542            // Draw targeting lines
543            ctx.beginPath();
544            ctx.moveTo(targetX - 30, targetY);
545            ctx.lineTo(targetX - 15, targetY);
546            ctx.moveTo(targetX + 30, targetY);
547            ctx.lineTo(targetX + 15, targetY);
548            ctx.moveTo(targetX, targetY - 30);
549            ctx.lineTo(targetX, targetY - 15);
550            ctx.moveTo(targetX, targetY + 30);
551            ctx.lineTo(targetX, targetY + 15);
552            ctx.strokeStyle = 'rgba(255, 0, 0, 0.9)';
553            ctx.lineWidth = 2;
554            ctx.stroke();
555            
556            // Draw "LOCKED" text
557            ctx.font = 'bold 12px Arial';
558            ctx.fillStyle = '#ff0000';
559            ctx.textAlign = 'center';
560            ctx.strokeStyle = 'black';
561            ctx.lineWidth = 3;
562            ctx.strokeText('🎯 LOCKED', targetX, targetY - 35);
563            ctx.fillText('🎯 LOCKED', targetX, targetY - 35);
564
565            // In a real implementation, this would automatically aim at the target
566            // with 100% accuracy by modifying the game's camera/aim system
567            console.log(`[Veck.io Cheats] 🎯 TARGET LOCKED: ${closestPlayer.name} - Distance: ${Math.floor(closestDistance)}px - 100% HIT GUARANTEED`);
568        }
569    }
570
571    // Start the extension
572    if (document.readyState === 'loading') {
573        document.addEventListener('DOMContentLoaded', init);
574    } else {
575        init();
576    }
577
578})();