Entity Creator 是一个功能强大的工具,主要用于创建和管理游戏中的各种实体,在 Minecraft 原版模组(尤其是基于 Forge 或 Fabric 的模组)中,实体是游戏世界中所有可移动、可交互对象的统称,比如生物、掉落物、投射物(箭、火球)等等。
这份教程将从零开始,带你了解 Entity Creator 的核心功能,并手把手教你创建一个简单的自定义实体。
第一部分:Entity Creator 是什么?
核心概念: Entity Creator 是一个可视化编辑器,它让你通过图形界面的方式来定义一个实体的各种属性,而无需(或只需少量)手写复杂的 Java 代码,它会自动生成大量基础的实体类代码,让你可以专注于实体的独特行为。
主要功能:
- 基础属性设置: 设置实体的名称、标识符、大小、碰撞箱、生命值、护甲值等。
- 渲染设置: 定义实体应该使用哪个模型、哪个纹理贴图、渲染尺寸等。
- 行为设置:
- 移动: 设置移动速度、是否飞行、是否游泳。
- 目标选择: 定义实体会主动攻击谁,或者谁会攻击它(僵尸会攻击村民,村民会攻击僵尸)。
- 生成规则: 设置实体可以在哪些生物群系自然生成。
- 掉落物: 定义实体死亡时掉落哪些物品。
- AI(行为树): 通过拖拽节点的方式,配置实体的复杂行为,比如巡逻、攻击、躲避等。
- 数据同步: 自动处理实体数据在客户端和服务器之间的同步,保证游戏体验一致。
- 事件处理: 提供了实体生命周期中关键事件(如生成、死亡、受到攻击等)的钩子,方便你添加自定义逻辑。
第二部分:准备工作
在开始之前,请确保你已经准备好以下环境:
- IDE (集成开发环境): 推荐使用 IntelliJ IDEA (社区版免费) 或 VS Code。
- Forge MDK (Mod Development Kit): 从 Minecraft Forge 官网下载与你目标 Minecraft 版本对应的 MDK,Entity Creator 通常作为 Forge MDK 的一部分或一个推荐的插件存在。
- 安装 Entity Creator 插件:
- 如果使用 IntelliJ IDEA,请进入
File->Settings->Plugins。 - 搜索
Forge MDK Plugin或Entity Creator,然后安装它。 - 重启 IDE 使插件生效。
- 如果使用 IntelliJ IDEA,请进入
第三部分:详细教程 - 创建你的第一个实体
我们将创建一个非常简单的实体:"漂浮的方块" (Floating Cube),它不会动,也不会攻击,只是静静地悬浮在空中,让你熟悉创建实体的基本流程。
步骤 1:创建新实体
- 在你的项目结构中,找到
src/main/java目录。 - 右键点击你的主 Mod 包(
com.example.mymod)。 - 选择
New->Entity。 - 在弹出的窗口中,为你的实体命名,
FloatingCube。 - 点击
OK,Entity Creator 窗口将会打开。

步骤 2:设置基础属性
在 Entity Creator 界面的左侧,你会看到几个标签页,我们先从 General (常规) 标签页开始。
- Entity Name: 输入
Floating Cube,这是在游戏中显示的名称。 - Entity ID: 输入
floating_cube,这是实机的唯一标识符,通常使用小写字母和下划线。 - Entity Class Name: 保持默认的
FloatingCube,这是生成的 Java 类名。 - Mob Category: 选择
Misc(杂项),这决定了实体的生成位置和行为组别。 - Spawn Egg: 点击 号,选择一种颜色作为生成蛋的颜色,比如紫色。
- Hitbox: 设置碰撞箱大小,对于一个小方块,可以设置为
Width: 0.8和Height: 0.8。 - Attributes (属性):
- Max Health: 设置生命值,
0。 - Follow Range: 设置寻路范围,设为
0表示它不会主动移动。 - Knockback Resistance: 击退抗性,设为
0。 - Movement Speed: 移动速度,设为
0。 - Attack Damage: 攻击伤害,设为
0。
- Max Health: 设置生命值,

步骤 3:设置渲染
点击 Rendering (渲染) 标签页,告诉游戏如何显示我们的实体。
- Model: 这是关键,我们使用一个方块模型。
- 点击
Select,在弹出的窗口中选择Built-in->Cube。
- 点击
- Texture: 为方块选择一个纹理。
- 点击
Select,然后点击 号创建一个新的纹理。 - 你可以上传一张图片,或者使用一个简单的纯色材质,为了简单,我们创建一个紫色的纹理。
- 点击
- Animations: 我们不需要动画,所以保持默认。
- Render Size: 调整模型在游戏中的显示大小,可以设置为
0, 1.0, 1.0。 - Shadow Radius: 设置阴影大小,可以设为
5。

步骤 4:保存并生成代码
你的实体已经基本定义好了,点击 Entity Creator 窗口右上角的 "Save" 按钮。
- 注意: Entity Creator 会自动在正确的位置生成必要的文件,包括:
FloatingCube.java- 实体主类。FloatingCubeRenderer.java- 实体渲染类。FloatingCubeModel.java- 实体模型类。- 以及在
ModEntities.java中注册你的实体。
步骤 5:添加实体到游戏中
仅仅生成代码是不够的,你还需要让游戏知道这个新实体的存在。
-
打开
ModEntities.java文件。 这个文件通常在src/main/java/yourmod/目录下。 -
在
public static void registerAll()方法中,你会看到一行类似这样的代码:Registry.register(BuiltInRegistries.ENTITY_TYPE, new ResourceLocation(MyMod.MOD_ID, "floating_cube"), FloatingCube.FEATURE);
这行代码是 Entity Creator 自动添加的,它负责在游戏的实体注册表中注册你的
FloatingCube。 -
在主 Mod 类中添加实体到实体类型选择器。
- 打开你的主 Mod 类(
MyMod.java)。 - 找到
public static final DeferredRegister<EntityType<?>> ENTITIES = ...这行。 - 在
public MyMod()构造函数中,添加以下代码,以便你的实体可以被刷怪蛋或命令生成:// 在构造函数中添加 EntityTypeSpawnEgg.addSpawn(FloatingCube.class, 50, 1, MobCategory.MONSTER, new ResourceLocation("overworld"));FloatingCube.class: 你的实体类。50: 生成权重(数字越大,生成概率越高)。1: 最小生成数量。MobCategory.MONSTER: 生成类别,我们之前选的是Misc,这里保持一致用MONSTER也可以,或者用CREATURE。new ResourceLocation("overworld"): 生成的维度,这里是主世界。
- 打开你的主 Mod 类(
步骤 6:运行游戏测试
- 确保你的代码没有错误。
- 点击 IDE 旁边的 "Run" 按钮(绿色三角)启动游戏。
- 进入游戏,在创造模式物品栏中找到你设置的紫色生成蛋。
- 将它放置在地面上,你应该能看到一个紫色的方块悬浮在那里!

恭喜!你已经成功创建了你的第一个自定义实体!
第四部分:进阶技巧与常见问题
进阶技巧
-
自定义 AI (行为树):
- 在
General标签页下找到Goals(目标)。 - 点击 号,你可以添加预设的行为,
Float(漂浮)、Look At Player(看向玩家)、Random Look Around(随机环顾四周) 等。 - 拖拽节点可以调整它们的优先级和执行顺序。
- 在
-
处理自定义 NBT 数据:
- 如果你想让实体记住一些信息(比如它漂浮的高度),你需要使用 NBT (Named Binary Tag)。
- 在生成的
FloatingCube.java文件中,你会找到addAdditionalSaveData和readAdditionalSaveData方法,在这两个方法中,你可以读写自定义的 NBT 标签。
-
实现自定义逻辑:
- Entity Creator 生成的代码是一个很好的起点,你可以随时打开这些
.java文件,手动添加你想要的功能。 - 在
FloatingCube.java中重写tick()方法,可以每帧执行一些逻辑,比如让实体上下浮动。
- Entity Creator 生成的代码是一个很好的起点,你可以随时打开这些
常见问题
-
Q: 实体在游戏中看不见/是黑色的?
- A: 这通常是渲染问题,检查
Rendering标签页中的Model和Texture是否正确设置,确保纹理文件路径正确,并且被正确打包进资源包。
- A: 这通常是渲染问题,检查
-
Q: 游戏崩溃,报错
NoSuchMethodError或ClassNotFoundException?- A: 这通常是代码生成或项目配置问题,检查 Entity Creator 是否正确保存,并重新生成代码,确保你的
build.gradle文件配置正确,并且所有依赖都已正确下载。
- A: 这通常是代码生成或项目配置问题,检查 Entity Creator 是否正确保存,并重新生成代码,确保你的
-
Q: 我想创建一个更复杂的实体,比如一个会发射弹药的生物?
- A: Entity Creator 提供了
Goals和Attributes来实现基本行为,对于发射弹药这种复杂行为,你可能需要在生成的 Java 代码中手动实现,通常需要重写aiStep()方法,并在其中添加判断逻辑和调用shoot()方法。
- A: Entity Creator 提供了
Entity Creator 是一个降低模组开发门槛的利器,它将繁琐的代码编写工作转化为直观的拖拽和点击配置,让你能更快地将创意变为现实。
学习路径建议:
- 从简单开始: 先创建一个没有 AI 的静态实体,熟悉整个流程。
- 添加基础行为: 尝试给实体添加一些简单的 AI,比如看向玩家、随机移动。
- 深入代码: 当你对界面熟悉后,开始阅读和修改生成的 Java 代码,理解其工作原理,并添加更复杂的功能。
希望这份教程能帮助你顺利开启 Entity Creator 的使用之旅!祝你模组开发愉快!
