AntiXRAY
2.1.0+mc26.3Ghost-ore anti-xray for Paper/Purpur. Floods the client with realistic fake ore veins and geodes in fully hidden blocks, so X-Ray cheaters waste time digging decoys. Fully configurable per world and o
AntiXRAY
Ghost-ore anti-xray for Paper/Purpur 26.3
Version 2.1.0 · Minecraft 26.3 · Java 25 · Server-side
AntiXRAY takes a different approach to fighting X-Ray cheats: instead of hiding
real ores, it floods the client with realistic fake ore veins and geodes.
Fake ores are sent only for base blocks (stone / deepslate / netherrack) that
are fully hidden behind opaque blocks, so legitimate players almost never see
them. When a cheater digs toward a fake vein and exposes an adjacent block, the
decoy reverts to plain stone. X-Ray users end up wasting time chasing veins that
turn to dust.
How it works (and what it does not do)
Please read this before deciding if AntiXRAY fits your server:
- Fake ores are client-side decoys. They are placed only in fully hidden
blocks, so an X-Ray user sees a cave full of "signals", but any ore they see
actually exposed to air/caves is guaranteed real (decoys are never
exposed). - This plugin is noise + troll obfuscation, not true hiding: real ores are
still sent to the client normally. It does not remove or mask real ore data.
If your priority is to make real ores invisible to X-Ray, this is not that
kind of plugin. - What it does well: it makes bulk X-Ray scanning noisy and frustrating, punishes
blind digging toward decoys, and needs no external dependencies.
Features
- Fake ore veins with vanilla-like vein sizes, per-ore weights and Y ranges,
for the Overworld (diamond, iron, gold, lapis, coal, copper, redstone,
emerald) and the Nether (ancient debris, nether gold, quartz). - Fake amethyst geodes with configurable shell/middle/inner layers and
budding amethyst. - Placement modes:
VEINS(realistic clusters),DENSITYorPERCENT
(scatter). - Deterministic seeding:
WORLD(same for everyone) orPER_PLAYER. - Exposure-aware reverts: decoys revert to real blocks on break, placement,
explosions and pistons. - Per-world control via enabled/disabled world lists.
- Bypass permission so trusted players can see the real world.
- Async computation with a per-tick send budget to control load.
- Runs entirely in memory — no database, no files, no web server.
Commands
| Command | Description | Permission |
|---|---|---|
/antixray reload | Reload the configuration | antixray.admin |
/antixray debug | Toggle debug output | antixray.admin |
/antixray flush | Flush cached spoof data | antixray.admin |
/antixray info | Show status/info | antixray.admin |
Permissions
| Node | Description | Default |
|---|---|---|
antixray.admin | Access to /antixray admin commands | op |
antixray.bypass | See real blocks (no fake ores sent) | false |
Configuration
Highlights of config.yml:
general:
enabled: true
debug: false
radius:
mode: "CHUNKS" # CHUNKS or BLOCKS
chunks: 4 # 4 = 9x9 = 81 chunks around the player
updates:
refresh-interval-ticks: 60
max-chunks-per-tick: 4
max-blockchanges-per-tick: 8000
async-compute: true
randomization:
seed-mode: "WORLD" # WORLD (shared) or PER_PLAYER
overworld:
enabled: true
base-blocks: [STONE, DEEPSLATE]
fake-ores:
DIAMOND_ORE:
stone-variant: DIAMOND_ORE
deepslate-variant: DEEPSLATE_DIAMOND_ORE
weight: 2
min-vein-size: 2
max-vein-size: 8
min-y: -64
max-y: 16
# ... iron, gold, lapis, coal, copper, redstone, emerald ...
placement:
mode: "VEINS" # VEINS | DENSITY | PERCENT
veins-per-chunk: 60
fake-geodes:
enabled: true
chance-per-chunk: 0.10
min-radius: 3
max-radius: 5
nether:
enabled: true
base-blocks: [NETHERRACK]
# ancient debris / nether gold / nether quartz, sparse veins
worlds:
enabled-worlds: [] # empty = all worlds
disabled-worlds: [world_the_end]
triggers:
on-block-place: true
on-explosion: true
on-piston: true
Each ore entry controls its own vein size and Y range so decoys mimic vanilla
distribution. Higher veins-per-chunk and max-blockchanges-per-tick mean more
convincing noise but more work per tick — tune to your hardware.
Installation
- Requires Paper or Purpur 26.3 and Java 25 (2.0.0 runs on 26.2, 1.x on 1.21.x).
- Drop the JAR into
plugins/and start the server once to generate
config.yml. - Adjust ore weights, placement and world lists, then run
/antixray reload.
Dependencies
None required — AntiXRAY runs on the Paper API alone.
Optional: PlayerSettings (soft dependency) — when present, plugin messages follow each
player's chosen language (bundled English and Portuguese; server default via locale in
config.yml).
Support / Source
Source code: https://github.com/henriquescrrrr/carrageis-antixray
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta