Gimkit Jump Enhancer

Enhanced jumping capabilities for Gimkit games

Size

6.3 KB

Version

2.0.1

Created

Mar 6, 2026

Updated

15 days ago

1// ==UserScript==
2// @name		Gimkit Jump Enhancer
3// @description		Enhanced jumping capabilities for Gimkit games
4// @version		2.0.1
5// @match		https://*.gimkit.com/*
6// @icon		https://www.gimkit.com/favicon.png
7// @namespace		http://tampermonkey.net/
8// @author		noob 292
9// @downloadurl		https://update.greasyfork.org/scripts/431771/Unlimited%20Jump%20Hack.user.js
10// @updateurl		https://update.greasyfork.org/scripts/431771/Unlimited%20Jump%20Hack.meta.js
11// ==/UserScript==
12(function() {
13    'use strict';
14
15    console.log('Gimkit Jump Enhancer loaded');
16
17    // Function to intercept and modify game state
18    function enableUnlimitedJumps() {
19        // Hook into keyboard events
20        const originalAddEventListener = EventTarget.prototype.addEventListener;
21        
22        EventTarget.prototype.addEventListener = function(type, listener, options) {
23            if (type === 'keydown' || type === 'keyup') {
24                const wrappedListener = function(event) {
25                    // Spacebar key
26                    if (event.code === 'Space' || event.keyCode === 32) {
27                        console.log('Jump key detected');
28                        
29                        // Try to find and modify jump-related game state
30                        try {
31                            // Look for React Fiber nodes that might contain game state
32                            const findReactState = (element) => {
33                                for (let key in element) {
34                                    if (key.startsWith('__reactFiber') || key.startsWith('__reactProps')) {
35                                        return element[key];
36                                    }
37                                }
38                                return null;
39                            };
40
41                            // Search for game canvas or container
42                            const gameElements = document.querySelectorAll('canvas, [class*="game"], [class*="player"]');
43                            gameElements.forEach(el => {
44                                const fiber = findReactState(el);
45                                if (fiber) {
46                                    console.log('Found React element with potential game state');
47                                }
48                            });
49                        } catch (e) {
50                            console.error('Error modifying game state:', e);
51                        }
52                    }
53                    
54                    return listener.call(this, event);
55                };
56                
57                return originalAddEventListener.call(this, type, wrappedListener, options);
58            }
59            
60            return originalAddEventListener.call(this, type, listener, options);
61        };
62    }
63
64    // Function to patch WebSocket for game state manipulation
65    function patchWebSocket() {
66        const originalWebSocket = window.WebSocket;
67        
68        window.WebSocket = function(url, protocols) {
69            const ws = new originalWebSocket(url, protocols);
70            
71            const originalSend = ws.send;
72            ws.send = function(data) {
73                try {
74                    // Try to parse and modify game messages
75                    if (typeof data === 'string') {
76                        const parsed = JSON.parse(data);
77                        
78                        // Look for jump-related messages
79                        if (parsed.type && (parsed.type.includes('jump') || parsed.type.includes('move'))) {
80                            console.log('Game action detected:', parsed.type);
81                            // Modify jump count or restrictions
82                            if (parsed.jumpCount !== undefined) {
83                                parsed.jumpCount = 0;
84                                console.log('Modified jump count');
85                            }
86                            if (parsed.canJump !== undefined) {
87                                parsed.canJump = true;
88                                console.log('Enabled jump capability');
89                            }
90                            
91                            return originalSend.call(this, JSON.stringify(parsed));
92                        }
93                    }
94                } catch (e) {
95                    // If parsing fails, send original data
96                }
97                
98                return originalSend.call(this, data);
99            };
100            
101            return ws;
102        };
103        
104        console.log('WebSocket patched for game state manipulation');
105    }
106
107    // Initialize the hack
108    function init() {
109        console.log('Initializing Gimkit Jump Enhancer...');
110        
111        // Enable unlimited jumps
112        enableUnlimitedJumps();
113        
114        // Patch WebSocket
115        patchWebSocket();
116        
117        // Add visual indicator
118        const indicator = document.createElement('div');
119        indicator.id = 'jump-hack-indicator';
120        indicator.textContent = '∞ Jumps Active';
121        indicator.style.cssText = `
122            position: fixed;
123            top: 10px;
124            right: 10px;
125            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
126            color: white;
127            padding: 10px 15px;
128            border-radius: 8px;
129            font-family: Arial, sans-serif;
130            font-size: 14px;
131            font-weight: bold;
132            z-index: 999999;
133            box-shadow: 0 4px 6px rgba(0,0,0,0.3);
134            cursor: pointer;
135            transition: all 0.3s ease;
136        `;
137        
138        indicator.addEventListener('mouseenter', () => {
139            indicator.style.transform = 'scale(1.05)';
140        });
141        
142        indicator.addEventListener('mouseleave', () => {
143            indicator.style.transform = 'scale(1)';
144        });
145        
146        // Wait for body to be ready
147        if (document.body) {
148            document.body.appendChild(indicator);
149        } else {
150            document.addEventListener('DOMContentLoaded', () => {
151                document.body.appendChild(indicator);
152            });
153        }
154        
155        console.log('Gimkit Jump Enhancer initialized successfully');
156    }
157
158    // Start when page loads
159    if (document.readyState === 'loading') {
160        document.addEventListener('DOMContentLoaded', init);
161    } else {
162        init();
163    }
164})();