メインコンテンツまでスキップ

Quest Codex

Quest Codex 拡張は、プレイヤーが階層カテゴリで整理されたクエストを閲覧・追跡・管理できる、完全にカスタマイズ可能な GUI システムを提供します。すべてのメニューは GUI 拡張を土台とする宣言的レイアウトプールで構築され、ハードコードされたメニューは一切なく、カスタマイズは無限です。

機能

  • 階層カテゴリ — 親子関係でカテゴリを入れ子にします。サブカテゴリは親の表示条件を継承します。
    • レイアウトプール — 宣言的レイアウトプールで各メニューを設計します。プレースホルダー(SORT_SLOTCATEGORY_SLOTQUEST_SLOT)は自動的に挿入されます。
    • スクロール可能なクエスト一覧 — クエストとカテゴリのスロットは scrollablepaginatedframe のビューポートに従い、任意のサイズのスクロールするクエストグリッドを構築できます(0.3.0 以降)。
    • 動的ソート — すべて → 未開始 → 進行中 → 完了 を切り替え、モードごとにボタン表示(ラベル、Lore、カスタムアイテム)を設定できます。
    • クエスト追跡 — QuestExtension のネイティブ追跡システムにより、優先度インジケーター付きでアクティブなクエストを追跡します。
    • 完全なサウンドデザイン — メニューのオープン、クリック、スクロール、クエストの追跡/追跡解除イベントに対して音を設定します。
    • BlueMap 統合 — 動的なラベルと表示ルールを備えたクエストアイコンを BlueMap に表示します(BTC 版)。

アーキテクチャ

エントリーライブラリ

設定

  • Quest Codex Config — グローバルな音、既定の行数、メッセージテンプレート。

カテゴリシステム

  • Quest Category — タイトル、アイコン、親、表示条件を持つカテゴリを定義します。
    • Quest Assignment — クエストのエントリーをカテゴリに紐づけ、順序とステータスごとの上書きを設定します。

メニューと表示

  • Category Menu — 宣言的レイアウトプール、プレースホルダースロット、モードごとのソートボタンでメニューを設計します。
    • Quest Lore — クエストごと・ステータスごとに Lore 行を上書きします。

クイックスタート

  • 1. グローバル設定を追加する(任意) — 音やメッセージをカスタマイズするには、ページ JSON に Quest Codex Config エントリーを作成します。これがなくても拡張はそのまま動作し、適切な既定値を使用します。json { "type": "quest_codex", "id": "my_codex_config", "defaultRows": 5, "nowTrackingMessage": "<green>Now tracking: {quest}</green>" } plugins/Typewriter/pages/ 配下の任意のコンパイル済みページに配置します。→ Quest Codex Config

  • 2. カテゴリを定義するQuest Category エントリーを追加します。表示タイトル、アイコン、入れ子用の任意の親を備えた、コーデックス内の論理的なクエストグループを定義します。主なフィールド: - category — 一意の内部名(例:main_quests) - title — プレイヤーに表示されるタイトル(MiniMessage) - icon — 親/カテゴリ一覧に表示されるアイテム - parent — 最上位なら空のまま、入れ子にするなら設定 → Quest Category

  • 3. クエストを割り当てるQuest Assignment エントリーを追加して、QuestExtension のクエストをカテゴリに紐づけます。順序とステータスごとの上書きを制御します。json { "type": "quest_assignment", "id": "assign_main", "category": "main_quests", "questRefs": ["quest:quest_main_1", "quest:quest_main_2"], "orders": [0, 1] } → Quest Assignment

  • 4. メニューを設計する — カスタム GUI が欲しいカテゴリごとに Category Menu エントリーを追加します。レイアウトプールを使って次を配置します:- CATEGORY_SLOT — 自動挿入されるカテゴリアイコン(メインメニュー) - QUEST_SLOT — 自動挿入されるクエストボタン(カテゴリメニュー) - SORT_SLOT — 自動挿入される動的ソートボタン - 標準の GUI アイテム — 装飾アイテム、フィル、固定ボタン レイアウトプールは CUSTOM の guiType を使用します。すべては位置指定です:アイテムを (x, y) 座標に配置します。→ Category Menu

  • 5. メニューを開く — コマンドでコーデックスにアクセスします:/tw codex → コーデックスのメインメニュー(0.3.0 以降) /tw codex <category> → 特定のカテゴリ 例:- /tw codex main_quests — メインクエストのカテゴリを開く - /tw codex daily_tasks — デイリータスクを開く > メインメニュー: 空の categoryCATEGORY_SLOT マーカーを持つ category_menu エントリーを作成するか、ボタンが codex:open <category> を実行する GUI 拡張の open_gui メニューとしてハブを構築し、設定の mainMenuTrigger で参照します。そうすれば /tw codex とコーデックスの BACK ボタンがそれを開きます。

コマンド

コマンドPermission説明
/tw codextypewriter.codex.openコーデックスのメインメニューを開く(空カテゴリの category_menu、または設定の mainMenuTrigger)。
/tw codex <category>typewriter.codex.open特定のクエストカテゴリを直接開く。タブ補完に対応。

プレースホルダー

接頭辞: %typewriter_*%

グローバルプレースホルダー
プレースホルダー返り値
%typewriter_total_quests%全カテゴリのクエスト総数42
%typewriter_total_completed%完了したクエストの総数15
%typewriter_total_in_progress%進行中のクエストの総数5
%typewriter_total_not_started%未開始のクエストの総数22
%typewriter_total_progress%完了/総数のフォーマット15/42
カテゴリごとのプレースホルダー

<name> はカテゴリ識別子(例:main_quests)に置き換えてください。

プレースホルダー返り値
%typewriter_category_<name>%カテゴリ内のクエスト総数10
%typewriter_category_<name>_completed%カテゴリ内の完了数3
%typewriter_category_<name>_in_progress%カテゴリ内の進行中数2
%typewriter_category_<name>_not_started%カテゴリ内の未開始数5
%typewriter_category_<name>_progress%進捗のフォーマット3/10

エイリアス: _inprogress%_notstarted% も使用できます。

テンプレート変数(@Placeholder フィールド内)
変数コンテキスト置き換え先
{quest}メッセージテンプレートクエストの表示名
{completed}進捗メッセージ完了したクエスト数
{total}進捗メッセージカテゴリ内のクエスト総数

権限

Permission説明
typewriter.codex.openクエストコーデックスを開く。

依存関係

Extension必須用途
QuestExtension必須コアクエストエンジン。
GUI Extension必須メニューの描画とレイアウトプールシステム。
PlaceholderAPI任意@Placeholder フィールド用。