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

Настройка 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Получают ли игроки онлайн с правом betterstructures.warn (по умолчанию OP) кликабельное сообщение для телепортации, когда где-либо на сервере завершается вставка структуры или начинается генерация модульного подземелья. /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Загружаются ли обновления плагина и контента автоматически при запуске. Это ключ, стоящий за переключателем Автоматические обновления в /bs setup. Загруженные обновления контента и плагина начинают использоваться после следующего перезапуска, если только nightbreak.applyPluginUpdatesWithoutRestart не применит обновление плагина раньше.
nightbreak.applyPluginUpdatesWithoutRestartneverКогда применяется загруженное обновление плагина. never ждёт следующего перезапуска. when-empty применяет его, как только на сервере не останется игроков (проверка каждые 30 секунд). immediately применяет его сразу после загрузки. Любое другое значение считается как never. Применение обновления перезагружает BetterStructures и зависящие от него плагины MagmaGuy, поэтому идущие бои с боссами, арены и экземпляры подземелий завершаются. Плагин другого автора, зависящий от BetterStructures, блокирует замену. /bs applypluginupdate применяет подготовленное обновление по запросу.

ValidWorlds.yml

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

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

При обновлении файл ValidWorlds.yml со старым ключом Valid worlds целиком переносится без изменений в plugins/MagmaCore/outdated files/BetterStructures/<archive batch>/ValidWorlds.yml. BetterStructures создаёт новый файл с текущими настройками миров по умолчанию. Просмотрите прежние настройки в архиве, перенесите нужные значения в Valid worlds v2 и выполните /bs reload. Не возвращайте старый файл без изменений: он по-прежнему соответствует устаревшему формату.

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

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