Healthy DietFEATURE GUIDE繁體中文
REFERENCE / CONFIGURATION

設定項詳解:檔案欄位與遊戲內介面。

按檔案定位伺服器玩法與用戶端顯示設定,再用遊戲內介面預覽核對每個可見選項的作用、儲存範圍和重新整理方式。

server.jsondisplay.json遊戲內介面預覽重新整理邊界
預設值與預覽邊界:表中的「預設」指代碼或新建設定的初始值,不表示你的伺服器正在使用該值。下方仿遊戲 UI 是唯讀 HTML 示意,不連接遊戲、不顯示即時設定,也不能儲存;實際行數、語言、第三方模組與權限可能不同。帶 _note_ 前綴的欄位只是唯讀說明,修改不會生效。

01設定放在哪,歸誰管

所有路徑都相對於實例的 config/healthy_diet/;資料包路徑另見 data/<命名空間>/healthy_diet/。先看「作用域」,再看「典型重新整理方式」。

共 18 個設定入口;輸入檔案名、路徑或欄位名過濾。

檔案 / 目錄作用域負責內容典型重新整理
server.json
gameplay / 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/。

結構示意(省略唯讀 _note_ 欄位)
{
  "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:玩法與重新整理間隔

欄位類型 / 預設作用與邊界
shelfTemperatureEnabledboolean / false保存期限與溫度系統總開關。關閉時暫停衰減、溫度/冷鮮推進、過期產物與過期指令、溫度拒食、溫區效果和相關提示;已有物品資料保留,關閉時段從下次結算中扣除,不追溯補算。
lsoIntegrationEnabledboolean / true是否允許 hd:shelf 使用 LSO 的完整世界環境;不關閉其他 LSO 相容。
ecIntegrationEnabledboolean / true是否允許 hd:shelf 直接使用 EC 氣候和 HD 的 EC 季節倍率;不修改 EC 已由 LSO 提供的內容。
proxyHeatstrokeEffectboolean / true把 LSO 中暑鏡像為 EC 中暑(伺服器端每 5 秒檢查,僅藉助 EC 的模糊效果);無 LSO 中暑或帶免疫時移除 EC 中暑。
bonusUpdateTicksint / 100屬性加成結算間隔,單位 tick;限制在 1–1728000。預設約 5 秒。
effectUpdateTicksint / 200藥水效果加成重新整理間隔,單位 tick;限制在 1–1728000。預設約 10 秒。
ejectIllegalProtectedItemsboolean / false玩家持有從未被信任的保護物品時:true 丟到腳下;false 留在原位凍結並警告。預設關閉以免誤判造成掉落消失。
removeOwnerOnDeathDropboolean / false死亡掉落:true 清除所有掉落物的保護資料;false 只給原本無主的掉落寫入死者 UUID,已有主人的掉落保持原主人。
debugLogsboolean / false伺服器端測試日誌開關;開啟後輸出方塊右鍵與放置食物/分口食物的詳細日誌。/hdreload 應用。

privacy:階段指令文字

欄位類型 / 預設作用與邊界
sendCommandTextToAllPlayersboolean / false預設只向權限 4 的玩家下發階段指令文字;true 時非 OP 也收到完整階段設定,可用於公開玩法說明。它不改變指令執行權限。

shelfMerge:堆疊合併門檻

欄位類型 / 預設作用與邊界
mergeRemainingMinutesint / 5兩堆剩餘保存期限的最大差(分鐘)仍可合併;限制在 1–1440。
mergeTempThresholdfloat / 10.0兩堆物品溫度的最大差(°C)仍可合併;限制在 0–100,NaN 差值忽略。
mergeColdFreshThresholdfloat / 20.0兩堆冷鮮進度(0–100)的最大差仍可合併;限制在 0–100。
儲存邊界:OP 設定頁的「伺服器端顯示」當前往返的是 gameplay 分節;privacy 與 shelfMerge 需要編輯 server.json 後執行 /hdreload。檔案唯讀時設定頁儲存失敗,不會改內存中的權威值。
源碼依據:ServerGameplayConfig、ServerPrivacyConfig、ShelfMergeConfig、ServerConfigFile、ConfigManager.saveServerGameplayConfig。

03display.json:用戶端本機偏好

這份檔案只影響當前用戶端的外觀與編輯預設值,不參與伺服器玩法同步。伺服器端下的玩法開關在 server.json 的 gameplay,不要寫回這裡。

欄位類型 / 預設作用與邊界
nutritionPerLineint / 6普通 Tooltip 營養與條件條目的顯示上限;超過上限截斷並附省略號。設為 1 只顯示第一條,不是每組單獨換行;編輯器範圍 1–100。
titleproWrapWidthint / 1000TitlePro 標題換行寬度(像素);編輯器範圍 1–100000。
defaultConditionalGainEnabledboolean / true新建條件營養規則時「實際增益」的預設開關;只初始化草稿,不是已儲存規則的執行開關。
infoGapWidthint / 20D 模式右對齊提示行左右內容的固定間距;編輯器範圍 0–100000。
maxInfoWidthint / 320D 模式資訊面板的最大寬度(像素),超出換行;S 模式不受此上限限制。編輯器範圍 0–100000。
showUnifiedPotionStyleboolean / false統一藥水樣式總開關;關閉時繞過所有物品和預設的「強制統一」選取。
enableEnchantmentInfoboolean / trueD 模式自動顯示附魔書說明(按 Enchantment Descriptions 約定讀取語言鍵)。
enablePotionInfoboolean / trueD 模式藥水/效果資訊總開關。關閉後 D 頁不顯示原版藥水說明、HD 效果行、外部模組效果行、屬性統一段和 LSO 口渴行;普通模式緊湊效果行、溫區效果行、JEI/手寫 D 文字和附魔說明不受影響。
hideSystemPrefixesboolean / false只隱藏 HD 自動新增的行首符號及其間距;不隱藏玩家手寫名稱、行內分隔符或分段文字。
temperatureUnitstring / celsiuscelsius 或 fahrenheit;只影響本用戶端提示/HUD,設定檔和編輯器仍用攝氏。非法值回落攝氏。
temperatureUnitChosenboolean / false本用戶端是否已明確選取溫度單位;用於首次提示,不上傳同步。
groupLocalizePromptedboolean / falseOP 的營養組名稱本機化提示是否已在本用戶端顯示或回答;僅本機記錄。
defaultEffectsShiftOnlyboolean / false新建藥水效果行的預設顯示模式:false 常顯,true 僅按住 Shift;已儲存的行保留自己的設定。
defaultForceUnifyboolean / false新建效果行時「強制統一」的預設值;只對已有 Tooltip 設定/資料包條目的物品生效。
defaultFoodBarDisplayModestring / alwaysalways 常顯、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>.jsonstages 數組與 hideAutoBonus;檔案鍵是所屬營養組。
加成nutrition_bonuses/<組id>.jsonremark 與 bonuses 數組;每條含條件、屬性加成和效果加成。

營養組欄位

欄位預設說明
displayNameGroup介面和提示中的組名;實際預設組由內置資料包提供中文名。
nutritionSymbolΨ 營養行前綴符號;空白會回落到預設符號並補一個空格。
order0營養介面排序,升序;相同序號按組 ID 字母序。
color#FFFFFF#RRGGBB 為純色;其他字元串按 color_schemes.json 的方案鍵處理。
colorStylenull方案鍵配色時的動畫參數:dynamic、nameStyle、speed、steps、waveStep、pulseDelay、兩個反轉開關及 bold/italic/underlined。純色時忽略。
decayRate6.0自然衰減速率:每消耗 1 點飽食度降低 1/decayRate 營養值;小於等於 0 視為不衰減。
icon""可選圖示資源名;留空使用介面預設顯示。
initialValue0新玩家或新增該組時的初始營養值,0–100。
gainMultiplier1食物對該組的正負變化都乘此倍率;允許 0,負數/NaN/Infinity 視為非法並回落 1。最終值仍夾在 0–100。
enabledtrue組總開關。關閉後該組對所有玩家隱藏、凍結、停止衰減與條件/加成;恢復後繼續。
requiredPlayerTag""要求玩家擁有的計分板標籤,精確匹配;空 = 不限制。不是物品/方塊標籤。
requiredModId""要求伺服器端已載入的 modid;空 = 不限制。未安裝時該組對該玩家禁用,可用於整合包預置可選連動。
nutritionTipColors自動生成四個獨立提示顏色槽(普通/條件 × 增益/損失);nutritionTipColorsCustomized 決定增益槽是否跟隨組名顏色。手改前建議先用編輯器。
營養組範例(檔案名即組 ID)
{
  "displayName": "水果",
  "nutritionSymbol": "Ψ ",
  "order": 2,
  "color": "a",
  "decayRate": 6.0,
  "initialValue": 0,
  "gainMultiplier": 1.0,
  "enabled": true
}

這裡的 "a" 是方案鍵範例,不是要求所有組都用它。

階段欄位

欄位預設說明
stages[].min / max0 / 100閉區間邊界;實際判定先把營養值四捨五入到整數。相鄰階段應連續,編輯器會拒絕重疊和空檔。
stages[].label""階段名稱。
stages[].tooltip[]該階段的附加提示文字行。
stages[].commands[]進入/處於該階段時按伺服器端規則執行的指令;文字只向 OP4 或開啟隱私開關的伺服器下發。
hideAutoBonusfalse檔案級開關;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 變體營養 · 厭倦 · 保存期限
Tooltiptooltips/<物品路徑>.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 / variantNameNBT 變體鎖與備註;空 nbtLock 是通用條,非空是變體。NBT 變體

方塊右鍵變體欄位

欄位預設說明
state{}方塊狀態屬性子集;空 = 匹配該方塊任意狀態。狀態屬性越多,匹配優先級越高。
handanyany、empty(主手為空)或 item(主手物品需命中 items)。
items[]物品 ID 或 #標籤 列表;僅 hand=item 時參與匹配。
consumeItem0觸發時消耗主手數量;創造模式不消耗,數量不足視為條件不滿足。
sneakanyany、require 或 forbid。
cooldownTicks20同一變體的觸發冷卻,0–72000 tick;0 = 不寫冷卻。
cancelVanillafalse匹配後是否取消原版方塊交互;為 true 時長按會去重,為 false 時每次原版重發都要結算。
nutrition{}組 ID → 變化量;受組取得倍率影響,但沒有終身衰減和分口。
effects / effectDelay[] / 0效果列表與施加延遲(tick);方塊交互沒有物品保存期限,曲線效果不生效。
commands / commandsAtBlock[] / false指令可寫 {x} {y} {z};true 時執行位置改為方塊中心。
titles / commandDelay[] / 0TitlePro 標題與指令共用延遲(tick)。
禁用與變體:items 與 tooltips 支援 .json.disabled 禁用約定;blocks 沒有這種約定。NBT 變體可以覆蓋食物/提示欄位,但 stackSize 是物品單例屬性,變體中會被強制為 0。
源碼依據:ItemConfig、ItemTooltipConfig、BlockConfig、QualityLevelConfig、RarityConfig、EffectLineConfig、ConfigManager.findBlockVariant 與資料包載入器。

06保存期限與溫度環境欄位

物品的 shelf 欄位控制單件食物;shelf_life/ 與 temperature/ 下的檔案控制季節、環境溫變和顯示方案。欄位預設值適合新建,實際物品常在預設資料包中覆蓋。

物品 shelf 頂層欄位

欄位預設說明
durationMinutes60基礎保質時長,按分鐘存儲,1–99999。編輯器的 durationUnit 只是顯示單位,不改變存儲。
durationUnitminutesminutes、hours、days(現實日,1440 分鐘)或 game_days(20 分鐘)。非法值回落 minutes。
resultItemminecraft:air過期後替換成的物品;空氣表示消失。
inheritTemperatureOnExpiretrue替換時讓產物繼承過期瞬間溫度;只繼承溫度,產物保存期限仍從 0 開始。
expireCommand""玩家持有物品過期時以持有者為上下文執行的指令;掉落物/容器內過期不觸發,不寫入物品 NBT。
baseDecayMultiplier1.0基礎變質倍率,非負。
temperatureCurves[]溫度 → 變質倍率曲線,最多 16 條;欄位見下。
dimensionDecayMultipliers{}維度 ID → 倍率;未列出的維度為 1。
schemehd:shelf_en保存期限顯示方案 ID;舊 hd:shelf 會規範化到現行方案,不要繼續寫舊值。
coldRetentionfalse是否啟用保冷:完全凍結時回充已消耗時間,非凍結時正常消耗並永久降低回充上限。
coldRecoveryRate1.0完全凍結時每分鐘回充的保冷分鐘數,0–100。
coldDegradationRate15.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 / endLevel0 = I 級,範圍 0–127;區間內線性過渡。
startDuration / endDurationtick,範圍 1–72000;20 tick = 1 秒。
particles是否顯示粒子,預設 true;數量最多 20 條。

common 與溫變子對象

對象 / 欄位預設說明
common.minTemperatureC / maxTemperatureC-30 / 100物品可存在的溫度範圍。
common.initialTemperatureC10新物品初始溫度。
common.eatableMinTemperatureC / eatableMaxTemperatureC-5 / 35可食用溫度區間;超出時按伺服器端規則拒絕食用。
common.coldFreshStartC / freezingStartC / fullyFrozenC3 / -5 / -20冷鮮點、冷凍點、完全凍結點;用於冷鮮進度與保冷判定。
common.highTemperatureC / preservationRate30 / 0.8高溫區起點、保鮮率;保鮮率參與變質倍率。
naturalEnvironment.temperatureChangeC / temperatureChangeMinutes1 / 2自然環境基礎溫變:每 2 分鐘 1°C。
naturalEnvironment.lowSpeed* / highSpeed*0.3 / 5 / 5;1 / 5 / 5溫差加速:每 5°C 增加的倍率步長與上限;升溫/降溫分開設定。
naturalEnvironment.*SpeedMultiplierBonus0冷凍區、低溫區、常溫區、高溫區的額外加速倍率。
fridgeTemperature.*ChangeC / *Minutes冰箱 5 / 2;冷凍室 10 / 2冰箱/冷凍櫃的基礎溫變速度。
fridgeTemperature.*SpeedMultiplierBonus0冰箱內四個溫區的額外加速倍率。
temperatureZoneEffectsnull舊固定四溫區輸入,唯讀相容;首次歸一化時轉換為 temperatureEffectCurves 並清空。新設定不要再寫。

shelf_life/ 與 temperature/

檔案結構 / 欄位說明
shelf_life/seasons.jsonfallbackMultipliers.shelfLifeMultiplier(預設 1.0);seasons[] 含 id、range(EC 節氣 0–23)、shelfLifeMultiplier(0–100)、displayName未載入 EC 時使用回退倍率;舊 6 季節檔案照讀照存,不強制遷移。
temperature/season_temperature.jsonterms[] 含 term(0–23)與 offset(-100–100)附加環境溫度,疊加在 EC 氣候上,不替換 EC 氣候。
temperature/weather_offsets.jsonterms[] 含 term、rain(預設 -1)、thunder(預設 -2)雨雪/雷暴溫變偏移;無降水不查表;範圍 -100–100。
temperature/day_night_offsets.jsonterms[] 含 term、noon、night(預設 0)正午/午夜溫變幅度;日內按餘弦過渡,節氣間平滑插值;全 0 等同關閉。
temperature/block_heat.jsonentries[] 含 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.jsonenableGradient;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.jsoneffects(預設夜視)、waterFogStart 80、waterFogEnd 160、lavaFogEnd 6用戶端本機;改變霧距離而非霧顏色;效果結束前平滑回退;伺服器重載不代改本機檔案。
effect_lines/<效果id>.jsonid、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 視角,並不表示網頁或伺服器控制臺可以開啟本機介面。

菜單預覽 · OP 視角(普通玩家從其他介面進入此菜單時,僅「用戶端外觀設定」可用,後三項置灰)
用戶端外觀設定
每位玩家都能進入;只改變本機 display.json,不會調整伺服器玩法。
伺服器端玩法設定
需要 OP 4;從伺服器端讀取 server.json → gameplay,儲存後等伺服器端回執並同步給線上玩家。
溫度系統連動設定
需要 OP 4;讀取季節倍率、方塊熱量、雨雪、晝夜、季節溫變五組伺服器端表;另有 LSO 世界溫度獨立入口。
群系溫度
需要 OP 4;按具體群系編輯其晝夜/天氣溫差,有 EC 時還可編輯 24 節氣溫度與降水。
關閉
回到開啟此菜單前的遊戲頁面;不會自動儲存子頁尚未提交的草稿。

用戶端外觀設定:12 個可編輯項

行內數值是 DisplayConfig 新建時的預設值,不是你當前 display.json 的值。遊戲中列表最多顯示 12 行,可滾輪檢視;每行的 ♻ 僅把該行草稿還原為預設值,仍需點擊底部「儲存」。

用戶端頁預覽 · 向下滾動框內列表可見後 3 項(預覽本身唯讀)
用戶端外觀設定
用戶端布局
營養行最大條目數♻6
標題自動換行寬度(像素)♻1000
資訊右對齊間隙(像素)♻20
D 模式資訊面板最大寬度(像素)♻320
顯示強制統一藥水樣式♻關
自動顯示附魔資訊♻開
自動顯示藥水資訊♻開
隱藏前綴♻關
溫度單位♻攝氏
Tooltip 可見性預設值
預設效果行僅 Shift 顯示♻關
預設強制統一藥水效果樣式♻關
飲食值行預設顯示方式♻常顯
營養行最大條目數 · 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 連動♻開
啟用 EC 連動♻開
代理中暑效果♻開
伺服器端營養玩法
屬性加成重新整理間隔(tick)♻100
藥水效果重新整理間隔(tick)♻200
物品所有權保護
非法持有時掉落到腳下♻關
死亡掉落移除主人標記♻關
測試與調試
測試日誌♻關
重置
重置預設定義重置
保存期限與控溫系統 · 關
保存期限、溫度、冷鮮的總開關;關閉期間暫停推進與相關效果,已有資料保留,重新開啟不追補關閉時段。
啟用 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 世界溫度」會開啟獨立頁面,不走五表合併儲存。預覽頁籤只切換下方說明,不修改檔案。

溫度頁預覽 · 點擊頁籤切換示意(資料行範例,真實條目來自伺服器端)
溫度系統連動設定
季節保存期限倍率
立春♻1
雨水♻1
… 後續按伺服器端季節表排列
變質倍率 · 伺服器端季節表
每行一個實際存在的季節/節氣 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 世界溫度:獨立維度表單

獨立頁預覽 · 新建草稿示意;不代表當前世界、LSO 檔案或伺服器端的真實值
LSO 世界溫度
新增草稿(確認後才寫入)
維度 ID(新建時輸入維度 ID)基礎溫度20海平面高度 / 海拔影響
64海拔影響: 開
 
維度 ID
新建時填完整維度 ID(如 minecraft:the_nether);載入現有檔案後唯讀,不能借改 ID 覆蓋另一維度。
基礎溫度
LSO 世界溫度的絕對量綱,不是 °C;可設 -1000 至 1000 的有限數字。
海平面高度 / 海拔影響
sea_level_height 為整數,初始草稿 64;has_altitude 控制高度影響,開啟時高處更冷。
查詢當前維度
從伺服器端請求玩家當前維度的世界溫度快照;不儲存。
檔案列表
可搜索、載入或新增維度;「刪除」只對 HD 覆蓋層檔案開放,原生/世界資料包檔案唯讀,刪覆蓋後回落下一層。
儲存 / 關閉
儲存寫入 HD 設定資料包(已有條目編輯,原生條目建立覆蓋),成功後仍須手動 /reload;關閉不儲存草稿。舊「晝夜循環刻數」欄位不在當前表單中。

群系溫度:按群系的覆蓋與 24 節氣

群系頁預覽 · 範例群系僅用於排版;「基溫:?」 表示此離線示意沒有遊戲內讀數
設定群系基礎溫度
群系(基溫:?)minecraft:plains查詢其他群系
晝夜溫差正午 · 留空繼承午夜 · 留空繼承平均溫度
雨雪/雷雨溫差雨雪 · 留空繼承雷雨 · 留空繼承平均降水
立春額外 0EC 偏移降水值預計 °C自動分配
雨水額外 0EC 偏移降水值預計 °C自動分配
… 其餘節氣同結構
群系(基溫:…)/ 查詢其他群系
一次編輯一個群系。基溫來自原版群系、唯讀且不是攝氏度;輸入群系 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 或原版群系;關閉不儲存草稿。
無 EC 時的介面差異:不顯示 24 條 EC 節氣編輯行,也沒有「查詢其他群系/平均溫度/平均降水」;群系晝夜與雨雪四個覆蓋框仍可用。舊的獨立「LSO 群系溫度」和「LSO 方塊溫變」按鈕不在當前溫度頁的六個有效入口裡,別按舊截圖尋找。
源碼依據: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 / shelfMergegameplay 用 OP 頁儲存;privacy、shelfMerge 手改後 /hdreload遊戲內頁只往返 gameplay;另兩節沒有該頁編輯行。
display.json、本機霧效、本機範本在對應用戶端儲存;手改後重進用戶端不參與伺服器端同步,/hdreload 不遠端重寫本機檔案。
營養組 / 階段 / 加成、物品、提示、方塊、品質、品級、效果行儲存後 /hdreload;世界資料包改動可用原版 /reloadHD 覆蓋層由 /hdreload 以磁碟為準重建;世界資料包由資源管理器重新整理。
新增/刪除 quality_registry/ 條目兩端同步定義後重啟物品註冊只發生在啟動階段;/hdreload 只重算待生效列表。
物品 stackSize重啟堆疊上限是物品單例屬性;NBT 變體不能各自覆蓋。
共享用戶端資源(貼圖、字體等)分發到各用戶端伺服器端設定只能描述引用,不能把資源推送到用戶端。
不要把 /hdreload 當成原版 /reload:它只重載 Healthy Diet 自身可重載的設定和 HD 覆蓋層;原版資料包/資源包、其他模組的資源以及用戶端本機檔案仍按各自流程處理。
需要確認具體物品欄位?營養、厭倦、保存期限、Tooltip 和品質章節分別解釋欄位的玩法含義;本頁負責「欄位在哪、遊戲內選項是什麼、改完怎麼生效」。
檢視服主手冊 →
源碼依據:HdModConfigScreen、HdDisplayConfigScreen、HdTempIntegrationScreen、HDReloadCommand.reloadAll、QualityRegistryLoader。