Challenges
Challenges
Section titled “Challenges”The challenge system provides daily and weekly objectives that grant bonus XP and Season Tokens. Challenges are defined per season and randomly rotated for each player.
Challenge Definition
Section titled “Challenge Definition”Each challenge in the dailyChallenges or weeklyChallenges arrays:
| Field | Type | Default | Description |
|---|---|---|---|
id | string | — | Unique challenge ID (e.g., daily_mine_50) |
name | string | — | Display name |
description | string | — | Description text |
type | string | — | Challenge type (see below) |
target | string | "any" | Specific target or "any" for wildcard |
count | int | — | Completion count required |
xpReward | int | — | XP granted on completion |
tokenReward | int | 0 | Tokens granted on completion |
weight | int | 10 | Selection weight (higher = more likely) |
iconItem | string | — | Item ID for UI display |
descriptionKey | string | — | Optional i18n key for localized description |
premiumOnly | boolean | false | Only available to premium pass holders |
Challenge Types
Section titled “Challenge Types”| Type | Description | Target Examples |
|---|---|---|
break_block | Break blocks | "any", "Stone", "Ore_Iron" |
place_block | Place blocks | "any", "Wood_Oak" |
mob_kill | Kill mobs | "any", "Skeleton", "Trork" |
player_kill | PvP kills | "any" |
harvest | Harvest crops | "any", "Wheat" |
flower_pick | Pick flowers | "any" |
zone_discover | Discover zones | "any" |
playtime | Minutes played | "any" (count = minutes) |
travel | Blocks traveled | "any" (count = blocks) |
distance_traveled | Blocks traveled (alias) | "any" (count = blocks) |
daily_login | Log in for the day | "any" (count = 1) |
login_streak | Maintain a login streak | "any" (count = streak days) |
items_collected | Collect items | "any", "@consumable" |
:::note Target Matching
When target is "any", any block/mob/zone counts. When a specific ID is provided, only that exact type counts toward progress.
:::
Rotation System
Section titled “Rotation System”Slot Configuration
Section titled “Slot Configuration”| Field | Type | Default | Description |
|---|---|---|---|
dailyChallengeSlots | int | 3 | Number of daily challenges shown |
weeklyChallengeSlots | int | 3 | Number of weekly challenges shown |
Selection Algorithm
Section titled “Selection Algorithm”- Weighted Random — Challenges with higher
weightvalues are more likely to be selected - Without Replacement — Each rotation picks unique challenges (no duplicates)
- Per-Player Seed — Each player sees a different rotation based on:
playerUuid.hashCode() + dayOfEpoch + offset - Deterministic — Same player sees the same challenges all day (or all week)
Reset Schedule
Section titled “Reset Schedule”- Daily Challenges: Reset at midnight in the configured timezone
- Weekly Challenges: Reset every Monday at midnight
:::note Lazy Reset Challenges are reset when the player next logs in or opens the Season Pass UI — not at a fixed server time. This means a player who is offline for several days will get fresh challenges when they return. :::
Premium Challenges
Section titled “Premium Challenges”Premium pass holders get additional challenge slots beyond the regular rotation.
Configuration
Section titled “Configuration”| Field | Type | Default | Description |
|---|---|---|---|
premiumDailyChallengeSlots | int | 2 | Extra daily challenges for premium |
premiumWeeklyChallengeSlots | int | 1 | Extra weekly challenges for premium |
Behavior
Section titled “Behavior”- Premium challenges are drawn from challenges with
"premiumOnly": truein the challenge pool - Non-premium players see a lock box instead of premium challenges, with the configured
premiumHintText - Premium challenge progress is only tracked for premium players (backend guard)
- Premium challenges use the same weighted random rotation as regular challenges
- Premium and non-premium challenges are rotated independently (separate slot lists)
:::note Premium Tracking If a player loses premium status, their premium challenge progress is frozen but not deleted. If they regain premium, progress resumes. :::
Type Deduplication
Section titled “Type Deduplication”The challenge rotation enforces type deduplication within each category:
- Within a category (Daily or Weekly): Maximum 1 challenge per type
- Cross-category: Daily and Weekly may share the same type
Example
Section titled “Example”If the daily pool contains:
daily_mine_50(type:break_block)daily_mine_100(type:break_block)daily_kill_10(type:mob_kill)
Only one break_block challenge can be selected for the daily rotation. The second break_block challenge is skipped in favor of a different type.
This ensures variety in the daily/weekly challenge lineup and prevents players from seeing repetitive objectives.
Example Challenges
Section titled “Example Challenges”Daily Challenges
Section titled “Daily Challenges”"dailyChallenges": [ { "id": "daily_mine_50", "name": "Miner", "description": "Mine 50 blocks", "type": "break_block", "target": "any", "count": 50, "xpReward": 100, "tokenReward": 5, "weight": 15, "iconItem": "Tool_Pickaxe_Iron" }, { "id": "daily_kill_10", "name": "Monster Slayer", "description": "Kill 10 mobs", "type": "mob_kill", "target": "any", "count": 10, "xpReward": 150, "tokenReward": 8, "weight": 15, "iconItem": "Weapon_Longsword_Iron" }, { "id": "daily_travel_1000", "name": "Wanderer", "description": "Travel 1000 blocks", "type": "travel", "target": "any", "count": 1000, "xpReward": 75, "tokenReward": 3, "weight": 10, "iconItem": "Deco_Compass" }]Weekly Challenges
Section titled “Weekly Challenges”"weeklyChallenges": [ { "id": "weekly_mine_500", "name": "Deep Miner", "description": "Mine 500 blocks this week", "type": "break_block", "target": "any", "count": 500, "xpReward": 500, "tokenReward": 25, "weight": 15, "iconItem": "Tool_Pickaxe_Cobalt" }, { "id": "weekly_kill_50", "name": "Hunter", "description": "Kill 50 mobs this week", "type": "mob_kill", "target": "any", "count": 50, "xpReward": 750, "tokenReward": 40, "weight": 15, "iconItem": "Weapon_Longsword_Cobalt" }]UI Display
Section titled “UI Display”In the Season Pass Challenges tab:
- 3 Daily Challenges shown at the top with progress bars
- 3 Weekly Challenges shown below
- Completed challenges display a green checkmark
- Each challenge shows: name, progress (
X/Y), XP reward, and token reward (e.g., “+100 XP | +5 T”) - Reset countdown displayed per section (“Resets in: Xh Ym”)