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

# GS2-Quest 스크립트 트리거 레퍼런스

확장 스크립트를 호출하는 이벤트 트리거의 레퍼런스



## 트리거

### startQuest



**관련 메서드:**
start - 퀘스트 시작
startByUserId - 사용자 ID를 지정하여 퀘스트 시작


#### 동기 실행 스크립트

 처리 전에, 스크립트가 동기 실행됩니다.

##### Request

| | 타입 | 설명 |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | 네임스페이스 |
| questGroupModel | [QuestGroupModel](../sdk/#questgroupmodel) | 퀘스트 그룹 모델 |
| questModel | [QuestModel](../sdk/#questmodel) | 퀘스트 모델 |
| randomSeed | long | 난수 시드 |
| rewards | [Reward[]](../sdk/#reward) | 퀘스트로 얻을 수 있는 보상 리스트 |
| userId | string | 사용자ID |
| config | [Config[]](../sdk/#config) | 트랜잭션 변수에 적용할 설정값 |

##### Result

|  | 타입 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | 퀘스트 시작을 허용할지 여부 |
| overrideRandomSeed | long |  |  | 0 ~ 9223372036854775805 | 난수 시드 |
| overrideRewards | Reward[] |  |  | 0 ~ 1000 items | 퀘스트로 얻을 수 있는 보상 리스트 |

##### 구현 예제


**Lua**
```lua

-- Request
local namespace = args.namespace
local questGroupModel = args.questGroupModel
local questModel = args.questModel
local randomSeed = args.randomSeed
local rewards = args.rewards
local userId = args.userId
local config = args.config

-- Business logic:
local permit = true
local overrideRandomSeed = 0
local overrideRewards = {}

-- Result
result = {
  permit=permit,
  overrideRandomSeed=overrideRandomSeed,
  overrideRewards=overrideRewards
}
```


#### 비동기 실행 스크립트

 처리 후에, 스크립트가 비동기 실행됩니다.

##### Request

| | 타입 | 설명 |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | 네임스페이스 |
| questGroupModel | [QuestGroupModel](../sdk/#questgroupmodel) | 퀘스트 그룹 모델 |
| questModel | [QuestModel](../sdk/#questmodel) | 퀘스트 모델 |
| progress | [Progress](../sdk/#progress) | 퀘스트 진행 상황 |
| config | [Config[]](../sdk/#config) | 트랜잭션 변수에 적용할 설정값 |


##### 구현 예제


**Lua**
```lua

-- Request
local namespace = args.namespace
local questGroupModel = args.questGroupModel
local questModel = args.questModel
local progress = args.progress
local config = args.config

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}
```


---
  
### completeQuest



**관련 메서드:**
end - 퀘스트 완료
endByUserId - 사용자 ID를 지정하여 퀘스트 완료


#### 동기 실행 스크립트

 처리 전에, 스크립트가 동기 실행됩니다.

##### Request

| | 타입 | 설명 |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | 네임스페이스 |
| questGroupModel | [QuestGroupModel](../sdk/#questgroupmodel) | 퀘스트 그룹 모델 |
| questModel | [QuestModel](../sdk/#questmodel) | 퀘스트 모델 |
| rewards | [Reward[]](../sdk/#reward) | 퀘스트로 얻은 보상 리스트 |
| progress | [Progress](../sdk/#progress) | 퀘스트 진행 상황 |
| config | [Config[]](../sdk/#config) | 트랜잭션 변수에 적용할 설정값 |

##### Result

|  | 타입 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | 퀘스트 클리어를 허용할지 여부 |
| overrideRewards | Reward[] |  |  | 0 ~ 1000 items | 퀘스트로 얻을 수 있는 보상 리스트 |

##### 구현 예제


**Lua**
```lua

-- Request
local namespace = args.namespace
local questGroupModel = args.questGroupModel
local questModel = args.questModel
local rewards = args.rewards
local progress = args.progress
local config = args.config

-- Business logic:
local permit = true
local overrideRewards = {}

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


#### 비동기 실행 스크립트

 처리 후에, 스크립트가 비동기 실행됩니다.

##### Request

| | 타입 | 설명 |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | 네임스페이스 |
| questGroupModel | [QuestGroupModel](../sdk/#questgroupmodel) | 퀘스트 그룹 모델 |
| questModel | [QuestModel](../sdk/#questmodel) | 퀘스트 모델 |
| rewards | [Reward[]](../sdk/#reward) | 퀘스트로 얻은 보상 리스트 |
| progress | [Progress](../sdk/#progress) | 퀘스트 진행 상황 |
| config | [Config[]](../sdk/#config) | 트랜잭션 변수에 적용할 설정값 |


##### 구현 예제


**Lua**
```lua

-- Request
local namespace = args.namespace
local questGroupModel = args.questGroupModel
local questModel = args.questModel
local rewards = args.rewards
local progress = args.progress
local config = args.config

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}
```


---
  
### failedQuest



**관련 메서드:**
end - 퀘스트 완료
endByUserId - 사용자 ID를 지정하여 퀘스트 완료


#### 동기 실행 스크립트

 처리 전에, 스크립트가 동기 실행됩니다.

##### Request

| | 타입 | 설명 |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | 네임스페이스 |
| questGroupModel | [QuestGroupModel](../sdk/#questgroupmodel) | 퀘스트 그룹 모델 |
| questModel | [QuestModel](../sdk/#questmodel) | 퀘스트 모델 |
| rewards | [Reward[]](../sdk/#reward) | 퀘스트로 얻은 보상 리스트 |
| progress | [Progress](../sdk/#progress) | 퀘스트 진행 상황 |
| config | [Config[]](../sdk/#config) | 트랜잭션 변수에 적용할 설정값 |

##### Result

|  | 타입 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | 퀘스트 실패를 허용할지 여부 |
| overrideRewards | Reward[] |  |  | 0 ~ 1000 items | 퀘스트로 얻을 수 있는 보상 리스트 |

##### 구현 예제


**Lua**
```lua

-- Request
local namespace = args.namespace
local questGroupModel = args.questGroupModel
local questModel = args.questModel
local rewards = args.rewards
local progress = args.progress
local config = args.config

-- Business logic:
local permit = true
local overrideRewards = {}

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


#### 비동기 실행 스크립트

 처리 후에, 스크립트가 비동기 실행됩니다.

##### Request

| | 타입 | 설명 |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | 네임스페이스 |
| questGroupModel | [QuestGroupModel](../sdk/#questgroupmodel) | 퀘스트 그룹 모델 |
| questModel | [QuestModel](../sdk/#questmodel) | 퀘스트 모델 |
| rewards | [Reward[]](../sdk/#reward) | 퀘스트로 얻은 보상 리스트 |
| progress | [Progress](../sdk/#progress) | 퀘스트 진행 상황 |
| config | [Config[]](../sdk/#config) | 트랜잭션 변수에 적용할 설정값 |


##### 구현 예제


**Lua**
```lua

-- Request
local namespace = args.namespace
local questGroupModel = args.questGroupModel
local questModel = args.questModel
local rewards = args.rewards
local progress = args.progress
local config = args.config

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}
```


---
  



