promotional bannermobile promotional banner

MMO Skill Tree & Abilities

(Multiple Languages) MMO Skill Tree adds an RPG-style progression system where every action you take helps you grow stronger.

File Details

MMOSkillTree-0.0.10.jar

  • R
  • Jan 17, 2026
  • 52.78 KB
  • 1.1K
  • Early Access

File Name

MMOSkillTree-0.0.10.jar

Supported Versions

  • Early Access

Changelog

v0.0.10

New Features

  • Crafting XP - New CraftRecipeEventSystem awards XP when crafting items
  • Building XP - New PlaceBlockEventSystem awards XP when placing blocks
  • CRAFTING skill - New general crafting skill type (15 XP per craft by default)
  • BUILDING skill defaults - Placing blocks now awards XP at 50% of the breaking value (e.g., placing stone = 2 XP vs mining stone = 3 XP)

Technical

  • New event/CraftRecipeEventSystem.java - Handles CraftRecipeEvent for crafting XP
  • New event/PlaceBlockEventSystem.java - Handles PlaceBlockEvent for building XP
  • SkillDefaults.getBuildingDefaults() dynamically computes values from mining/woodcutting/excavation at 50%

v0.0.9

New Features

  • Quick threshold commands - Set XP display threshold with /xpd 10, /xpd 20, /xpd 0, etc.

Bugfixes

  • Progress bar display - Fixed progress bar rendering in skill UI

v0.0.8

Bugfixes

  • /mmoconfig reloaddefaults - Now properly saves config after reloading defaults (previously only applied in-memory)

Changes

  • Enhanced notifications - XP gain and level up messages now use the notification system instead of chat messages for better visibility

v0.0.7

New Features

  • ViewXpPage - New custom UI page for viewing skill stats
    • Shows total level, total XP, and number of active skills
    • Displays individual skill progress for all configured skills
    • Only shows skills with XP configuration data (unconfigured skills hidden)
    • Open via player.getPageManager().setPage(ref, store, new ViewXpPage(playerRef))

Technical

  • New pages/ package for custom UI pages
  • UI files in src/main/resources/Common/UI/Custom/Pages/
  • Updated CLAUDE.md with UI page documentation and naming conventions

v0.0.6

New Features

  • /mmoconfig reloaddefaults - New admin command to reset all XP values to built-in defaults from SkillDefaults.java

v0.0.5

New Features

  • Comprehensive default XP values for all Hytale blocks based on official item database
    • Mining: 10+ rock types, 9 ore tiers (Copperβ†’Onyxium), 7 gem types
    • Woodcutting: 30+ tree types across 5 tiers (Commonβ†’Special)
    • Excavation: All soil types including grass, sand, mud, snow, ash
    • Harvesting: Grass, ferns, bushes, flowers, crops, fruits, coral, vines
  • PickupItemEventSystem - Awards XP when picking up items

Changes

  • Professional package structure - Reorganized codebase:
    • api/ - Public API for other plugins
    • command/ - Command handlers
    • config/ - Configuration and defaults
    • data/ - Data models (SkillComponent, SkillType)
    • event/ - Event system handlers
    • service/ - Business logic
    • util/ - Utility classes
  • SkillDefaults.java - Centralized default XP values (separated from config)
  • Updated import paths: com.ziggfreed.mmoskilltree.api.MMOSkillTreeAPI, com.ziggfreed.mmoskilltree.data.SkillType

v0.0.4

Bugfixes

  • Fixed issue with "harvesting" blocks not rewarding xp

v0.0.3

New Skills

New skills added for developers to access via API

New Features

  • Public API (MMOSkillTreeAPI) for other plugins to access player skill data
    • getSkillComponent(PlayerRef) - Get full skill data
    • getXp(PlayerRef, SkillType) / getLevel(PlayerRef, SkillType) - Get specific skill data
    • getTotalXp(PlayerRef) / getTotalLevel(PlayerRef) - Get combined stats
    • getAllXp(PlayerRef) / getAllLevels(PlayerRef) - Get all skills as maps
    • addXp(PlayerRef, SkillType, long) - Add XP (silent)
    • removeXp(PlayerRef, SkillType, long) / setXp(PlayerRef, SkillType, long) - Modify XP
    • getLevelProgress(PlayerRef, SkillType) - Get progress to next level (0.0-1.0)
    • calculateLevelFromXp(long) / getXpRequiredForLevel(int) - Utility methods
    • hasSkillData(PlayerRef) / getSkillTypes() - Helper methods
  • New skill category: Misc (for Building and future utility skills)
  • New trigger types: PLACE_BLOCK, FALL_DAMAGE, TAME_ENTITY, CATCH_FISH

Changes

  • /mmoxp now only shows skills with XP > 0 (cleaner display)
  • Plugin instance now accessed via MMOSkillTreePlugin.getInstance() (singleton pattern)
  • Commands now extend AbstractPlayerCommand with PlayerRef parameter
  • Internal services use API for cache access (DRY principle)
  • Consistent cache keying via PlayerRef.hashCode()

v0.0.2

Changes

  • Changed default XP gain threshold for message display from 0 to 10
  • Fixed permission issue with /xpdisplay command

v0.0.1 - Initial Release

Skills

  • Mining - Gain XP from breaking stone and ores
  • Woodcutting - Gain XP from chopping trees and logs
  • Excavation - Gain XP from digging soil and dirt
  • Harvesting - Gain XP from harvesting plants and crops

Features

  • Quadratic XP scaling formula for balanced progression
  • Per-player XP display preferences (toggle on/off, set minimum threshold)
  • Persistent player data via ECS component codec
  • JSON config file with hot-reload support
  • Pattern-based block matching for flexible XP configuration

Commands

  • /mmoxp - View your skill levels and XP progress
  • /xpdisplay - Configure personal XP notification settings
    • on / off - Toggle XP gain messages
    • threshold --value=<n> - Only show gains >= n XP
    • status - View current settings
  • /mmoconfig (OP only) - Server configuration
    • list --args=<skill|all> - View XP configurations
    • <skill> --args=<pattern|xp> - Set XP for block pattern
    • basexp --args=<value> - Set base XP per level
    • scale --args=<multiplier> - Set leveling speed
    • remove --args=<skill|pattern> - Remove block pattern
    • reload - Reload config from file

Technical

  • Dynamic skill system - adding new skills only requires enum entry + defaults
  • TriggerType system for future event handlers (combat, crafting, etc.)
  • Thread-safe skill caching for command access
  • Auto-generates config on first launch