CONTENT CONTRACT · VERSION 1
animal
A wild or domestic animal: its body, idle actions, gear and loot.
Signature
{ actions: {Name}, character: CharacterId, hunts: boolean, id: ContentId, kind: "animal", lifecycle: TransientLifecycle, loadout: Loadout, loot: (LootId)?, name: TextKey, penned: boolean, sounds: AnimalSounds, tame: boolean }Fields
| Name | Type | Meaning |
|---|---|---|
actions | {Name} | Idle action clips in repertoire order; the first is its rest pose. Items: 1…16; Unique entries |
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 |
hunts | boolean | Whether it hunts a wielder who struck it twice instead of fleeing. |
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 | "animal" | Discriminant |
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 |
penned | boolean | Whether village animals of this kind live in the pen. |
sounds | AnimalSounds | Its call and petting sounds. |
tame | boolean | Whether players may pet it and it belongs to the village side. |
Validated example
{
"actions": [
"rest",
"groom",
"stretch",
"pounce"
],
"character": "core:cat_body",
"hunts": false,
"id": "core:cat",
"kind": "animal",
"lifecycle": {
"corpse_ticks": 100
},
"loadout": {
"hotbar": [],
"items": []
},
"loot": "core:small_game",
"name": "core:cat_body_name",
"penned": false,
"sounds": {
"call": "core:sound_cat",
"call_volume_permille": 500,
"pet": "core:sound_pet_cat"
},
"tame": true
}