Custom Skills

Create your own skills and configure max levels

Overview

Custom Skills let you define entirely new skills beyond the 25 built-in ones. Each custom skill has a unique ID, display name, category, and trigger types — all configurable through the admin UI or mods/mmoskilltree/custom-skills.json.

You can also disable built-in skills you don't want on your server, and set per-skill max levels to control progression.

Admin UI

The easiest way to manage custom skills is through the admin dashboard. Open /mmoadmin and click Custom Skills.

The page has three sections:

  • Max Level Management — Set a default max level for all skills and override it per-skill. Skills with overrides are highlighted orange
  • Built-in Skills — View all 25 built-in skills with their category and trigger types. Toggle any skill on/off
  • Custom Skills — Create, edit, and delete custom skills with a visual form

Creating Custom Skills

Each custom skill has these fields:

FieldRequiredDescription
IDYesUnique identifier (auto-uppercased, e.g., HERBALISM). Cannot match a built-in skill name
Display NameYesName shown to players in the UI (e.g., "Herbalism")
CategoryNoOne of: Gathering, Combat, Crafting, Misc. Defaults to Misc
DescriptionNoAdmin-facing description for reference
Trigger TypesNoWhich events award XP to this skill (see below)

Trigger Types

Trigger types determine which in-game events award XP to the skill. A custom skill can have multiple triggers.

TriggerEventExample Use
Break BlockBreaking blocksMining, woodcutting, gathering
Place BlockPlacing blocksBuilding, construction
Melee DamageDealing physical damageCustom weapon skills
Take DamageReceiving damageDefense, endurance
Fall DamageSurviving fallsAcrobatics, parkour
Craft ItemCrafting at stationsSpecialty crafting
Kill EntityKilling mobsHunting, bounty skills
Tame EntityTaming creaturesBeast mastery
Catch FishCatching/killing fishFishing variants

Multiple triggers allow a single skill to level from different actions. For example, a "Survival" skill could trigger on Break Block, Kill Entity, and Take Damage.

XP Configuration

Custom skills have no default XP values — you must configure which blocks, items, or mobs award XP. Use the XP Maps editor in the admin dashboard or edit xp-maps.json directly.

// xp-maps.json - XP patterns for a custom "HERBALISM" skill
{
  "HERBALISM": {
    "Plant_": 15,
    "Flower_": 10,
    "Herb_Rare": 50,
    "Mushroom_": 20
  }
}

Pattern matching works the same as built-in skills: prefix patterns like Plant_ match any block starting with that prefix. Use -1 to explicitly disable a pattern.

Full Feature Integration

Custom skills integrate with all existing systems:

  • Skill Trees — Add reward tiers through the Skill Tree editor. Custom skills support a "+" button to add new tiers since they have no built-in defaults. Combat rewards (Damage, Crit, Lifesteal, Parry) can target your custom skill ID — just enter the skill ID in the Target field
  • Item Rewards — Configure command rewards at milestones, just like built-in skills
  • XP Maps — Appears in the XP Maps admin editor alongside built-in skills
  • Leaderboards — Custom skills appear in leaderboard rankings and category totals
  • XP Tokens — Not automatically generated; tokens are only created for built-in implemented skills
  • Item Requirements — Reference custom skills in level requirements (e.g., HERBALISM:5,MINING:10)
  • Permissions — When skill permissions are enabled, custom skills follow the same permission pattern

Disabling Built-in Skills

Any of the 25 built-in skills can be disabled from the Custom Skills admin page. Disabled skills:

  • Are hidden from all player-facing UI pages
  • Stop awarding XP from any source
  • Are excluded from leaderboards and total level calculations
  • Are hidden from admin editors (XP Maps, Skill Tree, etc.)
  • Player XP data is preserved — re-enabling a skill restores all progress

Per-Skill Max Levels

Control how far players can level each skill. The default max level is 200 for all skills. Override it per-skill to create different progression caps.

  • Once a skill reaches its max level, no further XP is awarded
  • Applies to both built-in and custom skills
  • Configurable via the admin UI or custom-skills.json

Config File Reference

Custom skill definitions are stored in mods/mmoskilltree/custom-skills.json using the override-based config system.

{
  "schemaVersion": 1,
  "skills": [
    {
      "id": "HERBALISM",
      "displayName": "Herbalism",
      "category": "GATHERING",
      "description": "Gather and collect herbs",
      "triggerTypes": ["BREAK_BLOCK"]
    },
    {
      "id": "BEAST_HUNTING",
      "displayName": "Beast Hunting",
      "category": "COMBAT",
      "description": "Track and hunt dangerous creatures",
      "triggerTypes": ["KILL_ENTITY", "DEAL_DAMAGE_PHYSICAL"]
    }
  ],
  "disabledBuiltinSkills": ["TAMING"],
  "defaultMaxLevel": 200,
  "maxLevels": {
    "HERBALISM": 150,
    "MINING": 300
  }
}

Config Fields

FieldTypeDescription
schemaVersionintMust be 1
skillsarrayCustom skill definitions (see fields table above)
disabledBuiltinSkillsarrayBuilt-in skill IDs to disable (e.g., ["TAMING", "FISHING"])
defaultMaxLevelintDefault max level for all skills (default: 200)
maxLevelsobjectPer-skill max level overrides (e.g., {"MINING": 300})

Trigger Type Names for Config

When editing the JSON directly, use these trigger type names:

BREAK_BLOCK, PLACE_BLOCK, DEAL_DAMAGE_PHYSICAL,
TAKE_DAMAGE, FALL_DAMAGE, CRAFT_ITEM,
KILL_ENTITY, TAME_ENTITY, CATCH_FISH

Example: Adding a Custom Skill

  1. Open /mmoadmin → Custom Skills
  2. Enter an ID (e.g., HERBALISM) and display name
  3. Select a category (Gathering) and trigger types (Break Block)
  4. Click Save
  5. Go to Edit XP Maps and select your new skill
  6. Add XP patterns for the blocks that should award XP
  7. Optionally add skill tree tiers via Edit Skill Tree
  8. Optionally add item rewards via Edit Rewards

Changes are saved immediately to config files and take effect without a server restart.