/summon 生成实体
在指定位置生成实体,支持生成事件与自定义名称
/summon 在指定位置生成一个实体,是地图制作、刷怪系统和命令方块机关中最常用的命令之一。与 Java 版相比,基岩版没有 NBT 数据参数,但额外提供了「生成事件」和「命名标签」两个参数,用于在生成时定制实体状态与名称。
原理
/summon 的本质是向世界的实体列表插入一个新的实体实例。执行命令时,游戏会先根据实体 ID 找到对应的实体定义(来自原版或行为包),在指定坐标处创建该实体对象,并将其登记到所在区块的实体列表里。从下一个游戏刻起,这个实体会像自然生成的实体一样被游戏循环 tick,开始计算 AI、碰撞与物理。
基岩版实体采用组件化架构。每个实体类型的定义文件里,除了若干组件(component)外,还声明了多个「生成事件」(spawn event),每个生成事件描述一组需要添加或移除的组件组(component group)。/summon 的第三个参数就是选择其中一个生成事件,在实体创建瞬间应用这些组件组的变化。例如苦力怕的 minecraft:become_charged 会添加「带电」组件组,使它变成爆炸威力更强的闪电苦力怕。因此生成事件并非任意字符串,它必须与该实体定义中声明的生成事件完全匹配,否则命令会直接报错。
被召唤的实体与命令的执行上下文紧密相关。生成坐标支持绝对坐标、相对坐标 ~ 和局部坐标 ^,省略时默认取命令执行者(玩家或命令方块)的位置。实体一旦生成,就与其它实体共用同一套世界规则:它受区块加载约束,所在区块卸载后即停止 tick;也受游戏规则与碰撞系统的共同影响。生成后你可以通过选择器(如 @e)或 /execute 继续定位和操作它。
部分实体类型在生成瞬间会触发额外效果,属于边界情况。闪电(lightning_bolt)会在生成时点燃周围方块并伤害附近实体;TNT 被召唤后以「已激活的 TNT 实体」形式存在,经过约 4 秒(80 游戏刻)引信后爆炸。此外,被召唤的实体默认不会自动获得任何命令效果,若需要它在生成后立即行动(如传送、附加效果),通常要配合选择器与 /execute 来驱动。
语法
/summon <实体类型> [生成坐标] [生成事件] [命名标签]
参数
<实体类型>— 字符串,实体 ID。要生成的实体类型,如zombie、creeper、tnt、lightning_bolt。基岩版中命名空间前缀minecraft:可以省略,zombie与minecraft:zombie等价。必须是当前世界可用的有效实体 ID。[生成坐标]— 坐标,x y z三个数值。实体的生成位置,支持绝对坐标、相对坐标~与局部坐标^。省略时默认在命令执行者的位置生成。[生成事件]— 字符串。行为包中为该实体声明的生成事件 ID,须带命名空间前缀(如minecraft:become_charged)。用于在生成瞬间改变实体状态,省略时按默认状态生成。[命名标签]— 字符串。实体的自定义名称,显示在实体头顶。以~开头时名称始终可见(即使隔着方块),否则按默认规则显示。
常用实体 ID
| 实体 | ID |
|---|---|
| 僵尸 | zombie |
| 骷髅 | skeleton |
| 苦力怕 | creeper |
| 蜘蛛 | spider |
| 末影人 | enderman |
| 烈焰人 | blaze |
| 凋灵骷髅 | wither_skeleton |
| 末影龙 | ender_dragon |
| 凋灵 | wither |
| 村民 | villager |
| 流浪商人 | wandering_trader |
| 铁傀儡 | iron_golem |
| 雪傀儡 | snow_golem |
| 恶魂 | ghast |
| 岩浆怪 | magma_cube |
| 史莱姆 | slime |
| 尸壳 | husk |
| 洞穴蜘蛛 | cave_spider |
| 女巫 | witch |
| 幻翼 | phantom |
| 掠夺者 | pillager |
| 卫道士 | vindicator |
| 唤魔者 | evoker |
| TNT | tnt |
| 闪电 | lightning_bolt |
| 盔甲架 | armor_stand |
| 矿车 | minecart |
掉落物实体(item)无法通过 /summon 指定其携带的物品内容,基岩版中要给予物品请使用 /give。
示例
在当前位置生成一只僵尸:
/summon zombie ~ ~ ~
在命令执行者所在位置生成一只普通僵尸。
在指定坐标生成一只苦力怕:
/summon creeper 100 64 100
在世界坐标(100, 64, 100)处生成一只苦力怕。
在头顶生成一个 TNT:
/summon tnt ~ ~1 ~
在命令执行者头顶 1 格处生成一个已激活的 TNT 实体,约 4 秒后爆炸。
生成一只闪电苦力怕:
/summon creeper ~ ~ ~ minecraft:become_charged
通过生成事件在当前位置生成一只闪电苦力怕,其爆炸威力与爆炸半径均强于普通苦力怕。
生成一只名称始终显示的守卫僵尸:
/summon zombie ~ ~1 ~ "~守卫"
在头顶生成一只名称为「守卫」的僵尸,由于名称以 ~ 开头,它会始终显示名称。
基岩版注意
- 需要 OP 等级 1。
- 基岩版不支持 Java 版的 NBT 数据参数(如
{...}),因此无法通过 /summon 直接生成骑乘实体或设置实体属性。 - 「生成事件」参数是基岩版独有,Java 版没有对应参数,它是基岩版实现实体状态定制的主要方式。
- 基岩版与 Java 版的部分实体 ID 不同,例如经验球实体在基岩版为
xp_orb,在 Java 版为experience_orb。 - 命名标签以
~开头时名称始终可见,不受玩家视线限制。 - 生成位置必须位于已加载的区块内,否则实体不会正常 tick。
- 网易版与国际版在实体 ID 与生成事件的支持上可能存在差异,本文档基于国际版编写,请以网易版实际测试为准。
常见问题
如何生成一只闪电苦力怕?
使用「生成事件」参数 minecraft:become_charged,例如 /summon creeper ~ ~ ~ minecraft:become_charged。这个生成事件会给苦力怕添加「带电」组件组,使其变成闪电苦力怕。
如何让召唤出的生物名字始终显示?
在「命名标签」参数中让名称以 ~ 开头,例如 /summon zombie ~ ~ ~ "~守卫"。~ 前缀会让名称标签始终可见,无需玩家注视该实体。
基岩版能像 Java 版那样用 NBT 生成骑乘实体吗?
不能。基岩版命令不支持 NBT 数据,/summon 也没有 NBT 参数。要建立骑乘关系,可以在生成实体后使用 /ride 命令。
被召唤的实体会不会自然消失?
被召唤的生物与自然生成的生物遵循相同的世界规则。所在区块一旦卸载,实体会停止 tick;生物类实体在长时间远离玩家后可能被游戏自动清除。具体的消失规则因生物类型和版本而异,若需长期保留实体,请保持其所在区块被加载,并在实际地图中测试确认。