你照着三年前的教程下载了 Spigot,另一篇文章又说「Paper 性能更好」;打开下载页,Purpur、Leaves、Leaf 三个名字长得像、都写着支持插件,版本列表还都不一样。到底差在哪?会不会换了核心插件就全废?
先把结论放在前面:这六个核心是一家人,插件大多通用;真正的差别在「谁在维护、默认优化到什么程度、给你多少可调开关」,而不是「谁能装插件、谁不能」。
新手没有特殊需求,选 Paper;有明确理由再换。这一页把血缘关系、六个核心的实际差异、迁移步骤和几个必须避开的坑按顺序说清。
血缘:CraftBukkit → Spigot → Paper → Purpur / Leaves / Leaf,六个核心是同一条血缘上的分支。
六个都实现 Bukkit API,所以老插件在六个核心上大多能直接跑。
兼容是单向的:Paper 插件下不了 Spigot,反向通常没问题。
没有“最快核心”:性能取决于版本、插件数量、视距和设备,先测再换。
在 Minexa 里换核心等于新建一个目录,世界不会自动搬过去。
先把亲戚关系理清#
这六个核心不是并列的六个产品,而是一条不断分叉的家谱:
CraftBukkit → Spigot → Paper → Purpur / Leaves / Leaf
CraftBukkit:Bukkit API 的官方实现,辈分最高,也是很多老教程的起点。
Spigot:在 CraftBukkit 基础上继续维护和优化,长期是「插件服」的代名词。
Paper:在 Spigot 基础上做更激进的性能优化,并提供 Paper API,目前是插件服的主流选择。
Purpur:Paper 的分支,主打「把更多游戏规则和机制做成可配置项」。
Leaves、Leaf:两个独立的 Paper 分支,都偏性能和轻量方向;名字接近,但是两个不同项目,下载页也分开列。
「分支」(从同一个代码base分出来、各走各的路)的意思是:它们共享同一套插件接口和大部分代码,但各自会加自己的优化、配置项和行为调整。所以你不能拿「都是 Paper 系」推断它们完全一样,也不能拿「名字不同」推断插件互不兼容。
六个核心对照#
下表只列 Minexa 里能确认的差异;具体优化项和配置键,以各核心官方文档为准,这一页不替它们编特性。
| 核心 | 家族位置 | 版本列表怎么来 | 下载后入口 | 适合谁 |
|---|---|---|---|---|
| CraftBukkit | 起点 | 应用内置固定版本表 | server.jar,走 -cp 启动 | 复现老教程、维护很老的服务端 |
| Spigot | 经典分支 | 应用内置固定版本表 | server.jar | 只想兼容老插件、不追新 |
| Paper | 主流分支 | PaperMC 接口,优先稳定构建 | server.jar | 绝大多数插件服,默认推荐 |
| Purpur | Paper 分支 | Purpur 接口,只能取最新构建 | server.jar | 想要更多可调开关的老手 |
| Leaves | Paper 分支 | Leaves 接口,最多列 30 个版本 | server.jar | 愿意读文档、偏性能取向 |
| Leaf | Paper 分支 | Leaf 接口,最多列 30 个版本 | server.jar | 同上,另一个分支 |
几个容易忽略的细节:
Spigot 和 CraftBukkit 没有实时版本接口,用的是应用内置的固定表。表里最高到 1.21.11,但新版本发布后不会自动出现;列表里没有的版本,只能试「自定义版本」,而下不下得到取决于上游 CDN。
Purpur 只能取最新构建,应用里也没有 build 号可选。想锁定某个特定构建的话,Purpur 不适合。
Leaves 和 Leaf 的版本列表最多 30 条,更老的版本不会显示,必要时用自定义版本。
BungeeCord 只有
latest,但它是代理端,不属于这六个;这里提一句是防止你在版本列表里找错。
Paper、Purpur、Leaves、Leaf 下载完就是一个能直接 -jar 启动的 server.jar。CraftBukkit 走的是 -cp 模式:它要求目录里有 libraries、lib 或 libs,并且包含 jopt-simple。只导入一个孤零零的 craftbukkit jar,启动会报「缺少 jopt-simple 依赖」。Spigot 也类似:核心 jar 里带了这个依赖就直接 -jar,不带就退回 -cp。
插件到底能不能通用#
能,但要看插件用的是什么 API。
Bukkit API 是这套生态的地基,Spigot、Paper 都向下兼容它。所以:
为 Bukkit / Spigot 写的老插件,大多数可以直接跑在 Paper、Purpur、Leaves、Leaf 上。
为 Paper 新 API 写的插件,放到 Spigot 或 CraftBukkit 上会直接报「找不到类」,因为那些类在旧核心上不存在。
直接用 NMS(服务端内部实现类)的插件最挑:它可能只支持某个核心的某个版本,换核心、换小版本都会崩。
所以迁移的方向很重要:往 Paper 迁通常顺利,退回 Spigot 容易出问题。装插件前看它的介绍页写了支持哪些核心、哪些 MC 版本;不要只看「支持 1.21」就下手。
插件放哪、怎么启停、缺依赖是什么表现,见 插件安装、启停与排错;插件和模组的根本区别见 核心、插件、模组、代理端。
性能差距有多大#
定性的结论是:Paper 系整体比 CraftBukkit / Spigot 做了更多服务端优化,Purpur、Leaves、Leaf 又在 Paper 的基础上各自调整。 但「谁最快」没有统一答案,也不该用某一篇 benchmark 定终身。
原因很简单:性能取决于版本、插件数量、世界大小、实体数量、视距、模拟距离和手机本身。一个装了二十个插件的 Paper,完全可能比一个干净的空 Purpur 更卡;反过来,同一个整合配置下换核心,提升也可能被你根本没开的优化项吃掉。
所以正确的顺序是:先测再换。用 TPS / MSPT 判断卡不卡,先调视距和模拟距离,再排查插件,最后才考虑换核心。具体方法见 TPS 与 MSPT 和 综合优化。为了一个没验证过的“性能排名”反复重装,是最亏的时间投入。
不同核心的配置键和默认值可能有差异。更关键的是:在 Minexa 里,每个核心下载到独立目录,换核心不会自动把旧世界的存档搬过去。直接切过去,你看到的是一个新世界,而不是原来的服。
什么时候选哪个#
默认选 Paper:教程最多、插件兼容面最广、版本跟进稳定。第一次开插件服,选它不容易错。
想要更多可调开关选 Purpur:它把不少游戏机制做成了配置项。代价是选项多、文档要读,而且只能拿最新构建。
追求轻量、愿意自己读文档选 Leaves 或 Leaf:两个都是 Paper 分支,取向接近。具体差异不建议听二手总结,直接看各自官方说明;如果你说不清自己要什么,说明还没到需要它们的阶段。
维护很老的服务端选 Spigot / CraftBukkit:老插件、老教程、老版本限定。新开服不建议从这两个起步,它们的版本表和优化都不占优势。
要装 Forge 模组:这六个都不行。插件和模组是两套东西,去看 模组核心。
如果你还在「插件服 / 模组服 / 基岩服」之间犹豫,先看 18 个核心选项总览;如果核心定了只差版本,看 选版本、升级与降级。
从 Spigot 或 Paper 迁到另一个核心#
迁移的目标不是「把 jar 换掉」,而是「让新核心读到同一份世界、同一套插件配置」。在 Minexa 里,下载新核心会新建一个服务器目录,所以迁移要分两步:先建新目录,再把东西带过去。
先备份:整服备份或至少世界备份。迁移失败时这是唯一的退路,见 备份策略。
停服:不要在运行中删核心、换核心或改目录。普通「停止」会先发
stop,等它自己保存完。下载目标核心:在下载页选 Paper / Purpur / Leaves / Leaf 和目标版本,它会落到一个新目录,不会覆盖旧服。
把世界带过去:用「世界与备份」里的世界导出/导入,把旧
world(以及需要的地狱、末地)弄到新目录;导入前同样要停服。搬插件与配置:插件 jar 和它们的配置文件夹要一起搬。文件管理没有复制/移动按钮,可以用上传,或者用 FTP 从电脑传。
逐个启用插件:先只开最必要的几个,确认能启动、能进人,再逐步加回。一次全开,出问题很难定位。
保留旧核心回滚:确认新服稳定运行几天后,再删除旧核心目录。运行中不能删核心。
几个最常见的坑#
坑一:只看核心名,不看版本。 同一个插件,给 1.20 的版本和给 1.21 的版本可能不兼容;核心换了、MC 版本没对齐,照样崩。
坑二:把 Paper 插件装到 Spigot 上。 反向兼容不成立。装之前看插件页的核心支持列表。
坑三:CraftBukkit 只导入一个 jar。 如果这个 jar 没带 jopt-simple、目录里又没有 libraries,启动会失败。要么导入完整服务端文件夹,要么换 Paper。
坑四:以为换核心能解决卡顿。 先看 TPS、视距、实体和插件;换核心是最后一步,不是第一步。
坑五:不备份就迁移。 世界只有一个,插件配置可以重装,存档不行。
不知道选哪个 → Paper;明确要更多开关 → Purpur;明确要轻量且能自己查文档 → Leaves/Leaf;维护老服 → Spigot/CraftBukkit。四个分支的具体特性以官方文档为准,别用「听说更快」当理由。
你能把自己的核心放进那条血缘线上,说出它上游是谁。
概览「当前核心」显示的是你想用的那个名字,不是同名的另一个分支。
迁移后新目录里同时有
server.jar和plugins/,且插件能正常加载。旧的服务器目录还在,没有在确认稳定前删掉。
卡顿时先看过 TPS 和视距,而不是直接换核心。
下一步#
回到全局对比:18 个核心选项总览
开始装插件:插件安装、启停与排错
核心选好了,挑版本:选版本、升级与降级