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

VeinGuard is a lightweight plugin that helps server staff detect potential x-rayers. It tracks block breaks in real time for blocks defined in the configuration.
When a player exceeds the configured break limits, VeinGuard alerts staff via in-game messages, console logs, or a Discord webhook, enabling quick responses.
VeinGuard is simple, configurable, and designed to moderate X-ray abuse without impacting server performance.
⚠️ NOTICE: Not all planned features have been implemented yet!

- Tracks how many tracked blocks players break in a configured time (minutes)
- Supports all block types with configurable limits
- Prevents spam alerts by using cooldowns per tracked block or per alert
- Advanced patrol system to patrol all online players
- Sends alerts to staff in-game, console, and Discord webhook
- Runs configurable commands when an alert is triggered
- Allows staff to mute or toggle alerts
- Generates clear player reports with block counts and violations
- Supports large reports with pagination
- Ignores creative mode players, certain tools, worlds, and above certain Y-levels
- Permission-based bypasses
- WorldGuard integration: Use the
veinguard-checkcustom flag to enable/disable tracking in specific regions - Reload configs and language files without restarting the server

Requirements
Before installing VeinGuard, make sure your server meets the following requirements:
- Java 16 or newer
- One of the following server types: Spigot, Paper, Purpur(1.21+) or any compatible fork.
- Minecraft 1.17+ if using Spigot or Paper.
Installation
Download the latest VeinGuard
.jarfile from: Spigot, Modrinth, Hangar or Github.Place the VeinGuard
.jarfile into your server’spluginsfolder.Start the server once to generate VeinGuard’s configuration files.
Edit the configuration files to your liking, then apply changes by:
- Running
/vg reload, or - Restarting the server

Commands & Permissions
Permissions
Grant the permission
veinguard.adminto provide access to all features.
Grant the permission
veinguard.modto your moderators. This permission grants the following permissions:veinguard.notifyveinguard.bypassveinguard.commandveinguard.command.checkveinguard.command.helpveinguard.command.toggle-alertsveinguard.command.tracked-blocks.list
You are also free to ignore ^ these permissions and configure them as you please!
veinguard.notify
Receives in-game alert notifications when suspicious mining activity is detected.veinguard.bypassExempts the player from all VeinGuard block tracking and detection checks.veinguard.bypass.MATERIAL
Exempts the player from block-break tracking for a specific material. Material is CASE SENSITIVE!
Example:veinguard.bypass.DIAMOND_ORE
Intended for staff members or trusted roles.veinguard.update
Allows the player to receive VeinGuard update notifications.
Base Command
/veinguard or /vg
- Permission:
veinguard.command - Displays general plugin information and how to view plugin help.
- Permission:
/veinguard help
- Permission:
veinguard.help - Displays help message for plugin commands and features.
- Permission:
Player Commands
/vg check <player> or /vg check <player> <page>
- Permission:
veinguard.command.check - View a detailed report of a player’s tracked block break history.
- Paginated, limiting 7 tracked-blocks per page, configurable in config.yml.
- Permission:
/vg msg <player> <message>
- Permission:
veinguard.command.msg - Sends a formatted message to the targeted player, with no prefix, used in the config for 'alert-commands'.
- Permission:
/vg mute <player>
- Permission:
veinguard.command.mute - Temporarily mute alert notifications for a specific suspect player. This will mute notifications for players with the permission
veinguard.notify
- Permission:
/vg patrol <start|stop|pause|resume|next|back>
- Permission:
veinguard.command.patrol - Patrol through all online players with an automated cycle and boss bar display.
- Permission:
/vg toggle-alerts
- Permission:
veinguard.command.toggle-alerts - Toggle all alert notifications for yourself.
- Permission:
/vg tracked-blocks <add|list|remove> <?list [page]> <material> <threshold> <pretty-name>
- Permissions:
veinguard.command.tracked-blocks.addveinguard.command.tracked-blocks.listveinguard.command.tracked-blocks.remove - Add, list or remove tracked blocks in real time without updating the config.yml manually.
- Permissions:
/vg unmute <player>
- Permission:
veinguard.command.unmute - Re-enable alert notifications for a previously muted player. This will unmute notifications for players with the permission
veinguard.notify
- Permission:
Data Management
/vg reset <player>
- Permission:
veinguard.command.reset - Reset a specific player’s tracked block break history.
- Permission:
/vg resetall
- Permission:
veinguard.command.resetall - Reset tracked block break history for all players.
- Permission:
Administration
- /vg reload
- Permission:
veinguard.command.reload - Reload the plugin and all configuration files without restarting the server.
- Permission:
VeinGuard Plugin Wiki
Explore the full VeinGuard Wiki for detailed information about the plugin, including commands, permissions, configuration options, installation guides, and more.
Report Issues/Bugs
Find a bug or an error? Report it here on our issue tracker:
Join Our Discord
Get support and stay updated on VeinGuard updates:
Plugin Metrics
VeinGuard uses bStats to collect anonymous usage data. Click to view plugin metrics: