GS2-Exchange Buff Reference

Describes the fields within models/actions whose parameters can be adjusted when applying buffs with GS2-Buff, and how to configure the scope in which those buffs are applied.

Model

Target model types available for buff application

Gs2Exchange:RateModel

Exchange Rate Model

Target fields for buff application

lockTime
TypeConditionRequiredDefaultValue LimitsDescription
lockTimeint{timingType} == “await”
✓*
0 ~ 538214400Waiting time (minutes) from the execution of the exchange until the reward is actually received
Only applicable when timingType is await. Specifies the number of minutes that must elapse in real time after the exchange is initiated before the player can claim the rewards. The waiting time can be shortened by using the skip mechanism.
* Required if timingType is “await”
Example Master Data

rate specifies the multiplier applied to the target field.

"targetModel": {
    "targetModelName": "Gs2Exchange:RateModel",
    "targetFieldName": "lockTime",
    "conditionGrns": [
    ],
    "rate": 1.0
}

Buff Application Condition Model

Gs2Exchange:Namespace

Namespace

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:Namespace",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}"
    }
]
Gs2Exchange:RateModel

Exchange Rate Model

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:RateModel",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}:model:{rateName}"
    }
]

acquireActions
TypeConditionRequiredDefaultValue LimitsDescription
acquireActionsList<AcquireAction>[]0 ~ 100 itemsList of Acquire Actions
Defines the resources (rewards) that the player receives upon completing the exchange. Multiple acquire actions can be specified to grant various resource types simultaneously. These actions are executed as acquire actions within a distributed transaction.
Example Master Data

rate specifies the multiplier applied to the target field.

"targetModel": {
    "targetModelName": "Gs2Exchange:RateModel",
    "targetFieldName": "acquireActions",
    "conditionGrns": [
    ],
    "rate": 1.0
}

Buff Application Condition Model

Gs2Exchange:Namespace

Namespace

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:Namespace",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}"
    }
]
Gs2Exchange:RateModel

Exchange Rate Model

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:RateModel",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}:model:{rateName}"
    }
]

verifyActions
TypeConditionRequiredDefaultValue LimitsDescription
verifyActionsList<VerifyAction>[]0 ~ 10 itemsList of Verify Actions
Precondition checks that must all pass before the exchange is executed. If any verify action fails, the exchange is aborted without consuming resources. Used to enforce conditions such as level requirements or inventory capacity.
Example Master Data

rate specifies the multiplier applied to the target field.

"targetModel": {
    "targetModelName": "Gs2Exchange:RateModel",
    "targetFieldName": "verifyActions",
    "conditionGrns": [
    ],
    "rate": 1.0
}

Buff Application Condition Model

Gs2Exchange:Namespace

Namespace

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:Namespace",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}"
    }
]
Gs2Exchange:RateModel

Exchange Rate Model

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:RateModel",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}:model:{rateName}"
    }
]

consumeActions
TypeConditionRequiredDefaultValue LimitsDescription
consumeActionsList<ConsumeAction>[]0 ~ 10 itemsList of Consume Actions
Defines the resources (cost) that the player must pay to perform this exchange. Multiple consume actions can be specified, allowing complex exchange costs such as requiring both gold and items. These actions are executed as consume actions within a distributed transaction.
Example Master Data

rate specifies the multiplier applied to the target field.

"targetModel": {
    "targetModelName": "Gs2Exchange:RateModel",
    "targetFieldName": "consumeActions",
    "conditionGrns": [
    ],
    "rate": 1.0
}

Buff Application Condition Model

Gs2Exchange:Namespace

Namespace

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:Namespace",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}"
    }
]
Gs2Exchange:RateModel

Exchange Rate Model

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:RateModel",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}:model:{rateName}"
    }
]

Gs2Exchange:IncrementalRateModel

Incremental Cost Exchange Rate Model

Target fields for buff application

acquireActions
TypeConditionRequiredDefaultValue LimitsDescription
acquireActionsList<AcquireAction>[]0 ~ 100 itemsList of Acquire Actions
Defines the resources (rewards) that the player receives upon completing the incremental exchange. The rewards remain constant regardless of the exchange count; only the cost increases with each exchange.
Example Master Data

rate specifies the multiplier applied to the target field.

"targetModel": {
    "targetModelName": "Gs2Exchange:IncrementalRateModel",
    "targetFieldName": "acquireActions",
    "conditionGrns": [
    ],
    "rate": 1.0
}

Buff Application Condition Model

Gs2Exchange:Namespace

Namespace

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:Namespace",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}"
    }
]
Gs2Exchange:IncrementalRateModel

Incremental Cost Exchange Rate Model

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:IncrementalRateModel",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}:incremental:model:{rateName}"
    }
]

consumeAction
TypeConditionRequiredDefaultValue LimitsDescription
consumeActionConsumeAction
Consume Action (Quantity and Value are overwritten automatically)
Defines the type of resource consumed as cost for the exchange. The actual quantity is calculated dynamically based on the exchange count and the calculation type (linear, power, or script). Only the action type and target resource need to be specified; the quantity field is overwritten automatically.
Example Master Data

rate specifies the multiplier applied to the target field.

"targetModel": {
    "targetModelName": "Gs2Exchange:IncrementalRateModel",
    "targetFieldName": "consumeAction",
    "conditionGrns": [
    ],
    "rate": 1.0
}

Buff Application Condition Model

Gs2Exchange:Namespace

Namespace

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:Namespace",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}"
    }
]
Gs2Exchange:IncrementalRateModel

Incremental Cost Exchange Rate Model

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:IncrementalRateModel",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}:incremental:model:{rateName}"
    }
]

maximumExchangeCount
TypeConditionRequiredDefaultValue LimitsDescription
maximumExchangeCountint21474836460 ~ 2147483646Maximum number of exchanges
The maximum number of times this incremental exchange can be performed by a user. Once the exchange count reaches this limit, further exchanges are denied until the count is reset via GS2-Limit.
Example Master Data

rate specifies the multiplier applied to the target field.

"targetModel": {
    "targetModelName": "Gs2Exchange:IncrementalRateModel",
    "targetFieldName": "maximumExchangeCount",
    "conditionGrns": [
    ],
    "rate": 1.0
}

Buff Application Condition Model

Gs2Exchange:Namespace

Namespace

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:Namespace",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}"
    }
]
Gs2Exchange:IncrementalRateModel

Incremental Cost Exchange Rate Model

Example Master Data
"conditionGrns": [
    {
        "targetModelName": "Gs2Exchange:IncrementalRateModel",
        "targetGrn": "grn:gs2:any:any:exchange:{namespaceName}:incremental:model:{rateName}"
    }
]