Size
20.0 KB
Version
1.0.1
Created
Jan 20, 2026
Updated
about 2 months ago
1// ==UserScript==
2// @name Veck.io Level 100 & Rainbow Items Hack
3// @description Unlock level 100 and all rainbow items in veck.io
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// @grant GM.deleteValue
10// ==/UserScript==
11(function() {
12 'use strict';
13
14 console.log('[Veck.io Hack] Extension loaded - Level 100 & Rainbow Items Hack');
15
16 // Debounce function to prevent excessive calls
17 function debounce(func, wait) {
18 let timeout;
19 return function executedFunction(...args) {
20 const later = () => {
21 clearTimeout(timeout);
22 func(...args);
23 };
24 clearTimeout(timeout);
25 timeout = setTimeout(later, wait);
26 };
27 }
28
29 // Function to inject level 100 hack
30 function injectLevelHack() {
31 try {
32 // Hook into localStorage setItem to intercept level data
33 const originalSetItem = localStorage.setItem;
34 localStorage.setItem = function(key, value) {
35 // Intercept level-related keys
36 if (key && (key.toLowerCase().includes('level') || key.toLowerCase().includes('xp') || key.toLowerCase().includes('exp'))) {
37 console.log('[Veck.io Hack] Intercepted level data:', key, value);
38 // Set to level 100
39 if (key.toLowerCase().includes('level')) {
40 value = '100';
41 console.log('[Veck.io Hack] Level set to 100');
42 }
43 // Set XP to maximum
44 if (key.toLowerCase().includes('xp') || key.toLowerCase().includes('exp')) {
45 value = '999999999';
46 console.log('[Veck.io Hack] XP set to maximum');
47 }
48 }
49 return originalSetItem.apply(this, arguments);
50 };
51
52 // Hook into localStorage getItem to return hacked values
53 const originalGetItem = localStorage.getItem;
54 localStorage.getItem = function(key) {
55 const value = originalGetItem.apply(this, arguments);
56
57 if (key && key.toLowerCase().includes('level')) {
58 console.log('[Veck.io Hack] Level request intercepted, returning 100');
59 return '100';
60 }
61 if (key && (key.toLowerCase().includes('xp') || key.toLowerCase().includes('exp'))) {
62 console.log('[Veck.io Hack] XP request intercepted, returning max');
63 return '999999999';
64 }
65
66 return value;
67 };
68
69 console.log('[Veck.io Hack] Level hack injected successfully');
70 } catch (error) {
71 console.error('[Veck.io Hack] Error injecting level hack:', error);
72 }
73 }
74
75 // Function to inject rainbow items hack
76 function injectRainbowItemsHack() {
77 try {
78 // Hook into localStorage for items/inventory data
79 const originalSetItem = localStorage.setItem;
80 const originalGetItem = localStorage.getItem;
81
82 // Override setItem to unlock all items
83 const newSetItem = function(key, value) {
84 if (key && (key.toLowerCase().includes('item') ||
85 key.toLowerCase().includes('inventory') ||
86 key.toLowerCase().includes('unlock') ||
87 key.toLowerCase().includes('skin') ||
88 key.toLowerCase().includes('weapon') ||
89 key.toLowerCase().includes('cosmetic'))) {
90
91 console.log('[Veck.io Hack] Intercepted item data:', key);
92
93 try {
94 // Try to parse as JSON and unlock all items
95 let itemData = JSON.parse(value);
96 if (Array.isArray(itemData)) {
97 // If it's an array, mark all as unlocked
98 itemData = itemData.map(item => {
99 if (typeof item === 'object') {
100 return { ...item, unlocked: true, owned: true, rainbow: true };
101 }
102 return item;
103 });
104 value = JSON.stringify(itemData);
105 console.log('[Veck.io Hack] All items unlocked (array format)');
106 } else if (typeof itemData === 'object') {
107 // If it's an object, unlock all properties
108 Object.keys(itemData).forEach(itemKey => {
109 if (typeof itemData[itemKey] === 'object') {
110 itemData[itemKey].unlocked = true;
111 itemData[itemKey].owned = true;
112 itemData[itemKey].rainbow = true;
113 } else if (typeof itemData[itemKey] === 'boolean') {
114 itemData[itemKey] = true;
115 }
116 });
117 value = JSON.stringify(itemData);
118 console.log('[Veck.io Hack] All items unlocked (object format)');
119 }
120 } catch (e) {
121 // If not JSON, try to set to unlocked state
122 if (value === 'false' || value === '0') {
123 value = 'true';
124 console.log('[Veck.io Hack] Item unlocked (boolean format)');
125 }
126 }
127 }
128 return originalSetItem.call(this, key, value);
129 };
130
131 // Override getItem to return unlocked items
132 const newGetItem = function(key) {
133 const value = originalGetItem.call(this, key);
134
135 if (key && (key.toLowerCase().includes('item') ||
136 key.toLowerCase().includes('inventory') ||
137 key.toLowerCase().includes('unlock') ||
138 key.toLowerCase().includes('skin') ||
139 key.toLowerCase().includes('weapon') ||
140 key.toLowerCase().includes('cosmetic'))) {
141
142 try {
143 let itemData = JSON.parse(value);
144 if (Array.isArray(itemData)) {
145 itemData = itemData.map(item => {
146 if (typeof item === 'object') {
147 return { ...item, unlocked: true, owned: true, rainbow: true };
148 }
149 return item;
150 });
151 console.log('[Veck.io Hack] Returning unlocked items (array)');
152 return JSON.stringify(itemData);
153 } else if (typeof itemData === 'object') {
154 Object.keys(itemData).forEach(itemKey => {
155 if (typeof itemData[itemKey] === 'object') {
156 itemData[itemKey].unlocked = true;
157 itemData[itemKey].owned = true;
158 itemData[itemKey].rainbow = true;
159 } else if (typeof itemData[itemKey] === 'boolean') {
160 itemData[itemKey] = true;
161 }
162 });
163 console.log('[Veck.io Hack] Returning unlocked items (object)');
164 return JSON.stringify(itemData);
165 }
166 } catch (e) {
167 // If not JSON and it's a lock check, return unlocked
168 if (value === 'false' || value === '0') {
169 console.log('[Veck.io Hack] Returning unlocked state');
170 return 'true';
171 }
172 }
173 }
174
175 return value;
176 };
177
178 // Apply the hooks
179 localStorage.setItem = newSetItem;
180 localStorage.getItem = newGetItem;
181
182 console.log('[Veck.io Hack] Rainbow items hack injected successfully');
183 } catch (error) {
184 console.error('[Veck.io Hack] Error injecting rainbow items hack:', error);
185 }
186 }
187
188 // Function to hook into Unity WebGL memory
189 function hookUnityMemory() {
190 try {
191 // Hook into WebAssembly instantiation to intercept Unity memory
192 const originalInstantiate = WebAssembly.instantiate;
193 WebAssembly.instantiate = async function(...args) {
194 console.log('[Veck.io Hack] WebAssembly instantiation detected');
195 const result = await originalInstantiate.apply(this, args);
196
197 // Try to access Unity memory after instantiation
198 setTimeout(() => {
199 try {
200 // Look for Unity instance in window
201 const unityKeys = Object.keys(window).filter(k =>
202 k.toLowerCase().includes('unity') ||
203 k.toLowerCase().includes('game') ||
204 k.toLowerCase().includes('module')
205 );
206
207 if (unityKeys.length > 0) {
208 console.log('[Veck.io Hack] Found Unity-related keys:', unityKeys);
209 unityKeys.forEach(key => {
210 const obj = window[key];
211 if (obj && typeof obj === 'object') {
212 // Try to find and modify player data
213 if (obj.SendMessage) {
214 console.log('[Veck.io Hack] Found Unity SendMessage function');
215 // Send messages to unlock items and set level
216 try {
217 obj.SendMessage('Player', 'SetLevel', 100);
218 obj.SendMessage('Player', 'UnlockAllItems');
219 obj.SendMessage('Inventory', 'UnlockRainbowItems');
220 console.log('[Veck.io Hack] Sent Unity messages to unlock content');
221 } catch (e) {
222 console.log('[Veck.io Hack] Unity message sending failed (expected):', e.message);
223 }
224 }
225 }
226 });
227 }
228 } catch (e) {
229 console.log('[Veck.io Hack] Unity memory hook attempt:', e.message);
230 }
231 }, 2000);
232
233 return result;
234 };
235
236 console.log('[Veck.io Hack] Unity memory hook installed');
237 } catch (error) {
238 console.error('[Veck.io Hack] Error hooking Unity memory:', error);
239 }
240 }
241
242 // Function to create hack control panel
243 function createHackPanel() {
244 const panel = document.createElement('div');
245 panel.id = 'veck-hack-panel';
246 panel.innerHTML = `
247 <div style="position: fixed; top: 10px; right: 10px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 15px; border-radius: 10px; z-index: 999999; font-family: Arial, sans-serif; box-shadow: 0 4px 15px rgba(0,0,0,0.3); min-width: 250px;">
248 <div style="font-weight: bold; font-size: 16px; margin-bottom: 10px; text-align: center; border-bottom: 2px solid rgba(255,255,255,0.3); padding-bottom: 8px;">
249 🎮 Veck.io Hack Menu
250 </div>
251 <div style="margin: 10px 0; font-size: 13px;">
252 <div style="background: rgba(255,255,255,0.2); padding: 8px; border-radius: 5px; margin-bottom: 8px;">
253 ⭐ Level: <span style="font-weight: bold; color: #ffd700;">100</span>
254 </div>
255 <div style="background: rgba(255,255,255,0.2); padding: 8px; border-radius: 5px; margin-bottom: 8px;">
256 🌈 Rainbow Items: <span style="font-weight: bold; color: #00ff00;">UNLOCKED</span>
257 </div>
258 </div>
259 <button id="apply-hacks-btn" style="width: 100%; padding: 10px; background: #00ff00; color: #000; border: none; border-radius: 5px; font-weight: bold; cursor: pointer; font-size: 14px; margin-top: 5px; transition: all 0.3s;">
260 ✓ Apply Hacks
261 </button>
262 <button id="force-refresh-btn" style="width: 100%; padding: 10px; background: #ff9500; color: #fff; border: none; border-radius: 5px; font-weight: bold; cursor: pointer; font-size: 14px; margin-top: 5px; transition: all 0.3s;">
263 🔄 Force Refresh
264 </button>
265 <div style="margin-top: 10px; font-size: 11px; text-align: center; opacity: 0.8;">
266 Hacks Active ✓
267 </div>
268 </div>
269 `;
270
271 document.body.appendChild(panel);
272
273 // Add button hover effects
274 const applyBtn = document.getElementById('apply-hacks-btn');
275 const refreshBtn = document.getElementById('force-refresh-btn');
276
277 applyBtn.addEventListener('mouseenter', () => {
278 applyBtn.style.background = '#00cc00';
279 applyBtn.style.transform = 'scale(1.05)';
280 });
281 applyBtn.addEventListener('mouseleave', () => {
282 applyBtn.style.background = '#00ff00';
283 applyBtn.style.transform = 'scale(1)';
284 });
285
286 refreshBtn.addEventListener('mouseenter', () => {
287 refreshBtn.style.background = '#ff7700';
288 refreshBtn.style.transform = 'scale(1.05)';
289 });
290 refreshBtn.addEventListener('mouseleave', () => {
291 refreshBtn.style.background = '#ff9500';
292 refreshBtn.style.transform = 'scale(1)';
293 });
294
295 // Apply hacks button
296 applyBtn.addEventListener('click', () => {
297 console.log('[Veck.io Hack] Manually applying hacks...');
298 applyAllHacks();
299 applyBtn.textContent = '✓ Hacks Applied!';
300 setTimeout(() => {
301 applyBtn.textContent = '✓ Apply Hacks';
302 }, 2000);
303 });
304
305 // Force refresh button
306 refreshBtn.addEventListener('click', () => {
307 console.log('[Veck.io Hack] Force refreshing game data...');
308 forceRefreshGameData();
309 refreshBtn.textContent = '✓ Refreshed!';
310 setTimeout(() => {
311 refreshBtn.textContent = '🔄 Force Refresh';
312 }, 2000);
313 });
314
315 console.log('[Veck.io Hack] Control panel created');
316 }
317
318 // Function to apply all hacks to existing localStorage data
319 function applyAllHacks() {
320 try {
321 // Set level to 100 in all possible keys
322 const levelKeys = ['level', 'playerLevel', 'userLevel', 'currentLevel', 'Level', 'LEVEL'];
323 levelKeys.forEach(key => {
324 localStorage.setItem(key, '100');
325 });
326
327 // Set XP to maximum
328 const xpKeys = ['xp', 'exp', 'experience', 'playerXP', 'XP', 'EXP'];
329 xpKeys.forEach(key => {
330 localStorage.setItem(key, '999999999');
331 });
332
333 // Unlock all items
334 const itemKeys = ['items', 'inventory', 'unlockedItems', 'ownedItems', 'skins', 'weapons', 'cosmetics'];
335 itemKeys.forEach(key => {
336 const existingData = localStorage.getItem(key);
337 if (existingData) {
338 try {
339 const parsed = JSON.parse(existingData);
340 if (Array.isArray(parsed)) {
341 const unlocked = parsed.map(item => ({
342 ...item,
343 unlocked: true,
344 owned: true,
345 rainbow: true
346 }));
347 localStorage.setItem(key, JSON.stringify(unlocked));
348 }
349 } catch (e) {
350 // Not JSON, skip
351 }
352 }
353 });
354
355 // Set rainbow items flag
356 localStorage.setItem('rainbowItemsUnlocked', 'true');
357 localStorage.setItem('allItemsUnlocked', 'true');
358
359 console.log('[Veck.io Hack] All hacks applied to localStorage');
360 } catch (error) {
361 console.error('[Veck.io Hack] Error applying hacks:', error);
362 }
363 }
364
365 // Function to force refresh game data
366 function forceRefreshGameData() {
367 try {
368 // Trigger storage event to force game to reload data
369 window.dispatchEvent(new StorageEvent('storage', {
370 key: 'level',
371 newValue: '100',
372 url: window.location.href
373 }));
374
375 // Try to find and trigger game refresh functions
376 Object.keys(window).forEach(key => {
377 const obj = window[key];
378 if (obj && typeof obj === 'object') {
379 if (typeof obj.refresh === 'function') {
380 try {
381 obj.refresh();
382 console.log('[Veck.io Hack] Called refresh on:', key);
383 } catch (e) {}
384 }
385 if (typeof obj.reload === 'function') {
386 try {
387 obj.reload();
388 console.log('[Veck.io Hack] Called reload on:', key);
389 } catch (e) {}
390 }
391 if (typeof obj.update === 'function') {
392 try {
393 obj.update();
394 console.log('[Veck.io Hack] Called update on:', key);
395 } catch (e) {}
396 }
397 }
398 });
399
400 console.log('[Veck.io Hack] Game data refresh triggered');
401 } catch (error) {
402 console.error('[Veck.io Hack] Error refreshing game data:', error);
403 }
404 }
405
406 // Initialize all hacks
407 function init() {
408 console.log('[Veck.io Hack] Initializing hacks...');
409
410 // Inject all hacks immediately
411 injectLevelHack();
412 injectRainbowItemsHack();
413 hookUnityMemory();
414
415 // Apply hacks to existing data
416 applyAllHacks();
417
418 // Wait for body to be ready, then create panel
419 if (document.body) {
420 createHackPanel();
421 } else {
422 const observer = new MutationObserver((mutations, obs) => {
423 if (document.body) {
424 createHackPanel();
425 obs.disconnect();
426 }
427 });
428 observer.observe(document.documentElement, { childList: true, subtree: true });
429 }
430
431 // Monitor for game state changes
432 const debouncedApplyHacks = debounce(applyAllHacks, 1000);
433
434 // Watch for localStorage changes
435 window.addEventListener('storage', debouncedApplyHacks);
436
437 // Periodically reapply hacks
438 setInterval(() => {
439 applyAllHacks();
440 }, 5000);
441
442 console.log('[Veck.io Hack] All hacks initialized successfully!');
443 }
444
445 // Start the hack when page loads
446 if (document.readyState === 'loading') {
447 document.addEventListener('DOMContentLoaded', init);
448 } else {
449 init();
450 }
451
452})();