上一篇:
下一篇:11.4.2.1.生物群系文档
回到总目录:(点我跳转)
manifest 文件包含了 Minecraft 识别数据包所需的所有基本信息。下表列出了 manifest 的所有组成部分、各自的属性及其含义。
注意: 在 Minecraft 预览版 1.21.110 及更高版本中,我们引入了新的 接口版本 3 (interface version 3)。本文档已标出该预览版 manifest 的差异。主要差异包括:
有关自定义包设置的更多信息,请参阅“自定义包设置”文章。
此外,目前版本 3 的处理存在一个问题:在版本 3 的 manifest 中,<metadata>/<author> 属性是必须设置的。我们预计在未来的更新中会将版本 3 的 author 属性改为可选。
注意事项:
注意事项:
注意事项:
注意: 此功能属于实验性功能,在将来的版本中可能会发生变更或被移除。
settings(设置) 部分是一个顺序相关的设置类型列表。目前支持三种设置类型:label(标签)、toggle(开关)和 slider(滑块)。
上一篇:
下一篇:11.4.2.1.生物群系文档
回到总目录:(点我跳转)
下一篇:11.4.2.1.生物群系文档
回到总目录:(点我跳转)
行为包/资源包/皮肤包及世界模板的 manifest.json
本文内容- 属性 (Properties)
- 模块 (modules)
- 示例 (Examples)
manifest 文件包含了 Minecraft 识别数据包所需的所有基本信息。下表列出了 manifest 的所有组成部分、各自的属性及其含义。
注意: 在 Minecraft 预览版 1.21.110 及更高版本中,我们引入了新的 接口版本 3 (interface version 3)。本文档已标出该预览版 manifest 的差异。主要差异包括:
- 版本号标识符现在使用 语义化版本 (semver) 风格的字符串。
- 增加了对 自定义包设置 (custom pack settings) 的支持。
有关自定义包设置的更多信息,请参阅“自定义包设置”文章。
此外,目前版本 3 的处理存在一个问题:在版本 3 的 manifest 中,<metadata>/<author> 属性是必须设置的。我们预计在未来的更新中会将版本 3 的 author 属性改为可选。
属性 (Properties)
名称 | 描述 |
|---|---|
format_version | manifest 文件中使用的语法版本。皮肤包可为 1,资源包、行为包和世界模板可为 2。版本 3 是 manifest 的新更新,目前处于预览阶段。 |
header | 头部部分,包含有关包的名称、描述以及其他面向公众的功能信息。 |
modules | 模块部分,包含有关所引入内容类型的信息。 |
dependencies | 依赖部分,包含此 manifest.json 文件正常工作所需的任何其他包的定义。 |
capabilities | 能力部分,包含可在 Minecraft 中启用的可选功能。 |
metadata | 元数据部分,包含有关文件的元数据,如作者和许可信息。 |
header(头部)
名称 | 类型 | 描述 |
|---|---|---|
allow_random_seed | 布尔值 (Boolean) | 此选项将在每次加载模板时生成一个随机种子,并允许玩家在创建新世界之前更改种子。(仅适用于世界模板 manifest JSON) |
base_game_version | 向量 [a, b, c] 或 语义化版本字符串 (SemVer String) | 这是您的世界模板所需的基础游戏版本,指定为 [主版本号,次版本号,修订号]。我们使用此信息来确定当您的内容被使用时,应应用哪个版本的基础游戏资源包和行为包。(仅适用于世界模板 manifest JSON)。 在版本 3(目前处于预览阶段)中,您必须使用字符串来表示版本。 |
description | 字符串 (String) | 这是包的简短描述。它将显示在游戏中包的名称下方。我们建议将其控制在 1-2 行以内。 |
lock_template_options | 布尔值 (Boolean) | 任何世界模板都需要此选项。这将锁定玩家,使其无法修改世界的选项。(仅适用于世界模板 manifest JSON) |
min_engine_version | 向量 [a, b, c] 或 语义化版本字符串 (SemVer String) | 这是编写此包所需的最低游戏版本。这是资源包和行为包的必填字段。这有助于游戏识别您的包是否需要任何向后兼容性。创建包时,您应始终使用当前可用的最高版本。 在版本 3(目前处于预览阶段)中,您必须使用字符串来表示版本。 |
name | 字符串 (String) | 这是包在 Minecraft 中显示的名称。这是必填字段。 |
pack_scope | 字符串 (String) | 对于资源包,这是一个可选字符串,用于指定此资源包是可以在整个游戏中使用,还是在单个世界级别使用。 有效值为: • "world" — 指定包仅可在世界的上下文中添加 • "global" — 指定包仅可在整个游戏中添加 • "any" — 表示包可应用于整个游戏或特定世界 如果未指定,则解释为 "any"。 |
uuid | 字符串 (String) | 这是一种特殊类型的标识符,用于将此包与任何其他包唯一区分。UUID 的格式为 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,其中每个 x 是十六进制值(0-9 或 a-f)。我们建议使用在线服务生成此值以保证其唯一性。 |
version | 向量 [a, b, c] 或 语义化版本字符串 (SemVer String) | 这是您的包的版本,格式为 [主版本号,次版本号,修订号]。版本号用于导入之前已导入过的包时。如果版本更高,新包将替换旧包;如果版本相同或更低,则被忽略。 在版本 3(目前处于预览阶段)中,您必须使用字符串来表示版本。 |
modules(模块)
名称 | 类型 | 描述 |
|---|---|---|
description | 字符串 (String) | 这是模块的简短描述。目前此信息不面向用户,但这是一个很好的位置,可用于提醒您自己为何定义该模块。 |
type | 字符串 (String) | 这是模块的类型。可以是以下任意一种: • resources — 资源模块 • data — 数据模块(行为包) • world_template — 世界模板模块 • script — 脚本模块 |
uuid | 字符串 (String) | 这是模块的唯一标识符,格式与 header 中包的 UUID 相同。此 UUID 应不同于包的 UUID,且每个模块都应不同。 |
version | 向量 [a, b, c] 或 语义化版本字符串 (SemVer String) | 这是模块的版本,格式与 header 中包的版本相同。此版本号可用于进一步识别包中的更改。 在版本 3(目前处于预览阶段)中,您必须使用字符串来表示版本。 |
language | 字符串 (String) | 仅当 type 为 script 时存在。此属性指示包中脚本的编写语言。唯一支持的值是 javascript。 |
注意事项:
- 每个模块的 UUID 必须唯一 — 不能与包的 UUID 或其他模块的 UUID 重复。
- 版本 3 要求 — 如果使用 manifest 版本 3,version 字段必须使用语义化版本字符串(如 "1.0.0"),而非向量格式。
- 脚本模块 — 只有当模块类型为 script 时才需要 language 字段。
dependencies(依赖项)
名称 | 类型 | 描述 |
|---|---|---|
uuid | 字符串 (String) | 这是此包所依赖的包的唯一标识符。它需要与该包在其 manifest 文件的 header 部分中定义的 UUID完全相同。 |
module_name | 字符串 (String) | 对于内置脚本模块的依赖,包含模块的名称。(例如 @minecraft/server) |
version | 向量 [a, b, c] 或 语义化版本字符串 (SemVer String) | 这是您的包所依赖的包的特定版本。应与另一个包在其 manifest 文件中的版本匹配。 在版本 3(目前处于预览阶段)中,您必须使用字符串来表示版本。 |
注意事项:
- UUID 依赖 — 当依赖另一个包时,必须使用 uuid 字段,且 UUID 必须与目标包 header 中的 UUID 完全一致。
- 模块名依赖— 当依赖内置脚本 API 模块时,使用 module_name 字段,常见模块包括:
- @minecraft/server — 服务器端脚本 API
- @minecraft/client — 客户端脚本 API
- @minecraft/server-ui — 服务器端 UI API
- @minecraft/server-admin — 服务器端管理 API
- @minecraft/server-gametest — GameTest 框架 API
- 版本匹配 — 依赖的版本号应与目标包或模块的版本相匹配,否则可能导致兼容性问题。
- 版本 3 格式 — 如果使用 manifest 版本 3,所有 version 字段必须使用语义化版本字符串格式(如 "1.0.0")。
capabilities(能力/功能)
| 名称 | 描述 |
|---|---|
| chemistry | 此包可以添加、移除或修改化学行为。 |
| editorExtension | 表示此包包含 Minecraft 编辑器的扩展功能。 |
| experimental_custom_ui | 此包可以使用 HTML 文件创建自定义 UI,以及使用或修改自定义 UI。 |
| raytraced | 此包使用光线追踪功能,并可能使用自定义着色器。 |
注意事项:
- 可选功能 — capabilities 是 manifest 中的可选部分,仅当您的包需要使用这些特殊功能时才需声明。
- chemistry — 用于教育版中的化学实验功能,如元素构造器、化合物创建器等。
- editorExtension — 仅适用于 Minecraft Editor 模式,用于开发自定义编辑器工具。
- experimental_custom_ui — 允许使用 HTML/CSS/JavaScript 创建自定义界面,属于实验性功能,可能需要开启相应的实验性选项。
- raytraced — 启用光线追踪渲染功能,通常需要硬件支持,并可能配合自定义着色器使用。
- 实验性警告 — 部分能力(如 experimental_custom_ui)属于实验性功能,在使用时可能需要玩家开启实验性玩法选项,且在未来版本中可能会有变动。
metadata(元数据)
| 名称 | 类型 | 描述 |
|---|---|---|
| authors | 数组 (Array) | 包的作者姓名列表。 |
| license | 字符串 (String) | 包的许可协议。 |
| generated_with | JSON 对象 (JSON Object) | 此字段用于识别用于生成 manifest.json 文件的工具。工具名称是字符串,必须符合 [a-zA-Z0-9_-] 格式,且最多 32 个字符。工具版本号是语义化版本字符串,表示修改 manifest.json 文件的每个版本。 |
| product_type | 字符串 (String) | 此可选字符串用于识别此包的目标上下文。唯一支持的值是 "addon",表示此包旨在添加到玩家的世界中。将 product_type 设置为 "addon" 不应改变包在游戏中的功能方式。 |
| url | 字符串 (String) | 您的包的主页网站。 |
- authors(作者) — 可以列出多个作者,使用数组格式。在 manifest 版本 3 中,此字段目前是必填的(未来更新可能会改为可选)。
- license(许可)— 建议使用标准的许可协议名称,如:
- MIT
- Apache-2.0
- GPL-3.0
- CC BY-NC-SA 4.0
- Proprietary(专有许可)
- generated_with(生成工具)— 用于记录创建或修改此 manifest 文件的工具,常见工具包括:
- blockbench — 3D 模型编辑工具
- bridge — Minecraft Addon 开发编辑器
- visual-studio-code — VS Code 编辑器
- product_type(产品类型) — 目前唯一支持的值是 "addon",用于标识此包是用于添加到玩家世界的附加内容。
- url(网址) — 可以指向您的包的主页、下载页面、开发者网站或社区论坛页面。
- 版本 3 注意事项 — 在 manifest 版本 3 中,authors 字段目前要求必须设置,这是一个已知问题,预计在未来更新中会改为可选。
settings(设置)— manifest 版本 3 实验性功能
在 manifest 版本 3 或更高版本 中(作为预览版本的一部分),包可以在 Minecraft 菜单中拥有一个可选的、用户可见的"设置屏幕"。注意: 此功能属于实验性功能,在将来的版本中可能会发生变更或被移除。
settings(设置) 部分是一个顺序相关的设置类型列表。目前支持三种设置类型:label(标签)、toggle(开关)和 slider(滑块)。
Label setting(标签设置)
只读标签,用于描述或分隔设置区域的各个部分。| 名称 | 类型 | 描述 |
|---|---|---|
| type | 字符串 (String) | 对于标签,此值应为 "label"。 |
| text | 字符串 (String) | 标签的文本内容。在将来的设置预览版本中,应支持本地化令牌(localization tokens)。 |
Toggle setting(开关设置)
二元(真或假)开关或"切换按钮"。| 名称 | 类型 | 描述 |
|---|---|---|
| type | 字符串 (String) | 对于开关,此值应为 "toggle"。 |
| text | 字符串 (String) | 开关的文本标签,用户可见。在将来的设置预览版本中,应支持本地化令牌(localization tokens)。 |
| name | 字符串 (String) | 此开关值的程序标识符(用于在代码中引用)。 |
| default | 布尔值 (boolean) | 此设置的默认值,true 或 false。 |
Slider setting(滑块设置)
滑动条,允许在一定范围内设置数值。滑块可以使用整数或浮点数。| 名称 | 类型 | 描述 |
|---|---|---|
| type | 字符串 (String) | 对于滑块,此值应为 "slider"。 |
| text | 字符串 (String) | 滑块的文本标签,用户可见。在将来的设置预览版本中,应支持本地化令牌(localization tokens)。 |
| name | 字符串 (String) | 此滑块值的程序标识符(用于在代码中引用)。 |
| min | 数字 (Number) | 滑块的最小值。 |
| max | 数字 (Number) | 滑块的最大值。 |
| step | 数字 (Number) | 滑块的增量"刻度"(步进值)。 |
| default | 数字 (Number) | 滑块的默认值。 |
Examples(示例)
下面列出了两个示例,展示了如何为行为包和资源包编写 manifest.json 文件。行为包(Behavior Pack)
JSON:
{
"format_version": 2,
"header": {
"description": "Example vanilla behavior pack",
"name": "Vanilla Behavior Pack",
"uuid": "ee649bcf-256c-4013-9068-6a802b89d756",
"version": [1, 0, 0],
"min_engine_version": [1, 20, 0]
},
"modules": [
{
"description": "Example behavior pack module",
"type": "data",
"uuid": "fa6e90c8-c925-460f-8155-c8a60b753caa",
"version": [1, 0, 0]
},
{
"description": "Example client scripts module",
"type": "client_data",
"uuid": "c05a992e-482a-455f-898c-58bbb4975e47",
"version": [1, 0, 0]
}
],
"dependencies": [
{
"uuid": "66c6e9a8-3093-462a-9c36-dbb052165822",
"version": [1, 0, 0]
},
{
"module_name": "@minecraft/server",
"version": "1.9.0"
}
],
"metadata": {
"authors": ["exampleAuthor"],
"license": "MIT",
"url": "http://www.example.com",
"generated_with": {
"example_tool": ["1.0.0", "1.1.0"]
}
}
}
资源包(Resource Pack)
JSON:
{
"format_version": 2,
"header": {
"description": "Example vanilla resource pack",
"name": "Vanilla Resource Pack",
"uuid": "66c6e9a8-3093-462a-9c36-dbb052165822",
"pack_scope": "world",
"version": [1, 0, 0],
"min_engine_version": [1, 20, 0]
},
"modules": [
{
"description": "Example vanilla resource pack",
"type": "resources",
"uuid": "743f6949-53be-44b6-b326-398005028819",
"version": [1, 0, 0]
}
]
}
上一篇:
下一篇:11.4.2.1.生物群系文档
回到总目录:(点我跳转)