Skip to content

Achievements

okereke-dev edited this page Jul 17, 2026 · 4 revisions

Achievements

RPGMood tracks 35 achievements across exploration, combat, survival, farming, and β€” if RPGLoot is installed β€” loot. Progress and unlocks are persisted per-player in plugins/RPGMood/achievements.yml and survive restarts.

Check your progress with /rpgmood achievements β€” see Commands. The command groups achievements by category and shows a per-category count.


Exploration

Icon Name Requirement
🚢 First Steps Enter your first zone
πŸ—ΊοΈ World Explorer Discover 10 different zones
🌍 Seasoned Traveler Discover 25 different zones
🌌 Void Walker Survive the End
πŸŒ‘ Deep Broker Trade with a wandering trader while in the Deep Dark
πŸ—ΊοΈ Cartographer's Errand Complete a cartographer village quest
🏠 Local Favorite Reach 25 reputation in a single village

"Different zones" counts distinct zone cluster keys ever entered β€” revisiting the same zone doesn't add to the count. See Zones.

As of v1.10.0, the old Cartographer achievement ("discover every zone defined in zones.yml") no longer exists β€” it depended on the curated zones.yml zone list that was removed when zones became fully cluster-driven, and has no cluster-era equivalent. Don't confuse it with the new, unrelated Cartographer's Errand above, which tracks the villager profession's crop/emerald quest instead.

Combat

Icon Name Requirement
βš”οΈ Slayer Initiate Kill 10 scaled mobs
πŸ—‘οΈ Slayer Veteran Kill 100 scaled mobs
πŸ‘‘ Slayer Legend Kill 500 scaled mobs
πŸ”₯ Danger Seeker Kill a level 30+ mob
πŸ₯· Untouchable Kill a level 20+ mob that never damaged you (directly or via projectile) during the fight
πŸ† Godslayer Kill the Warden, Wither, Elder Guardian, and Ender Dragon (doesn't require RPGMood scaling β€” any kill of these four counts)
🎯 Overkill Kill a level 30+ mob that drops a Legendary RPGLoot item

Survival

Icon Name Requirement
⭐ Immortal Survive 24 MC days without dying
πŸ¦‰ Night Owl Survive 30 nights
πŸŒͺ️ Storm Chaser Get struck by lightning and survive
πŸ’€ Death Tourist Die in 8 different biomes

Farming

Icon Name Requirement
🌾 Farmer Harvest 50 crops
🌟 Master Farmer Harvest a Gold-quality crop
🍳 Chef Cook 10 recipes
πŸ‘¨β€πŸ³ Gourmet Cook all recipes
🌸 First of the Season Witness a season change
🌈 Four Seasons Witness all 4 seasons change
πŸ„ Noah's Ark Own one of every animal type (cow/chicken/sheep/goat)
πŸ’• Beloved Get any animal to max affection (5 hearts)
🏡️ Green Thumb Harvest a Gold-quality crop of every crop type defined in farming.yml
🧾 Market Day Complete any villager (or wandering trader) trade
🌻 Seasonal Shopper Complete a seasonal Farmer/Cleric trade

See Farming for crop quality, seasons, and animal mechanics, and Villages for trading, reputation, and cartographer quests.

Loot (RPGLoot integration)

Icon Name Requirement
πŸ’Ž Legendary Hunter Obtain your first Legendary-rarity item
πŸ—οΈ Relic Bearer Obtain your first Artifact (any of the 4)
πŸ”± Godslayer's Arsenal Obtain all 4 distinct Artifacts (ever found, not necessarily at once) β€” the hardest achievement in the plugin
🎽 Matching Set Have a full 5-piece set active at once
πŸ’« Head to Toe Have a full 5-piece set active at Legendary rarity specifically
πŸ›‘οΈ Dressed to Kill Have Legendary-rarity gear in all 5 equipment slots (helmet/chest/legs/boots/weapon) at once, regardless of matching set

RPGLoot integration

Six achievements react to RPGLoot β€” no dependency between the two plugins, in either direction. RPGMood reads RPGLoot's public PersistentDataContainer tags directly (rpgloot:rarity, rpgloot:artifact_id, rpgloot:set_name, and rpgloot:active_set_rarity β€” the last one written on the player, not an item, while RPGLoot's SetTracker has a full 5-piece set active). This is the same soft-integration convention RPGLoot already uses to read RPGMood's rpgmood:level tag off scaled mobs β€” see Compatibility and Developer API.

If RPGLoot isn't installed, these tags simply never exist on any item or player β€” the 6 Loot achievements are just permanently locked, no errors, no behavior change anywhere else.

Checked on:

  • Picking an item up off the ground (EntityPickupItemEvent)
  • Any armor slot / hotbar / held-item change (mirrors how RPGLoot's own SetTracker detects equipment changes)

Known gap: items obtained without ever being "picked up" in the vanilla sense β€” e.g. taken directly from a structure-loot chest into your inventory via a UI click, or given via /rpgloot admin give β€” are only caught the next time you change equipment (armor/hotbar), not the instant you receive them. In practice this only delays the achievement, it doesn't prevent it.


How unlocks are triggered

Each achievement hooks into the event that already exists for that feature β€” no extra scanning or polling, other than the light RPGLoot equipment re-check above:

Trigger Where
Zone entry (after the dwell timer) Zone-change confirmation
Scaled mob kill / boss kill / damage-free kill Mob death (checked at two priorities β€” see below)
Crop harvest Crop harvest
Recipe discovery Cooking/crafting
Villager trade / village reputation gain PlayerTradeEvent (Market Day, Seasonal Shopper, Deep Broker, Local Favorite) and cartographer quest completion (Cartographer's Errand)
Season change (Four Seasons, First of the Season) Fires once per season boundary, not every day
Day/night tick (Immortal, Night Owl) Fires once per in-game day (every 24000 ticks, β‰ˆ20 real minutes) for every player online at that moment β€” offline players don't get that day's tick
Player death Death message handling β€” records the death biome and resets the Immortal streak counter to 0
Lightning strike survived Damage event, cause LIGHTNING
Animal befriending / affection change Farming animal commands and interactions

Overkill specifically is checked at MONITOR priority (after every other plugin's EntityDeathEvent listener has run, RPGLoot included) so it sees the mob's final drop list regardless of plugin load order.


Notifications

Unlocking an achievement always sends to chat (not the action bar, regardless of your messages.delivery setting β€” see Configuration), since the two-line unlock message wouldn't fit in the action bar's single line:

✨ Achievement Unlocked! πŸ”₯ Danger Seeker
  Kill a level 30+ mob

It also adds an entry to your /diary β€” see Commands β†’ /diary.


/rpgmood achievements

Shows your unlocked/locked achievements grouped by category, with a per-category and overall progress count. Unlocked entries show the icon, name, and description; locked entries show only the icon and name.

Permission: rpgmood.player.achievements (default true).

Clone this wiki locally