Veck.io Unlock All Weapons & Items

Unlocks all weapons and items in Veck.io

Size

17.4 KB

Version

1.1.3

Created

Mar 18, 2026

Updated

29 days ago

1// ==UserScript==
2// @name		Veck.io Unlock All Weapons & Items
3// @description		Unlocks all weapons and items in Veck.io
4// @version		1.1.3
5// @match		https://*.veck.io/*
6// @icon		https://veck.io/favicon/favicon.ico
7// @grant		GM.getValue
8// @grant		GM.setValue
9// @grant		GM.listValues
10// @grant		unsafeWindow
11// ==/UserScript==
12(function() {
13    'use strict';
14
15    console.log('[Veck.io Unlocker] Extension loaded - Unlocking ALL weapons and items!');
16
17    // Intercept localStorage to unlock all items
18    const originalSetItem = localStorage.setItem;
19    const originalGetItem = localStorage.getItem;
20
21    // Force unlock all items immediately
22    try {
23        localStorage.setItem('allItemsUnlocked', 'true');
24        localStorage.setItem('rainbowItemsUnlocked', 'true');
25        localStorage.setItem('level', '100');
26        localStorage.setItem('Level', '100');
27        localStorage.setItem('LEVEL', '100');
28        localStorage.setItem('playerLevel', '100');
29        localStorage.setItem('currentLevel', '100');
30        localStorage.setItem('userLevel', '100');
31        localStorage.setItem('xp', '999999999');
32        localStorage.setItem('XP', '999999999');
33        localStorage.setItem('exp', '999999999');
34        localStorage.setItem('EXP', '999999999');
35        localStorage.setItem('experience', '999999999');
36        localStorage.setItem('playerXP', '999999999');
37        console.log('[Veck.io Unlocker] ✓ All items unlocked immediately!');
38    } catch {
39        console.error('[Veck.io Unlocker] Error setting initial values:');
40    }
41
42    // Override localStorage.setItem to prevent game from locking items
43    localStorage.setItem = function(key, value) {
44        try {
45            // Force unlock flags to always be true
46            if (key === 'allItemsUnlocked' || key === 'rainbowItemsUnlocked') {
47                console.log(`[Veck.io Unlocker] Forcing ${key} to true`);
48                return originalSetItem.call(this, key, 'true');
49            }
50            
51            // Keep level at max
52            if (key === 'level' || key === 'Level' || key === 'LEVEL' || 
53                key === 'playerLevel' || key === 'currentLevel' || key === 'userLevel') {
54                const newLevel = parseInt(value) || 0;
55                if (newLevel < 100) {
56                    console.log(`[Veck.io Unlocker] Keeping ${key} at 100 (game tried to set ${value})`);
57                    return originalSetItem.call(this, key, '100');
58                }
59            }
60            
61            // Keep XP at max
62            if (key === 'xp' || key === 'XP' || key === 'exp' || key === 'EXP' || 
63                key === 'experience' || key === 'playerXP') {
64                const newXP = parseInt(value) || 0;
65                if (newXP < 999999999) {
66                    console.log(`[Veck.io Unlocker] Keeping ${key} at max (game tried to set ${value})`);
67                    return originalSetItem.call(this, key, '999999999');
68                }
69            }
70            
71            // Check if this is game data related to unlocks
72            if (key && typeof value === 'string') {
73                let data = value;
74                
75                // Try to parse as JSON
76                try {
77                    let parsed = JSON.parse(value);
78                    
79                    // Look for unlock-related data structures
80                    if (parsed && typeof parsed === 'object') {
81                        let modified = false;
82                        
83                        // Unlock weapons
84                        if (parsed.weapons || parsed.Weapons) {
85                            console.log('[Veck.io Unlocker] Found weapons data, unlocking all...');
86                            let weaponsKey = parsed.weapons ? 'weapons' : 'Weapons';
87                            if (Array.isArray(parsed[weaponsKey])) {
88                                parsed[weaponsKey] = parsed[weaponsKey].map(w => ({...w, unlocked: true, locked: false, owned: true}));
89                                modified = true;
90                            } else if (typeof parsed[weaponsKey] === 'object') {
91                                for (let wKey in parsed[weaponsKey]) {
92                                    parsed[weaponsKey][wKey].unlocked = true;
93                                    parsed[weaponsKey][wKey].locked = false;
94                                    parsed[weaponsKey][wKey].owned = true;
95                                }
96                                modified = true;
97                            }
98                        }
99                        
100                        // Unlock items
101                        if (parsed.items || parsed.Items) {
102                            console.log('[Veck.io Unlocker] Found items data, unlocking all...');
103                            let itemsKey = parsed.items ? 'items' : 'Items';
104                            if (Array.isArray(parsed[itemsKey])) {
105                                parsed[itemsKey] = parsed[itemsKey].map(i => ({...i, unlocked: true, locked: false, owned: true}));
106                                modified = true;
107                            } else if (typeof parsed[itemsKey] === 'object') {
108                                for (let iKey in parsed[itemsKey]) {
109                                    parsed[itemsKey][iKey].unlocked = true;
110                                    parsed[itemsKey][iKey].locked = false;
111                                    parsed[itemsKey][iKey].owned = true;
112                                }
113                                modified = true;
114                            }
115                        }
116                        
117                        // Unlock skins
118                        if (parsed.skins || parsed.Skins) {
119                            console.log('[Veck.io Unlocker] Found skins data, unlocking all...');
120                            let skinsKey = parsed.skins ? 'skins' : 'Skins';
121                            if (Array.isArray(parsed[skinsKey])) {
122                                parsed[skinsKey] = parsed[skinsKey].map(s => ({...s, unlocked: true, locked: false, owned: true}));
123                                modified = true;
124                            } else if (typeof parsed[skinsKey] === 'object') {
125                                for (let sKey in parsed[skinsKey]) {
126                                    parsed[skinsKey][sKey].unlocked = true;
127                                    parsed[skinsKey][sKey].locked = false;
128                                    parsed[skinsKey][sKey].owned = true;
129                                }
130                                modified = true;
131                            }
132                        }
133                        
134                        // Add unlimited currency
135                        if (parsed.coins !== undefined) {
136                            parsed.coins = 999999;
137                            modified = true;
138                        }
139                        if (parsed.money !== undefined) {
140                            parsed.money = 999999;
141                            modified = true;
142                        }
143                        if (parsed.currency !== undefined) {
144                            parsed.currency = 999999;
145                            modified = true;
146                        }
147                        if (parsed.credits !== undefined) {
148                            parsed.credits = 999999;
149                            modified = true;
150                        }
151                        
152                        if (modified) {
153                            data = JSON.stringify(parsed);
154                        }
155                    }
156                } catch {
157                    // Not JSON, continue with original value
158                }
159                
160                return originalSetItem.call(this, key, data);
161            }
162        } catch (error) {
163            console.error('[Veck.io Unlocker] Error intercepting setItem:', error);
164        }
165        
166        return originalSetItem.call(this, key, value);
167    };
168
169    // Override localStorage.getItem to return unlocked data
170    localStorage.getItem = function(key) {
171        // Force return unlocked values for specific keys
172        if (key === 'allItemsUnlocked' || key === 'rainbowItemsUnlocked') {
173            return 'true';
174        }
175        
176        if (key === 'level' || key === 'Level' || key === 'LEVEL' || 
177            key === 'playerLevel' || key === 'currentLevel' || key === 'userLevel') {
178            return '100';
179        }
180        
181        if (key === 'xp' || key === 'XP' || key === 'exp' || key === 'EXP' || 
182            key === 'experience' || key === 'playerXP') {
183            return '999999999';
184        }
185        
186        let value = originalGetItem.call(this, key);
187        
188        if (!value) return value;
189        
190        try {
191            let parsed = JSON.parse(value);
192            
193            if (parsed && typeof parsed === 'object') {
194                let modified = false;
195                
196                // Unlock weapons
197                if (parsed.weapons || parsed.Weapons) {
198                    let weaponsKey = parsed.weapons ? 'weapons' : 'Weapons';
199                    if (Array.isArray(parsed[weaponsKey])) {
200                        parsed[weaponsKey] = parsed[weaponsKey].map(w => ({...w, unlocked: true, locked: false, owned: true}));
201                        modified = true;
202                    } else if (typeof parsed[weaponsKey] === 'object') {
203                        for (let wKey in parsed[weaponsKey]) {
204                            parsed[weaponsKey][wKey].unlocked = true;
205                            parsed[weaponsKey][wKey].locked = false;
206                            parsed[weaponsKey][wKey].owned = true;
207                        }
208                        modified = true;
209                    }
210                }
211                
212                // Unlock items
213                if (parsed.items || parsed.Items) {
214                    let itemsKey = parsed.items ? 'items' : 'Items';
215                    if (Array.isArray(parsed[itemsKey])) {
216                        parsed[itemsKey] = parsed[itemsKey].map(i => ({...i, unlocked: true, locked: false, owned: true}));
217                        modified = true;
218                    } else if (typeof parsed[itemsKey] === 'object') {
219                        for (let iKey in parsed[itemsKey]) {
220                            parsed[itemsKey][iKey].unlocked = true;
221                            parsed[itemsKey][iKey].locked = false;
222                            parsed[itemsKey][iKey].owned = true;
223                        }
224                        modified = true;
225                    }
226                }
227                
228                // Unlock skins
229                if (parsed.skins || parsed.Skins) {
230                    let skinsKey = parsed.skins ? 'skins' : 'Skins';
231                    if (Array.isArray(parsed[skinsKey])) {
232                        parsed[skinsKey] = parsed[skinsKey].map(s => ({...s, unlocked: true, locked: false, owned: true}));
233                        modified = true;
234                    } else if (typeof parsed[skinsKey] === 'object') {
235                        for (let sKey in parsed[skinsKey]) {
236                            parsed[skinsKey][sKey].unlocked = true;
237                            parsed[skinsKey][sKey].locked = false;
238                            parsed[skinsKey][sKey].owned = true;
239                        }
240                        modified = true;
241                    }
242                }
243                
244                // Add unlimited currency
245                if (parsed.coins !== undefined) {
246                    parsed.coins = 999999;
247                    modified = true;
248                }
249                if (parsed.money !== undefined) {
250                    parsed.money = 999999;
251                    modified = true;
252                }
253                if (parsed.currency !== undefined) {
254                    parsed.currency = 999999;
255                    modified = true;
256                }
257                if (parsed.credits !== undefined) {
258                    parsed.credits = 999999;
259                    modified = true;
260                }
261                
262                if (modified) {
263                    return JSON.stringify(parsed);
264                }
265            }
266        } catch {
267            // Not JSON, return original
268        }
269        
270        return value;
271    };
272
273    // Intercept IndexedDB for Unity games
274    const originalIDBOpen = indexedDB.open;
275    indexedDB.open = function(...args) {
276        const request = originalIDBOpen.apply(this, args);
277        
278        request.addEventListener('success', function() {
279            console.log('[Veck.io Unlocker] IndexedDB opened:', args[0]);
280            
281            const db = request.result;
282            
283            // Try to read and modify game data
284            try {
285                const storeNames = Array.from(db.objectStoreNames);
286                console.log('[Veck.io Unlocker] Object stores:', storeNames);
287                
288                storeNames.forEach(storeName => {
289                    try {
290                        const transaction = db.transaction(storeName, 'readwrite');
291                        const store = transaction.objectStore(storeName);
292                        const getAllRequest = store.getAll();
293                        
294                        getAllRequest.onsuccess = function() {
295                            const data = getAllRequest.result;
296                            console.log(`[Veck.io Unlocker] Data from ${storeName}:`, data);
297                            
298                            // Modify and put back
299                            if (Array.isArray(data)) {
300                                data.forEach((item, index) => {
301                                    if (item && typeof item === 'object') {
302                                        if (item.unlocked !== undefined) item.unlocked = true;
303                                        if (item.locked !== undefined) item.locked = false;
304                                        if (item.owned !== undefined) item.owned = true;
305                                        
306                                        try {
307                                            store.put(item, index);
308                                        } catch (e) {
309                                            console.log('[Veck.io Unlocker] Could not modify item:', e);
310                                        }
311                                    }
312                                });
313                            }
314                        };
315                    } catch (e) {
316                        console.log('[Veck.io Unlocker] Error accessing store:', e);
317                    }
318                });
319            } catch (e) {
320                console.error('[Veck.io Unlocker] Error modifying IndexedDB:', e);
321            }
322        });
323        
324        return request;
325    };
326
327    // Monitor for Unity game objects and window properties
328    let checkInterval = setInterval(() => {
329        // Check for Unity instance
330        if (typeof unsafeWindow.unityInstance !== 'undefined') {
331            console.log('[Veck.io Unlocker] Unity instance found!');
332            
333            // Try to send messages to Unity
334            try {
335                unsafeWindow.unityInstance.SendMessage('GameManager', 'UnlockAll', '');
336            } catch (e) {
337                console.log('[Veck.io Unlocker] Could not send Unity message:', e);
338            }
339        }
340        
341        // Check for game objects in window
342        for (let key in unsafeWindow) {
343            if (key.toLowerCase().includes('game') || key.toLowerCase().includes('player')) {
344                try {
345                    let obj = unsafeWindow[key];
346                    if (obj && typeof obj === 'object') {
347                        // Try to unlock items
348                        if (obj.weapons) {
349                            console.log('[Veck.io Unlocker] Found weapons in', key);
350                            if (Array.isArray(obj.weapons)) {
351                                obj.weapons.forEach(w => {
352                                    if (w) {
353                                        w.unlocked = true;
354                                        w.locked = false;
355                                        w.owned = true;
356                                    }
357                                });
358                            }
359                        }
360                        if (obj.items) {
361                            console.log('[Veck.io Unlocker] Found items in', key);
362                            if (Array.isArray(obj.items)) {
363                                obj.items.forEach(i => {
364                                    if (i) {
365                                        i.unlocked = true;
366                                        i.locked = false;
367                                        i.owned = true;
368                                    }
369                                });
370                            }
371                        }
372                    }
373                } catch {
374                    // Skip
375                }
376            }
377        }
378    }, 2000);
379
380    // Stop checking after 30 seconds
381    setTimeout(() => {
382        clearInterval(checkInterval);
383        console.log('[Veck.io Unlocker] Stopped monitoring for game objects');
384    }, 30000);
385
386    console.log('[Veck.io Unlocker] ✓ All hooks installed!');
387    console.log('[Veck.io Unlocker] ✓ All weapons unlocked!');
388    console.log('[Veck.io Unlocker] ✓ All items unlocked!');
389    console.log('[Veck.io Unlocker] ✓ Rainbow items unlocked!');
390    console.log('[Veck.io Unlocker] ✓ Overpowered weapons unlocked!');
391    console.log('[Veck.io Unlocker] ✓ Level set to 100!');
392    console.log('[Veck.io Unlocker] ✓ XP set to maximum!');
393})();
Veck.io Unlock All Weapons & Items | Robomonkey