変更履歴
BTC Studio の拡張機能とプラグインのリリースノート。
各項目には拡張機能名、バージョン、公開日、変更内容を記載します。 リリースのたびにここへ追記されます。
近日公開
これらの拡張機能は完成しており、公開を待っている状態です。何が控えているかを 知っていただくためにここに掲載しています。リリースはまだ一つも公開されておらず、 以下のバージョン番号はそれぞれのリリースが持つことになる番号です。
Corpse Extension v0.1 — 初回リリース
- 死体はエンジン自身のエンティティ表示と同じく閲覧者ごとに描画されるため、近くにいる全員に見えます。 モデルのアニメーションとネームプレートは BetterModel、BTC Mob NPC、MythicMobs NPC の各バックエンドで 動作します。
- Folia で動作します。すべてのスケジューリングは Folia 対応スケジューラを経由し、アイテムのドロップ、 経験値オーブ、パーティクルは死体を所有するリージョン上で実行されます。
- 死体が保持するインベントリは、再起動・クラッシュ・リロードを越えて保持されます。死体は MySQL が 利用可能ならそこに、そうでなければプラグインフォルダに保存され、起動時に復元されます。
onlyOwnerCanLootが実際に適用され、略奪は 4 ブロック以内の任意の右クリックではなく、死体自身の エンティティ 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、そしてlistとclearの サブコマンドを持つcorpse_admin_command。- 戦利品の保護時間。これを過ぎると死体は全員に開放されます。
Custom Biome Extension v0.5
- カスタムバイオームは即座に存在します。 定義は保存された時点で稼働中のレジストリに登録され、 サーバー再起動を待つ必要がなくなりました。生成されるデータパックは唯一の経路ではなく、永続化層に なりました。
- 修正: 生成されたデータパックがサーバーに無視されていました。pack format が古い値に固定されており、 さらにサーバーが決して読まないフォルダに書き出されていたためです。
- 修正:
baseBiomeが plains 以外に何の効果も持っていませんでした。バイオームはサーバーが保持する ベースバイオームから構築され、その独自コーデックでエンコードされるようになったため、モブのスポーン、 フィーチャー、カーバーが失われずに継承されます。 - 修正: バイオームの変更がワールドに穴を開けていました。更新処理がチャンクの アンロード パケットを 送信し、サーバーがその後の再送を行わなかったためです。クライアントは実際のチャンクデータから構築 されたバイオーム更新を受け取るようになりました。
- 修正:
leave_biome_eventが一度も発火しませんでした。入場と退場のリスナーが互いの状態を上書きして いたため、結果が登録順に依存していました。 - 修正: ペイントが 4x4x4 セルごとに 1 ブロックではなく列のすべてのブロックを書き込み、しかも呼び出し 元スレッドから実行していました。書き込みは各チャンクを所有するリージョン上でスケジュールされる ようになりました。
- サーバーがシリアライズを拒否するようなバイオームは、問題の値を名指ししたうえで登録時に拒否される ようになりました。以前は受け入れられたあと、すべてのログインを壊していました。
- プレイヤーごとのバイオームオーバーレイ (
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 MB から 230 KB に縮小しました。サーバーが既に提供しているライブラリを同梱しなく なったためです。
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/にバックアップされ、初回アクセス時に 移行されます。更新前に Typewriter のassets/ディレクトリをバックアップしてください。 artifactIdは生成される技術的な識別子です。空のままにすれば Typewriter が埋めます。- プレースホルダーは明示的な定義引数を取ります (
%typewriter_ns_balance_bank%)。これにより、定義 ID 自体にアンダースコアが含まれる場合の旧来の分割の曖昧さが解消されます。 - Profiles 連携が導入されている場合の、任意のプロファイル対応キー。
2026-08-07
QuestCodex Extension v2.8
- 本物の Minecraft 進捗。 新しい
advancement_definitionエントリーは、拡張機能が管理するデータパックへ本物の進捗を書き出します。バニラの進捗画面に、独自のタブ・ツリー・枠・トーストとともに表示されます。parentは別の定義を参照するため、ツリーはノードエディター上で描かれます。 grant_advancementは進捗を付与または取り消します。親のつながりをたどるので、親が未取得のまま子だけが取得されることはありません。autoGrantはプレイヤーの最初のティックで進捗を付与します。ルートに設定すると、何も取得していない段階からタブが存在するようになります。- クエストの並び順を修正しました。入れ子のクエストは自身のサブカテゴリーから並び順を読み、明示的な並び順を持たないクエストがひとまとまりになることはなくなり、クエストの追加によって既存の並び順が消えることもなくなりました。
- クエストマーカーはページ分割され、並び替えモードはプレイヤーごとに保持され、複数追跡は再接続後も選んだ順序のまま維持されます。
OmniGUI Extension v0.11
- アイテムのツールチップと、GUI 設定エントリーの
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 が終了イベントを発行しても、取得済みのスナップショットを 保持します。
- 複数クエストの永続的な追跡を追加しました。追跡中クエストのメニュー、専用のプレースホルダー、2 つの クエストを扱う公開ウェイポイント例を含みます。
- テキストのみのクライアントサイドウェイポイントを追加しました。アイコンテキストの設定、中央寄せの ブロックディスプレイ、中央寄せのビーコン回転、レベル基準の対象整列、滑らかな補間、対象付近への配置、 水平方向の可視円錐の設定に対応します。
- 公開前に、旧来のウェイポイント層(アイテムディスプレイと方向矢印)を削除しました。
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 拡張と同じ方法で 修正しました。
- バニラの Mob バリアント(ネコ、キツネ、オオカミ、村人など)は、黙って無視するのではなくコンソールに 一度だけ報告するようにしました。これらは Mob の同一性を管理する MythicMobs の設定に属しており、 リスポーンのたびに上書きされてしまうためです。
- 1 つのデータエントリの失敗が同じバッチの他のすべてのエントリを取り消していた問題を修正しました。 NPC に設定済みデータが 1 つも適用されない状態になり得ました。
- 発光効果と装備を、Mob だけでなくモデル側にも適用するようにしました。Mob の体はモデルの背後に隠れて いるため、Mob だけに設定しても何も見えませんでした。
- モデルにアイテム用ボーンがない場合、黙って何もせずコンソールに報告するようにしました。
- 炎が自然に消えないよう毎秒再適用し、BetterModel が炎の描画対象となる体を隠している場合はその旨を 知らせます。
- NPC の歩行時や道路ネットワーク追従時にネームプレートががたつく問題を修正しました。テキスト表示が 更新間を補間するようになり、飛び飛びのテレポートではなくなりました。
BetterModel Extension v1.3
- アニメーションを一切持たないモデルでモデルスケールが無視される問題を修正しました。BetterModel は アニメーションの実行中しかモデルの変換を再計算しないため、実行時に適用したスケール変更が静的モデルに 届いていませんでした。拡張側で再計算を強制するようにしました。
- 同じ修正は、同一のコード経路を通っていたモデルのオフセットにも適用されます。
- エンティティのデータエントリが破棄されず、実際にモデルへ届くようになりました。対応: 発光効果、 ポーション効果の色(アイテムの色付けとして描画)、明るさ、ビルボード制約、補間時間、平行移動、 3D スケール、ボックスサイズ、装備、炎。
bettermodel_bone_appearanceを追加しました。発光・色付け・エンチャント光沢・明るさの設定を ボーン単位で行うもので、bettermodel_bone_visibilityと同じ条件システムを使います。- 装備は BetterModel の手と頭のアイテムボーンに割り当てられます。防具スロットは黙って無視せず コンソールに一度だけ報告します。モデルの胴と脚はモデル自身の形状を担っているためです。
- 均一でない 3D スケールは、黙って 1 軸だけを使うのではなく警告を出すようにしました。BetterModel は 均一なスケールのみに対応しています。
- 3D モデルにとって意味を持たないデータエントリ(ポーズ、Mob バリアント、繁殖状態など)は、黙って 破棄せずコンソールに一度だけ報告します。
- 発光、色付け、明るさ、ビルボード、平行移動、装備が、リソースパックの再読み込みやリスポーンを経ても 維持され、モデル既定の見た目に戻らなくなりました。
- モデルに
ri、li、phのタグを持つボーンがない場合、黙って何もせずコンソールに報告します。 アイテムが表示されない一般的な原因はこれです。 - 炎はモデルのボーンではなく NPC のインタラクションエンティティに描画するようにしました。クライアントは エンティティの当たり判定の大きさに合わせて炎を拡大縮小しますが、ディスプレイエンティティにはそれが ないため、炎がサイズ 0 で描画されていました。
Nexo Extension v1.0
- プレイヤーが手に持っているもの、インベントリに所持しているもの、見ているもの、立っているものを判定する ファクトを追加しました。
- 対象のアイテム・ブロック・家具の ID とプロパティを返す変数を追加しました。
- Nexo のアイテム ID を用いた、アイテムの付与と削除のアクションを追加しました。
- アイテムの拾得・ドロップ・消費のイベントを追加しました。
- カスタムブロックと家具に対する操作イベント・ダメージイベント、およびドロップイベントを追加しました。
- イベントが自身のデータ(ブロック ID、位置、手持ちアイテム)を後続へ渡すようになり、会話やアクションが 直接利用できます。
CraftEngine Extension v1.0
- クエスト目標が機能するようになりました。クエストに紐付けられ、進捗を保存し、達成時にシーケンスを 実行できます。
- クールダウン、手持ちおよび所持アイテム、プレイヤーが狙っているブロックや家具に関するファクトを 追加しました。
- ID、アイテムのプロパティ、読み込み済みコンテンツの一覧を返す変数を追加しました。
- CraftEngine のアイテム ID を用いた、アイテムの付与と削除のアクションを追加しました。
- アイテムの拾得・ドロップ・消費のイベントを追加しました。
- 設置の試行と家具への打撃に関するイベントを追加しました。
- イベントが自身のデータを後続へ渡すようになりました。
ItemsAdder Extension v1.0
- ブロックと家具のイベントが、バニラのイベントから推測するのではなく ItemsAdder を直接参照するように なりました。これにより動作が確実になり、発火の取りこぼしや重複を招いていたわずかな遅延がなくなります。
- 手持ちおよび所持アイテム、残り使用回数、カスタム耐久度、HUD の表示状態、作物の成長に関するファクトを 追加しました。
- ID、アイテムのプロパティ、フォント画像を返す変数を追加しました。
- ItemsAdder のアイテム ID を用いた、アイテムの付与と削除のアクションを追加しました。
- アイテムの拾得・ドロップ・消費のイベントを追加しました。
- 操作イベント、家具の設置前イベント、カスタムエンティティの死亡イベントを追加しました。
- イベントが自身のデータを後続へ渡すようになりました。
- Nexo 拡張と同じ方法で、クエスト目標を修正しました。
2026-07-26
QuestCodex Extension v2.5
quest_codex_tracking_artifactエントリによる複数クエストの永続的な追跡を追加しました。- カテゴリーメニューモード
@trackedと動的マーカーTRACKED_QUEST_SLOTを追加しました。 /tw codex trackedと内部 GUI コマンドcodex:trackedを追加しました。- 追跡中クエスト数、上限、主クエスト、インデックス付きの追跡中クエスト、状態、目標、優先度に対応する PlaceholderAPI のプレースホルダーを追加しました。
- 公開ページ一式の構成を文書化しました。メインマニフェスト、静的な追跡アーティファクト、クエスト定義、 GUI 設定です。
OmniGUI Extension v0.9
- インライン保存と旧来のページネーションフィールドについて、公開ページのスキーマを自動移行するように しました。
- Typewriter エディターでの公開時のフリーズを軽減するために用いる、コンパクトな
storagePool/storageIdおよびnavigationButtonsのスキーマを文書化しました。 - 大規模な QuestCodex メニュー向けに推奨される参照メニューの構成を明確化しました。