> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Mission マスターデータリファレンス

マスターデータのフォーマットと インポートする各種モデルのリファレンス




## マスターデータのフォーマット


**JSON**
```json
{
  "version": "2019-05-28",
  "groups": [
    {
      "name": "[string]ミッショングループモデル名",
      "metadata": "[string?]メタデータ",
      "tasks": [
        {
          "missionTaskId": "[string]ミッションタスクGRN",
          "name": "[string]ミッションタスクモデル名",
          "metadata": "[string?]メタデータ",
          "verifyCompleteType": "[string]達成条件種別",
          "targetCounter": {
            "counterName": "[string]カウンターモデル名",
            "scopeType": "[string]スコープの種類",
            "resetType": "[string?]目標リセットタイミング",
            "conditionName": "[string]条件名",
            "value": "[long]目標値"
          },
          "verifyCompleteConsumeActions": [
            {
              "action": "[string]検証アクションで実行するアクションの種類",
              "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
          ],
          "completeAcquireActions": [
            {
              "action": "[string]入手アクションで実行するアクションの種類",
              "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
          ],
          "challengePeriodEventId": "[string?]報酬が受け取り可能な期間を設定した GS2-Schedule イベントGRN",
          "premiseMissionTaskName": "[string?]このタスクに挑戦するために達成しておく必要のあるタスクの名前",
          "counterName": "[string]カウンターモデル名",
          "targetResetType": "[string?]目標リセットタイミング",
          "targetValue": "[long]目標値"
        }
      ],
      "resetType": "[string (enum)]リセットタイミング",
      "resetDayOfMonth": "[int]リセットをする日にち",
      "resetDayOfWeek": "[string (enum)]リセットする曜日",
      "resetHour": "[int]リセット時刻",
      "completeNotificationNamespaceId": "[string?]ミッションのタスクを達成したときのプッシュ通知",
      "anchorTimestamp": "[long]経過日数のカウントをする基準日時",
      "days": "[int]リセットする日数"
    }
  ],
  "counters": [
    {
      "name": "[string]カウンターモデル名",
      "metadata": "[string?]メタデータ",
      "scopes": [
        {
          "scopeType": "[string]スコープの種類",
          "resetType": "[string]リセットタイミング",
          "resetDayOfMonth": "[int]リセットをする日にち",
          "resetDayOfWeek": "[string]リセットする曜日",
          "resetHour": "[int]リセット時刻",
          "conditionName": "[string]条件名",
          "condition": {
            "action": "[string]検証アクションで実行するアクションの種類",
            "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
          },
          "anchorTimestamp": "[long]経過日数のカウントをする基準日時",
          "days": "[int]リセットする日数"
        }
      ],
      "challengePeriodEventId": "[string?]カウンターの操作が可能な期間を設定した GS2-Schedule イベントGRN"
    }
  ]
}
```


|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| version | string | | ✓ | 2019-05-28 | | マスターデータのフォーマットバージョン |
| groups | [List&lt;MissionGroupModel&gt;](#missiongroupmodel) |  |  |  |  ~ 20 items | ミッショングループモデル<br>ミッショングループは、カウンターのリセットタイミングでタスクをグルーピングするエンティティです。<br>たとえば、デイリーミッションで1つのグループ、ウィークリーミッションで1つのグループとなります。 |
| counters | [List&lt;CounterModel&gt;](#countermodel) |  |  |  |  ~ 1000 items | カウンターモデル<br>カウンターモデルはミッションタスクの達成条件に設定可能なエンティティです。<br>カウンターの値は複数のミッショングループから参照可能なため、1つのカウンターでウィークリーミッションとデイリーミッションといった複数のミッショングループの達成条件に設定ができます。 |

## モデル

### CounterModel

カウンターモデル<br>

カウンターモデルはミッションタスクの達成条件に設定可能なエンティティです。<br>
カウンターの値は複数のミッショングループから参照可能なため、1つのカウンターでウィークリーミッションとデイリーミッションといった複数のミッショングループの達成条件に設定ができます。

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| counterId | string |  | ※ |  |  ~ 1024文字 | カウンターモデルGRN<br>※ サーバーが自動で設定 |
| name | string |  | ✓ |  |  ~ 128文字 | カウンターモデル名<br>カウンターモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| metadata | string |  |  |  |  ~ 1024文字 | メタデータ<br>メタデータには任意の値を設定できます。<br>これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 |
| scopes | [List&lt;CounterScopeModel&gt;](#counterscopemodel) |  |  | [] | 1 ~ 20 items | カウンターのリセットタイミングリスト<br>このカウンターのスコープ（リセットタイミングまたは検証アクション条件）を定義します。1つのカウンターに複数のスコープを設定でき、異なる期間の値（例：デイリー、ウィークリー、累計を同時に）を追跡できます。 |
| challengePeriodEventId | string |  |  |  |  ~ 1024文字 | カウンターの操作が可能な期間を設定した GS2-Schedule イベントGRN<br>このカウンターの増減が可能な期間を定義する GS2-Schedule イベントを指定します。未設定の場合、カウンターはいつでも操作できます。 |

---

### CounterScopeModel

カウンターリセットタイミングモデル<br>

カウンターのスコープを定義し、カウンター値のリセット方法とタイミングを決定します。スコープはリセットタイミング（毎日、毎週、毎月、一定日数ごと、またはリセットなし）か検証アクション条件のいずれかです。各カウンターは複数のスコープを持ち、異なる期間の値を追跡できます。

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| scopeType | 文字列列挙型<br>enum {<br>"resetTiming",<br>"verifyAction"<br>}<br> |  |  | "resetTiming" |  | スコープの種類<br>カウンタースコープの定義方法を決定します。"resetTiming" は定期的なリセットスケジュールを使用し、"verifyAction" は検証アクションでカウンター値が適用されるかどうかを判定します。"resetTiming": リセットタイミング / "verifyAction": 検証アクション /  |
| resetType | 文字列列挙型<br>enum {<br>"notReset",<br>"daily",<br>"weekly",<br>"monthly",<br>"days"<br>}<br> |  |  | "notReset" |  | リセットタイミング<br>このスコープのカウンター値がリセットされるタイミングを決定します。リセットしない（恒久累計）、毎日、毎週、毎月、一定日数ごとから選択します。scopeType が "resetTiming" の場合のみ使用されます。"notReset": リセットしない / "daily": 毎日 / "weekly": 毎週 / "monthly": 毎月 / "days": 一定日数ごと /  |
| resetDayOfMonth | int | {resetType} == "monthly" | ✓※ |  | 1 ~ 31 | リセットをする日にち<br>カウンター値がリセットされる月の日にちです。指定した値が月の日数を超える場合は、その月の最終日として扱われます。resetType が "monthly" の場合のみ使用されます。<br>※ resetType が "monthly" であれば 必須 |
| resetDayOfWeek | 文字列列挙型<br>enum {<br>"sunday",<br>"monday",<br>"tuesday",<br>"wednesday",<br>"thursday",<br>"friday",<br>"saturday"<br>}<br> | {resetType} == "weekly" | ✓※ |  |  | リセットする曜日<br>カウンター値がリセットされる曜日です。resetType が "weekly" の場合のみ使用されます。"sunday": 日曜日 / "monday": 月曜日 / "tuesday": 火曜日 / "wednesday": 水曜日 / "thursday": 木曜日 / "friday": 金曜日 / "saturday": 土曜日 / <br>※ resetType が "weekly" であれば 必須 |
| resetHour | int | {resetType} in ["monthly", "weekly", "daily"] | ✓※ |  | 0 ~ 23 | リセット時刻<br>カウンター値がリセットされる時刻（0〜23）です。毎日、毎週、毎月のリセットタイプと組み合わせて使用されます。<br>※ resetType が "monthly","weekly","daily"であれば 必須 |
| conditionName | string | {scopeType} == "verifyAction" | ✓※ |  |  ~ 128文字 | 条件名<br>この検証アクション条件スコープを識別する一意の名前です。カウンター内の対応するスコープ値の検索に使用されます。scopeType が "verifyAction" の場合のみ使用されます。<br>※ scopeType が "verifyAction" であれば 必須 |
| condition | [VerifyAction](#verifyaction) | {scopeType} == "verifyAction" | ✓※ |  |  | 条件<br>このスコープのカウンター値が適用されるかどうかを判定する検証アクションです。scopeType が "verifyAction" の場合のみ使用されます。<br>※ scopeType が "verifyAction" であれば 必須 |
| anchorTimestamp | long | {resetType} == "days" | ✓※ |  |  | 経過日数のカウントをする基準日時<br>UNIX 時間・ミリ秒<br>※ resetType が "days" であれば 必須 |
| days | int | {resetType} == "days" | ✓※ |  | 1 ~ 2147483646 | リセットする日数<br>基準日時からカウントされるカウンター値のリセット間隔の日数です。resetType が "days" の場合のみ使用されます。<br>※ resetType が "days" であれば 必須 |

---

### VerifyAction

検証アクション

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| action | 文字列列挙型<br>enum {<br>}<br> |  | ✓ |  |  | 検証アクションで実行するアクションの種類 |
| request | string |  | ✓ |  |  ~ 524288文字 | アクション実行時に使用されるリクエストのJSON文字列 |

---

### MissionGroupModel

ミッショングループモデル<br>

ミッショングループは、カウンターのリセットタイミングでタスクをグルーピングするエンティティです。<br>
たとえば、デイリーミッションで1つのグループ、ウィークリーミッションで1つのグループとなります。

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| missionGroupId | string |  | ※ |  |  ~ 1024文字 | ミッショングループGRN<br>※ サーバーが自動で設定 |
| name | string |  | ✓ |  |  ~ 128文字 | ミッショングループモデル名<br>ミッショングループモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| metadata | string |  |  |  |  ~ 1024文字 | メタデータ<br>メタデータには任意の値を設定できます。<br>これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 |
| tasks | [List&lt;MissionTaskModel&gt;](#missiontaskmodel) |  |  | [] | 0 ~ 1000 items | ミッションタスクリスト<br>このグループに属するミッションタスクです。各タスクは達成条件（カウンターの閾値または検証アクション）と達成時に付与される報酬を定義します。 |
| resetType | 文字列列挙型<br>enum {<br>"notReset",<br>"daily",<br>"weekly",<br>"monthly",<br>"days"<br>}<br> |  |  | "notReset" |  | リセットタイミング<br>ミッショングループの達成状況がリセットされるタイミングを決定します。リセットしない（恒久）、毎日、毎週、毎月、基準日時から一定日数ごとから選択します。"notReset": リセットしない / "daily": 毎日 / "weekly": 毎週 / "monthly": 毎月 / "days": 一定日数ごと /  |
| resetDayOfMonth | int | {resetType} == "monthly" | ✓※ |  | 1 ~ 31 | リセットをする日にち<br>ミッショングループがリセットされる月の日にちです。指定した値が月の日数を超える場合は、その月の最終日として扱われます。resetType が "monthly" の場合のみ使用されます。<br>※ resetType が "monthly" であれば 必須 |
| resetDayOfWeek | 文字列列挙型<br>enum {<br>"sunday",<br>"monday",<br>"tuesday",<br>"wednesday",<br>"thursday",<br>"friday",<br>"saturday"<br>}<br> | {resetType} == "weekly" | ✓※ |  |  | リセットする曜日<br>ミッショングループがリセットされる曜日です。resetType が "weekly" の場合のみ使用されます。"sunday": 日曜日 / "monday": 月曜日 / "tuesday": 火曜日 / "wednesday": 水曜日 / "thursday": 木曜日 / "friday": 金曜日 / "saturday": 土曜日 / <br>※ resetType が "weekly" であれば 必須 |
| resetHour | int | {resetType} in ["monthly", "weekly", "daily"] | ✓※ |  | 0 ~ 23 | リセット時刻<br>ミッショングループがリセットされる時刻（0〜23）です。毎日、毎週、毎月のリセットタイプと組み合わせて使用されます。<br>※ resetType が "monthly","weekly","daily"であれば 必須 |
| completeNotificationNamespaceId | string |  |  |  |  ~ 1024文字 | ミッションのタスクを達成したときのプッシュ通知<br>このグループ内のミッションタスクが達成された際にプッシュ通知を配信するために使用される GS2-Gateway のネームスペースGRNです。ゲームクライアントにリアルタイムで通知できます。 |
| anchorTimestamp | long | {resetType} == "days" | ✓※ |  |  | 経過日数のカウントをする基準日時<br>UNIX 時間・ミリ秒<br>※ resetType が "days" であれば 必須 |
| days | int | {resetType} == "days" | ✓※ |  | 1 ~ 2147483646 | リセットする日数<br>基準日時からカウントされるリセット間隔の日数です。resetType が "days" の場合のみ使用されます。<br>※ resetType が "days" であれば 必須 |

---

### MissionTaskModel

ミッションタスクモデル<br>

ミッションタスクは関連付けたカウンターの値が一定を超えたら報酬が貰える条件を定義するエンティティです。

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| missionTaskId | string |  | ※ |  |  ~ 1024文字 | ミッションタスクGRN<br>※ サーバーが自動で設定 |
| name | string |  | ✓ |  |  ~ 128文字 | ミッションタスクモデル名<br>ミッションタスクモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| metadata | string |  |  |  |  ~ 1024文字 | メタデータ<br>メタデータには任意の値を設定できます。<br>これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 |
| verifyCompleteType | 文字列列挙型<br>enum {<br>"counter",<br>"verifyActions"<br>}<br> |  |  | "counter" |  | 達成条件種別<br>ミッションタスクの達成判定方法を指定します。"counter" は関連するカウンターのスコープ値が目標閾値に達したかを確認します。"verifyActions" は検証アクションを使用して達成条件を確認します。"counter": カウンター / "verifyActions": 検証アクション /  |
| targetCounter | [TargetCounterModel](#targetcountermodel) | {verifyCompleteType} == "counter" | ✓※ |  |  | 目標カウンター<br>ミッションタスクの達成判定に使用されるカウンター、スコープ、目標値を定義します。カウンターのスコープ値が指定された目標値に達するか超えた場合、タスクが達成されたとみなされます。<br>※ verifyCompleteType が "counter" であれば 必須 |
| verifyCompleteConsumeActions | [List&lt;VerifyAction&gt;](#verifyaction) | {verifyCompleteType} == "verifyActions" |  | [] | 0 ~ 10 items | タスク達成判定に使用する検証アクション<br>ミッションタスクの達成判定に使用される検証アクションのリストです。すべての検証アクションが成功した場合にタスクが達成とみなされます。verifyCompleteType が "verifyActions" の場合のみ使用されます。<br>※ verifyCompleteType が "verifyActions" であれば 有効 |
| completeAcquireActions | [List&lt;AcquireAction&gt;](#acquireaction) |  |  | [] | 0 ~ 100 items | ミッション達成時の報酬<br>プレイヤーがミッション達成報酬を受け取る際に実行される入手アクションのリストです。 |
| challengePeriodEventId | string |  |  |  |  ~ 1024文字 | 報酬が受け取り可能な期間を設定した GS2-Schedule イベントGRN<br>ミッションタスクの報酬を受け取ることができる期間を定義する GS2-Schedule イベントを指定します。未設定の場合、達成後いつでも報酬を受け取ることができます。 |
| premiseMissionTaskName | string |  |  |  |  ~ 128文字 | このタスクに挑戦するために達成しておく必要のあるタスクの名前<br>このタスクの報酬を受け取る前に達成しておく必要がある、同じグループ内の前提ミッションタスクを指定します。段階的なミッションチェーンの作成に使用します。 |

---

### TargetCounterModel

目標カウンター<br>

ミッションの達成目標となるカウンターの情報

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| counterName | string |  | ✓ |  |  ~ 128文字 | カウンターモデル名<br>カウンターモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| scopeType | 文字列列挙型<br>enum {<br>"resetTiming",<br>"verifyAction"<br>}<br> |  |  | "resetTiming" |  | スコープの種類<br>ミッション達成判定に使用するカウンタースコープの種類を指定します。"resetTiming" は特定のリセット期間のカウンター値を評価し、"verifyAction" は名前付き条件の値を評価します。"resetTiming": リセットタイミング / "verifyAction": 検証アクション /  |
| resetType | 文字列列挙型<br>enum {<br>"notReset",<br>"daily",<br>"weekly",<br>"monthly",<br>"days"<br>}<br> | {scopeType} == "resetTiming" |  |  |  | 目標リセットタイミング<br>目標値と比較するカウンターのリセットタイミングスコープを指定します。例えば "daily" を選択すると、デイリーのカウンター値を確認します。省略した場合、ミッショングループのリセットタイミングが使用されます。"notReset": リセットしない / "daily": 毎日 / "weekly": 毎週 / "monthly": 毎月 / "days": 一定日数ごと / <br>※ scopeType が "resetTiming" であれば 有効 |
| conditionName | string | {scopeType} == "verifyAction" | ✓※ |  |  ~ 128文字 | 条件名<br>目標値と比較する検証アクション条件スコープの名前です。カウンターモデルのスコープで定義された conditionName と一致する必要があります。scopeType が "verifyAction" の場合のみ使用されます。<br>※ scopeType が "verifyAction" であれば 必須 |
| value | long |  | ✓ |  | 0 ~ 9223372036854775805 | 目標値<br>ミッションタスクが達成とみなされるために、カウンターのスコープ値が達するか超える必要がある閾値です。 |

---

### AcquireAction

入手アクション

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| action | 文字列列挙型<br>enum {<br>}<br> |  | ✓ |  |  | 入手アクションで実行するアクションの種類 |
| request | string |  | ✓ |  |  ~ 524288文字 | アクション実行時に使用されるリクエストのJSON文字列 |

---



