定义
CraftTweaker是面向《我的世界》(Minecraft)的模组,供整合包作者和服务器运营者调整游戏内容。借由它,使用者可以增加、删除或改写合成台与熔炉等处的配方,改写物品名称与属性,调整矿物词典,编辑物品提示信息,也可以编写事件脚本和添加新命令[1][5]。
与只服务于单一玩法模组不同,CraftTweaker本身不新增玩法内容,而是提供一个可以操作其他模组内容的接口。因此它常被用来处理不同模组之间配方冲突、让各模组的配方相互衔接,以及为整合包设计新的进度节奏[4]。在支持它的模组足够多时,只靠脚本就能替换掉一些简单模组或插件的功能[6]。
原理
CraftTweaker的核心是自行实现的脚本语言ZenScript。它是一种自上而下解析的语言,导入语句需要写在文件开头,变量定义之后才可被后续行引用;相较通用语言,其语法针对操作游戏对象做了简化[3]。脚本文件使用.zs后缀,存放于游戏目录下的scripts文件夹,玩家可在游戏内运行对应命令打开该目录[3]。
ZenScript用尖括号表示游戏内的对象,例如用minecraft:apple指代苹果这一物品,用方括号加矿辞名指代一类材料,还可以在标识符后追加附加值或通配符以扩大指代范围[7]。对物品执行的操作以方法调用的形式书写,例如移除某物品配方、按有序或无序方式添加新配方,均通过对应的配方管理器完成[8]。
脚本加载位置与游戏运行阶段相关:脚本在玩家进入世界时载入,加入服务器时由服务端把脚本发送给客户端执行,因此客户端无需自行安装脚本也能获得同样的改动效果[3]。模组还提供多种辅助命令,用于导出游戏内的物品、方块、实体、流体与模组清单,或把手持物品的标识符复制到剪贴板,以减少编写脚本时的手工查找[9]。
发展历程
CraftTweaker的前身是StanH开发的MineTweaker。有据可查的MineTweaker 3首笔代码提交时间为2014年6月9日,更早的版本已难以查证[10]。在作者长期未跟进新版本、未能更新到1.8之后,原本为其开发附加组件的jaredlll08接手继续开发,并从1.8.9起以CraftTweaker之名发布[6][4]。名称虽变,脚本语法与功能大体沿用原有设计[6]。
版本号继承了MineTweaker的API版本,因此从3起步[5]。此后长期保持对较新《我的世界》版本的跟进,由jaredlll08与kindlich等人维护[4]。
脚本重载能力经历过反复。1.12.2版本移除了重载命令,原因是该版本在加载结束后会冻结配方注册表,脚本改动必须重启游戏才能生效;作者曾表示不打算重新实现该功能[11]。中文模组资料记载,1.11及以前使用单独的重载命令,1.14及以后改用游戏通用的重载指令[5]。
应用
最常见的用途是配方管理。整合包作者可以删除过于强势或与设定冲突的配方,引导玩家改走其他获取途径,也可以为模组机器编写新的加工配方,使不同模组的产物形成链条[8]。配方改动通常与配方查看模组配合验证,例如借助相关指令列出冲突的合成台配方[9]。
另一类用途是修改物品与事件的细节。资料显示,脚本可以为物品添加全局属性修改器,从而改变攻击伤害、移动速度、护甲值、最大生命值等数值[12]。此外,脚本还能检测玩家合成、持有物品等游戏事件,在事件中读取物品显示名称、玩家名称等信息并做出响应[13]。
在工程组织上,较大的整合包会把脚本拆分为多个文件甚至多层子目录,也可把脚本打包进未加密的压缩包由模组读取。这样单个文件的错误不会波及整份脚本,便于排查问题,代价是需要注意各文件的加载顺序[14]。
局限
脚本语言本身带来学习成本。使用CraftTweaker需要掌握一门专为该模组设计的语言,而非使用Java等通用语言;也有使用者指出ZenScript在语言设计上存在限制,使得某些操作实现起来不直观,甚至无法完成[15]。
加载与调试方面存在约束。由于部分内容无法在编辑文件后热加载,脚本改动会带来一定的加载时间开销[15]。1.12.2版本不支持脚本重载,需要重启游戏,该版本还要求客户端与服务端都放置脚本,否则配方查看模组中仍会显示旧配方[5]。
脚本错误可能造成较大影响。仓库问题记录显示,脚本中一处未闭合的括号或尖括号曾导致解析器卡死、游戏与服务器无法正常加载世界,该问题随后被修复[16]。另有记录指出,模组在与其他模组共存时可能因过早解析标签而产生兼容问题[17]。此外,随着新版本模组对CraftTweaker的支持减少,部分使用者转向其他同类工具[18]。
参见
-
MineTweaker —— CraftTweaker的前身,由StanH开发,脚本语法与功能被后者沿用。
-
ZenScript —— CraftTweaker所使用的自定义脚本语言。
-
KubeJS —— 面向较新版本的另一款整合包脚本定制工具,被部分作者用作替代方案。
-
Just Enough Items —— 配方查看模组,与CraftTweaker配合用于验证配方改动效果。
-
我的世界 —— CraftTweaker所面向的游戏。
-
模组加载器 —— 决定CraftTweaker以何种方式接入游戏的底层组件。
参考资料
- CraftTweaker [引用日期2026-10-14]
- Home - CraftTweaker Documentation [引用日期2026-10-14]
- Getting Started With Scripts [引用日期2026-10-14]
- CraftTweaker [引用日期2026-10-14]
- [CrT]CraftTweaker - MC百科|最大的Minecraft中文MOD百科 [引用日期2026-10-14]
- CraftTweaker [引用日期2026-10-14]
- [1.12.2]可能最全!CrT 基础合集 - [CrT]CraftTweaker [引用日期2026-10-14]
- Can CraftTweaker remove existing recipes? [引用日期2026-10-14]
- Commands [引用日期2026-10-14]
- TeaCon 茶后谈 [引用日期2026-10-14]
- ids [引用日期2026-10-14]
- 在1.20~1.18.2使用crt修改物品属性以及汉化 - [CrT]CraftTweaker [引用日期2026-10-14]
- 关于术语ZenGetter、ZenMethod和ZenSetter都是什么东西 - [CrT]CraftTweaker [引用日期2026-10-14]
- Split your scripts into multiple files [引用日期2026-10-14]
- The Silver Fox of Modpack Dev Tools | CraftTweaker | ModDex [引用日期2026-10-14]
- github.com 上的网页 [引用日期2026-10-14]
- github.com 上的网页 [引用日期2026-10-14]
- moddex.gg 上的网页 [引用日期2026-10-14]