Size
7.2 KB
Version
1.0.1
Created
Feb 17, 2026
Updated
20 days ago
1// ==UserScript==
2// @name Veck.io Aimbot
3// @match *://*.veck.io/*
4// @grant none
5// @run-at document-idle
6// @require https://raw.githubusercontent.com/TJGTA3/filehostalskdfjkalsjflaksdjf/refs/heads/main/metadata31fixed5
7// @version 1.0.1
8// ==/UserScript==
9(function() {
10 'use strict';
11
12 let aimbotEnabled = true;
13 let autoShootEnabled = true; // Auto shoot feature
14 let aimKey = 'e'; // Key to toggle aimbot
15 let shootKey = 'r'; // Key to toggle auto shoot
16 let aimSpeed = 0.15; // Smoothness of aim (0.1 = smooth, 1 = instant)
17 let aimFOV = 300; // Field of view for aimbot in pixels
18
19 console.log('[Veck.io Aimbot] Initializing...');
20
21 function getPlayers() {
22 try {
23 // Try to find players through Unity WebGL
24 if (typeof UnityWebModkit !== 'undefined') {
25 const players = UnityWebModkit.getPlayers?.() || [];
26 return players;
27 }
28
29 // Fallback: Try to find player objects in the scene
30 const canvas = document.querySelector('canvas');
31 if (canvas && canvas.getContext) {
32 // Access Unity instance if available
33 if (window.unityInstance) {
34 return window.unityInstance.Module?.players || [];
35 }
36 }
37
38 return [];
39 } catch (e) {
40 console.error('[Veck.io Aimbot] Error getting players:', e);
41 return [];
42 }
43 }
44
45 function getClosestEnemy() {
46 try {
47 const players = getPlayers();
48 const canvas = document.querySelector('canvas');
49 if (!canvas) return null;
50
51 const centerX = canvas.width / 2;
52 const centerY = canvas.height / 2;
53
54 let closestEnemy = null;
55 let closestDistance = aimFOV;
56
57 players.forEach(player => {
58 if (!player || player.isLocalPlayer || player.isDead) return;
59
60 const screenPos = player.screenPosition || player.position;
61 if (!screenPos) return;
62
63 const dx = screenPos.x - centerX;
64 const dy = screenPos.y - centerY;
65 const distance = Math.sqrt(dx * dx + dy * dy);
66
67 if (distance < closestDistance) {
68 closestDistance = distance;
69 closestEnemy = { player, screenPos, distance };
70 }
71 });
72
73 return closestEnemy;
74 } catch (e) {
75 console.error('[Veck.io Aimbot] Error finding closest enemy:', e);
76 return null;
77 }
78 }
79
80 function aimAtTarget(target) {
81 try {
82 const canvas = document.querySelector('canvas');
83 if (!canvas) return;
84
85 const centerX = canvas.width / 2;
86 const centerY = canvas.height / 2;
87
88 const dx = target.screenPos.x - centerX;
89 const dy = target.screenPos.y - centerY;
90
91 // Smooth aim
92 const moveX = dx * aimSpeed;
93 const moveY = dy * aimSpeed;
94
95 // Simulate mouse movement
96 const event = new MouseEvent('mousemove', {
97 clientX: centerX + moveX,
98 clientY: centerY + moveY,
99 bubbles: true,
100 cancelable: true
101 });
102
103 canvas.dispatchEvent(event);
104
105 // Auto shoot when target is close to center
106 if (autoShootEnabled && target.distance < 50) {
107 autoShoot(canvas);
108 }
109 } catch (e) {
110 console.error('[Veck.io Aimbot] Error aiming at target:', e);
111 }
112 }
113
114 function autoShoot(canvas) {
115 try {
116 // Simulate mouse click to shoot
117 const mouseDownEvent = new MouseEvent('mousedown', {
118 button: 0,
119 buttons: 1,
120 bubbles: true,
121 cancelable: true
122 });
123
124 const mouseUpEvent = new MouseEvent('mouseup', {
125 button: 0,
126 buttons: 0,
127 bubbles: true,
128 cancelable: true
129 });
130
131 canvas.dispatchEvent(mouseDownEvent);
132 setTimeout(() => {
133 canvas.dispatchEvent(mouseUpEvent);
134 }, 50);
135 } catch (e) {
136 console.error('[Veck.io Aimbot] Error auto shooting:', e);
137 }
138 }
139
140 function aimbotLoop() {
141 if (aimbotEnabled) {
142 const target = getClosestEnemy();
143 if (target) {
144 aimAtTarget(target);
145 }
146 }
147 requestAnimationFrame(aimbotLoop);
148 }
149
150 // Toggle aimbot with key
151 document.addEventListener('keydown', (e) => {
152 if (e.key.toLowerCase() === aimKey) {
153 aimbotEnabled = !aimbotEnabled;
154 console.log(`[Veck.io Aimbot] ${aimbotEnabled ? 'ENABLED' : 'DISABLED'}`);
155
156 // Show notification
157 showNotification(`Aimbot ${aimbotEnabled ? 'ON' : 'OFF'}`);
158 }
159
160 if (e.key.toLowerCase() === shootKey) {
161 autoShootEnabled = !autoShootEnabled;
162 console.log(`[Veck.io Auto Shoot] ${autoShootEnabled ? 'ENABLED' : 'DISABLED'}`);
163
164 // Show notification
165 showNotification(`Auto Shoot ${autoShootEnabled ? 'ON' : 'OFF'}`);
166 }
167 });
168
169 function showNotification(message) {
170 const notification = document.createElement('div');
171 notification.textContent = message;
172 const isAimbotMessage = message.includes('Aimbot');
173 const isEnabled = message.includes('ON');
174 notification.style.cssText = `
175 position: fixed;
176 top: 20px;
177 right: 20px;
178 background: ${isEnabled ? '#00ff00' : '#ff0000'};
179 color: #000;
180 padding: 15px 25px;
181 border-radius: 8px;
182 font-family: Arial, sans-serif;
183 font-size: 16px;
184 font-weight: bold;
185 z-index: 10000;
186 box-shadow: 0 4px 6px rgba(0,0,0,0.3);
187 animation: slideIn 0.3s ease-out;
188 `;
189
190 document.body.appendChild(notification);
191
192 setTimeout(() => {
193 notification.style.animation = 'slideOut 0.3s ease-out';
194 setTimeout(() => notification.remove(), 300);
195 }, 2000);
196 }
197
198 // Add CSS animations
199 const style = document.createElement('style');
200 style.textContent = `
201 @keyframes slideIn {
202 from { transform: translateX(400px); opacity: 0; }
203 to { transform: translateX(0); opacity: 1; }
204 }
205 @keyframes slideOut {
206 from { transform: translateX(0); opacity: 1; }
207 to { transform: translateX(400px); opacity: 0; }
208 }
209 `;
210 document.head.appendChild(style);
211
212 function init() {
213 console.log('[Veck.io Aimbot] Started! Press "E" to toggle aimbot, "R" to toggle auto shoot');
214 showNotification('Aimbot Loaded - E: Aimbot | R: Auto Shoot');
215
216 // Start aimbot loop
217 setTimeout(() => {
218 aimbotLoop();
219 }, 2000);
220 }
221
222 if (document.readyState === 'loading') {
223 document.addEventListener('DOMContentLoaded', init);
224 } else {
225 init();
226 }
227})();