KyuubiSoft Achievement System

A comprehensive achievement and title system for Hytale servers — 200+ achievements across 6 categories, 80+ unlockable titles, achievement chains with grouped display, a HUD tracker, achievement points as shop currency, a full in-game admin panel, and complete localization support.
Features
200+ Achievements
Achievements across 6 categories — each with tiered chains and unique rewards:
- Combat — Monster hunting chains, boss kills, PvP milestones, specific creature hunts
- Progression — Mining, crafting, building chains with tiered rewards
- Exploration — Zone discovery, distance traveled, world exploration
- Social — Chat milestones, playtime achievements, community engagement
- Husbandry — Animal taming, fishing, farming progression
- Secret — Hidden achievements with fun references
80+ Unlockable Titles
- Unlock titles by completing achievements
- Display titles above your name or as chat prefix
- Select your active title via the Title Selection UI
- Titles come in various rarities with unique colors
- Clear your title at any time
Achievement Chains
Achievement chains like "Miner I -> II -> III -> IV" are displayed as a single entry:
- Progress indicator shows completion at a glance
- Shows what's needed for the next tier
- Reduces UI clutter while maintaining full information
- Track button follows the chain — always tracks the next unfinished tier
Achievement Points
Earn points for every achievement you unlock:
| Difficulty |
Points |
| Normal |
10 |
| Hard |
25 |
| Epic |
50 |
- Shop currency — spend achievement points in the Core shop system
- Cross-mod — other mods can query and modify points via the API
- Persistent — points saved per player
Achievement Gallery
Open with /ksachievements — browse all achievements in a beautiful gallery UI.
- Category tabs with achievement counts
- Chain grouping — chains displayed as single expandable entries
- Difficulty badges with color coding (Normal, Hard, Epic)
- Unlock dates — completed achievements show their unlock date
- Reward preview — see rewards before unlocking
- Track/Untrack — pin achievements to the HUD
- Quick-access buttons — jump to Titles, Rewards, or Settings
- Custom icons — pixel-art icons for all buttons and navigation
- Pagination with icon-based Previous/Next buttons
HUD Tracker
Real-time achievement progress on screen.
- Track up to 3 achievements simultaneously
- Shows achievement name, progress count, and percentage (e.g. "15/50 — 30%")
- Difficulty color indicators — Normal (brown), Hard (gold), Epic (purple)
- Auto-untrack — achievements are removed from the tracker when unlocked
- Chain support — tracking automatically follows to the next tier
- 6 position presets + custom X/Y positioning
- Per-player settings — each player saves their own HUD preferences
- MHUD-compatible (separate identifier from Quest Tracker)
Achievement Settings
- Toggle HUD on/off
- Choose position preset or set custom coordinates
- Toggle progress display
- Live preview while adjusting
- Apply/Reset buttons
Rewards System
- Item Rewards — receive tools, weapons, armor, materials
- Title Rewards — unlock exclusive titles
- Lootbag Rewards — random loot via Core's lootbag system
- Command Rewards — execute commands on unlock
- Pending Rewards — unclaimed rewards are saved and can be collected later
- "Collect All" button — claim all pending rewards at once (including lootbags)
Achievement Book Item
- Physical in-game item that opens the Achievement Gallery on right-click
- Configurable: enable/disable, custom item ID, hotbar slot, give on first/every join
- Duplicate check — item is only given if the player doesn't already have one
NPC Integration
- NPC Interact tracking — talk to specific NPCs for achievement progress
- Dialog Complete tracking — finish dialog conversations for achievements
- Dialog Conditions — show/hide dialog options based on achievement status (
achievement_unlocked, achievement_count)
Trigger Types
| Trigger |
Description |
Example Targets |
kills |
Kill mobs/creatures |
Goblin_*, Fen_Stalker, any_mob |
player_kills |
PvP kills |
player |
blocks_mined |
Mine blocks |
Ore_*, Rock_Stone, any |
blocks_placed |
Place blocks |
Bench_Furnace, any |
blocks_harvested |
Harvest with F-key |
Plant_Crop_*, any |
items_crafted |
Craft items |
Weapon_Sword_*, Potion_* |
items_collected |
Collect items (inventory) |
Ore_*, @consumable |
damage_dealt |
Deal damage |
any, any_mob, specific mob |
damage_taken |
Take damage |
any, cause type |
zones_discovered |
Discover zones |
Forgotten_Temple, any |
distance_walked |
Distance traveled |
any |
playtime_minutes |
Time played |
any |
flowers_picked |
Pick flowers |
Plant_Flower_*, any |
npc_interact |
Talk to NPC |
NPC citizen ID |
dialog_complete |
Finish dialog |
Dialog ID |
full_armor_set |
Wear complete set |
Armor set ID |
manual |
Admin command / script |
— |
auto_on_prerequisites |
Auto-unlock when prerequisites met |
— |
Anti-exploit: PlacedBlockTracker prevents mining self-placed blocks (30min expiry).
Admin Panel
Accessible through /ksachievementadmin panel or the Core Admin Dashboard — full in-game configuration.
7 Tabs
| Tab |
Description |
| General |
Language, display settings, permissions, general options |
| Display |
Chat format, nametag format, broadcast settings |
| Notifications |
Toast, chat, sound, and broadcast settings |
| Tracking |
Anti-exploit settings, tracking intervals |
| Admin |
Export data, manage player data |
| Prefixes |
Group prefix CRUD with LuckPerms import |
| Achievements |
Browse, create, edit, copy, delete achievements |
Achievement Editor
- Full CRUD for custom achievements
- Visual item picker for icons and reward items
- Multi-language editing (EN, DE, FR) for names, descriptions, and titles
- Up to 10 rewards per achievement with dynamic slot management
- Prerequisite editor for achievement chains
- Standard achievements are read-only — clone as custom to modify
Working Copy System
- All changes held in memory until SAVE is clicked
- Asterisk indicator shows unsaved changes
- Cancel discards all pending changes
- Reload from Disk reloads the file without restarting
Commands
Player Commands
| Command |
Aliases |
Description |
/ksachievements |
— |
Open the Achievement Gallery |
/kstitles |
/title |
Open the Title Selection UI |
/kstitles clear |
— |
Remove your active title |
/ksrewards |
/reward, /rw |
Open pending rewards |
/kslootbags |
/lb, /lootbag |
Open lootbag inventory |
Admin Commands
| Command |
Description |
/ksachievementadmin panel |
Open Admin Panel |
/ksachievementadmin grant <player> <achievement> |
Grant an achievement |
/ksachievementadmin revoke <player> <achievement> |
Revoke an achievement |
/ksachievementadmin list <player> |
View player achievements |
/ksachievementadmin simulate <trigger> |
Test trigger conditions |
/ksachievementadmin reload |
Reload configuration |
Permission: achievements.admin
Configuration
KyuubiSoft-Achievements/
├── config.json # Main settings (display, notifications, tracking)
├── configs/
│ └── achievements.json # Standard achievement definitions (200+)
├── custom/
│ ├── custom_achievements.json # Your custom achievements
│ └── custom_lootbags.json # Your custom lootbags
├── data/
│ └── <uuid>.json # Per-player data (auto-managed)
└── localization/
├── en-US.json # English translations
├── de-DE.json # German translations
└── fr-FR.json # French translations
Achievement Definition Example
{
"id": "dragon_slayer_fire",
"category": "combat",
"iconItem": "Weapon_Sword_Adamantite",
"difficulty": "epic",
"title": { "id": "dragonslayer", "color": "#FF0000" },
"trigger": { "type": "kills", "target": "Dragon_Fire", "count": 1 },
"rewards": [
{ "type": "item", "itemId": "Ore_Adamantite", "amount": 10 },
{ "type": "lootbag", "lootbagId": "dragon_hoard" }
]
}
For Mod Developers
Access the Achievement System through the public AchievementAPI:
AchievementAPI api = AchievementAPI.getInstance();
// Event Listeners
api.onAchievementUnlocked((player, achievementId) -> { ... });
// Queries
boolean unlocked = api.isUnlocked(player, "dragon_slayer");
int points = api.getAchievementPoints(player);
// Points Management
api.addAchievementPoints(player, 50);
api.spendAchievementPoints(player, 25);
// Title Management
api.setActiveTitle(player, "dragonslayer");
String titleName = api.getTitleDisplayName("dragonslayer");
Localization
- Auto-discovery — all
.json files in the localization folder are automatically loaded
- Shipped with: English, German, and French
- All UI text, tooltips, admin panel labels, and command messages fully translated
- JSON-based translation files — easy to add new languages
Compatibility
- Integrates with: Quest System, LuckPerms, MHUD
- Server: Hytale Dedicated Server
- Java: 21+
Support
Made with Love by KyuubiSoft