История изменений
Заметки о выпусках расширений и плагинов BTC Studio.
Каждая запись указывает расширение, его версию, дату выпуска и перечень изменений. Записи добавляются сюда по мере выхода новых версий.
Скоро
Эти расширения готовы и ожидают публикации. Они перечислены здесь, чтобы вы знали, что готовится: ни один релиз ещё не опубликован, а приведённые ниже номера версий — это те, которые эти релизы получат.
Corpse Extension v0.1 — первый релиз
- Трупы отрисовываются отдельно для каждого зрителя, как собственные entity-дисплеи движка, поэтому их видят все, кто рядом; анимация модели и таблички с именами работают на бэкендах BetterModel, BTC Mob NPC и MythicMobs NPC.
- Работает на Folia: всё планирование идёт через Folia-совместимый планировщик, а выпадение предметов, сферы опыта и частицы выполняются в регионе, которому принадлежит труп.
- Инвентарь, который хранит труп, переживает перезапуск, падение сервера или релоад. Трупы сохраняются в MySQL, когда она доступна, иначе в папке плагина, и восстанавливаются при запуске.
onlyOwnerCanLootдействительно соблюдается, а сбор лута привязан к id сущности самого трупа, а не к любому правому клику в радиусе четырёх блоков.- Определение трупа выбирается при каждой смерти по миру и приоритету, а его время жизни вычисляется ровно один раз, для этого трупа.
- События
on_corpse_spawn,on_corpse_lootиon_corpse_expireпроходят через конвейер триггеров движка и публикуют владельца, лут и позицию трупа как контекст. displayName,showDisplayName,dropOnInteract,renderArmor,playDeathAnimationиdeathAnimationNameучитываются полностью, а большинство настроек — динамические значения, так что ими можно управлять через плейсхолдеры и факты.- Светящийся контур, отрисовываемый на клиенте, с настраиваемым цветом, и звуки трупа, отправляемые каждому игроку поблизости, а не на весь мир.
- Факты
has_corpseиcorpse_count, аудиторияcorpse_owner_audience,corpse_waypointс расстоянием и направлением до собственного трупа,corpse_recovery_objective, а такжеcorpse_admin_commandс подкомандамиlistиclear. - Окно защиты лута, по истечении которого труп открывается всем.
Custom Biome Extension v0.5
- Пользовательские биомы существуют сразу. Определение регистрируется в живом реестре сразу при сохранении, а не только после перезапуска сервера. Сгенерированный датапак становится слоем хранения, а не единственным путём.
- Исправлено: сервер игнорировал сгенерированный датапак, потому что его pack format был жёстко задан старым значением, а сам он записывался в папку, которую сервер никогда не читает.
- Исправлено:
baseBiomeне действовал ни на что, кроме plains. Теперь биомы строятся на основе базового биома, который держит сервер, и кодируются его собственным кодеком, поэтому спавны мобов, фичи и карверы наследуются, а не теряются. - Исправлено: смена биома пробивала дыры в мире. Обновление отправляло пакеты выгрузки чанка, за которыми сервер никогда не присылал повторную отправку. Теперь клиенты получают обновление биома, построенное по реальным данным чанка.
- Исправлено:
leave_biome_eventникогда не срабатывал. Слушатели входа и выхода перезаписывали состояние друг друга, поэтому результат зависел от порядка регистрации. - Исправлено: покраска записывала каждый блок колонны вместо одного на ячейку 4x4x4, и делала это из вызывающего потока. Теперь записи планируются в регионе, которому принадлежит каждый чанк.
- Биом, который сервер отказался бы сериализовать, теперь отклоняется при регистрации с указанием проблемного значения. Раньше он принимался, а затем ломал каждый вход в игру.
- Наложения биома для отдельного игрока (
player_biome_overlay_action): показать одному игроку другой биом, не трогая мир и не затрагивая остальных. - Покраска региона (
paint_biome_region_action) со снимками иrestore_biome_action, чтобы вернуть регион в прежнее состояние. biome_transition_cinematic: менять биом, который видит игрок, по ходу кат-сцены.custom_biome_preset: делить цвета и визуальные атрибуты между биомами с переопределением для каждого определения.explore_biome_objectiveиbiome_discovery_fact: задания, которые выполняются посещением биомов.- Каждая читающая запись получила опцию
source, выбирающую между тем, что показывают игроку, и тем, что содержит мир. - Удалены
/tw biome setcolor, создававший одноразовые биомы, которые никогда не сохранялись, и режим фактаHASH, значение которого не было стабильным между перезапусками. - Jar расширения уменьшился с 2,6 МБ до 230 КБ: он больше не включает библиотеки, которые сервер уже предоставляет.
Enchantment Creator Extension v0.8
levelModeу механики сравниваетrunOnLevelкак точный уровень, как минимум (AT_LEAST) или как максимум (AT_MOST). Раньше было доступно только точное совпадение.eventPhaseвыполняет действия механики внутри текущего события Bukkit, поэтому отмена события или изменение урона действительно срабатывают. Для отложенных взаимодействий Typewriter ставьте false.clientSideEffectsтеперь учитывает клиента и получил действиеclient_particle_effect: кастомный артефакт BTC использует рендерер на PacketEvents, когда тот доступен, а публичный артефакт для Paper — резервный путь через Bukkit, адресованный конкретному игроку.- Ключи реестра теперь строятся на основе
id. Прежнийnameсохраняется как устаревший алиас при загрузке существующих страниц и предметов, так что ничего переделывать не нужно. - Публичный артефакт намеренно не зависит ни от BTC-CORE, ни от BTC Velocity: он работает на Paper 1.21.x с Java 21 и собирается на JDK 25 в байт-код Java 21.
Numerical Storage Extension v0.9
transactionModeв конфигурации транзакции:INTERNALсохраняет путь через PlaceholderAPI и консольные команды,VAULTработает напрямую через Vault Economy API и игнорируетamountPlaceholderи поля команд.addCommandиremoveCommandбыли описаны наоборот.addCommandзавершает внесение в хранилище и проверяется до сохраняемого изменения;removeCommandзавершает снятие.- Сохранение теперь асинхронное, с блокировками изменений на каждый артефакт и коротким кэшем, так что два одновременных пополнения больше не мешают друг другу.
- Файлы хранилища переходят на JSON-схему версии 2 и технический путь артефакта. Старый файл на
основе смыслового
artifactIdсохраняется вbackups/numericalstorage/и мигрируется при первом обращении — перед обновлением сделайте резервную копию каталогаassets/Typewriter. artifactId— это генерируемый технический идентификатор: оставьте поле пустым, Typewriter заполнит его сам.- Плейсхолдеры принимают явный аргумент определения (
%typewriter_ns_balance_bank%), что снимает прежнюю неоднозначность разбиения по подчёркиваниям, когда идентификатор определения сам их содержит. - Опциональные ключи с учётом профиля, когда установлена интеграция Profiles.
2026-08-07
QuestCodex Extension v2.8
- Настоящие достижения Minecraft. Новая запись
advancement_definitionсоздаёт подлинные достижения в наборе данных, которым управляет само расширение: они появляются в ванильном окне достижений со своей вкладкой, деревом, рамками и всплывающими уведомлениями. Полеparentссылается на другое определение, поэтому дерево рисуется в узловом редакторе. grant_advancementвыдаёт достижение или отбирает его и проходит по цепочке родителей, чтобы дочернее достижение никогда не оказалось получено при неполученном родителе.autoGrantвыдаёт достижение на первом тике игрока. Для корневого достижения именно это даёт его вкладке существование до того, как что-либо получено.- Исправлен порядок заданий: вложенное задание берёт порядок из своей подкатегории, задания без явного порядка больше не сливаются друг с другом, а добавление задания больше не стирает уже заданный порядок.
- Маркеры заданий разбиты на страницы, режим сортировки индивидуален для каждого игрока, а множественное отслеживание переживает переподключение в выбранном порядке.
OmniGUI Extension v0.11
- Подсказки предметов и переключатель
hideVanillaItemStatsв записи конфигурации интерфейса. - Постраничная раскладка может содержать индикатор страницы через новую роль
INDICATOR. - Меню проверяются при запуске сервера: слот за границами, отсутствующий шаблон или неизвестный тип кнопки называются в консоли ещё до того, как игрок откроет меню.
<shift:N>работает без CraftEngine, благодаря встроенному шрифту Magic Digit.countиrepeatYописаны как счётчики повторения слотов, а не как размер стопки.
Shop Extension v1.3
- Магазин больше не может увести баланс игрока ниже нуля. Это допускали три независимых пути.
- Нечитаемый баланс больше не принимается за ноль, а форматированные суммы вроде
12.5kразбираются корректно.
2026-08-03
QuestCodex Extension v2.7
- Добавлены режимы отображения путевых точек:
WORLD_DIRECTIONALпроецирует маркеры на сферу вокруг глаз игрока по действительному направлению на цель,TARGET_ANCHOREDразмещает их на самой цели, аADAPTIVEплавно переключается между ними.HUD_LOCKEDостаётся режимом по умолчанию, поэтому существующие страницы не меняются. - Добавлены постоянный видимый размер и угловое разнесение, чтобы несколько маркеров оставались читаемыми, когда их цели находятся на одной линии взгляда.
- Добавлен вывод нескольких целей в одной записи путевой точки, с новыми вариантами выбора
отслеживаемых задач
ALLиONE_PER_QUESTи ограничениемmaxTargets. - Исправлено игнорирование множественного отслеживания путевыми точками: задачи вторичных отслеживаемых квестов никогда не разрешались, поэтому маркер создавал только основной квест.
- Добавлен
quest_codex_locator_bar, который выводит те же разрешённые цели как точки ванильной панели локатора в Minecraft 1.21.6+, не создавая ни одной сущности.
2026-08-02
QuestCodex Extension v2.6
- Добавлено устойчивое восстановление прерванных диалогов и кат-сцен Typewriter, включая последний кадр кат-сцены. Восстановление теперь сохраняет снятый снимок состояния, когда Typewriter отправляет события завершения после отключения игрока.
- Добавлено устойчивое отслеживание нескольких квестов: меню отслеживаемых квестов, отдельные плейсхолдеры и публичный пример путевой точки с двумя квестами.
- Добавлены клиентские путевые точки только из текста: настраиваемый текст значка, центрированные блочные дисплеи, центрированное вращение маяка, выравнивание цели по уровню, плавная интерполяция, размещение вблизи цели и настраиваемый горизонтальный конус видимости.
- Удалены прежние слои путевых точек (item display и направляющая стрелка) до их первого публичного развёртывания.
OmniGUI Extension v0.10
- Добавлены движки компоновки Flex и Composite для адаптивного размещения слотов и составных слоёв меню.
- Добавлены переиспользуемые адресуемые представления с наследуемыми пулами компоновки, представлениями по умолчанию, «хлебными крошками», тегами представлений и необязательной интеграцией с историей.
- Добавлены миграция схемы с учётом представлений и интеграция с QuestCodex, а также метаданные публикации в Maven.
- Исправлено переключение представлений: меню перестраиваются без мигания закрытия и повторного открытия, а закрытие инвентаря стало безопасным для Folia.
Shop Extension v1.2
- Публичное расширение Shop пересобрано и проверено с OmniGUI v0.10.
- Сохранены существующие динамические макеты магазина, история навигации, обработка заполнителей, правила запаса и лимитов, а также пользовательские обработчики кнопок магазина.
- Миграция с Shop Extension v1.1 не требуется.
MythicMobsNPC Extension v0.4.6
- Исправлено игнорирование изменения масштаба у моделей без единой анимации — так же, как в расширении BetterModel.
- Ванильные варианты мобов (кошка, лиса, волк, житель и подобные) теперь один раз сообщаются в консоль вместо молчаливого игнорирования: они принадлежат конфигурации MythicMobs, которая владеет личностью моба и перезаписывала бы их при каждом возрождении.
- Исправлено, что одна сбойная запись данных отменяла все остальные записи того же пакета, из-за чего NPC мог остаться вообще без настроенных данных.
- Эффект свечения и снаряжение теперь применяются к модели, а не только к мобу. Тело моба скрыто за моделью, поэтому применение только к мобу ничего не показывало.
- Снаряжение теперь сообщает в консоль, когда у модели нет кости-держателя предмета, вместо молчаливого бездействия.
- Огонь подтверждается каждую секунду, чтобы не гаснуть сам по себе, и сообщает, когда BetterModel скрывает тело, на котором рисуется пламя.
- Исправлено дёрганье таблички с именем, когда NPC идёт или следует по дорожной сети: текстовый дисплей теперь интерполирует между обновлениями вместо телепортации рывками.
BetterModel Extension v1.3
- Исправлено игнорирование масштаба модели у моделей без единой анимации. BetterModel пересчитывает трансформацию модели только пока идёт анимация, поэтому изменение масштаба во время выполнения никогда не доходило до статичной модели. Теперь расширение принудительно вызывает пересчёт само.
- То же исправление относится к смещению модели, которое шло по тому же пути кода.
- Записи данных сущности теперь действительно доходят до модели вместо того, чтобы отбрасываться. Поддерживаются: эффект свечения, цвет эффекта зелья (выводится как окраска предмета), яркость, ограничение билборда, длительность интерполяции, перенос, трёхмерный масштаб, размер коробки, снаряжение и огонь.
- Добавлен
bettermodel_bone_appearance— вариант настроек свечения, окраски, мерцания и яркости для отдельной кости, с той же системой критериев, что иbettermodel_bone_visibility. - Снаряжение сопоставляется с костями предметов руки и головы в BetterModel. Слоты брони один раз сообщаются в консоль вместо молчаливого игнорирования, поскольку торс и ноги модели несут её собственную геометрию.
- Неравномерный трёхмерный масштаб теперь выдаёт предупреждение вместо молчаливого использования одной оси: BetterModel поддерживает только равномерный масштаб.
- Любая запись данных, не имеющая смысла для трёхмерной модели (позы, варианты мобов, состояние размножения…), теперь один раз сообщается в консоль вместо молчаливого отбрасывания.
- Свечение, окраска, яркость, билборд, перенос и снаряжение переживают перезагрузку набора ресурсов или возрождение и больше не сбрасываются к исходному виду модели.
- Снаряжение сообщает в консоль, когда у модели нет кости с тегом
ri,liилиph, вместо молчаливого бездействия — это обычная причина, по которой предмет не появляется. - Огонь теперь рисуется на сущности взаимодействия NPC, а не на костях модели: клиент масштабирует пламя по ограничивающей коробке сущности, а у display-сущности её нет, поэтому пламя выводилось нулевого размера.
Nexo Extension v1.0
- Добавлены факты для проверки того, что игрок держит, несёт в инвентаре, на что смотрит и на чём стоит.
- Добавлены переменные, дающие идентификатор и свойства выбранного предмета, блока и мебели.
- Добавлены действия выдачи и удаления предмета, оба по идентификатору предмета Nexo.
- Добавлены события подбора, выбрасывания и использования предмета.
- Добавлены события взаимодействия и урона для пользовательских блоков и мебели, а также событие добычи.
- События теперь передают свои данные (идентификатор блока, позицию, предмет в руке) дальше по цепочке, так что диалог или действие могут использовать их напрямую.
CraftEngine Extension v1.0
- Задачи квестов работают. Их можно привязать к квесту, они сохраняют прогресс и могут запускать последовательность при завершении.
- Добавлены факты для перезарядок, для удерживаемых и переносимых предметов, а также для блока или мебели, на которые смотрит игрок.
- Добавлены переменные, дающие идентификаторы, свойства предметов и список загруженного контента.
- Добавлены действия выдачи и удаления предмета, оба по идентификатору предмета CraftEngine.
- Добавлены события подбора, выбрасывания и использования предмета.
- Добавлены события попытки установки и удара по мебели.
- События теперь передают свои данные дальше по цепочке.
ItemsAdder Extension v1.0
- События блоков и мебели теперь читают ItemsAdder напрямую, а не выводятся из ванильных событий. Это делает их надёжными и убирает короткую задержку, из-за которой срабатывание могло теряться или повторяться.
- Добавлены факты для удерживаемых и переносимых предметов, оставшихся использований, пользовательской прочности, видимости HUD и роста посевов.
- Добавлены переменные, дающие идентификаторы, свойства предметов и шрифтовые изображения.
- Добавлены действия выдачи и удаления предмета, оба по идентификатору предмета ItemsAdder.
- Добавлены события подбора, выбрасывания и использования предмета.
- Добавлены события взаимодействия, событие перед установкой мебели и событие смерти пользовательской сущности.
- События теперь передают свои данные дальше по цепочке.
- Исправлены задачи квестов — так же, как в расширении Nexo.
2026-07-26
QuestCodex Extension v2.5
- Добавлено устойчивое отслеживание нескольких квестов через запись
quest_codex_tracking_artifact. - Добавлены режим меню категорий
@trackedи динамические маркерыTRACKED_QUEST_SLOT. - Добавлены
/tw codex trackedи внутренняя команда GUIcodex:tracked. - Добавлены плейсхолдеры PlaceholderAPI для количества отслеживаемых квестов, лимита, основного квеста, индексированных отслеживаемых квестов, статусов, задач и приоритетов.
- Задокументирована структура публичного набора страниц: основной манифест, статический артефакт отслеживания, определения квестов и настройки GUI.
OmniGUI Extension v0.9
- Добавлена автоматическая миграция схемы публичных страниц для встроенного хранения и прежних полей постраничной навигации.
- Задокументирована компактная схема
storagePool/storageIdиnavigationButtons, применяемая для уменьшения зависаний публикации в редакторе Typewriter. - Уточнён рекомендуемый приём меню по ссылке для больших меню QuestCodex.