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。