
Easy-to-use Xray detection plugin that alerts staff to excessive ore mining. Fully configurable!

VeinGuard is a robust, lightweight anti-xray solution designed to help server administrators identify and monitor suspicious mining patterns in real-time. By tracking specific block breaks and analyzing player behavior, VeinGuard provides the tools necessary to maintain a fair gaming environment without compromising server performance.
Unlike traditional anti-xray plugins that obfuscate blocks, VeinGuard focuses on behavioral detection, giving staff the evidence they need to take action.

veinguard-check custom flag to enable or disable tracking in specific regions.
.jar from Spigot, Modrinth, Hangar, or GitHub.plugins/ directory.config.yml and lang.yml to your preference./vg reload to apply changes instantly.
VeinGuard is designed to be intuitive for both administrators and staff. Below is a guide on how to get the most out of the plugin.
config.yml to specify which blocks VeinGuard should monitor (e.g., DIAMOND_ORE, ANCIENT_DEBRIS). We have already provided a list of common blocks.threshold for each block. If a player breaks more than the threshold within the timeframe, an alert is triggered./kick or /freeze) when a player reaches a certain suspicion level.veinguard-check: deny) to disable tracking in areas like public mines or other areas where a player shouldn't be tracked./vg check <player> to see a player's recent mining activity and current break rates./vg history <player> to pull historical data from the database, even if the player is offline./vg patrol start to automatically cycle through online players in Spectator mode. The Boss Bar will keep you informed of their status./vg toggle-alerts to hide notifications if you're busy, or /vg mute <player> to silence a specific (trusted) user.To better understand how VeinGuard protects your server, let's walk through a typical detection scenario:
timeframe (e.g., 15 diamonds in 5 minutes), an Alert is triggered./kick or /freeze)./vg check <player> to see the total number of tracked blocks they've mined in the last configured timeframe./vg history <player> to review past incidents starting with the most recent, also displaying details such as block counts, coordinates, and timestamps./vg patrol to monitor the player.
veinguard.admin — Full access to all plugin features and commands.veinguard.mod — Standard moderator access. Includes:veinguard.notify, veinguard.bypass, veinguard.command.check, veinguard.command.help, veinguard.command.history, veinguard.command.top, veinguard.command.toggle-alerts, veinguard.command.tracked-blocks.list.veinguard.notify — Receive in-game alert notifications.veinguard.bypass — Complete exemption from tracking.veinguard.bypass.[MATERIAL] — Exemption for a specific block (e.g., veinguard.bypass.DIAMOND_ORE).veinguard.unmute — Permission to unmute players.veinguard.resetall — Permission to reset tracking for all players.veinguard.update — Receive update notifications on join.| Command | Permission | Description | Example Usage |
|---|---|---|---|
/vg help [page] |
veinguard.command.help |
Displays a detailed list of all available commands and their usage. | /vg help 2 |
/vg check <player> |
veinguard.command.check |
Opens a real-time report of a player's recent mining activity, including exact block counts. | /vg check Notch |
/vg history <player> [time] |
veinguard.command.history |
Retrieves historical mining incidents from the database for investigation of offline players. | /vg history Notch 24h |
/vg top [time] |
veinguard.command.top |
Displays a leaderboard of players with the highest violation levels, block counts, and total alerts triggered. | /vg top 7d |
/vg patrol <action> |
veinguard.command.patrol |
Manage the automated staff patrol: start, stop, pause, resume, next, or back. |
/vg patrol start |
/vg msg <player> <msg> |
veinguard.command.msg |
Sends a formatted plugin message to a player (useful for automated violation actions). | /vg msg Notch Fair play only! |
/vg staffmsg <msg> |
veinguard.command.staffmsg |
Broadcasts an administrative message to all staff members with notification permissions. | /vg staffmsg Checking Notch. |
/vg mute <player> |
veinguard.command.mute |
Silences all future alert notifications for a specific player (e.g., for trusted members). | /vg mute Notch |
/vg unmute <player> |
veinguard.command.unmute |
Restores alert notifications for a previously muted player. | /vg unmute Notch |
/vg toggle-alerts [player] |
veinguard.command.toggle-alerts |
Toggles your own alert visibility or manages it for another staff member. | /vg toggle-alerts |
/vg tracked-blocks <add/list/remove> |
veinguard.command.tracked-blocks.[add/list/remove] |
Real-time management of which blocks are being monitored by the system. | /vg tracked-blocks add DIAMOND_ORE 15 Diamond Ore |
/vg reload |
veinguard.command.reload |
Hot-reloads all configuration and language files without requiring a server restart. | /vg reload |
/vg reset <player> |
veinguard.command.reset |
Completely clears a specific player's current break history and Violation Level (VL). | /vg reset Notch |
/vg resetall |
veinguard.command.resetall |
Wipes active tracking data and VL scores for all online players simultaneously. | /vg resetall |
/vg purge <time> [player] |
veinguard.command.purge |
Manually removes old historical data from the database to keep it optimized. | /vg purge 30d |