Skip to content

自定义刷怪箱方块 ​

自定义刷怪箱方块能够自动生成指定类型的生物,类似原版刷怪笼。你只需在行为包 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 组件 ​

键类型默认值说明
typestring—必填,生成的生物标识符。原版生物格式为 minecraft:<实体ID>,自定义生物为其 identifier

type 取值示例:

值说明
minecraft:zombie僵尸
minecraft:skeleton骷髅
minecraft:spider蜘蛛
minecraft:parrot鹦鹉
mymod:custom_mob自定义生物

资源包配置 ​

blocks.json ​

刷怪箱方块必须在资源包根目录的 blocks.json 中注册,否则方块无法正常渲染。贴图资源名可以使用原版 mob_spawner 的贴图,也可以自定义。

json
{
    "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

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

json
{
    "format_version": [1, 1, 0],
    "mymod:zombie_spawner": {
        "textures": "mob_spawner",
        "sound": "stone"
    }
}

资源包 — 本地化 ​

文件路径:资源包/texts/zh_CN.lang

tile.mymod:zombie_spawner.name=僵尸刷怪箱

常见问题 ​

刷怪箱方块放置后没有生物生成 ​

原因: 刷怪箱需要满足原版刷怪笼的生成条件(光照、空间、距离等)。

排查步骤:

  1. 确认 netease:mob_spawner 的 type 值拼写正确
  2. 确认目标生物的 identifier 存在(原版生物或已注册的自定义生物)
  3. 确认刷怪箱周围有足够的生成空间
  4. 确认玩家在刷怪笼的激活范围内(原版为 16 格)

方块渲染异常(黑色或不可见) ​

原因: 未在资源包 blocks.json 中配置该方块。

刷怪箱方块必须在 blocks.json 中注册贴图和声音。即使不需要自定义贴图,也要添加配置项并引用原版 mob_spawner 贴图。

同时配置了 netease:block_entity 导致异常 ​

原因: 刷怪箱方块会自动创建方块实体,不能再额外配置 netease:block_entity 组件。

如果你需要在刷怪箱上存储自定义数据或监听 tick 事件,请通过原版方块实体接口操作,不要添加 netease:block_entity。

刷怪箱与含雪方块冲突 ​

原因: 刷怪箱方块与自定义含雪方块(netease:snow_recover_able)不兼容。

请不要在刷怪箱方块上同时使用含雪相关组件。

注意

自定义刷怪箱方块不支持自定义方块模型。如果需要为刷怪箱配置特殊外观,请考虑使用方块实体的实体模型挂载功能。

下一步 ​