GS2-Mission Script Trigger Reference

Reference of event triggers that call extended scripts

Trigger

missionComplete

Mission accomplishment

Synchronous Execution Script

The script is executed synchronously before the mission accomplishment process.

Request
TypeDescription
namespaceNamespaceNamespace
missionGroupModelMissionGroupModelMission Group
oldCompleteCompleteCompletion Status before completion
newCompleteCompleteCompletion Status after completion
completeTaskNames[]List of completed task names
Result
TypeRequiredDefaultValue LimitsDescription
permitbool
Whether to allow mission accomplishment
Implementation Example
-- 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
TypeDescription
namespaceNamespaceNamespace
missionGroupModelMissionGroupModelMission Group
completeCompleteCompletion Status
completeTaskNames[]List of completed task names
Implementation Example
-- 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.
-- Use for logging, analytics, external notifications, etc.

result = {
}

counterIncrement

Counter increments

Synchronous Execution Script

The script is executed synchronously before the counter increments process.

Request
TypeDescription
namespaceNamespaceNamespace
counterModelCounterModelCounter Model
oldCounterCounterBefore Counter
newCounterCounterAfter Counter
Result
TypeRequiredDefaultValue LimitsDescription
permitbool
Whether to allow counter increments
Implementation Example
-- 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
TypeDescription
namespaceNamespaceNamespace
counterModelCounterModelCounter Model
counterCounterCounter
Implementation Example
-- Request
local namespace = args.namespace
local counterModel = args.counterModel
local counter = args.counter

-- Asynchronous scripts typically do not affect the API response.
-- Use for logging, analytics, external notifications, etc.

result = {
}

receiveRewards

Receive reward

Synchronous Execution Script

The script is executed synchronously before the receive reward process.

Request
TypeDescription
namespaceNamespaceNamespace
missionGroupModelMissionGroupModelMission Group
oldCompleteCompleteCompletion Status before update
newCompleteCompleteCompletion Status after update
receiveRewardTaskNames[]List of task names to receive rewards
Result
TypeRequiredDefaultValue LimitsDescription
permitbool
Whether to allow receive reward
Implementation Example
-- 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
TypeDescription
namespaceNamespaceNamespace
missionGroupModelMissionGroupModelMission Group
completeCompleteCompletion Status
receiveRewardTaskNames[]List of task names to receive rewards
Implementation Example
-- 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.
-- Use for logging, analytics, external notifications, etc.

result = {
}