Master Data Reference of GS2-Grade

{
  "version": "2023-12-25",
  "gradeModels": [
    {
      "name": "[string]Grade Model Name",
      "metadata": "[string?]metadata",
      "defaultGrades": [
        {
          "propertyIdRegex": "[string]Regular expression for property ID to which default value is applied",
          "defaultGradeValue": "[long]Default grade value"
        }
      ],
      "experienceModelId": "[string]Experience model GRN to link grade and rank cap",
      "gradeEntries": [
        {
          "metadata": "[string?]metadata",
          "rankCapValue": "[long]Rank cap value to be set in GS2-Experience",
          "propertyIdRegex": "[string]Regular expression for property ID that can be used for grade up",
          "gradeUpPropertyIdRegex": "[string]Regular expression for property ID that can be used for grade up"
        }
      ],
      "acquireActionRates": [
        {
          "name": "[string]Remuneration addition table name",
          "mode": "[string]Remuneration addition table type",
          "rates": [
            "[double]Addition amount (multiplier)"
          ],
          "bigRates": [
            "[string]Addition amount (multiplier)"
          ]
        }
      ]
    }
  ]
}
TypeConditionRequireDefaultLimitationDescription
version2023-12-25Format version of master data
gradeModelsList<GradeModel>~ 100 itemsGrade Model

GradeModel

Grade Model

An grade model is an entity that sets the threshold of grade required for rank advancement and for each default and maximum rank cap.

TypeConditionRequireDefaultLimitationDescription
gradeModelIdstring~ 1024 charsGrade Model GRN
namestring~ 128 charsGrade Model Name
metadatastring~ 2048 charsmetadata
defaultGradesList<DefaultGradeModel>~ 100 itemsList of Default grade model
experienceModelIdstring~ 1024 charsExperience model GRN to link grade and rank cap
gradeEntriesList<GradeEntryModel>1 ~ 100 itemsList of Grade entry
acquireActionRatesList<AcquireActionRate>~ 100 itemsList of Remuneration addition table

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.

TypeConditionRequireDefaultLimitationDescription
propertyIdRegexstring~ 1024 charsRegular expression for property ID to which default value is applied
defaultGradeValuelong~ 9223372036854775805Default grade value

GradeEntryModel

Grade Entry

TypeConditionRequireDefaultLimitationDescription
metadatastring~ 2048 charsmetadata
rankCapValuelong~ 9223372036854775805Rank cap value to be set in GS2-Experience
propertyIdRegexstring~ 1024 charsRegular expression for property ID that can be used for grade up
gradeUpPropertyIdRegexstring~ 1024 charsRegular expression for property ID that can be used for grade up

AcquireActionRate

Remuneration addition table master

You can adjust the amount of rewards according to the rank.

TypeConditionRequireDefaultLimitationDescription
namestring~ 128 charsRemuneration addition table name
modeenum {
    “double”,
    “big”
}
“double”~ 128 charsRemuneration addition table type
ratesList<double>{mode} == “double”1 ~ 1000 itemsAmount added per grade (multiplier)
bigRatesList<string>{mode} == “big”1 ~ 1000 itemsAmount added per grade (multiplier)

Enumeration type definition to specify as mode

Enumerator String DefinitionDescription
doubleFloating point number less than 2^48
bigFloating point number less than 1024 digits

AcquireAction

Acquire Action

TypeConditionRequireDefaultLimitationDescription
actionenum {
"Gs2AdReward:AcquirePointByUserId",
"Gs2Dictionary:AddEntriesByUserId",
"Gs2Enchant:ReDrawBalanceParameterStatusByUserId",
"Gs2Enchant:SetBalanceParameterStatusByUserId",
"Gs2Enchant:ReDrawRarityParameterStatusByUserId",
"Gs2Enchant:AddRarityParameterStatusByUserId",
"Gs2Enchant:SetRarityParameterStatusByUserId",
"Gs2Enhance:DirectEnhanceByUserId",
"Gs2Enhance:UnleashByUserId",
"Gs2Enhance:CreateProgressByUserId",
"Gs2Exchange:ExchangeByUserId",
"Gs2Exchange:IncrementalExchangeByUserId",
"Gs2Exchange:CreateAwaitByUserId",
"Gs2Exchange:AcquireForceByUserId",
"Gs2Exchange:SkipByUserId",
"Gs2Experience:AddExperienceByUserId",
"Gs2Experience:SetExperienceByUserId",
"Gs2Experience:AddRankCapByUserId",
"Gs2Experience:SetRankCapByUserId",
"Gs2Experience:MultiplyAcquireActionsByUserId",
"Gs2Formation:AddMoldCapacityByUserId",
"Gs2Formation:SetMoldCapacityByUserId",
"Gs2Formation:AcquireActionsToFormProperties",
"Gs2Formation:SetFormByUserId",
"Gs2Formation:AcquireActionsToPropertyFormProperties",
"Gs2Friend:UpdateProfileByUserId",
"Gs2Grade:AddGradeByUserId",
"Gs2Grade:ApplyRankCapByUserId",
"Gs2Grade:MultiplyAcquireActionsByUserId",
"Gs2Guild:IncreaseMaximumCurrentMaximumMemberCountByGuildName",
"Gs2Guild:SetMaximumCurrentMaximumMemberCountByGuildName",
"Gs2Idle:IncreaseMaximumIdleMinutesByUserId",
"Gs2Idle:SetMaximumIdleMinutesByUserId",
"Gs2Idle:ReceiveByUserId",
"Gs2Inbox:SendMessageByUserId",
"Gs2Inventory:AddCapacityByUserId",
"Gs2Inventory:SetCapacityByUserId",
"Gs2Inventory:AcquireItemSetByUserId",
"Gs2Inventory:AcquireItemSetWithGradeByUserId",
"Gs2Inventory:AddReferenceOfByUserId",
"Gs2Inventory:DeleteReferenceOfByUserId",
"Gs2Inventory:AcquireSimpleItemsByUserId",
"Gs2Inventory:SetSimpleItemsByUserId",
"Gs2Inventory:AcquireBigItemByUserId",
"Gs2Inventory:SetBigItemByUserId",
"Gs2JobQueue:PushByUserId",
"Gs2Limit:CountDownByUserId",
"Gs2Limit:DeleteCounterByUserId",
"Gs2LoginReward:DeleteReceiveStatusByUserId",
"Gs2LoginReward:UnmarkReceivedByUserId",
"Gs2Lottery:DrawByUserId",
"Gs2Lottery:ResetBoxByUserId",
"Gs2Mission:RevertReceiveByUserId",
"Gs2Mission:IncreaseCounterByUserId",
"Gs2Mission:SetCounterByUserId",
"Gs2Money:DepositByUserId",
"Gs2Money:RevertRecordReceipt",
"Gs2Money2:DepositByUserId",
"Gs2Quest:CreateProgressByUserId",
"Gs2Schedule:TriggerByUserId",
"Gs2Script:InvokeScript",
"Gs2SerialKey:RevertUseByUserId",
"Gs2SerialKey:IssueOnce",
"Gs2Showcase:DecrementPurchaseCountByUserId",
"Gs2Showcase:ForceReDrawByUserId",
"Gs2SkillTree:MarkReleaseByUserId",
"Gs2Stamina:RecoverStaminaByUserId",
"Gs2Stamina:RaiseMaxValueByUserId",
"Gs2Stamina:SetMaxValueByUserId",
"Gs2Stamina:SetRecoverIntervalByUserId",
"Gs2Stamina:SetRecoverValueByUserId",
"Gs2StateMachine:StartStateMachineByUserId",
}
~ 128 charsTypes of actions to be performed in the acquire action
requeststring~ 1048576 charsJSON of request

VerifyActionResult

Verify action execution result

TypeConditionRequireDefaultLimitationDescription
actionenum {
}
~ 128 charsTypes of actions to be performed in the verify task
verifyRequeststring~ 1048576 charsJSON of request
statusCodeint~ 999Status code
verifyResultstring~ 1048576 charsResult payload

Enumeration type definition to specify as action

Enumerator String DefinitionDescription

ConsumeActionResult

Consume action execution result

TypeConditionRequireDefaultLimitationDescription
actionenum {
}
~ 128 charsTypes of actions to be performed in the consume action
consumeRequeststring~ 1048576 charsJSON of request
statusCodeint~ 999Status code
consumeResultstring~ 1048576 charsResult payload

Enumeration type definition to specify as action

Enumerator String DefinitionDescription

AcquireActionResult

Acquire action execution result

TypeConditionRequireDefaultLimitationDescription
actionenum {
}
~ 128 charsTypes of actions to be performed in the acquire action
acquireRequeststring~ 1048576 charsJSON of request
statusCodeint~ 999Status code
acquireResultstring~ 1048576 charsResult payload

Enumeration type definition to specify as action

Enumerator String DefinitionDescription

TransactionResult

Transaction execution results

Transaction execution results executed using server-side transaction auto-execution functionality

TypeConditionRequireDefaultLimitationDescription
transactionIdstring36 ~ 36 charsTransaction ID
verifyResultsList<VerifyActionResult>~ 10 itemsList of verify action execution results
consumeResultsList<ConsumeActionResult>~ 10 itemsList of consume action execution results
acquireResultsList<AcquireActionResult>~ 100 itemsList of acquire action execution results