Modding: Enemies

This article is updated for Update 15.

Enemies are defined in the file Enemies.txt.

In this file you can define the different enemies, their stats, appearance, and loot. At the moment you can not create your own models or animations, but you can modify enemy stats and loot, or create new ones based on the appearance of existing enemies.

Note: Every enemy must have a name and description defined in the localization file Texts.txt using the following formats:

```
enemies.reaper.name=Reaper
enemies.reaper.description=A Reaper, come to collect human souls to bolster the armies of hell.

```

## Enemy Stats

Define enemy stats using the following format:

```
enemies.entity.lich.damage=20
enemies.entity.lich.attackspeed=4
enemies.entity.lich.range=6

```

In the example above the lich has 20 damage, 4 attack speed and an attack range of 6.

## On Hit Effects

Enemies may have on-hit effects. These are Status Effects that are applied whenever the enemy hits a target.

```
enemies.entity.demon.hiteffect.rendarmor=8

```

In the example above whenever a demon hits its target, the target will suffer the "rendarmor" status effect for 8 seconds.

## Splash Damage

Enemies may deal splash damage to other units around their target:

```
enemies.entity.firespitter.splash.range=1
enemies.entity.firespitter.splash.damage=0.5

```

In the above example the firespitter deals 50% of it's damage to units within 1 tile of the target.

See Modding: Splash Damage for more information.

## Auras

Enemies may have auras that affect friends or foes (or both) around them.

```
enemies.entity.succubus.auras.bedazzled.range=2
enemies.entity.succubus.auras.bedazzled.effect.bedazzled=true
enemies.entity.succubus.auras.bedazzled.targetmode=Enemy
enemies.entity.succubus.auras.bedazzled.targettag.male=true
enemies.entity.succubus.auras.bedazzled.prefab=SuccubusAuraPrefab

```

In the example above the Succubus has a Bedazzled aura that affects male survivors in a range of 2 tiles, with the "bedazzled" status effect.

See Modding: Auras for more information

## Enemy Spawning and Difficulty

Whenever enemies are randomly generated (such as in base attacks or scavenge misisons), the types and amount of enemies are determined by the combat difficulty rating. Enemies must define their tier and amount:

```
enemies.entity.hellhound.level=1
enemies.entity.hellhound.amount=1.25

```

The level (tier) determines when this enemy may spawn.

The amount determines how many of these should spawn compared to other enemies of the same tier. In this case, 1.25 hellhounds are equivalent to a single tier 1 enemy, so when spawning 4 tier 1 enemies, 5 hellhounds would spawn instead of just 4.

For more information see Modding: Enemy Generation

## Enemy Loot

The loot dropped by every enemy unit killed is defined using the following format:

```
enemies.entity.darkangel.loot.ectoplasm=2
enemies.entity.darkangel.loot.holywords=3

```

In the example above, the "darkangel" enemy drops 2 "ectoplasm" items and 3 "holywords" items when killed.

See Modding: Items for defining the items themselves.

## Enemy Appearance & Audio

Enemy appearance and audio are defined using the following format:

```
enemies.entity.lich.prefab=enemy_lich
enemies.entity.lich.animation=Enemies/Lich
enemies.entity.lich.properties.attackanimation=LichAttackPrefab
enemies.entity.lich.properties.attacksound=ranged_magic_attack
enemies.entity.lich.properties.floating=0.02
enemies.entity.lich.icon=enemy_icon_lich

```

The following appearance definitions are required:

In most cases all these values should be copied as is from another unit, with the exception of "properties.attackanimation" and "properties.attacksound". This way you can create an enemy that looks like a reaper, but whose projectiles look and sound like the ghost attack.

See Modding: Adding Images to Mods for more information on how to add new images.

See Modding: Adding Audio to Mods for more information on adding custom sounds.

 Tagging Enemies

You may define enemy categories using tags. These are then used by biomes and map locations to determine which enemies will be present in those locations. By default, enemies are either "demon" or "human".

```
enemies.entity.hellhound.tags.demon=true

```

In this example, the hellhound is tagged as "demon". An enemy may have more than one tag.

See Modding: Map Locations for more information on using tags to specify which enemies exist in each location.