01配置放在哪,归谁管
所有路径都相对于实例的 config/healthy_diet/;数据包路径另见 data/<命名空间>/healthy_diet/。先看“作用域”,再看“典型刷新方式”。
共 18 个配置入口;输入文件名、路径或字段名过滤。
| 文件 / 目录 | 作用域 | 负责内容 | 典型刷新 |
|---|---|---|---|
server.jsongameplay / privacy / shelfMerge | 服务端权威 | 保质期总开关、联动开关、属性/效果刷新间隔、保护物品、测试日志、阶段命令隐私、堆叠合并门槛 | OP 页保存或编辑后 /hdreload |
display.json | 客户端本地 | Tooltip 每行营养数、TitlePro 换行宽度、D 页宽度、温度单位、默认显示模式 | 客户端显示设定保存;手改后重进客户端 |
colors/color_schemes.json | 两端外观 | 命名渐变方案,供品质、营养组、提示行和保质期方案引用 | 服务端 /hdreload;客户端本地文件按各端读取 |
colors/solid_colors.json | 两端外观 | 编辑器纯色取色盘的色卡数组 | 服务端 /hdreload;客户端本地文件按各端读取 |
fatigue/fatigue_gradient.json | 显示外观 | 厌倦等级行、恢复进度行的方案与动画参数 | /hdreload |
fatigue/fatigue_exempt.json | 服务端玩法 | 吃下后不推进其他冷却食物恢复计数的物品 ID 列表 | /hdreload |
shelf_life/seasons.json | 服务端玩法 | 季节/节气保质期倍率、未加载 EC 时的回退倍率、显示名 | /hdreload |
shelf_life/schemes/*.json | 两端显示 | 保质期提示的文案模板、状态配色、符号、季节显示名 | /hdreload 并下发方案 |
temperature/block_heat.json | 服务端玩法 | 非 LSO 分支的方块热源表:方块、状态条件、贡献温度 | /hdreload 或温度配置页保存 |
temperature/weather_offsets.json | 服务端玩法 | 24 节气降雨/雷暴的温变偏移 | /hdreload 或温度配置页保存 |
temperature/day_night_offsets.json | 服务端玩法 | 24 节气的正午/午夜温变幅度 | /hdreload 或温度配置页保存 |
temperature/season_temperature.json | 服务端玩法 | 24 节气附加环境温度(叠加在 EC 气候上) | /hdreload 或温度配置页保存 |
bottle_fills.json | 服务端玩法 | 手持物品右键液体源方块后的消耗与产物规则 | /hdreload |
fog_effects.json | 客户端本地 | 拥有指定效果时的水下/岩浆雾距离 | 各客户端读取本地文件;服务器重载不代改 |
item_rarities.json | 服务端/同步 | 物品 ID → 品级 ID 的物品级兜底指定 | /hdreload;/hdset rarity 会写它 |
tooltip_templates.json | 编辑器本地 | [模板] 按钮使用的提示行模板数组 | 编辑器读写本实例文件;不当作跨客户端同步内容 |
quality_registry/*.json | 启动期注册 | 新增独立品质物品的来源、注册名、品质、食用与堆叠属性 | 启动时生效;/hdreload 只重读待生效列表 |
datapack/data/<ns>/healthy_diet/HD 覆盖层;世界数据包为 data/<ns>/healthy_diet/items / tooltips / blocks / nutrition_* / quality_levels / rarities / effect_lines | 数据包(世界 + HD 覆盖层) | 物品、提示、方块、营养、品质、品级和效果行定义;HD 覆盖层优先级最高 | 世界数据包用 /reload;HD 覆盖层用 /hdreload |
config/healthy_diet/*.json)、数据包(data/.../healthy_diet/)和启动期注册(quality_registry/)的生效方式不同。把数据包文件复制到 config/healthy_diet/items/ 不会生成可由游戏读取的物品配置。ConfigManager 的路径常量与 loadAll、ServerConfigFile.migrate、QualityRegistryLoader。02server.json:服务端权威分节
一个文件三个分节:gameplay、privacy、shelfMerge。旧版分离文件会在加载时迁入本文件,原文件移入 migration_backup/。
{
"gameplay": {
"shelfTemperatureEnabled": false,
"lsoIntegrationEnabled": true,
"ecIntegrationEnabled": true,
"proxyHeatstrokeEffect": true,
"bonusUpdateTicks": 100,
"effectUpdateTicks": 200,
"ejectIllegalProtectedItems": false,
"removeOwnerOnDeathDrop": false,
"debugLogs": false
},
"privacy": { "sendCommandTextToAllPlayers": false },
"shelfMerge": {
"mergeRemainingMinutes": 5,
"mergeTempThreshold": 10.0,
"mergeColdFreshThreshold": 20.0
}
}gameplay:玩法与刷新间隔
| 字段 | 类型 / 默认 | 作用与边界 |
|---|---|---|
shelfTemperatureEnabled | boolean / false | 保质期与温度系统总开关。关闭时暂停衰减、温度/冷鲜推进、过期产物与过期指令、温度拒食、温区效果和相关提示;已有物品数据保留,关闭时段从下次结算中扣除,不追溯补算。 |
lsoIntegrationEnabled | boolean / true | 是否允许 hd:shelf 使用 LSO 的完整世界环境;不关闭其他 LSO 兼容。 |
ecIntegrationEnabled | boolean / true | 是否允许 hd:shelf 直接使用 EC 气候和 HD 的 EC 季节倍率;不修改 EC 已由 LSO 提供的内容。 |
proxyHeatstrokeEffect | boolean / true | 把 LSO 中暑镜像为 EC 中暑(服务端每 5 秒检查,仅借助 EC 的模糊效果);无 LSO 中暑或带免疫时移除 EC 中暑。 |
bonusUpdateTicks | int / 100 | 属性加成结算间隔,单位 tick;限制在 1–1728000。默认约 5 秒。 |
effectUpdateTicks | int / 200 | 药水效果加成刷新间隔,单位 tick;限制在 1–1728000。默认约 10 秒。 |
ejectIllegalProtectedItems | boolean / false | 玩家持有从未被信任的保护物品时:true 丢到脚下;false 留在原位冻结并警告。默认关闭以免误判造成掉落消失。 |
removeOwnerOnDeathDrop | boolean / false | 死亡掉落:true 清除所有掉落物的保护数据;false 只给原本无主的掉落写入死者 UUID,已有主人的掉落保持原主人。 |
debugLogs | boolean / false | 服务端测试日志开关;开启后输出方块右键与放置食物/分口食物的详细日志。/hdreload 应用。 |
privacy:阶段命令文本
| 字段 | 类型 / 默认 | 作用与边界 |
|---|---|---|
sendCommandTextToAllPlayers | boolean / false | 默认只向权限 4 的玩家下发阶段命令文本;true 时非 OP 也收到完整阶段配置,可用于公开玩法说明。它不改变命令执行权限。 |
shelfMerge:堆叠合并门槛
| 字段 | 类型 / 默认 | 作用与边界 |
|---|---|---|
mergeRemainingMinutes | int / 5 | 两堆剩余保质期的最大差(分钟)仍可合并;限制在 1–1440。 |
mergeTempThreshold | float / 10.0 | 两堆物品温度的最大差(°C)仍可合并;限制在 0–100,NaN 差值忽略。 |
mergeColdFreshThreshold | float / 20.0 | 两堆冷鲜进度(0–100)的最大差仍可合并;限制在 0–100。 |
gameplay 分节;privacy 与 shelfMerge 需要编辑 server.json 后执行 /hdreload。文件只读时配置页保存失败,不会改内存中的权威值。ServerGameplayConfig、ServerPrivacyConfig、ShelfMergeConfig、ServerConfigFile、ConfigManager.saveServerGameplayConfig。03display.json:客户端本地偏好
这份文件只影响当前客户端的外观与编辑默认值,不参与服务器玩法同步。服务端下的玩法开关在 server.json 的 gameplay,不要写回这里。
| 字段 | 类型 / 默认 | 作用与边界 |
|---|---|---|
nutritionPerLine | int / 6 | 普通 Tooltip 营养与条件条目的显示上限;超过上限截断并附省略号。设为 1 只显示第一条,不是每组单独换行;编辑器范围 1–100。 |
titleproWrapWidth | int / 1000 | TitlePro 标题换行宽度(像素);编辑器范围 1–100000。 |
defaultConditionalGainEnabled | boolean / true | 新建条件营养规则时“实际增益”的默认开关;只初始化草稿,不是已保存规则的运行开关。 |
infoGapWidth | int / 20 | D 模式右对齐提示行左右内容的固定间距;编辑器范围 0–100000。 |
maxInfoWidth | int / 320 | D 模式信息面板的最大宽度(像素),超出换行;S 模式不受此上限限制。编辑器范围 0–100000。 |
showUnifiedPotionStyle | boolean / false | 统一药水样式总开关;关闭时绕过所有物品和默认的“强制统一”选择。 |
enableEnchantmentInfo | boolean / true | D 模式自动显示附魔书说明(按 Enchantment Descriptions 约定读取语言键)。 |
enablePotionInfo | boolean / true | D 模式药水/效果信息总开关。关闭后 D 页不显示原版药水说明、HD 效果行、外部模组效果行、属性统一段和 LSO 口渴行;普通模式紧凑效果行、温区效果行、JEI/手写 D 文本和附魔说明不受影响。 |
hideSystemPrefixes | boolean / false | 只隐藏 HD 自动添加的行首符号及其间距;不隐藏玩家手写名称、行内分隔符或分段文本。 |
temperatureUnit | string / celsius | celsius 或 fahrenheit;只影响本客户端提示/HUD,配置文件和编辑器仍用摄氏。非法值回落摄氏。 |
temperatureUnitChosen | boolean / false | 本客户端是否已明确选择温度单位;用于首次提示,不上传同步。 |
groupLocalizePrompted | boolean / false | OP 的营养组名称本地化提示是否已在本客户端显示或回答;仅本地记录。 |
defaultEffectsShiftOnly | boolean / false | 新建药水效果行的默认显示模式:false 常显,true 仅按住 Shift;已保存的行保留自己的设置。 |
defaultForceUnify | boolean / false | 新建效果行时“强制统一”的默认值;只对已有 Tooltip 配置/数据包条目的物品生效。 |
defaultFoodBarDisplayMode | string / always | always 常显、shift 仅 Shift、info 仅 D 页、off 整体停用并退回原版饮食值行;只影响没有自身提示配置的物品和新建行。 |
display.json 控制;不要按旧教程写回。文件以 _note_ 开头的说明字段只读。手改本文件后需要重进客户端;在“客户端显示设定”中保存会立即写回。DisplayConfig、HdDisplayConfigScreen、ConfigManager.loadDisplayConfig。04营养数据包:组、阶段、加成
三类文件都在 data/<命名空间>/healthy_diet/ 下,以营养组 ID 关联;HD 覆盖层写在 config/healthy_diet/datapack/。文件名就是组 ID,最多 64 个组。
| 类型 | 路径 | 文件内容 |
|---|---|---|
| 营养组 | nutrition_groups/<组id>.json | 一个 GroupDefinition 对象:名称、符号、排序、颜色、衰减、初始值、获取倍率和可用条件。 |
| 阶段 | nutrition_stages/<组id>.json | stages 数组与 hideAutoBonus;文件键是所属营养组。 |
| 加成 | nutrition_bonuses/<组id>.json | remark 与 bonuses 数组;每条含条件、属性加成和效果加成。 |
营养组字段
| 字段 | 默认 | 说明 |
|---|---|---|
displayName | Group | 界面和提示中的组名;实际默认组由内置数据包提供中文名。 |
nutritionSymbol | Ψ | 营养行前缀符号;空白会回落到默认符号并补一个空格。 |
order | 0 | 营养界面排序,升序;相同序号按组 ID 字母序。 |
color | #FFFFFF | #RRGGBB 为纯色;其他字符串按 color_schemes.json 的方案键处理。 |
colorStyle | null | 方案键配色时的动画参数:dynamic、nameStyle、speed、steps、waveStep、pulseDelay、两个反转开关及 bold/italic/underlined。纯色时忽略。 |
decayRate | 6.0 | 自然衰减速率:每消耗 1 点饱食度降低 1/decayRate 营养值;小于等于 0 视为不衰减。 |
icon | "" | 可选图标资源名;留空使用界面默认显示。 |
initialValue | 0 | 新玩家或新增该组时的初始营养值,0–100。 |
gainMultiplier | 1 | 食物对该组的正负变化都乘此倍率;允许 0,负数/NaN/Infinity 视为非法并回落 1。最终值仍夹在 0–100。 |
enabled | true | 组总开关。关闭后该组对所有玩家隐藏、冻结、停止衰减与条件/加成;恢复后继续。 |
requiredPlayerTag | "" | 要求玩家拥有的计分板标签,精确匹配;空 = 不限制。不是物品/方块标签。 |
requiredModId | "" | 要求服务端已加载的 modid;空 = 不限制。未安装时该组对该玩家禁用,可用于整合包预置可选联动。 |
nutritionTipColors | 自动生成 | 四个独立提示颜色槽(普通/条件 × 增益/损失);nutritionTipColorsCustomized 决定增益槽是否跟随组名颜色。手改前建议先用编辑器。 |
{
"displayName": "水果",
"nutritionSymbol": "Ψ ",
"order": 2,
"color": "a",
"decayRate": 6.0,
"initialValue": 0,
"gainMultiplier": 1.0,
"enabled": true
}这里的 "a" 是方案键示例,不是要求所有组都用它。
阶段字段
| 字段 | 默认 | 说明 |
|---|---|---|
stages[].min / max | 0 / 100 | 闭区间边界;实际判定先把营养值四舍五入到整数。相邻阶段应连续,编辑器会拒绝重叠和空档。 |
stages[].label | "" | 阶段名称。 |
stages[].tooltip | [] | 该阶段的附加提示文本行。 |
stages[].commands | [] | 进入/处于该阶段时按服务端规则执行的命令;文本只向 OP4 或开启隐私开关的服务器下发。 |
hideAutoBonus | false | 文件级开关;true 时该组所有阶段悬停不再自动追加范围标题和加成预览。 |
加成字段
| 字段 | 默认 | 说明 |
|---|---|---|
remark | "" | 编辑器列表中的备注名,不参与结算;留空显示文件名。 |
bonuses[].conditions | {} | 组 ID → {min,max} 的映射;同一加成内多个条件按“且”判断。 |
bonuses[].attributeBonuses[] | [] | attribute(默认 minecraft:generic.max_health)、operation(add/multiply_base/multiply_total,默认 add)、value。 |
bonuses[].effectBonuses[] | [] | effect、level(0 = I 级)、duration(tick,默认 200)、showParticles(默认 false)。 |
GroupDefinition、StageConfig、GroupBonusConfig、ConfigManager.loadGroupsFromPacksChecked、loadStageConfigsFromPacksChecked、loadGroupBonusesFromPacksChecked。05物品、提示、方块与品质
这些类型的字段较多,下面只给字段组和入口;具体玩法解释分别放在营养、保质期、Tooltip 和品质章节,避免同一字段在三处写出不同含义。
| 数据包类型 | 路径 | 主要字段 / 说明 | 相关章节 |
|---|---|---|---|
| 物品 | items/<物品路径>.json | 营养、效果、厌倦、保质期、指令、条件规则、堆叠、品质、品级、NBT 变体 | 营养 · 厌倦 · 保质期 |
| Tooltip | tooltips/<物品路径>.json | 名称覆盖、附加行、显隐开关、NBT 变体 | Tooltip · 显示美化 |
| 方块 | blocks/<方块路径>.json | 状态/主手/潜行条件、营养、效果、命令、冷却、取消原版交互 | 小功能 |
| 品质 | quality_levels/<id>.json | 字符串 ID、名称、纯色/方案、分段、覆盖层 | 品质 |
| 品级 | rarities/<id>.json | 品级 ID、分段、色表或方案、动画参数 | 显示美化 |
| 效果行 | effect_lines/<效果id>.json | 按效果 ID 固定的提示行配色与修饰;仅在物品效果行“强制统一”时压过物品设置 | Tooltip |
物品配置的字段组
| 字段组 | 说明 | 详见 |
|---|---|---|
nutrition | 组 ID → 营养变化量;正负都乘组获取倍率,再与终身衰减和分口份数结算。 | 营养值 |
effects | 食用后药水效果,含等级、tick 时长、概率、粒子与新鲜度曲线。 | TitlePro 与效果 |
foodCooldown | 短期厌倦:maxUses、cooldownCount、cooldownMinutes、restoreHunger。 | 食物厌倦 |
foodFatigue | 终身衰减:lossStart、aversionCount;两者都设置才启用线性衰减。 | 食物厌倦 |
shelf | 基础时长、温度曲线、维度倍率、冷鲜/保冷、环境温变、食用温度效果。 | 保质期 |
onEatCommands / suppressEffects | 进食指令与清除物品自带效果;分别有独立延迟。 | 进食反馈 |
conditionalRules | 营养条件 → 目标营养变化/命令/提示;一条规则整体保存。 | 条件规则 |
stackSize | 物品级堆叠上限,0 = 原版默认;重启生效。NBT 变体不能拥有独立堆叠上限。 | 服主手册 |
quality / rarity | 绑定品质 ID 与品级 ID;品级按“命中变体 → 通用条 → item_rarities.json → 原版”的优先级取。 | 品质与品级 |
nbtLock / variantName | NBT 变体锁与备注;空 nbtLock 是通用条,非空是变体。 | NBT 变体 |
方块右键变体字段
| 字段 | 默认 | 说明 |
|---|---|---|
state | {} | 方块状态属性子集;空 = 匹配该方块任意状态。状态属性越多,匹配优先级越高。 |
hand | any | any、empty(主手为空)或 item(主手物品需命中 items)。 |
items | [] | 物品 ID 或 #标签 列表;仅 hand=item 时参与匹配。 |
consumeItem | 0 | 触发时消耗主手数量;创造模式不消耗,数量不足视为条件不满足。 |
sneak | any | any、require 或 forbid。 |
cooldownTicks | 20 | 同一变体的触发冷却,0–72000 tick;0 = 不写冷却。 |
cancelVanilla | false | 匹配后是否取消原版方块交互;为 true 时长按会去重,为 false 时每次原版重发都要结算。 |
nutrition | {} | 组 ID → 变化量;受组获取倍率影响,但没有终身衰减和分口。 |
effects / effectDelay | [] / 0 | 效果列表与施加延迟(tick);方块交互没有物品保质期,曲线效果不生效。 |
commands / commandsAtBlock | [] / false | 指令可写 {x} {y} {z};true 时执行位置改为方块中心。 |
titles / commandDelay | [] / 0 | TitlePro 标题与命令共用延迟(tick)。 |
items 与 tooltips 支持 .json.disabled 禁用约定;blocks 没有这种约定。NBT 变体可以覆盖食物/提示字段,但 stackSize 是物品单例属性,变体中会被强制为 0。ItemConfig、ItemTooltipConfig、BlockConfig、QualityLevelConfig、RarityConfig、EffectLineConfig、ConfigManager.findBlockVariant 与数据包加载器。06保质期与温度环境字段
物品的 shelf 字段控制单件食物;shelf_life/ 与 temperature/ 下的文件控制季节、环境温变和显示方案。字段默认值适合新建,实际物品常在默认数据包中覆盖。
物品 shelf 顶层字段
| 字段 | 默认 | 说明 |
|---|---|---|
durationMinutes | 60 | 基础保质时长,按分钟存储,1–99999。编辑器的 durationUnit 只是显示单位,不改变存储。 |
durationUnit | minutes | minutes、hours、days(现实日,1440 分钟)或 game_days(20 分钟)。非法值回落 minutes。 |
resultItem | minecraft:air | 过期后替换成的物品;空气表示消失。 |
inheritTemperatureOnExpire | true | 替换时让产物继承过期瞬间温度;只继承温度,产物保质期仍从 0 开始。 |
expireCommand | "" | 玩家持有物品过期时以持有者为上下文执行的命令;掉落物/容器内过期不触发,不写入物品 NBT。 |
baseDecayMultiplier | 1.0 | 基础变质倍率,非负。 |
temperatureCurves | [] | 温度 → 变质倍率曲线,最多 16 条;字段见下。 |
dimensionDecayMultipliers | {} | 维度 ID → 倍率;未列出的维度为 1。 |
scheme | hd:shelf_en | 保质期显示方案 ID;旧 hd:shelf 会规范化到现行方案,不要继续写旧值。 |
coldRetention | false | 是否启用保冷:完全冻结时回充已消耗时间,非冻结时正常消耗并永久降低回充上限。 |
coldRecoveryRate | 1.0 | 完全冻结时每分钟回充的保冷分钟数,0–100。 |
coldDegradationRate | 15.0 | 每损失基础保质时间的该百分比,回充上限永久下降一档,1–100。 |
temperatureEffectCurves | [] | 食用时的温度区间效果,最多 20 条;字段见下。 |
温度曲线与食用温度效果
| 对象 | 字段 | 说明 |
|---|---|---|
temperatureCurves[] | startTemperatureC / endTemperatureC | 主区间端点,要求起点小于终点。 |
startMultiplier / endMultiplier | 端点倍率,0–100,按端点线性过渡。 | |
startBufferTemperatureC / endBufferTemperatureC | 可选外缓冲端点;不填则主区间外不生效。旧 startBufferC/endBufferC 只读迁移。 | |
| 数量 | 最多 16 条;区间外倍率为 1。 | |
temperatureEffectCurves[] | effectId | 效果注册名;普通药水按常规施加,LSO 四个食用温度效果保留冷热语义。 |
startTemperatureC / endTemperatureC | 绝对摄氏度区间;普通新建要求起点小于终点。 | |
includeStart / includeEnd | 端点是否包含,默认都包含。旧固定温区迁移可能生成单点区。 | |
startLevel / endLevel | 0 = I 级,范围 0–127;区间内线性过渡。 | |
startDuration / endDuration | tick,范围 1–72000;20 tick = 1 秒。 | |
particles | 是否显示粒子,默认 true;数量最多 20 条。 |
common 与温变子对象
| 对象 / 字段 | 默认 | 说明 |
|---|---|---|
common.minTemperatureC / maxTemperatureC | -30 / 100 | 物品可存在的温度范围。 |
common.initialTemperatureC | 10 | 新物品初始温度。 |
common.eatableMinTemperatureC / eatableMaxTemperatureC | -5 / 35 | 可食用温度区间;超出时按服务端规则拒绝食用。 |
common.coldFreshStartC / freezingStartC / fullyFrozenC | 3 / -5 / -20 | 冷鲜点、冷冻点、完全冻结点;用于冷鲜进度与保冷判定。 |
common.highTemperatureC / preservationRate | 30 / 0.8 | 高温区起点、保鲜率;保鲜率参与变质倍率。 |
naturalEnvironment.temperatureChangeC / temperatureChangeMinutes | 1 / 2 | 自然环境基础温变:每 2 分钟 1°C。 |
naturalEnvironment.lowSpeed* / highSpeed* | 0.3 / 5 / 5;1 / 5 / 5 | 温差加速:每 5°C 增加的倍率步长与上限;升温/降温分开配置。 |
naturalEnvironment.*SpeedMultiplierBonus | 0 | 冷冻区、低温区、常温区、高温区的额外加速倍率。 |
fridgeTemperature.*ChangeC / *Minutes | 冰箱 5 / 2;冷冻室 10 / 2 | 冰箱/冷冻柜的基础温变速度。 |
fridgeTemperature.*SpeedMultiplierBonus | 0 | 冰箱内四个温区的额外加速倍率。 |
temperatureZoneEffects | null | 旧固定四温区输入,只读兼容;首次归一化时转换为 temperatureEffectCurves 并清空。新配置不要再写。 |
shelf_life/ 与 temperature/
| 文件 | 结构 / 字段 | 说明 |
|---|---|---|
shelf_life/seasons.json | fallbackMultipliers.shelfLifeMultiplier(默认 1.0);seasons[] 含 id、range(EC 节气 0–23)、shelfLifeMultiplier(0–100)、displayName | 未加载 EC 时使用回退倍率;旧 6 季节文件照读照存,不强制迁移。 |
temperature/season_temperature.json | terms[] 含 term(0–23)与 offset(-100–100) | 附加环境温度,叠加在 EC 气候上,不替换 EC 气候。 |
temperature/weather_offsets.json | terms[] 含 term、rain(默认 -1)、thunder(默认 -2) | 雨雪/雷暴温变偏移;无降水不查表;范围 -100–100。 |
temperature/day_night_offsets.json | terms[] 含 term、noon、night(默认 0) | 正午/午夜温变幅度;日内按余弦过渡,节气间平滑插值;全 0 等同关闭。 |
temperature/block_heat.json | entries[] 含 block 与 rules[];规则含 temperature(-1000–1000)与 properties | 只在非 LSO 分支生效;同一方块按规则顺序匹配,第一条属性全命中的生效,空属性为兜底。 |
S2ShelfConfig、ShelfTemperatureCurve、ShelfTemperatureEffectCurve、ShelfDurationUnit、SeasonConfig、SeasonTemperatureConfig、WeatherOffsetsConfig、DayNightOffsetsConfig、BlockHeatConfig。07外观方案与小工具
这些文件多数是共享外观或本机小工具,不改变营养/保质期结算。改配色前先确认目标行引用的是哪个方案键。
| 文件 | 结构与关键字段 | 边界 |
|---|---|---|
colors/color_schemes.json | 方案 ID → { "colors": ["#RRGGBB", ...] };方案 ID 被营养组、品质、提示行、品级和保质期方案引用 | 单个颜色可用,但两个以上才形成可见渐变;改共享方案会影响所有引用位置。 |
colors/solid_colors.json | ["#RRGGBB", ...] 色卡数组 | 供编辑器纯色选择;非法项被忽略,不会生成颜色。 |
fatigue/fatigue_gradient.json | enableGradient;fatigueLevelGradient 与 fatigueRecoveryGradient,各含 scheme、stars、dynamic、speed、steps、nameStyle、waveStep、pulseDelay、两个反转开关和修饰 | 只影响厌倦提示的颜色与动画,不改变冷却/厌食阈值。 |
fatigue/fatigue_exempt.json | 物品 ID 字符串数组;默认含腐肉、药水、蜘蛛眼、牛奶桶 | 吃下这些物品不会推进其他冷却食物的恢复计数;不是“吃它永不厌倦”的配置。 |
tooltip_templates.json | 模板数组:text、scheme、stars、shiftOnly、dynamic、nameStyle、speed、steps、waveStep、pulseDelay、两个反转开关 | 编辑器 [模板] 按钮读取;属于本实例编辑辅助,不把它当作跨客户端下发内容。 |
item_rarities.json | 物品 ID → 品级 ID 的映射 | 物品级兜底;命中 NBT 变体的品级在物品配置条目中,优先级更高。/hdset rarity clear <物品ID> 删这里。 |
bottle_fills.json | { item, fluid, result, resultNbt } 数组 | 只匹配液体源方块;创造模式不消耗也不产出;resultNbt 解析失败仍给结果物品,仅不带 NBT。 |
fog_effects.json | effects(默认夜视)、waterFogStart 80、waterFogEnd 160、lavaFogEnd 6 | 客户端本地;改变雾距离而非雾颜色;效果结束前平滑回退;服务器重载不代改本地文件。 |
effect_lines/<效果id>.json | id、scheme、dynamic、nameStyle、speed、steps、waveStep、pulseDelay、两个反转开关和修饰 | 只在物品药水效果行开启“强制统一”时压过物品自身设置;文本固定为效果名。 |
{
"silver_mist": { "colors": ["#8e9eab", "#eef2f3"] },
"warm_example": { "colors": ["#f7971e", "#ffd200"] }
}方案键只是颜色来源,不决定某条提示是否显示;显隐仍由 Tooltip 配置和可见性开关控制。
RaritySchemeConfig、RarityColors、FatigueGradientConfig、TooltipTemplateConfig、BottleFillConfig、FogEffectConfig、EffectLineConfig。08游戏内配置 UI:逐项图解
下面按实际界面的入口和行顺序绘制 HTML 示意。深灰面板、黄色分组标题、输入框、♻、底部按钮参考游戏内界面;窄屏可在预览框内左右滑动。此处的按钮和数值不连服务器,只有温度预览页签可切换说明。
入口:/hdconfig 的四个配置按钮
/hdconfig 是客户端本地命令,执行命令本身会检查 OP4;非 OP 玩家可从其他游戏界面进入本地“客户端外观配置”,不等于可以直接执行该命令。下列预览为 OP 视角,并不表示网页或服务器控制台可以打开本机界面。
- 客户端外观配置
- 每位玩家都能进入;只改变本机
display.json,不会调整服务器玩法。 - 服务端玩法配置
- 需要 OP 4;从服务端读取
server.json → gameplay,保存后等服务端回执并同步给在线玩家。 - 温度系统联动配置
- 需要 OP 4;读取季节倍率、方块热量、雨雪、昼夜、季节温变五组服务端表;另有 LSO 世界温度独立入口。
- 群系温度
- 需要 OP 4;按具体群系编辑其昼夜/天气温差,有 EC 时还可编辑 24 节气温度与降水。
- 关闭
- 回到打开此菜单前的游戏页面;不会自动保存子页尚未提交的草稿。
客户端外观配置:12 个可编辑项
行内数值是 DisplayConfig 新建时的默认值,不是你当前 display.json 的值。游戏中列表最多显示 12 行,可滚轮查看;每行的 ♻ 仅把该行草稿还原为默认值,仍需点击底部“保存”。
- 营养行最大条目数 · 6
- 普通 Tooltip 营养与条件条目的显示上限;超出截断为“…”而不是另起行。1 只保留第一条;可设 1–100。
- 标题自动换行宽度 · 1000 px
- TitlePro 标题文本超过指定像素宽度才换行;可设 1–100000。
- 信息右对齐间隙 · 20 px
- D 信息模式中左侧文本与右对齐内容之间的固定空隙;可设 0–100000。
- D 模式信息面板最大宽度 · 320 px
- 限制 D 信息面板宽度,超出时内容换行;S 保质期模式按自然宽度,不受此项限制。
- 显示强制统一药水样式 · 关
- 总开关。关闭时,即使物品行或下面“默认强制统一”开启,也不使用 HD 的统一效果样式。
- 自动显示附魔信息 · 开
- 在 D 信息模式自动显示附魔书说明,前提是有对应翻译文本;不影响附魔本身。
- 自动显示药水信息 · 开
- 控制 D 模式中的药水/效果信息块;关闭不影响普通紧凑效果行、温区效果行、手写说明或附魔说明。
- 隐藏前缀 · 关
- 仅隐藏 HD 自动加在行首的符号及间距;手写名称、行内分隔符仍保留。
- 温度单位 · 摄氏
- 点击在摄氏/华氏之间循环;只换本客户端 Tooltip 和 HUD 的显示,编辑界面与保存的配置仍用摄氏。
- 默认效果行仅 Shift 显示 · 关
- 新建效果行及未配置物品的默认可见方式;关=常显,开=按住 Shift 才显示,已保存行不改。
- 默认强制统一药水效果样式 · 关
- 新建效果行的强制统一初始值;先要打开上面的统一样式总开关,已保存行保留自己的选择。
- 饮食值行默认显示方式 · 常显
- 循环“常显 → Shift → 信息(D) → 关闭”;关闭退回原版/相关模组饮食值行。只影响未单独设置的物品及新建行。
- 保存 / 返回 / ♻
- 保存写当前客户端的
display.json并立即应用;返回不保存草稿;♻ 只重置当前一行,不是全局恢复。
defaultConditionalGainEnabled、temperatureUnitChosen、groupLocalizePrompted 是本地偏好/提示状态;不在这 12 个可编辑行里。_note_* 只读,完整字段见上方 display.json 表。服务端玩法配置:9 项与重置动作
此页只保存 server.json → gameplay;privacy、shelfMerge 没有对应的游戏内行。下列为新建默认值,服务器实值要以 OP 打开时收到的回包为准。
- 保质期与控温系统 · 关
- 保质期、温度、冷鲜的总开关;关闭期间暂停推进与相关效果,已有数据保留,重新打开不追补关闭时段。
- 启用 LSO 联动 · 开
- 允许食物保质期读取 LSO 的世界环境;关闭不等于关闭其他 LSO 功能。
- 启用 EC 联动 · 开
- 允许食物直接使用 EC 气候与 HD 季节变质倍率;不修改 LSO 自带的季节影响。
- 代理中暑效果 · 开
- 服务端把 LSO 中暑镜像为 EC 中暑以显示模糊效果;不代替玩家体温规则,是否生效还取决于联动和免疫状态。
- 属性加成刷新间隔 · 100 tick
- 营养组的属性奖励重新计算周期,默认约 5 秒;允许 1–1728000 tick。
- 药水效果刷新间隔 · 200 tick
- 营养组的药水效果奖励刷新周期,默认约 10 秒;允许 1–1728000 tick。
- 非法持有时掉落到脚下 · 关
- 从未被信任的玩家持有受保护物品时,开=丢到脚下,关=留在原位冻结并警告;默认关可减少误判丢失风险。
- 死亡掉落移除主人标记 · 关
- 开=所有死亡掉落物清除已有主人,关=仅为原本无主的掉落标注死者,已有主人的保持不变。
- 测试日志 · 关
- 开启后服务端输出方块右键和放置/分口食物的诊断明细;所有玩家都会记,排查后建议关闭。
- 重置默认定义 · 重置
- 不是重置这 9 个开关!点此后还要确认,会把营养组、阶段、加成、品质、品级五类默认定义写回 HD 覆盖层,同名覆盖、缺失补齐、自建 ID 保留,并立即重载;不可撤销,操作前备份。
- 保存 / 返回 / ♻
- 保存发送服务端并等待成功回执;失败不当作成功。返回放弃未保存草稿;♻ 只改当前行的待保存值。
温度系统联动配置:五个表页 + LSO 世界温度入口
六个入口按游戏内的两行三列排列。前五个是同一页签组,切换页签会保留未保存的输入;点击其中任一“保存”会校验并一起提交五张表。第六个“LSO 世界温度”会打开独立页面,不走五表合并保存。预览页签只切换下方说明,不修改文件。
- 变质倍率 · 服务端季节表
- 每行一个实际存在的季节/节气 ID,
0–100,默认复位为 1;大于 1 加速变质,小于 1 减慢。需 EC 有效节气及服务端“启用 EC 联动”,不改变气温;旧六季节文件仍按六条显示。 - 方块温变 · 搜索框
- 按中文名、英文名、方块 ID 或语言键过滤;清空恢复全部。搜索不丢弃已改却未保存的温度。
- 方块温变 · 每个方块/状态行
- 正数加热、负数降温,范围 -1000 至 1000;同一方块不同状态会分行,距离和遮挡影响实际贡献。♻ 还原打开页面时的该行数值;“新增方块”从背包选择可放置方块并进入确认流程。HD 自有热量表用于 HD/EC 回退分支;LSO 的世界热量读取走其来源,不能把两者当同一张表。
- 昼夜温变 · 每节气双框
- 左“正午”、右“午夜”,各为 -100 至 100°C,默认 0;一天内平滑过渡。若群系另填对应端点,群系值优先。
- 季节温变 · 每节气单框
- 每节气额外加算的摄氏温差,-100 至 100°C,默认 0;有 EC 时按当前节气,没有则取立春;不是覆盖 EC 的既有温度。
- 雨雪温变 · 每节气双框
- 左“雨/雪”默认 -1°C,右“雷雨/雪”默认 -2°C;各可设 -100 至 100°C。无降水时不施加;群系单独覆盖优先,雷暴不再叠加普通雨雪值。
- 保存 / 返回 / ♻
- 五个表页共用一次服务端保存,切页不会丢草稿;保存前校验全部页。每个 ♻ 仅复位对应输入框,返回放弃未保存值。方块页底部另有“新增方块”。
- LSO 世界温度
- 第六个按钮打开独立表单(见下),不是五表页签;仅在 LSO 联动环境中有实际作用,保存后须按 LSO 数据包机制执行
/reload。
24 节气行顺序:立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪、冬至、小寒、大寒。预览只显示前两行,不代表其余 22 行缺失。
LSO 世界温度:独立维度表单
- 维度 ID
- 新建时填完整维度 ID(如
minecraft:the_nether);载入现有文件后只读,不能借改 ID 覆盖另一维度。 - 基础温度
- LSO 世界温度的绝对量纲,不是 °C;可设 -1000 至 1000 的有限数字。
- 海平面高度 / 海拔影响
sea_level_height为整数,初始草稿 64;has_altitude控制高度影响,开启时高处更冷。- 查询当前维度
- 从服务端请求玩家当前维度的世界温度快照;不保存。
- 文件列表
- 可搜索、载入或新增维度;“删除”只对 HD 覆盖层文件开放,原生/世界数据包文件只读,删覆盖后回落下一层。
- 保存 / 关闭
- 保存写入 HD 配置数据包(已有条目编辑,原生条目创建覆盖),成功后仍须手动
/reload;关闭不保存草稿。旧“昼夜循环刻数”字段不在当前表单中。
群系温度:按群系的覆盖与 24 节气
- 群系(基温:…)/ 查询其他群系
- 一次编辑一个群系。基温来自原版群系、只读且不是摄氏度;输入群系 ID 或从列表选择,右侧按钮仅在 EC 可用时显示。
- 昼夜温差 · 正午 / 午夜
- 此群系的两个独立覆盖值(°C):留空继承全局同名端点,填 0 表示显式覆盖成零而非继承;不会与全局值相加。
- 雨雪/雷雨温差 · 两个输入框
- 同样留空继承全局,填数值覆盖;只影响温度,雷雨时用雷雨框,不再加普通雨雪框。与昼夜覆盖均属于 HD 自有配置。
- 平均温度 / 平均降水
- EC 环境才出现;批量调整各节气的预计 °C 或最终降水值,属于草稿,仍需保存。
- 24 节气 · 黄色额外温差
- 只读展示“季节温变”页同一节气的值;想修改须回温度系统的“季节温变”页;不包含在右侧的 EC 预计气温内。
- 24 节气 · EC 偏移 / 最终降水
- 有 EC 时可编辑;EC 偏移不是 °C,最终降水是基础值加节气偏移,不等于完整降雨概率。留空沿用原有设置。
- 24 节气 · 预计气温 / 自动分配
- 预计气温按摄氏展示 EC 气候估算,不含方块、天气、昼夜额外值,不能代表玩家/食物最终温度。改预计值后点该行“自动分配”反推 EC 偏移,再点保存。
- 查询所在群系 / 刷新
- 前者选玩家脚下的群系并请求配置;后者重算预计值、空白默认值和当前服务端温度详情,不写盘。
- 保存 / 删除覆盖 / 关闭
- 保存提交 EC 气候(有 EC 时)及 HD 群系覆盖;EC 气候改动需按 EC 资源重载机制执行
/reload。删除覆盖仅删除此群系 HD 昼夜/天气覆盖以恢复继承,不是删除 EC 或原版群系;关闭不保存草稿。
HdModConfigScreen.init、HdPanelConfigScreen.render、HdDisplayConfigScreen.buildClientRows/buildServerRows/onSave、HdTempIntegrationScreen.init/onSave、LsoDimensionTempScreen.init、LsoDimensionFileListScreen.init、HdBiomeClimateScreen.init/save、CPacketResetDefaults.handle。09保存与刷新方式
同一个“保存”在不同位置含义不同:客户端本地文件、服务端权威分节和启动期注册不能互相替代。
游戏内配置菜单
| 入口 | 覆盖内容 | 权限 / 生效 |
|---|---|---|
| 客户端外观配置 | display.json:Tooltip 布局、温度单位、默认显示模式 | 所有玩家;保存写本机文件,立即应用 |
| 服务端玩法配置 | server.json 的 gameplay:保质期总开关、联动、刷新间隔、保护物品、测试日志 | OP4;服务端保存并回执,在线玩家收到投影 |
| 温度系统联动配置 | 季节倍率、方块热量、雨雪/昼夜/节气温度及 LSO 世界温度入口 | OP4;五个主表页同批保存,LSO 世界温度另存 |
| 群系温度 | 按群系的昼夜/天气温差;有 EC 时还可调节气温度与降水 | OP4;EC 字段保存后按其资源机制重载 |
改完之后做什么
server.json、营养组/阶段/加成、物品、方块、品级、颜色和保质期方案:保存或编辑后执行 /hdreload,让本模组重新读盘并向在线玩家重发权威内容。display.json、客户端 fog_effects.json、本地提示模板:在各客户端处理;服务器执行 /hdreload 不会替你改这些本地文件。| 修改内容 | 推荐动作 | 为什么 |
|---|---|---|
server.json gameplay / privacy / shelfMerge | gameplay 用 OP 页保存;privacy、shelfMerge 手改后 /hdreload | 游戏内页只往返 gameplay;另两节没有该页编辑行。 |
display.json、本地雾效、本地模板 | 在对应客户端保存;手改后重进客户端 | 不参与服务端同步,/hdreload 不远程重写本地文件。 |
| 营养组 / 阶段 / 加成、物品、提示、方块、品质、品级、效果行 | 保存后 /hdreload;世界数据包改动可用原版 /reload | HD 覆盖层由 /hdreload 以磁盘为准重建;世界数据包由资源管理器刷新。 |
新增/删除 quality_registry/ 条目 | 两端同步定义后重启 | 物品注册只发生在启动阶段;/hdreload 只重算待生效列表。 |
物品 stackSize | 重启 | 堆叠上限是物品单例属性;NBT 变体不能各自覆盖。 |
| 共享客户端资源(贴图、字体等) | 分发到各客户端 | 服务端配置只能描述引用,不能把资源推送到客户端。 |
/hdreload 当成原版 /reload:它只重载 Healthy Diet 自身可重载的配置和 HD 覆盖层;原版数据包/资源包、其他模组的资源以及客户端本地文件仍按各自流程处理。HdModConfigScreen、HdDisplayConfigScreen、HdTempIntegrationScreen、HDReloadCommand.reloadAll、QualityRegistryLoader。