FAQ

Straight answers, including the uncomfortable ones.

Nobody can promise you will not be banned, and a client that promises it is selling you something. What can be stated precisely is which modules touch the network and which ones cannot — so that is what this page does.

Does this work on the server I play on?

Pillow is a client-side Fabric mod, so it loads on any 1.21.4 server that lets you join with Fabric. What you should decide is which half of it you run. Read-only modules generate no outbound packets at all. Send-path modules are the ones anti-cheat systems are built to detect, and they are off in the default profile.

Will I get banned?

Nobody can promise you that, and any client that does is lying. What we can tell you is exactly which modules touch the wire, and the interface marks every one of them. Rotations are tick-aligned with human-plausible bounds. If you toggle flight on a server with a competent anti-cheat, you will be caught — that is the module, not the client.

Does it work with Lunar, Badlion or Feather?

Lunar: only through its own Fabric add-on path, on a patched host — partial. Feather: the mechanism is undocumented and unverified. Badlion: no, it is a closed client with its own mod API and cannot load Fabric mods at all. Vanilla, Prism, MultiMC, ATLauncher, Modrinth and CurseForge all work normally.

Why is Fabric API required? It looks optional.

Because the source imports zero Fabric API classes, it compiles fine without it — and then fails at runtime in a way that looks like a packaging bug. Without Fabric API the client's built-in resource pack is never registered, so all 23 shaders and all 8 font atlases fail to load. Keep it installed.

Where does it store my configs?

In order: the -Dpillow.home system property, the PILLOW_HOME environment variable, <gameDir>/pillow, ~/.pillow, then the system temp directory. The first writable location wins, so it works on Windows, Linux, macOS and inside sandboxed launchers.

The game started but the interface is blank. What happened?

That is the shader pipeline, and it is almost always a resource reload issue. Check the log for "could not be registered" — a shader that failed to register degrades that one effect instead of the whole UI. If every effect is missing, your Fabric API is missing or the wrong version for 1.21.4.

Is there a version for 1.21.5 or 1.20?

No. One jar, one version: 1.21.4. Multi-version builds are how clients end up shipping four broken renderers at once. When the target moves, the whole client moves.

How much does it cost?

Pillow is free to download and use. No key system, no HWID lock, no telemetry, no license server that can go down and take your client with it.

Troubleshooting

When it does not look right.

Minecraft mods fail in ways that point somewhere useless. These are the four that actually happen, and the log line that identifies each one.

Launch runs, interface is blank

The client's resource pack was never registered, so every shader and font failed to load. Almost always a missing or wrong Fabric API build. Search the log for could not be registered — one line per effect that gave up.

One effect is missing, the rest works

Working as intended. Shader programs register individually, so a single broken program degrades to one missing effect instead of a blank UI. The failing one is named in the log.

Settings will not save

None of the config locations were writable. Set -Dpillow.home to a directory you own in the launcher's JVM arguments and restart — the log prints which path it chose and why.

The game crashes on startup after a bad config

Force safe mode: add -Dpillow.safemode=true to the JVM arguments. Every module boots disabled, the interface still opens, and you can repair the profile from inside the game instead of hunting for the file.

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.