GS2-Inbox Master Data Reference

Reference for the master data format and the models to be imported

Master Data Format

{
  "version": "2020-03-12",
  "globalMessages": [
    {
      "name": "[string]Global Message name",
      "metadata": "[string]Metadata",
      "readAcquireActions": [
        {
          "action": "[string]Type of action to be executed in the Acquire Action",
          "request": "[string]JSON string of the request used when executing the action"
        }
      ],
      "expiresTimeSpan": {
        "days": "[int]Days",
        "hours": "[int]Hours",
        "minutes": "[int]Minutes"
      },
      "messageReceptionPeriodEventId": "[string?]Message Reception Period Event ID"
    }
  ]
}
TypeConditionRequiredDefaultValue LimitsDescription
versionstring
2020-03-12Format version of master data
globalMessagesList<GlobalMessage>~ 1000 itemsGlobal Message
Global Message is a mechanism for delivering messages to all game players.

Global messages can have an expiration time, and each game player can receive a Global Message by executing the process of receiving a Global Message.
Unreceived Global Messages within the validity period are copied to the player’s message box.

Model

GlobalMessage

Global Message

Global Message is a mechanism for delivering messages to all game players.

Global messages can have an expiration time, and each game player can receive a Global Message by executing the process of receiving a Global Message. Unreceived Global Messages within the validity period are copied to the player’s message box.

TypeConditionRequiredDefaultValue LimitsDescription
globalMessageIdstring
*
~ 1024 charsMessage GRN to all users
* Set automatically by the server
namestring
~ 128 charsGlobal Message name
Global Message-specific name. Specified using alphanumeric characters, hyphens (-), underscores (_), and periods (.).
metadatastring
~ 4096 charsMetadata
Arbitrary data representing the global message content, such as a JSON string containing the message title, body text, and display parameters. When a user receives this global message, the metadata is copied to the individual message in their inbox. GS2 does not interpret this value. Maximum 4096 characters.
readAcquireActionsList<AcquireAction>[]0 ~ 100 itemsRead Acquire Actions
The list of acquire actions to be executed when a user opens the message copied from this global message. These actions are copied along with the metadata to each user’s individual message. Up to 100 actions per global message.
expiresTimeSpanTimeSpanExpiration Time Span
The duration from the time a user receives (copies) this global message until the copied message expires and is automatically deleted from their inbox. Specified as a combination of days, hours, and minutes. Messages are deleted regardless of read status when the expiration is reached, including any unclaimed attached rewards.
messageReceptionPeriodEventIdstring~ 1024 charsMessage Reception Period Event ID
The GRN of a GS2-Schedule event that defines the time window during which this global message can be received (copied to users’ inboxes). Outside this period, the global message is not delivered even if a user triggers the receive global messages operation. Useful for time-limited event announcements or seasonal campaign rewards.

TimeSpan

Time Span

Represents a duration of time as a combination of days, hours, and minutes. Used to define the expiration period for messages relative to their reception time. For example, a TimeSpan of 7 days, 0 hours, 0 minutes means the message expires exactly one week after the user receives it.

TypeConditionRequiredDefaultValue LimitsDescription
daysint00 ~ 365Days
The number of days in this time span. Combined with hours and minutes to calculate the total duration. Maximum 365 days.
hoursint00 ~ 24Hours
The number of hours in this time span. Combined with days and minutes to calculate the total duration. Maximum 24 hours.
minutesint00 ~ 60Minutes
The number of minutes in this time span. Combined with days and hours to calculate the total duration. Maximum 60 minutes.

AcquireAction

Acquire Action

Represents a single acquire action attached to a message as a reward. Consists of an action type (e.g., add items to inventory, increase currency) and its request parameters. When a message is opened, these actions are assembled into transactions and executed to deliver the rewards to the user.

TypeConditionRequiredDefaultValue LimitsDescription
actionString Enum
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",
}
Type of action to be executed in the Acquire Action
requeststring
~ 524288 charsJSON string of the request used when executing the action