本文针对新手开发者,从零开始讲解如何使用Minecraft Forge,制作第一个属于自己的Mod,教程以当前主流的1.20.1版本为例,其他版本流程基本一致,仅对应工具版本调整即可。
环境搭建是Mod开发的第一步,严格按照步骤操作可以避免90%的新手问题:
安装JDK: 1.20+版本的Minecraft需要JDK 17支持,请到正规渠道下载(推荐清华大学开源镜像站获取,下载速度更快),安装完成后配置系统环境变量。 验证安装:打开CMD命令提示符,输入java -version,如果输出对应JDK17版本号,说明安装配置成功。
安装开发IDE: 推荐使用IntelliJ IDEA,免费的社区版完全满足Mod开发需求,从JetBrains官网下载安装即可。
Forge是目前最主流的Mod加载框架和开发框架,步骤如下:
打开Forge官方网站,找到对应你要开发的Minecraft版本,选择MDK开发包下载(优先选择标注为"Recommended"的稳定版)。
将下载好的压缩包解压到全英文无空格路径的文件夹中,绝对不要放在中文名称文件夹下,否则会出现依赖加载错误。
打开IntelliJ IDEA,选择Open,选中你刚刚解压MDK的文件夹,打开项目。
等待IDEA自动识别项目结构,随后配置项目SDK:点击File > Project Structure > Project,将SDK选择为你安装好的JDK17,语言级别也设置为17,点击确定保存。
如果国内Gradle依赖下载过慢,可以在项目根目录的build.gradle中,将maven源替换为国内镜像,添加阿里云镜像代码如下:
repositories {maven { url 'https://maven.aliyun.com/repository/public' }mavenCentral()maven { url 'https://maven.minecraftforge.net' }}等待IDEA自动下载所有依赖,这个过程根据网络情况需要3-10分钟,右下角出现build successful提示即代表构建完成。
在IDEA右侧Gradle面板中,找到forgegradle > runClient,双击执行,会自动启动开发测试版Minecraft,如果游戏能正常启动,且在Mod列表中看到示例Mod,说明环境已经完全搭建成功,可以开始开发了。
环境搭建完成后,我们以最基础的添加自定义物品为例,讲解Mod开发的基础流程:
模组主类是整个Mod的入口,所有初始化代码都从这里启动,我们在src/main/java目录下创建包名(比如com.example.mymod),然后新建主类ExampleMod,代码如下:
package com.example.mymod;import net.minecraftforge.eventbus.api.IEventBus;import net.minecraftforge.fml.common.Mod;import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;// 这里MOD_ID必须全小写,不能有特殊字符,是模组的唯一标识@Mod(ExampleMod.MOD_ID)public class ExampleMod {public static final String MOD_ID = "mymod";public ExampleMod() {IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();// 注册我们的物品ModItems.ITEMS.register(bus);}}Forge目前推荐使用DeferredRegister进行内容注册,统一管理避免加载顺序问题,在同一个包下新建ModItems类:
package com.example.mymod;import net.minecraft.world.item.Item;import net.minecraft.world.item.SwordItem;import net.minecraft.world.item.Tiers;import net.minecraft.world.item.FoodProperties;import net.minecraftforge.registries.DeferredRegister;import net.minecraftforge.registries.ForgeRegistries;import net.minecraftforge.registries.RegistryObject;public class ModItems {// 创建物品注册器,指定注册类型和我们的模组IDpublic static final DeferredRegister
在src/main/resources目录下,创建路径assets/mymod/lang,新建文件en_us.json(英文名称)和zh_cn.json(中文名称),中文名称内容如下:
}"item.mymod.test_sword": "测试剑","item.mymod.custom_apple": "自定义苹果"}创建路径assets/mymod/models/item,为测试剑添加模型文件test_sword.json,可以直接沿用钻石剑的模型:
{"parent": "item/handheld","textures": {"layer0": "minecraft:item/diamond_sword"}}自定义苹果同理,沿用苹果的模型即可。
编写完成后,就可以打包出可以分享的Mod文件了:
在IDEA的终端中输入命令:
.\gradlew build
(Mac/Linux系统使用./gradlew build)
2. 等待构建完成,你的Mod打包文件会生成在项目根目录的build\libs文件夹中,后缀为.jar的文件就是你的Mod,带-sources后缀的是源码包,不需要放入游戏。
3. 将生成的jar文件复制到你安装了对应Forge的游戏mods文件夹中,启动游戏,在Mod列表中就能看到你的Mod,进入游戏后就可以拿到你添加的自定义物品了。
新手注意事项⚠️:
开发Mod前最好掌握基础的Java语法,尤其是面向对象的知识,否则很容易遇到看不懂代码的问题。
新手建议从简单物品、方块的添加开始练手,熟悉注册机制和事件系统之后,再尝试开发更复杂的功能,比如新生物、新维度、自定义UI等。
遇到问题优先查阅Forge官方文档,或者去国内Forge开发社区提问,不要盲目修改配置文件。