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.

Models

Target model types available for buff application

Gs2Exchange:RateModel

Exchange Rate Model

Target fields for buff application

lockTime
Type Condition Required Default Value Limits Description
lockTime int {timingType} == “await”
✓*
0 ~ 538214400 Waiting 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
Type Condition Required Default Value Limits Description
acquireActions List<AcquireAction> [] 0 ~ 100 items List 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
Type Condition Required Default Value Limits Description
verifyActions List<VerifyAction> [] 0 ~ 10 items List 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
Type Condition Required Default Value Limits Description
consumeActions List<ConsumeAction> [] 0 ~ 10 items List 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
Type Condition Required Default Value Limits Description
acquireActions List<AcquireAction> [] 0 ~ 100 items List 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
Type Condition Required Default Value Limits Description
consumeAction ConsumeAction
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
Type Condition Required Default Value Limits Description
maximumExchangeCount int 2147483646 0 ~ 2147483646 Maximum 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}"
    }
]