GS2-Idle Transaction Actions

Specification of verify/consume/acquire transaction actions

ConsumeAction

Gs2Idle:DecreaseMaximumIdleMinutesByUserId

Decrease the maximum idle time by specifying a user ID

Subtracts the specified number of minutes from the user’s maximum idle time for the given category. The maximum idle time cannot go below zero. If no status exists yet, it is automatically created before applying the decrease.

Whether the action allows 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 (.).
userIdstring
~ 128 charsUser ID
Set #{userId} to replace the currently logged in user ID.
categoryNamestring
~ 128 charsCategory Model Name
The name of the category model that this status belongs to. References the category model definition which contains the reward interval, maximum idle time, acquire actions, and schedule settings used for idle reward calculation.
decreaseMinutesint1 ~ 2147483646Minutes to decrease the maximum idle time
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Idle:DecreaseMaximumIdleMinutesByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "categoryName": "[string]Category Model Name",
        "decreaseMinutes": "[int]Minutes to decrease the maximum idle time",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Idle:DecreaseMaximumIdleMinutesByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  categoryName: "[string]Category Model Name"
  decreaseMinutes: "[int]Minutes to decrease the maximum idle time"
  timeOffsetToken: "[string]Time offset token"
transaction.service("idle").consume.decrease_maximum_idle_minutes_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    categoryName="[string]Category Model Name",
    decreaseMinutes="[int]Minutes to decrease the maximum idle time",
    timeOffsetToken="[string]Time offset token",
})

AcquireAction

Gs2Idle:IncreaseMaximumIdleMinutesByUserId

Increase the maximum idle time by specifying a user ID

Adds the specified number of minutes to the user’s maximum idle time for the given category. The maximum idle time determines the cap on how long idle rewards can accumulate. If no status exists yet, it is automatically created before applying the increase.

Whether the action allows 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 (.).
userIdstring
~ 128 charsUser ID
Set #{userId} to replace the currently logged in user ID.
categoryNamestring
~ 128 charsCategory Model Name
The name of the category model that this status belongs to. References the category model definition which contains the reward interval, maximum idle time, acquire actions, and schedule settings used for idle reward calculation.
increaseMinutesint1 ~ 2147483646Minutes to increase the maximum idle time
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Idle:IncreaseMaximumIdleMinutesByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "categoryName": "[string]Category Model Name",
        "increaseMinutes": "[int]Minutes to increase the maximum idle time",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Idle:IncreaseMaximumIdleMinutesByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  categoryName: "[string]Category Model Name"
  increaseMinutes: "[int]Minutes to increase the maximum idle time"
  timeOffsetToken: "[string]Time offset token"
transaction.service("idle").acquire.increase_maximum_idle_minutes_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    categoryName="[string]Category Model Name",
    increaseMinutes="[int]Minutes to increase the maximum idle time",
    timeOffsetToken="[string]Time offset token",
})

Gs2Idle:SetMaximumIdleMinutesByUserId

Set the maximum idle time by specifying a user ID

Sets the user’s maximum idle time for the given category to the specified absolute value. Unlike increase/decrease operations, this directly replaces the current maximum idle time. Returns both the updated status and the status before the update, allowing the caller to see what changed. If no status exists yet, it is automatically created before applying the value.

Whether the action allows 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
Set #{userId} to replace the currently logged in user ID.
categoryNamestring
~ 128 charsCategory Model Name
The name of the category model that this status belongs to. References the category model definition which contains the reward interval, maximum idle time, acquire actions, and schedule settings used for idle reward calculation.
maximumIdleMinutesint1 ~ 2147483646Maximum idle time to set
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Idle:SetMaximumIdleMinutesByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "categoryName": "[string]Category Model Name",
        "maximumIdleMinutes": "[int]Maximum idle time to set",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Idle:SetMaximumIdleMinutesByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  categoryName: "[string]Category Model Name"
  maximumIdleMinutes: "[int]Maximum idle time to set"
  timeOffsetToken: "[string]Time offset token"
transaction.service("idle").acquire.set_maximum_idle_minutes_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    categoryName="[string]Category Model Name",
    maximumIdleMinutes="[int]Maximum idle time to set",
    timeOffsetToken="[string]Time offset token",
})

Gs2Idle:ReceiveByUserId

Receive rewards by specifying a user ID

Receives idle rewards for the specified user and category based on the accumulated idle time. The reward amount is calculated from the elapsed idle time divided by rewardIntervalMinutes, capped by maximumIdleMinutes. If a receiveScript is configured, it is executed before granting rewards and can modify or reject the receive operation. An overrideAcquireActionsScriptId can also modify the acquire actions (e.g., applying rate modifiers). After receiving, the idle timer is reset to the current time. Returns a transaction containing the acquire actions for the calculated rewards.

Whether the action allows 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
Set #{userId} to replace the currently logged in user ID.
categoryNamestring
~ 128 charsCategory Model Name
The name of the category model that this status belongs to. References the category model definition which contains the reward interval, maximum idle time, acquire actions, and schedule settings used for idle reward calculation.
configList<Config>[]0 ~ 32 itemsSet values to be applied to transaction variables
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Idle:ReceiveByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "categoryName": "[string]Category Model Name",
        "config": [
            {
                "key": "[string]Name",
                "value": "[string]Value"
            }
        ],
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Idle:ReceiveByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  categoryName: "[string]Category Model Name"
  config: 
    - key: "[string]Name"
      value: "[string]Value"
  timeOffsetToken: "[string]Time offset token"
transaction.service("idle").acquire.receive_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    categoryName="[string]Category Model Name",
    config={
        {
            key="[string]Name",
            value="[string]Value"
        }
    },
    timeOffsetToken="[string]Time offset token",
})