Species and Types

Species & Types

Bestiary Names

The editor shows creature display names from the in-game bestiary alongside internal type keys. Where names differ, the UI shows "DisplayName (InternalType)" — for example "Hyena (DesertWolf)" or "Mammoth (WoollyMammoth)".

Internal Type Display Name Category
ArcticMoa Arctic Moa mount
Blueback Blueback mount
Boar Boar combatpet
Buffalo Buffalo mount
Bull Bull mount
Cat Cat combatpet
Chew Chew mount
Chicken Chicken farm
Cow Cattle farm
DesertWolf Hyena combatpet
Dog Dog combatpet
Horse Terrenus mount
HorseStandard Horse mount
Moa Moa mount
Pig Pig farm
Rooster Rooster farm
Sheep Sheep farm
SnowWolf Snow Wolf combatpet
SwampBird Ubis mount
SwampQuad Stryder mount
TundraMonkey Tundra Monkey combatpet
Tusker Tusker mount
Wolf Wolf combatpet
WoollyMammoth Mammoth mount
WoolyZebra Shaggy Zebra mount
Zebra Zebra mount

Display names, lore text, and extended lore (shown as mouseover tooltips) are extracted from the game's bestiary DataTable via extract_bestiary.py.

Type Detection

The editor auto-detects creature type from two binary properties: - AISetupRowName — e.g., "Tamed_Wild_Boar", "Mount_Buffalo", "Tamed_Forest_Wolf" - ActorClassName — e.g., "BP_Tame_Boar_C", "BP_Mount_Buffalo_C", "BP_Tamed_Wolf_C"

Detection uses a keyword lookup table — the first matching keyword (checked against both fields) determines the type. More specific patterns are checked before generic ones (e.g., "snow_wolf" before "wolf").

Known Creature Types

All 26 creature types have complete talent trees extracted from the game's pak files.

Mounts (Rideable) — 14 types

Level cap: 50 • Category: mount

Type Keywords Talents Specialization
Buffalo buffalo ✅ 22 Sprint, bleed, stun, inventory spoil
Horse horse ✅ 23 Speed, highlight enemies, carry, stamina regen
Horse Standard horse_standard ✅ 23 Food buff, inventory, speed, highlight
Moa moa ✅ 22 Desert movement, water speed, pack, attack
Arctic Moa arcticmoa, arctic_moa ✅ 22 Arctic movement, stealth, aura, rebirth
Tusker tusker ✅ 22 Sprint, bleed, arctic stealth, cold aura
Zebra zebra ✅ 22 Desert movement, heat aura, damage reduction
Wooly Zebra woolyzebra, woolly_zebra ✅ 22 Bleed, arctic stealth, frost resist
Blueback blueback ✅ 22 Damage reduction, temperature, water retention
Swamp Quad (Stryder) swamp_quad, stryder ✅ 22 Water speed, poison/lava resist, return
Swamp Bird swampbird, swamp_bird ✅ 20 Full custom tree with attack & pack
Woolly Mammoth mammoth, woollymammoth ✅ 19 Stomp attack, frost resist, rupture
Bull bull ✅ 21 Full custom tree with charge & weaken
Chew chew ✅ 20 Full custom tree: movement, temperature

Combat Pets — 7 types

Level cap: 25 • Category: combatpet

Type Keywords Talents Specialization
Boar boar ✅ 12 Damage, damage reduction
Wolf wolf ✅ 12 Bleed, heal on kill, highlight, mark, slow
Snow Wolf snow_wolf, snowwolf ✅ 12 Freeze, arctic health regen, mark
Desert Wolf (Hyena) desert_wolf, desertwolf, hyena ✅ 11 Heat aura, poison resist, mark
Dog dog, labrador ✅ 12 Adventure, coziness, heal on kill
Cat cat ✅ 13 Coziness, health regen aura, taming speed
Tundra Monkey tundramonkey, tundra_monkey ✅ 13 Cold resist, attack speed, throw stick

Farm Animals — 5 types

Level cap: 25 • Category: farm

Type Keywords Talents Specialization
Sheep sheep, ram ✅ 13 Wool growth, coziness, physical resist
Chicken chicken ✅ 13 Egg laying, skinning yield, coziness
Rooster rooster ✅ 13 Heat aura, health regen, skinning
Cow cow ✅ 13 Milk production, coziness, resource usage
Pig pig ✅ 12 Bacon, crop growth, food buff, health

Sub-Variants & Breeds

Some creature types have multiple D_Mounts rows sharing the same CreatureType. This deep-dive research (Mar 2026) identified three distinct patterns for how the game handles visual sub-variants.

⚠️ Research status: Extracted from pak files. Some fields need verification against live save data. See GitLab issues #84 and #85.

Three Sub-Variant Patterns

Pattern Mechanism Example
True Breeds Each breed has a unique ActorClassName blueprint Dog breeds (9 different ActorClasses)
Color Variants Multiple D_Mounts rows share one ActorClassName Horse Standard (3 colors, 1 ActorClass)
Biome Variants Separate ActorClass but shares CreatureType with parent Arctic Moa shares CreatureType "Moa"

Complete Sub-Variant Catalog

CreatureType # D_Mounts Rows # ActorClasses Pattern Details
Dog 9 9 unique True Breeds Each breed = separate ActorClass
Cat 5 3 unique Hybrid 3 breeds; Cat A has 3 color sub-rows
Horse_Standard 3 1 shared Color Variants Brown, Black, White — same ActorClass
Chicken 3 1 shared Color Variants 3 colors — same ActorClass
Moa 2 tamed 2 unique Biome Variant Arctic Moa has CreatureType "Moa" (!)
All other tameable types 1 each 1 each None No sub-variants

Key finding: Wolf variants (Snow Wolf, Hyena) each have their own CreatureType (Snow_Wolf, Hyena), so they are truly separate species — NOT breeds. Same for Zebra vs Shaggy Zebra (Zebra vs Wooly_Zebra) and Horse vs Horse Standard (Horse vs Horse_Standard).

Dog Breeds (9 breeds)

All dog breeds share CreatureType: "Dog" and the same talent tree (Creature_Dog).

D_Mounts Row ActorClass Breed Name Family
Tame_Dog_A1 BP_Tame_Dog_A1_C Golden Labrador Labrador
Tame_Dog_A2 BP_Tame_Dog_A2_C Chocolate Labrador Labrador
Tame_Dog_B1 BP_Tame_Dog_B1_C German Shepherd German Shepherd
Tame_Dog_B2 BP_Tame_Dog_B2_C Panda German Shepherd German Shepherd
Tame_Dog_C1 BP_Tame_Dog_C1_C Pug Small breeds
Tame_Dog_C2 BP_Tame_Dog_C2_C French Bulldog Small breeds
Tame_Dog_D1 BP_Tame_Dog_D1_C Tan Laika Laika
Tame_Dog_D2 BP_Tame_Dog_D2_C Brown Laika Laika
Tame_Dog_E BP_Tame_Dog_E_C Border Collie Border Collie

The letter designates the breed family (A=Labrador, B=German Shepherd, C=Small breeds, D=Laika, E=Border Collie). The number suffix is a color variant within the breed.

Cat Breeds (3 breeds)

All cat breeds share CreatureType: "Cat" and the same talent tree (Creature_Cat).

D_Mounts Row ActorClass Breed Name Notes
Tame_Cat_A1 BP_Tame_Cat_C (base) Grey Tabby Cat
Tame_Cat_A2 BP_Tame_Cat_C (base) Orange Tabby Cat Same ActorClass as A1
Tame_Cat_A3 BP_Tame_Cat_C (base) Black Cat Same ActorClass as A1
Tame_Cat_B1 BP_Tame_Cat_B_C Himalayan Seal Point Cat Separate ActorClass
Tame_Cat_C1 BP_Tame_Cat_C_C Tortoise Shell Ragdoll Cat Separate ActorClass

Cat A (Tabby) is a hybrid — three D_Mounts rows (A1, A2, A3) share one ActorClass BP_Tame_Cat_C, so the color sub-variants within Cat A are likely controlled by the Variation field, not by ActorClass. Cat B and Cat C are true breeds with separate ActorClasses.

Horse Standard Color Variants (3 colors)

All share CreatureType: "Horse_Standard", ActorClass BP_Mount_Horse_Standard_C, and the same talent tree.

D_Mounts Row Display Name
Mount_Horse_Standard_A1 Brown Horse
Mount_Horse_Standard_A2 Black Horse
Mount_Horse_Standard_A3 White Horse

Since all three share the same ActorClass, the color is likely determined by the Variation field or the D_Mounts row name stored in the save data.

Chicken Color Variants (3 colors)

All share CreatureType: "Chicken" and ActorClass BP_Tame_Chicken_C.

D_Mounts Row
Chicken (base)
Chicken_A2
Chicken_A3

Arctic Moa — A "Moa Breed"

The tamed Arctic Moa (Mount_Arctic_Moa) has CreatureType: "Moa" — the same CreatureType as regular Moa. However, the wild NPC Arctic Moa has its own CreatureType Arctic_Moa. Both share AIGrowth: "Mount_Moa".

Despite sharing the "Moa" CreatureType in D_Mounts, the tamed Arctic Moa has a separate ActorClass (BP_Mount_Arctic_Moa_C) and the editor's talent extraction found a separate talent tree (Creature_ArcticMoa). This makes it a special case — structurally it resembles a breed, but functionally it behaves as a separate species with its own talents.

Species Confirmed NOT to be Breeds

These species have their own unique CreatureType values and are truly separate species, not breeds of each other:

Pair CreatureType Values Verdict
Wolf / Snow Wolf / Hyena Wolf, Snow_Wolf, Hyena ✅ Separate species
Zebra / Shaggy Zebra Zebra, Wooly_Zebra ✅ Separate species
Horse (Terrenus) / Horse Standard Horse, Horse_Standard ✅ Separate species
Moa / Arctic Moa (wild NPC) Moa, Arctic_Moa ✅ Separate species (wild)

How Breeds Differ from Phenotype Variations

Aspect Phenotype Variation True Breed Color Variant
Mechanism Variation IntProperty Separate ActorClass blueprint Multiple D_Mounts rows, same ActorClass
Save data change Single integer ActorClassName + ObjectFName + ActorPathName Possibly Variation integer or AISetupRowName
Talent tree Same Same Same
Applies to Most creature types Dogs (9), Cats (3) Horse Standard (3), Chicken (3), Cat A (3)
Example Buffalo Var=5 → White BP_Tame_Dog_A1_C → Golden Lab Horse_Standard_A2 → Black Horse

Impact on Editor

The current editor treats each species as having a single ActorClass. This means: - Dogs may not be detected correctly if their ActorClassName doesn't match expected patterns - Breed-specific information (e.g., "Golden Labrador" vs "Pug") is not displayed - Breed swapping (e.g., Labrador → Pug) is not yet supported - Horse Standard and Chicken color variants may need special handling

Note: See issue #85 for the research spike tracking breed support.

Save Data Fields per Creature

Each creature's binary data includes these species-related fields:

Field Type Example Editable?
AISetupRowName NameProperty "Mount_Buffalo" ⚠️ Advanced
ActorClassName NameProperty "BP_Mount_Buffalo_C" ⚠️ Advanced
ObjectFName NameProperty "BP_Mount_Buffalo_C_2147458154" ⚠️ Advanced
ActorPathName StrProperty Full blueprint path ⚠️ Advanced
Sex IntProperty 1 (Female), 2 (Male) ✅ Gender dropdown
Variation IntProperty 0 (common), 4 (rare) ✅ See Phenotype & Variations

Gender / Sex Values

The Sex field is an IntProperty with the following confirmed mapping:

Value Gender
1 Female
2 Male
0 ⚠️ Invalid — game defaults to Female

Note: These values were confirmed by cross-referencing binary save data with in-game display (Feb 2026). The mapping is counterintuitive — 1 is Female, not Male.

And in the JSON metadata wrapper:

Field Example Description
MountType "Buffalo" Game's type identifier
MountLevel 50 Current level
MountIconName "316749" Icon asset reference
DatabaseGUID "noguid" Database identifier

Pak File Tree Name Mapping

The game's internal talent tree names differ from the editor's type names:

Pak Tree Name Editor Type Category
Creature_Buffalo Buffalo mount
Creature_Horse Horse mount
Creature_Terrenus HorseStandard mount
Creature_Moa Moa mount
Creature_ArcticMoa ArcticMoa mount
Creature_Tusker Tusker mount
Creature_Zebra Zebra mount
Creature_WoolyZebra WoolyZebra mount
Creature_Blueback Blueback mount
Creature_Swamp_Quadruped SwampQuad mount
Creature_SwampBird SwampBird mount
Creature_WoollyMammoth WoollyMammoth mount
Creature_Bull Bull mount
Creature_Chew Chew mount
Creature_Boar Boar combatpet
Creature_Wolf Wolf combatpet
Creature_Snow_Wolf SnowWolf combatpet
Creature_Desert_Wolf DesertWolf combatpet
Creature_Dog Dog combatpet
Creature_Cat Cat combatpet
Creature_Tundra_Monkey TundraMonkey combatpet
Creature_Sheep Sheep farm
Creature_Chicken Chicken farm
Creature_Rooster Rooster farm
Creature_Cow Cow farm
Creature_Pig Pig farm

Species Swap

Overview

The editor supports experimental species swapping — changing a creature's type to another within the same category (mount→mount, combatpet→combatpet, farm→farm). Cross-category swaps are not allowed.

How It Works

When a swap is performed, the editor updates all 6 identity fields:

Field How Updated
AISetupRowName Replaced with target's AI setup pattern
ActorClassName Replaced with target's actor class
MountType Set to target type in JSON envelope
ObjectFName Actor class portion replaced, instance ID preserved
ActorPathName Actor class portion replaced, full path preserved
Talents Remapped by display name (see below)

Preserved fields: Name, genetics, lineage, level, experience, stats, gender — all unchanged.

Talent Remapping

Talents are remapped by display name (not internal name). If both old and new species have a talent called "Wild Fortitude", the rank transfers. Talents unique to the old species are lost. Talents unique to the new species start at rank 0.

Biome variant talent overlap examples:

Swap Pair Shared Only Source Only Target
Wolf → Snow Wolf 10 2 (Hamstring, Rip and Tear) 2 (Arctic Mutation, Aura of Warmth)
Wolf → Hyena 9 3 (Coordinated Attacks, Hamstring, Rip and Tear) 2 (Fever Control, Thick Hide)
Moa → Arctic Moa 19 3 (Pack Moa, Plainswalker, Puddle Jumper) 3 (Blended Fur, Natural Cooling, Snow Walker)
Horse → Horse Standard 22 1 (Trotting Pace) 1 (One of the Herd)

Swap UI Preview

Before confirming a swap, the editor shows: - Bestiary name and lore for the target species - Talent compatibility stats — shared, gained, and lost talents listed by name - Extended lore tooltip — hover over the lore text for the full Lore2 description - Confirmation dialog summarizing all changes and talent point impact

Known Limitations

  • Experimental feature — species swaps modify critical identity fields. Always back up save data first.
  • Swaps are same-category only (mount↔mount, pet↔pet, farm↔farm)
  • The game may reset certain visual/behavioral aspects on next load
  • MountIconName is not updated (the game may show the wrong icon until reloaded)
  • Talents unique to the old species are permanently lost
  • Level and XP are preserved, but XP-to-level curves may differ between species (server-side data)

Updating After Game Patches

To update talent data after an Icarus update:

# 1. Extract chunks from the updated data.pak
python pak_extract.py

# 2. Parse talent entries from the chunks
python pak_talent_extract.py

# 3. Regenerate talent_data.py
python generate_talent_data.py

The extraction pipeline will automatically pick up any new creatures, talents, or balance changes.


See also: GUI Guide — Species Swap · Architecture — Bestiary Extraction · Talent & Genetics Data

Back to Docs