Veck.io Unlock All Weapons & Items

Unlocks all weapons and items in Veck.io

Size

17.4 KB

Version

1.1.1

Created

Jan 20, 2026

Updated

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