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 (ZebravsWooly_Zebra) and Horse vs Horse Standard (HorsevsHorse_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 —
1is 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
MountIconNameis 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