GS2-Mission Transaction Actions

Specification of verify/consume/acquire transaction actions

Verify Action

Gs2Mission:VerifyCompleteByUserId

Verify Completion Status by specifying a user ID

Verifies the completion or receipt status of a mission task for the specified user.

Supports quantity specification: NO

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
missionGroupNamestring
~ 128 charsMission Group Name
The name of the mission group that this completion record belongs to. One Complete record exists per user per mission group.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
verifyTypeString Enum
enum {
  “completed”,
  “notCompleted”,
  “received”,
  “notReceived”,
  “completedAndNotReceived”
}
Type of verification
DefinitionDescription
“completed”Condition is achieved
“notCompleted”Condition is not achieved
“received”Reward has been received
“notReceived”Reward has not been received
“completedAndNotReceived”Condition is achieved and reward has not been received
missionTaskNamestring
~ 128 charsMission Task Model name
Mission Task Model-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
multiplyValueSpecifyingQuantityboolfalseWhether to multiply the value used for verification when specifying the quantity
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:VerifyCompleteByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "missionGroupName": "[string]Mission Group Name",
        "userId": "[string]User ID",
        "verifyType": "[string]Type of verification",
        "missionTaskName": "[string]Mission Task Model name",
        "multiplyValueSpecifyingQuantity": "[bool]Whether to multiply the value used for verification when specifying the quantity",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:VerifyCompleteByUserId
request:
  namespaceName: "[string]Namespace name"
  missionGroupName: "[string]Mission Group Name"
  userId: "[string]User ID"
  verifyType: "[string]Type of verification"
  missionTaskName: "[string]Mission Task Model name"
  multiplyValueSpecifyingQuantity: "[bool]Whether to multiply the value used for verification when specifying the quantity"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").verify.verify_complete_by_user_id({
    namespaceName="[string]Namespace name",
    missionGroupName="[string]Mission Group Name",
    userId="[string]User ID",
    verifyType="[string]Type of verification",
    missionTaskName="[string]Mission Task Model name",
    multiplyValueSpecifyingQuantity="[bool]Whether to multiply the value used for verification when specifying the quantity",
    timeOffsetToken="[string]Time offset token",
})

Gs2Mission:VerifyCounterValueByUserId

Verify counter value by specifying a user ID

Verifies that a counter’s scoped value meets the specified condition for the specified user.

Supports quantity specification: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
counterNamestring
~ 128 charsCounter Model name
The name of the Counter Model that this counter instance is based on. Links to the counter model definition that specifies the scopes and reset timings.
verifyTypeString Enum
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
Type of verification
DefinitionDescription
“less”Counter value is less than the specified value
“lessEqual”Counter value is less than or equal to the specified value
“greater”Counter value is greater than the specified value
“greaterEqual”Counter value is greater than or equal to the specified value
“equal”Counter value is equal to the specified value
“notEqual”Counter value is not equal to the specified value
scopeTypeString Enum
enum {
  “resetTiming”,
  “verifyAction”
}
“resetTiming”Scope type
Indicates whether this scoped value is based on a reset timing schedule or a verify action condition.
DefinitionDescription
“resetTiming”Reset timing
“verifyAction”Verify Action
resetTypeString Enum
enum {
  “notReset”,
  “daily”,
  “weekly”,
  “monthly”,
  “days”
}
{scopeType} == “resetTiming”
✓*
Reset timing
The reset timing for this scoped value. Determines the period over which the counter value is accumulated before being reset. Only applicable when scopeType is “resetTiming”.
DefinitionDescription
“notReset”Not Reset
“daily”Daily
“weekly”Weekly
“monthly”Monthly
“days”Every fixed number of days
* Required if scopeType is “resetTiming”
conditionNamestring{scopeType} == “verifyAction”
✓*
~ 128 charsCondition Name
The name of the verify action condition that this scoped value corresponds to. Used to identify which condition scope this value belongs to. Only applicable when scopeType is “verifyAction”.
* Required if scopeType is “verifyAction”
valuelong00 ~ 9223372036854775805Count value
The accumulated counter value for this scope. Increases when the counter is incremented and decreases when decremented. The value is capped at the maximum and will not go below zero.
multiplyValueSpecifyingQuantityboolfalseWhether to multiply the value used for verification when specifying the quantity
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:VerifyCounterValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "counterName": "[string]Counter Model name",
        "verifyType": "[string]Type of verification",
        "scopeType": "[string]Scope type",
        "resetType": "[string]Reset timing",
        "conditionName": "[string]Condition Name",
        "value": "[long]Count value",
        "multiplyValueSpecifyingQuantity": "[bool]Whether to multiply the value used for verification when specifying the quantity",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:VerifyCounterValueByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  counterName: "[string]Counter Model name"
  verifyType: "[string]Type of verification"
  scopeType: "[string]Scope type"
  resetType: "[string]Reset timing"
  conditionName: "[string]Condition Name"
  value: "[long]Count value"
  multiplyValueSpecifyingQuantity: "[bool]Whether to multiply the value used for verification when specifying the quantity"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").verify.verify_counter_value_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    counterName="[string]Counter Model name",
    verifyType="[string]Type of verification",
    scopeType="[string]Scope type",
    resetType="[string]Reset timing",
    conditionName="[string]Condition Name",
    value="[long]Count value",
    multiplyValueSpecifyingQuantity="[bool]Whether to multiply the value used for verification when specifying the quantity",
    timeOffsetToken="[string]Time offset token",
})

Consume Action

Gs2Mission:ReceiveByUserId

Receive rewards for mission accomplishment

Marks the specified mission task as received for the specified user.

Supports quantity specification: NO

Whether the action is reversible: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
missionGroupNamestring
~ 128 charsMission Group Name
The name of the mission group that this completion record belongs to. One Complete record exists per user per mission group.
missionTaskNamestring
~ 128 charsTask Name
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:ReceiveByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "missionGroupName": "[string]Mission Group Name",
        "missionTaskName": "[string]Task Name",
        "userId": "[string]User ID",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:ReceiveByUserId
request:
  namespaceName: "[string]Namespace name"
  missionGroupName: "[string]Mission Group Name"
  missionTaskName: "[string]Task Name"
  userId: "[string]User ID"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").consume.receive_by_user_id({
    namespaceName="[string]Namespace name",
    missionGroupName="[string]Mission Group Name",
    missionTaskName="[string]Task Name",
    userId="[string]User ID",
    timeOffsetToken="[string]Time offset token",
})

Gs2Mission:BatchReceiveByUserId

Receive rewards for multiple mission tasks in bulk

Marks multiple mission tasks as received at once within the same mission group.

Supports quantity specification: NO

Whether the action is reversible: NO

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
missionGroupNamestring
~ 128 charsMission Group Name
The name of the mission group that this completion record belongs to. One Complete record exists per user per mission group.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
missionTaskNamesList<string>
1 ~ 100 itemsTask name list
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:BatchReceiveByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "missionGroupName": "[string]Mission Group Name",
        "userId": "[string]User ID",
        "missionTaskNames": [
            "[string]Task Name"
        ],
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:BatchReceiveByUserId
request:
  namespaceName: "[string]Namespace name"
  missionGroupName: "[string]Mission Group Name"
  userId: "[string]User ID"
  missionTaskNames: 
  - "[string]Task Name"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").consume.batch_receive_by_user_id({
    namespaceName="[string]Namespace name",
    missionGroupName="[string]Mission Group Name",
    userId="[string]User ID",
    missionTaskNames={
        "[string]Task Name"
    },
    timeOffsetToken="[string]Time offset token",
})

Gs2Mission:DecreaseCounterByUserId

Decrease counter by specifying a user ID

Subtracts the specified value from the counter for the specified user.

Supports quantity specification: YES

Whether the action is reversible: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
counterNamestring
~ 128 charsCounter Model name
The name of the Counter Model that this counter instance is based on. Links to the counter model definition that specifies the scopes and reset timings.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
valuelong
1 ~ 9223372036854775805Value to be subtracted
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:DecreaseCounterByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "counterName": "[string]Counter Model name",
        "userId": "[string]User ID",
        "value": "[long]Value to be subtracted",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:DecreaseCounterByUserId
request:
  namespaceName: "[string]Namespace name"
  counterName: "[string]Counter Model name"
  userId: "[string]User ID"
  value: "[long]Value to be subtracted"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").consume.decrease_counter_by_user_id({
    namespaceName="[string]Namespace name",
    counterName="[string]Counter Model name",
    userId="[string]User ID",
    value="[long]Value to be subtracted",
    timeOffsetToken="[string]Time offset token",
})

Gs2Mission:ResetCounterByUserId

Reset counter by specifying a user ID

Resets the counter values for the specified scopes for the specified user.

Supports quantity specification: NO

Whether the action is reversible: NO

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
counterNamestring
~ 128 charsCounter Model name
The name of the Counter Model that this counter instance is based on. Links to the counter model definition that specifies the scopes and reset timings.
scopesList<ScopedValue>
1 ~ 20 itemsList of scopes
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:ResetCounterByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "counterName": "[string]Counter Model name",
        "scopes": [
            {
                "scopeType": "[string]Scope type",
                "resetType": "[string]Reset timing",
                "conditionName": "[string]Condition Name",
                "value": "[long]Count value",
                "nextResetAt": "[long]Next reset timing",
                "updatedAt": "[long]Datetime of last update"
            }
        ],
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:ResetCounterByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  counterName: "[string]Counter Model name"
  scopes: 
  - scopeType: "[string]Scope type"
    resetType: "[string]Reset timing"
    conditionName: "[string]Condition Name"
    value: "[long]Count value"
    nextResetAt: "[long]Next reset timing"
    updatedAt: "[long]Datetime of last update"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").consume.reset_counter_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    counterName="[string]Counter Model name",
    scopes={
        {
            scopeType="[string]Scope type",
            resetType="[string]Reset timing",
            conditionName="[string]Condition Name",
            value="[long]Count value",
            nextResetAt="[long]Next reset timing",
            updatedAt="[long]Datetime of last update"
        }
    },
    timeOffsetToken="[string]Time offset token",
})

Acquire Action

Gs2Mission:RevertReceiveByUserId

Revert the status of mission accomplishment to unreceived

Reverts the received status of a mission task back to unreceived.

Supports quantity specification: NO

Whether the action is reversible: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
missionGroupNamestring
~ 128 charsMission Group Name
The name of the mission group that this completion record belongs to. One Complete record exists per user per mission group.
missionTaskNamestring
~ 128 charsTask Name
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:RevertReceiveByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "missionGroupName": "[string]Mission Group Name",
        "missionTaskName": "[string]Task Name",
        "userId": "[string]User ID",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:RevertReceiveByUserId
request:
  namespaceName: "[string]Namespace name"
  missionGroupName: "[string]Mission Group Name"
  missionTaskName: "[string]Task Name"
  userId: "[string]User ID"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").acquire.revert_receive_by_user_id({
    namespaceName="[string]Namespace name",
    missionGroupName="[string]Mission Group Name",
    missionTaskName="[string]Task Name",
    userId="[string]User ID",
    timeOffsetToken="[string]Time offset token",
})

Gs2Mission:IncreaseCounterByUserId

Increase counter by specifying a user ID

Adds the specified value to the counter for the specified user. After incrementing, all mission tasks referencing this counter are automatically re-evaluated, and any newly completed missions are returned in the changedCompletes response.

Supports quantity specification: YES

Whether the action is reversible: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
counterNamestring
~ 128 charsCounter Model name
The name of the Counter Model that this counter instance is based on. Links to the counter model definition that specifies the scopes and reset timings.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
valuelong
1 ~ 9223372036854775805Value to be added
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:IncreaseCounterByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "counterName": "[string]Counter Model name",
        "userId": "[string]User ID",
        "value": "[long]Value to be added",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:IncreaseCounterByUserId
request:
  namespaceName: "[string]Namespace name"
  counterName: "[string]Counter Model name"
  userId: "[string]User ID"
  value: "[long]Value to be added"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").acquire.increase_counter_by_user_id({
    namespaceName="[string]Namespace name",
    counterName="[string]Counter Model name",
    userId="[string]User ID",
    value="[long]Value to be added",
    timeOffsetToken="[string]Time offset token",
})

Gs2Mission:SetCounterByUserId

Set counter by specifying a user ID

Sets the counter scoped values directly for the specified user, replacing existing values. Returns both the old and new counter states, as well as any newly completed missions in the changedCompletes response.

Supports quantity specification: NO

Whether the action is reversible: NO

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
counterNamestring
~ 128 charsCounter Model name
The name of the Counter Model that this counter instance is based on. Links to the counter model definition that specifies the scopes and reset timings.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
valuesList<ScopedValue>0 ~ 20 itemsList of values to be set
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Mission:SetCounterByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "counterName": "[string]Counter Model name",
        "userId": "[string]User ID",
        "values": [
            {
                "scopeType": "[string]Scope type",
                "resetType": "[string]Reset timing",
                "conditionName": "[string]Condition Name",
                "value": "[long]Count value",
                "nextResetAt": "[long]Next reset timing",
                "updatedAt": "[long]Datetime of last update"
            }
        ],
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Mission:SetCounterByUserId
request:
  namespaceName: "[string]Namespace name"
  counterName: "[string]Counter Model name"
  userId: "[string]User ID"
  values: 
    - scopeType: "[string]Scope type"
      resetType: "[string]Reset timing"
      conditionName: "[string]Condition Name"
      value: "[long]Count value"
      nextResetAt: "[long]Next reset timing"
      updatedAt: "[long]Datetime of last update"
  timeOffsetToken: "[string]Time offset token"
transaction.service("mission").acquire.set_counter_by_user_id({
    namespaceName="[string]Namespace name",
    counterName="[string]Counter Model name",
    userId="[string]User ID",
    values={
        {
            scopeType="[string]Scope type",
            resetType="[string]Reset timing",
            conditionName="[string]Condition Name",
            value="[long]Count value",
            nextResetAt="[long]Next reset timing",
            updatedAt="[long]Datetime of last update"
        }
    },
    timeOffsetToken="[string]Time offset token",
})