01Файлы, владельцы и обновление
Если не указано иное, пути указаны относительно config/healthy_diet/. Записи датапака находятся в data/<пространство имён>/healthy_diet/. Фильтр работает по файлу, области и полю.
| Файл / каталог | Область | Назначение | Обычное обновление |
|---|---|---|---|
server.json | Сервер | Игровые правила, приватность, объединение стаков, тестовые логи | Экран OP или /hdreload |
display.json | Локальный клиент | Макет подсказки, единица температуры, режимы отображения | Сохранение на клиенте; после ручной правки перезапуск клиента |
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 | Игровые правила сервера | Сезонные множители порчи; резерв без Ecliptic Seasons | /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 | Игровые правила сервера | Дополнительные смещения температуры по сезонам (поверх климата EC) | /hdreload или экран температуры |
bottle_fills.json | Игровые правила сервера | Расход и результат при ПКМ по источнику жидкости | /hdreload |
fog_effects.json | Локальный клиент | Расстояние тумана под водой/в лаве для эффектов | Перечитать локальный файл клиента, не сервер |
item_rarities.json | Сервер / синхронизация | Резервные ID редкости уровня предмета | /hdreload; /hdset rarity также обновляет |
tooltip_templates.json | Локальный редактор | Локальные шаблоны строк подсказки | Редактор читает/пишет локальный экземпляр; не глобальная синхронизация |
quality_registry/*.json | Регистрация при запуске | Новые ID предметов, источник, модель, качество, поведение, лимит стака | Перезапуск обеих сторон для новых/удалённых ID |
datapack/data/<ns>/healthy_diet/ | Датапак мира + оверлей HD | items / tooltips / blocks / nutrition_* / quality_levels / rarities / effect_lines | Ванильный /reload для мира; /hdreload для оверлея HD |
config/healthy_diet/items/ не делает его текущим определением предмета.02server.json: разделы сервера
Один файл содержит разделы gameplay, privacy, shelfMerge. Старые отдельные файлы переносятся сюда и в migration_backup/.
| Поле | По умолчанию | Поведение |
|---|---|---|
shelfTemperatureEnabled | false | Главный переключатель срока годности и температуры. Выкл. приостанавливает порчу, температуру/свежесть, продукты и команды истечения, отказ по температуре, эффекты зон и связанные строки подсказки; данные предметов сохраняются, простой не начисляется задним числом. |
lsoIntegrationEnabled | true | Разрешает hd:shelf читать полную среду LSO; не отключает остальную совместимость LSO. |
ecIntegrationEnabled | true | Разрешает напрямую использовать климат EC и сезонные множители HD, не меняя данные EC от LSO. |
proxyHeatstrokeEffect | true | Сервер раз в 5 секунд зеркалит тепловой удар LSO в тепловой удар EC для размытия и снимает при отсутствии источника/иммунитете. |
bonusUpdateTicks | 100 | Интервал обновления бонусов атрибутов (1–1 728 000 tick, около 5 секунд). |
effectUpdateTicks | 200 | Интервал обновления бонусов зелий (1–1 728 000 tick, около 10 секунд). |
ejectIllegalProtectedItems | false | Если у недоверенного держателя защищённый предмет: true выбрасывает под ноги, false замораживает и предупреждает. По умолчанию false, чтобы не терять предметы при ошибке классификации. |
removeOwnerOnDeathDrop | false | true снимает защиту со всех выпавших при смерти; false ставит UUID умершего только на предметы без владельца и сохраняет существующих. |
debugLogs | false | Серверные диагностические логи правого клика и размещённой еды; перечитать /hdreload, после проверки отключить. |
privacy.sendCommandTextToAllPlayers | false | По умолчанию текст команд этапа получает только OP4; true отправляет полную настройку этапа игрокам без OP, не меняя права выполнения. |
shelfMerge.mergeRemainingMinutes | 5 | Максимальная разница оставшегося времени для стака (1–1 440 минут). |
shelfMerge.mergeTempThreshold | 10.0 | Максимальная разница температуры для стака (0–100℃); NaN игнорируется. |
shelfMerge.mergeColdFreshThreshold | 20.0 | Максимальная разница холодной свежести для стака (0–100). |
03display.json: локальные настройки клиента
Локальное оформление и значения редактирования не участвуют в синхронизации игровых правил сервера. Правила сервера находятся в server.json → gameplay.
| Поле | По умолчанию | Поведение |
|---|---|---|
nutritionPerLine | 6 | Максимум обычных строк питания/условий, затем многоточие; 1 означает только первую запись, а не одну на строку (1–100). |
titleproWrapWidth | 1000 | Ширина переноса заголовка TitlePro в пикселях (1–100 000). |
defaultConditionalGainEnabled | true | Начальный выбор «фактического прироста» для нового черновика условия, не переключатель сохранённых правил. |
infoGapWidth | 20 | Фиксированный зазор между текстом и правым содержимым в режиме D (0–100 000). |
maxInfoWidth | 320 | Максимальная ширина информационной панели D; подробности S не ограничены (0–100 000). |
showUnifiedPotionStyle | false | Главный переключатель стиля зелий; false обходит выбор предмета и принудительное объединение. |
enableEnchantmentInfo | true | Автоматически показывать описание книги зачарований в D при наличии ключей перевода. |
enablePotionInfo | true | Управляет блоком ванильных/HD/внешних эффектов, объединённых атрибутов и жажды LSO в D; обычные эффекты, зоны, JEI/свой текст и описания зачарований остаются. |
hideSystemPrefixes | false | Скрывает только префиксы и пробелы строк HD, не пользовательские имена, разделители и сегменты. |
temperatureUnit | celsius | celsius или fahrenheit для подсказок/HUD клиента; сохранённые настройки и редакторы остаются в Цельсиях; недопустимое значение — Цельсий. |
temperatureUnitChosen | false | Выбрал ли клиент единицу явно; локальное состояние первого запуска. |
groupLocalizePrompted | false | Локальное состояние запроса OP о переводе стандартных имён групп; не общая настройка. |
defaultEffectsShiftOnly | false | Начальная видимость новой строки зелья: всегда или только Shift; существующие строки сохраняют свой выбор. |
defaultForceUnify | false | Начальное принудительное объединение новых строк эффектов; только если у предмета уже есть подсказка/запись датапака. |
defaultFoodBarDisplayMode | always | always / shift / info / off. off возвращается к ванильным строкам пищевой ценности; влияет на ненастроенные предметы и новые строки. |
Устаревшие смещения/ширина панели и поля тени текста в этом файле не используются. _note_* — справка только для чтения. Сохранение на экране клиента применяется сразу; после ручной правки перезапустите клиент.
04Датапак питания: группы, этапы и бонусы
Пути в data/<пространство имён>/healthy_diet/: nutrition_groups/<groupId>.json (одно определение), nutrition_stages/<groupId>.json (этапы + hideAutoBonus), nutrition_bonuses/<groupId>.json (примечание + бонусы). Оверлей HD — в config/healthy_diet/datapack/, имена файлов — ID групп. Максимум 64 группы.
Поля группы
| Поле | По умолчанию | Описание |
|---|---|---|
displayName | Group | Название в UI/подсказках; встроенные значения могут иметь локализацию. |
nutritionSymbol | Ψ | Префикс строки питания; пусто — значение по умолчанию с пробелом. |
order | 0 | Порядок по возрастанию; при равенстве — по ID группы. |
color / colorStyle | #FFFFFF / null | HEX-цвет или ключ схемы. style управляет dynamic/nameStyle/speed/steps/waveStep/pulseDelay/reversals/bold/italic/underlined для схем; для сплошного цвета игнорируется. |
decayRate | 6.0 | Каждый потраченный пункт голода снижает питание на 1/decayRate; неположительное отключает естественное снижение. |
icon | empty | Необязательный ресурс иконки; пусто — запасной вариант UI. |
initialValue | 0 | Начальное значение новой группы/игрока, 0–100. |
gainMultiplier | 1 | Множитель положительных и отрицательных изменений; 0 допустим; отрицательное/нечисловое — 1; итог ограничен 0–100. |
enabled | true | Отключение скрывает/замораживает группу для всех, останавливает снижение, условия и бонусы. |
requiredPlayerTag | empty | Точный тег таблицы очков игрока; пусто — без ограничения. Не тег предмета/блока. |
requiredModId | empty | Требуемый загруженный ID мода сервера; пусто — без ограничения. |
nutritionTipColors | generated | Четыре слота: обычный/условный × прирост/потеря; настройка решает, следует ли прирост за цветом имени группы. |
Поля этапов и бонусов
| Поле | По умолчанию | Описание |
|---|---|---|
stages[].min/max | 0/100 | Включительные целые границы; перед проверкой значение округляется. Соседние этапы не пересекаются и не оставляют пропусков. |
stages[].label/tooltip/commands | empty / [] / [] | Необязательный заголовок, дополнительные строки и команды этапа; текст команд отправляется только OP4, если privacy не разрешает больше. |
hideAutoBonus | false | true скрывает автоматический заголовок диапазона и предпросмотр бонусов во всех подсказках этапов группы. |
remark | empty | Метка списка редактора; пусто — имя файла; на расчёт не влияет. |
bonuses[].conditions | {} | ID групп → {min,max}; несколько условий — AND. |
bonuses[].attributeBonuses[] | [] | attribute (по умолчанию max_health), operation add/multiply_base/multiply_total (по умолчанию add), value. |
bonuses[].effectBonuses[] | [] | ID эффекта, level (0=I), duration tick (по умолчанию 200), showParticles (по умолчанию false). |
05Предметы, подсказки, блоки и качество
Каталоги датапака: items/<itemPath>.json, tooltips/<itemPath>.json, blocks/<blockPath>.json, quality_levels/<id>.json, rarities/<id>.json, effect_lines/<effectId>.json. Предметы/подсказки поддерживают .json.disabled, блоки — нет. Стиль строки эффекта переопределяет предмет только при включённом принудительном объединении.
Группы полей предмета
| Поле | Значение |
|---|---|
nutrition | ID группы → изменение еды, умножается на множитель группы, пожизненный коэффициент и число порций. |
effects | Зелья после еды: уровень, tick, вероятность, частицы, необязательная кривая свежести. |
foodCooldown | Краткие maxUses, cooldownCount, cooldownMinutes, restoreHunger. |
foodFatigue | Пожизненные lossStart и aversionCount; линейное снижение только при обоих. |
shelf | Базовое время, температурные кривые, множители измерений, свежесть/холод, температура среды, эффекты еды. |
onEatCommands / suppressEffects | Команды еды и удаление собственных эффектов, у каждого своя задержка. |
conditionalRules | Условия питания → изменения цели, команды и подсказки, сохраняются целыми правилами. |
stackSize | Лимит стака уровня предмета; 0 = ваниль; нужен перезапуск, отдельного лимита для NBT-варианта нет. |
quality / rarity | ID качества/редкости; редкость: вариант → общая запись → item_rarities.json → ваниль. |
nbtLock / variantName | Сопоставление NBT и примечание; пустой nbtLock — общая запись предмета. |
Поля взаимодействия с блоками
| Поле | По умолчанию | Значение |
|---|---|---|
state | {} | Подмножество свойств состояния; пусто — любое. Более конкретное состояние приоритетнее. |
hand / items | any / [] | any, пустая основная рука или предмет, совпавший с ID/#тегом при hand=item. |
consumeItem | 0 | Расход из основной руки; творческий режим не расходует; недостаток количества не совпадает. |
sneak | any | any, требовать или запрещать приседание. |
cooldownTicks | 20 | Кулдаун варианта, 0–72 000 tick; 0 не пишет кулдаун. |
cancelVanilla | false | Отменить ванильное взаимодействие при совпадении; влияет на дедупликацию длинного нажатия. |
nutrition | {} | ID группы → изменение; множитель группы используется, пожизненное снижение и порции — нет. |
effects / effectDelay | [] / 0 | Зелья и задержка; здесь нет предмета срока годности, поэтому кривые свежести не действуют. |
commands / commandsAtBlock | [] / false | Команды могут подставлять {x}, {y}, {z}; true меняет позицию на центр блока. |
titles / commandDelay | [] / 0 | Заголовки TitlePro и команды используют общую задержку tick. |
06Поля срока годности и температуры
Значения shelf предмета отличаются от сезонных и средовых файлов в shelf_life/ и temperature/. Значения по умолчанию применяются к новой конфигурации; встроенная еда может их переопределять.
| Поле | По умолчанию | Описание |
|---|---|---|
durationMinutes / durationUnit | 60 / minutes | Базовые минуты 1–99 999; единицы редактора — минуты, часы, реальные дни (1 440 мин) или game_days (20 мин). Неверная единица — минуты. |
resultItem / inheritTemperatureOnExpire | minecraft:air / true | air — исчезновение; другой результат наследует только температуру, а не прогресс срока. |
expireCommand | empty | Выполняется от держателя при истечении в руке, не в контейнере/на земле. |
baseDecayMultiplier | 1.0 | Неотрицательный базовый множитель порчи. |
temperatureCurves | [] | До 16 кривых температура→порча с линейными концами и внешними буферами. |
dimensionDecayMultipliers | {} | ID измерения → множитель; не указанные — ×1. |
scheme | hd:shelf_en | ID схемы отображения; старый hd:shelf нормализуется к текущей схеме. |
coldRetention / coldRecoveryRate / coldDegradationRate | false / 1 / 15 | Включить восстановление при полной заморозке; минут за минуту 0–100; постоянное снижение предела за шаг 1–100% базового времени. |
temperatureEffectCurves | [] | До 20 эффектов температурных зон при еде, независимо от кривых порчи. |
common.minTemperatureC / maxTemperatureC / initialTemperatureC | -30 / 100 / 10 | Абсолютные границы и начальная температура; встроенная еда может переопределить. |
common.eatableMinTemperatureC / eatableMaxTemperatureC | -5 / 35 | Вне этого диапазона Цельсия есть нельзя. |
common.coldFreshStartC / freezingStartC / fullyFrozenC | 3 / -5 / -20 | Пороги холодной свежести и заморозки. |
common.highTemperatureC / preservationRate | 30 / 0.8 | Начало горячей зоны и защита при 50% свежести. |
naturalEnvironment.temperatureChangeC / temperatureChangeMinutes | 1 / 2 | Базовая среда: по умолчанию 1℃ за 2 минуты. |
naturalEnvironment.lowSpeed* / highSpeed* | separate | Шаг охлаждения/нагрева, разница температур и предел множителя. |
naturalEnvironment.*SpeedMultiplierBonus | 0 | Дополнительная скорость изменения в зонах заморозки/низкой/обычной/высокой. |
fridgeTemperature.*ChangeC / *Minutes | fridge 5/2; freezer 10/2 | Базовые скорости холодильника/морозильника. |
fridgeTemperature.*SpeedMultiplierBonus | 0 | Дополнительная скорость четырёх зон в холодильнике. |
temperatureZoneEffects | null | Вход миграции старых четырёх слотов; нормализуется в temperatureEffectCurves. Не использовать для новых записей. |
Концы кривых и эффектов
| Массив | Поля / ограничения |
|---|---|
temperatureCurves[] | startTemperatureC < endTemperatureC; множители 0–100; необязательные startBufferTemperatureC / endBufferTemperatureC. Вне диапазона/буферов — ×1. Старые startBufferC/endBufferC только для чтения. |
temperatureEffectCurves[] | effectId; абсолютные start/end; includeStart/includeEnd (по умолчанию true); уровни 0–127 (0 = I); длительность 1–72 000 tick (20 tick = 1 с); particles по умолчанию true. Миграция старых зон может создать допустимый одноточечный диапазон. |
Сезонные и средовые файлы
| Путь | Назначение |
|---|---|
shelf_life/seasons.json | fallbackMultipliers.shelfLifeMultiplier по умолчанию ×1 без EC; seasons[]: ID, диапазон сезона 0–23, множитель 0–100, имя; старые шесть сезонов поддерживаются. |
temperature/season_temperature.json | terms[]: сезон 0–23 и смещение среды −100–100℃, добавляется к климату EC. |
temperature/weather_offsets.json | terms[]: дождь −1 и гроза −2 по умолчанию; без осадков смещения нет. |
temperature/day_night_offsets.json | terms[]: полдень/ночь по умолчанию 0, плавная интерполяция в течение дня и между сезонами. |
temperature/block_heat.json | entries[] block + rules[] температура −1000–1000 и свойства состояния; ветка без LSO, побеждает первое полное совпадение. |
07Схемы оформления и утилиты
| Файл | Структура и ограничения |
|---|---|
colors/color_schemes.json | ID схемы → {colors:[#RRGGBB,...]}; два и более цветов дают видимый градиент; правка общей схемы влияет на все ссылки. |
colors/solid_colors.json | Массив образцов #RRGGBB для выбора; неверные значения игнорируются. |
fatigue/fatigue_gradient.json | enableGradient, fatigueLevelGradient, fatigueRecoveryGradient: scheme, stars, dynamic style, speed/steps/wave/pulse/reversals. Меняет только отображение, не пороги кулдауна. |
fatigue/fatigue_exempt.json | Массив ID; по умолчанию гнилая плоть, зелья, паучий глаз, ведро молока. Исключение — из счётчика восстановления, а не «никогда не устаёт». |
tooltip_templates.json | Локальные текст/схема/звёзды/shiftOnly/dynamic/animation редактора; не общая настройка игроков. |
item_rarities.json | ID предмета → ID редкости; резерв ниже NBT и общей записи. |
bottle_fills.json | Массив {item, fluid, result, resultNbt}; только блоки-источники; неверный resultNbt теряет NBT, но результат выдаётся. |
fog_effects.json | effects (по умолчанию Night Vision), waterFogStart 80, waterFogEnd 160, lavaFogEnd 6; локальное расстояние, не цвет. |
effect_lines/<effectId>.json | Имя эффекта и единая схема/стиль/анимация; переопределяет строку только при force-unify. |
Палитры дают цвета; макет и видимость подсказки решают, рисовать ли текст.
08Схемы интерфейса настроек
Меню настроек (/hdconfig)
/hdconfig — локальная команда клиента, сама проверяет OP4. Игрок без OP может войти в локальное оформление с других экранов, но не выполнить команду. Макеты только для чтения и не получают реальные значения.
Оформление клиента · двенадцать строк
Игровые правила сервера · девять пунктов
Интеграции температуры · пять таблиц + отдельный LSO
Пять вкладок таблиц используют один черновик и одно проверенное сохранение; при переключении несохранённые изменения сохраняются. Шестая открывает отдельную форму. Вкладки ниже только поясняют группы файлов и не меняют данные.
Множители порчи
Множитель 0–100 по ID сезона; по умолчанию ×1; нужен активный сезон EC и включённая интеграция EC. Старые шесть сезонов остаются шестью записями.
Тепло блоков
Поиск по имени/ID блока; + нагревает, − охлаждает, −1000–1000. Состояния могут иметь отдельные правила; тепло, расстояние и перекрытие определяют вклад.
День/ночь
Смещения полудня/полуночи по сезонам, каждое −100–100℃ (по умолчанию 0), интерполируются в течение дня; приоритет у границ биома.
Сезонная температура
Дополнительные −100–100℃ по сезонам (по умолчанию 0) поверх климата EC; без EC используется первый сезон.
Дождь/снег
Дождь/снег по умолчанию −1℃, гроза −2℃ по сезонам, оба −100–100℃; гроза не добавляет обычный дождь.
Температура мира LSO
Отдельная форма измерения, не входит в общее сохранение пяти таблиц; значения используют единицы LSO, не Цельсий.
Порядок сезонов: начало весны, дожди, пробуждение насекомых, весеннее равноденствие, ясно, дождь зерна, начало лета, полное зерно, колошение, летнее солнцестояние, малая жара, большая жара, начало осени, конец жары, белая роса, осеннее равноденствие, холодная роса, иней, начало зимы, малый снег, большой снег, зимнее солнцестояние, малый холод, большой холод. Просмотр не загружает реальные 24 записи сервера.
Температура мира LSO и температура биомов
09Сохранение и перезагрузка по владельцу
| Изменение | Действие / причина |
|---|---|
server.json | Сохранить gameplay на экране OP; privacy и shelfMerge править вручную и /hdreload. Через экран передаётся только gameplay. |
display.json, локальный туман/шаблоны | Сохранить на каждом клиенте; после ручной правки перезапустить клиент. Серверный /hdreload не меняет локальные файлы. |
| Оверлей HD групп, этапов, бонусов, предметов, подсказок, блоков, качества, редкости и строк эффектов | Сохранить и /hdreload для пересборки с диска и повторной синхронизации игроков. Для датапаков мира — ванильный /reload. |
quality_registry/ или stackSize | Распространить одинаковые определения и ресурсы; перезапуск для регистрации при запуске/свойства предмета. |
| Текстуры и шрифты клиента | Установить на каждом клиенте; серверная ссылка не передаёт ресурсы. |
/hdreload — не ванильный /reload: датапаки мира, другие моды и локальные файлы клиента имеют собственные механизмы перезагрузки.