Custom achievements are created using simple .yml
files, and anyone familiar with Mythic syntax should be able to pick up on how it works pretty quickly!
You are able to define multiple achievements in a single .yml
file.
File Locations
MythicAchievements will load achievements from 2 places:
- The
Achievements
folder in the MythicAchievements plugin directory - Any
Achievements
folder in a Mythic pack (located in the MythicMobs plugin directory)
Inside these folders you can have as many .yml
files as you want, including inside other folders, allowing you to organize it however you want. The plugin will read all the files to load everything.
Syntax Breakdown
First, here's a quick overview of all the options:
ACHIEVEMENT_KEY:
Display: 'the display name'
Description: 'the description'
Category: [CATEGORY_KEY]
Parent: [PARENT_ACHIEVEMENT_KEY]
Frame: [CHALLENGE/GOAL/TASK]
Icon:
Material: [MATERIAL]
Criteria:
SOME_KEY_NAME_YOU_CHOOSE:
Type: [CRITERIA_TYPE]
#
# other criteria-related options
#
Conditions:
- [ (optional) conditions that need to be met in order to trigger criteria ]
Reward:
Message: 'A message displayed when they complete it!'
Drops:
- [ a Mythic drop table]
Skills:
- [ some skills ran when the achievement is completed ]
Achievement Key
This name is what helps the internal mechanics of MythicAchievements and MythicMobs to recognize your achievement. NO SPACES ALLOWED.
It's also what you use when you reference a parent of another achievement.
Display
Display: 'Killing Machine'
The display name of the achievement. Will be displayed on the item, in the category.
Description
Description: 'Kill at least one of all monster types'
The description of the achievement. Will be displayed on the item, in the category.
Category
Category: MONSTER_HUNTING
The name of the category you want to list this achievement under. This requires the category KEY, not the display name.
Parent
Parent: OTHER_ACHIEVEMENT
The parent of the achievement. It's how you create nodes and decide what comes after what. If left empty or unspecified, it will be parented to the root which is the start of the node.
Frame
Frame: TASK
The frame shape of your starting node item. This can be a TASK
, GOAL
, or CHALLENGE
.
Icon
Icon:
Material: IRON_SWORD
Model: 0
The icon is the item displayed in the tab button in the advancement menu, and in the starting node of the category.
You have to provide a valid material name, MAKE SURE IT IS UPPERCASE. Optionally, you have the choice to provide a model data value (CustomModelData).
Criteria
Criteria:
SKELETON:
Type: KILL_MOB_TYPE
EntityType: SKELETON
Amount: 10
The list of criteria for the achievement. For a list of all criteria, see Criteria
Reward
Reward:
Message: '&6&lCongrationlations&r on your Achievement! Your rewards are a new Sword and 100 exp'
Drops:
- DIAMOND_SWORD
- EXPERIENCE 100
Skills:
- particles{p=flame;a=50;s=0.1} @self
The rewards that should be given to the player upon completion of all tasks. For more about rewards, see Rewards
Examples
Killing 5 Skeletons at Night
In this example achievement, the player can earn it by killing 5 skeletons at night, but it's only available if they have completed the achievement SOME_OTHER_ACHIEVEMENT
!
Upon completion, they will receive 50 cobblestones as a reward.
SKELETON_HUNTER:
Display: 'Skeleton Hunter'
Description: 'Kill 5 Skeletons at Night'
Category: SPECIAL
Parent: SOME_OTHER_ACHIEVEMENT
Frame: CHALLENGE
Icon:
Material: SKELETON_SKULL
Criteria:
KILL:
Type: KILL_MOB_TYPE
EntityType: SKELETON
Amount: 5
Conditions:
- night
Reward:
Message: 'You did it! You killed 5 skeletons at night!'
Drops:
- 50 cobblestone
Skills: []
Breaking 10 Stone and 10 Dirt
A simple example demonstrating an achievement that has multiple criteria. The player must break 10 stone and 10 dirt to complete it!
BREAK_STONE_AND_DIRT:
Display: 'Breaking Stone and Dirt'
Description: 'Break 10 Stone Blocks and 10 Dirt'
Category: SPECIAL
Parent: BREAK_TEN_STONE
Frame: GOAL
Icon:
Material: COBBLESTONE
Criteria:
STONE:
Type: BREAK_BLOCK
Block: STONE
Amount: 10
DIRT:
Type: BREAK_BLOCK
Block: DIRT
Amount: 10
Reward:
Message: 'You broke a bunch of stuff!'
Drops: []
Skills: []
More Examples
You can refer to Examples to take a look at a collection of examples and use cases provided by the community.