GS2-Enchant Transaction Actions

Specification of verify/consume/acquire transaction actions

VerifyAction

Gs2Enchant:VerifyRarityParameterStatusByUserId

Verify rarity parameter by specifying a user ID

Verifies that a rarity parameter status of the specified user meets the specified condition. Three verification types are supported:

  • ‘have’: Verifies that the specified parameter value exists in the status
  • ‘havent’: Verifies that the specified parameter value does not exist in the status
  • ‘count’: Verifies that the number of parameters matches the specified count This can be used as a precondition check before executing other actions.

Supports quantity specification: YES

TypeConditionRequiredDefaultValue LimitsDescription
namespaceNamestring
~ 128 charsNamespace name
Namespace-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
parameterNamestring
~ 128 charsRarity Parameter Model name
The name of the Rarity Parameter Model that defines the drawing conditions for this status. References the model that specifies the maximum parameter count, count lottery weights, and value lottery pool.
userIdstring
~ 128 charsUser ID
Set #{userId} to replace the currently logged in user ID.
propertyIdstring
~ 1024 charsProperty ID of the resource that owns the parameter
Identifies the specific game resource (e.g., a weapon or equipment item) to which these rarity parameters are attached. Typically references a GS2-Inventory item or similar resource via its property ID.
verifyTypeString Enum
enum {
  “havent”,
  “have”,
  “count”
}
Type of verification
DefinitionDescription
“havent”The specified parameter must not be held
“have”The specified parameter must be held
“count”The number of parameters held must be the specified number
parameterValueNamestring{verifyType} in [“havent”, “have”]
✓*
~ 64 charsName
The identifier for this lottery entry. Must be unique within the rarity parameter model’s value pool. When drawn, this name is stored in the resulting Rarity Parameter Value.
* Required if verifyType is “havent”,“have”
parameterCountint{verifyType} in [“count”]
✓*
0 ~ 10Number of parameters to verify
multiplyValueSpecifyingQuantityboolfalseWhether to multiply the value used for verification when specifying the quantity
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Enchant:VerifyRarityParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "parameterName": "[string]Rarity Parameter Model name",
        "userId": "[string]User ID",
        "propertyId": "[string]Property ID of the resource that owns the parameter",
        "verifyType": "[string]Type of verification",
        "parameterValueName": "[string]Name",
        "parameterCount": "[int]Number of parameters to verify",
        "multiplyValueSpecifyingQuantity": "[bool]Whether to multiply the value used for verification when specifying the quantity",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Enchant:VerifyRarityParameterStatusByUserId
request:
  namespaceName: "[string]Namespace name"
  parameterName: "[string]Rarity Parameter Model name"
  userId: "[string]User ID"
  propertyId: "[string]Property ID of the resource that owns the parameter"
  verifyType: "[string]Type of verification"
  parameterValueName: "[string]Name"
  parameterCount: "[int]Number of parameters to verify"
  multiplyValueSpecifyingQuantity: "[bool]Whether to multiply the value used for verification when specifying the quantity"
  timeOffsetToken: "[string]Time offset token"
transaction.service("enchant").verify.verify_rarity_parameter_status_by_user_id({
    namespaceName="[string]Namespace name",
    parameterName="[string]Rarity Parameter Model name",
    userId="[string]User ID",
    propertyId="[string]Property ID of the resource that owns the parameter",
    verifyType="[string]Type of verification",
    parameterValueName="[string]Name",
    parameterCount="[int]Number of parameters to verify",
    multiplyValueSpecifyingQuantity="[bool]Whether to multiply the value used for verification when specifying the quantity",
    timeOffsetToken="[string]Time offset token",
})

AcquireAction

Gs2Enchant:ReDrawBalanceParameterStatusByUserId

Re-draw balance parameter by specifying a user ID

Re-draws the balance parameter values for a specific property, redistributing the total value among the parameters. Specific parameters can be fixed (locked) to prevent them from being re-drawn by specifying their names in fixedParameterNames (up to 10). The total value constraint is maintained: the sum of all parameter values (including fixed ones) always equals the model’s total value. Both the updated and previous parameter states are returned.

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
Set #{userId} to replace the currently logged in user ID.
parameterNamestring
~ 128 charsBalance Parameter Model name
The name of the Balance Parameter Model that defines the drawing conditions for this status. References the model that specifies the total value, allocation strategy, and available parameter slots.
propertyIdstring
~ 1024 charsProperty ID of the resource that owns the parameter
Identifies the specific game resource (e.g., a weapon or equipment item) to which these balance parameters are attached. Typically references a GS2-Inventory item or similar resource via its property ID.
fixedParameterNamesList<string>[]0 ~ 10 itemsList of Parameter index not to re-draw
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Enchant:ReDrawBalanceParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "parameterName": "[string]Balance Parameter Model name",
        "propertyId": "[string]Property ID of the resource that owns the parameter",
        "fixedParameterNames": [
            "[string]Parameter name not to re-draw"
        ],
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Enchant:ReDrawBalanceParameterStatusByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  parameterName: "[string]Balance Parameter Model name"
  propertyId: "[string]Property ID of the resource that owns the parameter"
  fixedParameterNames: 
    - "[string]Parameter name not to re-draw"
  timeOffsetToken: "[string]Time offset token"
transaction.service("enchant").acquire.re_draw_balance_parameter_status_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    parameterName="[string]Balance Parameter Model name",
    propertyId="[string]Property ID of the resource that owns the parameter",
    fixedParameterNames={
        "[string]Parameter name not to re-draw"
    },
    timeOffsetToken="[string]Time offset token",
})

Gs2Enchant:SetBalanceParameterStatusByUserId

Set any value to Balance Parameter Status by specifying a user ID

Directly sets parameter values for a specific property of the specified user, bypassing the normal draw/re-draw mechanism. This is an administrative operation that allows arbitrary parameter values to be assigned. Both the updated and previous parameter states are returned.

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
Set #{userId} to replace the currently logged in user ID.
parameterNamestring
~ 128 charsBalance Parameter Model name
The name of the Balance Parameter Model that defines the drawing conditions for this status. References the model that specifies the total value, allocation strategy, and available parameter slots.
propertyIdstring
~ 1024 charsProperty ID of the resource that owns the parameter
Identifies the specific game resource (e.g., a weapon or equipment item) to which these balance parameters are attached. Typically references a GS2-Inventory item or similar resource via its property ID.
parameterValuesList<BalanceParameterValue>
1 ~ 10 itemsList of balance parameter values
The concrete values assigned to each parameter slot after the drawing process. Each entry corresponds to a parameter slot defined in the model and contains the actual numeric value allocated. The sum of all values equals the total value specified in the model.
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Enchant:SetBalanceParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "parameterName": "[string]Balance Parameter Model name",
        "propertyId": "[string]Property ID of the resource that owns the parameter",
        "parameterValues": [
            {
                "name": "[string]Name",
                "value": "[long]Value"
            }
        ],
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Enchant:SetBalanceParameterStatusByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  parameterName: "[string]Balance Parameter Model name"
  propertyId: "[string]Property ID of the resource that owns the parameter"
  parameterValues: 
    - name: "[string]Name"
      value: "[long]Value"
  timeOffsetToken: "[string]Time offset token"
transaction.service("enchant").acquire.set_balance_parameter_status_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    parameterName="[string]Balance Parameter Model name",
    propertyId="[string]Property ID of the resource that owns the parameter",
    parameterValues={
        {
            name="[string]Name",
            value="[long]Value"
        }
    },
    timeOffsetToken="[string]Time offset token",
})

Gs2Enchant:ReDrawRarityParameterStatusByUserId

Re-draw Rarity Parameter Status by specifying a user ID

Re-draws the rarity parameter values for a specific property, randomly assigning new values based on the rarity weights. Specific parameters can be fixed (locked) to prevent them from being re-drawn by specifying their names in fixedParameterNames (up to 10). Fixed parameters retain their current values while unfixed parameters are re-drawn. Both the updated and previous parameter states are returned.

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
Set #{userId} to replace the currently logged in user ID.
parameterNamestring
~ 128 charsRarity Parameter Model name
The name of the Rarity Parameter Model that defines the drawing conditions for this status. References the model that specifies the maximum parameter count, count lottery weights, and value lottery pool.
propertyIdstring
~ 1024 charsProperty ID of the resource that owns the parameter
Identifies the specific game resource (e.g., a weapon or equipment item) to which these rarity parameters are attached. Typically references a GS2-Inventory item or similar resource via its property ID.
fixedParameterNamesList<string>0 ~ 10 itemsList of Parameter index not to re-draw
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Enchant:ReDrawRarityParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "parameterName": "[string]Rarity Parameter Model name",
        "propertyId": "[string]Property ID of the resource that owns the parameter",
        "fixedParameterNames": [
            "[string]Parameter name not to re-draw"
        ],
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Enchant:ReDrawRarityParameterStatusByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  parameterName: "[string]Rarity Parameter Model name"
  propertyId: "[string]Property ID of the resource that owns the parameter"
  fixedParameterNames: 
    - "[string]Parameter name not to re-draw"
  timeOffsetToken: "[string]Time offset token"
transaction.service("enchant").acquire.re_draw_rarity_parameter_status_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    parameterName="[string]Rarity Parameter Model name",
    propertyId="[string]Property ID of the resource that owns the parameter",
    fixedParameterNames={
        "[string]Parameter name not to re-draw"
    },
    timeOffsetToken="[string]Time offset token",
})

Gs2Enchant:AddRarityParameterStatusByUserId

Add Rarity Parameter to status by specifying a user ID

Adds new parameter slots to an existing rarity parameter status by randomly drawing values based on the rarity weights. The count specifies how many parameter slots to add (1 to 10), up to the model’s maximum parameter count. Both the updated and previous parameter states are returned.

Supports quantity specification: YES

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.
parameterNamestring
~ 128 charsRarity Parameter Model name
The name of the Rarity Parameter Model that defines the drawing conditions for this status. References the model that specifies the maximum parameter count, count lottery weights, and value lottery pool.
propertyIdstring
~ 1024 charsProperty ID of the resource that owns the parameter
Identifies the specific game resource (e.g., a weapon or equipment item) to which these rarity parameters are attached. Typically references a GS2-Inventory item or similar resource via its property ID.
countint11 ~ 10Number of parameters to add
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Enchant:AddRarityParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "parameterName": "[string]Rarity Parameter Model name",
        "propertyId": "[string]Property ID of the resource that owns the parameter",
        "count": "[int]Number of parameters to add",
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Enchant:AddRarityParameterStatusByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  parameterName: "[string]Rarity Parameter Model name"
  propertyId: "[string]Property ID of the resource that owns the parameter"
  count: "[int]Number of parameters to add"
  timeOffsetToken: "[string]Time offset token"
transaction.service("enchant").acquire.add_rarity_parameter_status_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    parameterName="[string]Rarity Parameter Model name",
    propertyId="[string]Property ID of the resource that owns the parameter",
    count="[int]Number of parameters to add",
    timeOffsetToken="[string]Time offset token",
})

Gs2Enchant:SetRarityParameterStatusByUserId

Set any value to rarity parameter by specifying a user ID

Directly sets parameter values for a specific property of the specified user, bypassing the normal draw/re-draw mechanism. This is an administrative operation that allows arbitrary parameter values to be assigned regardless of rarity weights. Both the updated and previous parameter states are returned.

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
Set #{userId} to replace the currently logged in user ID.
parameterNamestring
~ 128 charsRarity Parameter Model name
The name of the Rarity Parameter Model that defines the drawing conditions for this status. References the model that specifies the maximum parameter count, count lottery weights, and value lottery pool.
propertyIdstring
~ 1024 charsProperty ID of the resource that owns the parameter
Identifies the specific game resource (e.g., a weapon or equipment item) to which these rarity parameters are attached. Typically references a GS2-Inventory item or similar resource via its property ID.
parameterValuesList<RarityParameterValue>0 ~ 10 itemsList of rarity parameter values
The concrete parameter values selected through weighted lottery for each granted slot. The number of entries is determined by the parameter count draw, and each entry’s value is selected from the value model pool. May contain fewer entries than the maximum parameter count.
timeOffsetTokenstring~ 1024 charsTime offset token
{
    "action": "Gs2Enchant:SetRarityParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]Namespace name",
        "userId": "[string]User ID",
        "parameterName": "[string]Rarity Parameter Model name",
        "propertyId": "[string]Property ID of the resource that owns the parameter",
        "parameterValues": [
            {
                "name": "[string]Name",
                "resourceName": "[string]Resource Name",
                "resourceValue": "[long]Resource Value"
            }
        ],
        "timeOffsetToken": "[string]Time offset token"
    }
}
action: Gs2Enchant:SetRarityParameterStatusByUserId
request:
  namespaceName: "[string]Namespace name"
  userId: "[string]User ID"
  parameterName: "[string]Rarity Parameter Model name"
  propertyId: "[string]Property ID of the resource that owns the parameter"
  parameterValues: 
    - name: "[string]Name"
      resourceName: "[string]Resource Name"
      resourceValue: "[long]Resource Value"
  timeOffsetToken: "[string]Time offset token"
transaction.service("enchant").acquire.set_rarity_parameter_status_by_user_id({
    namespaceName="[string]Namespace name",
    userId="[string]User ID",
    parameterName="[string]Rarity Parameter Model name",
    propertyId="[string]Property ID of the resource that owns the parameter",
    parameterValues={
        {
            name="[string]Name",
            resourceName="[string]Resource Name",
            resourceValue="[long]Resource Value"
        }
    },
    timeOffsetToken="[string]Time offset token",
})