Docs
Modules
Every module, what it does and what it costs you.
Every module is off until you turn it on. This is what each one does, and — because it matters more than the feature list — what it costs you.
| Module | Does | Costs |
|---|---|---|
| Auto-Totem | Refills the offhand on a pop | A container interaction the server can see |
| Auto-Anchor | Charges and pops from one right click | Four inputs at machine timing |
| Auto-Crystal | Places and breaks crystals | Rotation and reach the server can measure |
| Hand Restock | Pulls swords, blocks and crystals back into hand | Same as auto-totem |
| Fingerprint Spoof | Brand, channels and pack replies read as vanilla | Nothing on the wire |
| Shape Recorder | Records your reach into the cursor table | Nothing — it is a local trainer |
Auto-Totem
Fires the moment the server reports the pop, not on a tick poll, so the refill starts in the same window the death animation is playing in.
Totem on open. Opening the inventory first selects a hotbar slot holding a totem, so you go in with one in each hand. Vanilla spends the offhand totem first and the main hand second — the second one is a life you do not have to be looking at the screen to keep.
That selection is not a container interaction. It changes which hotbar slot is selected,
which puts a single ServerboundSetCarriedItemPacket on the wire — the same packet, from
the same place, that a number key or a scroll wheel produces. If no hotbar slot holds a
totem, the inventory just opens normally.
The main-hand totem is strictly a spare. The offhand has first claim, because that is the one that saves you.
Auto-Anchor
One mode, instant, and it is honestly a macro. Right click with a respawn anchor in hand
and it makes the other four inputs for you:
swap to glowstone -> right click -> swap back -> right click
That is the entire module. It does not solve a position, track the block it placed, read the world or move your crosshair. Both clicks are handed to vanilla's own use path, so they land on whatever the client is already looking at — the anchor you just placed, because you have not turned away from it.
It takes crouch off you, and it has to. The server skips block interaction entirely while you are crouched with a full hand — that is how you place a block against a chest instead of opening it. Crouched, the charge click would place glowstone beside the anchor and the pop click would place a second anchor on top of it. That is the classic symptom of an anchor macro that "sometimes" misfires: it misfires whenever you were holding shift.
So sneak is forced off from the moment the macro arms, and both clicks wait on the server's view of your input rather than the client's. Afterwards the key is handed back as whatever it physically is — pressed again if you never let go, left up if you did. Sneak bound to a mouse button cannot be read back and comes up.
Hand Restock
Swords, totems, blocks and crystals, pulled back into the hand you keep them in. Accept lists are edited from an item picker that searches display names and ids together and ranks name-prefix matches first, so typing an exact id is neither required nor possible to get wrong.
Slots are considered in a fixed order, so a popped totem reaches the offhand first.
Fingerprint Spoof
Fabric never sends a mod list — that is a Forge thing. A server can fingerprint a Fabric client through three side channels, and Ghost closes all three.
| Leak | Vanilla behaviour | What Ghost does |
|---|---|---|
minecraft:brand | Sends "vanilla" once, during configuration | Replaces the payload with a configurable brand |
| Plugin channels | Sends nothing at all, ever | Drops every serverbound plugin message except the brand |
| Resource packs | Downloads over HTTP, reports status from three separate points | Performs the real download, discards it, replies with real timings |
The pack timings are the part worth dwelling on. Vanilla cannot send ACCEPTED,
DOWNLOADED and SUCCESSFULLY_LOADED back to back on the network thread — there is a tick
boundary before the first and a real HTTP download between the next two. Three statuses in
the same millisecond is a signature no vanilla client produces, and it is what most
spoofers emit. Here every reply is delayed by at least a tick and dispatched from the main
thread.
The download is also made for real, header for header, because a server that
cross-references its own web access log against the status packets catches any client that
reported DOWNLOADED without ever requesting the file.
Shape Recorder
Cursor movement needs a shape, and for a long time it had one: a single analytic ease, run identically for every swap. That is a pattern in exactly the way a fixed landing point inside a slot is a pattern — and it was the wrong shape. At a typical ease setting the curve has covered 44% of the distance a quarter of the way through the movement, where a real hand has covered 18%.
So the curve became a draw. The shipped table holds 512 movements measured from people reaching for targets, each normalised into the frame of its own reach so it can be replayed at any distance, in any direction, over any duration. A quarter of them overshoot the target and settle back onto it, which is a correction no analytic ease can express at any setting.
Recording your own. The shapes tab is a pointing task. Click the square to start, click the circle, and a new circle appears somewhere else. The path between one click and the next is one movement, from a hand that was genuinely at rest to a target it genuinely arrived on.
Positions are read off the mouse callback rather than once a frame, because a mouse polling at 1 kHz delivers several samples per frame and a reach sampled once a frame is smoother than the hand that made it. What goes first at that rate is the launch, which is the part the whole table exists to get right. The arena reports the sample rate it is actually seeing and refuses anything coarser than 12 ms.
Every recording is then scored against the same acceptance bounds the shipped corpus was, plus three more for the fact of recording in a game window rather than a lab. Rejections are counted by reason and shown under the arena — a recorder that silently drops nine movements in ten is indistinguishable from a broken one.
There is a reason to do this beyond it being your own hand. The corpus's fifth percentile is 223 screen pixels and an inventory reach is 60–360, so every shipped shape is an extrapolation toward the short end. A reach recorded in the arena lands in exactly the band that matters.