Floods Gimkit game rooms with bots by reverse-engineering the live matchmaking protocol. Dynamically encodes session tokens via StegCloak steganography, connects over Blueboat WebSockets, and sustains each bot with heartbeats. Configurable bot count, names, and spawn speed via a real-time browser dashboard.
GimJector replicates Gimkit's official client join flow entirely in Node.js:
- Fetches the
/joinpage and extracts the session JID from a<meta>tag - Reverses and encodes the JID using StegCloak (AES-256-CTR + zero-width character steganography) — a unique token is generated per bot
- Posts to Gimkit's matchmaker API to receive a server URL and intent ID
- Opens a Blueboat WebSocket (Socket.IO EIO=3) per bot and sends a msgpack join packet
- Sustains each connection with a heartbeat ping every 25 seconds
- Node.js v18+
- npm
git clone https://github.com/yourname/gimjector
cd gimjector
npm install
node server.jsThen open http://localhost:3000 in your browser.
gimjector/
├── server.js # Node.js bridge server
├── package.json
├── network/
│ └── blueboat.js # Gimkit's original msgpack encoder
└── public/
└── index.html # Browser dashboard
- Start a Gimkit game and copy the join code
- Open the dashboard at
http://localhost:3000 - Enter the game code, a name prefix, bot count, and spawn delay
- Click Flood — bots will appear in the lobby in real time
- Click Stop to disconnect all bots instantly
| Field | Description | Default |
|---|---|---|
| Game Code | The 6-digit Gimkit join code | — |
| Name Prefix | Bots are named Prefix1, Prefix2… |
Bot |
| Bot Count | How many bots to spawn | 10 |
| Delay (ms) | Stagger between each spawn | 300 |
| Package | Purpose |
|---|---|
express |
Serves the browser dashboard |
ws |
WebSocket server (browser bridge) + client (Gimkit connection) |
node-fetch |
HTTP requests to Gimkit's API |
node-html-parser |
Parses the /join page to extract the JID |
stegcloak |
Encodes the JID into the clientType token Gimkit validates |
GimJector is a proof-of-concept for educational and research purposes. Use responsibly.