> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Mission Script Trigger Reference

Reference for event triggers that call extended scripts



## Trigger

### missionComplete

Mission accomplishment

**Related methods:**
receiveByUserId - Receive rewards for mission accomplishment


#### Synchronous Execution Script

The script is executed synchronously before the mission accomplishment process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| missionGroupModel | [MissionGroupModel](../sdk/#missiongroupmodel) | Mission Group |
| oldComplete | [Complete](../sdk/#complete) | Completion Status before completion |
| newComplete | [Complete](../sdk/#complete) | Completion Status after completion |
| completeTaskNames | [] | List of completed task names |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow mission accomplishment |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local missionGroupModel = args.missionGroupModel
local oldComplete = args.oldComplete
local newComplete = args.newComplete
local completeTaskNames = args.completeTaskNames

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the mission accomplishment process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| missionGroupModel | [MissionGroupModel](../sdk/#missiongroupmodel) | Mission Group |
| complete | [Complete](../sdk/#complete) | Completion Status |
| completeTaskNames | [] | List of completed task names |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local missionGroupModel = args.missionGroupModel
local complete = args.complete
local completeTaskNames = args.completeTaskNames

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### counterIncrement

Counter increments

**Related methods:**
increaseCounterByUserId - Increase counter by User ID


#### Synchronous Execution Script

The script is executed synchronously before the counter increments process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| counterModel | [CounterModel](../sdk/#countermodel) | Counter Model |
| oldCounter | [Counter](../sdk/#counter) | Before Counter |
| newCounter | [Counter](../sdk/#counter) | After Counter |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow counter increments |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local counterModel = args.counterModel
local oldCounter = args.oldCounter
local newCounter = args.newCounter

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the counter increments process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| counterModel | [CounterModel](../sdk/#countermodel) | Counter Model |
| counter | [Counter](../sdk/#counter) | Counter |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local counterModel = args.counterModel
local counter = args.counter

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  
### receiveRewards

Receive reward

**Related methods:**
receiveByUserId - Receive rewards for mission accomplishment


#### Synchronous Execution Script

The script is executed synchronously before the receive reward process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| missionGroupModel | [MissionGroupModel](../sdk/#missiongroupmodel) | Mission Group |
| oldComplete | [Complete](../sdk/#complete) | Completion Status before update |
| newComplete | [Complete](../sdk/#complete) | Completion Status after update |
| receiveRewardTaskNames | [] | List of task names to receive rewards |

##### Result

|  | Type | Required | Default | Value Limits | Description |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | Whether to allow receive reward |

##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local missionGroupModel = args.missionGroupModel
local oldComplete = args.oldComplete
local newComplete = args.newComplete
local receiveRewardTaskNames = args.receiveRewardTaskNames

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}
```


#### Asynchronous Execution Script

The script is executed asynchronously after the receive reward process.

##### Request

| | Type | Description |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | Namespace |
| missionGroupModel | [MissionGroupModel](../sdk/#missiongroupmodel) | Mission Group |
| complete | [Complete](../sdk/#complete) | Completion Status |
| receiveRewardTaskNames | [] | List of task names to receive rewards |


##### Implementation Example


**Lua**
```lua

-- Request
local namespace = args.namespace
local missionGroupModel = args.missionGroupModel
local complete = args.complete
local receiveRewardTaskNames = args.receiveRewardTaskNames

-- Asynchronous scripts typically do not affect the API response.
-- These scripts are typically used for logging, analytics, external notifications, and similar purposes.

result = {
}
```


---
  



