Minexa说明书
进阶核心与版本

Paper 系:Paper、Purpur、Leaves、Leaf、Spigot、CraftBukkit

六个 Bukkit 系核心的亲戚关系、性能与特性差异;从 Spigot 迁到 Paper 要注意什么。

你照着三年前的教程下载了 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绝大多数插件服,默认推荐
PurpurPaper 分支Purpur 接口,只能取最新构建server.jar想要更多可调开关的老手
LeavesPaper 分支Leaves 接口,最多列 30 个版本server.jar愿意读文档、偏性能取向
LeafPaper 分支Leaf 接口,最多列 30 个版本server.jar同上,另一个分支

几个容易忽略的细节:

  • Spigot 和 CraftBukkit 没有实时版本接口,用的是应用内置的固定表。表里最高到 1.21.11,但新版本发布后不会自动出现;列表里没有的版本,只能试「自定义版本」,而下不下得到取决于上游 CDN。

  • Purpur 只能取最新构建,应用里也没有 build 号可选。想锁定某个特定构建的话,Purpur 不适合。

  • Leaves 和 Leaf 的版本列表最多 30 条,更老的版本不会显示,必要时用自定义版本。

  • BungeeCord 只有 latest,但它是代理端,不属于这六个;这里提一句是防止你在版本列表里找错。

Spigot 与 CraftBukkit 的启动方式不一样

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 和 综合优化。为了一个没验证过的“性能排名”反复重装,是最亏的时间投入。

换核心不是换一个 jar 那么简单

不同核心的配置键和默认值可能有差异。更关键的是:在 Minexa 里,每个核心下载到独立目录,换核心不会自动把旧世界的存档搬过去。直接切过去,你看到的是一个新世界,而不是原来的服。

什么时候选哪个#

  • 默认选 Paper:教程最多、插件兼容面最广、版本跟进稳定。第一次开插件服,选它不容易错。

  • 想要更多可调开关选 Purpur:它把不少游戏机制做成了配置项。代价是选项多、文档要读,而且只能拿最新构建。

  • 追求轻量、愿意自己读文档选 Leaves 或 Leaf:两个都是 Paper 分支,取向接近。具体差异不建议听二手总结,直接看各自官方说明;如果你说不清自己要什么,说明还没到需要它们的阶段。

  • 维护很老的服务端选 Spigot / CraftBukkit:老插件、老教程、老版本限定。新开服不建议从这两个起步,它们的版本表和优化都不占优势。

  • 要装 Forge 模组:这六个都不行。插件和模组是两套东西,去看 模组核心。

如果你还在「插件服 / 模组服 / 基岩服」之间犹豫,先看 18 个核心选项总览;如果核心定了只差版本,看 选版本、升级与降级。

从 Spigot 或 Paper 迁到另一个核心#

迁移的目标不是「把 jar 换掉」,而是「让新核心读到同一份世界、同一套插件配置」。在 Minexa 里,下载新核心会新建一个服务器目录,所以迁移要分两步:先建新目录,再把东西带过去。

  1. 先备份:整服备份或至少世界备份。迁移失败时这是唯一的退路,见 备份策略。

  2. 停服:不要在运行中删核心、换核心或改目录。普通「停止」会先发 stop,等它自己保存完。

  3. 下载目标核心:在下载页选 Paper / Purpur / Leaves / Leaf 和目标版本,它会落到一个新目录,不会覆盖旧服。

  4. 把世界带过去:用「世界与备份」里的世界导出/导入,把旧 world(以及需要的地狱、末地)弄到新目录;导入前同样要停服。

  5. 搬插件与配置:插件 jar 和它们的配置文件夹要一起搬。文件管理没有复制/移动按钮,可以用上传,或者用 FTP 从电脑传。

  6. 逐个启用插件:先只开最必要的几个,确认能启动、能进人,再逐步加回。一次全开,出问题很难定位。

  7. 保留旧核心回滚:确认新服稳定运行几天后,再删除旧核心目录。运行中不能删核心。

几个最常见的坑#

坑一:只看核心名,不看版本。 同一个插件,给 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 和视距,而不是直接换核心。

下一步#

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

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