
Meow Anti-Xray
Paper-style server-side anti-xray for Fabric and NeoForge. No client install, per-dimension config, inspect/reload diagnostics.
Список изменений
Meow Anti-Xray 1.0.0 更新日志
🚀 高性能独立反矿透:从 MeowConsole 拆分,后续由本项目持续维护
Meow Anti-Xray 是从 MeowConsole 拆分出来的独立服务端反矿透 Mod。MeowConsole 新版本将不再继续维护内置反矿透功能,后续反矿透更新、性能优化、版本适配与问题修复都会集中在本项目进行。
相比继续把反矿透塞在综合服务器工具里,本项目只保留矿物隐藏、区块包重写、权限绕过、配置热重载和性能诊断等必要能力,目标是给 Fabric / NeoForge 服务器提供一个更轻、更专注、更接近 Paper Anti-Xray 体验的方案。
本次亮点
- 🧭 进一步对齐 Paper Anti-Xray:同步 Paper 风格的默认隐藏方块、替换方块、邻近刷新逻辑和
paper.antixray.bypass权限节点。 - 🏎️ 性能优先的独立实现:移除 MeowConsole 中与反矿透无关的控制台、睡眠、玩家消息等功能,减少加载面和运行期干扰,让反矿透逻辑更容易被 profiling、调优和长期维护。
- 🪨 更安全的假矿候选:箱子、末影箱等方块实体不会再作为 mode 2 假矿候选,降低客户端显示异常和交互误导风险。
- 🔐 权限绕过更完整:新增/完善
bypass-permission配置。开启use-permission后,Fabric / NeoForge 会尽量桥接对应权限 API;没有权限 API 时仍回退到 OP/管理员判断。 - ⚡ 异步区块包重写优化:继续支持后台线程处理区块包重写,降低玩家跑图、传送、加载新区块时对主线程的压力。
- 🧯 新增异步队列背压:加入
async-queue-size,默认16。在高压跑图或多人加载新区块时限制后台任务堆积,避免大量区块快照排队造成内存暴涨或 Java heap OOM。 - 📊 真实跑图与高压压测验证:已用 spark 对真实 Fabric 单人跑图采样,TPS 稳定
20.00,MSPT 中位数3.31ms,meowantixray在 server thread mods 视图占比约3.55%。同时新增 Minecraft26.1.2网络假玩家压测工具,可模拟真实玩家登录、接收区块包、回 keepalive、回 chunk batch ack,并通过 RCON 跑图触发真实区块加载。 - 🧪 8 假玩家高压测试通过:修复前 8 个网络假玩家持续传送跑图会触发 OOM;修复后 90 秒压测稳定完成,0 客户端错误。保守默认队列下仍能完成约 3.6 万次区块接收,说明本项目更适合承接后续反矿透性能优化。
- 🔌 Fabric / NeoForge 行为保持一致:反矿透核心仍由两个 loader 共享,配置、权限、Paper 对齐逻辑和性能策略保持同步。
- 🛠️ 新增调试/压测能力:保留
/antixray profile,并加入面向开发和排障的/antixray stress,方便服主或开发者定位反矿透重写成本。
配置变化
新增配置项:
anti-xray:
async-chunk-rewrite: true
async-worker-threads: 1
async-queue-size: 16
async-queue-size 用来控制异步重写任务最多排队多少个。默认 16 更偏向防止内存堆积。如果你的服务器内存充足,并且希望提高多人跑图吞吐,可以尝试 32 或 64。
使用方法
- 下载与你服务器 loader 匹配的文件:
- Fabric:
meowantixray-fabric-1.0.0.jar - NeoForge:
meowantixray-neoforge-1.0.0.jar
- Fabric:
- 放入服务端
mods文件夹。 - 启动服务器,配置会生成在:
config/meowantixray.yml
- 常用命令:
/antixray status查看状态和更新检查结果/antixray reload重载配置/antixray profile查看重写次数和耗时/antixray debug <world> <x> <y> <z>排查指定方块是否会被隐藏
关于预生成地图和网页地图
- 🗺️ 预生成地图、预加载区块不会绕过本 Mod。Meow Anti-Xray 在“区块发送给玩家客户端”时生效,而不是在服务端生成区块时生效。
- 🧭 Dynmap / BlueMap 等网页地图如果直接读取服务端真实区块数据,不属于玩家客户端区块包,本 Mod 不会替它们隐藏矿物。请单独配置对应地图插件/Mod 的隐藏规则。
未来规划
- 🔍 持续跟进 Paper Anti-Xray 的默认配置和行为差异。
- 📉 继续降低区块包重写时的内存分配和 GC 压力。
- 🧪 增强压测工具和 profiling 指标,让服主更容易判断配置是否适合自己的服务器。
- 🌐 继续保持 Fabric / NeoForge 双 loader 支持,并关注 Minecraft 新版本协议变化。
- 🧭 承接 MeowConsole 后续不再维护的反矿透能力,后续兼容性修复、新版本适配和性能优化都将在本项目发布。
给 MeowConsole 用户
- 🐾 如果你需要反矿透,请迁移到
Meow Anti-Xray;这是后续反矿透功能的正式维护项目。 - 🧩 MeowConsole 新版本将专注其它服务器辅助能力,不再继续内置和维护反矿透。
Meow Anti-Xray 1.0.0 Changelog
🚀 High-performance standalone anti-xray, split from MeowConsole
Meow Anti-Xray is a standalone server-side anti-xray mod split from MeowConsole. Future MeowConsole versions will no longer maintain the built-in anti-xray feature. Anti-xray updates, performance work, Minecraft version support, and bug fixes will continue in this project.
Instead of keeping anti-xray inside a general-purpose server utility mod, this project focuses only on ore hiding, chunk packet rewriting, permission bypasses, hot reloads, and diagnostics. The goal is to provide Fabric and NeoForge servers with a lighter, more focused, Paper-like anti-xray experience.
Highlights
- 🧭 Closer Paper Anti-Xray parity: Updated Paper-style hidden blocks, replacement blocks, neighbor reveal behavior, and the default
paper.antixray.bypasspermission node. - 🏎️ Performance-first standalone design: Removes unrelated MeowConsole console, sleep, player-message, and helper features so the anti-xray path is easier to profile, tune, and maintain.
- 🪨 Safer decoy selection: Block entities such as chests and ender chests are excluded from mode 2 decoys, reducing client-side display and interaction surprises.
- 🔐 Better permission bypass support: Added/improved
bypass-permission. Whenuse-permissionis enabled, Fabric and NeoForge permission APIs are bridged when available, with OP/admin fallback. - ⚡ Async chunk packet rewriting: Keeps rewrite work off the main thread where possible, reducing pressure while players explore, teleport, or load new chunks.
- 🧯 New async backpressure: Adds
async-queue-size, defaulting to16, to prevent queued rewrite snapshots from growing without bounds during heavy chunk loading. - 📊 Real exploration and stress-test verified: A real Fabric spark run with one player held
20.00TPS, with median MSPT3.31ms;meowantixrayaccounted for about3.55%in the server-thread mods view. The project also includes a Minecraft26.1.2network fake-player runner that logs in like a real client, receives chunk packets, replies to keepalive and chunk batch packets, and can use RCON teleports to load real terrain. - 🧪 8 fake-player stress test passed: Before the fix, 8 network fake players repeatedly teleporting and loading chunks could trigger Java heap OOM. After the fix, a 90-second stress run completed with 0 client errors. With the conservative default queue, the run still completed about 36k chunk receives, making this project a better home for future anti-xray performance work.
- 🔌 Fabric / NeoForge behavior alignment: The anti-xray core remains shared across both loaders, keeping config, permissions, Paper parity behavior, and performance strategy consistent.
- 🛠️ More diagnostics:
/antixray profileremains available, and/antixray stresshelps server owners and developers inspect rewrite cost during troubleshooting.
Config Changes
New config option:
anti-xray:
async-chunk-rewrite: true
async-worker-threads: 1
async-queue-size: 16
async-queue-size controls how many async rewrite tasks may wait in the queue. The default 16 favors memory safety. If your server has more memory and you want higher exploration throughput, try 32 or 64.
How to Use
- Download the file matching your server loader:
- Fabric:
meowantixray-fabric-1.0.0.jar - NeoForge:
meowantixray-neoforge-1.0.0.jar
- Fabric:
- Put it into the server
modsfolder. - Start the server. The config is generated at:
config/meowantixray.yml
- Useful commands:
/antixray statusshows status and update-check results/antixray reloadreloads the config/antixray profileshows rewrite counts and timing metrics/antixray debug <world> <x> <y> <z>checks whether a specific block would be hidden
Pregenerated Worlds and Web Maps
- 🗺️ Pregeneration and chunk preloading do not bypass this mod. Meow Anti-Xray applies when chunk packets are sent to player clients, not when chunks are generated server-side.
- 🧭 Web map renderers such as Dynmap or BlueMap may read real server chunk data directly. Those are not player chunk packets, so configure hiding rules in the map plugin/mod separately.
Roadmap
- 🔍 Continue tracking Paper Anti-Xray defaults and behavior.
- 📉 Further reduce memory allocation and GC pressure during chunk packet rewriting.
- 🧪 Improve stress testing and profiling output so server owners can tune config more confidently.
- 🌐 Keep Fabric / NeoForge support aligned while tracking Minecraft protocol changes.
- 🧭 Carry forward the anti-xray feature that newer MeowConsole versions will no longer maintain. Compatibility fixes, version updates, and performance improvements will be released here.
For MeowConsole Users
- 🐾 If you need anti-xray protection, migrate to
Meow Anti-Xray; this is the official maintained home for that feature going forward. - 🧩 Newer MeowConsole versions will focus on other server helper features and will no longer include or maintain anti-xray.

