跳到主要内容

起源层 JSON 格式

起源层是一组起源的集合。玩家在每个已启用的起源层中选择一个起源。

文件位置​

起源层 JSON 文件放在数据包内的 data/<namespace>/origins/layer/ 目录中。

例如,data/origins/origins/layer/origin.json 的 ID 是 origins:origin(这是默认起源层)。

字段​

字段类型默认值描述
name文本组件可选起源层的显示名称。更推荐使用翻译键 layer.<namespace>.<path>.name
orderIntegerInteger.MAX_VALUE选择界面中的排序顺序;数字越小越靠前
originsIdentifier / #tag / 条件起源对象的列表必填此起源层包含的起源。支持直接 ID、标签和条件起源
enabledBooleantrue此起源层是否启用
gui_titleGUI 标题可选选择界面/查看界面的自定义标题
allow_randomBooleanfalse是否显示“随机选择”选项
allow_random_unchoosableBooleanfalse随机选择是否包含不可选择的起源
exclude_randomIdentifier 的列表[]从随机选择中排除的起源 ID
default_originIdentifier可选❌ 尚未实现
auto_chooseBooleanfalse如果只有一个起源可用,是否自动选择它
hiddenBooleanfalse是否在“查看起源”界面中隐藏此起源层
注意

与 Fabric 版本不同——Fabric 版本在当前起源层没有分配起源时使用 missing_name 和 missing_description 来显示——Origins (NeoForge) 在起源层没有任何起源时会直接在查看起源界面中隐藏该起源层。

GUI 标题​

字段类型默认值描述
choose_originText Component可选覆盖选择起源时显示的标题文本
view_originText Component可选覆盖查看起源时显示的标题文本

条件起源​

在 origins 列表中,你可以将字符串 ID 与条件起源对象混合使用:

{
"condition": {
"type": "origins:and",
"conditions": [...]
},
"origins": [
"origins:special_origin"
]
}

条件起源的字段:

字段类型描述
conditionEntity Condition玩家必须满足的条件
originsIdentifier 或 #Tag 的列表条件满足时显示的起源

示例​

{
"order": 0,
"enabled": true,
"origins": [
"#origins:origin"
],
"allow_random": true,
"exclude_random": [
"origins:human"
]
}

带条件起源的起源层:

{
"order": 1,
"origins": [
"origins:human",
{
"condition": {
"type": "origins:origin",
"origin": "origins:human"
},
"origins": [
"origins:special_human_upgrade"
]
}
]
}
警告

命令可以绕过这些条件并授予起源层中的任意起源,因此条件起源并不是一种安全的内容门槛。它们主要用于引导玩家做出某些选择,或营造更具动态性的选择体验。

备注

与旧版本的主要区别:

  • 移除了 replace 字段(新的注册表系统会自动处理数据覆盖)
  • 移除了 missing_name 和 missing_description
  • 移除了 loading_priority
  • gui_title 的子字段重命名为 choose_origin / view_origin