GS2-Grade Master Data Reference
Master Data Format
{
"version": "2023-12-25",
"gradeModels": [
{
"name": "[string]Grade Model name",
"metadata": "[string?]Metadata",
"defaultGrades": [
{
"propertyIdRegex": "[string]Property ID Regex",
"defaultGradeValue": "[long]Default Grade Value"
}
],
"experienceModelId": "[string]GS2-Experience Experience Model GRN",
"gradeEntries": [
{
"metadata": "[string?]Metadata",
"rankCapValue": "[long]Rank Cap Value",
"propertyIdRegex": "[string]Property ID Regex",
"gradeUpPropertyIdRegex": "[string]Grade-Up Property ID Regex"
}
],
"acquireActionRates": [
{
"name": "[string]Reward Addition Table Name",
"mode": "[string]Reward Addition Table Type",
"rates": [
"[double]Multiplier Value"
],
"bigRates": [
"[string]Multiplier Value (big number)"
]
}
]
}
]
}| Type | Condition | Required | Default | Value Limits | Description | |
|---|---|---|---|---|---|---|
| version | string | ✓ | 2023-12-25 | Format version of master data | ||
| gradeModels | List<GradeModel> | ~ 100 items | Grade Model A Grade Model is an entity that indicates the rank of characters and equipment, and allows you to set the rank cap for GS2-Experience based on the grade. |
Model
GradeModel
Grade Model
A Grade Model is an entity that indicates the rank of characters and equipment, and allows you to set the rank cap for GS2-Experience based on the grade.
| Type | Condition | Required | Default | Value Limits | Description | |
|---|---|---|---|---|---|---|
| gradeModelId | string | * | ~ 1024 chars | Grade Model GRN * Set automatically by the server | ||
| name | string | ✓ | ~ 128 chars | Grade Model name Grade Model-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.). | ||
| metadata | string | ~ 2048 chars | Metadata Arbitrary values can be set in the metadata. Since they do not affect GS2’s behavior, they can be used to store information used in the game. | |||
| defaultGrades | List<DefaultGradeModel> | 0 ~ 100 items | List of Default Grade Models An ordered list of default grade rules evaluated when creating a new status. Each entry defines a property ID regex pattern and the grade value to assign when matched. If no pattern matches, the default grade value of 0 is used. | |||
| experienceModelId | string | ✓ | ~ 1024 chars | GS2-Experience Experience Model GRN The GRN of the GS2-Experience experience model to link with this grade model. When a grade value changes, the corresponding rank cap in the linked experience model is automatically updated based on the grade entry mappings. This enables grade-driven progression where higher grades unlock higher rank caps. | ||
| gradeEntries | List<GradeEntryModel> | ✓ | 1 ~ 100 items | List of Grade Entry Models The ordered list of grade entries that map each grade value to a rank cap for the linked GS2-Experience model. The index in the array corresponds to the grade value, so the first entry (index 0) defines the rank cap for grade 0, the second for grade 1, and so on. | ||
| acquireActionRates | List<AcquireActionRate> | 0 ~ 100 items | List of Reward Addition Tables A collection of named multiplier tables used to scale reward amounts based on grade. Multiple tables can be defined to apply different scaling rules to different types of rewards (e.g., experience points, currency, items). |
DefaultGradeModel
Default Grade Model
You can set the default grade value according to the match of the property ID regular expression when creating a new grade.
| Type | Condition | Required | Default | Value Limits | Description | |
|---|---|---|---|---|---|---|
| propertyIdRegex | string | ✓ | ~ 1024 chars | Property ID Regex A regular expression pattern matched against the property ID of a newly created grade status. When the property ID matches this pattern, the specified default grade value is assigned as the initial grade instead of 0. Patterns are evaluated in order, and the first match is used. | ||
| defaultGradeValue | long | ✓ | 0 ~ 9223372036854775805 | Default Grade Value The initial grade value assigned to a newly created status when its property ID matches the propertyIdRegex pattern. This value determines the starting rank cap for the linked GS2-Experience model, as the grade entry at this index defines the corresponding rank cap. |
GradeEntryModel
Grade Entry Model
Defines the mapping between a grade value and a rank cap for the linked GS2-Experience model. Each entry also specifies regex patterns for matching property IDs, enabling the system to determine which resources can be used for grade-up operations and how their property IDs are transformed.
| Type | Condition | Required | Default | Value Limits | Description | |
|---|---|---|---|---|---|---|
| metadata | string | ~ 2048 chars | Metadata Arbitrary values can be set in the metadata. Since they do not affect GS2’s behavior, they can be used to store information used in the game. | |||
| rankCapValue | long | ✓ | 0 ~ 9223372036854775805 | Rank Cap Value The rank cap value to set in the linked GS2-Experience model when this grade is applied. When a player’s grade changes to the value corresponding to this entry, the rank cap of the associated experience status is automatically updated to this value, controlling the maximum achievable rank. | ||
| propertyIdRegex | string | ✓ | ~ 1024 chars | Property ID Regex A regular expression pattern applied to the grade status’s property ID to extract variables for grade-up matching. Capture groups (parenthesized parts) in this pattern become available as $1, $2, etc. in gradeUpPropertyIdRegex. For example, a pattern like “character-(.+)” extracts the character identifier for use in matching grade-up material property IDs. | ||
| gradeUpPropertyIdRegex | string | ✓ | ~ 1024 chars | Grade-Up Property ID Regex A regular expression pattern that identifies which resource property IDs can be consumed for grade advancement. This pattern can reference capture groups from propertyIdRegex using $1, $2, etc. For example, if propertyIdRegex extracts “sword-001” as $1, this pattern might be “grade-up-material-$1” to match materials specific to that sword. |
AcquireActionRate
Reward Addition Table
Defines a named multiplier table that scales reward amounts based on the current grade value. Each grade value maps to a multiplier applied to acquire actions in transactions, allowing higher-graded characters or equipment to receive proportionally more rewards. Supports both standard double-precision mode and big number mode for extremely large values.
| Type | Condition | Required | Default | Value Limits | Description | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| name | string | ✓ | ~ 128 chars | Reward Addition Table Name A unique identifier for this multiplier table within the grade model. Referenced when applying grade-based reward scaling to specific acquire actions in transactions. | ||||||||
| mode | String Enum enum { “double”, “big” } | “double” | Reward Addition Table Type Selects the numeric precision mode for multiplier values. “double” mode uses standard floating-point numbers suitable for most cases. “big” mode uses string-represented numbers supporting up to 1024 digits, for games requiring extremely large value calculations.
| |||||||||
| rates | List<double> | {mode} == “double” | ✓* | 1 ~ 1000 items | Multiplier List per Grade (double mode) An array of reward multipliers indexed by grade value, using double-precision floating-point numbers. The entry at index 0 is the multiplier for grade 0, index 1 for grade 1, and so on. Used when mode is set to “double”. * Required if mode is “double” | |||||||
| bigRates | List<string> | {mode} == “big” | ✓* | 1 ~ 1000 items | Multiplier List per Grade (big mode) An array of reward multipliers indexed by grade value, using string-represented numbers for extended precision. The entry at index 0 is the multiplier for grade 0, index 1 for grade 1, and so on. Used when mode is set to “big” for games requiring very large number calculations. * Required if mode is “big” |