MMO Skill Tree Integration
MMO Skill Tree Integration
Section titled “MMO Skill Tree Integration”Complete integration with the MMO Skill Tree plugin for automatic skill-based achievements and XP rewards.
Overview
Section titled “Overview”The Achievement System integrates with MMO Skill Tree to provide:
- Automatic Skill Achievements - Plugin polls skill levels every 30 seconds and grants achievements
- XP Bonus Rewards - Achievements can grant MMO Skill Tree XP as rewards
- Conditional Loading - MMO achievements only load when MMO Skill Tree is installed
Key Features
Section titled “Key Features”- 121 new achievements across all 23 skills
- 98 new titles for skill mastery
- Fully automatic - No admin configuration required
- Soft dependency - Works without MMO Skill Tree installed
- Catch-up mechanism - Grants missed achievements on player join
How It Works
Section titled “How It Works”Automatic Tracking
Section titled “Automatic Tracking”┌─────────────────────────────────────────────────────────────┐│ PLAYER JOIN │├─────────────────────────────────────────────────────────────┤│ 1. Fetch all skill levels via MMOSkillTreeAPI ││ 2. Compare each skill level with milestones ││ 3. Grant all reached achievements (catch-up) ││ 4. Cache current levels │└─────────────────────────────────────────────────────────────┘ ↓┌─────────────────────────────────────────────────────────────┐│ PERIODIC CHECK (every 30 seconds) │├─────────────────────────────────────────────────────────────┤│ For each online player: ││ 1. Fetch current levels ││ 2. Compare with cached levels ││ 3. On level-up → Check & grant achievements ││ 4. Update cache │└─────────────────────────────────────────────────────────────┘Conditional Loading
Section titled “Conditional Loading”Server Start:1. Achievement Plugin loads standard achievements2. MMO Skill Tree integration is checked3. If available: mmo_skills_achievements.json is loaded4. SkillLevelTracker is activated
Without MMO Skill Tree:- No MMO achievements in gallery- No SkillLevelTracker active- No performance costNo Configuration Required!
Section titled “No Configuration Required!”The integration works fully automatically:
- Install MMO Skill Tree plugin
- Install Achievement plugin
- Done!
The Achievement Plugin:
- Automatically detects if MMO Skill Tree is installed
- Loads MMO Skill achievements only when available
- Polls skill levels of all online players every 30 seconds
- Automatically grants achievements at reached milestones
- Catches up on missed achievements on player join
Supported Skills
Section titled “Supported Skills”MMO Skill Tree includes 23 skills across 4 categories:
Gathering Skills (5)
Section titled “Gathering Skills (5)”| Skill | Description |
|---|---|
| Mining | Mining ores and stone |
| Woodcutting | Chopping trees |
| Excavation | Digging dirt and sand |
| Harvesting | Gathering crops |
| Fishing | Catching fish |
Combat Skills (11)
Section titled “Combat Skills (11)”| Skill | Description |
|---|---|
| Swords | Sword combat |
| Daggers | Dagger combat |
| Polearms | Spear and polearm combat |
| Staves | Staff combat |
| Axes | Axe combat |
| Blunt | Mace and hammer combat |
| Archery | Bow and crossbow |
| Unarmed | Hand-to-hand combat |
| Defense | Damage reduction |
| Taming | Pet taming |
| Acrobatics | Dodge and fall damage |
Crafting Skills (6)
Section titled “Crafting Skills (6)”| Skill | Description |
|---|---|
| Crafting | General crafting |
| Repair | Item repair |
| Alchemy | Potion brewing |
| Enchanting | Enchantments |
| Cooking | Food preparation |
| Smithing | Metal working |
Miscellaneous (1)
Section titled “Miscellaneous (1)”| Skill | Description |
|---|---|
| Building | Construction |
Achievement Structure
Section titled “Achievement Structure”Per-Skill Achievements (23 Skills × 5 Levels = 115)
Section titled “Per-Skill Achievements (23 Skills × 5 Levels = 115)”| Level | Achievement ID | Difficulty | Title |
|---|---|---|---|
| 10 | {skill}_apprentice | Normal | - |
| 25 | {skill}_journeyman | Normal | Journeyman |
| 50 | {skill}_expert | Hard | Expert |
| 75 | {skill}_master | Hard | Master |
| 100 | {skill}_grandmaster | Epic | Grandmaster |
Total Level Achievements (6)
Section titled “Total Level Achievements (6)”| Total Level | Achievement ID | Title |
|---|---|---|
| 100 | total_level_100 | Adventurer |
| 500 | total_level_500 | Veteran |
| 1000 | total_level_1000 | Elite |
| 1500 | total_level_1500 | Legend |
| 2000 | total_level_2000 | Mythic |
| 2300 | total_level_max | Completionist |
Category Mastery (Optional)
Section titled “Category Mastery (Optional)”| Achievement | Requirement | Title |
|---|---|---|
gathering_master | All Gathering skills at 100 | Gathering Master |
combat_master | All Combat skills at 100 | Combat Master |
crafting_master | All Crafting skills at 100 | Crafting Master |
Titles
Section titled “Titles”Skill Titles (4 per skill)
Section titled “Skill Titles (4 per skill)”| Level | Format | Example (Mining) | Color |
|---|---|---|---|
| 25 | {Skill} Journeyman | Mining Journeyman | #A0A0A0 (Gray) |
| 50 | {Skill} Expert | Mining Expert | #8B4513 (Brown) |
| 75 | {Skill} Master | Mining Master | #C0C0C0 (Silver) |
| 100 | Grandmaster {Skill} | Grandmaster Miner | #FFD700 (Gold) |
Total Level Titles
Section titled “Total Level Titles”| Level | Title | Color |
|---|---|---|
| 100 | Adventurer | #90EE90 (Light Green) |
| 500 | Veteran | #4682B4 (Steel Blue) |
| 1000 | Elite | #9400D3 (Purple) |
| 1500 | Legend | #FF8C00 (Orange) |
| 2000 | Mythic | #DC143C (Crimson) |
| 2300 | Completionist | #FFD700 (Gold) |
XP Rewards
Section titled “XP Rewards”Achievements can grant MMO Skill Tree XP as rewards using the mmo_xp reward type.
Configuration
Section titled “Configuration”{ "type": "mmo_xp", "skill": "Mining", "amount": 5000}| Field | Type | Description |
|---|---|---|
type | string | "mmo_xp" |
skill | string | Skill name or "all" for all skills |
amount | number | XP amount to grant |
Examples
Section titled “Examples”Single Skill XP:
{ "rewards": [ { "type": "mmo_xp", "skill": "Mining", "amount": 5000 } ]}All Skills XP:
{ "rewards": [ { "type": "mmo_xp", "skill": "all", "amount": 1000 } ]}XP Reward in Total Level Achievements
Section titled “XP Reward in Total Level Achievements”{ "id": "total_level_1000", "category": "mmo_skills", "iconItem": "Material_Gold_Ingot", "difficulty": "epic", "requires": "total_level_500", "title": { "id": "elite", "color": "#9400D3" }, "trigger": { "type": "manual" }, "rewards": [ { "type": "mmo_xp", "skill": "all", "amount": 10000 } ]}Custom MMO Achievements
Section titled “Custom MMO Achievements”You can create custom achievements using the skill_level trigger type.
Trigger Configuration
Section titled “Trigger Configuration”{ "trigger": { "type": "skill_level", "target": "MINING", "count": 50 }}| Field | Type | Description |
|---|---|---|
type | string | "skill_level" |
target | string | Skill name, "any", or "total" |
count | number | Minimum level required |
Target Options
Section titled “Target Options”| Target | Description |
|---|---|
"MINING" | Specific skill (use uppercase) |
"any" | Any skill reaches the level |
"total" | Total level (sum of all skills) |
Example: Custom Achievement
Section titled “Example: Custom Achievement”{ "id": "dual_master", "category": "mmo_skills", "iconItem": "Tool_Pickaxe_Diamond", "difficulty": "epic", "trigger": { "type": "manual" }, "title": { "id": "dual_master", "color": "#FFD700" }, "rewards": [ { "type": "lootbag", "lootbagId": "legendary_hoard" }, { "type": "mmo_xp", "skill": "all", "amount": 5000 } ]}Localization
Section titled “Localization”Achievement Names
Section titled “Achievement Names”# Skill Achievementsachievements.name.mining_apprentice=Mining Apprenticeachievements.name.mining_journeyman=Mining Journeymanachievements.name.mining_expert=Mining Expertachievements.name.mining_master=Mining Masterachievements.name.mining_grandmaster=Grandmaster Miner
# Total Levelachievements.name.total_level_100=First Stepsachievements.name.total_level_500=Veteran Adventurerachievements.name.total_level_1000=Elite Statusachievements.name.total_level_1500=Living Legendachievements.name.total_level_2000=Mythic Beingachievements.name.total_level_max=The CompletionistAchievement Descriptions
Section titled “Achievement Descriptions”achievements.desc.mining_apprentice=Reach Mining level 10achievements.desc.mining_expert=Reach Mining level 50achievements.desc.mining_grandmaster=Reach Mining level 100
achievements.desc.total_level_100=Reach a total skill level of 100achievements.desc.total_level_max=Reach maximum total skill level (2300)Titles
Section titled “Titles”titles.name.mining_journeyman=Mining Journeymantitles.name.mining_expert=Mining Experttitles.name.mining_master=Mining Mastertitles.name.grandmaster_miner=Grandmaster Miner
titles.name.adventurer=Adventurertitles.name.veteran=Veterantitles.name.elite=Elitetitles.name.legend=Legendtitles.name.mythic=Mythictitles.name.completionist=CompletionistReward Messages
Section titled “Reward Messages”achievements.reward.mmo_xp=+{amount} XP for {skill}!achievements.reward.mmo_xp_all=+{amount} XP for all skills!Troubleshooting
Section titled “Troubleshooting”Achievements Not Appearing
Section titled “Achievements Not Appearing”-
Verify MMO Skill Tree is installed:
Check plugins folder for MMOSkillTree.jar -
Check server logs:
Look for "MMO Skill Tree integration enabled" -
Restart the server: Integration is checked on startup
XP Rewards Not Working
Section titled “XP Rewards Not Working”-
Check skill name spelling: Use exact skill names (e.g.,
"Mining", not"mining") -
Verify MMO Skill Tree API: Check server logs for API errors
-
Test with admin command:
/achievementadmin grant <player> total_level_100
Skill Level Not Updating
Section titled “Skill Level Not Updating”-
Wait for polling cycle: Levels are checked every 30 seconds
-
Force check on rejoin: Player disconnect/reconnect triggers catch-up
-
Check cached levels: Cache may be out of sync after server issues
Technical Details
Section titled “Technical Details”API Integration
Section titled “API Integration”The plugin uses reflection to access MMO Skill Tree API:
// Level queriesMMOSkillTreeAPI.getLevel(store, ref, skillType)MMOSkillTreeAPI.getTotalLevel(store, ref)MMOSkillTreeAPI.getAllLevels(store, ref)
// XP manipulationMMOSkillTreeAPI.addXp(store, ref, skillType, amount)
// Skill enumerationMMOSkillTreeAPI.getSkillTypes()Soft Dependency Pattern
Section titled “Soft Dependency Pattern”The integration follows the same pattern as LuckPerms:
- Lazy initialization on first access
- Graceful fallback if not available
- No hard dependency in plugin.yml
Performance
Section titled “Performance”- Polling interval: 30 seconds
- Per-player cost: Minimal (single API call)
- Cache strategy: Level changes only trigger checks
- No performance impact when MMO Skill Tree is not installed