.mcstructure 编辑器|基岩版结构文件

支持 Minecraft 基岩版和 Java 版,也支持两者所有常见或少见的服务端核心:Vanilla、Paper、Spigot、Purpur、Folia、Fabric、Forge、NeoForge、Mohist、Sponge、Bedrock Dedicated Server、PocketMine-MP、Nukkit、PowerNukkitX、Cloudburst、Dragonfly、Endstone、LeviLamina 等。完整列表。

.mcstructure 文件是基岩版结构方块写入的未压缩小端序 NBT。将文件拖入下方,可读取并编辑结构尺寸、方块调色板、方块索引和方块实体数据,再以相同编码下载。附加包或地图制作者因此无需重新打开世界即可修补结构。

结构方块基岩版附加包行为包小端序 NBT

将.mcstructure 文件拖放到这里

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · 区块转储数据

.mcstructure 内部内容

标签类型保存内容
format_versionInt结构格式修订版本,当前文件为 1
sizeInt 列表捕获区域的 X、Y、Z 尺寸
structure_world_originInt 列表结构在世界中的捕获位置
structureCompound以下全部内容都位于此处
structure.block_indicesInt[] 列表两层调色板索引,通常为方块层和含水层;-1 表示“保留当前位置原有内容”
structure.entitiesCompound 列表随结构捕获的实体
structure.palette.default.block_paletteCompound 列表每种不同的方块状态:name、states、version
structure.palette.default.block_position_dataCompound以位置的一维索引为键的方块实体 NBT

block_indices 中的索引顺序依次为 X、Z、Y,即调色板列表中的一维索引 (x * sizeZ + z) * sizeY + y。利用这一映射,可修复单个错误方块而无需重新生成结构。

常见修改

  • 替换所有同类方块:编辑 block_palette 中的一项,所有指向该索引的位置都会随之改变。
  • 修正方块状态:修改错误的 facing 或意外的 waterlogged,这些值位于 states 复合标签中。
  • 移除实体:从 entities 列表删除意外捕获的项目。
  • 修复方块实体数据:在 block_position_data 中修改箱子内容、告示牌文本和刷怪笼设置。
  • 检查版本标记:游戏更新后导入结构出现错误方块时,检查调色板项目的版本。

文件位置

结构方块会将文件保存到世界目录内的 structures/ 文件夹,文件名为 <namespace>_<name>.mcstructure。行为包则将文件放在包内的 structures/ 下,游戏按命名空间加载。两者格式相同,都能在此打开。

Java 版对应格式是 gzip 压缩的大端序 .nbt 结构文件,其编码和标签布局均不同。Java 编辑器页面有详细说明,本编辑器也能打开它们。

常见问题

可以将 .mcstructure 转换为 Java .nbt 结构吗?

编辑器可以将字节重新编码为大端序 gzip,但标签布局不同;Java 结构使用 palette/blocks,键名和方块名称也不同。重新编码的文件可以读取,但不是有效的 Java 结构。

为什么 .mcstructure 没有压缩?

基岩版将结构文件写为原始小端序 NBT,不带 gzip 包装。这是正常格式;编辑器会将其识别为基岩版原始格式。

block_indices 中的 -1 表示什么?

它表示结构不会改动该位置,因此放置结构时会保留世界中已有的方块。

可以通过编辑 size 调整结构大小吗?

不能只改此项。block_indices 对每个位置都有一个项目,因此数组长度必须与新体积完全一致。只修改 size 会生成游戏拒绝的文件。

相关工具