Skip to content

/locate 定位结构

定位最近的生物群系或结构坐标,支持限定仅搜索新生成区块

命令
官方•Dingding OvO · 2026-08-12

查找当前维度中距离执行者最近的指定结构或生物群系的坐标,并把结果输出到聊天栏。基岩版 1.19.30 起,旧版 /locate <结构> 语法被 structure 与 biome 两个子命令取代;1.21.100 起,生物群系 ID 必须带 minecraft: 命名空间。

原理

/locate 定位结构时并不扫描世界里的方块,而是查询世界的结构放置数据。世界生成时,每种结构都根据世界种子和它所属结构集的间距规则,被预先安排在固定的网格位置上,这些位置在区块真正生成之前就已经由种子确定。因此命令能在尚未探索、甚至尚未生成的区块中找到结构,这正是基岩版独有参数 useNewChunksOnly 能够成立的原因。

命令只搜索执行者当前所在的维度,并且有有限的搜索范围。如果目标结构根本不生成在当前维度(例如在主世界搜索 fortress),命令会直接失败并提示该维度不生成此结构;如果范围内找不到任何实例,则返回无法定位的错误。返回的坐标是结构「起点」的近似水平位置,垂直坐标被忽略(输出中用 ~ 表示),因为结构的实际高度由落地处的地形决定,不参与定位计算。基岩版的精确搜索范围官方未明确公开,本处标「待验证」。

/locate biome 走另一条路径,查询的是生物群系数据。命令在搜索范围内以 32 格的水平分辨率、64 格的垂直分辨率对生物群系进行采样,因此过于狭窄或细长的生物群系可能因为采样点恰好落在相邻生物群系而找不到。与结构不同,生物群系定位会返回完整的三维坐标。

从状态角度看,/locate 是一次只读查询:它不会生成区块、不会传送实体,也不会改写任何世界状态或计分板。它只读取由种子衍生的结构位置数据或生物群系数据,把坐标组织成聊天消息返回。在命令方块或 /execute 中,命令成功时返回成功计数 1、失败返回 0,可用于条件判断;但基岩版不会像 Java 版那样把距离作为 result 值供 /execute store 读取。

语法

结构定位(1.19.30+):

/locate structure <结构> [useNewChunksOnly]

生物群系定位(1.19.10+):

/locate biome <生物群系>

1.19.30 之前旧版直接写 /locate <结构>,现已弃用。

参数

/locate structure 的参数:

  • <结构> — 结构 ID(StructureFeature 枚举),要定位的结构类型。基岩版结构 ID 不带 minecraft: 命名空间,完整列表见下方「结构 ID」表。
  • [useNewChunksOnly] — 布尔值(true 或 false),指定是否只在新生成的区块中查找。默认 false,即在所有区块中查找;设为 true 时只返回尚未生成区块里的结构,适合寻找未探索区域内的建筑。

/locate biome 的参数:

  • <生物群系> — 生物群系 ID(Biome 枚举),要定位的生物群系。1.21.100 起必须带 minecraft: 命名空间(如 minecraft:desert),常见值见「生物群系 ID」表。

结构 ID

结构 ID说明所在维度
village村庄主世界
stronghold要塞(含末地传送门)主世界
mineshaft废弃矿井主世界
mansion林地府邸主世界
monument海底遗迹主世界
shipwreck沉船主世界
ruins海底废墟主世界
buried_treasure埋藏的宝藏主世界
pillager_outpost掠夺者前哨站主世界
ruined_portal废弃传送门主世界、下界
ancient_city远古城市主世界
trail_ruins古迹废墟主世界
trial_chambers试炼密室主世界
temple沙漠神殿、雪屋、丛林神庙、沼泽小屋(共用)主世界
fortress下界要塞下界
bastion_remnant堡垒遗迹下界
end_city末地城末地

生物群系 ID

生物群系 ID说明
minecraft:plains平原
minecraft:desert沙漠
minecraft:mushroom_island蘑菇岛
minecraft:swampland沼泽
minecraft:mesa恶地
minecraft:deep_dark深暗之域
minecraft:warped_forest诡异森林(下界)
minecraft:crimson_forest绯红森林(下界)
minecraft:the_end末地

示例

定位最近的村庄: /locate structure village

在主世界查找最近的村庄,聊天栏返回其近似水平坐标和距离,y 坐标显示为 ~。

定位最近的远古城市: /locate structure ancient_city

查找最近的远古城市。远古城市生成在深暗之域的地下,返回坐标后需向下挖掘才能到达。

只在未探索区块中查找试炼密室: /locate structure trial_chambers true

加 true 后只搜索尚未生成的新区块,返回离执行者最近、且位于未探索区域内的试炼密室坐标,避免重复指向已经到访过的建筑。

定位最近的沙漠生物群系: /locate biome minecraft:desert

返回最近沙漠生物群系的一个采样点三维坐标。与结构定位不同,这里会给出完整的 x y z 坐标。

定位下界的诡异森林(需先进入下界): /locate biome minecraft:warped_forest

在下界中查找最近的诡异森林生物群系。若在主世界执行,会因当前维度不存在该生物群系而失败。

基岩版注意

  • 需要 OP 等级 1(需开启作弊)。
  • 与 Java 版差异:基岩版没有 /locate poi(兴趣点)子命令;结构 ID 不带命名空间,而 Java 版使用命名空间 ID 并支持结构标签(如 #village)。
  • 结构名与 Java 版不同:海底废墟是 ruins 而非 ocean_ruin,四类神殿(沙漠神殿、雪屋、丛林神庙、沼泽小屋)在基岩版共用一个 temple ID。
  • useNewChunksOnly 是基岩版独有参数,Java 版没有对应选项。
  • 版本兼容:1.19.30 起旧 /locate <结构> 语法弃用,改用子命令;1.19.30.21 起结构名改用下划线写法(如 ancient_city、pillager_outpost,旧版无下划线);1.21.100 起 /locate biome 必须写命名空间。
  • 命令只搜索当前维度,跨维度的结构(如下界要塞、末地城)需先传送到对应维度再执行。
  • 返回的坐标是结构起点的近似水平位置,不是精确入口,实际建筑可能有一定偏移。

常见问题

为什么在主世界执行 /locate structure fortress 会失败?

下界要塞只在下界生成,而 /locate 只搜索执行者当前所在的维度。你需要先传送到下界,再执行 /locate structure fortress。

/locate 能找到还没探索过的区块里的结构吗?

能。结构位置由世界种子决定,命令读取的是结构放置数据而非扫描已生成的方块,因此能定位未生成区块中的结构。用 useNewChunksOnly true 可以限定只返回新生成区块里的结构。

返回的坐标里为什么 y 是 ~?

结构定位会忽略垂直坐标,因为结构的具体高度由它落地处的地形决定,不参与定位计算。需要你到达返回的水平坐标后,再根据地形自行寻找入口。

相关命令

  • /tp — 传送到 /locate 返回的坐标。
  • /execute — 在其它维度或其它执行位置运行 /locate,或对定位结果做条件判断。