変更履歴
BTC Studio の拡張機能とプラグインのリリースノート。
各項目には拡張機能名、バージョン、公開日、変更内容を記載します。 リリースのたびにここへ追記されます。
2026-08-12
OmniGUI Extension v0.12
- 拡張メニュー。
open_guiのextendToPlayerInventoryは、プレイヤー自身の 36 スロットをメニューの 4 行として取り込み、10 行のキャンバスにします。投影はクライアント側だけのもので、実際のインベントリには一切書き込まれず、メニューを閉じると元に戻ります。 - ID が
_extendedで終わるルートレイアウトは、それだけでこの投影を有効にします。共有シャーシは通常版と拡張版を用意でき、各メニューがフラグを繰り返す必要はありません。 DynamicMarkersは、繰り返し配置されたコンテンツマーカーをレイアウト解析の前に添字付きマーカー(QUEST_SLOT#0、QUEST_SLOT#1…)へ書き換えます。各拡張がこの意味づけの独自コピーを抱える必要はなくなりました。- スロットの繰り返しは範囲が定まり、報告されます。グリッド外の位置は破棄され、そのうえでログに残ります — レイアウト ID と却下された座標付きで。
directionなしにcount/gap/repeatYを設定するとエディタが警告し、未知のdirectionはエラーになります。 - 明文化:
gapは間隔ではなくステップ(1 は隣接)であり、repeatYはdirectionに直交する軸へ繰り返します。 mainLayoutIdの継承を修正。子側の空文字が継承値に勝っていたため、シャーシごと継承したページは存在しないレイアウトを解決して空で描画され、クリックを受け取るボタンが一つも残りませんでした。- スロットの上書き規則の持ち主が一つになりました。二つのスロットが同じマスを主張した場合、挙動を持つ側が描画時もクリック時も勝ち、衝突は一度だけログに残ります。
- 起動時検証は、実際に失敗しているものだけを報告します。 任意要素の不在を指摘していた検査 —
frame.view.unresolved、slot.outOfFrame、layout.unreferenced— は削除しました。テンプレート方式の構成では、それらは欠陥ではなく設計そのものを言い当てているだけだからです。残るのは、書かれた意図が失敗している場合のみ:存在しないレイアウトを指す view、インベントリからはみ出すスロット、同一レイアウト内で衝突する同種のスロット。
Shop Extension v1.4
- タブモード。
baseMenuIdを設定すると、ショップが共有メニューの 1 タブになります。レイアウトプールとビューがシャーシの下に統合され、views、defaultViewId、コンテンツ矩形(contentX、contentY、contentColumns、contentRows)が使えます。空のままなら、ショップはこれまでどおり単独で開きます。 - 拡張シャーシに対応。拡張シャーシ内で開かれたショップは 10 行のキャンバスを得ます。
defaultNameFormatとdefaultLoreFormatを追加。名前や説明を持たない商品はショップの書式を継承し、自前で持つ商品はそのまま保たれます。ショップの書式は空欄を埋めるだけで、作者の文言を上書きしません。- どちらも同じトークンを受け付けます:
{item}、{buy}、{sell}、{stock}、{stock_max}、{currency}。取得できない価格を要求する説明行は、空欄で表示されるのではなく削除されます。 ShopTransactionEventを追加。購入または売却が完了した後に発火します。Discord への中継や監査ログなど、他の拡張が接続するための継ぎ目であり、Shops 側はそれらの存在を知りません。通知専用で、キャンセルはできません。notificationWebhookIdを追加。Shops はこれを解決せず、webhook が何かも知りません。ID はイベントに載って運ばれます。リスナーが例外を投げても報告されるだけで取引は成立したままです — 支払い済みの購入を取り消すものは何もありません。- 修正:マーカーを取り除かれたレイアウトがプールから捨てられていたため、マーカーだけで構成されたショップ画面や、まだ空のタブが黙って消えていました。
QuestCodex Extension v2.9
- 拡張シャーシへの昇格を、ID の文字列比較ではなく継承が担うようになりました。ルートが
shell_root以外の名前を持つシャーシは拡張枠を失い、下段に固定されたコントロールが描画時に消えていました — つまりクリックできませんでした。 - この拡張は、凍結された古い jar ではなく、今回のリリース群の GUI エンジンに対してビルドされます。以前はエンジン v0.11 に固定されており、それ以降の追加はすべて見えていませんでした。
Discord Extension v0.9 — 旧 Community
- 拡張の名称が Community から Discord になりました。 ディレクトリ、パッケージ、拡張名がそれに従います。エントリ名は変更していません — ページがそれをシリアライズしているためです。
DiscordClientServiceはリンク機能を離れ、独立したパッケージへ移りました。チャット同期、コンソール、バグ報告のすべてが使うため、もともとアカウント連携に属するものではありませんでした。- Webhook がエントリになりました。
webhook_definitionは Discord の宛先を一度だけ宣言し、どこからでも参照します。チャット同期、アカウント連携、バグ報告はそれぞれ URL・名前・アバターの写しを抱えており、チャンネルを変えるには各マニフェストを編集する必要があり、同じ場所を指している保証もありませんでした。 WebhookServiceはどの拡張からも注入できるシングルトンです。以前は HTTP クライアントを初期化処理で手作りして各サービスに渡していたため、外部から送信する手段がありませんでした。- バグ報告から二つ目のスイッチがなくなりました。宛先が空であることが無効状態です。
- 移行。 このバージョン以前に書かれたページは初回起動時に変換されます。宛先ごとに
webhook_definitionを 1 件(同一設定のマニフェストは 1 件を共有)作り、マニフェストをそこへ向け直します。書き換えたページは事前にbackup/community-webhook-v1/へ退避されます。変換はバージョン番号ではなく形で判断するため、二度実行しても何も変わりません。無効化されていたマニフェストは URL を失わず、無効な宛先として保持されます。 - ショップ通知。
shop_notification_manifestは、ショップの取引が Discord に届いたときの見え方を定義します。宛先はこのエントリに意図的に含まれていません — それはショップのものだからです。ひとつの表示定義があらゆるショップに使える一方で、各ショップは自分のチャンネルへ投稿します。Shops 拡張を必要としますが、依存はしていません。
Puzzle Extension v0.1 — 初回リリース
- 9 種類のパズル。 それぞれが Typewriter のオブジェクティブで、独自のオーディエンス・進捗・トリガーを持ちます:ブロック押し、台座への供物、記憶シーケンス、レバーの順序、パターン再現、額縁の回転、ダイヤル錠、レーザーグリッド、協力型感圧板。
- パズルが描くものはすべてクライアント側です — ブロック、ゴーストのプレビュー、ハイライト、レーザー光は、解いている本人にだけ送られます。二人が同じ盤面に取り組んでも互いの進捗は見えず、ワールドは一切変更されません。
- 全パズル共通のライフサイクル:
timeLimit、maxAttempts、cooldownOnFail、resetOnWrong、lifespan、ヒント、そしてonStart/onComplete/onFail/onTimeout/onLifespanExpireトリガー。 isSharedは、個人ごとの進捗から、グループ全体で進める一つの盤面へ切り替えます。puzzle_chainは複数のパズルを順に連ね、全体が解かれた時点で発火します。resetOnFailは、失敗で最初に戻すかどうかを決めます。puzzle_artifactはパズルの状態を保存します。挑戦の途中で再起動しても進捗は失われません。puzzle_solved_factとpuzzle_active_factが進捗を他のコンテンツへ公開し、puzzle_menuはパズルとその状態をチャットに一覧表示します。- Folia 対応:ワールドへの読み書きは、そのパズルを所有するリージョン上で実行されます。
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。 -
戦利品の保護時間。これを過ぎると死体は全員に開放されます。
-
戦利品メニューは、独自のクリックリスナーを持つ素のインベントリではなく GUI Extension のメニューになりました。エンジンのクリック処理、メニュー履歴、拡張インベントリ投影をそのまま受け継ぎます。したがって GUI Extension が必須になります。
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 メニュー向けに推奨される参照メニューの構成を明確化しました。