关于基岩版的世界格式,请见“基岩版世界格式”。
此特性为Java版独有。
每一个世界都有自己的文件夹。在每一个世界的存档文件夹中通常需要靠level.dat文件和存储地图和区域的子文件夹才能鉴别对应的世界。
在世界文件夹中一定包含的文件以粗体显示,可能包含的文件则以斜体的形式显示。
相对路径 | 名称 | 描述 |
---|---|---|
/level.dat | 见下文 | 存储关于世界的全局信息。 |
/level.dat_new | — | 程序会在此文件中写入该世界的新的全局信息,之后会被重命名为level.dat。 |
/level.dat_mcr | — | level.dat文件在转换为MCRegion和Anvil文件前的备份文件。 |
/level.dat_old | — | level.dat文件在从Alpha世界格式转换为MCRegion和Anvil文件前的备份文件。 |
/session.lock | 见下文 | 用于获取最后执行的程序修改这一文件以及访问的权限。 |
/players/<player>.dat | Player.dat格式 | 在Java版1.7.6之前,存储这一世界内玩家所有的个人信息。 |
/playerdata/<uuid>.dat | Player.dat格式 | 于Java版1.7.6加入,存储这一世界内玩家所有的个人信息。 |
/stats/<uuid>.json | 统计储存格式 | 于Java版1.7.2加入,储存玩家在此世界游玩时的统计。 |
/advancements/<uuid>.json | 待定 | 储存玩家在该世界的进度和已解锁的配方。 |
/data/idcounts.dat /data/map_<#>.dat |
地图物品格式 | 存储可合成地图这一物品所包括的地图数据。 |
/data/random_sequences.dat | 随机序列格式 | 存储战利品表使用的随机序列数据。 |
/data/villages.dat | Villages.dat格式 | 存储世界中村民的信息。“nether”和“end”文件在Java版1.8被加入。在Java版1.14中被POI区域文件代替。 |
/entities/ /DIM-1/entities/ /DIM1/entities/ |
实体格式 | 保存了实体数据。 |
/poi/ /DIM-1/poi/ /DIM1/poi/ |
兴趣点文件格式 | 世界内的兴趣点信息,例如村民特定的床,工作站点和钟。 |
/data/raids.dat /DIM-1/data/raids_nether.dat /DIM1/data/raids_end.dat |
raids.dat格式 | 储存世界内正在进行的袭击的信息。 |
/region/ /DIM-1/region/ /DIM1/region/ |
区块格式 | 包含各个维度中的区域信息。 |
r.<#>.<#>.mca | Anvil文件格式 | 独立区域信息。 |
r.<#>.<#>.mcr | Region文件格式 | 用于存储区域文件在从Region文件格式转换为Anvil之前的备份文件。 |
/<#>/<#>/c.<#>.<#>.dat | Alpha世界格式 | 用于存储区块文件在转换从Alpha世界格式转换为MCRegion之前的备份文件。 |
level.dat格式[]
level.dat文件包含了世界的全局信息,如时间,单人游戏玩家,所使用的世界类型以及地图种子等。为NBT文件,其格式如下:
- 根标签
- Data:此标签包含所有的世界数据。
- allowCommands:表示此世界是否允许作弊。
- BorderCenterX:世界边界中心的X坐标。默认为0。
- BorderCenterZ:世界边界中心的Z坐标。默认为0。
- BorderDamagePerBlock:超出边界安全区后,玩家每远离安全区一格增加的伤害值。默认0.2。
- BorderSafeZone:超出边界后,玩家仍然不会受到窒息伤害的安全区的宽度。默认为5。
- BorderSize:边界宽度。默认为59999968。
- BorderSizeLerpTarget:边界宽度过渡到的目标宽度。默认为59999968。
- BorderSizeLerpTime:边界宽度的过渡时间。默认为0。
- BorderWarningBlocks:玩家接近边界渲染出现红色警告框的最大距离。默认为5。
- BorderWarningTime:当玩家接近边界距离小于边界过渡速度乘以此值时渲染出现红色警告框。默认为15。
- clearWeatherTime:晴天剩余刻数,在此期间天气将保持晴天,但此值大于0不是晴天的必须条件。默认为0。
- CustomBossEvents:自定义boss栏数据。
- <boss栏的命名空间ID>:一项自定义boss栏数据。
- Color:boss栏的颜色代码,可以为
pink
(粉色)、blue
(蓝色)、red
(红色)、green
(绿色)、yellow
(黄色)、purple
(紫色)和white
(白色)。 - CreateWorldFog:表示boss栏是否创建迷雾效果。
- DarkenScreen:表示boss栏是否会使天空变得黯淡。
- Max:boss栏的最大值。
- Name:boss栏的显示文本,是一个JSON文本。
- Overlay:boss栏的显示样式。可以的值有
progress
(完整进度条)、notched_6
(进度条分为6段)、notched_10
(进度条分为10段)、notched_12
(进度条分为12段)和notched_20
(进度条分为20段)。 - PlayBossMusic:表示boss栏是否播放boss音乐。
- Players:可以看见boss栏的玩家列表。
- : 玩家的UUID。
- Value:boss栏的当前值。
- Visible:表示boss栏是否对列表中的玩家可见。
- Color:boss栏的颜色代码,可以为
- <boss栏的命名空间ID>:一项自定义boss栏数据。
- DataPacks:数据包选项。
- Disabled:禁用的数据包。
- :一个数据包。
- Enabled:启用的数据包。默认会包含字符串"vanilla"。
- :一个数据包。
- Disabled:禁用的数据包。
- DataVersion:存档的数据版本。
- DayTime:游戏时间,以刻计。
- Difficulty:游戏难度。0-3分别为和平、简单、普通和困难,默认为2(普通)。
- DifficultyLocked:表示难度是否被锁定。默认为false。
- DragonFight:末影龙战斗数据。
- enabled_features:被启用的游戏内容,可能不存在。
- GameRules:游戏规则,一共43条。
- <游戏规则名称>:一项游戏规则和它对应的值。
- GameType:在单人游戏玩家生成或重生时的默认游戏模式。0为生存模式,1为创造模式,2为冒险模式,3为旁观模式。
- hardcore:表示玩家死亡后是否转变为旁观模式。
- initialized:表示世界是否被正确初始化。如果世界初始化被某种情况所中断,此处为false,世界将会在下一次载入时重新初始化。
- LastPlayed:世界最后被加载时的Unix时间戳。
- LevelName:世界的名字。
- Player:单人游戏玩家的数据。此处如果玩家与<player>.dat中玩家名字相同的话会覆盖<player>.dat文件。服务器中无此数据。
- 参见Player.dat格式。
- raining:表示目前是否处于降雨天气。
- rainTime:如果目前不处于降雨天气,此值代表距离下一次降雨的时间,取值为12000游戏刻(10分)~180000游戏刻(150分)。如果目前正处于降雨天气,此值表示距离降雨结束的时间,取值为12000游戏刻(10分)~24000游戏刻(20分)。
- removed_features:曾经已被启用过的游戏内容,开关该游戏内容的选项被弃用,可能不存在。
- :曾经已被启用过的游戏内容,开关该游戏内容的选项被弃用,以命名空间ID表示。目前可用值有
minecraft:update_1_20
(1.20更新内容)。
- :曾经已被启用过的游戏内容,开关该游戏内容的选项被弃用,以命名空间ID表示。目前可用值有
- ScheduledEvents:已计划的事件列表。
- :一个计划事件。
- Callback:事件回调。
- Name:回调名称,是一个命名空间ID。
- Type:回调类型。可以为
minecraft:function
(函数)和minecraft:function_tag
(函数标签)。
- Name:事件名称。
- TriggerTime:触发时间。
- Callback:事件回调。
- :一个计划事件。
- ServerBrands:打开过此存档的服务器的铭牌列表。
- :一个服务器铭牌。
- SpawnAngle:出生角度。
- SpawnX:出生点的X坐标。
- SpawnY:出生点的Y坐标。
- SpawnZ:出生点的Z坐标。
- thundering:表示目前是否处于雷暴天气。
- thunderTime:如果目前不处于雷暴天气,此值代表距离下一次雷暴的时间,取值为12000游戏刻(10分)~180000游戏刻(150分)。如果目前正处于雷暴天气,此值表示距离雷暴结束的时间,取值为3600游戏刻(3分)~15600游戏刻(13分)。
- Time:世界自开始时所经历的刻数。
- version:区块文件的版本,对于Anvil文件格式为19133,对于McRegion格式为19132。
- Version:世界存入时的版本信息。
- Id:数据版本。
- Name:版本名称,比如15w32b。
- Series:开发系列,用于标识开发分支。1.18实验性快照中为“ccpreview”,其他则为“main”。
- Snapshot:表示此版本是否为快照版。
- WanderingTraderId:流浪商人的UUID。
- WanderingTraderSpawnChance:下次生成尝试时,生成流浪商人的概率。此值以百分比表示,游戏加载时除以10计算真实概率。如50表示5.0%的生成概率。
- WanderingTraderSpawnDelay:距下次尝试生成流浪商人的刻数。
- WasModded:表示此世界是否在被修改过的版本中打开过。
- WorldGenSetting:世界与各维度的生成设置。
- Data:此标签包含所有的世界数据。
generatorOptions标签格式[]
该段落所介绍的内容已从Minecraft中移除。
这些特性曾存在于游戏中,但已被移除。
在1.15及之前,世界生成器使用 generatorOptions保存:
不同世界类型的世界, generatorOptions标签的具体格式不同。此标签下的内容仅影响主世界,适用于1.15及以下版本。
以下格式适用于自选世界类型:
- generatorOptions:生成器选项根标签。
- biome_source:生物群系源。
- options:生物群系设置。
- biomes:生物群系的列表。
- :一个生物群系ID
- size:生物群系的大小。仅用于生物群系生成器为
minecraft:checkerboard
时,生物群系分界处分辨率为2<size>(可小于1)区块。默认值为2。
- biomes:生物群系的列表。
- type:生物群系生成器,无法在游戏内改变,默认为
minecraft:fixed
,也可以是minecraft:checkerboard
和minecraft:vanilla_layered
。
- options:生物群系设置。
- chunk_generator:区块生成器。
- options:区块生成器选项。
- default_block:默认的方块,为方块ID。默认为
minecraft:stone
。 - default_fluid:默认的流体,为方块ID。默认为
minecraft:water
。
- default_block:默认的方块,为方块ID。默认为
- type:使用的生成器ID。可以是
minecraft:surface
、minecraft:cave
和minecraft:floating_islands
。
- options:区块生成器选项。
- biome_source:生物群系源。
以下格式适用于超平坦世界:
- generatorOptions:生成器选项根标签。
- structures:超平坦世界的结构。
- 结构名称:名称为结构名称的空复合标签,比如village。
- 参数名称:参数值为一以字符串代表的数字。
- 结构名称:名称为结构名称的空复合标签,比如village。
- layers:设置超平坦的地层。
- :一层。
- block:方块ID。
- height:地层高度,用于在Java版1.13-pre5之前生成的世界。
- height:地层高度(小于128格),用于在Java版1.13-pre5及之后生成的世界。
- height:地层高度(大于等于128格),用于在Java版1.13-pre5及之后生成的世界。
- :一层。
- biome:生物群系ID。
- flat_world_options:未转义的
generator-settings
字符串。仅在由服务器创建的世界上出现。由于MC-134900,20w11a之前都不会被游戏解析,故不能生成以上复合标签,故generator-settings
无法正常生效。
- structures:超平坦世界的结构。
以下格式适用于旧版自定义世界:
该章节的编辑正在进行中。
请帮助我们扩充或改进这篇文章。
session.lock格式[]
此文件包含了该世界最后一次进入时的时间戳。该文件包含一个大端序的64位整数,为自1970-01-01 00:00:00(UTC)时区至今所经历的毫秒数。
与典型的lock文件不同,这一文件确保了最后访问这一世界的程序有读取和修改的权限。该过程通常如下所示:
- 程序打开session.lock
- 程序在session.lock写入当前时间戳
- 程序对session.lock的变化进行监控
- 如果session.lock内容发生变化,则程序中断并锁定世界。
即使在玩家开始这一世界之后Minecraft有时也会锁定这一世界。这通常会带来未知的后果。推荐在需要获取修改世界的权限之前完全关闭Minecraft程序。
在Linux发行版中,session.lock会有如下行为:
- 若session.lock没有
w
(写)权限,该世界在“选择世界”菜单中显示红色文本“被另一个正在运行的Minecraft实例锁定”,且无法进入。 - 在ext文件系统上,若session.lock已经拥有文件属性
i
,该世界不会在“选择世界”菜单中出现;若session.lock在游戏位于“选择世界”菜单时拥有了文件属性i
,该世界并不会立刻从菜单中消失,但是尝试进入时会出现“加载世界失败”的提示并回到标题屏幕。 - 在终端使用
rm
命令删除session.lock不会导致世界被锁定。
版本 | |||||||
---|---|---|---|---|---|---|---|
开发周期 |
| ||||||
技术 |
| ||||||
多人游戏 | |||||||
游戏订制 |
语言