自定义刷怪箱方块
自定义刷怪箱方块能够自动生成指定类型的生物,类似原版刷怪笼。你只需在行为包 JSON 中声明 base_block 和 netease:mob_spawner 组件,引擎就会赋予方块完整的刷怪能力。
前置条件
本功能不需要开启实验性玩法。请先阅读 自定义基础方块 了解方块的通用注册流程和 JSON 组件基础,并确保行为包与资源包的目录结构已准备就绪。
概述
自定义刷怪箱的核心原理是:通过 base_block: "mob_spawner" 让引擎将该方块识别为刷怪笼类型,再通过 netease:mob_spawner 组件指定要生成的生物。方块放入世界后,引擎会自动按原版刷怪笼的逻辑周期性地生成实体。
自定义刷怪箱支持生成原版生物和自定义生物。原版生物使用 minecraft: 命名空间(如 minecraft:zombie),自定义生物使用其 description.identifier(如 mymod:custom_mob)。
关键特性:
- 方块会自动创建方块实体(Block Entity),不需要额外配置
netease:block_entity组件 - 与自定义含雪方块(
netease:snow_recover_able)不兼容 - 必须在资源包的
blocks.json中添加该方块的配置,否则方块无法正常渲染 - 不支持自定义方块模型(
netease:block_geometry)
netease:mob_spawner 组件
| 键 | 类型 | 默认值 | 说明 |
|---|---|---|---|
type | string | — | 必填,生成的生物标识符。原版生物格式为 minecraft:<实体ID>,自定义生物为其 identifier |
type 取值示例:
| 值 | 说明 |
|---|---|
minecraft:zombie | 僵尸 |
minecraft:skeleton | 骷髅 |
minecraft:spider | 蜘蛛 |
minecraft:parrot | 鹦鹉 |
mymod:custom_mob | 自定义生物 |
资源包配置
blocks.json
刷怪箱方块必须在资源包根目录的 blocks.json 中注册,否则方块无法正常渲染。贴图资源名可以使用原版 mob_spawner 的贴图,也可以自定义。
{
"format_version": [1, 1, 0],
"mymod:zombie_spawner": {
"textures": "mob_spawner",
"sound": "stone"
}
}如果需要自定义贴图,在 textures/terrain_texture.json 中配置资源名映射,再在 blocks.json 中引用即可。
本地化
在资源包的 texts/zh_CN.lang 中添加:
tile.mymod:zombie_spawner.name=僵尸刷怪箱完整 JSON 示例
行为包 — 方块定义
文件路径:行为包/netease_blocks/zombie_spawner.json
{
"format_version": "1.10.0",
"minecraft:block": {
"description": {
"identifier": "mymod:zombie_spawner",
"base_block": "mob_spawner",
"register_to_create_menu": true,
"category": "Nature"
},
"components": {
"netease:mob_spawner": {
"type": "minecraft:zombie"
}
}
}
}资源包 — blocks.json
文件路径:资源包/blocks.json
{
"format_version": [1, 1, 0],
"mymod:zombie_spawner": {
"textures": "mob_spawner",
"sound": "stone"
}
}资源包 — 本地化
文件路径:资源包/texts/zh_CN.lang
tile.mymod:zombie_spawner.name=僵尸刷怪箱常见问题
刷怪箱方块放置后没有生物生成
原因: 刷怪箱需要满足原版刷怪笼的生成条件(光照、空间、距离等)。
排查步骤:
- 确认
netease:mob_spawner的type值拼写正确 - 确认目标生物的 identifier 存在(原版生物或已注册的自定义生物)
- 确认刷怪箱周围有足够的生成空间
- 确认玩家在刷怪笼的激活范围内(原版为 16 格)
方块渲染异常(黑色或不可见)
原因: 未在资源包 blocks.json 中配置该方块。
刷怪箱方块必须在 blocks.json 中注册贴图和声音。即使不需要自定义贴图,也要添加配置项并引用原版 mob_spawner 贴图。
同时配置了 netease:block_entity 导致异常
原因: 刷怪箱方块会自动创建方块实体,不能再额外配置 netease:block_entity 组件。
如果你需要在刷怪箱上存储自定义数据或监听 tick 事件,请通过原版方块实体接口操作,不要添加 netease:block_entity。
刷怪箱与含雪方块冲突
原因: 刷怪箱方块与自定义含雪方块(netease:snow_recover_able)不兼容。
请不要在刷怪箱方块上同时使用含雪相关组件。
注意
自定义刷怪箱方块不支持自定义方块模型。如果需要为刷怪箱配置特殊外观,请考虑使用方块实体的实体模型挂载功能。
