Sueta

AntiXRAY

2.1.0+mc26.3

Ghost-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

·Plugin

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), DENSITY or PERCENT
    (scatter).
  • Deterministic seeding: WORLD (same for everyone) or PER_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

CommandDescriptionPermission
/antixray reloadReload the configurationantixray.admin
/antixray debugToggle debug outputantixray.admin
/antixray flushFlush cached spoof dataantixray.admin
/antixray infoShow status/infoantixray.admin

Permissions

NodeDescriptionDefault
antixray.adminAccess to /antixray admin commandsop
antixray.bypassSee 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

  1. Requires Paper or Purpur 26.3 and Java 25 (2.0.0 runs on 26.2, 1.x on 1.21.x).
  2. Drop the JAR into plugins/ and start the server once to generate
    config.yml.
  3. 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 →