Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details

ChunkVeil
ChunkVeil is a free, open-source Paper plugin that helps reduce underground information leaks on Minecraft servers.
It hides underground chunk data before the client receives it, then reveals chunks only when the player can realistically see or reach them through a view-based scan. The goal is to protect more than ores: caves, hidden bases, underground rooms, block entities, entity spawns, and later block updates can all leak useful information to modified clients.
ChunkVeil helps reduce xray, ESP, freecam, hidden-base discovery, and PieChart-style underground leaks. It does not claim to make every hacked client impossible to use.
Features

- Rewrites outgoing chunk packets for hidden underground sections.
- Replaces hidden blocks with a configurable fake block.
- Reveals chunks using a 360-degree view scan instead of a simple distance radius.
- Keeps revealed chunks visible until they leave the player's render distance.
- Rewrites later block update packets while a chunk is hidden.
- Cancels hidden block entity update packets below the hidden Y range.
- Optionally hides underground entities.
- Includes admin commands, permissions, metrics, debug logging, reload/refresh, and emergency runtime disable.
Requirements

- Paper 1.21.11
- Java 21
- ProtocolLib compatible with your Paper/Minecraft version
ProtocolLib version matters. Use the ProtocolLib build recommended for your server version:
https://www.spigotmc.org/resources/protocollib.1997/
ChunkVeil currently targets Paper 1.21.11. Support for other versions may be added later.
How It Works

- Underground data starts hidden from the player.
- ChunkVeil scans what the player can reveal using view rays.
- Real chunks are restored when they become visible or reachable.
ChunkVeil is primarily designed for the overworld. Nether and End can be configured, but they are disabled by default because their terrain and fake block choices usually need separate testing.
Visual Comparison
These screenshots use an xray-style view so the difference is easy to see.
Without ChunkVeil

With ChunkVeil disabled, underground terrain, caves, ores, structures, and hidden spaces can be visible to modified clients before the player should know about them.
ChunkVeil with hide-air: false

This is the recommended default. Air stays air, so caves and empty pockets may still appear as open space, but solid hidden blocks are replaced with the configured fake block, such as DEEPSLATE. This is faster and reduces the most useful block information without rewriting huge amounts of air.
ChunkVeil with hide-air: true

When hide-air is enabled, ChunkVeil also replaces underground air with the fake block. This makes cave shapes, rooms, and hidden base layouts much harder to read from the client side, but it costs more because many more blocks need to be rewritten.
Installation
- Install Paper 1.21.11.
- Install Java 21.
- Install a ProtocolLib build compatible with Paper 1.21.11.
- Put
ChunkVeil.jarin your server'spluginsfolder. - Start the server once to generate
plugins/ChunkVeil/config.ymlandplugins/ChunkVeil/lang.yml. - Run
/chunkveil statusin-game or from console.
Commands
/chunkveil status/chunkveil reload/chunkveil refresh/chunkveil disable/chunkveil enable/chunkveil debug on|off/chunkveil version
Alias: /cv
Permissions
chunkveil.adminchunkveil.statuschunkveil.reloadchunkveil.refreshchunkveil.togglechunkveil.debugchunkveil.bypass
Bug Reports
Please report bugs on GitHub:
https://github.com/DeKaeyman/ChunkVeil/issues
Include your ChunkVeil version, Paper version, ProtocolLib version, logs, config, and reproduction steps.


