Item & Tool Requirements

Skill level gates and tool type restrictions

Overview

Two complementary systems control what players can use based on their progression:

  • Item Level Requirements — Check your skill level to use an item (e.g., Mining 50 to use a Mithril pickaxe)
  • Tool Type Requirements — Check what type of tool you're holding (e.g., pickaxes required for ores)

Both systems are disabled by default. Enable them independently from the admin dashboard (/mmoadmin) or in their respective config files when you're ready to add progression gates.

Item Level Requirements

Lock weapons, tools, ores, and other items behind skill level requirements. Players who don't meet the requirements see a red notification and cannot:

  • Mine blocks that have level requirements
  • Use tools that have level requirements (checked when mining)
  • Deal damage with weapons that have level requirements

How It Works

When a player breaks a block, two checks happen:

  1. Does the block have a level requirement? (e.g., Mithril Ore requires Mining 50)
  2. Does the held tool have a level requirement? (e.g., Mithril Pickaxe requires Mining 50)

Both must pass. If either fails, the action is cancelled and a red notification tells the player exactly what levels they need.

For combat, the player's held weapon is checked before damage is applied. If the requirement isn't met, the attack deals no damage.

Requirement Types

  • Single skill: MINING:50 — Requires Mining level 50
  • Multiple skills: MINING:50,SMITHING:30 — Requires both skills at those levels
  • Total level: TOTAL:200 — Requires combined total level of 200
  • Combined: MINING:50,TOTAL:200 — Requires both individual skill and total level

Default Ore Requirements

Ores are gated by Mining level out of the box:

OreRequired Level
CopperMining 1
IronMining 10
SilverMining 20
GoldMining 30
CobaltMining 40
MithrilMining 50
AdamantiteMining 60
ThoriumMining 70
OnyxiumMining 80
Gems (Diamond, Emerald, Ruby, etc.)Mining 50-90

Tools and weapons also have defaults gated by their respective skills (10 tiers from level 1 to 80).

Config File

Config file: mods/mmoskilltree/item-requirements.json

{
  "schemaVersion": 1,
  "enabled": false,
  "overrides": {
    "Ore_Mithril": {
      "skillRequirements": { "MINING": 50 },
      "totalLevelRequired": 0
    },
    "Tool_Pickaxe_Copper": {
      "skillRequirements": { "DISABLED": -1 },
      "totalLevelRequired": -1
    }
  }
}
  • enabled — Master toggle for the entire system (default: false)
  • overrides — Only your customizations. Defaults auto-update with mod versions
  • Set any skill level to -1 to disable a default requirement

Pattern Matching

Item requirements use longest substring matching, the same system as XP maps. The most specific matching pattern takes priority:

  • Ore_Mithril matches all Mithril ore variants
  • Tool_Pickaxe_ matches all pickaxes regardless of material
  • Weapon_Sword_Iron is more specific than Weapon_Sword_

Tool Type Requirements

Require specific tool types to break blocks or specific weapon types to damage mobs. This is separate from level requirements — it checks what you're holding, not your skill level.

Block Tool Requirements

Blocks can require specific tool types to break. Default rules:

  • Ores and rocks → Require pickaxes (Tool_Pickaxe_)
  • Logs → Require axes (Tool_Axe_)
  • Soil, dirt, sand, gravel → Require shovels (Tool_Shovel_)

Players who try to mine ores without a pickaxe (or chop logs without an axe) see a red notification and the action is cancelled.

Mob Weapon Requirements

Mobs can require specific weapon types to take damage. No defaults are configured — all weapons work on all mobs by default. Server owners can add custom rules for special encounters (e.g., ethereal enemies needing magic staves, armored enemies needing blunt weapons).

Config File

Config file: mods/mmoskilltree/action-requirements.json

{
  "schemaVersion": 1,
  "enabled": false,
  "blockToolOverrides": {
    "Ore_": {
      "allowedPatterns": ["Tool_Pickaxe_"]
    }
  },
  "mobWeaponOverrides": {}
}
  • enabled — Master toggle (default: false)
  • blockToolOverrides — Block pattern to allowed tool patterns
  • mobWeaponOverrides — Mob pattern to allowed weapon patterns
  • Empty allowedPatterns list disables the requirement (allows anything)

How Both Systems Work Together

When mining a block, checks happen in this order:

  1. Tool type check — Are you holding the right type of tool? (Action Requirements)
  2. Block level check — Is your skill level high enough for this block? (Item Requirements)
  3. Tool level check — Is your skill level high enough for your tool? (Item Requirements)

If any check fails, the action is cancelled with a notification explaining what's needed.

Admin UI

Both systems have dedicated admin pages accessible from /mmoadmin:

  • Item Requirements — Browse by category (Tools, Weapons, Armor, Blocks), view defaults vs overrides, add/edit/disable patterns. Input format: SKILL:LEVEL,SKILL:LEVEL,TOTAL:LEVEL
  • Tool Requirements — Browse block tool requirements and mob weapon requirements in separate tabs. Add/edit patterns with comma-separated tool lists

Both pages include enable/disable toggles, status indicators (Default, Override, Disabled), and standard override management (Add, Disable, Reset, Trim).

Reference Files

Default values are written to reference files on each server start:

  • mods/mmoskilltree/_reference/defaults-item-requirements.json
  • mods/mmoskilltree/_reference/defaults-action-requirements.json

These files are auto-generated and read-only — use them as a reference when creating overrides.