Skip to content

Token Shop

The Season Shop offers a daily-rotating selection of items that players can purchase with the configured season currency. By default this is Season Tokens earned passively through XP gain and as bonus rewards from challenges, but the currency can be changed to inventory items or an economy provider (see Configuration — Currency).

SourceCalculation
XP ProportionalEvery seasonTokenXpRatio XP earned = 1 token (default: 100 XP = 1 token)
Challenge RewardsEach challenge can grant bonus tokens via tokenReward
First Login BonusfirstLoginBonusTokens tokens on first season login (default: 5)
Tier RewardsToken-type tier rewards grant tokens directly

Shop items are defined in the shopItems array of the season definition:

FieldTypeDefaultDescription
idstringUnique shop item ID
namestringDisplay name
descriptionstringDescription text
descriptionKeystringOptional i18n key
iconItemstringItem ID for display
costint10Price in the configured currency
raritystring"common"Rarity tier: common, uncommon, rare, epic, legendary
weightint10Selection weight for daily rotation
rewardsarrayList of rewards granted on purchase
premiumOnlybooleanfalseOnly available to premium pass holders

Rewards use the same format as tier rewards.

SettingDefaultDescription
dailyShopSlots4Number of shop items shown per day
  1. Weighted Random — Items with higher weight are more likely to appear
  2. Per-Player SeedplayerUuid.hashCode() + dayOfEpoch + 42
  3. Deterministic — Same player sees the same 4 items all day
  4. Different Per Player — Different players may see different rotations
  • One purchase per item per day — After buying, the item shows a “SOLD” badge
  • Shop resets at midnight (configured timezone)
  • Token balance is checked before purchase
  • Purchase feedback is sent in chat
"shopItems": [
{
"id": "shop_gold_100",
"name": "Gold Bundle",
"description": "A small pile of gold",
"iconItem": "Ingredient_Bar_Gold",
"cost": 20,
"weight": 15,
"rewards": [
{
"type": "item",
"itemId": "Ingredient_Bar_Gold",
"amount": 100,
"description": "100 Gold"
}
]
},
{
"id": "shop_lootbag_premium",
"name": "Premium Lootbag",
"description": "Contains rare explorer gear",
"iconItem": "Deco_Scroll",
"cost": 100,
"weight": 8,
"rewards": [
{
"type": "lootbag",
"lootbagId": "explorer_premium",
"description": "Premium Lootbag"
}
]
},
{
"id": "shop_bread_bundle",
"name": "Survival Rations",
"description": "50 loaves of bread",
"iconItem": "Food_Bread",
"cost": 10,
"weight": 20,
"rewards": [
{
"type": "item",
"itemId": "Food_Bread",
"amount": 50,
"description": "50x Bread"
}
]
},
{
"id": "shop_token_boost",
"name": "Token Jackpot",
"description": "Double your investment!",
"iconItem": "Ingredient_Bar_Gold",
"cost": 50,
"weight": 5,
"rewards": [
{
"type": "tokens",
"tokens": 100,
"description": "100 Season Tokens"
}
]
}
]

The Shop tab in the Season Pass UI shows:

  • Header — “Season Shop” with currency balance (name and icon from season config) and refresh countdown
  • 4 Item Cards — Each showing: icon, name, description, price in configured currency, and buy button
  • Rarity Tinting — Cards display rarity-based color tinting (Common through Legendary)
  • SOLD Badge — Dark tint overlay with “SOLD” corner badge on purchased items
  • Insufficient Tokens — Buy button disabled with tooltip when balance is too low

Premium pass holders get additional shop slots beyond the regular rotation.

FieldTypeDefaultDescription
premiumDailyShopSlotsint2Extra shop slots for premium
  • Premium shop slots are filled from items with premiumOnly: true
  • Non-premium players see a lock box with the configured premiumHintText
  • Premium shop items use the same weighted random rotation
  • Purchased premium items show the same “SOLD” badge behavior

:::note Premium Lock Box The lock box displays a customizable message (via premiumHintText in the season config). If no hint text is configured, a default i18n message is shown. :::