XP Values Configuration
Customize XP per block, item, and weapon
Overview
XP values are stored in mods/mmoskilltree/xp-maps.json using an override-based system. The file only contains your customizations - defaults are built into the mod.
Pattern Matching
Block and item IDs use substring matching:
Ore_matches ALL ores (Ore_Iron_, Ore_Diamond_, etc.)Ore_Diamond_matches only diamond ore variantsWood_Logmatches all log types
Modded Weapons: MMO_Weapon_Type Tag Fallback
Added in v1.0.3. Mod authors who ship new weapons can route them to a combat skill without requiring server admins to edit xp-maps.json by adding a single tag to their item JSON. When the regular xp-map lookup misses for a held item, the resolver checks the item's MMO_Weapon_Type raw tag and routes XP to the first listed value that matches a registered skill.
Where the tag goes
Add an MMO_Weapon_Type entry to the tags object at the top level of your item JSON, alongside the standard Hytale Type / Family entries. The value is a JSON array of strings — at least one must be the name of a registered skill (built-in or custom).
{
"id": "Weapon_CustomBlade_Crystalsteel",
"displayName": "Crystalsteel Blade",
"quality": "Epic",
"tags": {
"Type": ["Weapon"],
"Family": ["Longsword"],
"MMO_Weapon_Type": ["POLEARMS"]
}
}Matching rules
- Case-insensitive.
["PoleArms"],["polearms"], and["POLEARMS"]all route to the same POLEARMS skill. - First-match-wins on multi-value arrays. Given
["UNKNOWN_SKILL", "BLUNT"], the resolver skipsUNKNOWN_SKILL(not registered) and routes toBLUNT. Use this to declare a primary skill with fallbacks. - Any registered skill is accepted — built-in (e.g. SWORDS, MAGIC, ARCHERY) or custom (added via
custom-skills.json). No filter on combat-vs-gathering, so a modder could deliberately route a weapon to MINING for themed content. - Only fires when the xp-map lookup misses. If your item ID substring-matches an entry in any skill's xp-map (e.g. ID contains
Weapon_Longsword_which is in the SWORDS map), that wins — the tag is not consulted. Existing tagged-and-mapped weapons keep their xp-map routing. - Falls through to UNARMED if neither the xp-map nor any tag value matches a registered skill — same as the pre-1.0.3 behavior for unmapped weapons.
What the tag affects
Routing-only — once the resolver picks a skill, the rest of the system treats the tag-routed weapon exactly like any other weapon for that skill:
- Damage-based combat XP (the
damage_basedanddamage_plus_killmodes) routes 1:1 damage XP to the tagged skill. This is the primary win — modded weapons immediately earn XP for the right skill. - Weapon-gated damage rewards, lifesteal, and crit from the tagged skill's tree fire under that skill (e.g. POLEARMS-filtered
forFullHprewards, SWORDS Riposte capstone weapon gate). - Active ability cast predicates that require a specific weapon skill see the tagged skill (e.g. POLEARMS-locked abilities can be cast holding a tag-routed POLEARMS weapon).
- The View XP page's "Equipped Weapon Skill" line displays the tagged skill name and shows the matching combat-stat buffs panel.
Routing does not change XP amounts. In per_hit mode and the kill-XP weapon-quality bonus (weaponXpScaling), tag-routed weapons award 0 XP / 0% bonus until you add an explicit item-ID entry to xp-maps.json for that weapon. Admins who want fine-grained per-weapon XP values for a tagged modded weapon can still add an entry — that entry takes priority over the tag fallback.
Commands
# Set XP for a pattern
/mmoconfig mining --args=Ore_Diamond_|150
# Set XP for all ores (wildcard)
/mmoconfig mining --args=Ore_|25
# View current values
/mmoconfig list --args=mining
# View only your customizations
/mmoconfig diff --args=mining
# Reset a pattern to default
/mmoconfig remove --args=mining|Ore_Diamond_
# Disable a pattern (no XP)
/mmoconfig disable --args=mining|Wood_LogFile Structure
{
"schemaVersion": 1,
"xpMaps": {
"MINING": {
"Ore_Iron_": 50,
"Ore_Diamond_": 150,
"Wood_Log": -1
},
"WOODCUTTING": {
"Wood_Oak": 10
}
}
}Special Values
-1- Explicitly disable a pattern (no XP given)0- Pattern gives zero XP (still processed)- Positive number - XP awarded for matching blocks/items
Decimal Values
XP values accept decimals — e.g. 0.5, 2.5, 12.75. Useful when you want weapon scaling (which multiplies weapon XP into mob-kill XP) to resolve to small, specific base amounts. Applies to both xp-maps.json and mob-kill-xp.json.
Reference Files
Check mods/mmoskilltree/_reference/defaults-xp-maps.json for all default values. This file is auto-generated and read-only.
Admin UI
Use /mmoadmin → "Edit XP Values" for a visual editor:

- Browse by category and skill
- See default vs. current values
- Status indicators: Default (green), Override (orange), Disabled (red)
- Click pattern name to copy to text field
Best Practices
- Use specific patterns before wildcards (more specific = higher priority)
- Test with
/mmoconfig listto verify patterns match correctly - Use
/mmoconfig trimto remove redundant overrides - Back up your
xp-maps.jsonbefore major changes