Minexa说明书
排错故障排查

模组冲突与插件报错

Missing dependency、Mixin apply failed、Duplicate mod……按加载顺序定位,用二分法一次找出罪魁祸首。

装模组最难受的不是装不上,而是装完开不起来,也不知道是哪一个。十几个模组,每个看起来都没问题,日志却只给你一行红字。

更麻烦的是:模组和插件的报错长得完全不一样,处理方法也不一样。把插件塞进 mods/,日志会给你一堆看起来毫无关系的错误,你会沿着错误方向查半小时。

这一页给两样东西:一张报错对照表(看到这行字就知道是什么病),和一个不用懂代码的方法——二分法。熟练之后,十几个模组定位元凶通常不超过 10 分钟。

本页要点
  • 先看目录:插件在 plugins/,模组在 mods/。放错目录等于没装,还会刷一堆假错误。

  • 三个高频词:requires(缺前置)、Incompatible(版本或加载器不对)、Mixin(两个模组改同一处)。

  • 日志里已经写了模组名,就先按名字处理,别急着二分。

  • 二分法的节奏是 一次砍一半,不是一次删一个。

  • 动手之前先备份 mods/,出问题能 30 秒回到昨天。

先认清你在装什么:模组还是插件#

模组(Mod)插件(Plugin)
装在哪mods/plugins/
谁能用Fabric / Forge / NeoForge / QuiltPaper / Purpur / Spigot / Leaves / Leaf / CraftBukkit / PowerNukkitX
客户端要不要装通常要,且版本一致不用
常见报错Mixin、依赖、注册表主类找不到、api-version

两种东西不能混。把 jar 放进错目录,服务端不会提示“放错了”,只会报一堆语法上正确、方向上全错的异常,看半天也看不出问题。

名词:加载器

加载器(mod loader)是让模组能插进游戏的那层框架。Fabric、Forge、NeoForge、Quilt 是四种不同的加载器,同一个模组通常只支持其中一种。用 Fabric 核心就别去下 Forge 版模组,哪怕名字一模一样。

在 Minexa 里怎么开关、怎么删#

  • 入口:服务端管理 →「插件」(页面标题是「插件管理」),顶部分段可以切换插件和模组。

  • 开关不是打勾,而是改文件名后缀:插件加一个 - 前缀,模组改成 .jar.disabled。所以“已禁用”的本质就是文件被改了名。

  • 服务端运行时不能启停、不能删除,页面会红字提示先停止服务器。这是保护措施,不是 bug。

  • 删除插件会弹窗,里面有个默认勾选的「同时删除插件数据目录」,默认会连配置一起删掉;想留配置就先取消勾选。

  • 页面不会替你装前置。模组的 depend 只在详情里显示一行,下载要自己来。这是本页存在的主要理由。

四类模组报错:看到这行字就知道是什么病#

1. Missing dependency:缺前置#

文本
Mod 'xxx' requires mod 'yyy', which is missing

模组 A 用了模组 B 的代码,你只装了 A。

  • 判断标准:requires 后面那个名字,就是缺的东西。

  • 处理:去下载它,版本要和游戏版本、加载器都对上;装进 mods/,不是 config/。

  • 最常见的坑:Fabric 模组大多需要 Fabric API。装 Fabric 模组,先放 Fabric API,能省掉一半的 Missing dependency。

2. Incompatible mod set:版本或加载器不对#

文本
Incompatible mod set!

三种典型原因:模组是给 1.20.1 做的而你跑 1.21;Forge 模组装进了 Fabric 服;整合包里某个模组被单独升级了。

  • 判断标准:报错前几行通常写着 requires minecraft 1.20.1 或 requires fabricloader >=...,把那两个数字和你实际用的对一遍。

  • 处理:换成匹配版本。整合包就整包用回作者那套,别单独升其中一个——依赖关系是作者调好的。

3. Mixin apply failed:两个模组抢同一个类#

文本
Mixin apply failed: xxx.json

Mixin 是模组改写游戏代码的手段。两个模组想改同一处,或者模组和核心版本对不上,注入就会失败。

  • 判断标准:Mixin apply failed 后面跟的往往是“后来者”,一般后装的那个才是元凶。

  • 处理:升级或降级其中一个;找作者提供的兼容版本;实在不行二选一。这类冲突没有“修一下就好”的路子。

  • 注意:少数情况是核心版本太新,模组还没跟上。这时候降核心比改模组省事。

4. Duplicate mod:同一个模组装了两份#

文本
Duplicate mod: xxx

mods/ 里有两个同 id 的 jar,常见于“新版放进去了,旧版忘了删”。

  • 判断标准:文件名不一样不代表模组不一样,要看模组 id,不是看文件名。

  • 处理:删掉旧的那个,只留一个。删之前确认新版的游戏版本对得上,否则你会从“重复”变成“不兼容”。

插件报错:五种,先分清拦不拦启动#

日志含义处理
Unsupported api-version插件要求的 API 版本比核心高升级核心,或换插件旧版
Unknown/missing dependency缺前置插件装前置;插件页不会替你装
Could not load plugin ... main class主类找不到,jar 损坏或根本不是插件重新下载,确认下的是插件不是模组
NoSuchMethodError插件调用的方法核心没有换与核心版本匹配的插件版本
Plugin is disabled初始化失败看紧跟其后的堆栈,多半是缺依赖

另外两种不写在表里,但很常见:

  • 命令冲突:两个插件抢同一个指令(比如都注册 /home),表现是其中一个功能失灵。处理办法是关掉一个,或改用另一个的指令别名。

  • Java 版本:插件编译时用了更高的 Java,日志直接给 UnsupportedClassVersionError。这不是插件坏了,是环境版本低,去看 游戏版本与 Java 版本。

插件报错不一定拦启动

有的插件加载失败,服务端照样 Done。表现是“某个功能没了”(比如传送指令不生效),而不是开不起来。所以装完插件别只看能不能启动,要去终端翻一遍 ERROR。终端没有搜索功能,用「复制当前日志」复制出去再搜,具体见 终端与快捷指令。

二分法:10 分钟定位元凶#

假设你有 12 个模组,一启动就崩。不要去猜“哪个看起来可疑”,按这个节奏来:

  1. 停服并备份:概览点「停止」,然后用「文件」页把整个 mods/ 导出留底。这一步让你随时能退回去。

  2. 只留一半:留下 6 个,另外 6 个先导出到别处。启动。

  3. 看结果分方向:能启动 → 元凶在被拿走的 6 个里;还是崩 → 元凶在这 6 个里。

  4. 对有问题的那一半再砍半:3 个 → 1~2 个。

  5. 锁定到 1~2 个:逐个单独放回去再启动,就能确定是哪个。

  6. 确认后处理:删掉它、换版本,或者找替代品。然后把备份里剩下的模组放回来,再启动一次验证。

12 个模组最多 4 轮就有答案。关键纪律只有一条:每轮只改一处,别同时又删又加。否则你会失去“是哪一步导致变化”的判断依据。

先花 30 秒看日志,再决定要不要二分

requires、Mixin apply failed、Duplicate mod 这三种报错都自带模组名,直接按名字处理就行,根本不用二分。二分法是给“日志里完全没提是谁”的情况准备的。

最小化复现:只留核心 + 一个模组#

二分到最后一个模组还开不起来,说明问题不在“模组之间打架”,而在“这个模组和你的环境不合”。这时候做一次最小化复现:

  1. 停服,把 mods/ 整个导出留底,然后只留那一个模组;

  2. 启动,看它是能到 Done (…s)! For help, type "help",还是又崩在同一行;

  3. 能启动 → 问题是它和别的模组组合出来的;不能启动 → 是它和核心、加载器或 Java 版本不匹配。

插件同理:把 plugins/ 清到只剩那一个,看还报不报同样的错。最小化之后报错还在,就能确定不是“冲突”,而是“不兼容”——两条路的处理办法不一样,一个是二选一,一个是换版本。

五类常见原因,对照自查#

原因日志里的样子怎么查
版本不符Incompatible mod set!对游戏版本 + 加载器两个数字
客户端模组装到服务端启动就崩,报缺客户端相关的类回模组页面看它是不是写着“仅客户端”
重复模组Duplicate mod看 mods/ 里有没有两个同 id
前置缺失requires ... which is missing按名字补前置
配置残留模组都删了还在报同一个错看 config/ 里有没有同名配置文件

修好之后:三件事才算收工#

  1. 启动验证:终端出现 Done (…s)!,并且进游戏把那个功能实际用一次。插件不报错不等于功能正常。

  2. 备份一次:把现在这个“能跑”的状态备份下来,下次再折腾就有退路。

  3. 记一笔:哪个模组/插件、什么版本、为什么留它。过一个月你自己也想不起来。

别在运行中动文件

插件和模组的启停、删除都要求先停服,页面已经拦住了。但「文件」页的删除和编辑不检查服务端状态——手动去删 mods/ 里的 jar,是能让一个正在跑的服务端当场崩掉的操作。

上机自查
  • 插件都在 plugins/、模组都在 mods/,没有混放。

  • 服务端已停止,插件页的开关可以点、不是灰的。

  • 终端里搜不到 requires ... which is missing 和 Duplicate mod。

  • 启动能走到 Done (…s)! For help, type "help",不是停在模组加载阶段。

  • mods/ 里没有两个同 id 的 jar。

  • 你已经把这个“能跑”的状态备份过一次。

下一步#

读到这儿了,给你点个赞。如果这页内容帮你解决了问题,说明说明书的方向是对的;如果发现错误、过时信息或看不懂的地方,欢迎到 GitHub Issues 告诉我们。

⚡ 回到极速开服 📖 查术语表