Documentation index for AI agents

GS2-Stamina Transaction Actions

Specification of verify/consume/acquire transaction actions

Combining actions, and concurrency

The background common to every service is collected in Combining Transaction Actions. Read that first; the rest of this section is what GS2-Stamina adds to it.

The transaction actions of GS2-Stamina address one stamina, identified by the combination of namespace, user, and stamina model. A stamina holds the stamina value, the maximum value, the recovery interval, the recovery amount, and the overflow value together, but each action writes only the value it actually changes, so a different value is a different target.

OperationRepeated in one transactionAcross a nested transactionBoundary that separates targets
Recovering and consuming the stamina value
RecoverStaminaByUserId ConsumeStaminaByUserId
Combined; judged against the totalAdded up, except that a recovery total beyond what natural recovery allows returns a conflict (409) that a retry cannot clearnamespace, user, stamina model, stamina value
Raising and decreasing the maximum value
RaiseMaxValueByUserId DecreaseMaxValueByUserId
Combined; judged against the totalAdded upnamespace, user, stamina model, maximum value
Setting the maximum value
SetMaxValueByUserId
Combined if equal; rejected when the transaction is issued if the values differFailsnamespace, user, stamina model, maximum value
Setting the recovery interval
SetRecoverIntervalByUserId
Combined if equal; rejected when the transaction is issued if the values differFailsnamespace, user, stamina model, recovery interval
Setting the recovery amount
SetRecoverValueByUserId
Combined if equal; rejected when the transaction is issued if the values differFailsnamespace, user, stamina model, recovery amount
All verify actionsThe thresholds are added up into a single condition, rather than the first one winning as in other servicesNo collision, because they only readnamespace, user, stamina model, verify type

Two rows address the maximum value, and they share a boundary, so they cannot be placed together. Setting it together with raising or decreasing it makes the transaction fail.

Recovering and consuming are judged against the total after combining. The stamina value must not fall below zero, and recovery must not take it past what natural recovery allows, so a recovery that fits on its own can still be rejected when combined with another one.

Verify actions look at the stamina as of the start of the transaction. You cannot verify a value that is reached by the same transaction, and because the thresholds are merged, specify at most one verify action of each verify type.

Take care with nested transactions

Recovery is the only exception. When recovery arrives both from the inside and from the outside and the two together would take the stamina past what natural recovery allows, the transaction is rejected with a conflict (409) that a retry cannot clear. Keep recovery of one stamina to a single place in a transaction, counting the contents of any rewards or draws. Where that is not possible, the settings below avoid it.

If you want to avoid these restrictions

Recovering stamina, adding to and setting the maximum value, and setting the recover interval or recover value are acquire actions; consuming stamina and subtracting from the maximum value are consume actions. Turning acquireActionUseJobQueue on clears a collision between recoveries arriving from the inside and the outside, but setting the maximum value together with subtracting from it needs enableAtomicCommit turned off.

Concurrency and retries

Recovering, consuming, raising and decreasing, and changing the recovery interval or amount do not conflict with a concurrent request, however many such requests overlap, as long as each result stays within the allowed range. Concurrent requests that change different values do not conflict either.

A conflict (409) may still be returned when concurrent consumption adds up to more than the stamina held, when concurrent recovery would take it past what natural recovery allows, or when a change made through the console or the server API overlaps. In the first and last cases, retrying re-evaluates the request against the latest state and will succeed once it fits.


Verify Action

Gs2Stamina:VerifyStaminaValueByUserId

Verify the value of the current Stamina by User ID

Validates that the current stamina value for the specified user meets the specified condition against the given threshold without modifying any state.

Quantity specification supported: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
verifyTypestring (enum)
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
Type of verification
DefinitionDescription
lessValue is less than the specified value
lessEqualValue is less than or equal to the specified value
greaterValue is greater than the specified value
greaterEqualValue is greater than or equal to the specified value
equalPossession quantity is equal to the specified value
notEqualPossession quantity is not equal to the specified value
valueint
0 ~ 2147483646Value to be verified
multiplyValueSpecifyingQuantitybooltrueWhether to multiply the value used for verification when specifying the quantity
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:VerifyStaminaValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "staminaName": "[string]Stamina Model Name",
        "verifyType": "[string]Type of verification",
        "value": "[int]Value to be verified",
        "multiplyValueSpecifyingQuantity": "[bool]Whether to multiply the value used for verification when specifying the quantity",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:VerifyStaminaValueByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  staminaName: "[string]Stamina Model Name"
  verifyType: "[string]Type of verification"
  value: "[int]Value to be verified"
  multiplyValueSpecifyingQuantity: "[bool]Whether to multiply the value used for verification when specifying the quantity"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").verify.verify_stamina_value_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    staminaName="[string]Stamina Model Name",
    verifyType="[string]Type of verification",
    value="[int]Value to be verified",
    multiplyValueSpecifyingQuantity="[bool]Whether to multiply the value used for verification when specifying the quantity",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:VerifyStaminaMaxValueByUserId

Verify the value of the max stamina by User ID

Validates that the maximum stamina capacity (including buff modifications) for the specified user meets the specified condition against the given threshold without modifying any state.

Quantity specification supported: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
verifyTypestring (enum)
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
Type of verification
DefinitionDescription
lessValue is less than the specified value
lessEqualValue is less than or equal to the specified value
greaterValue is greater than the specified value
greaterEqualValue is greater than or equal to the specified value
equalPossession quantity is equal to the specified value
notEqualPossession quantity is not equal to the specified value
valueint
0 ~ 2147483646Value to be verified
multiplyValueSpecifyingQuantitybooltrueWhether to multiply the value used for verification when specifying the quantity
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:VerifyStaminaMaxValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "staminaName": "[string]Stamina Model Name",
        "verifyType": "[string]Type of verification",
        "value": "[int]Value to be verified",
        "multiplyValueSpecifyingQuantity": "[bool]Whether to multiply the value used for verification when specifying the quantity",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:VerifyStaminaMaxValueByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  staminaName: "[string]Stamina Model Name"
  verifyType: "[string]Type of verification"
  value: "[int]Value to be verified"
  multiplyValueSpecifyingQuantity: "[bool]Whether to multiply the value used for verification when specifying the quantity"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").verify.verify_stamina_max_value_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    staminaName="[string]Stamina Model Name",
    verifyType="[string]Type of verification",
    value="[int]Value to be verified",
    multiplyValueSpecifyingQuantity="[bool]Whether to multiply the value used for verification when specifying the quantity",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:VerifyStaminaRecoverIntervalMinutesByUserId

Verify the value of the recovery interval minutes by User ID

Validates that the stamina recovery interval (minutes) for the specified user meets the specified condition against the given threshold without modifying any state.

Quantity specification supported: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
verifyTypestring (enum)
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
Type of verification
DefinitionDescription
lessValue is less than the specified value
lessEqualValue is less than or equal to the specified value
greaterValue is greater than the specified value
greaterEqualValue is greater than or equal to the specified value
equalPossession quantity is equal to the specified value
notEqualPossession quantity is not equal to the specified value
valueint
0 ~ 2147483646Value to be verified
multiplyValueSpecifyingQuantitybooltrueWhether to multiply the value used for verification when specifying the quantity
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:VerifyStaminaRecoverIntervalMinutesByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "staminaName": "[string]Stamina Model Name",
        "verifyType": "[string]Type of verification",
        "value": "[int]Value to be verified",
        "multiplyValueSpecifyingQuantity": "[bool]Whether to multiply the value used for verification when specifying the quantity",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:VerifyStaminaRecoverIntervalMinutesByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  staminaName: "[string]Stamina Model Name"
  verifyType: "[string]Type of verification"
  value: "[int]Value to be verified"
  multiplyValueSpecifyingQuantity: "[bool]Whether to multiply the value used for verification when specifying the quantity"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").verify.verify_stamina_recover_interval_minutes_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    staminaName="[string]Stamina Model Name",
    verifyType="[string]Type of verification",
    value="[int]Value to be verified",
    multiplyValueSpecifyingQuantity="[bool]Whether to multiply the value used for verification when specifying the quantity",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:VerifyStaminaRecoverValueByUserId

Verify the value of the recovery value by User ID

Validates that the stamina recovery amount (including buff modifications) for the specified user meets the specified condition against the given threshold without modifying any state.

Quantity specification supported: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
verifyTypestring (enum)
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
Type of verification
DefinitionDescription
lessValue is less than the specified value
lessEqualValue is less than or equal to the specified value
greaterValue is greater than the specified value
greaterEqualValue is greater than or equal to the specified value
equalPossession quantity is equal to the specified value
notEqualPossession quantity is not equal to the specified value
valueint
0 ~ 2147483646Value to be verified
multiplyValueSpecifyingQuantitybooltrueWhether to multiply the value used for verification when specifying the quantity
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:VerifyStaminaRecoverValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "staminaName": "[string]Stamina Model Name",
        "verifyType": "[string]Type of verification",
        "value": "[int]Value to be verified",
        "multiplyValueSpecifyingQuantity": "[bool]Whether to multiply the value used for verification when specifying the quantity",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:VerifyStaminaRecoverValueByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  staminaName: "[string]Stamina Model Name"
  verifyType: "[string]Type of verification"
  value: "[int]Value to be verified"
  multiplyValueSpecifyingQuantity: "[bool]Whether to multiply the value used for verification when specifying the quantity"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").verify.verify_stamina_recover_value_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    staminaName="[string]Stamina Model Name",
    verifyType="[string]Type of verification",
    value="[int]Value to be verified",
    multiplyValueSpecifyingQuantity="[bool]Whether to multiply the value used for verification when specifying the quantity",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:VerifyStaminaOverflowValueByUserId

Verify the value of the overflow value by User ID

Validates that the stamina overflow amount for the specified user meets the specified condition against the given threshold without modifying any state.

Quantity specification supported: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
verifyTypestring (enum)
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
Type of verification
DefinitionDescription
lessValue is less than the specified value
lessEqualValue is less than or equal to the specified value
greaterValue is greater than the specified value
greaterEqualValue is greater than or equal to the specified value
equalPossession quantity is equal to the specified value
notEqualPossession quantity is not equal to the specified value
valueint
0 ~ 2147483646Value to be verified
multiplyValueSpecifyingQuantitybooltrueWhether to multiply the value used for verification when specifying the quantity
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:VerifyStaminaOverflowValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "staminaName": "[string]Stamina Model Name",
        "verifyType": "[string]Type of verification",
        "value": "[int]Value to be verified",
        "multiplyValueSpecifyingQuantity": "[bool]Whether to multiply the value used for verification when specifying the quantity",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:VerifyStaminaOverflowValueByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  staminaName: "[string]Stamina Model Name"
  verifyType: "[string]Type of verification"
  value: "[int]Value to be verified"
  multiplyValueSpecifyingQuantity: "[bool]Whether to multiply the value used for verification when specifying the quantity"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").verify.verify_stamina_overflow_value_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    staminaName="[string]Stamina Model Name",
    verifyType="[string]Type of verification",
    value="[int]Value to be verified",
    multiplyValueSpecifyingQuantity="[bool]Whether to multiply the value used for verification when specifying the quantity",
    timeOffsetToken="[string]Time offset token",
})

Consume Action

Gs2Stamina:DecreaseMaxValueByUserId

Subtract the maximum value of stamina by specifying the user ID

Reduces the maximum stamina capacity by the specified amount for the given user. May be used to apply debuffs or penalties to stamina capacity.

Quantity specification supported: YES

Reversible action: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
decreaseValueint
0 ~ 2147483646Maximum amount of stamina to be decreased
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:DecreaseMaxValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "staminaName": "[string]Stamina Model Name",
        "userId": "[string]User ID",
        "decreaseValue": "[int]Maximum amount of stamina to be decreased",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:DecreaseMaxValueByUserId
request:
  namespaceName: "[string]Namespace name"
  staminaName: "[string]Stamina Model Name"
  userId: "[string]User ID"
  decreaseValue: "[int]Maximum amount of stamina to be decreased"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").consume.decrease_max_value_by_user_id({
    namespaceName="[string]Namespace name",
    staminaName="[string]Stamina Model Name",
    userId="[string]User ID",
    decreaseValue="[int]Maximum amount of stamina to be decreased",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:ConsumeStaminaByUserId

Consume Stamina by User ID

Deducts the specified amount from the current stamina value for the given user. Returns an Insufficient error if the current stamina value is less than the consume amount.

Quantity specification supported: YES

Reversible action: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
consumeValueint
1 ~ 2147483646Amount of stamina consumed
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:ConsumeStaminaByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "staminaName": "[string]Stamina Model Name",
        "userId": "[string]User ID",
        "consumeValue": "[int]Amount of stamina consumed",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:ConsumeStaminaByUserId
request:
  namespaceName: "[string]Namespace name"
  staminaName: "[string]Stamina Model Name"
  userId: "[string]User ID"
  consumeValue: "[int]Amount of stamina consumed"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").consume.consume_stamina_by_user_id({
    namespaceName="[string]Namespace name",
    staminaName="[string]Stamina Model Name",
    userId="[string]User ID",
    consumeValue="[int]Amount of stamina consumed",
    timeOffsetToken="[string]Time offset token",
})

Acquire Action

Gs2Stamina:RecoverStaminaByUserId

Recover Stamina by User ID

Recovers stamina by the specified amount up to the maximum capacity. If the recovery causes the value to exceed the maximum and overflow mode is enabled, the excess is tracked as an overflow value.

Quantity specification supported: YES

Reversible action: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
recoverValueint
1 ~ 2147483646Amount of stamina recovery
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:RecoverStaminaByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "staminaName": "[string]Stamina Model Name",
        "userId": "[string]User ID",
        "recoverValue": "[int]Amount of stamina recovery",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:RecoverStaminaByUserId
request:
  namespaceName: "[string]Namespace name"
  staminaName: "[string]Stamina Model Name"
  userId: "[string]User ID"
  recoverValue: "[int]Amount of stamina recovery"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").acquire.recover_stamina_by_user_id({
    namespaceName="[string]Namespace name",
    staminaName="[string]Stamina Model Name",
    userId="[string]User ID",
    recoverValue="[int]Amount of stamina recovery",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:RaiseMaxValueByUserId

Add the maximum value of stamina by specifying the user ID

Permanently increases the maximum stamina capacity by the specified amount. Used for permanent stat increases such as level-up rewards or item effects.

Quantity specification supported: YES

Reversible action: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
raiseValueint
0 ~ 2147483646Maximum amount of stamina to be increased
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:RaiseMaxValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "staminaName": "[string]Stamina Model Name",
        "userId": "[string]User ID",
        "raiseValue": "[int]Maximum amount of stamina to be increased",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:RaiseMaxValueByUserId
request:
  namespaceName: "[string]Namespace name"
  staminaName: "[string]Stamina Model Name"
  userId: "[string]User ID"
  raiseValue: "[int]Maximum amount of stamina to be increased"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").acquire.raise_max_value_by_user_id({
    namespaceName="[string]Namespace name",
    staminaName="[string]Stamina Model Name",
    userId="[string]User ID",
    raiseValue="[int]Maximum amount of stamina to be increased",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:SetMaxValueByUserId

Update the maximum value of stamina by User ID

Sets the maximum stamina capacity to the specified value. The old stamina state is preserved in the response for audit purposes. Used for administrative overrides or special event adjustments.

Quantity specification supported: YES

Reversible action: NO

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
maxValueint
1 ~ 2147483646Maximum Stamina
The per-user maximum stamina value, resolved from the StaminaModel and optionally overridden by a MaxStaminaTable based on the player’s GS2-Experience rank.
When overflow is disabled, this value is floored at initialCapacity. When overflow is enabled, it is capped at maxCapacity.
Natural time-based recovery stops at this value.
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:SetMaxValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "staminaName": "[string]Stamina Model Name",
        "userId": "[string]User ID",
        "maxValue": "[int]Maximum Stamina",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:SetMaxValueByUserId
request:
  namespaceName: "[string]Namespace name"
  staminaName: "[string]Stamina Model Name"
  userId: "[string]User ID"
  maxValue: "[int]Maximum Stamina"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").acquire.set_max_value_by_user_id({
    namespaceName="[string]Namespace name",
    staminaName="[string]Stamina Model Name",
    userId="[string]User ID",
    maxValue="[int]Maximum Stamina",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:SetRecoverIntervalByUserId

Update stamina recovery interval (minutes) by User ID

Sets the stamina recovery interval to the specified value in minutes. The old stamina state is preserved in the response for audit purposes. Controls how frequently the stamina recovers automatically.

Quantity specification supported: YES

Reversible action: NO

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
recoverIntervalMinutesint
1 ~ 2147483646Stamina recovery interval (minutes)
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:SetRecoverIntervalByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "staminaName": "[string]Stamina Model Name",
        "userId": "[string]User ID",
        "recoverIntervalMinutes": "[int]Stamina recovery interval (minutes)",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:SetRecoverIntervalByUserId
request:
  namespaceName: "[string]Namespace name"
  staminaName: "[string]Stamina Model Name"
  userId: "[string]User ID"
  recoverIntervalMinutes: "[int]Stamina recovery interval (minutes)"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").acquire.set_recover_interval_by_user_id({
    namespaceName="[string]Namespace name",
    staminaName="[string]Stamina Model Name",
    userId="[string]User ID",
    recoverIntervalMinutes="[int]Stamina recovery interval (minutes)",
    timeOffsetToken="[string]Time offset token",
})

Gs2Stamina:SetRecoverValueByUserId

Set the amount of stamina recovery by specifying the user ID

Sets the stamina recovery amount to the specified value. The old stamina state is preserved in the response for audit purposes. Controls how much stamina is recovered per recovery interval.

Quantity specification supported: YES

Reversible action: NO

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Unique Namespace name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
staminaNamestring
~ 128 charsStamina Model Name
The name of the StaminaModel that defines the recovery parameters, capacity, and table references for this stamina instance.
This links the per-user stamina state to its corresponding model definition.
userIdstring
~ 128 charsUser ID
Specify #{userId} to substitute the currently logged-in user’s ID.
recoverValueint
1 ~ 2147483646Amount of stamina recovery
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Stamina:SetRecoverValueByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "staminaName": "[string]Stamina Model Name",
        "userId": "[string]User ID",
        "recoverValue": "[int]Amount of stamina recovery",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Stamina:SetRecoverValueByUserId
request:
  namespaceName: "[string]Namespace name"
  staminaName: "[string]Stamina Model Name"
  userId: "[string]User ID"
  recoverValue: "[int]Amount of stamina recovery"
  timeOffsetToken: "[string]Time offset token"
transaction.service("stamina").acquire.set_recover_value_by_user_id({
    namespaceName="[string]Namespace name",
    staminaName="[string]Stamina Model Name",
    userId="[string]User ID",
    recoverValue="[int]Amount of stamina recovery",
    timeOffsetToken="[string]Time offset token",
})