Перейти к основному содержимому

Настройка BetterStructures

Эта страница — справочник по двум конфигурационным файлам уровня плагина, которые BetterStructures создаёт в папке plugins/BetterStructures. Настройка контента находится в других местах: см. Создание генераторов, Создание структур, Создание сокровищ и Модульные подземелья.

Оба файла перечитываются в основном потоке сервера при каждом запуске /bs reload, поэтому перезапуск для применения изменений здесь не нужен.

Структура папок

ПутьСодержимое
config.ymlОбщие настройки плагина, описаны ниже
ValidWorlds.ymlПереключатели вкл/выкл для каждого мира, описаны ниже
schematics/Файлы .schem структур и сгенерированные для них конфиги .yml, сканируются рекурсивно
modules/Файлы .schem модульных подземелий и сгенерированные для них конфиги .yml, сканируются рекурсивно
generators/Конфиги генераторов
module_generators/Конфиги генераторов модулей
treasures/Конфиги сокровищ (таблиц лута)
spawn_pools/Конфиги пулов спавна, используемые табличками [pool: name]
content_packages/Дескрипторы пакетов, используемые меню настройки и командами загрузки
components/Создаётся пустой при запуске, для контента, который поставляет вспомогательные компоненты
imports/Папка для ручного импорта контента
.schematic_cache/Управляемый кэш преобразованных схематик, его можно безопасно удалить

config.yml

Расстояние между структурами

BetterStructures размещает структуры на ромбовидной сетке, задаваемой сидом, — по одной сетке на каждый тип структуры. Ключи расстояния задают, насколько далеко друг от друга находятся узлы сетки, а ключи смещения сдвигают каждый узел в сторону, чтобы расстановка не выглядела механической.

Оба параметра измеряются в чанках, а не в блоках. Значение distanceSurface, равное 27, означает примерно одну наземную структуру каждые 27 чанков (около 432 блоков).

КлючПо умолчаниюОписание
distanceSurface27Шаг сетки для структур SURFACE
distanceShallow22Шаг сетки для структур UNDERGROUND_SHALLOW
distanceDeep22Шаг сетки для структур UNDERGROUND_DEEP
distanceSky90Шаг сетки для структур SKY
distanceLiquid60Шаг сетки для структур LIQUID_SURFACE
distanceDungeonV280Шаг сетки для размещения DUNGEON
maxOffsetSurface5Случайное смещение узлов наземной сетки
maxOffsetShallow5Случайное смещение узлов сетки неглубоких подземных структур
maxOffsetDeep5Случайное смещение узлов сетки глубоких подземных структур
maxOffsetSky5Случайное смещение узлов небесной сетки
maxOffsetLiquid5Случайное смещение узлов сетки структур на поверхности жидкости
maxOffsetDungeonV218Случайное смещение узлов сетки подземелий

Меньшие расстояния означают больше структур. Меньшие смещения дают более «сеточное» размещение, большие — менее предсказуемое.

Проверка значений. Расстояния должны быть не меньше 1. Смещения должны находиться в диапазоне от 0 до 1073741823 — это максимальное значение, которое генератор случайного размещения может безопасно использовать. При значении вне допустимого диапазона BetterStructures выводит предупреждение, записывает значение по умолчанию для этого ключа обратно в config.yml и продолжает работу со значением по умолчанию, а не прерывает генерацию.

Смещения выводятся из сида мира и имени типа структуры, поэтому один и тот же сид даёт одну и ту же расстановку при каждом перезапуске.

Защита спавна

КлючПо умолчаниюОписание
spawnProtectionRadius100Минимальное расстояние в блоках от координат 0, 0, внутри которого структуры не размещаются. Применяется ко всем мирам. Установите 0, чтобы отключить.

Обратите внимание: расстояние отсчитывается от начала координат мира, а не от точки спавна каждого мира.

Границы по высоте

Эти параметры ограничивают, где могут оказаться подземные структуры, для каждого измерения. Структура, чья точка привязки вышла бы за пределы диапазона, возвращается внутрь него.

КлючПо умолчаниюОписание
lowestYNormalCustom-60Наименьшая Y для миров NORMAL и CUSTOM
highestYNormalCustom320Наибольшая Y для миров NORMAL и CUSTOM
lowestYNether4Наименьшая Y в Аду
highestYNether120Наибольшая Y в Аду
lowestYEnd0Наименьшая Y в Крае
highestYEnd320Наибольшая Y в Крае

У небесных структур свои настройки, и это смещения над самым высоким блоком в столбце, а не абсолютные уровни Y. Для каждого размещения разыгрывается случайное значение между минимумом и максимумом.

КлючПо умолчаниюОписание
normalCustomAirBuildingMinAltitude80Наименьшее небесное смещение в мирах NORMAL и CUSTOM
normalCustomAirBuildingMaxAltitude120Наибольшее небесное смещение в мирах NORMAL и CUSTOM
endAirBuildMinAltitude80Наименьшее небесное смещение в Крае
endAirBuildMaxAltitude120Наибольшее небесное смещение в Крае

Ад игнорирует все четыре: небесные структуры там размещаются внутри воздушного кармана, найденного сканированием между Y 45 и Y 100.

Производительность

КлючПо умолчаниюОписание
percentageOfTickUsedForPasting0.2Доля каждого тика сервера, которую BetterStructures может потратить на вставку блоков, от 0.01 (1%) до 1 (100%). Меньшие значения снижают лаги, но постройки появляются заметнее «кусками».
percentageOfTickUsedForPregeneration0.1Доля каждого тика сервера, используемая командой /bs pregenerate, тот же диапазон от 0.01 до 1
pregenerationTPSPauseThreshold12.0Предгенерация приостанавливается, когда TPS сервера падает ниже этого значения
pregenerationTPSResumeThreshold14.0Предгенерация возобновляется, когда TPS достигает этого значения или превышает его. Держите его выше порога паузы, чтобы избежать частых циклов пауза/возобновление.
modularChunkPastingSpeed10В настоящее время не используется. Ключ по-прежнему записывается в config.yml, но его никто не читает, поэтому его изменение ни на что не влияет.

Администрирование и интеграция

КлючПо умолчаниюОписание
warnAdminsAboutNewBuildingstrueУведомляются ли операторы, когда рядом генерируется структура. /bs silent переключает это значение и сохраняет его.
setupDonefalseЗавершён ли процесс первоначальной настройки. Установите false и перезагрузите конфиг, чтобы /bs initialize снова предложил настройку.
protectEliteMobsRegionstrueСоздаёт ли BetterStructures защиту WorldGuard для боевых зон на базе EliteMobs. Требуются и WorldGuard, и EliteMobs.
regionProtectedMessage&8[BetterStructures] &cDefeat the zone's bosses to edit blocks!Сообщение, показываемое, когда игрок пытается изменить блоки внутри одного из таких защищённых регионов
nightbreak.autoDownloadPluginUpdatesfalseЗагружаются ли обновления плагина и контента автоматически при запуске. Это ключ, стоящий за переключателем Automatic Updates в /bs setup. Для применения загруженного обновления плагина всё равно требуется перезапуск.

ValidWorlds.yml

Этот файл определяет, в каких мирах генерирует BetterStructures.

New worlds spawn structures: true
EliteMobs worlds excluded by default: true
Valid worlds:
world: true
world_nether: true
world_the_end: true
КлючПо умолчаниюОписание
New worlds spawn structurestrueРегистрируется ли как включённый мир, который BetterStructures ещё не видел
Valid worldsзаполняется автоматическиПо одной записи worldname: true/false на каждый мир. Установите false, чтобы полностью прекратить генерацию структур в этом мире.
EliteMobs worlds excluded by defaultзаписывается как true после однократной миграцииВнутренняя метка. Не редактируйте её.

Автоматическое поведение

  • Новые миры регистрируются при загрузке. Мир, загружающийся впервые, сразу получает запись со значением из New worlds spawn structures.
  • Миры под управлением EliteMobs исключаются. Хаб гильдии искателей приключений и копии инстансовых подземелий регистрируются как false, даже когда New worlds spawn structures равно true, потому что их незастроенные пустотные чанки считаются новыми чанками, и BetterStructures начинал украшать хабы подземелий. Запись всё равно создаётся, поэтому вернуть значение true можно, если вы действительно этого хотите.
  • Существующие записи em_ были мигрированы однократно. Любой мир em_, который был true только из-за прежнего более разрешающего значения по умолчанию, был единожды переключён на false, а метка EliteMobs worlds excluded by default фиксирует, что миграция уже выполнялась. Мир, который вы после этого сознательно включили обратно, остаётся включённым между перезапусками.
  • Устаревшие записи удаляются. При запуске и примерно через десять секунд после выгрузки мира записи, чьи миры не загружены и отсутствуют на диске, удаляются, чтобы файл не рос бесконечно.