CONTENT CONTRACT · VERSION 1
enemy
A hostile actor: its body, gear, loot and fighting tactic.
Signature
{ aggro_mm: PositiveDistance, alarm_mm: (PositiveDistance)?, behavior: (BehaviorId)?, boss: (BossMark)?, camp_health: PositiveHitPoints, character: CharacterId, chase_mm: PositiveDistance, faction: (ContentId)?, fight_music: FightMusic, flee: (EnemyFlight)?, guard_permille: Permille, guard_series_permille: Permille, guard_ticks: PositiveTicks, heal: (HealthUse)?, id: ContentId, kind: "enemy", leash_mm: PositiveDistance, lifecycle: TransientLifecycle, loadout: Loadout, loot: (LootId)?, name: TextKey, pursuit: (EnemyPursuit)?, ranged_reaction: (RangedReaction)?, rolls: boolean, sounds: CreatureSounds, stamina_per_second: Count, steady: boolean, xp: (PositiveCount)? }Fields
| Name | Type | Meaning |
|---|---|---|
aggro_mm | PositiveDistance | A guard acquires a player this close. Range: 1…2147483647; Unit: mm |
alarm_mm | PositiveDistance | Allies within this distance join the fight when it spots a player or is struck. Range: 1…2147483647; Unit: mm |
behavior | BehaviorId | Behavior graph the engine runs for it instead of the standard enemy tactic. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: behavior |
boss | BossMark | Marks it as a boss: named on the world map while it lives, with a name plate over its head. |
camp_health | PositiveHitPoints | Health of a camp guard of this kind before party scaling. Range: 1…2147483647; Unit: hp |
character | CharacterId | Character definition supplying body, stats and movement. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: character |
chase_mm | PositiveDistance | A guard keeps chasing a player this close. Range: 1…2147483647; Unit: mm |
faction | ContentId | Side it fights on: only enemies of the same faction answer its alarm. Absent: its own kind only. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$ |
fight_music | FightMusic | Fight piece its pursuit calls for. |
flee | EnemyFlight | Flight from the fight when hurt badly, with recovery and return. |
guard_permille | Permille | Share of frontal blows the guard blocks, in thousandths. Range: 0…1000; Unit: permille |
guard_series_permille | Permille | Added block share per blow of the striker's current series (blows in quick succession), in thousandths. Range: 0…1000; Unit: permille |
guard_ticks | PositiveTicks | How long a raised guard holds; it blocks every frontal blow meanwhile. Range: 1…2147483647; Unit: tick |
heal | HealthUse | Item it uses from its own inventory when hurt. |
id | ContentId | Package-qualified identity; unique within its declaring namespace. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$ |
kind | "enemy" | Discriminant |
leash_mm | PositiveDistance | A guard turns home beyond this distance from its post. Range: 1…2147483647; Unit: mm |
lifecycle | TransientLifecycle | Corpse lifetime; population rules decide any new spawn. |
loadout | Loadout | Inventory and held weapon; dropped at death except natural weapons. |
loot | LootId | Additional items dropped at death. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: loot |
name | TextKey | Localization key for the displayed name. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: text |
pursuit | EnemyPursuit | How a guard's leash holds in a fight and how it returns home: a guard in a fight chases further, one that turns back escapes unhurt and heals at home. Absent: the plain leash. |
ranged_reaction | RangedReaction | What it does when a shot or blow from afar strikes it: roll aside or charge the shooter. |
rolls | boolean | Whether it dodge-rolls away from a wielder about to strike. |
sounds | CreatureSounds | Its wind-up, pain, death and idle sounds. |
stamina_per_second | Count | Stamina it regains per second (its character's maximum stamina caps it; attacks cost the stamina of their tool). Range: 0…2147483647; Unit: count |
steady | boolean | Whether a hit leaves its wind-up unbroken. |
xp | PositiveCount | Experience every player who helped defeat it gains: its killer and the players within 40 m. Range: 1…2147483647; Unit: count |
Validated example
{
"aggro_mm": 16000,
"alarm_mm": 16000,
"camp_health": 117,
"character": "core:archer_body",
"chase_mm": 32000,
"faction": "core:raiders",
"fight_music": "danger",
"flee": {
"duration_ticks": 100,
"heal_per_second": 4,
"health_below_permille": 300
},
"guard_permille": 0,
"guard_series_permille": 0,
"guard_ticks": 12,
"heal": {
"health_below_permille": 350,
"item": "core:healing_potion"
},
"id": "core:archer",
"kind": "enemy",
"leash_mm": 28000,
"lifecycle": {
"corpse_ticks": 100
},
"loadout": {
"equipped": "core:shortbow",
"hotbar": [
"core:shortbow",
"core:healing_potion"
],
"items": [
{
"count": 1,
"item": "core:shortbow"
},
{
"count": 30,
"item": "core:arrow"
},
{
"count": 1,
"item": "core:healing_potion"
}
],
"worn": [
"core:leather_hood",
"core:leather_vest",
"core:leather_gloves"
]
},
"name": "core:archer_body_name",
"pursuit": {
"fight_leash_mm": 48000,
"fight_ticks": 150,
"return_shield_ticks": 75
},
"ranged_reaction": {
"charge_speed_permille": 1000,
"distance_mm": 5000,
"evade_permille": 1000
},
"rolls": true,
"sounds": {
"death": "core:sound_enemy_archer_death",
"hurt": "core:sound_enemy_archer_hurt",
"idle": "core:sound_enemy_archer",
"windup": "core:sound_bow_draw"
},
"stamina_per_second": 12,
"steady": false,
"xp": 20
}