Настройка 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 блоков).
| Ключ | По умолчанию | Описание |
|---|---|---|
distanceSurface | 27 | Шаг сетки для структур SURFACE |
distanceShallow | 22 | Шаг сетки для структур UNDERGROUND_SHALLOW |
distanceDeep | 22 | Шаг сетки для структур UNDERGROUND_DEEP |
distanceSky | 90 | Шаг сетки для структур SKY |
distanceLiquid | 60 | Шаг сетки для структур LIQUID_SURFACE |
distanceDungeonV2 | 80 | Шаг сетки для размещения DUNGEON |
maxOffsetSurface | 5 | Случайное смещение узлов наземной сетки |
maxOffsetShallow | 5 | Случайное смещение узлов сетки неглубоких подземных структур |
maxOffsetDeep | 5 | Случайное смещение узлов сетки глубоких подземных структур |
maxOffsetSky | 5 | Случайное смещение узлов небесной сетки |
maxOffsetLiquid | 5 | Случайное смещение узлов сетки структур на поверхности жидкости |
maxOffsetDungeonV2 | 18 | Случайное смещение узлов сетки подземелий |
Меньшие расстояния означают больше структур. Меньшие смещения дают более «сеточное» размещение, большие — менее предсказуемое.
Проверка значений. Расстояния должны быть не меньше 1. Смещения должны находиться в диапазоне от 0 до 1073741823 — это максимальное значение, которое генератор случайного размещения может безопасно использовать. При значении вне допустимого диапазона BetterStructures выводит предупреждение, записывает значение по умолчанию для этого ключа обратно в config.yml и продолжает работу со значением по умолчанию, а не прерывает генерацию.
Смещения выводятся из сида мира и имени типа структуры, поэтому один и тот же сид даёт одну и ту же расстановку при каждом перезапуске.
Защита спавна
| Ключ | По умолчанию | Описание |
|---|---|---|
spawnProtectionRadius | 100 | Минимальное расстояние в блоках от координат 0, 0, внутри которого структуры не размещаются. Применяется ко всем мирам. Установите 0, чтобы отключить. |
Обратите внимание: расстояние отсчитывается от начала координат мира, а не от точки спавна каждого мира.
Границы по высоте
Эти параметры ограничивают, где могут оказаться подземные структуры, для каждого измерения. Структура, чья точка привязки вышла бы за пределы диапазона, возвращается внутрь него.
| Ключ | По умолчанию | Описание |
|---|---|---|
lowestYNormalCustom | -60 | Наименьшая Y для миров NORMAL и CUSTOM |
highestYNormalCustom | 320 | Наибольшая Y для миров NORMAL и CUSTOM |
lowestYNether | 4 | Наименьшая Y в Аду |
highestYNether | 120 | Наибольшая Y в Аду |
lowestYEnd | 0 | Наименьшая Y в Крае |
highestYEnd | 320 | Наибольшая Y в Крае |
У небесных структур свои настройки, и это смещения над самым высоким блоком в столбце, а не абсолютные уровни Y. Для каждого размещения разыгрывается случайное значение между минимумом и максимумом.
| Ключ | По умолчанию | Описание |
|---|---|---|
normalCustomAirBuildingMinAltitude | 80 | Наименьшее небесное смещение в мирах NORMAL и CUSTOM |
normalCustomAirBuildingMaxAltitude | 120 | Наибольшее небесное смещение в мирах NORMAL и CUSTOM |
endAirBuildMinAltitude | 80 | Наименьшее небесное смещение в Крае |
endAirBuildMaxAltitude | 120 | Наибольшее небесное смещение в Крае |
Ад игнорирует все четыре: небесные структуры там размещаются внутри воздушного кармана, найденного сканированием между Y 45 и Y 100.
Производительность
| Ключ | По умолчанию | Описание |
|---|---|---|
percentageOfTickUsedForPasting | 0.2 | Доля каждого тика сервера, которую BetterStructures может потратить на вставку блоков, от 0.01 (1%) до 1 (100%). Меньшие значения снижают лаги, но постройки появляются заметнее «кусками». |
percentageOfTickUsedForPregeneration | 0.1 | Доля каждого тика сервера, используемая командой /bs pregenerate, тот же диапазон от 0.01 до 1 |
pregenerationTPSPauseThreshold | 12.0 | Предгенерация приостанавливается, когда TPS сервера падает ниже этого значения |
pregenerationTPSResumeThreshold | 14.0 | Предгенерация возобновляется, когда TPS достигает этого значения или превышает его. Держите его выше порога паузы, чтобы избежать частых циклов пауза/возобновление. |
modularChunkPastingSpeed | 10 | В настоящее время не используется. Ключ по-прежнему записывается в config.yml, но его никто не читает, поэтому его изменение ни на что не влияет. |
Администрирование и интеграция
| Ключ | По умолчанию | Описание |
|---|---|---|
warnAdminsAboutNewBuildings | true | Уведомляются ли операторы, когда рядом генерируется структура. /bs silent переключает это значение и сохраняет его. |
setupDone | false | Завершён ли процесс первоначальной настройки. Установите false и перезагрузите конфиг, чтобы /bs initialize снова предложил настройку. |
protectEliteMobsRegions | true | Создаёт ли BetterStructures защиту WorldGuard для боевых зон на базе EliteMobs. Требуются и WorldGuard, и EliteMobs. |
regionProtectedMessage | &8[BetterStructures] &cDefeat the zone's bosses to edit blocks! | Сообщение, показываемое, когда игрок пытается изменить блоки внутри одного из таких защищённых регионов |
nightbreak.autoDownloadPluginUpdates | false | Загружаются ли обновления плагина и контента автоматически при запуске. Это ключ, стоящий за переключателем 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 structures | true | Регистрируется ли как включённый мир, который 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фиксирует, что миграция уже выполнялась. Мир, который вы после этого сознательно включили обратно, остаётся включённым между перезапусками. - Устаревшие записи удаляются. При запуске и примерно через десять секунд после выгрузки мира записи, чьи миры не загружены и отсутствуют на диске, удаляются, чтобы файл не рос бесконечно.