在Minecraft的模组有两个比较熟悉的模组,分别为CraftTweaker和kubejs,其中他们的格式为.zs和.js,都是用于魔改,其中kubejs可以完成40%的模组内容,因为他包括kubejs curios自定义饰品,lootjs战利品修改
1.准备工作
1.需要下载Vs Code编程软件和MOD Probejs和kubejs
2.在下载完后,打开你的Vs Code,在软件里面下载probejs和Chinese汉化

3.打开你的游戏,等待文件的生成,首次使用probejs dump(后面的mod增减的都需要的使用)
|-----------|-----------|
| /kjs hand | 获取手中的物品ID |
2.魔改配方
主要是在server_scripts文件夹当中
javascript
//配方的魔改
ServerEvents.recipes(event => {
// 合成台-有序合成
event.shaped(需要修改合成的物品ID,[
['物品ID','物品ID','物品ID'],
['物品ID','物品ID','物品ID'],
['物品ID','物品ID','物品ID']
])
// 合成台-无序合成
event.shapeless(Item.of('物品ID',合成的数量),[
])
// 熔炉
event.smelting('物品ID','物品ID',获得的经验值,燃烧时间(Tick));
// 烟熏炉
event.smoking('物品ID','物品ID',获得的经验值,燃烧时间(Tick));
// 高炉
event.blasting('物品ID','物品ID',获得的经验值,燃烧时间(Tick));
// 营火
event.campfireCooking('物品ID','物品ID',获得的经验值,燃烧时间(Tick))
//锻造台
event.smithing('物品ID','物品ID','物品ID');
}
3.物品的注册
主要在startup_scripts文件夹当中,通常需要在assete文件夹里添加一个lang文件夹,并创建一个zh_cn.json文件来显示,并在里面的textures/item放入的准备的材质
javascript
StartupEvents.registry('item',event=>{
event.create('id')
.tag('物品标签')
.disPlayName('没有在zh_cn.json的汉化显示的名称')
})
|-------------------|---------|
| 方法名 | 方法用法 |
| item | 物品注册 |
| mod_effect | 药水效果的注册 |
| enchantment | 附魔类型 |
| fluid | 流体注册 |
| creative_mode_tab | 创造物品栏注册 |
4.client_scripts的运用
这个文件夹主要是物品的描述添加以及按键的事件绑定
javascript
//物品的文本描述
ItemEvents.tooltip(event => {
event.add("物品ID","你要添加的文本")
event.add("物品ID",["文本1","文本2"])
//这个物品属于xx玩家,其中名字为红色
event.add("物品ID",Text.of("该物品属于" + Client.player.username).red())
//你要修改的物品,传入物品,和物品描述
event.addAdvanced("物品ID",(item,text) => {
//移除这个物品的某一行描述
text.remove(0)
//添加这个物品的某一行描述
text.add(0,"一个铁锭")
//event.Shift 为添加按住shift键所添加的文本描述
//event.Ctrl 为添加按住ctrl键所添加的文本描述
//event.atl 为添加按住atr键所添加的文本描述
//通常搭配if-else if使用
})
})
5.在config文件夹里的文件作用
client.properties文件
javascript
#KubeJS Client Properties
#Sat May 10 12:49:15 CST 2025
//背景颜色,主要使用16进制颜色
backgroundColor=2E3440
//进度条边框颜色也是使用16进制颜色
barBorderColor=ECEFF4
//是否导出纹理图集(用于调试),默认为false
exportAtlases=false
//菜单背景亮度
menuBackgroundBrightness=64
//是否禁用配方书
disableRecipeBook=false
//主要修改游戏标题的显示,通常默认为游戏文件夹名称
title=
//进度条颜色
barColor=ECEFF4
//是否覆盖颜色,通常搭配下面的LogColor使用
overrideColors=false
fmlLogColor=ECEFF4
//是否显示标签颜色
showTagNames=false
//FML内存使用情况文本颜色
fmlMemoryColor=ECEFF4
//菜单背景图片缩放比例
menuBackgroundScale=32.0
//是否模糊缩放的资源包图标
blurScaledPackIcon=true
//内部菜单背景亮度
menuInnerBackgroundBrightness=32
common.properties文件
javascript
#KubeJS Common Properties
#Sat May 10 12:49:16 CST 2025
//是否匹配JSON配方。当设置为true时,KubeJS会尝试将脚本中的配方与数据包中的配方匹配。这有助于在重载时保持一致性。
matchJsonRecipes=true
//是否允许异步流。这会影响KubeJS处理文件流的方式,通常用于性能优化。
allowAsyncStreams=true
//是否在聊天栏中公告重载。当使用/reload命令时,会在聊天栏显示KubeJS重载的信息。
announceReload=true
//是否在启动错误时显示GUI。如果KubeJS脚本在启动时出现错误,会显示一个图形界面来报告错误。
startupErrorGUI=true
//是否仅服务器端。如果设置为true,则KubeJS将仅加载服务器端脚本,客户端脚本将被
serverOnly=false
//是否隐藏服务器脚本错误。如果设置为true,则不会在日志中显示服务器脚本的错误。
hideServerScriptErrors=false
//是否在配置中保存开发属性。这通常用于开发环境,保存一些开发相关的配置。
saveDevPropertiesInConfig=false
//设置包模式。可以设置为"development"(开发)或"production"(生产),或者留空。这会影响一些调试行为。
packmode=
//是否忽略自定义唯一配方ID,主要控制是否忽略其他模组添加的唯一配方ID
ignoreCustomUniqueRecipeIds=false
//设置KubeJS创造模式标签页的图标。这里设置为紫色染料。注意,在配置文件中反斜杠用于转义冒号,但实际上在properties文件中,冒号不需要转义,这里可能是配置保存时的格式。
creativeModeTabIcon=minecraft\:purple_dye
//启动错误报告URL。当发生启动错误时,可以将错误报告发送到指定的URL。留空则不上报。
startupErrorReportUrl=
结尾
有些可以,比如说玩家的事件方法都都大部分在CryChic文档里都有,其中全部是都是一些大佬总结的