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:
...
...
@@ -8,10 +10,10 @@ MythicAchievements will load achievements from 2 places:
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
First, here's an overview of all the options:
```
KEY:
## Syntax Breakdown
First, here's a quick overview of all the options:
```yml
ACHIEVEMENT_KEY:
Display:'thedisplayname'
Description:'thedescription'
Category:[CATEGORY_KEY]
...
...
@@ -25,21 +27,84 @@ KEY:
#
# other criteria-related options
#
Conditions:
-[(optional) conditions that need to be met in order to trigger criteria]
Reward:
Message:'Amessagedisplayedwhentheycompleteit!'
Drops:
-[a Mythic drop table]
Skills:
- [ some skills ran when the achievement is completed ]1
-[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
```yml
Display:'KillingMachine'
```
The display name of the achievement. Will be displayed on the item, in the category.
### Description
```yml
Description:'Killatleastoneofallmonstertypes'
```
The description of the achievement. Will be displayed on the item, in the category.
### Category
```yml
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
```yml
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
```yml
Frame:TASK
```
The frame shape of your starting node item. This can be a `TASK`, `GOAL`, or `CHALLENGE`.
### Icon
```yaml
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
```yml
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](Criteria)
The rewards that should be given to the player upon completion of all tasks.
For more about rewards, see [Rewards](Rewards)
## Examples
**More Examples:**[Examples](Usage/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 completing, they will receive 50 cobblestone as a reward.
```
Upon completion, they will receive 50 cobblestones as a reward.
```yml
SKELETON_HUNTER:
Display:'SkeletonHunter'
Description:'Kill5SkeletonsatNight'
...
...
@@ -65,7 +130,7 @@ SKELETON_HUNTER:
### 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!