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

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

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

{
  "version": "2019-04-04",
  "showcases": [
    {
      "name": "[string]陳列棚名",
      "metadata": "[string?]メタデータ",
      "salesPeriodEventId": "[string?]陳列棚の販売期間を設定した GS2-Schedule のイベントGRN",
      "displayItems": [
        {
          "displayItemId": "[string]陳列商品ID",
          "type": "[string]種類",
          "salesItem": {
            "name": "[string]商品名",
            "metadata": "[string?]メタデータ",
            "verifyActions": [
              {
                "action": "[string]検証アクションで実行するアクションの種類",
                "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
              }
            ],
            "consumeActions": [
              {
                "action": "[string]消費アクションで実行するアクションの種類",
                "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
              }
            ],
            "acquireActions": [
              {
                "action": "[string]入手アクションで実行するアクションの種類",
                "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
              }
            ]
          },
          "salesItemGroup": {
            "name": "[string]商品グループ名",
            "metadata": "[string?]メタデータ",
            "salesItems": [
              {
                "name": "[string]商品名",
                "metadata": "[string?]メタデータ",
                "verifyActions": [
                  {
                    "action": "[string]検証アクションで実行するアクションの種類",
                    "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
                  }
                ],
                "consumeActions": [
                  {
                    "action": "[string]消費アクションで実行するアクションの種類",
                    "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
                  }
                ],
                "acquireActions": [
                  {
                    "action": "[string]入手アクションで実行するアクションの種類",
                    "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
                  }
                ]
              }
            ]
          },
          "salesPeriodEventId": "[string?]この陳列商品の販売期間を設定した GS2-Schedule のイベントGRN"
        }
      ]
    }
  ],
  "randomShowcases": [
    {
      "name": "[string]ランダム陳列棚名",
      "metadata": "[string?]メタデータ",
      "maximumNumberOfChoice": "[int]選出される商品の最大数",
      "displayItems": [
        {
          "name": "[string]ランダム陳列商品ID",
          "metadata": "[string?]メタデータ",
          "verifyActions": [
            {
              "action": "[string]検証アクションで実行するアクションの種類",
              "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
          ],
          "consumeActions": [
            {
              "action": "[string]消費アクションで実行するアクションの種類",
              "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
          ],
          "acquireActions": [
            {
              "action": "[string]入手アクションで実行するアクションの種類",
              "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
          ],
          "stock": "[int]在庫数",
          "weight": "[int]排出重み"
        }
      ],
      "baseTimestamp": "[long]陳列する商品を再抽選の基準時間",
      "resetIntervalHours": "[int]陳列する商品を再抽選する間隔(時)",
      "salesPeriodEventId": "[string?]陳列棚の販売期間を設定した GS2-Schedule のイベントGRN"
    }
  ]
}
有効化条件 必須 デフォルト 値の制限 説明
version string
2019-04-04 マスターデータのフォーマットバージョン
showcases List<Showcase> ~ 100 items 陳列棚
陳列棚には陳列する商品を定義できます。
また、陳列棚の商品の販売期間を設定することができます。
randomShowcases List<RandomShowcase> ~ 100 items ランダム陳列棚
ランダム陳列棚は、指定した周期で入れ替わるランダムに選別された商品が陳列される陳列棚のモデルです。

選別される商品は、商品プールに登録された商品から指定数量が、商品ごとに設定された重みに基づいてランダムに選択されます。
ランダム陳列棚には GS2-Schedule のイベントを関連づけることで、販売期間を設定することができます。

モデル

Showcase

陳列棚

陳列棚には陳列する商品を定義できます。
また、陳列棚の商品の販売期間を設定することができます。

有効化条件 必須 デフォルト 値の制限 説明
showcaseId string
~ 1024文字 陳列棚 GRN
※ サーバーが自動で設定
name string
~ 128文字 陳列棚名
陳列棚固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
metadata string ~ 2048文字 メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
salesPeriodEventId string ~ 1024文字 陳列棚の販売期間を設定した GS2-Schedule のイベント GRN
この陳列棚全体の販売期間を制御します。指定した場合、関連する GS2-Schedule のイベント期間中のみ陳列棚が利用可能になります。イベントが有効でない場合、陳列棚は空で返されます。
displayItems List<DisplayItem> [] 1 ~ 1000 items 陳列する商品リスト
この陳列棚に陳列される商品のリストです。各陳列商品は単一の商品または商品グループのいずれかです。販売期間イベントが終了または無効な商品は、陳列棚の取得時に自動的にフィルタリングされます。

DisplayItem

陳列する商品

陳列棚に表示される商品です。単一の商品または商品グループのいずれかを参照できます。各陳列商品には、陳列棚全体の販売期間とは独立して GS2-Schedule イベントによる個別の販売期間を設定できます。

有効化条件 必須 デフォルト 値の制限 説明
displayItemId string
UUID ~ 128文字 陳列商品ID
陳列商品の一意な名前を保持します。
省略するとシステムによって UUID(Universally Unique Identifier)フォーマットで自動的に割り当てられます。
type 文字列列挙型
enum {
  “salesItem”,
  “salesItemGroup”
}
種類
表示する商品の種類です。「salesItem」は固定の対価と報酬を持つ単一商品です。「salesItemGroup」は複数の商品を順番に評価する商品グループで、ステップアップ価格や初回限定割引などに使用されます。
定義説明
“salesItem”商品
“salesItemGroup”商品グループ
salesItem SalesItem {type} == “salesItem”
✓※
商品
※ type が “salesItem” であれば 必須
salesItemGroup SalesItemGroup {type} == “salesItemGroup”
✓※
商品グループ
※ type が “salesItemGroup” であれば 必須
salesPeriodEventId string ~ 1024文字 この陳列商品の販売期間を設定した GS2-Schedule のイベント GRN
この個別の陳列商品の販売期間を制御します。指定した場合、関連する GS2-Schedule のイベント期間中のみ陳列棚に表示されます。陳列棚全体の販売期間とは独立して動作します。

SalesItem

商品

商品を購入するために必要となる対価と、商品を購入したときに得られる報酬を設定します。

有効化条件 必須 デフォルト 値の制限 説明
name string
~ 128文字 商品名
商品固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
metadata string ~ 2048文字 メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
verifyActions List<VerifyAction> [] 0 ~ 10 items 検証アクションリスト
購入前に実行される前提条件チェックです。すべての検証アクションが成功した後に消費・入手アクションが処理されます。購入資格の条件チェックに使用できます。
consumeActions List<ConsumeAction> [] 0 ~ 10 items 消費アクションリスト
購入対価としてリソースを消費するアクションです。商品グループの購入回数制御のために GS2-Limit の CountUp アクションを含めることができます。
acquireActions List<AcquireAction> [] 1 ~ 100 items 入手アクションリスト
購入報酬としてリソースを付与するアクションです。すべての消費アクションが正常に完了した後に実行されます。

SalesItemGroup

商品グループ

商品グループは陳列棚に陳列するためのエンティティです。
商品グループには複数の商品を所属させることができ、所属している商品の先頭から順番に購入可能かを判定し、一番最初に購入可能だと判定された商品が実際に陳列されます。
初回のみ割引する商品や、ステップアップガチャのように購入回数によって商品の内容が変化する仕組みに使用できます。

有効化条件 必須 デフォルト 値の制限 説明
name string
~ 128文字 商品グループ名
商品グループ固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
metadata string ~ 2048文字 メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
salesItems List<SalesItem> [] 2 ~ 10 items 商品グループに含める商品
このグループ内の商品の順序付きリストです。GS2-Limit カウンターを使って先頭から順に購入可能かを判定し、最初に購入可能と判定された商品が表示されます。いずれも該当しない場合、リストの最後の商品がフォールバックとして使用されます。

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",
}
消費アクションで実行するアクションの種類
request string
~ 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",
}
検証アクションで実行するアクションの種類
request string
~ 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",
}
入手アクションで実行するアクションの種類
request string
~ 524288文字 アクション実行時に使用されるリクエストのJSON文字列

RandomShowcase

ランダム陳列棚

ランダム陳列棚は、指定した周期で入れ替わるランダムに選別された商品が陳列される陳列棚のモデルです。

選別される商品は、商品プールに登録された商品から指定数量が、商品ごとに設定された重みに基づいてランダムに選択されます。
ランダム陳列棚には GS2-Schedule のイベントを関連づけることで、販売期間を設定することができます。

有効化条件 必須 デフォルト 値の制限 説明
randomShowcaseId string
~ 1024文字 ランダム陳列棚 GRN
※ サーバーが自動で設定
name string
~ 128文字 ランダム陳列棚名
ランダム陳列棚固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
metadata string ~ 2048文字 メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
maximumNumberOfChoice int
1 ~ 100 選出される商品の最大数
各ローテーション期間に商品プールからランダムに抽選される商品の数です。重み付きランダム選択で重複なく抽選されるため、1回のローテーションで同じ商品が2回表示されることはありません。
displayItems List<RandomDisplayItemModel> [] 1 ~ 100 items 選出対象の陳列商品リスト
商品がランダムに抽選される候補アイテムのプールです。各アイテムには選択確率を決定する重みと、ローテーション全体で表示可能な回数を制限する在庫数があります。
baseTimestamp long
陳列する商品を再抽選の基準時間
ローテーション境界の計算に使用される基準タイムスタンプです。この基準時間から一定間隔(resetIntervalHours)ごとに商品の再抽選が行われます。過去の時刻を指定する必要があります。
resetIntervalHours int
1 ~ 168 陳列する商品を再抽選する間隔(時)
各商品ローテーション間の時間数です。baseTimestamp を基準として間隔が経過すると、新しい乱数シードで陳列商品が再抽選されます。1〜168時間(1週間)の範囲で設定できます。
salesPeriodEventId string ~ 1024文字 陳列棚の販売期間を設定した GS2-Schedule のイベント GRN
このランダム陳列棚全体の販売期間を制御します。指定した場合、関連する GS2-Schedule のイベント期間中のみ陳列棚が利用可能になります。

RandomDisplayItemModel

ランダム陳列棚に陳列可能な商品

weight に商品を選別する確率を設定できます。

有効化条件 必須 デフォルト 値の制限 説明
name string
UUID ~ 128文字 ランダム陳列商品ID
ランダム陳列商品の一意な名前を保持します。
省略するとシステムによって UUID(Universally Unique Identifier)フォーマットで自動的に割り当てられます。
metadata string ~ 2048文字 メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
verifyActions List<VerifyAction> [] 0 ~ 10 items 検証アクションリスト
このランダム陳列商品を購入する前に実行される前提条件チェックです。すべての検証アクションが成功した後に消費・入手アクションが処理されます。
consumeActions List<ConsumeAction> [] 0 ~ 10 items 消費アクションリスト
このランダム陳列商品の購入対価としてリソースを消費するアクションです。トランザクションの消費アクションとして実行されます。
acquireActions List<AcquireAction> [] 1 ~ 100 items 入手アクションリスト
このランダム陳列商品の購入報酬としてリソースを付与するアクションです。トランザクションの入手アクションとして実行されます。
stock int
1 ~ 2147483646 在庫数
すべてのローテーションを通じてこの商品が抽選される最大回数です。在庫がゼロになると、以降の抽選から除外されます。ローテーション抽選時に商品が選択されると在庫が消費されます。
weight int
1 ~ 2147483646 排出重み
ランダム選択におけるこの商品の相対的な確率の重みです。重みが大きいほど抽選される確率が高くなります。実際の選択確率は、この商品の重みを対象となるすべての商品の重みの合計で割った値として計算されます。