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