CraftTweaker

关注
义项:我的世界模组定制工具
CraftTweaker

CraftTweaker是《我的世界》(Minecraft)的一款模组,用于让整合包作者与服务器管理者自定义游戏内容,例如增删或修改合成配方、调整物品属性、添加命令与编写事件脚本[1][2]。它使用名为ZenScript(ZenScript)的自定义脚本语言,脚本以.zs文件形式存放在游戏的scripts文件夹中[3]。它是StanH开发的MineTweaker 3的官方延续,由jaredlll08等人接手维护[4],在整合包与服务器中应用广泛[5]。

百科 图文
目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

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以何种方式接入游戏的底层组件。

参考资料

  1. CraftTweaker [引用日期2026-10-14]
  2. Home - CraftTweaker Documentation [引用日期2026-10-14]
  3. Getting Started With Scripts [引用日期2026-10-14]
  4. CraftTweaker [引用日期2026-10-14]
  5. [CrT]CraftTweaker - MC百科|最大的Minecraft中文MOD百科 [引用日期2026-10-14]
  6. CraftTweaker [引用日期2026-10-14]
  7. [1.12.2]可能最全!CrT 基础合集 - [CrT]CraftTweaker [引用日期2026-10-14]
  8. Can CraftTweaker remove existing recipes? [引用日期2026-10-14]
  9. Commands [引用日期2026-10-14]
  10. TeaCon 茶后谈 [引用日期2026-10-14]
  11. ids [引用日期2026-10-14]
  12. 在1.20~1.18.2使用crt修改物品属性以及汉化 - [CrT]CraftTweaker [引用日期2026-10-14]
  13. 关于术语ZenGetter、ZenMethod和ZenSetter都是什么东西 - [CrT]CraftTweaker [引用日期2026-10-14]
  14. Split your scripts into multiple files [引用日期2026-10-14]
  15. The Silver Fox of Modpack Dev Tools | CraftTweaker | ModDex [引用日期2026-10-14]
  16. github.com 上的网页 [引用日期2026-10-14]
  17. github.com 上的网页 [引用日期2026-10-14]
  18. moddex.gg 上的网页 [引用日期2026-10-14]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-13T18:44:45Z

历史版本

本条目引用的词条
MineTweaker ZenScript KubeJS Just Enough Items 我的世界 模组加载器