上一篇:
下一篇: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。

注意事项:

  1. 每个模块的 UUID 必须唯一 — 不能与包的 UUID 或其他模块的 UUID 重复。
  2. 版本 3 要求 — 如果使用 manifest 版本 3,version 字段必须使用语义化版本字符串(如 "1.0.0"),而非向量格式。
  3. 脚本模块 — 只有当模块类型为 script 时才需要 language 字段。



dependencies(依赖项)

名称
类型
描述
uuid
字符串 (String)
这是此包所依赖的包的唯一标识符。它需要与该包在其 manifest 文件的 header 部分中定义的 UUID完全相同。
module_name
字符串 (String)
对于内置脚本模块的依赖,包含模块的名称。(例如 @minecraft/server)
version
向量 [a, b, c] 或 语义化版本字符串 (SemVer String)
这是您的包所依赖的包的特定版本。应与另一个包在其 manifest 文件中的版本匹配。
在版本 3(目前处于预览阶段)中,您必须使用字符串来表示版本。

注意事项:

  1. UUID 依赖 — 当依赖另一个包时,必须使用 uuid 字段,且 UUID 必须与目标包 header 中的 UUID 完全一致。
  2. 模块名依赖— 当依赖内置脚本 API 模块时,使用 module_name 字段,常见模块包括:
    • @minecraft/server — 服务器端脚本 API
    • @minecraft/client — 客户端脚本 API
    • @minecraft/server-ui — 服务器端 UI API
    • @minecraft/server-admin — 服务器端管理 API
    • @minecraft/server-gametest — GameTest 框架 API
  3. 版本匹配 — 依赖的版本号应与目标包或模块的版本相匹配,否则可能导致兼容性问题。
  4. 版本 3 格式 — 如果使用 manifest 版本 3,所有 version 字段必须使用语义化版本字符串格式(如 "1.0.0")。



capabilities(能力/功能)

名称描述
chemistry此包可以添加、移除或修改化学行为。
editorExtension表示此包包含 Minecraft 编辑器的扩展功能。
experimental_custom_ui此包可以使用 HTML 文件创建自定义 UI,以及使用或修改自定义 UI。
raytraced此包使用光线追踪功能,并可能使用自定义着色器。

注意事项:

  1. 可选功能 — capabilities 是 manifest 中的可选部分,仅当您的包需要使用这些特殊功能时才需声明。
  2. chemistry — 用于教育版中的化学实验功能,如元素构造器、化合物创建器等。
  3. editorExtension — 仅适用于 Minecraft Editor 模式,用于开发自定义编辑器工具。
  4. experimental_custom_ui — 允许使用 HTML/CSS/JavaScript 创建自定义界面,属于实验性功能,可能需要开启相应的实验性选项。
  5. raytraced — 启用光线追踪渲染功能,通常需要硬件支持,并可能配合自定义着色器使用。
  6. 实验性警告 — 部分能力(如 experimental_custom_ui)属于实验性功能,在使用时可能需要玩家开启实验性玩法选项,且在未来版本中可能会有变动。



metadata(元数据)

名称类型描述
authors数组 (Array)包的作者姓名列表。
license字符串 (String)包的许可协议。
generated_withJSON 对象 (JSON Object)此字段用于识别用于生成 manifest.json 文件的工具。工具名称是字符串,必须符合 [a-zA-Z0-9_-] 格式,且最多 32 个字符。工具版本号是语义化版本字符串,表示修改 manifest.json 文件的每个版本。
product_type字符串 (String)可选字符串用于识别此包的目标上下文。唯一支持的值是 "addon",表示此包旨在添加到玩家的世界中。将 product_type 设置为 "addon" 不应改变包在游戏中的功能方式。
url字符串 (String)您的包的主页网站。

  1. authors(作者) — 可以列出多个作者,使用数组格式。在 manifest 版本 3 中,此字段目前是必填的(未来更新可能会改为可选)。
  2. license(许可)— 建议使用标准的许可协议名称,如:
    • MIT
    • Apache-2.0
    • GPL-3.0
    • CC BY-NC-SA 4.0
    • Proprietary(专有许可)
  3. generated_with(生成工具)— 用于记录创建或修改此 manifest 文件的工具,常见工具包括:
    • blockbench — 3D 模型编辑工具
    • bridge — Minecraft Addon 开发编辑器
    • visual-studio-code — VS Code 编辑器
  4. product_type(产品类型) — 目前唯一支持的值是 "addon",用于标识此包是用于添加到玩家世界的附加内容。
  5. url(网址) — 可以指向您的包的主页、下载页面、开发者网站或社区论坛页面。
  6. 版本 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.生物群系文档
回到总目录:(点我跳转)
 

在线会员

现在没有会员在线。