Minecraft 1.21.11 · Fabric · late-injection

Run deep.
water.wtf

A utility client that injects into a running game, runs its own GUI and visuals, and can move every one of them to a capture-proof overlay.

120+
Modules
4
GUI layouts
8
Themes
Rust
Injector
Built for the deep end

Everything on the bench, nothing on your stream

water.wtf attaches to a live JVM through a Rust loader, rewrites the classes it needs in place, and draws its own interface over the game — or beside it, where a capture can't follow.

Late injection

No mods folder, no launcher flags. A Rust loader attaches via JVMTI and redefines loaded classes at runtime, so the client appears in a game that's already open.

PulseUI

A slinky, full-screen studio GUI with live themes, a module reef, in-card settings, configs, friends and keybinds. Switch between four layouts on a key.

Streamer mode

Moves the whole GUI and every visual into a separate window flagged out of screen capture. Your stream shows a clean game; you see everything.

120+ modules

Combat, CPVP, movement, render and utility — Auto Crystal, Velocity, ESP, finders, HUD and the anchor/cart toolkit, each with real, tunable settings.

Configs & sharing

Named profiles of your whole setup, offline share codes to paste anywhere, a friends list and per-module keybinds — all saved locally and encoded on disk.

Fast & quiet

Native renderer, MSDF fonts and a tick-aligned packet queue. Module and setting names are cloaked in memory so string scanners come up empty.

The reef

Pick a category, read the tide

A slice of what ships. Every module expands in-client to real settings — sliders, toggles, dropdowns and keybinds.

Streamer mode

An overlay the capture can't see

Flip one toggle and the client's GUI, HUD and visuals leave the game window for a transparent, always-on-top overlay marked WDA_EXCLUDEFROMCAPTURE. OBS, Discord and screen-share record vanilla.

Water Streamer Overlay Excluded from capture
  • Mirrors the full client — PulseUI, HUD, ESP and world visuals — to its own window.
  • Tracks the Minecraft window's position and size, pinned on top and click-through.
  • Best-effort capture exclusion — if your Windows can't apply it, the overlay still shows.
  • Shares the game's GL context, so there's no second render of the world.
Get started

Three steps to the water

The injector is a self-contained Rust app with an ocean-themed UI. Point it at a running game and go.

Launch Minecraft

Start the game normally — any 1.21.11 Fabric instance. The client attaches to it live; nothing goes in your mods folder.

Run the injector

Open the injector, pick the javaw process from the list, and hit Inject. It loads the native DLL and streams the loader log as it hooks.

Open PulseUI

Press the menu key in-game, toggle modules with a left-click, bind them, and enable StreamerMode when you're live.

Windows · build 1.0.0 · loader + injector
Backend checklist

12 steps for the web side

The site and any account, config-sync or web services around the client follow the same rules. A working checklist for keeping the server side watertight.

01

Keep API keys on the server

Never ship secret keys in frontend JS or HTML. Store them in backend environment variables, or visitors can read them straight out of the page.

02

Scope data to its owner

A logged-in user sees only their own orders and account. User A must not reach user B's record by editing an ID in the URL — that's access control.

03

Force HTTPS everywhere

Serve over HTTPS, not HTTP. Encrypting the browser-to-server link makes it far harder to intercept sensitive traffic.

04

Use safe database queries

Guard against SQL injection like ' OR 1=1 --. Use parameterized queries and prepared statements, never string-concatenated SQL.

05

Rate-limit login attempts

Stop password guessing. Cap attempts per account and IP, add delays, and apply temporary lockouts after repeated failures.

06

Expire reset links

Password-reset tokens are random, single-use, short-lived, and validated server-side before anything changes.

07

Restrict file uploads

Allow specific types only, cap sizes, validate the actual contents, and store uploads outside any executable directory.

08

Verify permissions server-side

Visiting /admin doesn't make someone an admin. Check permissions on the server for every protected action.

09

Update vulnerable packages

Dependencies carry known CVEs. Patch outdated or vulnerable libraries — and test the changes before they ship.

10

Replace exposed secrets

Committed a key to GitHub? Deleting the line isn't enough — rotate or revoke it now, and check history and deploy logs for copies.

11

Turn off debug mode

Production debug output can leak credentials, API keys, internal paths, stack traces and config. Never expose it to the public.

12

Review your Git history

Scan past commits for leaked credentials and vulnerable code. Fix the history and revoke what leaked, not just the latest file.