> For the complete documentation index, see [llms.txt](https://october-studio.gitbook.io/monster-survivors-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://october-studio.gitbook.io/monster-survivors-documentation/upgrades/add-an-upgrade.md).

# Add an Upgrade

{% stepper %}
{% step %}

### Adding new Upgrade Type

Go to the Path:<img src="/files/YrluD0eesF8EhnQxYr6D" alt="" data-size="original">, open UpgradeType.cs class.

Add a new entry to the UpgradeType enum that will represent your new upgrade.

```csharp
public enum UpgradeType
{
    Armor = 0,
    Health = 1,
    Healing = 2, 
    Damage = 3, 
    Revive = 4,
    // Enter your new upgrade type here
}
```

{% endstep %}

{% step %}

### Creating Upgrade Asset

Go to the Path: <img src="/files/CHDznpglAcRrdX4Nuqqb" alt="" data-size="line">. Right click to open a context menu and Select Create -> October -> Upgrades -> Upgrade

<figure><img src="/files/8bbZDChNEQlFRflIH7Ul" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Filling asset fields

Select the upgrade you just created, and fill the following fields:

| Field           | Description                                                                                   |
| --------------- | --------------------------------------------------------------------------------------------- |
| Upgrade Type    | Select the type from step 1                                                                   |
| Icon            | Select the sprite that will be shown in upgrades menu                                         |
| Title           | The display name of the upgrade in upgrades menu                                              |
| Dev Start Level | This upgrade level will be active at launch, use it for testing purposes. Default value is -1 |
| Levels          | The levels of the upgrade. Each has cost and value fields                                     |
| {% endstep %}   |                                                                                               |

{% step %}

### Adding asset to the database

Go to the Path:<img src="/files/sdjWkCFYRjTguvk77gL0" alt="" data-size="original"> and select the Upgrades Database asset. Add the new upgrade from the previous steps to the Upgrades List of the said asset.
{% endstep %}

{% step %}

### Implementing upgrade

Now that the upgrade is created, you need to write the custom implementation of its behavior inside the game. Use the following method from anywhere in the project:

{% code fullWidth="true" %}

```csharp
GameController.UpgradesManager.GetUpgadeValue(UpgradeType.Upgrade)
GameController.UpgradesManager.IsUpgradeAquired(UpgradeType.Upgrade)
GameController.UpgradesManager.GetUpgradeLevel(UpgradeType.Upgrade)
GameController.UpgradesManager.GetUpgradeData(UpgradeType.Upgrade)
```

{% endcode %}
{% endstep %}
{% endstepper %}
