# Creating Augments

## How to Create an Augment

1. Create External Augment class and fill in the information
2. Create Augment Executor class and write your augment code
3. Register the Augment using the AugmentManager.registerExternal method

## External Augment

The External Augment contains the basic data of an augment, such as:

* ID
* Description
* Name

## Augment Executor

The Augment Executor contains many useful methods for creating an augment.

Here are some of the key methods:

```java
default EventPriority getEventPriority() {
    return EventPriority.NORMAL;
}

default String[] getAugmentsBlocked() {
    return new String[]{};
}

default GameMode[] getModesBlocked() {
    return new GameMode[]{};
}

default AugmentTag[] getTags() {
    return new AugmentTag[]{};
}

default AugmentTag[] getTagsBlocked() {
    return new AugmentTag[]{};
}

default boolean isPersistent() {
    return false;
}

default Object executeEvents(Object... events) {
    return null;
}

default void executePhase(GamePhase gamePhase) {}

default void cancel() {}
```
