Features

What is actually in the jar.

Pillow is a Fabric mod, not a launcher bolt-on. That single constraint is why the interface can be drawn by the game's own shader pipeline, why the config lives where you tell it to, and why nothing here needs a license server to be online for the client to open.

01 — Interface

Drawn in-engine, not overlaid.

The ClickGUI is not an external window and not an ImGui canvas parked on top of the frame. It is drawn by the game, inside the game's render graph, using 23 custom core shader programs: signed-distance rounded panels, outline and shadow programs, kawase bloom up/down passes, a liquid-glass pass, gradient rectangles and arcs.

  • Eight MSDF font atlases for text and icon glyphs — crisp at any GUI scale, no bitmap blur
  • Animated droplists, colour pickers with live gradient endpoints, and a drag-and-drop HUD editor with snapping
  • Programs register one key at a time: a shader that fails to compile removes that effect, not the interface
  • Everything is window-size aware down to a zero-size window, so a launcher resize cannot blank the UI

02 — Rotation engine

Aim that sits inside the tick.

Rotation is where clients give themselves away: a snap that arrives outside the tick it belongs to, a pitch that no hand would produce, a hit registered twice in the same server tick. Pillow resolves the target once per tick, interpolates inside it with acceleration curves, and clamps what it emits.

  • Tick-aligned target resolution with sub-tick interpolation between frames
  • Per-module FOV cone, smoothing factor, rotation-speed ceiling and jitter envelope
  • Priority stack: distance, health, armour, threat, friend list exclusions
  • Rotation state is restored on target switch instead of easing back from a wrong angle
rotation · per tick
target  = select(entities, priority, fov)
delta   = shortest_arc(yaw, target.yaw)
yaw    += clamp(delta, 0, speed * ease(t))
pitch   = lerp(pitch, target.pitch, smoothing)
emit(yaw, pitch)   // once per tick, never twice

03 — Signal discipline

Read-only by default.

A module that only reads cannot be caught by reading. Pillow tags every module with the hook it uses and defaults the send-path half to off, so a fresh install is an analysis tool.

Read-only

Nothing to sample

These modules subscribe to incoming packets and the entity list, then draw. No outbound packet is generated and no player state is written, so a server-side check has no signal to look at.

  • Player ESP
  • Storage ESP
  • Skeleton ESP
  • Name Tags
  • Chunk Finder
  • Ore Sim
  • Sound Locator
  • New Chunks
  • Coord Logger
  • Light Finder

client ← receive  ·  0 bytes sent

Send-path

Server-observable

These write player state or emit packets. They are the ones a competent anti-cheat is built to catch, they are marked in the GUI, and they are off in the default profile.

  • Full Flight
  • Packet Fly
  • Boost
  • Jetpack
  • No Fall
  • HitBox
  • Boat Phase
  • Chorus Exploit
  • Auto Jump Reset
  • Fast Place

client → send  ·  observable

04 — Runtime

Portable, and it tells you what it found.

Config resolution used to assume a hardcoded Windows directory, which quietly broke Linux, macOS and every sandboxed launcher. Pillow resolves its home in order and takes the first writable one, then logs the decision.

  • -Dpillow.home=<path> — explicit, always wins
  • PILLOW_HOME — environment variable
  • <gameDir>/pillow — then ~/.pillow — then the system temp directory
  • -Dpillow.safemode=true — boots with every module disabled, for when a config breaks the game
pillow.log
[Pillow] Minecraft 1.21.4 (era 1.21.4)
[Pillow] home  -> D:\instances\pvp\.minecraft\pillow
[Pillow] launcher -> prism (mmc-pack.json)
[Pillow] 23/23 core shaders registered
[Pillow] 94 modules · 61 on · safe mode off

05 — Configs

Profiles, per server, nothing phoning home.

Settings are plain files on your disk in a documented layout. Profiles are per-server, friends and panic bindings are global, and import/export is one keystroke. There is no account, no license check and no outbound connection the client makes on its own.

Per-server profiles

A profile per server address, applied on join. Anarchy settings never leak into the server where you play legit.

Panic key

One binding disables everything, restores your rotation and clears the HUD. It is a first-class feature, not a config edit.

Import and export

Configs are text. Copy them between machines, paste them in chat, diff them in git — the format is stable and documented.

1.0.0 · release · Minecraft 1.21.4

Sleep on it.

Two jars, a Fabric profile, and 94 modules that tell you whether they touch the wire.