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})();