Quests, achievements, dailies and unlock trees as pure data. Your game reports one line; compound objectives, party requirements, timer-free daily resets and progression trees handle the rest.ENGLISHQuest logic is easy to start and hard to finish. Compound objectives ("clear 1-4 twice at rank S AND collect 300 gold"), daily quests that must reset even while the game was closed, prerequisite trees added late in production, and progress that has to fit into a save file you already shipped — this module takes all of it.Your game reports what happened in one line: quests.Report("enemy.defeated", "slime");Which quests count that report is decided by the quest assets, so adding a hundred quests adds zero lines to your game code.WHAT YOU CAN AUTHOR, WITHOUT WRITING CODE- Count objectives by target id, by tag ("defeat 5 undead"), or by excluding a tag- Summed amounts ("collect 300 gold in total") and maximum values ("reach a 25 combo")- Minimum rank and situation flags ("only rank-S boss fights count")- Combine objectives with AND, OR, or at-least-N- One-shot, infinitely repeatable, or limited repeats ("up to three times")- Daily / weekly / monthly / fixed-interval resets, in local time or UTC- Prerequisite unlock trees, including branching routes and hidden quests- Party composition objectives: a named leader, class tags, and an exact party sizeRESETS THAT SURVIVE BEING OFFLINEElapsed-time timers only advance while the app runs, so dailies silently fail to reset when the date changes with the game closed. This system computes the start of the current period and resets when it differs from the saved one. Launch after three months away and the daily resets once, the weekly resets once, correctly.IT DOES NOT REPLACE YOUR SAVE SYSTEM OR YOUR UIStorage is an interface. PlayerPrefs and JSON-file implementations are included, but most projects embed the progress in their existing save with one string (ToJson / LoadFromJson). The persisted data is plain public fields, and quests that never progressed create no record at all.No UI prefabs are included — a quest log's look is the game's identity, and a prebuilt one is almost always thrown away. Instead every value a UI needs is computed for you: state, progress ratio, per-objective counts, reset countdown, and even tree-diagram coordinates for a progression screen.EXTENSIBLE WITHOUT MODIFYING THE ASSETAction keys are strings, so new actions never require editing the asset's source (an optional catalog asset turns them into inspector dropdowns). An event filter lets you inject rules that data cannot express. Replace the clock to trust server time instead of the device clock, and replace the store for cloud or encrypted saves.INCLUDEDFull C# source behind assembly definitions, editor tooling (custom inspector, collapsed objective rows, action-key dropdowns, automatic registry collection and pre-build baking), a one-click showcase scene that demonstrates every feature in eighteen captioned steps, four minimal samples, a self-test menu that verifies the asset in your own Unity version, and complete documentation in both English and Japanese.JAPANESEクエストの実装は、始めるのは簡単で終わらせるのが大変です。複合条件(「1-4 をボスS勝利で2回 かつ 金貨を300集める」)、アプリを閉じている間に日付が変わってもリセットされなければならないデイリー任務、開発終盤で欲しくなる任務ツリー、そして既にリリースしたセーブ形式に収めなければならない進捗——それらを丸ごと引き受けるモジュールです。ゲーム側が書くのは1行だけです。quests.Report("enemy.defeated", "slime");どのクエストがこれを数えるかはクエストアセット側の条件が決めるため、クエストを100件追加してもゲームコードは1行も増えません。■ コードを書かずに作れるもの・対象ID指定/タグ指定(「アンデッドを5体」)/除外タグでのカウント条件・数量の合計(「金貨を合計300枚」)と最大値の到達(「最大コンボ25」)・ランク下限と状況フラグ(「ボス戦かつS勝利のみ」)・条件の結合(AND/OR/3つのうち2つ以上)・1度限り/無限周回/回数上限つき周回(「1日3回まで」)・デイリー/ウィークリー/マンスリー/固定間隔のリセット(ローカル時間・UTC選択可)・前提クエストによる解放ツリー(分岐ルート・隠しクエストにも対応)・編成条件(リーダー指定・職業タグ・ちょうど◯人)■ 起動していない間もずれないリセット経過時間タイマー方式は、アプリが動いている間しか進みません。そのため閉じている間に日付が変わるとデイリーが更新されない、という不具合が起きます。本アセットは「今が属する周期の開始時刻」を求め、セーブされた値と違えばリセットします。3か月ぶりに起動しても、デイリーは1回だけ・ウィークリーも1回だけ正しくリセットされます。■ セーブ機構もUIも置き換えません保存先はインターフェースです。PlayerPrefs/JSONファイルの実装を同梱していますが、実際には「自分のセーブデータに文字列1つで埋め込む」形が最も多く使われます。進捗データは public フィールドのみで構成され、一度も進捗が動いていないクエストはレコードすら作りません。UIプレハブは同梱していません。クエストログの見た目はゲームの個性そのもので、既製UIはほぼ確実に作り直しになるからです。代わりに、状態・進捗率・条件別カウント・リセットまでの残り時間、さらに任務ツリー画面用の座標まで、UIが必要とする値を全て計算して返します。■ アセットを改造せずに拡張できます行動キーは文字列なので、行動を増やすためにアセット本体を書き換える必要がありません(任意の語彙表アセットを作ればインスペクタのドロップダウンになります)。データで表現しきれないルールはイベントフィルタで差し込めます。時計を差し替えればサーバー時刻基準にでき、保存先を差し替えればクラウドセーブや暗号化セーブにも対応します。■ 収録内容アセンブリ定義で分離されたフルC#ソース、エディタ拡張(専用インスペクタ・条件の折りたたみ表示・行動キーのドロップダウン・レジストリの自動収集とビルド直前の自動焼き込み)、全機能を18ステップで実演するワンクリック構築のデモシーン、最小構成のサンプル4種、あなたのUnityバージョンで動作を検証する自己診断メニュー、そして日英両方の完全なドキュメント。ENGLISHFeatures- Data-driven quests authored as ScriptableObjects; no code changes when adding or editing quests- Objectives filter by action key, target id, tags (any / all / none), minimum rank and situation flags- Counting modes: occurrences, summed amount, maximum value reached- Objective logic: All (AND), Any (OR), AtLeast N- Party composition objectives with a named leader, tag slots and an exact party size; one member fills only one slot- Prerequisite unlock trees with All / Any modes, branching routes and hidden quests- Repeat models: one-shot, unlimited, or a completion cap- Reset cycles: daily, weekly, monthly and fixed interval, in local time or UTC, evaluated without timers- Manual acceptance mode, auto-claim mode and a claim-all call- Events for unlocked, progressed, completed, claimed and resetExtensibility- IQuestProgressStore: memory, PlayerPrefs and JSON-file implementations included; implement your own for cloud or encrypted saves- IQuestRewardHandler: rewards are handed to your inventory; return false to refuse and keep the quest claimable- IQuestClock: swap the device clock for server time- EventFilter delegate: inject rules that data cannot express- Action keys are strings, extended without editing the assetIntegration- QuestService is a plain C# class (not a MonoBehaviour), so it is testable and DI-friendly; an optional MonoBehaviour wrapper is provided- QuestProgressSnapshot returns state, progress ratio, per-objective counts, completion count and reset countdown in one call- QuestTreeLayout returns node and edge coordinates ready for uGUI anchoredPosition- List collection fills a caller-owned List, so per-frame calls allocate nothing- Quests with no progress create no save recordDependencies and compatibility- Unity 2022.3 LTS or newer; no third-party packages- No render-pipeline dependency; works in 2D and 3D, built-in, URP and HDRP- Works with either Input System setting (no input APIs are used)- Assembly definitions isolate runtime, editor, demo and samplesContents- Full C# source with XML documentation in English and Japanese- Custom inspector, property drawers, automatic registry collection and a pre-build baking hook- One-click showcase scene demonstrating every feature in eighteen captioned steps- Four minimal samples and a self-test menu- README in English and Japanese; every inspector tooltip is bilingual- No image, audio or font files are included; the demo generates its visuals in codeJAPANESE機能・ScriptableObject としてクエストを定義。追加・変更時にコードの書き換えは不要・条件は行動キー/対象ID/タグ(いずれか・全て・除外)/ランク下限/状況フラグで絞り込み・カウント方式は回数・数量の合計・到達した最大値の3種・条件の結合は All(AND)/Any(OR)/AtLeast(N個以上)・編成条件はリーダー指定・タグ枠・ちょうど◯人に対応。1人が2枠を兼任しない解決順序・前提クエストによる解放ツリー(All/Any・分岐ルート・隠しクエスト)・周回モデルは1度限り/無限/回数上限つき・リセットはデイリー・ウィークリー・マンスリー・固定間隔。ローカル時間/UTC選択可・タイマー不使用・手動受注モード、自動受け取りモード、一括受け取り・解放/進捗/達成/受け取り/リセットの各イベント拡張性・IQuestProgressStore:メモリ/PlayerPrefs/JSONファイルの実装を同梱。クラウド・暗号化セーブも実装可・IQuestRewardHandler:報酬は購入者のインベントリへ手渡し。false を返せば受け取りを保留できる・IQuestClock:端末時計をサーバー時刻へ差し替え可能・EventFilter:データで表現しきれないルールを差し込める・行動キーは文字列。アセットを改造せずに増やせる導入・QuestService は MonoBehaviour ではない純粋な C# クラス(テスト可能・DI と併用可)。任意でラッパーも同梱・QuestProgressSnapshot が状態・進捗率・条件別カウント・完了回数・リセット残り時間を一括で返す・QuestTreeLayout がノードと接続線の座標を返す(uGUI の anchoredPosition にそのまま渡せる)・一覧取得は呼び出し側の List に詰めるため、毎フレーム呼んでも追加確保なし・進捗が動いていないクエストはセーブレコードを作らない依存関係・互換性・Unity 2022.3 LTS 以降/サードパーティ製パッケージ不要・レンダーパイプライン非依存(2D・3D・ビルトイン・URP・HDRP いずれでも動作)・Input System はどちらの設定でも動作(入力APIを使用しません)・Runtime/Editor/Demo/Samples はアセンブリ定義で分離収録内容・日英XMLドキュメント付きのフルC#ソース・専用インスペクタ、プロパティ描画、レジストリ自動収集、ビルド直前の自動焼き込み・全機能を18ステップで実演するワンクリック構築のデモシーン・最小構成のサンプル4種と自己診断メニュー・日英のREADME。インスペクタのツールチップもすべて日英併記・画像・音声・フォントファイルは1つも含まれません(デモの描画はコード生成)AI (Claude by Anthropic) was utilized as an engineering assistant during the package creation process for the following tasks:1. Refactoring and modularizing C# code to ensure high quality, loose coupling, and framework-agnostic design.2. Generating documentation drafts, API reference guides, and English/Japanese README files.All system architecture, logic design, functional requirements, and final code reviews were explicitly defined and verified by human hands. The package has been thoroughly compiled and tested within Unity to guarantee stability and performance.

