Beastwhispering config reference
Every Beastwhispering setting lives in BepInEx/config/cobalt.beastwhispering.cfg, generated on
first launch. This page lists all of them, grouped by their .cfg section, with the default value and
what each one does. Values are read via .Value; edit the file with the game closed, or edit it live
and re-read it with the reloadcfg dev verb.
BepInEx has no config file-watcher. A raw edit to the .cfg does nothing on its own — run
reloadcfg (see Dev verbs) to re-read the whole file and re-apply, or relaunch.
A handful of keys are baked into timers at pet-creation and only take effect on the next tame/reload
even after reloadcfg; those are noted below. Some keys (Harmony patch toggles) are decided at
startup and always need a relaunch.
Most systems ship a kill-switch (Enable…). Turning one off returns that feature to pre-feature
behaviour without disturbing the rest of the mod.
The command channel this mod polls is BepInEx/config/bw_cmd.txt (see Dev verbs),
and the per-creature data tables live as embedded defaults, each overridable by dropping a file of the
same name in BepInEx/config/ (see Data manifests).
Example configuration
BepInEx/config/cobalt.beastwhispering.cfg — created on first launch. Excerpt (representative
sections; the file has 31 in all):
[Keys]
TameKey = F7
FeedKey = F8
[Systems]
InitialLoyalty = 50
HungerSecondsPerDay = 1200
UseSpeciesStats = true
[Temperature]
EnableTemperatureSystem = true
[Combat]
AttackDamage = 25
AttackInterval = 1.4
[Taming]
EnableTamingFoods = true
TameRadius = 15
[Bandage]
EnableBandageHealing = true
BandageItemIds = 4400010
A full generated example lives at tests/fixtures/config/cobalt.beastwhispering.cfg, and the shared
cross-host overlay of the keys kept uniform is config/shared/cobalt.beastwhispering.cfg.overlay
(see config/README.md).
[Keys] — keybinds
| Key |
Default |
Effect |
TameKey |
F7 |
Tame the nearest wild creature. |
FeedKey |
F8 |
Feed the pet the first inventory item its diet accepts. |
RecallKey |
F9 |
Recall the pet to your feet now (also re-forms a bodiless pet). The remedy for a stuck pet. |
SelfTestKey |
F10 |
Run the compute-layer self-test now. |
DiagKey |
F12 |
Dump a [DIAG] snapshot (location, vitals, combat, nearby AI, pet status) to the log. |
[Pet] — the visible body
| Key |
Default |
Effect |
TameRange |
15 |
Search radius (m) to tame / re-form from. |
ModelYawOffset |
180 |
Degrees the creature model is rotated from the transform's forward. Tune if a species faces sideways. |
SpeciesYawOffsets |
(empty) |
Per-species yaw overrides for rigs authored facing differently, as Name=degrees pairs. User-override layer over the shipped table. |
FollowSpeed |
4.5 |
Pet base move speed (m/s) at full responsiveness. |
MinFollowSpeed |
4.5 |
Species-stats mode: minimum follow speed so a slow species can't lose a sprinting player. Combat chases run true species speed. |
RestHealsPet |
true |
Finishing a rest/sleep heals the pet in proportion to the sleep hours. |
[Follow] — loafing near you when you stop
| Key |
Default |
Effect |
LoafDistanceMin |
2 |
Nearest distance (m) a stopped pet settles from you instead of standing on you. |
LoafDistanceMax |
4 |
Farthest settle distance. 0 = loafing off (settles on you). |
LoafDistanceRepick |
3 |
How far you must move before the pet picks a new loaf spot (stops it orbiting you). |
[Systems] — simulation, loyalty, hunger, stats
| Key |
Default |
Effect |
InitialLoyalty |
50 |
Loyalty a freshly tamed pet starts with (0–100). |
HungerSecondsPerDay |
1200 |
Game-seconds without feeding per "day" of loyalty decay. 0 or negative disables hunger and decay entirely (a footgun). |
TempEscalateSeconds |
30 |
Sustained out-of-band seconds to worsen one comfort stage. |
TempRecoverSeconds |
15 |
Sustained in-band seconds to recover one comfort stage. |
SpeciesDailyDecay |
15 |
Loyalty lost per day without feeding. |
SimTickSeconds |
2 |
How often (game-seconds) the pet systems advance. |
CastWatchdogWarnSeconds |
5 |
Log (diagnostic only) when the player's cast has been open this long. |
CastWatchdogClearSeconds |
30 |
Force-clear a wedged casting flag after this long. 0 = never. |
FeedHealAmount |
10 |
Pet HP healed by a feed when the food's diet entry has no heal of its own. |
EnableFoodHealthRecovery |
true |
Feeding also starts a vanilla-style over-time Health Recovery regen (level 1–5 per food; taming chow always level 5). |
SatiationFraction |
0.25 |
A pet fed within this fraction of its hunger day is fully satiated and refuses all food. 0 = never refuses. |
EnablePassiveBuffs |
true |
Grant the bond's passive stat buff to the player (per-species, scaled by loyalty tier). |
EnableBagPerk |
true |
Grant the bond's flat backpack-capacity gift to the player's equipped bag. |
ShowPetStatusIcons |
true |
Show the pet's hunger/bond/temperature state as indicator icons on the player HUD. |
HungryIconFraction |
0.75 |
Hunger fraction at which the Hungry icon appears (Starving appears at a full day). |
UseSpeciesStats |
true |
The pet keeps the tamed creature's own combat stats (resistances, HP, attack, speed), captured at tame time and loyalty-tuned. Off = the flat config numbers apply. |
PersistPetHealth |
true |
Persist the pet's current-HP fraction across loading screens and reloads. |
HealthLoyaltyFactor0 |
0.5 |
Pet max-HP multiplier at loyalty 0 (lerps to the 100 value). |
HealthLoyaltyFactor100 |
1.5 |
Pet max-HP multiplier at loyalty 100. |
DamageLoyaltyFactor0 |
1 |
Pet damage/impact multiplier at loyalty 0. |
DamageLoyaltyFactor100 |
1 |
Pet damage/impact multiplier at loyalty 100. |
DefenseLoyaltyFactor0 |
1 |
Pet defense multiplier (resistances/protection/barrier) at loyalty 0. |
DefenseLoyaltyFactor100 |
1 |
Pet defense multiplier at loyalty 100. |
SpeedLoyaltyFactor0 |
1 |
Pet movement-speed multiplier at loyalty 0. |
SpeedLoyaltyFactor100 |
1 |
Pet movement-speed multiplier at loyalty 100. |
HungerSecondsPerDay, TempEscalateSeconds and TempRecoverSeconds are baked into the sim at pet
creation — a live change applies only to the next tame/reload.
[Temperature] — comfort, exposure, blankets
| Key |
Default |
Effect |
EnableTemperatureSystem |
true |
Master switch for pet comfort (ambient sampling, discomfort stages, HP drain, death, blankets). |
EnableWeatherFoods |
true |
Feeding a weather-resist consumable (potions, teas, water) grants the pet the player's hot/cold relief; all pets may drink water. |
PetDeathMode |
Permanent |
What happens when exposure drains the pet to zero: Permanent (dies, bond deleted), KnockedOut (collapses/re-forms), Disabled (holds at 1 HP). |
SufferingDrainPerMinute |
2 |
Pet HP drained per minute (percent of max) while Suffering. |
CriticalDrainPerMinute |
6 |
Pet HP drained per minute (percent of max) while Critical. |
UneasyDecayMult |
1.5 |
Loyalty-decay multiplier while the pet is Uneasy. |
SufferingDecayMult |
2 |
Loyalty-decay multiplier while Suffering or Critical. |
See Temperature & blankets.
[Combat] — the pet fighting, damage scaling, vocals
| Key |
Default |
Effect |
EnableCombat |
true |
Let the pet attack what you're fighting. |
AttackDamage |
25 |
Base damage per pet hit (used when not using species stats). |
AttackInterval |
1.4 |
Seconds between pet attacks. |
AggroRange |
12 |
How far the pet will engage an enemy you're fighting. |
AttackRange |
2.6 |
Melee reach for a pet attack. |
CombatLeashDistance |
40 |
Leash while actively fighting, so the pet can reach enemies engaged at range. |
EnableSpecialAttack |
true |
Allow firing the pet's Hunt as One signature attack. Requires EnableCombat. |
EngageRange |
20 |
Command Pet Engage: scan range for an enemy in front of you when you have no locked target. |
EngageConeDegrees |
120 |
Width of the "in front of you" cone the Engage scan uses. |
DisengageRunHomeSeconds |
12 |
After a fight ends far away, keep the relaxed leash this long so the pet runs home instead of teleporting. |
PetAttackVocals |
true |
Play the species attack sound from the body when its bite animation fires. |
PetDamageScalePercent |
100 |
Global balance lever: scale every hit the pet deals, as a percent. 100 = unchanged. Covers all four pet damage paths. |
SpeciesDamageScales |
(empty) |
Per-species overrides of the above, as Name=percent pairs (e.g. Hyena=60). Exact name wins, else longest match. |
UngovernedPetDamagePercent |
50 |
Pet damage while its owner has not learned Wild Unknown. 100 = no penalty. |
[HuntAsOne] — the signature attack & your synced strike
| Key |
Default |
Effect |
EnableHuntAsOne |
true |
Play the player's own synced strike alongside the pet's special. Requires EnableSpecialAttack. |
MeleeAnimation |
Probe |
Cast-type name for the player's flourish with a melee weapon (or none). |
BowAnimation |
PowerShot |
Cast-type name for the player's flourish with a bow. |
BonusDamage |
20 |
Flat bonus Physical damage the player's synced strike deals. 0 = animation only. |
BowShotDelay |
0.5 |
Seconds after the bow draw begins before the real arrow fires. |
EnableFoodHexes |
true |
A species with a food-hex mapping inflicts hex build-up on its Hunt as One hit, chosen by its recent meals. |
HexMealWindow |
3 |
How many recent mapped meals drive the hex mix. |
HexBuildupPercent |
20 |
Hex build-up percent contributed per mapped meal. |
HonestHits |
true |
Hunt as One strikes are failable — a block, dodge or whiff means that half deals nothing. |
EnableRangedSpecial |
true |
A Kind=Ranged species (e.g. Mantis Shrimp) fires its own captured projectile on Hunt as One. |
BoltMaxFlightSeconds |
6 |
Backstop ceiling on waiting for a fired bolt's impact before ruling a miss. |
SyncSkillCooldownToPet |
true |
Make the skill advertise the active species' real signature cooldown, so the hotbar countdown is truthful. |
BaseSkillCooldownSeconds |
1 |
The skill's own debounce cooldown when there's no species cooldown to sync to. |
[Synergy] — the Hunt as One stacking buff
| Key |
Default |
Effect |
EnableSynergy |
true |
Landing both halves of Hunt as One grants a stack of Synergy (+all-damage for player and pet). |
PercentPerStack |
0.5 |
All-damage bonus percent per stack. |
MaxStacks |
4 |
Stack cap. |
DurationSeconds |
60 |
Lifespan of the stacks (a new grant refreshes all). |
WindowSeconds |
6 |
How long after a cast the two halves may land and still count. |
RequireSameTarget |
false |
Require the player's hit to be on the pet's target to count. |
PlayerMeleeRangeMeters |
3.5 |
How close you must be to the pet's target for the synced melee strike to connect. |
PlayerMeleeConeDegrees |
100 |
Front-cone width the target must be inside for the synced strike to connect. |
PetMeleeRangeMeters |
4.5 |
How close the pet must be to its target for its melee special to connect. |
[ForTheKill] — the Synergy spender
| Key |
Default |
Effect |
EnableForTheKill |
true |
Consume all Synergy stacks for one joint execute strike plus the species' debuff. |
CooldownSeconds |
60 |
For the Kill cooldown. Every cast burns it. |
BaseDamageMult |
1.5 |
Base multiplier on the joint strike before per-stack scaling. |
DamagePerStackPercent |
35 |
Extra damage percent per stack consumed. |
EnableKillFavor |
true |
A kill by the execute grants the player a loyalty-tiered stat buff (the species' killBuff). |
KillFavorDurationSeconds |
300 |
How long that buff lasts. |
EnableFtkTaunt |
true |
A species with a taunt entry pins its execute target's aggro on the pet per stack spent. |
[Brace] — the tank counterattack stance (Armored Hyena)
| Key |
Default |
Effect |
EnableBrace |
true |
A Kind=Brace species's Hunt as One opens a counterattack window instead of a strike. |
WindowSeconds |
5 |
How long the braced window stays open. |
PerAttackerOnce |
true |
Counter each attacker only once per window. false = counter every eligible hit. |
NegateCounteredHit |
true |
A countered hit deals zero damage to the pet. |
RiposteImpact |
60 |
Impact (knockback) the riposte carries. |
CueVolume |
0.5 |
Volume (0–1) of the parry cue at brace-enter. 0 = none. |
[SkillEcho] — the pet's bonus strike on your weapon skills
| Key |
Default |
Effect |
EnableSkillEcho |
true |
Casting a classic weapon skill (Puncture, Moon Swipe, etc.) makes the pet strike your target. |
EchoDamageMult |
1.25 |
Default echo damage as a multiplier of the pet's base damage. |
EchoImpactMult |
1.25 |
Default echo impact as a multiplier of the pet's attack impact. |
EchoWindupSeconds |
0.4 |
Delay between the echo's animation and the hit resolving. |
EchoCooldownSeconds |
1 |
Minimum seconds between echoes. |
EchoRangeMeters |
10 |
The pet must be within this range of the target or the echo skips. |
EchoWhilePassive |
false |
Fire even while the pet is in Disengage stance. |
CueOnPet |
true |
Play the cue VFX on the pet (true) or the player (false). |
CueStatusName |
Rage |
Status whose FX prefab is borrowed for the cue (never applied). |
CueSeconds |
2 |
How long the cue VFX lives. |
[Gifts] — the Gift skill & feather fletching
| Key |
Default |
Effect |
EnableGiftSkill |
true |
The Gift skill: the pet gives the player a species-defined gift. |
GiftCooldownSeconds |
600 |
Gift skill cooldown (10 min). A no-pet cast refunds it; a "nothing" roll burns it. |
EnableFeatherFletching |
true |
Pearlbird feathers enchant an arrow stack in place with quality-tiered "Pearl Fletching". |
FletchNameSuffix |
true |
Fletched arrow stacks show their bonus in the display name (e.g. "Iron Arrow (+20%)"). |
[Scent] — the pet's environment sense
| Key |
Default |
Effect |
EnableScentSense |
true |
A species with a senses entry periodically noses out nearby interesting item spawns and indicates them. |
SniffIntervalSeconds |
5 |
Seconds between scent scans. |
SkipEmptyGatherables |
true |
Ignore already-harvested gathering spots. |
NorthYawOffsetDegrees |
0 |
Compass correction for the direction bucketing. |
IndicatePoint |
true |
On a fresh scent the pet stops, faces the source (the hunting "point"), and barks. |
PointSeconds |
3 |
How long the pet holds the point. |
IndicateStatusIcon |
true |
Show a "Scent Trail" buff icon while the pet holds a scent (also needs ShowPetStatusIcons). |
IndicateToast |
true |
On a fresh character-kind alert, an on-screen toast names the scent and its compass direction. |
Single-switch systems
| Section · Key |
Default |
Effect |
[Sigils] EnableSigilSynergies |
true |
A species with a sigils entry changes its Hunt as One hit while the pet stands in a mage sigil. |
[Gear] EnableGearEffects |
true |
A worn item with a gear entry alters the active pet (e.g. a Pearlbird Mask boosts loyalty gain). |
[BuffFoods] EnableBuffFoods |
true |
Feeding a buff food grants a temporary damage buff (not a meal). |
[Scavenge] EnableScavengeBonus |
true |
A species's listed loot containers roll extra times on first open, by loyalty tier. |
[HUD] EnableHealthHud |
true |
Show a simple pet-health bar (top-left) while a live pet exists. |
[Skills] — the skill-tree gates
| Key |
Default |
Effect |
ScatologyGatesScrolls |
true |
Recipe scrolls only drop once someone in the session has learned Scatology. |
BeastOfBurdenCapacity |
5 |
Flat bag capacity the Beast of Burden passive adds while you have a pet. |
EnableWildUnknownGate |
true |
Region travel breaks the bond unless the owner has learned Wild Unknown (which also grants +5 loyalty per new region pair). |
EnableCommunionGate |
true |
The bond's passive player buffs require the Communion skill. (This default withholds buffs on existing saves until Communion is bought.) |
See Skills.
[Wards] & [Lantern] — sharing player spells with the pet
| Key |
Default |
Effect |
[Wards] EnableWardShare |
true |
The pet's anchor mirrors your Mana Ward (Force Bubble) and receives Gift of Blood's ally regen. |
[Wards] WardPollSeconds |
0.25 |
How often the player's ward statuses are polled. |
[Wards] ManaWardStatusNames |
Force Bubble,ForceBubble |
Status-identifier candidates for Mana Ward's status. |
[Wards] GiftOfBloodStatusNames |
Gift of Blood,GiftOfBlood |
Candidates for the caster-side Gift of Blood status. |
[Wards] GiftOfBloodAllyStatusNames |
Gift of Blood Ally,GiftOfBloodAlly |
Candidates for the ally-side regen status. |
[Lantern] EnableLanternShare |
true |
A copy of your summoned Runic Lantern floats above the pet while yours is alive. |
[Lantern] LanternPollSeconds |
0.25 |
How often the player's statuses are polled for the lantern. |
[Lantern] LanternStatusNames |
Runic Lantern Amplified,Runic Lantern,RunicLantern |
Status-identifier candidates for the lantern (base and amplified are separate statuses). |
[Lantern] LanternUpOffset |
0.5 |
How far above the pet the mirrored lantern floats (m). |
[Lantern] LanternForwardOffset |
0.3 |
How far ahead of the pet it floats (m). |
[Bandage] — applying a bandage to the pet
| Key |
Default |
Effect |
EnableBandageHealing |
true |
On a bandage item the right-click "Feed" inventory action becomes "Bandage ": pressing it puts the vanilla heal-over-time status on the pet's anchor (the same one a bandaged player gets), consumes the bandage, and grants the player no buff. Off = a bandage is an ordinary item again (the action falls back to "Feed", which a bandage refuses). |
BandageItemIds |
4400010 |
ItemIDs treated as a "bandage" for the apply-to-pet action, comma-separated (vanilla Bandages = 4400010). Add a modded bandage's id to make it applicable too. |
BandageStatusNames |
Bandage |
Status-identifier candidates for the heal status a bandage grants, comma-separated, first that resolves wins (identifiers are asset data; statusdump/bandagedump list what resolved). |
[Anchor] — the invisible combat body
The pet's real combat body is an invisible ally Character ("the anchor") that absorbs enemy aggro and
damage while the visible body puppets it. Most of these are for debugging.
| Key |
Default |
Effect |
EnableAnchor |
true |
Spawn the invisible ally so enemies can target and damage the pet. |
AnchorInvisible |
true |
Hide the anchor's model. Off = watch the ally directly while debugging. |
AnchorShowHealthBar |
false |
Show the anchor's floating health bar. |
AnchorLinkSummonSlot |
true |
Register the anchor as the player's summon (rides owner teleports; conflicts with a real Conjure ghost). |
HideSummonIcon |
true |
Hide the synthesized "Summoned Ghost" HUD icon for the anchor. |
AnchorLeashDistance |
20 |
Teleport the anchor to the player when it falls this far behind (out of combat). |
AnchorRespawnSeconds |
60 |
How long a downed pet stays gone before re-forming. |
AnchorBaseHealth |
110 |
Base for the pet's combat HP (×1.5 at loyalty 100, ×0.5 at loyalty 0). |
AnchorDealsDamage |
false |
Let the anchor's invisible weapon deal damage. Off = the visible-combat system owns damage. |
AnchorSpeciesVoice |
true |
Species-correct hurt/death cries + silencing of the ghost's stock audio. |
GlueMode |
Always |
How the anchor is position-coupled to the visible body. Always = welded every frame. |
GlueOffsetBehind |
0.3 |
Weld offset (m) behind the body along its facing. |
UnifyTargets |
true |
Keep the anchor and pet locked on the same enemy. |
AnchorPlayerCollision |
PassPlayer |
How the anchor collides with players: PassPlayer (can't shove you), Block (pre-fix), Phantom (blocks nothing). |
[PetPanel] — Companion-tab controller nav
| Key |
Default |
Effect |
EnableControllerNav |
true |
Right stick scrolls the active half of the Companion tab; triggers switch halves. |
StickScrollSpeed |
1.2 |
Scroll speed at full stick deflection. |
StickDeadzone |
0.2 |
Right-stick deadzone before scrolling. |
[Taming] — the player taming loop
| Key |
Default |
Effect |
EnableTamingFoods |
true |
The taming loop: recipe-scroll drops, cooking chow, and taming a wild one by using it nearby. |
TameRadius |
15 |
How close a wild creature must be for using its taming food to tame it. |
RecipeDropChance |
1 |
Global chance (0–1) a tameable creature drops its recipe scroll on death, ×its per-species chance. |
[Maren] — the trainer NPC
| Key |
Default |
Effect |
EnableMaren |
true |
Register Maren the trainer with StoryKit. Off = she never appears (relaunch to change). |
MarenScene |
CierzoNewTerrain |
Scene build name Maren stands in. |
MarenPosX / MarenPosY / MarenPosZ |
(Cierzo spot) |
Maren's spawn position. Re-stamp with the marenhere verb. |
MarenRotY |
(Cierzo facing) |
Maren's facing (yaw degrees). |
[MP] — multiplayer
| Key |
Default |
Effect |
AllowConsumeTameInRoom |
true |
Allow the host's consume-tame while other players are connected. (A known cost: the tamed creature may appear frozen to guests until their next area load.) |
Diagnostics & maintenance
| Section · Key |
Default |
Effect |
[SelfTest] RunSelfTestOnLoad |
false |
Run the compute-layer self-test on load. |
[Diag] DiagIntervalSeconds |
60 |
Auto-dump a [DIAG] snapshot on this cadence. 0 = off. |
[Diag] DiagRadius |
30 |
Radius the diag snapshot scans for nearby AI. |
[Diag] CastDiagPatches |
false |
Re-arm the cast-pipeline tracer (relaunch to change). |
[Diag] MusicReconPatches |
false |
Re-arm the music-recon taps (relaunch to change). |
[Harvest] UnloadUnusedAssetsMode |
EveryN |
When to run the post-harvest asset purge (Always / EveryN / Off). |
[Harvest] UnloadEveryNHarvests |
5 |
With EveryN: purge only every Nth harvest. |
[Harvest] FlushTerrainAfterPurge |
true |
Re-arm terrain render data after a purge. |
[Expedition] is a legacy section. Its keys (CaptureOnSceneEntry, AutoWarmAtBoot,
AlwaysWarmSpecies) moved to CompanionKit's own config (cobalt.companionkit.cfg); the copies here
are read once to migrate a customised value and then ignored. Edit CompanionKit's config instead.
See also