
背包成就优化
invadvopt 是一个适用于 Minecraft 1.21.1 的专用服务器 NeoForge 模组。它加速了热键栏 inventory_changed 进度触发器,而无需替换 Minecraft 的谓词或奖励逻辑。客户端无需安装。
🚀 进度判定加速器
当服务器拥有大量进度、数据包或在线玩家时,原版 Minecraft 会频繁遍历相关的进度判定条件。此模组为每个玩家创建一个物品索引,仅筛选可能与当前物品栏变更匹配的条件,同时保留 Minecraft 原版的谓词和奖励逻辑进行最终判定。
简而言之:减少不必要的检查,同时保持原版行为。⚡
🚀 显著减少候选检查
根据玩家物品栏中实际变更的物品来定位相关进度判定条件,避免每次对每个监听器进行全量扫描。
🎯 精准的原版判定
最终匹配仍然由 Minecraft 原版的 TriggerInstance、ItemPredicate 和上下文谓词执行。原版的奖励逻辑不会被替换。
🧩 支持复杂的物品条件
正确处理物品数量、标签、数据组件、空槽位变更、物品移除以及多个条件的组合。
🖥️ 仅需服务端安装
客户端无需安装此模组。原版客户端可直接连接服务器。
🛡️ 安全的回退机制
当遇到未知条件、异步调用、资源重载、Mixin 注入失败或内部异常时,模组会保留或回退到原版处理流程。
🔍 影子验证与熔断保护
默认情况下,模组会采样并对比优化结果与完整判定结果。如果检测到不匹配,则使用完整结果,并且模组可以自动禁用受影响的索引或切换回原版模式。
📊 内置运行时指标
查看触发次数、候选缩减比率、全量扫描次数、回退原因、延迟分布以及最活跃的玩家和物品。
💾 不修改世界数据
模组不会添加玩家附件、能力、存档格式更改或网络频道。移除模组无需进行存档迁移。
该项目包含一个确定性的候选层微基准测试,包含:
- 5,000 个物品条件监听器
- 1,000 个唯一的物品 ID
- 50 个模拟玩家
- 每次操作每个玩家变更一种物品类型
测试结果:
- 每次操作平均生成约 5.014 个候选条件
- 候选数量减少约 99.9%
- 候选层测试速度提升约 4.04 倍
⚠️ 这些结果来自候选筛选层的微基准测试,并不代表每台服务器都会获得相同的 MSPT 提升。实际性能取决于数据包、进度数量、在线玩家数量和整合包环境。
首次启动后,NeoForge 会生成:
config/invadvopt-common.toml
默认启用安全的 EXACT 模式:
mode = "EXACT"
enabled = true
shadowVerifyRate = 0.01
periodicFullScanTicks = 200
fallbackOnUnknownPredicate = true
fallbackOnOffThreadCall = true
disableOnMismatch = true
metricsEnabled = true
debugLogging = false
如需立即禁用优化,将模式切换为 VANILLA。无需卸载模组或重启服务器。
以下命令需要服务器管理员权限等级 4:
/invadvopt status
/invadvopt stats
/invadvopt verify
/invadvopt mode vanilla
/invadvopt mode exact
/invadvopt reset-stats
🎮 Minecraft 1.21.1
🔧 NeoForge 21.1.x
☕ Java 21
🖥️ 专用服务器
👤 无需客户端安装
将模组 JAR 文件放入服务器的 mods 文件夹并启动服务器。
该模组专门针对混合 NeoForge/Bukkit/Paper 服务器环境设计,包括诸如 Youer 之类的服务器:
- 不使用
@Overwrite - 不依赖 Bukkit 内部实现
- 不使用
Unsafe或 ClassLoader 黑客技巧 - 当 Mixin 目标变更时自动保留原版逻辑
- 针对可能的运行时差异提供采样验证和熔断保护
以下类似的进度优化模组与此模组不兼容:
achioptceruleanicterine
当检测到冲突时,此模组会记录错误并保留原版的触发处理流程。
此模组特别适用于:
📚 拥有大型数据包的服务器
🏆 包含大量自定义进度的整合包
👥 多人生存服务器
🧱 频繁修改玩家物品栏的模组服务器
📉 希望减少进度判定开销的服务器
您可以随时通过以下方式还原:
- 使用
/invadvopt mode vanilla切换回原版模式 - 在配置文件中设置
mode = "VANILLA" - 停止服务器并直接移除模组 JAR 文件
包含 380 个模组的服务器上的实际测试结果:

正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。