GS2-SkillTree マスターデータリファレンス

マスターデータのフォーマットと インポートする各種モデルのリファレンス

マスターデータのフォーマット

{
  "version": "2023-09-06",
  "nodeModels": [
    {
      "name": "[string]ノードモデル名",
      "metadata": "[string?]メタデータ",
      "releaseVerifyActions": [
        {
          "action": "[string]検証アクションで実行するアクションの種類",
          "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
        }
      ],
      "releaseConsumeActions": [
        {
          "action": "[string]消費アクションで実行するアクションの種類",
          "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
        }
      ],
      "returnAcquireActions": [
        {
          "action": "[string]入手アクションで実行するアクションの種類",
          "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
        }
      ],
      "restrainReturnRate": "[float]返却率",
      "premiseNodeNames": [
        "[string]ノードモデル名"
      ]
    }
  ]
}
有効化条件必須デフォルト値の制限説明
versionstring
2023-09-06マスターデータのフォーマットバージョン
nodeModelsList<NodeModel>~ 1000 itemsノードモデル
スキルツリー内のノードを定義するモデルで、解放コスト・前提条件・返却動作を含みます。
各ノードには検証アクション(解放前の条件チェック)、消費アクション(支払うコスト)、先に解放が必要な前提ノードを設定できます。
ノードを拘束(未解放状態に戻す)すると、消費したリソースが返却率に基づいて部分的に返却されます。
返却入手アクションは消費アクションに返却率を乗じて自動的に計算されます。

モデル

NodeModel

ノードモデル

スキルツリー内のノードを定義するモデルで、解放コスト・前提条件・返却動作を含みます。
各ノードには検証アクション(解放前の条件チェック)、消費アクション(支払うコスト)、先に解放が必要な前提ノードを設定できます。
ノードを拘束(未解放状態に戻す)すると、消費したリソースが返却率に基づいて部分的に返却されます。
返却入手アクションは消費アクションに返却率を乗じて自動的に計算されます。

有効化条件必須デフォルト値の制限説明
nodeModelIdstring
~ 1024文字ノードモデル GRN
※ サーバーが自動で設定
namestring
~ 128文字ノードモデル名
ノードモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
metadatastring~ 2048文字メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
releaseVerifyActionsList<VerifyAction>[]0 ~ 10 items解放検証アクションリスト
このノードを解放する前に実行され、条件が満たされているかを確認する検証アクションのリスト。
例えば、プレイヤーが特定のレベルに達しているか、特定のアイテムを所持しているかを検証できます。
いずれかの検証アクションが失敗すると、ノード解放は拒否されます。最大10アクション。
releaseConsumeActionsList<ConsumeAction>[]1 ~ 10 items解放消費アクションリスト
このノードを解放する際に実行される消費アクションのリストで、解放コストを表します。
これらのアクションは返却入手アクションの計算にも使用されます。ノードを拘束する際、各消費アクションが返却率に基づいて逆転されます。
最低1つの消費アクションが必要です。最大10アクション。
returnAcquireActionsList<AcquireAction>0 ~ 10 items返却入手アクションリスト
このノードを拘束(取り消し)する際に実行される入手アクションのリストで、プレイヤーに返却されるリソースを表します。
このフィールドは解放消費アクションに返却率を乗じて自動生成されます。
例えば、解放コストが100ゴールドで返却率が0.8の場合、拘束時に80ゴールドが返却されます。
最大10アクション。
restrainReturnRatefloat1.00.0 ~ 1.0返却率
このノードを拘束(未解放状態に戻す)した際に消費リソースが返却される割合。
1.0 は全額返却、0.5 は半額返却、0.0 は返却なしを意味します。
デフォルトは 1.0(全額返却)。有効範囲: 0.0〜1.0。
premiseNodeNamesList<string>[]0 ~ 10 items前提ノードモデル名リスト
このノードを解放する前に解放済みでなければならない他のノードモデルの名前。
スキルツリーの依存関係グラフを定義します。前提ノードがすべて解放済みでなければ、このノードは解放できません。
最大10の前提ノード。

ConsumeAction

消費アクション

有効化条件必須デフォルト値の制限説明
action文字列列挙型
enum {
"Gs2AdReward:ConsumePointByUserId",
"Gs2Dictionary:DeleteEntriesByUserId",
"Gs2Enhance:DeleteProgressByUserId",
"Gs2Exchange:DeleteAwaitByUserId",
"Gs2Experience:SubExperienceByUserId",
"Gs2Experience:SubRankCapByUserId",
"Gs2Formation:SubMoldCapacityByUserId",
"Gs2Grade:SubGradeByUserId",
"Gs2Guild:DecreaseMaximumCurrentMaximumMemberCountByGuildName",
"Gs2Idle:DecreaseMaximumIdleMinutesByUserId",
"Gs2Inbox:OpenMessageByUserId",
"Gs2Inbox:DeleteMessageByUserId",
"Gs2Inventory:ConsumeItemSetByUserId",
"Gs2Inventory:ConsumeSimpleItemsByUserId",
"Gs2Inventory:ConsumeBigItemByUserId",
"Gs2JobQueue:DeleteJobByUserId",
"Gs2Limit:CountUpByUserId",
"Gs2LoginReward:MarkReceivedByUserId",
"Gs2Mission:ReceiveByUserId",
"Gs2Mission:BatchReceiveByUserId",
"Gs2Mission:DecreaseCounterByUserId",
"Gs2Mission:ResetCounterByUserId",
"Gs2Money:WithdrawByUserId",
"Gs2Money:RecordReceipt",
"Gs2Money2:WithdrawByUserId",
"Gs2Money2:VerifyReceiptByUserId",
"Gs2Quest:DeleteProgressByUserId",
"Gs2Ranking2:CreateGlobalRankingReceivedRewardByUserId",
"Gs2Ranking2:CreateClusterRankingReceivedRewardByUserId",
"Gs2Schedule:DeleteTriggerByUserId",
"Gs2SerialKey:UseByUserId",
"Gs2Showcase:IncrementPurchaseCountByUserId",
"Gs2SkillTree:MarkRestrainByUserId",
"Gs2Stamina:DecreaseMaxValueByUserId",
"Gs2Stamina:ConsumeStaminaByUserId",
}
消費アクションで実行するアクションの種類
requeststring
~ 524288文字アクション実行時に使用されるリクエストのJSON文字列

VerifyAction

検証アクション

有効化条件必須デフォルト値の制限説明
action文字列列挙型
enum {
"Gs2Dictionary:VerifyEntryByUserId",
"Gs2Distributor:IfExpressionByUserId",
"Gs2Distributor:AndExpressionByUserId",
"Gs2Distributor:OrExpressionByUserId",
"Gs2Enchant:VerifyRarityParameterStatusByUserId",
"Gs2Experience:VerifyRankByUserId",
"Gs2Experience:VerifyRankCapByUserId",
"Gs2Grade:VerifyGradeByUserId",
"Gs2Grade:VerifyGradeUpMaterialByUserId",
"Gs2Guild:VerifyCurrentMaximumMemberCountByGuildName",
"Gs2Guild:VerifyIncludeMemberByUserId",
"Gs2Inventory:VerifyInventoryCurrentMaxCapacityByUserId",
"Gs2Inventory:VerifyItemSetByUserId",
"Gs2Inventory:VerifyReferenceOfByUserId",
"Gs2Inventory:VerifySimpleItemByUserId",
"Gs2Inventory:VerifyBigItemByUserId",
"Gs2Limit:VerifyCounterByUserId",
"Gs2Matchmaking:VerifyIncludeParticipantByUserId",
"Gs2Mission:VerifyCompleteByUserId",
"Gs2Mission:VerifyCounterValueByUserId",
"Gs2Ranking2:VerifyGlobalRankingScoreByUserId",
"Gs2Ranking2:VerifyClusterRankingScoreByUserId",
"Gs2Ranking2:VerifySubscribeRankingScoreByUserId",
"Gs2Schedule:VerifyTriggerByUserId",
"Gs2Schedule:VerifyEventByUserId",
"Gs2SerialKey:VerifyCodeByUserId",
"Gs2Stamina:VerifyStaminaValueByUserId",
"Gs2Stamina:VerifyStaminaMaxValueByUserId",
"Gs2Stamina:VerifyStaminaRecoverIntervalMinutesByUserId",
"Gs2Stamina:VerifyStaminaRecoverValueByUserId",
"Gs2Stamina:VerifyStaminaOverflowValueByUserId",
}
検証アクションで実行するアクションの種類
requeststring
~ 524288文字アクション実行時に使用されるリクエストのJSON文字列

AcquireAction

入手アクション

有効化条件必須デフォルト値の制限説明
action文字列列挙型
enum {
"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",
"Gs2Schedule:ExtendTriggerByUserId",
"Gs2Script:InvokeScript",
"Gs2SerialKey:RevertUseByUserId",
"Gs2SerialKey:IssueOnce",
"Gs2Showcase:DecrementPurchaseCountByUserId",
"Gs2Showcase:ForceReDrawByUserId",
"Gs2SkillTree:MarkReleaseByUserId",
"Gs2Stamina:RecoverStaminaByUserId",
"Gs2Stamina:RaiseMaxValueByUserId",
"Gs2Stamina:SetMaxValueByUserId",
"Gs2Stamina:SetRecoverIntervalByUserId",
"Gs2Stamina:SetRecoverValueByUserId",
"Gs2StateMachine:StartStateMachineByUserId",
}
入手アクションで実行するアクションの種類
requeststring
~ 524288文字アクション実行時に使用されるリクエストのJSON文字列