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

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

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

{
  "version": "2023-06-06",
  "categoryModels": [
    {
      "name": "[string]カテゴリーモデル名",
      "metadata": "[string?]メタデータ",
      "rewardIntervalMinutes": "[int]報酬間隔(分)",
      "defaultMaximumIdleMinutes": "[int]デフォルト最大放置時間(分)",
      "rewardResetMode": "[string enum]報酬リセットモード",
      "acquireActions": [
        {
          "acquireActions": [
            {
              "action": "[string]入手アクションで実行するアクションの種類",
              "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
          ]
        }
      ],
      "idlePeriodScheduleId": "[string?]放置期間スケジュールID",
      "receivePeriodScheduleId": "[string?]受取期間スケジュールID"
    }
  ]
}
有効化条件必須デフォルト値の制限説明
versionstring
2023-06-06マスターデータのフォーマットバージョン
categoryModelsList<CategoryModel>~ 100 itemsカテゴリーモデル
カテゴリーモデルとは、放置報酬を得られる待機カテゴリーを設定するエンティティです。
設定には、待機時間ごとの報酬や、最大待機時間などの情報が含まれます。

モデル

CategoryModel

カテゴリーモデル

カテゴリーモデルとは、放置報酬を得られる待機カテゴリーを設定するエンティティです。
設定には、待機時間ごとの報酬や、最大待機時間などの情報が含まれます。

有効化条件必須デフォルト値の制限説明
categoryModelIdstring
~ 1024文字カテゴリーモデル GRN
※ サーバーが自動で設定
namestring
~ 128文字カテゴリーモデル名
カテゴリーモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
metadatastring~ 2048文字メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
rewardIntervalMinutesint
0 ~ 2147483646報酬間隔(分)
各放置報酬の間の時間間隔(分)です。例えば60に設定すると、ユーザーは放置時間60分ごとに1つの報酬ユニットを獲得します。報酬の総数は(経過放置分数)/ rewardIntervalMinutes として計算され、acquireActions配列を循環します。
defaultMaximumIdleMinutesint
0 ~ 2147483646デフォルト最大放置時間(分)
このカテゴリーの新しいステータスに対するデフォルトの最大放置時間(分)です。この制限を超える放置時間は追加の報酬を蓄積しません。この値はステータス作成時に各ステータスの maximumIdleMinutes にコピーされ、入手アクションを通じてユーザーごとに拡張できます。
rewardResetMode文字列列挙型
enum {
  “Reset”,
  “CarryOver”
}
“Reset”報酬リセットモード
ユーザーが報酬を受け取った後の放置時間の扱いを決定します。「Reset」は放置時間をゼロに戻し、部分的な間隔時間は失われます。「CarryOver」は追加の報酬を得るに足りなかった残り時間を保持し、次の報酬サイクルにカウントされます。
定義説明
“Reset”待機時間を0にリセット
“CarryOver”報酬を得るに至らなかった残り時間を持ち越す
acquireActionsList<AcquireActionList>[]1 ~ 100 items待機時間ごとに得られる入手アクションリスト
待機時間を「X分」だと仮定すると
「X / rewardIntervalMinutes」が報酬を受け取れる数になりますが、ここで指定した配列の要素をループすることで、待機時間ごとに異なる報酬を付与できます。
idlePeriodScheduleIdstring~ 1024文字放置期間スケジュールID
放置時間が蓄積される期間を定義するGS2-ScheduleイベントのGRNです。設定すると、イベントがアクティブな間のみ放置時間がカウントされます。イベントが繰り返される場合、ステータスは繰り返し回数を追跡し、新しいサイクルの開始時に放置時間をリセットして、イベント期間ごとに報酬が計算されるようにします。
receivePeriodScheduleIdstring~ 1024文字受取期間スケジュールID
ユーザーが蓄積された放置報酬を受け取れる時間枠を定義するGS2-ScheduleイベントのGRNです。設定すると、イベントがアクティブな間のみ報酬の受け取りが受け付けられます。これにより、放置蓄積期間とは別の期間限定の報酬受取期間を設定できます。

AcquireActionList

入手アクションリスト

1つの報酬間隔で一括して付与される複数の入手アクションをグループ化するラッパーです。各 AcquireActionList はカテゴリーモデルの acquireActions 配列内の1つの報酬サイクルに対応し、各間隔で異なる報酬の組み合わせを設定できます。

有効化条件必須デフォルト値の制限説明
acquireActionsList<AcquireAction>[]0 ~ 100 items入手アクションリスト
この報酬間隔がトリガーされた時に一括で実行される入手アクションのコレクションです。複数のアクションを組み合わせて、1つの放置報酬サイクルで異なる種類の報酬を同時に付与できます。リストあたり最大100アクションです。

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文字列