Master Data Reference of GS2-Mission

Reference of the format of master data and various models to be imported

Master Data Format

{
  "version": "2019-05-28",
  "groups": [
    {
      "name": "[string]Mission Group Model name",
      "metadata": "[string?]Metadata",
      "tasks": [
        {
          "missionTaskId": "[string]Mission Task GRN",
          "name": "[string]Task Model Name",
          "metadata": "[string?]Metadata",
          "verifyCompleteType": "[string]Completion criteria type",
          "targetCounter": {
            "counterName": "[string]Counter Model name",
            "scopeType": "[string]Scope type",
            "resetType": "[string?]Target Reset timing",
            "conditionName": "[string]Condition Name",
            "value": "[long]Target value"
          },
          "verifyCompleteConsumeActions": [
            {
              "action": "[string]Types of actions to be performed in the verify task",
              "request": "[string]JSON string of the request used when executing the action"
            }
          ],
          "completeAcquireActions": [
            {
              "action": "[string]Types of actions to be performed in the acquire action",
              "request": "[string]JSON string of the request used when executing the action"
            }
          ],
          "challengePeriodEventId": "[string?]GS2-Schedule event GRN with a set period of time during which rewards can be received",
          "premiseMissionTaskName": "[string?]Name of the tasks accomplish to attempt this task",
          "counterName": "[string]Counter Model name",
          "targetResetType": "[string?]Target Reset timing",
          "targetValue": "[long]Target value"
        }
      ],
      "resetType": "[string enum]Reset timing",
      "resetDayOfMonth": "[int]Date to reset (If the value exceeds the days of the month, it is treated as the last day.)",
      "resetDayOfWeek": "[string enum]Day of the week to reset",
      "resetHour": "[int]Hour of Reset",
      "completeNotificationNamespaceId": "[string?]Namespace GRN",
      "anchorTimestamp": "[long]Base date and time for counting elapsed days",
      "days": "[int]Number of days to reset"
    }
  ],
  "counters": [
    {
      "name": "[string]Counter Model name",
      "metadata": "[string?]Metadata",
      "scopes": [
        {
          "scopeType": "[string]Scope type",
          "resetType": "[string]Reset timing",
          "resetDayOfMonth": "[int]Date to reset (If the value exceeds the days of the month, it is treated as the last day.)",
          "resetDayOfWeek": "[string]Day of the week to reset",
          "resetHour": "[int]Hour of Reset",
          "conditionName": "[string]Condition Name",
          "condition": {
            "action": "[string]Types of actions to be performed in the verify task",
            "request": "[string]JSON string of the request used when executing the action"
          },
          "anchorTimestamp": "[long]Base date and time for counting elapsed days",
          "days": "[int]Number of days to reset"
        }
      ],
      "challengePeriodEventId": "[string?]GS2-Schedule event GRN that sets the period during which the counter can be operated."
    }
  ]
}
TypeConditionRequiredDefaultValue LimitsDescription
versionstring
2019-05-28Format version of master data
groupsList<MissionGroupModel>~ 20 itemsMission Group Model
A mission group is an entity that groups tasks by counter reset timing.
For example, one group for daily missions. One group for Weekly Mission.
countersList<CounterModel>~ 1000 itemsCounter Model
The counter model is an entity that can be set as a condition for accomplishing mission tasks.
Since counter values can be referenced by multiple mission groups, a single counter can be set as an accomplishment condition for multiple mission groups, such as weekly and daily missions.

Model

CounterModel

Counter Model

The counter model is an entity that can be set as a condition for accomplishing mission tasks. Since counter values can be referenced by multiple mission groups, a single counter can be set as an accomplishment condition for multiple mission groups, such as weekly and daily missions.

TypeConditionRequiredDefaultValue LimitsDescription
counterIdstring
✓*
~ 1024 charsCounter Model GRN
* Automatically configured on the server
namestring
~ 128 charsCounter Model name
Counter Model-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
metadatastring~ 1024 charsMetadata
Arbitrary values can be set in the metadata.
Since they do not affect GS2’s behavior, they can be used to store information used in the game.
scopesList<CounterScopeModel>
[]1 ~ 20 itemsList of Counter reset timing
challengePeriodEventIdstring~ 1024 charsGS2-Schedule event GRN that sets the period during which the counter can be operated.

CounterScopeModel

Counter Reset Timing Model

TypeConditionRequiredDefaultValue LimitsDescription
scopeTypeString Enum
enum {
  “resetTiming”,
  “verifyAction”
}
“resetTiming”Scope type
Enumerator String DefinitionDescription
“resetTiming”Reset timing
“verifyAction”Verify action
resetTypeString Enum
enum {
  “notReset”,
  “daily”,
  “weekly”,
  “monthly”,
  “days”
}
“notReset”Reset timing
Enumerator String DefinitionDescription
“notReset”Not Reset
“daily”Daily
“weekly”Weekly
“monthly”Monthly
“days”Every certain number of days
resetDayOfMonthint{resetType} == “monthly”
✓*
1 ~ 31Date to reset (If the value exceeds the days of the month, it is treated as the last day.)
* Required if resetType is “monthly”
resetDayOfWeekString Enum
enum {
  “sunday”,
  “monday”,
  “tuesday”,
  “wednesday”,
  “thursday”,
  “friday”,
  “saturday”
}
{resetType} == “weekly”
✓*
Day of the week to reset
Enumerator String DefinitionDescription
“sunday”Sunday
“monday”Monday
“tuesday”Tuesday
“wednesday”Wednesday
“thursday”Thursday
“friday”Friday
“saturday”Saturday

* Required if resetType is “weekly”
resetHourint{resetType} in [“monthly”, “weekly”, “daily”]
✓*
0 ~ 23Hour of Reset
* Required if resetType is “monthly”,“weekly”,“daily”
conditionNamestring{scopeType} == “verifyAction”
✓*
~ 128 charsCondition Name
* Required if scopeType is “verifyAction”
conditionVerifyAction{scopeType} == “verifyAction”
✓*
Condition
* Required if scopeType is “verifyAction”
anchorTimestamplong{resetType} == “days”
✓*
Base date and time for counting elapsed days
Unix time, milliseconds

* Required if resetType is “days”
daysint{resetType} == “days”
✓*
1 ~ 2147483646Number of days to reset
* Required if resetType is “days”

VerifyAction

Verify Action

TypeConditionRequiredDefaultValue LimitsDescription
actionString Enum
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",
}
Types of actions to be performed in the verify task
requeststring
~ 524288 charsJSON string of the request used when executing the action

MissionGroupModel

Mission Group Model

A mission group is an entity that groups tasks by counter reset timing. For example, one group for daily missions. One group for Weekly Mission.

TypeConditionRequiredDefaultValue LimitsDescription
missionGroupIdstring
✓*
~ 1024 charsMission Group GRN
* Automatically configured on the server
namestring
~ 128 charsMission Group Model name
Mission Group Model-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
metadatastring~ 1024 charsMetadata
Arbitrary values can be set in the metadata.
Since they do not affect GS2’s behavior, they can be used to store information used in the game.
tasksList<MissionTaskModel>[]0 ~ 1000 itemsList of Mission Task
resetTypeString Enum
enum {
  “notReset”,
  “daily”,
  “weekly”,
  “monthly”,
  “days”
}
“notReset”Reset timing
Enumerator String DefinitionDescription
“notReset”Not Reset
“daily”Daily
“weekly”Weekly
“monthly”Monthly
“days”Every certain number of days
resetDayOfMonthint{resetType} == “monthly”
✓*
1 ~ 31Date to reset (If the value exceeds the days of the month, it is treated as the last day.)
* Required if resetType is “monthly”
resetDayOfWeekString Enum
enum {
  “sunday”,
  “monday”,
  “tuesday”,
  “wednesday”,
  “thursday”,
  “friday”,
  “saturday”
}
{resetType} == “weekly”
✓*
Day of the week to reset
Enumerator String DefinitionDescription
“sunday”Sunday
“monday”Monday
“tuesday”Tuesday
“wednesday”Wednesday
“thursday”Thursday
“friday”Friday
“saturday”Saturday

* Required if resetType is “weekly”
resetHourint{resetType} in [“monthly”, “weekly”, “daily”]
✓*
0 ~ 23Hour of Reset
* Required if resetType is “monthly”,“weekly”,“daily”
completeNotificationNamespaceIdstring~ 1024 charsNamespace GRN
anchorTimestamplong{resetType} == “days”
✓*
Base date and time for counting elapsed days
Unix time, milliseconds

* Required if resetType is “days”
daysint{resetType} == “days”
✓*
1 ~ 2147483646Number of days to reset
* Required if resetType is “days”

MissionTaskModel

Mission Task Model

A mission task is an entity that defines the conditions under which a reward will be given if the value of the associated counter exceeds a certain level.

TypeConditionRequiredDefaultValue LimitsDescription
missionTaskIdstring
✓*
~ 1024 charsMission Task GRN
* Automatically configured on the server
namestring
~ 128 charsTask Model Name
Task Model-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
metadatastring~ 1024 charsMetadata
Arbitrary values can be set in the metadata.
Since they do not affect GS2’s behavior, they can be used to store information used in the game.
verifyCompleteTypeString Enum
enum {
  “counter”,
  “verifyActions”
}
“counter”Completion criteria type
Enumerator String DefinitionDescription
“counter”Counter
“verifyActions”Verify Actions
targetCounterTargetCounterModel{verifyCompleteType} == “counter”
✓*
Target Counter
* Required if verifyCompleteType is “counter”
verifyCompleteConsumeActionsList<VerifyAction>{verifyCompleteType} == “verifyActions”[]0 ~ 10 itemsVerify actions when task is accomplished
* Enabled if verifyCompleteType is “verifyActions”
completeAcquireActionsList<AcquireAction>[]0 ~ 100 itemsRewards for mission accomplishment
challengePeriodEventIdstring~ 1024 charsGS2-Schedule event GRN with a set period of time during which rewards can be received
premiseMissionTaskNamestring~ 128 charsName of the tasks accomplish to attempt this task

TargetCounterModel

Target Counter

Information about the counter that serves as the achievement goal for the mission

TypeConditionRequiredDefaultValue LimitsDescription
counterNamestring
~ 128 charsCounter Model name
Counter Model-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
scopeTypeString Enum
enum {
  “resetTiming”,
  “verifyAction”
}
“resetTiming”Scope type
Enumerator String DefinitionDescription
“resetTiming”Reset timing
“verifyAction”Verify action
resetTypeString Enum
enum {
  “notReset”,
  “daily”,
  “weekly”,
  “monthly”,
  “days”
}
{scopeType} == “resetTiming”Target Reset timing
Enumerator String DefinitionDescription
“notReset”Not Reset
“daily”Daily
“weekly”Weekly
“monthly”Monthly
“days”Every certain number of days

* Enabled if scopeType is “resetTiming”
conditionNamestring{scopeType} == “verifyAction”
✓*
~ 128 charsCondition Name
* Required if scopeType is “verifyAction”
valuelong
0 ~ 9223372036854775805Target value

AcquireAction

Acquire Action

TypeConditionRequiredDefaultValue LimitsDescription
actionString Enum
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",
}
Types of actions to be performed in the acquire action
requeststring
~ 524288 charsJSON string of the request used when executing the action