我的世界服务器加载JS,主流做法分两条路:插件端装ScriptCraft,模组端装KubeJS;原版服务端不直接执行JS,需要脚本引擎或中间层。 下面按服务器类型拆开讲,给可验证的安装路径、目录结构和排查思路。
先分清服务器类型,再决定JS加载方式
原版服务端为什么不能直接跑JS
原版server.jar只认Java和内置命令,没有插件加载器,也没有模组加载器,JS要跑起来,得有脚本引擎接住它。
Java 15之后,Nashorn JS引擎被移除,这个变化影响很大,依赖Nashorn的老插件,在Java 17/21环境里可能直接报错,业内专家指出,脚本引擎的兼容性往往比服务端核心版本更容易被忽略,装插件前先看Java版本。
Spigot/Paper插件端:ScriptCraft是常见入口
插件服想加载JS,ScriptCraft是比较老牌的选择,它把JS脚本挂到Bukkit/Spigot/Paper服务端上,适合做事件响应、命令扩展、小工具。
操作路径不复杂:
- 确认服务端是Spigot或Paper,版本与ScriptCraft发布页标注的兼容范围一致。
- 下载
scriptcraft.jar,放进服务器的plugins目录。 - 启动服务端,等待生成
plugins/scriptcraft/目录。 - 在
plugins/scriptcraft/players/<你的游戏ID>/下新建.js文件,或在控制台用/js执行内联脚本。 - 用OP账号进服测试,非OP默认没有执行权限。
Forge/Fabric模组端:KubeJS更贴近新版本
模组服加载JS,KubeJS是近年更常见的选择,它通过模组加载器进入游戏,脚本放在kubejs/server_scripts/,适合改配方、监听事件、做整合包逻辑。
安装路径:
- 按服务端加载器选Forge或Fabric版本,下载对应KubeJS模组。
- 把模组jar放进
mods目录,启动服务端。 - 等待生成
kubejs/目录,脚本入口通常在kubejs/server_scripts/。 - 新建
test.js,写入事件监听代码,执行/reload热重载。 - 查看
logs目录下的KubeJS专用日志,确认脚本是否被加载。
| 对比项 | ScriptCraft | KubeJS |
|---|---|---|
| 服务端类型 | Spigot/Paper插件端 | Forge/Fabric模组端 |
| 客户端要求 | 通常原版客户端可进 | 一般需要对应模组环境 |
| 适用版本 | 较老版本居多,新版本看发布页 | 较新整合包中应用较多 |
| 脚本入口 | plugins/scriptcraft/ |
kubejs/server_scripts/ |
| 典型用途 | 命令工具、小游戏逻辑 | 配方修改、事件监听、整合包规则 |
我的世界服务器加载js教程:从ScriptCraft开始搭环境
下载与安装插件
先别急着往plugins里扔jar,第一步看服务端核心和版本,Spigot/Paper的服务端日志开头会写核心名和Minecraft版本,第二步看ScriptCraft发布页的兼容说明,版本差太多就别硬装。
安装步骤:
- 停服,备份
plugins和世界存档。 - 把
scriptcraft.jar放入plugins。 - 启动服务端,观察控制台是否出现ScriptCraft加载提示。
- 进服用OP账号执行
/js 1+1,看是否返回结果。 - 如果命令不存在,查
logs/latest.log里的插件启用报错。
配置脚本目录和权限
ScriptCraft启用后会生成脚本目录,玩家脚本和全局脚本分开管理,别把测试脚本丢进全局目录,权限上,/js命令默认面向OP,腐竹可以在权限插件里单独控制,公开服不要让普通玩家写脚本,脚本能碰到服务端API,权限边界要卡死。
写第一个脚本并验证
在玩家脚本目录新建hello.js,写一个最小函数:
function hello() {
echo('JS加载成功');
}
进服执行/js hello(),控制台和游戏内能看到输出,说明脚本目录和命令链路通了,不同ScriptCraft版本的API有差异,函数名以你所用版本的文档为准,先跑通最小示例,再碰方块操作和事件监听。
Minecraft服务器js插件怎么安装:KubeJS方案对比
KubeJS安装与目录结构
KubeJS的安装更像装模组,服务端加载器是Forge或Fabric,就把对应jar放mods,启动后生成kubejs目录,服务端脚本在kubejs/server_scripts/,客户端如果也要进服,通常得装同一套模组环境,这点和纯插件方案不同。
一个常见的配方脚本示例:
ServerEvents.recipes(event => {
event.shaped('minecraft:diamond', [
'AAA',
'AAA',
'AAA'
], {
A: 'minecraft:coal'
});
});
写完后在游戏内执行/reload,或者重启服务端,脚本没生效,先看文件名是否以.js再看是否放进了server_scripts而不是client_scripts。
ScriptCraft和KubeJS哪个好
这个问题要看服务器底子,插件服、原版客户端进服、老版本服务端,ScriptCraft更顺手,模组服、整合包、新版本、需要热重载和配方事件,KubeJS更合适,行业共识认为,脚本化适合做事件响应和配置生成,不适合高频大循环,选哪个,先看加载器,再看版本,最后看客户端要不要装模组。
性能和版本兼容注意
KubeJS脚本在服务端事件里执行,写循环遍历大量方块或实体时,TPS会受影响,先写小逻辑,压测后再扩大范围,版本兼容上,Java 17/21是新版服务端的常见要求,老ScriptCraft插件可能停留在旧Java环境,开服前用测试档跑一遍,别直接上生产服。
我的世界服务器支持JavaScript吗?先看版本和权限边界
Java版本与脚本引擎兼容
Minecraft Java版服务端本身不内置现代JS引擎,插件或模组提供运行时,Java 15移除Nashorn后,依赖它的老脚本方案需要额外引擎或停留在旧Java,近年来,GraalVM等替代方案在脚本场景里被讨论得更多,但部署复杂度也更高,普通腐竹优先选维护活跃的插件或模组,别自己搭引擎。
权限与安全边界
JS脚本能调用服务端API,等于把一部分服务端能力开放给写脚本的人,公开服只给信任的OP写脚本权限,脚本文件不要通过命令方块或玩家可写目录暴露,审计时看脚本目录的修改时间,异常脚本先停用再排查。
我的世界服务器js脚本加载失败怎么办
常见报错排查清单
- 插件或模组没启用:看启动日志里有没有加载成功提示。
- 脚本目录没生成:检查服务端核心、加载器和版本是否匹配。
- 命令不存在:确认
/js或/reload权限,非OP先给OP测试。 - 脚本语法错误:看控制台堆栈,定位到具体行号。
- KubeJS脚本不生效:确认文件在
server_scripts,执行了重载。 - Java版本不匹配:老插件报
ClassNotFound或引擎缺失,先降Java或换方案。
日志与调试路径
ScriptCraft的报错通常在服务端logs/latest.log,KubeJS会往logs下的专用日志文件写脚本加载信息,调试时先用最小脚本验证链路,再逐步加逻辑,改完脚本记得重载或重启,别只看游戏内提示。
国内我的世界服务器加载js的部署场景与成本考量
本地测试与云服务器选择
本地开服测试成本最低,确认脚本能跑,再迁到云服务器,国内服务器延迟低,适合小游戏服和整合包服,内存和CPU按模组数量、玩家数、脚本复杂度估,JS脚本本身通常不是大头,模组加载和世界生成更吃资源,据统计,多数中小型服务器更倾向插件端方案,部署和维护门槛更低。
我的世界服务器js插件收费吗
ScriptCraft和KubeJS本身以开源免费为主,插件和模组通常不收费,成本主要在服务器租用、内存和运维时间,有人卖整合包配置或脚本定制,那是服务费用,不是加载JS的必需支出,先跑通免费方案,再考虑要不要买现成配置。
核心结论:插件服优先ScriptCraft,模组服优先KubeJS;先跑最小脚本验证链路,再逐步加逻辑。 加载JS不是魔法,关键是选对加载器、卡住权限、看懂日志。
我的世界服务器加载JS常见问题Q&A
原版服务端能直接加载JS吗?
不能,原版服务端没有插件或模组加载器,也没有内置现代JS引擎,要加载JS,得换成Spigot/Paper加ScriptCraft,或者Forge/Fabric加KubeJS。
ScriptCraft和KubeJS哪个更适合新手?
插件服新手先试ScriptCraft,目录直观,命令测试快,模组服新手选KubeJS,跟整合包生态更近,新版服务端优先看KubeJS的兼容性,老版本插件服再看ScriptCraft。
加载JS脚本会影响服务器性能吗?
轻量事件处理和配方修改影响较小,循环遍历大量方块、实体或高频事件时开销明显,脚本本身只是触发逻辑,性能取决于写法;用服务端计时命令或性能分析工具压测即可确认。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/781828.html

