Редактор .mcstructure — файли структур Bedrock

Підтримує Minecraft Bedrock Edition і Java Edition — а також усі популярні й маловідомі серверні ядра для обох версій: Vanilla, Paper, Spigot, Purpur, Folia, Fabric, Forge, NeoForge, Mohist, Sponge, Bedrock Dedicated Server, PocketMine-MP, Nukkit, PowerNukkitX, Cloudburst, Dragonfly, Endstone, LeviLamina та інші. Повний список.

Файл .mcstructure — це нестиснений NBT little-endian, який записує структурний блок Bedrock. Перетягніть файл нижче, щоб прочитати його розмір, палітру блоків, індекси блоків і дані блокових сутностей, відредагувати їх та завантажити файл у тому самому кодуванні. Це потрібно авторам доповнень і мап, коли структуру треба виправити, не відкриваючи світ знову.

Структурні блокиДоповнення BedrockПакети поведінкиNBT little-endian

Перетягніть файл .mcstructure сюди

level.dat · .nbt · .mcstructure · .schem · .schematic · .dat · дампи чанків

Що міститься у .mcstructure

ТегТипЩо містить
format_versionIntВерсія формату структури, у поточних файлах — 1
sizeСписок IntРозміри захопленого об’єму за осями X, Y, Z
structure_world_originСписок IntМісце у світі, де було захоплено структуру
structureCompoundТут міститься все перелічене нижче
structure.block_indicesСписок масивів Int[]Два шари індексів палітри — зазвичай блоки й waterlogging; -1 означає «залишити те, що вже є»
structure.entitiesСписок CompoundСутності, захоплені разом зі структурою
structure.palette.default.block_paletteСписок CompoundКожен окремий стан блока: name, states, version
structure.palette.default.block_position_dataCompoundNBT блокових сутностей із плоским індексом позиції як ключем

Індекси в block_indices проходять спочатку X, потім Z і Y — це плоский індекс (x * sizeZ + z) * sizeY + y у списку палітри. Завдяки цьому зіставленню можна виправити один неправильно заданий блок без повторного створення структури.

Що тут зазвичай змінюють

  • Замінюють тип блока всюди, редагуючи один запис у block_palette: усі позиції, що посилаються на цей індекс, зміняться разом із ним.
  • Виправляють стан блока, наприклад неправильний facing або випадковий waterlogged у compound states.
  • Видаляють сутності, захоплені випадково, прибираючи записи зі списку entities.
  • Виправляють дані блокових сутностей — вміст скринь, текст табличок, налаштування спавнерів — у block_position_data.
  • Перевіряють версію в записах палітри, якщо після оновлення гри структура імпортується з неправильними блоками.

Де розташовані файли

Структурні блоки зберігають файли в папці світу structures/ під назвами <namespace>_<name>.mcstructure. Пакети поведінки містять їх у власній папці structures/, звідки гра завантажує їх за простором імен. Обидва варіанти мають однаковий формат і відкриваються тут.

Відповідник у Java Edition — структура .nbt у форматі gzip big-endian з іншим кодуванням і розташуванням тегів. Докладніше дивіться на сторінці редактора Java; цей редактор також відкриває такі файли.

Часті запитання

Чи можна перетворити .mcstructure на структуру Java .nbt?

Редактор може перекодувати байти у gzip big-endian, але розташування тегів відрізняється: структури Java використовують palette/blocks з іншими ключами й назвами блоків. Перекодований файл можна прочитати, але він не буде дійсною структурою Java.

Чому мій файл .mcstructure не стиснений?

Bedrock записує файли структур як необроблений NBT little-endian без оболонки gzip. Це нормально; редактор визначає такий формат як Bedrock без заголовка.

Що означає індекс -1 у block_indices?

Він позначає позицію, якої структура не торкається, тому під час розміщення структури наявний блок у світі зберігається.

Чи можна змінити розмір структури, відредагувавши size?

Не окремо: block_indices містить по одному запису для кожної позиції, тому довжина масиву має точно відповідати новому об’єму. Якщо змінити лише size, гра відхилить файл.

Пов’язані інструменти