Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Tags
Creators
Details
Your screenshot is a search query
Several things in a Minecraft screenshot are derived from where you are standing, and every one of them can be run backwards. Block rotations. The way grass sits in its block. The clouds. The bedrock. The numbers on F3. That is how bases get found.
Install it and stop thinking about it. What you see is an ordinary world that happens to correspond to nowhere.

The one most people have not heard of
Vanilla picks the rotation of a stone block from a hash of its coordinates:
long l = (x * 3129871) ^ (z * 116129781L) ^ y;
l = l * l * 42317861L + l * 11L;
return l >> 16;
There is no world seed in that. The block at a given coordinate wears the same rotation in every world that has ever existed, so a screenshot can be searched against the function directly, on any server, with nothing known about it at all. Bedrock cracking needs a leaked seed. This needs nothing.
Thirty-four vanilla blockstates ship a random variant list: stone, deepslate, dirt,
grass_block, sand, sculk, every concrete powder, and netherrack with sixteen variants rather
than four. Each visible face is worth about two bits, so roughly thirty blocks pins a position in a
world thirty million blocks across. A wall of stone in frame is more than enough. So is a roof of
grass.
Every one of those choices is a rotation or a mirror of one texture, never a different texture. That is exactly why nobody notices, and why nobody thought to hide it.
Hide Me re-keys all of it.
| Leak | Derived from | What Hide Me does |
|---|---|---|
| Block rotations | the coordinate alone | re-keys the rendering seed |
| Plant jitter | the coordinate alone | re-keys the model offset |
| Cloud phase | the coordinate alone | slides the cloud origin |
| Bedrock | the world seed | re-rolls the gradient layers |
| F3 coordinates | nothing, it just says them | scrambles every reading |
It re-keys rather than flattens
The other way to close a rotation leak is to make every block face the same way, or retexture stone to something rotationally symmetric. That works, and it announces itself in every screenshot, and it makes the game look like a bug report.
Hide Me draws from the same distribution instead. Measured over 26.2M positions, vanilla's split across a four-variant block is 24.996 / 25.001 / 24.984 / 25.019 percent and Hide Me's is 24.988 / 24.994 / 25.005 / 25.013. Change a single bit of your key and the two patterns agree on 25.008 percent of blocks, which is exactly what unrelated patterns do. Your world looks exactly like a world. It just is not this one.
The same care goes everywhere. The cloud offset is a whole number of cloud cells, because every cloud edge in an untouched client lands on a multiple of twelve blocks and one that did not would be a worse giveaway than the phase it was hiding.
It is not an X-ray mod, and nothing desyncs
- Nothing is hidden. Ores, chests, fluids, spawners and anything a player placed are untouched.
- Air stays air. Holes you dug in the Nether roof are still there, still where you left them.
- Physics is unaffected. Collision, ray tracing and block breaking all use the real world, so you cannot walk into a wall that is not there. Bamboo is deliberately left out of the plant jitter, because vanilla derives its hitbox from the same number.
- No packet changes. Everything your client sends is built from the real world, so not one byte differs from an unmodified client. There is no desync to detect, because there is no desync.
Seeing the real thing
The disguise is convincing enough to fool you, which is a problem when you actually need to know where you are. Hold the reveal key and the truth comes back for as long as you hold it, all of it: rotations, plant jitter, clouds, bedrock and the coordinates.
That matters for more than navigation. It is the only way to check the disguise is doing anything at all, and a mod whose whole design rests on "you cannot see the difference" has to leave you exactly one way to see the difference. Stand at a deepslate wall and tap it.
| B | Hold to see the real world, or switch it to a toggle |
| New key | Throw the secret away and redraw everything from a fresh one |
| Settings | In the kUI hub, or on a keybind of its own if you do not use kUI |
While the truth is on screen an amber glow breathes around the edge of the frame, as a reminder not to screenshot it. There is deliberately no badge the rest of the time: it would show up in exactly the screenshots this exists to make safe, and it would tell anyone looking that the world in frame is not worth trusting. No glow means what you are looking at is shrouded.
About F3
Coordinates are scrambled, not offset. A fixed secret offset would keep the debug screen usable, and it would fail retroactively: one screenshot taken somewhere recognisable gives up the offset, and every screenshot you ever posted becomes readable at once. Each position is scrambled independently instead, so there is nothing to subtract.
The cost is that F3 cannot be navigated by. Hold the reveal key when you need it.
Keep your config to yourself
Your key lives in config/hideme.json. Do not share that file, and never ship one in a modpack.
Anyone holding those two numbers can reproduce every pattern you see. A pack shipping a hideme.json
would hand all of its users the same key, and breaking one would break every one of them.
Is it actually working?
The settings screen reports what it has been observed doing, not what you have switched on. The
block grain reading fires for every block in view, so it goes green within seconds of loading a world;
if it does not, the hook has stopped matching and you are not covered. The log says the same thing in
one line: [Hide Me] Block grain hook confirmed. The bedrock reading only
confirms once you are down at the layers, because the hook never runs anywhere else.
That distinction matters more than it sounds. A renderer hook that quietly stopped matching after an update does not crash and does not look like anything, and a player who wrongly believes they are covered is the one who posts the screenshot.
What it does not protect
Distinctive terrain, a ravine, a structure or a biome edge in frame is still searchable against a cracked seed. A minimap or coordinate HUD from another mod still says exactly where you are. Sound is still honest, so audio in a recording can tell bedrock and deepslate apart. Screenshots cannot.
On 1.21.9 and later, the crack particles thrown off while mining are not disguised. Minecraft restructured that path away and there is no equivalent left to hook. It is a small leak, visible only while you are actively breaking a disguised block, and everything else is intact. The mod says so in its own log at startup rather than letting you assume otherwise; on 1.21.8 and earlier those particles are disguised like the rest.
Requirements
Fabric 1.21.4 through 1.21.11, client-side only. Needs Fabric API. Nothing to install on the
server, and it works anywhere you play: vanilla, Paper, modded.
Sodium is supported: the block grain hooks are on vanilla's own
AbstractBlockState, which Sodium calls rather than reimplements, so Iris comes along for free.
kUI is optional on the versions it publishes for, adding the settings
to the shared hub.
Every published build was launched as a real client and confirmed to start clean. That is not a
formality: the mixin configs are required, so a hook that stopped matching after a Minecraft update
takes the game down on launch rather than leaving you quietly unprotected.
This is a technical statement, not a promise about any particular server's rules. Nothing here is detectable, but a server that forbids client mods as a matter of policy is a rules question rather than a detection one.

Block grain. AbstractBlockState.getRenderingSeed and getModelOffset are where every renderer
converges: SectionBuilder, BlockRenderManager, the falling-block and piston renderers, and
Sodium's own BlockRenderer. So one hook covers vanilla, Sodium and Iris, and hooking the seed rather
than a list of blocks covers modded blocks and future vanilla ones for free. Vanilla's value is
re-keyed rather than replaced, because beds, doors and tall flowers override it so both halves agree
on a variant, and a value they already agreed on stays agreed after re-keying.
Bedrock. Vanilla places it on a vertical gradient: a straight line of probability across five blocks, running 1.0, 0.8, 0.6, 0.4, 0.2 upward from Y -64 and mirrored under the Nether roof. Hide Me re-rolls exactly those four layers using the same probabilities, keyed by a SplitMix64 hash over your secret and the block position. Measured across 1.44M columns per layer, the output matches vanilla's frequencies to within about a part in a thousand. There is no generator state to run backwards, so recovering the key means brute forcing 128 bits, and it is keyed per server and per dimension, so one compromise stays one compromise.
Replaced bedrock takes on whatever stone actually surrounds it, rather than one fixed block per dimension. A lone deepslate block in the middle of a tuff blob could not have generated there, and every one of those would be a signpost marking a real bedrock position.
Particles are included because they are spawned from the real world, so mining bedrock drawn as deepslate would otherwise throw off bedrock-black specks against a grey block and give the position away one screenshot at a time.
The lie is told to the things that draw, and to nothing else.

All rights reserved. Free to download and use, but not to redistribute, modify or republish, and not to bundle into a modpack without asking first.
That last point is worth a word of explanation, because it is not only a licensing preference. The whole design assumes every install holds a key nobody else has, and a pack that shipped one would undo that for every user at once.
Copyright © 2026 KALPE.


