Buried blocks are masked
Unrevealed protected ores are sent as believable host blocks. The client gets a normal cave wall, not a map of nearby ore veins.
Paper anti-xray plugin
Deterministic server-side ore obfuscation. Oreveil keeps buried ores authoritative on the server, masks what clients receive, and only reveals protected blocks when gameplay actually exposes them.
The ore model
Oreveil is not just a decorative disguise. It tracks which protected blocks should be visible, rewrites what the player receives, and keeps hidden ore data out of normal client view.
Unrevealed protected ores are sent as believable host blocks. The client gets a normal cave wall, not a map of nearby ore veins.
When gameplay exposes a protected block, Oreveil sends the real material back to players who should see it.
Admin control
Configure protected ores, tune exposure rules, inspect block state, watch diagnostics, and let ProtocolLib handle the packet-aware path when the runtime supports it.
Compatible runtimes can rewrite chunk packet data before hidden ore reaches the player.
Block changes and reveal events are synchronized so exposed ores stay playable.
If full chunk rewriting is unavailable, Oreveil keeps chunk priming and update sync active.
The `/oreveil` interface handles profiles, protected ore toggles, diagnostics, and world tools.
Release shape
Oreveil ships targeted builds by Minecraft version band, so legacy servers and modern servers each get the right API surface and bytecode level.
ProtocolLib is optional but recommended for packet-level transport.
| Feature | Paper Anti-Xray | Oreveil |
|---|---|---|
| Per-player obfuscation | Limited | Yes |
| Packet-level rewriting | Partial | Yes |
| Chunk packet rewriting | No | Yes* |
| Exposure-gated reveals | Limited | Yes |
| Server-authoritative ore model | No | Yes |
| Seed-resilient design | No | Yes |
| In-game admin GUI | No | Yes |
| Live diagnostics | No | Yes |
| Block inspection tool | No | Yes |
| World management | No | Yes |
*Oreveil uses automatic fallback when runtime chunk rewriting is unavailable.