Skip to main content

TierDataProvider

Provides OSRS-accurate tier-based level requirements for equipment and tools. Single source of truth loaded from tier-requirements.json manifest. Location: packages/shared/src/data/TierDataProvider.ts

Overview

TierDataProvider eliminates redundant requirement definitions by mapping metal tiers (bronze, iron, steel, etc.) to skill requirements. Instead of manually specifying requirements for every item, you just set the tier property.

Before (Manual Requirements)

After (Tier-Based)


Initialization


Methods

getRequirements

Get requirements for an item based on its tier.
Parameters:
Returns:
Example:

getTierData

Get raw tier data for a specific category and tier.
Example:

getAvailableTiers

Get all available tiers for a category.
Example:

isLoaded

Check if tier data is loaded.

reset

Reset tier data (for testing).

Tier Categories

Melee Equipment

Weapons and armor that use Attack/Defence requirements.
Tiers:

Tools

Hatchets and pickaxes that use Attack + skill requirements.
Tiers:
Fishing tools don’t use the tier system - they have explicit requirements in the item definition.

Ranged Equipment

Bows and ranged armor that use Ranged/Defence requirements.
Tiers:

Magic Equipment

Staffs and robes that use Magic/Defence requirements.
Tiers:

Requirement Precedence

TierDataProvider follows this order when determining requirements:
  1. Explicit requirements (item.requirements.skills) - Highest priority
  2. Tier-derived requirements (from tier-requirements.json)
  3. null (no requirements)
This allows special items (Barrows, quest rewards) to override tier-based requirements.

Manifest Structure

File: packages/server/world/assets/manifests/tier-requirements.json

Integration with DataManager

DataManager uses TierDataProvider during item normalization:
This automatically populates item.requirements from the tier system.