GS2-Experience Script Trigger Reference

Reference for event triggers that call extended scripts

Trigger

rankCapScript

Rank cap acquisition

Synchronous Execution Script

The script is executed synchronously before the rank cap acquisition process.

Request
Type Description
namespace Namespace Namespace
experienceModel ExperienceModel Experience Model
userId string User ID
propertyId string Property ID
A developer-defined identifier that uniquely identifies this status within the user’s scope. It is recommended to use a value that appends an experience model suffix to the GS2-Inventory Item Set GRN or GS2-Dictionary Entry GRN that possesses the experience.
Result
Type Required Default Value Limits Description
rankCap long
✓
0 ~ 2147483645 Rank Cap
Implementation Example
-- Request
local namespace = args.namespace
local experienceModel = args.experienceModel
local userId = args.userId
local propertyId = args.propertyId

-- Business logic:
local rankCap = 0

-- Result
result = {
  rankCap=rankCap
}

changeExperience

experience value changes

Synchronous Execution Script

The script is executed synchronously before the experience value changes process.

Request
Type Description
namespace Namespace Namespace
experienceModel ExperienceModel Experience Model
status Status Status before change
afterStatus Status Status after change
Result
Type Required Default Value Limits Description
permit bool
✓
Whether to allow experience value changes
overrideExperienceValue long
✓
0 ~ 2147483645 Overriding experience value
Implementation Example
-- Request
local namespace = args.namespace
local experienceModel = args.experienceModel
local status = args.status
local afterStatus = args.afterStatus

-- Business logic:
local permit = true
local overrideExperienceValue = 0

-- Result
result = {
  permit=permit,
  overrideExperienceValue=overrideExperienceValue
}

Asynchronous Execution Script

The script is executed asynchronously after the experience value changes process.

Request
Type Description
namespace Namespace Namespace
experienceModel ExperienceModel Experience Model
oldStatus Status Status before change
status Status Status
Implementation Example
-- Request
local namespace = args.namespace
local experienceModel = args.experienceModel
local oldStatus = args.oldStatus
local status = args.status

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

result = {
}

changeRank

Rank changes

Synchronous Execution Script

The script is executed synchronously before the rank changes process.

Request
Type Description
namespace Namespace Namespace
experienceModel ExperienceModel Experience Model
status Status Status before change
afterStatus Status Status after change
Result
Type Required Default Value Limits Description
permit bool
✓
Whether to allow rank changes
Implementation Example
-- Request
local namespace = args.namespace
local experienceModel = args.experienceModel
local status = args.status
local afterStatus = args.afterStatus

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}

Asynchronous Execution Script

The script is executed asynchronously after the rank changes process.

Request
Type Description
namespace Namespace Namespace
experienceModel ExperienceModel Experience Model
oldStatus Status Status before change
status Status Status
Implementation Example
-- Request
local namespace = args.namespace
local experienceModel = args.experienceModel
local oldStatus = args.oldStatus
local status = args.status

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

result = {
}

changeRankCap

Rank cap changes

Synchronous Execution Script

The script is executed synchronously before the rank cap changes process.

Request
Type Description
namespace Namespace Namespace
experienceModel ExperienceModel Experience Model
status Status Status before change
afterStatus Status Status after change
Result
Type Required Default Value Limits Description
permit bool
✓
Whether to allow rank cap change
overrideRankCapValue long
✓
0 ~ 2147483645 New rank cap
Implementation Example
-- Request
local namespace = args.namespace
local experienceModel = args.experienceModel
local status = args.status
local afterStatus = args.afterStatus

-- Business logic:
local permit = true
local overrideRankCapValue = 0

-- Result
result = {
  permit=permit,
  overrideRankCapValue=overrideRankCapValue
}

Asynchronous Execution Script

The script is executed asynchronously after the rank cap changes process.

Request
Type Description
namespace Namespace Namespace
experienceModel ExperienceModel Experience Model
status Status Status
Implementation Example
-- Request
local namespace = args.namespace
local experienceModel = args.experienceModel
local status = args.status

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

result = {
}

overflowExperience

Experience overflow

Synchronous Execution Script

The script is executed synchronously before the experience overflow process.

Request
Type Description
namespace Namespace Namespace
experienceModel ExperienceModel Experience Model
status Status Status
overflowExperienceValue long Experience overflow value
Result
Type Required Default Value Limits Description
permit bool
✓
Whether to allow experience overflow
Implementation Example
-- Request
local namespace = args.namespace
local experienceModel = args.experienceModel
local status = args.status
local overflowExperienceValue = args.overflowExperienceValue

-- Business logic:
local permit = true

-- Result
result = {
  permit=permit
}