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:
| Field | Required | Description |
|---|---|---|
| ID | Yes | Unique identifier (auto-uppercased, e.g., HERBALISM). Cannot match a built-in skill name |
| Display Name | Yes | Name shown to players in the UI (e.g., "Herbalism") |
| Category | No | One of: Gathering, Combat, Crafting, Misc. Defaults to Misc |
| Description | No | Admin-facing description for reference |
| Trigger Types | No | Which 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.
| Trigger | Event | Example Use |
|---|---|---|
| Break Block | Breaking blocks | Mining, woodcutting, gathering |
| Place Block | Placing blocks | Building, construction |
| Melee Damage | Dealing physical damage | Custom weapon skills |
| Take Damage | Receiving damage | Defense, endurance |
| Fall Damage | Surviving falls | Acrobatics, parkour |
| Craft Item | Crafting at stations | Specialty crafting |
| Kill Entity | Killing mobs | Hunting, bounty skills |
| Tame Entity | Taming creatures | Beast mastery |
| Catch Fish | Catching/killing fish | Fishing 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
| Field | Type | Description |
|---|---|---|
schemaVersion | int | Must be 1 |
skills | array | Custom skill definitions (see fields table above) |
disabledBuiltinSkills | array | Built-in skill IDs to disable (e.g., ["TAMING", "FISHING"]) |
defaultMaxLevel | int | Default max level for all skills (default: 200) |
maxLevels | object | Per-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_FISHExample: Adding a Custom Skill
- Open
/mmoadmin→ Custom Skills - Enter an ID (e.g.,
HERBALISM) and display name - Select a category (Gathering) and trigger types (Break Block)
- Click Save
- Go to Edit XP Maps and select your new skill
- Add XP patterns for the blocks that should award XP
- Optionally add skill tree tiers via Edit Skill Tree
- Optionally add item rewards via Edit Rewards
Changes are saved immediately to config files and take effect without a server restart.