This update focuses on smarter detection and faster staff reaction. Anti-Xray now includes a configurable Staff Auto-TP system for highly suspicious players, improved ore validation based on world height and biome logic, and better filtering to reduce false positives while keeping strong detection pressure on real X-Ray users.
Added:
- autotp.enabled
- Added a new Staff Auto-TP system for highly suspicious players.
- Added /xrayautotp command to let staff enable or disable their Auto-TP opt-in.
- Added new permission: antixray.autotp.
- Added configurable Auto-TP settings:
- autotp.permission
- autotp.require-optin
- autotp.delay-seconds
- autotp.cooldown-seconds
- autotp.tp-y-offset
- autotp.force-spectator
- Added new Auto-TP messages for warning, teleport success, cancellation and toggle status.
- Added ore range validation based on ore type, world, height and biome.
- Added emerald biome validation for mountain-related biomes.
- Added smarter filtering for Nether ores, diamonds, redstone, lapis, gold and emeralds.
Changed:
- Replaced the old global depth-only detection check with a more precise per-ore range check.
- TopLuck now always counts mined base blocks in the total, but only counts ores when they are found in a logical generation range.
- FakeVision maintenance loop changed from every 2 seconds to every 6 seconds to reduce server load.
- Staff note author names now use the clean/plain player name format.
- Staff Auto-TP is triggered when a player reaches the strong suspicion stage.
Fixed:
- Fixed recent ore history storing by correctly setting the player ID inside addRecentOre().
- Reduced false positives caused by ores mined outside their expected generation range.
- Improved detection consistency for ores mined in normal vanilla-like locations.
Notes:
- Existing config and message files will automatically receive the new missing values on load.
- Staff members need the antixray.autotp permission to use Auto-TP.
- By default, Auto-TP requires staff opt-in with /xrayautotp.
This update improves the Anti-XRay system with a stronger message configuration system, cleaner staff reports, better persistent evidence data, and improved history formatting.
ADDED:
- datetime.pattern
- Added a large messages.yml expansion.
- Most player, staff, command, panel, history, record, TopLuck and debug messages are now configurable.
- Added configurable date formatting through config.yml:
- datetime.locale
- datetime.zone
- Added a cleaner formatted date system for sanctions, staff notes, evidence logs and history entries.
- Added configurable staff alert message for suspicious ore detections.
- Added configurable X-Ray record lines.
- Added configurable X-Ray history lines.
- Added configurable TopLuck output lines.
- Added configurable X-Ray panel item names and lores.
- Added configurable reload messages.
- Added configurable fake vision enable/disable messages.
- Added configurable reset messages.
- Added configurable staff note confirmation message.
CHANGED:
- /xrayrecord now reads lifetime recidive data directly from the persistent YAML player file.
- /xrayrecord output is now fully based on messages.yml.
- /xrayhistory now uses configurable message lines for lifetime stats, evidence entries and staff notes.
- /topluck output is now configurable.
- /xrayreload messages are now configurable.
- /xraypanel GUI text is now configurable.
- /xrayaddscore confirmation message is now configurable.
- /xrayfake and /xrayunfake confirmation messages are now configurable.
- /xrayfixnames messages are now configurable.
- Internal config calls were cleaned up by removing the old cfg() wrapper and reading config values directly from config.yml.
- Date storage now uses a cleaner formatted timestamp instead of raw server time.
IMPROVED:
- Better persistent evidence saving after fake ore detections.
- Better lifetime record consistency.
- Cleaner staff-readable history and record output.
- Easier translation/customization for server owners.
- Improved configuration structure for public release usage.
REMOVED / REWORKED:
- /xraycheck was simplified into a clean chat report instead of opening a GUI.
- /xrayresetscore now focuses on X-Ray score/state reset and no longer resets TopLuck stats directly.
NOTES:
- Existing config.yml and messages.yml files should be checked after updating.
- If you want all new messages to generate automatically, delete missing old message sections or let the script add the missing paths on reload.
- Recommended to reload all Anti-XRay files after updating.
This update improves the anti-xray system with better staff tools, detailed player records, improved evidence history, smarter fake ore placement, and a new progressive sanction system.
Added
- Added new /xrayrecord <player> command.
- Added a complete staff record view for each player.
- Added current X-Ray score display.
- Added suspicion level display.
- Added fake ores mined counter.
- Added recidive counter.
- Added last suspicious activity display.
- Added Fake Vision status display.
- Added player world and coordinates display.
- Added tool information in player records.
- Added Fortune, Silk Touch and Efficiency information.
- Added TopLuck statistics by ore.
- Added maximum TopLuck level display.
- Added new /xraystaffnote <player> <note> command.
- Added staff notes saved in the player history file.
- Added lifetime player profiles in xray_players.yml.
- Added first detection date tracking.
- Added total X-Ray reset tracking.
- Added total TopLuck reset tracking.
- Added total sanctions tracking.
- Added total recidives tracking.
- Added total fake ores mined tracking.
- Added last sanction tracking.
- Added detailed evidence history.
- Added automatic player profile creation when the script loads.
- Added automatic player profile creation when a player joins.
- Added detailed evidence data:
- ore type;
- score added;
- reason;
- total score;
- suspicion level;
- obscured ratio;
- vein size;
- world;
- X/Y/Z location;
- tool used;
- Fortune level;
- Silk Touch status;
- Efficiency level.
- Added new progressive fake ore sanction system.
- Added default sanction stages:
- 3 fake ores: player notice + staff alert;
- 5 fake ores: strong staff alert;
- 6 fake ores: inventory clear;
- 7 fake ores: kick;
- 8 fake ores: temporary ban.
- Added nether gold ore support in valuable ores.
- Added safer fake ore placement checks.
- Added checks to avoid placing fake ores near real valuable ores.
- Added checks to avoid placing fake ores near open spaces.
- Added checks to avoid placing fake ores on exposed blocks.
- Added better fake ore placement safety for caves and visible areas.
- Added new TopLuck final level calculation based on count and ratio.
- Added support for TopLuck thresholds for:
- diamond;
- gold;
- emerald;
- ancient debris;
- lapis.
Changed
- Changed /xrayhistory <player> to display much more detailed information.
- Changed the history system to use the new lifetime player profile.
- Changed evidence history from basic entries to detailed investigation records.
- Changed /xrayresetscore <player> to reset active states while preserving lifetime data.
- Changed reset behavior to also clear active sanction stages.
- Changed reset behavior to record X-Ray resets in lifetime data.
- Changed reset behavior to record TopLuck resets in lifetime data.
- Changed config loading to be cleaner and more reliable.
- Changed YAML loading to remove duplicate file loading.
- Changed missing config value creation to be checked individually.
- Changed suspicion thresholds to load from config.yml instead of being hardcoded.
- Changed Fake Vision thresholds to load from config.yml.
- Changed Decoy thresholds to load from config.yml.
- Changed Fake Vision distances to load from config.yml.
- Changed Decoy distances to load from config.yml.
- Changed fake ore target amount to load from config.yml.
- Changed fake ore pruning distance to load from config.yml.
- Changed Fake Vision placement logic to use safer placement checks.
- Changed Decoy placement logic to use safer placement checks.
- Changed fake ore punishment logic from old first/repeat commands to progressive sanction stages.
- Changed fake ore mining behavior to save evidence when a fake ore is mined.
- Changed fake ore mining behavior to update lifetime fake ore count.
- Changed sanction handling to avoid repeated spam for some stages.
- Changed TopLuck system to support better threshold initialization.
- Changed TopLuck final result to use both amount and ratio.
Fixed
- Fixed missing player profile issues by creating profiles automatically on load and on join.
- Fixed duplicate YAML loading in the loader script.
- Fixed reset command not clearing all active detection states.
- Fixed evidence history being too limited for staff reviews.
- Fixed fake ore placement being possible too close to real ores.
- Fixed fake ore placement being possible too close to open spaces.
- Fixed fake ore placement being possible on exposed blocks.
- Fixed punishments being too instant or not progressive enough.
- Fixed TopLuck config values not being fully initialized on fresh installs.
- Fixed staff investigation tools being too limited.
- Fixed active sanction stages not being reset by /xrayresetscore.
- Fixed history data being less useful for long-term tracking.
- Fixed player records being lost or incomplete when active scores were reset.
Removed
- Removed old fake-break punishment logic.
- Removed old sanctions.fake-breaks.refresh-at system.
- Removed old sanctions.fake-breaks.punish-at system.
- Removed old sanctions.first.command system.
- Removed old sanctions.repeat.command system.
- Removed old fake-break warning messages.
- Removed old first-caught messages.
- Removed old repeat-caught messages.
- Removed old instant fake diamond inventory clear behavior.
- Removed old permban stage config from the default sanction system.
- Removed duplicate YAML loading.
- Removed hardcoded threshold values for several detection settings.
Notes
- This is a major internal update, not just a small patch.
- The update focuses on better staff tools, long-term tracking, cleaner config management, safer fake ores, and more reliable sanctions.
- The lifetime player record is preserved even when active scores are reset.
- Staff can now review detailed evidence before taking action.
- Fake ores should now feel more natural and less obvious.
- It is recommended to check or regenerate your config.yml and messages.yml after updating.
- Make sure all new sanction messages exist in your messages file.
- Make sure your punishment commands are correctly configured.
- Test Fake Vision and fake ore mining before using the update on a live server.
- Important: if a punishment command is executed from console, the command must be supported by the plugin you are using. If a plugin does not allow its command to be executed from console, that command will not work.
Added:
- Added xray_players.yml loading for evidence history and persistent player data.
- Added staged sanction configuration: warning, inventory clear, kick, temporary ban and permanent ban.
- Added default player and staff messages for each sanction stage.
- Added automatic detection data saving every 60 seconds.
- Added detection data saving when a player leaves the server.
- Added ore validation to the /topluck command.
- Added CountLevel, RatioLevel and Ratio display to /topluck.
Changed:
- Reorganized the script structure for better maintainability.
- Moved detection-related functions from xrayutils.sk to xraydetection.sk.
- Moved FakeVision-related functions from xrayutils.sk to xrayfakevision.sk.
- Reduced xrayutils.sk so it mainly contains shared utility functions.
- Improved /topluck by displaying the count-based level, ratio-based level and total ratio.
- Improved FakeVision organization by grouping functions related to fake ores, decoys, player direction and fake blocks.
Fixed:
- Fixed missing xray_players.yml loading, which could cause issues with evidence history and /xrayhistory.
- Fixed /topluck accepting invalid ore names.
- Fixed detection data not being saved automatically at regular intervals.
- Improved data persistence by saving detection information when a player leaves the server.
Notes:
Nothing
