本教程意在抛砖引玉,填补高版本教程不足的漏洞。本教程适用于改动轻的或新手入门。
官方文档推荐看一下
1. 安装
下载Crafttweaker最新版本(1.18.2)放入mod文件夹,加载一遍游戏后在.minecraft目录下会出现script文件夹,这里就是脚本存放的地方。
2. 使用
打开script文件夹新建文本文档,命名如”test”,然后,修改后缀为zs。
Tips:script文件夹下的子文件夹中脚本也会加载。
工作台
基本格式:
1.顺序合成
craftingTable.addShaped(recipeName, output, ingredients, recipeFunction);
craftingTable.addShaped("recipe_name", output, [
[input_1, input_2,input_3],
[input_4, input_5,input_6],
[input_7, input_8,input_9]
]);
当然,不是每个都要填满,只填一行是合法的。还可以加函数,不过不在本次讨论范围。
Tips:留空的地方填<item:minecraft:air>;还有recipe_name不能有大写。
比如铁剑可以这么写:
craftingTable.addShaped("ironsword",<item:minecraft:iron_sword>,[
[<item:minecraft:air>,<item:minecraft:iron_ingot>,<item:minecraft:air>],
[<item:minecraft:air>,<item:minecraft:iron_ingot>,<item:minecraft:air>],
[<item:minecraft:air>,<item:minecraft:stick>,<item:minecraft:air>]
]);
游戏中手持物品输入/ct hand 读取物品信息,包括名称,标签,矿物词典。
2.无序合成
craftingTable.addShapeless(recipeName, output, ingredients, recipeFunction);
比如,一个沙砾和4个燧石
//Gravel 这是注释
craftingTable.addShapeless("flint", <item:minecraft:flint>*4,
[<tag:items:forge:gravel>
]);
3.镜像有序合成
craftingTable.addShapedMirrored(recipeName, output, ingredients, recipeFunction);
允许对称摆放。
4.熔炉等
//熔炉(在官方文档里有一个定义函数的方法,但我不太清楚,感兴趣的可以去看看)
furnace.addJsonRecipe("recipe_name", {
ingredient: <item:minecraft:gold_ore>,
result: <item:minecraft:cooked_porkchop>.registryName,
experience: 0.35 as float, //经验
cookingtime:100 //烹饪时间
});
//高炉
blastFurnace.addJsonRecipe("recipe_name", {
ingredient: <item:minecraft:gold_ore>,
result: <item:minecraft:cooked_porkchop>.registryName,
experience: 0.35 as float,
cookingtime:100
});
//烟熏炉
smoker.addJsonRecipe("recipe_name", {
ingredient: <item:minecraft:gold_ore>,
result: <item:minecraft:cooked_porkchop>.registryName,
experience: 0.35 as float,
cookingtime:100
});
//篝火
campfire.addJsonRecipe("recipe_name", {
ingredient: <item:minecraft:gold_ore>,
result: <item:minecraft:cooked_porkchop>.registryName,
experience: 0.35 as float,
cookingtime:100
});
//切石机
stoneCutter.addJsonRecipe("recipe_name", {
ingredient: <item:minecraft:gold_ore>,
result: <item:minecraft:cooked_porkchop>.registryName,
experience: 0.35 as float,
cookingtime:100
});
模组支持
Crafttweaker1.18直接支持的模组有AromoreableMobs,Botania,Createtweaker,Initialinventory,JEITweaker,RecipeStage,SolarCraft,SushiGoCrafting
通用模组支持方法
/ct dump recipetypes获取模组合成类型,如Powah充能台<recipetype:powah:energizing>
这将保存在log文件中。
打开mod的jar文件如Powah-3.0.2.jar。定位到\data\powah\recipes\
以充能为例,打开\energizing,打开blazing_crystal.json.
这是内容:
{
"type": "powah:energizing",
"ingredients": [
{"item": "minecraft:blaze_powder"},
{"item": "minecraft:blaze_powder"},
{"item": "minecraft:blaze_powder"},
{"item": "minecraft:blaze_powder"}
],
"energy": 120000,
"result": {
"item": "powah:crystal_blazing"
}
}
参照他的格式,我们添加用一个铁块,一钻石,一晶制铀在充能台上合成一个下界合金锭
<recipetype:powah:energizing>.addJsonRecipe("neingot",
{
"type": "powah:energizing",
"ingredients": [
{"item": "minecraft:iron_block"},
{"item": "minecraft:diamond"},
{"item": "powah:uraninite"}
],
"energy": 1000000,
"result": {
"item": "minecraft:netherite_ingot",
"count" : 2
}
});
可以知道<recipetype:powah:energizing>.addJsonRecipe(“recipe_name”,…)是基本格式,后面就因模组而异。
当然,CraftTweaker还提供了接口功能,这就不必每次都输入一大串json了。
这里推荐大家将脚本分类便于管理。
保存好之后,打开MC进入世界查看配方是否正确,如有误,则根据报错修改(日志中有,启动游戏时对话框也有),修改完成后退出重进输入/reload重载。
CraftTweaker还有很多用法,功能非常强大,大家多看官方文档,他随时有可能变化(我写教程时只有1.18的文档),最后希望对你有用,希望大佬多多指点。
Happy tweaking!