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

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

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

{
  "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"
    }
  ]
}
有効化条件必須デフォルト値の制限説明
versionstring
2019-05-28マスターデータのフォーマットバージョン
groupsList<MissionGroupModel>~ 20 itemsミッショングループモデル
ミッショングループは、カウンターのリセットタイミングでタスクをグルーピングするエンティティです。
たとえば、デイリーミッションで1つのグループ、ウィークリーミッションで1つのグループとなります。
countersList<CounterModel>~ 1000 itemsカウンターモデル
カウンターモデルはミッションタスクの達成条件に設定可能なエンティティです。
カウンターの値は複数のミッショングループから参照可能なため、1つのカウンターでウィークリーミッションとデイリーミッションといった複数のミッショングループの達成条件に設定ができます。

モデル

CounterModel

カウンターモデル

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

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

CounterScopeModel

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

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

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

VerifyAction

検証アクション

有効化条件必須デフォルト値の制限説明
action文字列列挙型
enum {
"Gs2Dictionary:VerifyEntryByUserId",
"Gs2Distributor:IfExpressionByUserId",
"Gs2Distributor:AndExpressionByUserId",
"Gs2Distributor:OrExpressionByUserId",
"Gs2Enchant:VerifyRarityParameterStatusByUserId",
"Gs2Experience:VerifyRankByUserId",
"Gs2Experience:VerifyRankCapByUserId",
"Gs2Grade:VerifyGradeByUserId",
"Gs2Grade:VerifyGradeUpMaterialByUserId",
"Gs2Guild:VerifyCurrentMaximumMemberCountByGuildName",
"Gs2Guild:VerifyIncludeMemberByUserId",
"Gs2Inventory:VerifyInventoryCurrentMaxCapacityByUserId",
"Gs2Inventory:VerifyItemSetByUserId",
"Gs2Inventory:VerifyReferenceOfByUserId",
"Gs2Inventory:VerifySimpleItemByUserId",
"Gs2Inventory:VerifyBigItemByUserId",
"Gs2Limit:VerifyCounterByUserId",
"Gs2Matchmaking:VerifyIncludeParticipantByUserId",
"Gs2Mission:VerifyCompleteByUserId",
"Gs2Mission:VerifyCounterValueByUserId",
"Gs2Ranking2:VerifyGlobalRankingScoreByUserId",
"Gs2Ranking2:VerifyClusterRankingScoreByUserId",
"Gs2Ranking2:VerifySubscribeRankingScoreByUserId",
"Gs2Schedule:VerifyTriggerByUserId",
"Gs2Schedule:VerifyEventByUserId",
"Gs2SerialKey:VerifyCodeByUserId",
"Gs2Stamina:VerifyStaminaValueByUserId",
"Gs2Stamina:VerifyStaminaMaxValueByUserId",
"Gs2Stamina:VerifyStaminaRecoverIntervalMinutesByUserId",
"Gs2Stamina:VerifyStaminaRecoverValueByUserId",
"Gs2Stamina:VerifyStaminaOverflowValueByUserId",
}
検証アクションで実行するアクションの種類
requeststring
~ 524288文字アクション実行時に使用されるリクエストのJSON文字列

MissionGroupModel

ミッショングループモデル

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

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

MissionTaskModel

ミッションタスクモデル

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

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

TargetCounterModel

目標カウンター

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

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

AcquireAction

入手アクション

有効化条件必須デフォルト値の制限説明
action文字列列挙型
enum {
"Gs2AdReward:AcquirePointByUserId",
"Gs2Dictionary:AddEntriesByUserId",
"Gs2Enchant:ReDrawBalanceParameterStatusByUserId",
"Gs2Enchant:SetBalanceParameterStatusByUserId",
"Gs2Enchant:ReDrawRarityParameterStatusByUserId",
"Gs2Enchant:AddRarityParameterStatusByUserId",
"Gs2Enchant:SetRarityParameterStatusByUserId",
"Gs2Enhance:DirectEnhanceByUserId",
"Gs2Enhance:UnleashByUserId",
"Gs2Enhance:CreateProgressByUserId",
"Gs2Exchange:ExchangeByUserId",
"Gs2Exchange:IncrementalExchangeByUserId",
"Gs2Exchange:CreateAwaitByUserId",
"Gs2Exchange:AcquireForceByUserId",
"Gs2Exchange:SkipByUserId",
"Gs2Experience:AddExperienceByUserId",
"Gs2Experience:SetExperienceByUserId",
"Gs2Experience:AddRankCapByUserId",
"Gs2Experience:SetRankCapByUserId",
"Gs2Experience:MultiplyAcquireActionsByUserId",
"Gs2Formation:AddMoldCapacityByUserId",
"Gs2Formation:SetMoldCapacityByUserId",
"Gs2Formation:AcquireActionsToFormProperties",
"Gs2Formation:SetFormByUserId",
"Gs2Formation:AcquireActionsToPropertyFormProperties",
"Gs2Friend:UpdateProfileByUserId",
"Gs2Grade:AddGradeByUserId",
"Gs2Grade:ApplyRankCapByUserId",
"Gs2Grade:MultiplyAcquireActionsByUserId",
"Gs2Guild:IncreaseMaximumCurrentMaximumMemberCountByGuildName",
"Gs2Guild:SetMaximumCurrentMaximumMemberCountByGuildName",
"Gs2Idle:IncreaseMaximumIdleMinutesByUserId",
"Gs2Idle:SetMaximumIdleMinutesByUserId",
"Gs2Idle:ReceiveByUserId",
"Gs2Inbox:SendMessageByUserId",
"Gs2Inventory:AddCapacityByUserId",
"Gs2Inventory:SetCapacityByUserId",
"Gs2Inventory:AcquireItemSetByUserId",
"Gs2Inventory:AcquireItemSetWithGradeByUserId",
"Gs2Inventory:AddReferenceOfByUserId",
"Gs2Inventory:DeleteReferenceOfByUserId",
"Gs2Inventory:AcquireSimpleItemsByUserId",
"Gs2Inventory:SetSimpleItemsByUserId",
"Gs2Inventory:AcquireBigItemByUserId",
"Gs2Inventory:SetBigItemByUserId",
"Gs2JobQueue:PushByUserId",
"Gs2Limit:CountDownByUserId",
"Gs2Limit:DeleteCounterByUserId",
"Gs2LoginReward:DeleteReceiveStatusByUserId",
"Gs2LoginReward:UnmarkReceivedByUserId",
"Gs2Lottery:DrawByUserId",
"Gs2Lottery:ResetBoxByUserId",
"Gs2Mission:RevertReceiveByUserId",
"Gs2Mission:IncreaseCounterByUserId",
"Gs2Mission:SetCounterByUserId",
"Gs2Money:DepositByUserId",
"Gs2Money:RevertRecordReceipt",
"Gs2Money2:DepositByUserId",
"Gs2Quest:CreateProgressByUserId",
"Gs2Schedule:TriggerByUserId",
"Gs2Schedule:ExtendTriggerByUserId",
"Gs2Script:InvokeScript",
"Gs2SerialKey:RevertUseByUserId",
"Gs2SerialKey:IssueOnce",
"Gs2Showcase:DecrementPurchaseCountByUserId",
"Gs2Showcase:ForceReDrawByUserId",
"Gs2SkillTree:MarkReleaseByUserId",
"Gs2Stamina:RecoverStaminaByUserId",
"Gs2Stamina:RaiseMaxValueByUserId",
"Gs2Stamina:SetMaxValueByUserId",
"Gs2Stamina:SetRecoverIntervalByUserId",
"Gs2Stamina:SetRecoverValueByUserId",
"Gs2StateMachine:StartStateMachineByUserId",
}
入手アクションで実行するアクションの種類
requeststring
~ 524288文字アクション実行時に使用されるリクエストのJSON文字列