Создание контента
Создание постройки
Начните со структур меньше 100x100x100 блоков, чтобы упростить подгонку к рельефу и ограничить расход ресурсов. Это рекомендация, а не жёсткий предел размера. Более крупные структуры требуют больше памяти и работы при размещении, а также подходящего места в пределах высоты мира.
Специальные блоки
BetterStructures имеет два специальных блока: барьеры и коренную породу. Любой другой блок, который WorldEdit может вставить, будет вставлен нормально, но блоки барьера и коренной породы являются исключением.
| Блок | Поведение | Вариант использования |
|---|---|---|
| Барьер | Не размещает блок в этой позиции - сохраняет исходный рельеф | Скругление краёв вставки, подгонка стен под пещеры, естественная интеграция |
| Коренная порода | Сохраняет существующий твёрдый блок, иначе размещает материал пьедестала | Создание пола для рельсов без замены существующего твёрдого рельефа |
Таблички спауна
BetterStructures может использовать таблички со специальным текстом для создания мобов и боссов из EliteMobs и MythicMobs в определённых местах или для передачи маркера другому плагину.
Таблички спауна сначала вставляются, а после завершения вставки блоков удаляются непосредственно перед попыткой создания сущности. Во время вставки они могут быть видны. Удаление не доказывает успешный спаун. Неизвестный тег, недопустимый ванильный тип сущности или отсутствующий ID MythicMobs оставляет обычную табличку. Если EliteMobs или MythicMobs не установлен, схема с его тегом полностью исключается из реестра структур.
После вставки блоков BetterStructures завершает структуру в таком порядке: пьедестал, удаление оставшихся деревьев над наземными структурами, контейнеры с добычей, мобы [spawn], боссы [elitemobs], мобы [mythicmobs], сущности, сохранённые в схеме, и затем маркеры [custom]. Если моба или босса не удаётся создать, оставшиеся шаги пропускаются, BuildPasteCompleteEvent не вызывается и сообщение о новой постройке не отправляется.
| Тип таблички | Строка 1 | Строки 2-4 | Требуемый плагин |
|---|---|---|---|
| Ванильные мобы | [spawn] | Тип сущности на строке 2 | Не требуется |
| EliteMobs | [elitemobs] | Имя файла босса, распределённое по строкам 2-4 | EliteMobs |
| MythicMobs | [mythicmobs] | Имя моба на строке 2, необязательный уровень на строке 3 | MythicMobs |
| Другие плагины | [custom] | ID маркера, распределённый по строкам 2-4 | Плагин, который слушает BuildCustomMarkerEvent |
Стоящие, настенные и висячие таблички распознаются по имени материала Bukkit, оканчивающемуся на _SIGN. Фиксированного списка древесины нет. Пишите тег на лицевой стороне, поскольку современный формат читается через front_text, а не с обратной стороны. Строки, набранные в игре, JSON-текст и текстовые компоненты, записанные плагинами, читаются как обычный текст. Регистр тегов не учитывается. ID сущностей и имена файлов должны быть точными, без лишних пробелов.
Строка уровня MythicMobs необязательна. Пустая строка 3 задаёт уровень 1. Числовые уровни ниже 1 становятся равными 1. Уровень, который не является числом, или ID моба, неизвестный MythicMobs, приводит к неудачному спауну, и оставшиеся шаги завершения структуры пропускаются.
Примеры табличек спауна
Ванильные мобы
[spawn]
ZOMBIE
Создаёт постоянного зомби в горизонтальном центре блока таблички. Используйте создаваемый Spigot EntityType, например стойку для брони или кристалл Края. Перечисление также содержит типы, которые мир не может создавать напрямую. Принятое имя не гарантирует успеха. Если мир отказывает в спауне, оставшиеся шаги завершения структуры пропускаются.
EliteMobs
[elitemobs]
test_boss_with
_a_long_name
.yml
Длинные имена могут занимать строки 2-4, которые соединяются без разделителей. Арена защищена от разрушения и установки блоков, когда включён protectEliteMobsRegions и установлены EliteMobs и WorldGuard. Каждый созданный региональный босс получает регион. Его смерть удаляет этот регион только при removeAfterDeath: true, поэтому возрождающийся босс может оставить защиту активной. Неудачный спаун EliteMobs, например из-за имени файла, которому не соответствует ни один босс, пропускает оставшиеся шаги завершения структуры.
MythicMobs
[mythicmobs]
SkeletalKnight
10
Создаёт SkeletalKnight 10-го уровня.
Пользовательские маркеры
[custom]
Zombie_Plus
BetterStructures сам ничего не делает с этим ID. После вставки блоков, добычи, мобов и сущностей структуры он удаляет табличку и вызывает BuildCustomMarkerEvent с ID и местоположением таблички, чтобы другой плагин мог создать там своего моба, поставить блок или выполнить любую другую логику. Строки 2-4 соединяются без разделителей, как имена файлов EliteMobs, а каждая строка также доступна по отдельности. Без слушающего плагина маркер просто исчезает. Табличка [custom] с пустыми строками 2-4 остаётся обычной табличкой и записывает предупреждение в лог. Пользовательские маркеры работают в обычных структурах, но не в модульных подземельях.
Schematics
Schematics — это файлы, генерируемые WorldEdit или FastAsyncWorldEdit, которые содержат блоки постройки, используемой BetterStructures. BetterStructures использует формат файлов .schem (современный стандарт WorldEdit). Убедитесь, что вы сохраняете свои schematics в формате .schem, а не в устаревшем формате .schematic.
Копирование и сохранение описаны в руководстве WorldEdit по буферу обмена. Основные шаги:
- Выберите один угол постройки и используйте команду
//pos1 - Выберите диагонально противоположный угол и используйте команду
//pos2 - Используйте команду
//copy - Выполните
//schem save <schematicname>с нужным именем файла. - Скопируйте полученный
.schemиз папки схем редактора вplugins/BetterStructures/schematics, затем перезагрузите BetterStructures. Папка WorldEdit по умолчанию:plugins/WorldEdit/schematics.
Убедитесь, что вы выполняете команду //pos1 в точке 1 и //pos2 в точке 2!
Точка привязки
Точки привязки — это места, где вы выполняете команду //copy для schematic. Они определяют начальную точку структуры при размещении в мире.
| Тип постройки | Рекомендуемая позиция привязки | Причина |
|---|---|---|
| Поверхность | Самая низкая точка пола | Обеспечивает правильное выравнивание по земле |
| Подземная | На вершине постройки | Позволяет правильно определить глубину залегания |
| Жидкость | На поверхности воды | Правильное размещение на поверхности воды |
| Воздух/Небо | На вершине постройки | Правильное позиционирование по высоте |
Выбирайте позицию копирования осознанно. Её смещение сохраняется в схеме и влияет на размещение и поворот. Держитесь рядом с постройкой, чтобы эту связь было проще проверить. Само расстояние не увеличивает число блоков в сохраненном выделении.
Конфигурации schematic
Каждый файл schematic имеет конфигурацию schematic. Если файл schematic был только что добавлен на сервер, конфигурация будет сгенерирована после перезапуска или после команды /betterstructures reload.
Файл .yml создаётся в той же папке, что и .schem. plugins/BetterStructures/schematics сканируется рекурсивно, поэтому схемы в подпапках получают конфигурации там же. Используйте уникальные имена во всём дереве schematics. При дублирующихся именах структур BetterStructures выбирает первый файл в стабильном порядке абсолютных путей и записывает выбранный и пропущенный пути в журнал. Побайтно идентичные дубликаты в любом случае загружают одну и ту же структуру и пропускаются без предупреждения. Файлы не удаляются. Если выбранный файл повреждён, пропущенный дубликат не используется вместо него. Дублирующиеся имена модулей по-прежнему блокируют инициализацию.
Файл .yml без соответствующего .schem не создаёт структуру. Загрузчик начинает с найденных файлов схем. Если хотя бы одна выбранная схема не читается, инициализация завершается ошибкой вместо принятия частичного реестра структур. Это относится и к схемам, которые были бы отключены своей конфигурацией.
Эти конфигурации позволяют задать следующие параметры для вставки schematic:
| Ключ | По умолчанию | Обязательный | Описание |
|---|---|---|---|
isEnabled | true | ❌ | Включена ли схема. Если отключена, она не будет размещаться нигде. |
weight | 1.0 | ❌ | Относительный вес среди подходящих схем. Используйте конечные положительные значения. 2.0 имеет вдвое больший вес, чем 1.0. Отрицательное или неконечное значение записывает предупреждение в лог и становится 0, а структура с весом 0 никогда не выбирается. Отключайте структуру через isEnabled: false. |
pedestalMaterial | Резервный материал окружения | ❌ | Резерв для блоков пьедестала (имена материалов Spigot). Найденные при анализе материалы рельефа имеют приоритет. |
generatorConfigFilename | - | ✅ | Имя файла конфигурации генератора, включая расширение .yml. Schematics без этого параметра не будут появляться. |
treasureFile | По умолчанию генератора | ❌ | Переопределение файла сокровищ для сундуков этой структуры. Обычно лучше изменить генератор. |
barrelTreasureFilename | По умолчанию генератора | ❌ | Переопределение файла сокровищ для бочек этой структуры. По умолчанию используется то, что предоставляет генератор (или его резервное значение treasure_barrel_food.yml). |
Контейнеры с добычей: BetterStructures автоматически распознаёт сундуки, сундуки-ловушки и обычные (неокрашенные) шалкеровые ящики, размещённые внутри schematics, и заполняет их с использованием файла сокровищ для сундуков. Бочки заполняются отдельно с помощью файла сокровищ для бочек (по умолчанию treasure_barrel_food.yml) и могут быть отключены для каждого генератора через generateLootInBarrels: false. Никакие специальные таблички или конфигурации для пометки этих контейнеров не требуются.
Переопределение сокровищ в схеме всё равно требует допустимой таблицы генератора для этого типа контейнера. Для бочек также должен быть включён соответствующий переключатель добычи генератора. Недопустимые переопределения вызывают предупреждение и возврат к генератору. Существующее содержимое сохраняется, новая добыча использует пустые слоты.
Новые конфигурации схем имеют пустой generatorConfigFilename. Выберите загруженный файл, например generator_surface_global.yml, затем выполните /bs reload. Пока поле недопустимо, структура не появляется и не предлагается в дополнении /bs place. Консоль указывает путь проблемной конфигурации и примеры доступных генераторов.
Отключённые генераторы: если у генератора, названного в generatorConfigFilename, стоит isEnabled: false, схематика пропускается целиком, даже если её собственный isEnabled равен true.
Подробности конфигурации
pedestalMaterial
Пьедесталы заполняют до десяти блоков под каждым столбцом наземной или подземной постройки, нижний блок которого не является воздухом. Заполнение останавливается на блоке, который не считается заменяемым рельефом. Небесные и жидкостные структуры не получают такого заполнения вниз. Тот же выбор материала применяется к маркерам коренной породы внутри схем.
Плагин собирает образцы наземных и подземных материалов вокруг объёма размещения и случайно выбирает из нужной группы с весами по частоте. Он не всегда выбирает самый распространённый материал. Настроенный pedestalMaterial используется только при пустой соответствующей группе и не заменяет заполненную группу. Выберите материал твёрдого блока. Без настроенного резерва используются адский камень в Нижнем мире, камень Края в Крае и камень в остальных мирах. Небесные структуры пропускают сбор образцов и настроенный резерв, поэтому их маркеры коренной породы используют материал окружения по умолчанию.
generatorConfigFilename
Пример: generatorConfigFilename: generator_surface_global.yml
Файл генератора находится в папке конфигурации генераторов.
treasureFile
Для получения дополнительных сведений см. документацию по файлам сокровищ и документацию по генераторам.
Настройка контента
Всё, что распространяется в BetterStructures, можно редактировать. Вы можете изменять любые файлы schematic и настройки генераторов по своему усмотрению.
Приведённое выше руководство по созданию контента также может помочь вам при редактировании существующего контента.
Устранение неполадок
Если ваша структура не появляется, проверьте что:
- Файл schematic в формате .schem
- Указана действительная конфигурация генератора
- Параметр isEnabled установлен в true — как в конфиге схематики, так и в генераторе, на который она указывает
- Если схематика лежит в папке пакета контента, этот пакет установлен (
isEnabled: trueв его файле вcontent_packages). Папка отключённого пакета пропускается целиком. - Ваша версия WorldEdit/FastAsyncWorldEdit совместима
- Файл
.ymlлежит рядом с.schem, а не в постороннем деревеplugins/BetterStructures/plugins/BetterStructures/.... Старые сборки писали туда по ошибке. Сравните и сохраните полезные настройки перед удалением этой копии, затем проверьте соседнюю конфигурацию и её генератор после перезагрузки.
Если консоль сообщает о дублирующихся именах структур, проверьте выбранные и пропущенные пути и задайте нужным структурам уникальные имена с соответствующими конфигурациями. Дублирующиеся имена в modules по-прежнему блокируют инициализацию и должны быть устранены до перезапуска.
Папка .schematic_cache
BetterStructures хранит преобразованные схемы структур в plugins/BetterStructures/.schematic_cache, с подпапками modules и components для этих загрузчиков. Старые .schem могут требовать преобразования данных Minecraft, поэтому результат сохраняется и используется повторно. При перезагрузке содержимого неизменённые буферы структур и модулей также могут повторно использоваться из памяти.
Управлять этой папкой не нужно:
- дисковые записи зависят от содержимого схемы, версии данных Minecraft и версии WorldEdit; изменение любого из этих значений пересоздаёт затронутые записи
- загрузчики очищают устаревшие дисковые записи при чтении файлов или обнаружении удалений, если можно вычислить хотя бы один текущий ключ кеша; удаление всего содержимого не очищает автоматически весь кеш
- это всегда только оптимизация — если запись отсутствует, нечитаема или не проходит проверку, читается исходный
.schem
Её безопасно удалить; следующий запуск просто пересоберёт её и займёт больше времени.
«Skipped N unsupported legacy block entries»
При преобразовании старых схем DataFixerUpper Mojang может многократно выводить сообщения Unsupported key:, в том числе для minecraft:bed. BetterStructures подсчитывает подходящие сообщения и сообщает их ключи одной информационной строкой. Это сводка вывода преобразования, а не отдельная ошибка загрузчика структур.
Если механизм сводки не может подключиться к системе журналирования сервера, он сообщает об этом один раз и оставляет исходные сообщения видимыми. Другие ошибки загрузки и видимые проблемы структур исследуйте отдельно. Одна сводка не доказывает ни повреждение установки, ни правильность вставленной структуры.
Если таблички спауна не работают:
- Убедитесь, что формат таблички точно совпадает с примерами
- Для EliteMobs/MythicMobs убедитесь, что плагины установлены
- Проверьте правильность написания типов сущностей/имён мобов
- Проверьте логи сервера на наличие конкретных сообщений об ошибках