文章未完成,持续更新中……
数据无价,谨慎操作!!
正式操作前请备份好存档!
若出现存档损坏需自行承担!
该文章具有时效性与局限性!
时效性:Minecraft Bedrock 正式版 1.19.20(版本:10811071 Branch:r/19_u2)
局限性:Minecraft for Windows 10
此教程仅限基岩版正式版 1.17.30,测试版及其他版本可能存在差异。
出现问题要善用搜索引擎,并学会自己创造出解决问题的方法。
这篇教程如果有错误欢迎在评论区指出。
快速开始:
为什么写这篇文章(不重要)
在 2019 年我介绍了一款“我的世界编辑器”,虽然 B 站上还有不少介绍怎么编辑存档的,但目前还没看到什么特别详细的教程。
对于这个软件,我一直在期待着什么时候出中文版,我曾经有想过手动去汉化,但无奈本人能力有限,而且这款软件也没有开源,汉化什么的基本就别想了,到 2021 年 10 月 02 号为止还没有汉化或第三方的汉化版。
在我的视频的评论区里,也有不少观众有关于修改存档的问题。关于这些问题,也一并整理到这篇文章当中。
2022 年 8 月更新
因为地图和存档的编辑需要使用不同的软件,所以这篇文章主要介绍 NBT 的编辑。
由于个人精力有限,不再逐个说明各个标签及其参数的作用,以实现实际的需求的方法来介绍。
一些编辑器的简单介绍
以下内容截止自 2022 年 8 月。
- NBTExplorer
- 自 2017 年开始停更到现在。
- MCC ToolChest PE
- 状态不明,官网不能正常打开,似乎自 2020 年 9 月起停更。
- 我找到的版本太老(2018),以下是编辑最新基岩版存档时的结果。
- 背包编辑等功能不正常,当背包中第二行及第四行(即物品栏)存在物品时,编辑器报错且不能正常编辑,编辑器中第四行(即物品栏)对应游戏中背包第一行,编辑器第三行对应游戏中背包第三行。
- nbt 编辑正常,但不确定是否存在隐患。
- 区块查看和编辑不可用。
- 自定义超平坦可用,但存在问题。
- 自“洞穴与山崖”更新后,y 轴最低变为 - 64,使用超平坦自定义后,新的区块会在 y = 0 处生成。
- 制作虚空地图。
- Universal Minecraft Editor
- 该软件已停止更新。
- 同作者的另一软件 Universal Minecraft Converter 仍在更新,这是一款付费的存档转换软件,支持多个平台的 Minecraft。
- 2021 年 10 月该作者公布了正在开发的新软件 Universal Minecraft Tool,集成了 NBT 编辑和存档转换,暂无更多信息,详见。
- 大部分功能仍然可用。
- 区块编辑功能不能编辑 1.16 及之后版本的存档。
- Amulet Map Editor
- 十分活跃的开源项目。
- 可编辑基岩版新版存档的区块。
- 不支持编辑 NBT。
- Blocktopograph
- 一个安卓上的编辑器。
- 自 2017 年停更,原作者已弃坑。
- 汉化版地址:https://github.com/oO0oO0oO0o0o00/blocktopograph
- 鲜有活跃,上次活跃于 2021 年 12 月。
- 上次发布版本于 2020 年 7 月。
- 不支持编辑最新版地图。
- 可编辑 NBT。
存档位置
win10 版
正式版存档位置(复制到文件资源管理器地址栏然后按下回车):%appdata%\..\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\minecraftWorlds\
。
Preview 版存档位置取决于安装位置。
Android 版
Android 版存档位置取决游戏内设置和游戏版本.
文件存储位置设置为“外部”时:
- 1.18 之前:
/games/com.mojang/minecraftWorlds/
- 1.18 及之后:
/Android/data/com.mojang.minecraftpe/files/games/com.mojang/minecraftWorlds/
对于存档在”应用程序“的,可尝试安装“World Export on Mobile”,添加导出按钮然后导出存档:
如果设备有 root 权限,则在:/data/data/com.mojang.minecraftpe/files/games/com.mojang/minecraftWorlds/
。
NBT 及其结构的简单说明
Tag 类型 | 名称 | 说明 |
---|---|---|
Byte Tag | 字节整形标签 | 存储整数;大小:1 字节;范围:-128 ~ 127 |
Short Tag | 短整型标签 | 存储整数;大小:2字节;范围:-32768 ~ 32767 |
Int Tag | 整型标签 | 存储整数;大小:4字节;范围:-2147483648 ~ 2147483647 |
Long Tag | 长整型标签 | 存储整数;大小:1 字节;范围:-2147483648~2147483647 |
Float Tag | 单浮点型标签 | 存储小数;大小:4字节;范围:-3.4E+38 ~ 3.4E+38 |
Double Tag | 双浮点型标签 | 存储小数;大小:8字节;范围:-1.7E-308~1.7E+308 |
Byte Array Tag | 字节整形数组标签 | 存储一组整数;大小:1×n字节;范围:-128 ~ 127 |
Int Array Tag | 整型数组标签 | 存储一组整数;大小:2×n字节;范围:-32768 ~ 32767 |
String Tag | 字符串型标签 | 存储字符串 |
List Tag | 列表型标签 | 存储一个列表 |
Compound Tag | 复合标签 | 存储各种标签(可理解为文件夹) |
实例操作
由于其他编辑器弃坑依旧或官网不可访问,导致不易下载,以下均使用 Universal Minecraft Editor 来编辑存档。
关于如何使用编辑器,此处暂不做具体说明。
基本世界设置
打开地图后,点击左侧“World Settings”,右侧将展示所有世界设置。
部分设置如下(已验证)。标记 *
的表示:0 为关闭,1 为开启。标记 A
表示通过修改器修改不会导致不能获得成就。
名称 | 说明 |
---|---|
LevelNameA | 世界名称。 |
RandomSeedA | 种子。 |
DifficultyA | 游戏难度。0:和平,1:简单,2:普通,3:困难。 |
GameType | 默认游戏模式。0:生存,1:创造,2:冒险。 |
commandsEnabled* | 激活作弊。 |
pvp*A | 误伤。 |
showcoordinates*A | 显示坐标。 |
falldamage*A | 摔落伤害。 |
firedamage*A | 燃烧伤害。包括火、岩浆、炼药锅里的岩浆、岩浆块、恶魂的火球。 但是,通过发射器发射出的火焰弹在击中玩家时仍造成伤害,击中后产生的火焰对玩家不造成伤害。 |
drowningdamage*A | 溺水伤害。 |
freezedamage*A | 细雪伤害。 |
dofiretick*A | 火焰蔓延。 |
tntexplodes*A | TNT 爆炸。 |
respawnblocksexplode*A | 重生方块爆炸。 |
domobloot*A | 生物战利品。 |
naturalregeneration*A | 自然生命恢复。 |
dotiledrops*A | 方块掉落。 |
doimmediaterespawn*A | 立即重生。 |
falldamage* | 终为百日。 |
dodaylightcycle*A | 开启昼夜循环。 |
keepinventory*A | 死亡不掉落。通过编辑器修改不影响获得成就。 |
domobspawning*A | 生物生成。 |
mobgriefing* | 生物破坏。 |
doentitydrops*A | 实体掉落战利品。 |
doweathercycle*A | 天气更替。 |
commandblocksenabled*A | 命令方块已开启。 |
randomtickspeedA | 随机速度刻。 |
TimeA | 时间。请参考 命令/time - Minecraft Wiki |
GeneratorA | 世界类型。0:有限,1:无限,2:超平坦。 |
FlatWorldLayersA | 超平坦世界图层。更多信息 |
基本玩家设置
打开地图后,点击左侧“Player”,双击选中一个玩家来修改。本地游玩的玩家显示为“~local_player”,多人游玩的玩家显示为该玩家的 uuid。
部分设置如下(已验证)。修改这些数值不会导致不能获得成就。
名称 | 说明 |
---|---|
playerPermissionsLevel | 权限。0:访客,1:成员,2:操作员。 |
PlayerGameMode | 个人游戏模式。0:生存,1:创造,2:冒险,3:类生存(设置中不显示模式),4:与 3 相同,5:默认。 |
PlayerLevel | 等级。 |
PlayerLevelProgress | 等级进度。0~1,当超过 1 游戏会修正为 1,当低于 0 游戏会修正为 0。 |
Pos | 位置。这是一个列表,其中三个数值分别对应 X Y Z。 |
Rotation | 朝向。 第一个值为左右朝向,部分角度,0:南,90:西,180:北,-90:东。 第二个值为上下朝向,部分角度,90:朝下,0:朝前,-90:朝上。 |
SpawnX | 出生点 X 值。 |
SpawnY | 出生点 Y 值。 |
SpawnZ | 出生点 Z 值。 |
详细玩家权限
这些权限储存在玩家的 abilities
Compound Tag 中。
部分设置如下(已验证)。标记 *
的表示:0 为关闭,1 为开启。修改这些数值不会导致不能获得成就。
名称 | 说明 |
---|---|
attackmobs* | 攻击生物。 |
attackplayers* | 攻击玩家。 |
build* | 建造。 |
doorsandswitches* | 使用门和开关。 |
mine* | 挖掘。 |
op* | 管理员权限。 |
opencontainers* | 打开容器。 |
teleport* | 传送。 |
flySpeed | 飞行速度。 |
walkSpeed | 行走速度。 |
玩家属性
这些属性储存在玩家的 Attributes
Compound Tag 中,每个属性又用一个 Compound Tag 储存,其中的 name
指定了属性类型。
部分设置如下(已验证)。下表中的“名称”即为 name
。修改这些数值不会导致不能获得成就。
名称 | 说明 |
---|---|
minecraft:luck | 幸运。请参考 幸运 - Minecraft Wiki。 |
minecraft:health | 生命。 |
minecraft:absorption | 抗性。(在我的测试中,无论设置为任何值都会被游戏修改为 0) |
minecraft:knockback_resistance | 击退抗性。(设置为 2 时约等于没有击退) |
minecraft:movement | 速度。 |
minecraft:underwater_movement | 水下速度。 |
minecraft:lava_movement | 岩浆中速度。 |
minecraft:follow_range | 追踪范围。 |
minecraft:attack_damage | 攻击伤害。(在我的测试中,无论设置为任何值都会被游戏修改为 1) |
minecraft:player.hunger | 饥饿。 |
minecraft:player.exhaustion | 体力。 |
minecraft:player.saturation | 饱和。 |
minecraft:player.level | 等级。 |
minecraft:player.experience | 经验。 |
另外,这些 Compound Tag 都有相同类型的标签,它们的意义如下。
名称 | 说明 |
---|---|
Base | 基础值。 |
Current | 当前值。 |
DefaultMax | 默认最大值。 |
DefaultMin | 默认最小值。 |
Max | 最大值。限制了 Current 和 Base 的最大值。 |
Min | 最小值。限制了 Current 和 Base 的最小值。 |
自定义超平坦世界
即完全空白没有方块的世界,通常用于空岛生存等。
你可以通过 MCC ToolChest PE 来编辑,当然,手动修改也并不困难。
只需要修改 “World Settings” 中的 FlatWorldLayers
就可以做到。FlatWorldLayers
记录的是一个字符串,而这是一个 JSON 格式的字符串,默认值如下。
为了确保修改后能影响到每个区块,创建世界时选择“超平坦”类型的世界,关闭“生物生成”,然后创建世界。创建完毕进入世界后立即保存并退出到主菜单。然后再使用编辑器修改。
FlatWorldLayers
目前暂时不清楚 encoding_version
、world_version
和 structure_options
的作用。
biome_id
很明显的是,这个值指定了一个生物群系 ID,你可以在 Wiki 中找到对应的 ID 并修改。注意生物群系 ID 分为 Java 版和基岩版,请使用基岩版的生物群系 ID。
block_layers
block_layers
数组指定了生成的层。生成时从最低可用的坐标开始,从数组中的第 0 个开始(在各种编程语言中数组的第 0 个即代表我们所认为的第一个)。block_name
即方块的“命名空间 ID”,你可以在 Minecraft Wiki 中找到各个方块对应的“命名空间 ID”。count
即生成层数。
在上方的默认值中,block_layers
数组的第 0 个的 block_name
指向“基岩”,count
为 1,因此生成一层基岩。然后第 1 个的 block_name
指向“泥土”,count
为 2,在前面的基础上加上两层泥土。以此类推。
虚空世界
如果你只是想要一个虚空地图,那么在创建世界时选择超平坦,进入游戏后立即保存并退出。
然后修改 FlatWorldLayers
的值为:
另外,创建世界前关闭“生物生成”,防止保存太多个区块。保存的区块不多的话,修改为虚空后就不用清理太多的区块了。运气好一个区块都不会保存,进入游戏后就是完全的一片虚空。
编辑背包
一个玩家共有三个储存物品的位置。即 Armor
、Inventory
和 EnderChestInventory
,分别对应“装备栏”、“背包”和“末影箱”。
其中,Armor
数列中四个 Compound Tag 按顺序对应了装备栏的四个槽位。EnderChestInventory
也是按顺序一一对应末影箱中的每个格子。而 Inventory
的顺序比较特殊,前九个按顺序一一对应快捷物品栏的每个格子,后 27 个按顺序一一对应背包的每个格子。
每个 Compound Tag 拥有的部分属性如下表(已验证)。标记 *
的表示:0 为关闭,1 为开启。修改这些数值不会导致不能获得成就。
名称 | 说明 |
---|---|
Count | 数量。 |
Slot | 槽位。仅 Inventory 和 EnderChestInventory 中有此属性,请不要随意更改。 |
WasPickedUp* | 是否被捡起过。 |
Name | 物品 命名空间 ID。 |
Damage | 物品属性 |
其中,可以在 Minecraft Wiki 中找到各个物品对应的“命名空间 ID”。
部分物品有特殊属性,详见 Minecraft Wiki。
特殊属性
- 可能找不到部分属性,可以手动创建,请参考 Wiki 确保格式正确。
- 下方列表仅提供经过测试且可用的属性。
- Wiki 中记录的部分属性,未能测试出其效果,故不在该列表中展示。
结构如下:
CanDestroy
冒险模式下该物品能破坏的方块(这是一个数组类型,其中用字符串类型储存方块 命名空间 ID)CanPlaceOn
冒险模式下该方块能摆在什么方块上(这是一个数组类型,其中用字符串类型储存方块 命名空间 ID)tag
Damage
耐久度(数值越大耐久越低)RepairCost
修复花费(数值越大,在铁砧中附魔、修复、重命名所需的经验就越多)minecraft:keep_on_death
为 1 时在死后不掉落display
Name
名称Lore
物品的描述(这是一个数组类型,其中用字符串类型储存描述)ench
附魔- 数组中的 Compound
id
附魔 IDlvl
附魔等级customColor
皮革套装、皮革马铠、烟火之星的颜色(详细信息)chargedItem
弩填装的物品(与普通的物品结构相同)map_uuid
地图的 IDType
旗帜种类(0:普通旗帜,1:灾厄旗帜)FireworksItem
烟火之星的属性FireworkFlicker
为 1 时有闪烁效果FireworkTrail
为 1 时有轨迹效果FireworkType
爆炸形状(0:小型爆炸,1为大型爆炸,2:星型爆炸,3:苦力怕型爆炸,4:炸裂效果)FireworkColor
颜色(详细信息)FireworkFade
渐变(详细信息)Fireworks
Explosions
烟火之星,数组内 Compound Tag 属性均与FireworksItem
相同Flight
飞行时间trackingHandle
磁石指南针指向的磁石 IDpages
成书的分页- 数组中的 Compound
text
分页的内容generation
书的品质(0:原著,1:副本,2:副本的副本,3:破烂不堪)author
书的作者title
书的标题xuid
书的 IDItems
潜影盒的物品列表(与普通的物品结构相同)- 当桶装鱼或美西螈时,存储了实体的属性
Block
方块的属性states
状态color
玻璃、羊毛、羊毛地毯、陶瓦、混凝土粉末、混凝土的颜色name
方块的 命名空间 ID
详细:颜色
该值为自定义的颜色取反色,将反色后的 HEX 转换为 10 进制,乘以 -1。
如:$# B02E25\dfrac{取反色}{} ># 4FD1DA\dfrac{转 10 进制}{} >5231066\dfrac{\times -1}{} >-5231066$
其中,#B02E25
是想要的颜色,-5231066
是储存进 customColor
的值。
详细:烟火颜色
该值与颜色一一对应,见下表。
值 | 颜色 |
---|---|
00 | 黑色 |
01 | 红色 |
02 | 绿色 |
03 | 棕色 |
04 | 蓝色 |
05 | 紫色 |
06 | 青色 |
07 | 淡灰色 |
08 | 灰色 |
08 | 灰色 |
0a | 黄绿色 |
0b | 黄色 |
0c | 淡蓝色 |
0d | 品红色 |
0e | 橙色 |
0f | 白色 |
10
之后的未作详细测试,根据随机抽取测试得出:从 10
到 ff
都会显示为“自定义”,且颜色均为紫色。
Q&A
文章未完成,持续更新中……
参考与引用
- Minecraft Wikihttps://minecraft-zh.gamepedia.com/Minecraft_Wiki
- NBT格式(Minecraft Wiki)https://minecraft.fandom.com/zh/wiki/NBT%E6%A0%BC%E5%BC%8F
- 方块实体(Minecraft Wiki)https://minecraft.fandom.com/zh/wiki/%E6%96%B9%E5%9D%97%E5%AE%9E%E4%BD%93
- player.dat格式(Minecraft Wiki)https://minecraft.fandom.com/zh/wiki/Player.dat%E6%A0%BC%E5%BC%8F
- 基岩版未使用特性(Minecraft Wiki)https://minecraft.fandom.com/zh/wiki/%E5%9F%BA%E5%B2%A9%E7%89%88%E6%9C%AA%E4%BD%BF%E7%94%A8%E7%89%B9%E6%80%A7
- 基岩版世界格式(Minecraft Wiki)https://minecraft.fandom.com/zh/wiki/%E5%9F%BA%E5%B2%A9%E7%89%88%E4%B8%96%E7%95%8C%E6%A0%BC%E5%BC%8F
- 更多引用 Minecraft Wiki 未列出……