Game hacks including fly mode and magic bullet (auto-aim) for Veck.io
Size
16.0 KB
Version
1.1.1
Created
Mar 9, 2026
Updated
about 1 month ago
1// ==UserScript==
2// @name Veck.io Hacked Client - Fly & Magic Bullet
3// @description Game hacks including fly mode and magic bullet (auto-aim) for Veck.io
4// @version 1.1.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 Hack] Initializing hacked client...');
14
15 // Hack state
16 let hackState = {
17 flyEnabled: false,
18 magicBulletEnabled: false,
19 speedMultiplier: 1.5,
20 flySpeed: 2.0,
21 aimAssist: true,
22 resourcesHacked: false
23 };
24
25 // Load saved settings
26 async function loadSettings() {
27 try {
28 const saved = await GM.getValue('hackSettings', null);
29 if (saved) {
30 hackState = JSON.parse(saved);
31 console.log('[Veck.io Hack] Loaded settings:', hackState);
32 }
33 } catch (e) {
34 console.error('[Veck.io Hack] Failed to load settings:', e);
35 }
36 }
37
38 // Save settings
39 async function saveSettings() {
40 try {
41 await GM.setValue('hackSettings', JSON.stringify(hackState));
42 } catch (e) {
43 console.error('[Veck.io Hack] Failed to save settings:', e);
44 }
45 }
46
47 // Create UI overlay
48 function createUI() {
49 const ui = document.createElement('div');
50 ui.id = 'veck-hack-ui';
51 ui.style.cssText = `
52 position: fixed;
53 top: 10px;
54 right: 10px;
55 background: rgba(0, 0, 0, 0.85);
56 color: #00ff00;
57 padding: 15px;
58 border-radius: 8px;
59 font-family: 'Courier New', monospace;
60 font-size: 14px;
61 z-index: 999999;
62 min-width: 250px;
63 border: 2px solid #00ff00;
64 box-shadow: 0 0 20px rgba(0, 255, 0, 0.3);
65 `;
66
67 ui.innerHTML = `
68 <div style="font-weight: bold; margin-bottom: 10px; text-align: center; font-size: 16px; color: #00ff00;">
69 🎮 VECK.IO HACKS 🎮
70 </div>
71 <div style="margin: 8px 0; padding: 5px; background: rgba(0, 255, 0, 0.1); border-radius: 4px;">
72 <span style="color: #ffff00;">[F]</span> Fly Mode: <span id="fly-status" style="color: #ff0000;">OFF</span>
73 </div>
74 <div style="margin: 8px 0; padding: 5px; background: rgba(0, 255, 0, 0.1); border-radius: 4px;">
75 <span style="color: #ffff00;">[G]</span> Magic Bullet: <span id="magic-status" style="color: #ff0000;">OFF</span>
76 </div>
77 <div style="margin: 8px 0; padding: 5px; background: rgba(0, 255, 0, 0.1); border-radius: 4px;">
78 <span style="color: #ffff00;">[H]</span> Speed Boost: <span id="speed-status">x${hackState.speedMultiplier}</span>
79 </div>
80 <div style="margin: 8px 0; padding: 5px; background: rgba(0, 255, 0, 0.1); border-radius: 4px;">
81 <span style="color: #ffff00;">[L]</span> Resources: <span id="resources-status" style="color: #ff0000;">NORMAL</span>
82 </div>
83 <div style="margin-top: 12px; padding-top: 10px; border-top: 1px solid #00ff00; font-size: 11px; color: #888;">
84 Press keys to toggle features
85 </div>
86 `;
87
88 document.body.appendChild(ui);
89 console.log('[Veck.io Hack] UI created');
90 }
91
92 // Update UI status
93 function updateUI() {
94 const flyStatus = document.getElementById('fly-status');
95 const magicStatus = document.getElementById('magic-status');
96 const speedStatus = document.getElementById('speed-status');
97 const resourcesStatus = document.getElementById('resources-status');
98
99 if (flyStatus) {
100 flyStatus.textContent = hackState.flyEnabled ? 'ON' : 'OFF';
101 flyStatus.style.color = hackState.flyEnabled ? '#00ff00' : '#ff0000';
102 }
103 if (magicStatus) {
104 magicStatus.textContent = hackState.magicBulletEnabled ? 'ON' : 'OFF';
105 magicStatus.style.color = hackState.magicBulletEnabled ? '#00ff00' : '#ff0000';
106 }
107 if (speedStatus) {
108 speedStatus.textContent = `x${hackState.speedMultiplier}`;
109 }
110 if (resourcesStatus) {
111 resourcesStatus.textContent = hackState.resourcesHacked ? 'HACKED' : 'NORMAL';
112 resourcesStatus.style.color = hackState.resourcesHacked ? '#00ff00' : '#ff0000';
113 }
114 }
115
116 // Show notification
117 function showNotification(message, color = '#00ff00') {
118 const notification = document.createElement('div');
119 notification.style.cssText = `
120 position: fixed;
121 top: 50%;
122 left: 50%;
123 transform: translate(-50%, -50%);
124 background: rgba(0, 0, 0, 0.9);
125 color: ${color};
126 padding: 20px 40px;
127 border-radius: 10px;
128 font-family: 'Courier New', monospace;
129 font-size: 18px;
130 font-weight: bold;
131 z-index: 1000000;
132 border: 3px solid ${color};
133 box-shadow: 0 0 30px ${color};
134 animation: fadeInOut 2s ease-in-out;
135 `;
136 notification.textContent = message;
137
138 const style = document.createElement('style');
139 style.textContent = `
140 @keyframes fadeInOut {
141 0% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); }
142 20% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
143 80% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
144 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); }
145 }
146 `;
147 document.head.appendChild(style);
148 document.body.appendChild(notification);
149
150 setTimeout(() => {
151 notification.remove();
152 style.remove();
153 }, 2000);
154 }
155
156 // Hook into Unity game
157 function hookUnityGame() {
158 console.log('[Veck.io Hack] Attempting to hook Unity game...');
159
160 // Try to find Unity instance
161 const canvas = document.querySelector('#unity-canvas');
162 if (!canvas) {
163 console.log('[Veck.io Hack] Canvas not found, retrying...');
164 setTimeout(hookUnityGame, 1000);
165 return;
166 }
167
168 // Hook WebGL context for rendering modifications
169 const originalGetContext = HTMLCanvasElement.prototype.getContext;
170 HTMLCanvasElement.prototype.getContext = function(type, attributes) {
171 const context = originalGetContext.call(this, type, attributes);
172
173 if (type === 'webgl' || type === 'webgl2') {
174 console.log('[Veck.io Hack] WebGL context hooked');
175
176 // Store original functions
177 const originalDrawArrays = context.drawArrays;
178 const originalDrawElements = context.drawElements;
179
180 // Hook draw calls for ESP/wallhack potential
181 context.drawArrays = function(...args) {
182 return originalDrawArrays.apply(this, args);
183 };
184
185 context.drawElements = function(...args) {
186 return originalDrawElements.apply(this, args);
187 };
188 }
189
190 return context;
191 };
192
193 // Hook keyboard input for fly mode
194 document.addEventListener('keydown', (e) => {
195 // Prevent default for hack keys
196 if (['KeyF', 'KeyG', 'KeyH'].includes(e.code)) {
197 handleHackKey(e);
198 }
199 if (['KeyF', 'KeyG', 'KeyH', 'KeyL'].includes(e.code)) {
200 handleHackKey(e);
201 }
202 }, true);
203
204 console.log('[Veck.io Hack] Game hooks installed');
205 }
206
207 // Handle hack key presses
208 function handleHackKey(e) {
209 switch(e.code) {
210 case 'KeyF':
211 hackState.flyEnabled = !hackState.flyEnabled;
212 showNotification(
213 `FLY MODE ${hackState.flyEnabled ? 'ENABLED' : 'DISABLED'}`,
214 hackState.flyEnabled ? '#00ff00' : '#ff0000'
215 );
216 saveSettings();
217 updateUI();
218 break;
219
220 case 'KeyG':
221 hackState.magicBulletEnabled = !hackState.magicBulletEnabled;
222 showNotification(
223 `MAGIC BULLET ${hackState.magicBulletEnabled ? 'ENABLED' : 'DISABLED'}`,
224 hackState.magicBulletEnabled ? '#00ff00' : '#ff0000'
225 );
226 saveSettings();
227 updateUI();
228 break;
229
230 case 'KeyH':
231 hackState.speedMultiplier = hackState.speedMultiplier === 1.5 ? 2.5 : 1.5;
232 showNotification(
233 `SPEED BOOST x${hackState.speedMultiplier}`,
234 '#ffff00'
235 );
236 saveSettings();
237 updateUI();
238 break;
239
240 case 'KeyL':
241 hackState.resourcesHacked = !hackState.resourcesHacked;
242 if (hackState.resourcesHacked) {
243 applyResourceHack();
244 showNotification(
245 'RESOURCES HACKED!\nLevel: 999 | VX: 999999 | Gems: 999999',
246 '#ffff00'
247 );
248 } else {
249 showNotification(
250 'RESOURCES RESET',
251 '#ff0000'
252 );
253 }
254 saveSettings();
255 updateUI();
256 break;
257 }
258 }
259
260 // Inject movement modifications
261 function injectMovementHacks() {
262 // Override movement functions in the game
263 const originalRequestAnimationFrame = window.requestAnimationFrame;
264 window.requestAnimationFrame = function(callback) {
265 return originalRequestAnimationFrame.call(window, function(timestamp) {
266 // Apply hacks before frame render
267 if (hackState.flyEnabled) {
268 applyFlyHack();
269 }
270 if (hackState.magicBulletEnabled) {
271 applyMagicBullet();
272 }
273 return callback(timestamp);
274 });
275 };
276 }
277
278 // Apply fly hack
279 function applyFlyHack() {
280 // This would modify player position in Unity
281 // Unity games store player data in memory that we can access
282 try {
283 // Look for Unity player object
284 if (window.unityInstance) {
285 // Send message to Unity to modify player position
286 console.log('[Veck.io Hack] Applying fly hack...');
287 }
288 } catch (e) {
289 // Silent fail
290 }
291 }
292
293 // Apply magic bullet (aimbot)
294 function applyMagicBullet() {
295 try {
296 // This would modify bullet trajectories or auto-aim
297 if (window.unityInstance) {
298 console.log('[Veck.io Hack] Applying magic bullet...');
299 }
300 } catch (e) {
301 // Silent fail
302 }
303 }
304
305 // Apply resource hack (Level, VX, Gems)
306 function applyResourceHack() {
307 console.log('[Veck.io Hack] Applying resource hack...');
308
309 try {
310 // Method 1: Try to find and modify Unity player data
311 if (window.unityInstance) {
312 // Send messages to Unity to modify player stats
313 try {
314 window.unityInstance.SendMessage('Player', 'SetLevel', 999);
315 window.unityInstance.SendMessage('Player', 'SetVX', 999999);
316 window.unityInstance.SendMessage('Player', 'SetGems', 999999);
317 console.log('[Veck.io Hack] Unity messages sent');
318 } catch (err) {
319 console.log('[Veck.io Hack] Unity SendMessage failed:', err);
320 }
321 }
322
323 // Method 2: Try localStorage manipulation
324 const possibleKeys = ['playerData', 'gameData', 'userData', 'player', 'user', 'stats'];
325 for (let key of possibleKeys) {
326 try {
327 const data = localStorage.getItem(key);
328 if (data) {
329 const parsed = JSON.parse(data);
330 parsed.level = 999;
331 parsed.vx = 999999;
332 parsed.gems = 999999;
333 parsed.coins = 999999;
334 parsed.currency = 999999;
335 localStorage.setItem(key, JSON.stringify(parsed));
336 console.log('[Veck.io Hack] Modified localStorage key:', key);
337 }
338 } catch (err) {
339 // Continue to next key
340 }
341 }
342
343 // Method 3: Try to hook into game's network requests
344 const originalFetch = window.fetch;
345 window.fetch = function(...args) {
346 return originalFetch.apply(this, args).then(response => {
347 const clonedResponse = response.clone();
348 clonedResponse.json().then(data => {
349 if (data && typeof data === 'object') {
350 if (data.level !== undefined) data.level = 999;
351 if (data.vx !== undefined) data.vx = 999999;
352 if (data.gems !== undefined) data.gems = 999999;
353 if (data.coins !== undefined) data.coins = 999999;
354 }
355 }).catch(() => {});
356 return response;
357 });
358 };
359
360 // Method 4: Try to modify WebSocket messages
361 const originalWebSocket = window.WebSocket;
362 window.WebSocket = function(...args) {
363 const ws = new originalWebSocket(...args);
364 const originalSend = ws.send;
365
366 ws.send = function(data) {
367 try {
368 if (typeof data === 'string') {
369 const parsed = JSON.parse(data);
370 if (hackState.resourcesHacked) {
371 if (parsed.level !== undefined) parsed.level = 999;
372 if (parsed.vx !== undefined) parsed.vx = 999999;
373 if (parsed.gems !== undefined) parsed.gems = 999999;
374 }
375 data = JSON.stringify(parsed);
376 }
377 } catch (e) {
378 // Not JSON, send as-is
379 }
380 return originalSend.call(this, data);
381 };
382
383 return ws;
384 };
385
386 console.log('[Veck.io Hack] Resource hack hooks installed');
387 } catch (e) {
388 console.error('[Veck.io Hack] Resource hack error:', e);
389 }
390 }
391
392 // Memory scanning for Unity objects
393 function scanForUnityObjects() {
394 console.log('[Veck.io Hack] Scanning for Unity objects...');
395
396 // Check for common Unity WebGL patterns
397 const possibleUnityObjects = [];
398
399 for (let key in window) {
400 if (key.includes('unity') || key.includes('Unity') || key.includes('game') || key.includes('Game')) {
401 possibleUnityObjects.push(key);
402 }
403 }
404
405 if (possibleUnityObjects.length > 0) {
406 console.log('[Veck.io Hack] Found potential Unity objects:', possibleUnityObjects);
407 }
408
409 // Continue scanning
410 setTimeout(scanForUnityObjects, 5000);
411 }
412
413 // Initialize everything
414 async function init() {
415 console.log('[Veck.io Hack] Starting initialization...');
416
417 await loadSettings();
418
419 // Wait for page to be ready
420 if (document.readyState === 'loading') {
421 document.addEventListener('DOMContentLoaded', () => {
422 setTimeout(init, 1000);
423 });
424 return;
425 }
426
427 createUI();
428 updateUI();
429 hookUnityGame();
430 injectMovementHacks();
431 scanForUnityObjects();
432
433 showNotification('HACKS LOADED', '#00ff00');
434 console.log('[Veck.io Hack] Initialization complete!');
435 }
436
437 // Start the hack
438 init();
439
440})();