GS2-Quest Script Trigger Reference

Reference for event triggers that call extended scripts

Trigger

startQuest

Quest start

Synchronous Execution Script

The script is executed synchronously before the quest start process.

Request
Type Description
namespace Namespace Namespace
questGroupModel QuestGroupModel Quest Group Model
questModel QuestModel Quest Model
randomSeed long random number seed
rewards Reward[] List of rewards earned from quests
userId string User ID
config Config[] Configuration values applied to transaction variables
Result
Type Required Default Value Limits Description
permit bool
Whether to allow the quest to begin
overrideRandomSeed long 0 ~ 9223372036854775805 Random number seed
overrideRewards Reward[] 0 ~ 1000 items List of rewards earned from quests
Implementation Example
-- 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
}

Asynchronous Execution Script

The script is executed asynchronously after the quest start process.

Request
Type Description
namespace Namespace Namespace
questGroupModel QuestGroupModel Quest Group Model
questModel QuestModel Quest Model
progress Progress Quest Progress
config Config[] Configuration values applied to transaction variables
Implementation Example
-- Request
local namespace = args.namespace
local questGroupModel = args.questGroupModel
local questModel = args.questModel
local progress = args.progress
local config = args.config

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

result = {
}

completeQuest

Quest cleared

Synchronous Execution Script

The script is executed synchronously before the quest cleared process.

Request
Type Description
namespace Namespace Namespace
questGroupModel QuestGroupModel Quest Group Model
questModel QuestModel Quest Model
rewards Reward[] List of rewards obtained from quests
progress Progress Quest Progress
config Config[] Configuration values applied to transaction variables
Result
Type Required Default Value Limits Description
permit bool
Whether to allow quests to be cleared
overrideRewards Reward[] 0 ~ 1000 items List of rewards earned from quests
Implementation Example
-- 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
}

Asynchronous Execution Script

The script is executed asynchronously after the quest cleared process.

Request
Type Description
namespace Namespace Namespace
questGroupModel QuestGroupModel Quest Group Model
questModel QuestModel Quest Model
rewards Reward[] List of rewards obtained from quests
progress Progress Quest Progress
config Config[] Configuration values applied to transaction variables
Implementation Example
-- 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

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

result = {
}

failedQuest

Quest to fail

Synchronous Execution Script

The script is executed synchronously before the quest to fail process.

Request
Type Description
namespace Namespace Namespace
questGroupModel QuestGroupModel Quest Group Model
questModel QuestModel Quest Model
rewards Reward[] List of rewards obtained from quests
progress Progress Quest Progress
config Config[] Configuration values applied to transaction variables
Result
Type Required Default Value Limits Description
permit bool
Whether to allow the quest to fail
overrideRewards Reward[] 0 ~ 1000 items List of rewards earned from quests
Implementation Example
-- 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
}

Asynchronous Execution Script

The script is executed asynchronously after the quest to fail process.

Request
Type Description
namespace Namespace Namespace
questGroupModel QuestGroupModel Quest Group Model
questModel QuestModel Quest Model
rewards Reward[] List of rewards obtained from quests
progress Progress Quest Progress
config Config[] Configuration values applied to transaction variables
Implementation Example
-- 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

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

result = {
}