Skip to main content

Tier System

The Tier System assigns rarity levels to quests based on their difficulty. Each tier has a unique color, a reward multiplier, and a weight that controls how often quests of that tier appear in daily and weekly pools. Server owners can fully customize tiers or use the built-in defaults.

Default Tiers

Out of the box, the system provides four tiers:

TierDifficultyColorReward MultiplierWeightChance
CommoneasyGray #A0A0A01.0x50~50%
RaremediumBlue #4169E12.0x30~30%
EpichardPurple #9932CC3.0x15~15%
LegendarylegendaryGold #FFD7005.0x5~5%

The reward multiplier scales all rewards for that quest. A Legendary quest with a base reward of 3 iron ore would grant 15 iron ore (3 x 5.0).

How Tiers Are Assigned

Each quest definition has a difficulty field. The tier system maps this difficulty string to a tier:

Quest difficulty: "easy"    --> Tier: Common  (1.0x rewards)
Quest difficulty: "medium" --> Tier: Rare (2.0x rewards)
Quest difficulty: "hard" --> Tier: Epic (3.0x rewards)
Quest difficulty: "legendary" --> Tier: Legendary (5.0x rewards)

Alternative difficulty names are also recognized:

InputMaps To
normal, simple, basicCommon (easy)
uncommon, moderate, challengingRare (medium)
difficult, very_hard, expertEpic (hard)
extreme, mythic, artifact, ancientLegendary

If a quest has no difficulty or an unrecognized value, it defaults to Common.

Configuration

The tier system is configured in config.json under tierSystem:

{
"tierSystem": {
"enabled": true,
"tiers": [
{
"id": "common",
"difficulty": "easy",
"color": "#A0A0A0",
"multiplier": 1.0,
"weight": 50,
"name": { "en": "Common", "de": "Gewoehnlich" }
},
{
"id": "rare",
"difficulty": "medium",
"color": "#4169E1",
"multiplier": 2.0,
"weight": 30,
"name": { "en": "Rare", "de": "Selten" }
},
{
"id": "epic",
"difficulty": "hard",
"color": "#9932CC",
"multiplier": 3.0,
"weight": 15,
"name": { "en": "Epic", "de": "Episch" }
},
{
"id": "legendary",
"difficulty": "legendary",
"color": "#FFD700",
"multiplier": 5.0,
"weight": 5,
"name": { "en": "Legendary", "de": "Legendaer" }
}
]
}
}

Tier Definition Fields

FieldRequiredDescription
idYesUnique identifier (e.g., "common", "rare")
difficultyYesDifficulty string that maps quests to this tier
colorNoHex color for UI display (default: #FFFFFF)
multiplierNoReward multiplier (default: 1.0)
weightNoSelection weight for pool draws (default: 10)
nameNoLocalized display names by language
tip

The name field supports any number of languages. If no localization key (tier.<id>.name) exists in the translation files, the inline name map is used as fallback.

Tier-Based Pool Selection

When the tier system is enabled, daily quest pool selection works differently than simple random:

  1. For each quest slot, a tier is randomly selected based on the configured weights
  2. The system finds quests in the pool that match the selected tier's difficulty
  3. One quest is randomly picked from the matching pool entries
  4. If no quests are available for the selected tier, the system falls back to other tiers (lowest first)

This ensures that higher-tier quests appear at the configured frequency. A pool with many Common quests and few Legendary quests will still offer Legendary quests approximately 5% of the time when using default weights.

When the tier system is disabled, all quests in the pool have equal selection probability regardless of their difficulty.

Custom Tier Systems

You can define any number of tiers with custom names, colors, and multipliers. The tiers are ordered by their position in the array (first = lowest, last = highest).

Example: 5-Tier System

{
"tierSystem": {
"enabled": true,
"tiers": [
{ "id": "basic", "difficulty": "easy", "color": "#808080", "multiplier": 1.0, "weight": 40 },
{ "id": "uncommon", "difficulty": "normal", "color": "#2E8B57", "multiplier": 1.5, "weight": 25 },
{ "id": "rare", "difficulty": "medium", "color": "#4169E1", "multiplier": 2.0, "weight": 20 },
{ "id": "epic", "difficulty": "hard", "color": "#9932CC", "multiplier": 3.5, "weight": 10 },
{ "id": "mythic", "difficulty": "legendary", "color": "#FF4500", "multiplier": 7.0, "weight": 5 }
]
}
}

Example: Simple 3-Tier System

{
"tierSystem": {
"enabled": true,
"tiers": [
{ "id": "normal", "difficulty": "easy", "color": "#FFFFFF", "multiplier": 1.0, "weight": 60 },
{ "id": "hard", "difficulty": "hard", "color": "#FF6600", "multiplier": 2.5, "weight": 30 },
{ "id": "extreme", "difficulty": "legendary", "color": "#FF0000", "multiplier": 5.0, "weight": 10 }
]
}
}
info

If the tiers array is empty or not provided, the system falls back to the built-in 4-tier defaults (Common/Rare/Epic/Legendary).

Tier Display in the UI

Tiers affect how quests appear throughout the UI:

  • Quest Book -- Quest names are colored with the tier color
  • Quest Tracker HUD -- Active quests show their tier color
  • Pool entries -- Daily/weekly quest pool entries include tier indicators
  • Notifications -- Quest completion notifications reference the tier

Integration with Mod Editor

The Mod Editor admin panel includes a Tier Generator feature. This tool creates multiple difficulty variants from a single quest template:

  1. Create a base quest (e.g., "Mine Stone" with 50 stone)
  2. Use the tier generator to produce variants:
    • daily_mine_stone (Common) -- 50 stone, 1x rewards
    • daily_mine_stone_rare (Rare) -- 100 stone, 2x rewards
    • daily_mine_stone_epic (Epic) -- 200 stone, 3x rewards
    • daily_mine_stone_legendary (Legendary) -- 500 stone, 5x rewards

The generator scales both objective counts and rewards based on the tier multiplier, then adds all variants to the appropriate quest pool.

warning

When creating custom tiers, make sure your quest definitions use matching difficulty values. A quest with "difficulty": "mythic" will only map to a tier that has "difficulty": "mythic" (or a recognized fallback alias). Unmatched difficulties default to the lowest tier.