Confirm with your password

DvergrAllies

Tame, breed, and lead an army of custom Dvergr Allies! Features 4 custom classes (Warrior, Cleric, Spellsword, Elemental Mage), breeding genetics, star-level weapon scaling, and native combat AI.

Client & Server Combat Npc Taming Valheim 1.0

· Website · 💗 Donate

Stars
2
Downloads
444
Version
1.0.10
Updated
Author
Wubarrk
Virus scan
✓ Scan successful
Runs on
Client & Server

Compatibility

Required 2

Install these too — Gale pulls them in for you.

Description

⚒️ Dvergr Allies

Tame, breed, and lead an army of custom Dwarven warriors.

Valheim BepInEx Jotunn

[!NOTE] Dvergr Allies is a massive overhaul to the Valheim taming system, allowing you to tame vanilla Dvergrs, breed them, and genetically evolve them into four distinct custom combat classes. Featuring dynamic weapon scaling, complex genetics, and custom-built Native Monster AI, your Dvergrs are no longer just passive NPCs—they are an elite fighting force.


🛡️ Features

[!TIP] Mercenary Contracts: Don't want to tame? Buy Dvergr Contracts from Haldor the Trader! Consuming a contract will instantly summon a fully-tamed, randomized Dvergr class (including rare elites like Spellswords or Berserkers!).

  • Taming & Breeding: Tame wild vanilla Dvergrs using Coins, Cooked Meat, Sausages, or Yggdrasil Wood.
  • Genetic Class System: Breed your Dvergrs to discover specialized classes. Cross-breed existing classes to unlock powerful elite hybrids.
  • Dynamic Equipment Scaling: Your allies don't just get more health when they level up. Their physical gear dynamically upgrades! A 0-star Warrior wields a Bronze Sword. A 1-star upgrades to Iron. A 2-star wields a devastating Blackmetal Battleaxe.
  • Native Combat AI: Weapons and magic have been flawlessly integrated into the native Valheim monster physics engine, ensuring perfect hit registration, aggression, and particle effects.
  • Cleric AoE Healing: Clerics pulse massive Area-of-Effect Heal-over-Time spells to keep your army alive during raids.
  • Discord Stats via BarrkBOT: Your server tracks your empire and reports it to Discord — who commands the largest warband, whose bloodlines have taken the heaviest losses, and who got lucky pulling elites out of Haldor's contracts. Deaths and births are recorded as they happen and survive server restarts.

🧬 The Classes & Prefabs

Class Icon Role Abilities & Upgrades
Base Dvergr
AllyDvergr
⛏️ Foundation The genetic baseline. Wields simple weapons.
The Warrior
AllyDvergrWarrior
⚔️ Tank / Aggro 0★: Bronze Sword & Buckler
1★: Iron Sword & Silver Shield
2★ (Berserker): Blackmetal Battleaxe (+50% Slash Damage buff)
The Cleric
AllyDvergrCleric
🌿 Support / Healer Ability: Pulses 15 HP/s AoE Heal-over-Time.
Defense: Wields an Iron Mace.
The Spellsword
AllyDvergrSpellswordFire / Ice
🔥 / ❄️ Elite Hybrid Ability: Casts native Fireball or Icebolt, then rushes in for melee.
Gear: Bronze (0★) → Iron (1★) → Blackmetal (2★)
The Elemental Mage
AllyDvergrMageElemental
🌌 Arcane Artillery Ability: Cycles elements every 10s (Fireball, Icebolt, Goblin Shaman Fire).

🌳 The Breeding Tree

[!IMPORTANT] You can't just find an elite unit in the wild—you have to breed one. When two Dvergrs mate, their offspring has a chance to mutate into a higher-tier class based on their parents' genetics.

🧬 Tier 1 Mutations (From Vanilla Tames)

Combining two base Dvergr tames has a chance to produce a specialized unit.

  • ⛏️ Rogue + ⛏️ Rogue ➞ ⚔️ Warrior (Pure Melee)
  • ⛏️ Support Mage + ⛏️ Support Mage ➞ 🌿 Cleric (Pure Healing)
  • ⛏️ Fire Mage + ⛏️ Ice Mage ➞ 🌌 Elemental Mage (Dual Magic)

🧬 Tier 2 Mutations (Hybrids & Elites)

Combining different classes passes down their traits into an Elite Hybrid.

  • ⛏️ Rogue + ⛏️ Fire Mage ➞ 🔥 Fire Spellsword (Melee + Fire)
  • ⛏️ Rogue + ⛏️ Ice Mage ➞ ❄️ Ice Spellsword (Melee + Ice)
  • ⚔️ Warrior + ⚔️ Warrior ➞ 🪓 Berserker (Ultimate Melee)

[!NOTE] (Note: In the code, offspring that don't trigger the "Special Combo Chance" simply inherit the exact class of one of their parents, maintaining your bloodlines!).


⚙️ Configuration Options

Dvergr Allies is highly customizable via the BepInEx/config/DvergrAllies.cfg file. You can adjust almost every aspect of the mod in real-time.

🥩 Taming
  • Taming Time: Time required to tame a wild Dvergr. (Default: 1800s)
  • Taming Items: The prefabs they will eat. (Default: CookedMeat, Coins, Sausages, YggdrasilWood)
  • Fed Duration / Consume Range: Fine-tune their hunger mechanics and eating distance.
🧬 Breeding
  • Pregnancy Duration: How long it takes for offspring to spawn. (Default: 600s)
  • Breeding Limit: Max Dvergrs allowed in a 10m radius before they stop breeding. (Default: 4)
  • Pregnancy Chance: Likelihood of successful mating per interval. (Default: 33%)
  • Special Combo Chance: The chance that a valid genetic pair produces the Hybrid Mutation instead of a normal child. (Default: 25%)
  • Level Up Chance: The chance an offspring is born with +1 Star. (Default: 10%)
  • Max Breeding Level: Cap the maximum stars they can achieve. (Default: 2 Stars / Level 3)
📈 Stats
  • Health Multiplier: Global multiplier for your Dvergrs' base health pools.
  • Damage Multiplier: Global multiplier applied directly to the physical slash/blunt/pierce damage of all custom Dvergr weapons, and the elemental damage of all Mage staves.
📊 BarrkBOT Export
  • Enable Stats Export: Writes your Dvergr empire's stats to BepInEx/config/DvergrAllies/ as JSON, so BarrkBOT can answer questions about them in Discord. (Default: On)
  • Export Interval: Seconds between writes. (Default: 60s) BarrkBOT only checks every 20 minutes, so lowering this buys nothing.
  • Force Census Unavailable: (Testing only — leave Off) Makes the export deliberately report that it couldn't count your Dvergrs, so you can verify the failure path works without breaking anything. Counts are reported as "not measured" rather than zero, your lifetime history keeps recording, and the export says outright that it was forced.
  • Server-side only — clients do no work and write no files.
🧠 AI & Economy
  • Max Follow Leash: The maximum distance (in meters) a Dvergr will chase an enemy before dropping aggro and returning to the player they are following. (Default: 40m)
  • Contract Cost: Cost in coins to purchase a Mercenary Contract from Haldor. (Default: 999)

[!WARNING] Debugging: Toggle robust AI, Equipment, and Breeding logs to see exactly what your Dvergrs are thinking, who they are mating with, and what weapons they are equipping.


🤝 Compatibility

  • Valkyrie's Cargo — Ingvar, the travelling merchant, is a vanilla Dverger under the hood. Dvergr Allies recognises him by that mod's own tag on his save data and strips every taming, breeding and genetics component from him the moment he appears, so [E] trades with him as intended - he can never be tamed, petted, renamed, commanded, bred, or counted among your Dvergr. Wild Dvergr are unaffected.
  • Shadows of Midgard — your allies carry the SoMStealthExempt flag so SoM's stealth AI leaves them to their combat AI; wild, untamed Dvergr are explicitly not exempt, so sneaking past them still works.
  • BalrondIdleActors — Balrond's actor scripts are stripped from the custom Ally prefabs so your allies fight and follow instead of idling, and the wild-Dvergr AI adjustments are switched off entirely when Balrond is detected so wild NPCs keep their idle behaviours.

🛠️ Installation

  1. Install BepInEx for Valheim.
  2. Install Jotunn (The Valheim Library).
  3. Install JsonDotNET — required for the stats export.
  4. Drop DvergrAllies.dll into your BepInEx/plugins/ folder.
  5. Tame a Dvergr and begin your empire!

[!IMPORTANT] Server and every client must run the exact same DvergrAllies version. Since 1.0.8 a mismatched client is refused at connection with a screen showing both versions - update everyone together.


join the Mists of Avalor Open BETA find it only on Hexium Hexium Logo


License: MIT — use, modify, and redistribute freely, including commercially; just keep the copyright notice. See LICENSE.md for the full text.

Changelog

1.0.10 Latest
  • Rebuilt for Valheim 1.0.21. Rebuilt against the Valheim 1.0.21 game assemblies (network version 41) on BepInExPack 5.4.2360, and re-verified: static reference check clean against both the client and dedicated-server assemblies, and the mod boots on a real 1.0.21 dedicated server. Character.SetTamed, Character.OnDeath (only the game's cheat-flag bookkeeping changed), MonsterAI.UpdateAI, Trader.Start and ZNetScene.Awake were re-read against 1.0.21 and behave as before.
  • Website link moved to https://www.rossgilsonlabs.dev.
  • The BepInExPack dependency is now denikson-BepInExPack_Valheim-5.4.2360.
  • Everyone must update together: server and every client must run 1.0.10 (a mismatched client is refused at the door with a screen showing both versions).
  • No gameplay, balance or save-data changes. Still 8 Harmony patches; a healthy log still reads [Patches] 8 applied, none failed.
1.0.9
  • Rebuilt against Valheim 1.0.16 and re-verified (static reference check on client and dedicated server, headless 1.0.16 dedicated-server boot).
  • Fixed: buying a Dvergr Contract from Haldor failed part-way through the purchase. Valheim 1.0 added a field to the game's trade-entry type that is not a piece of text, and the safety net this mod puts under its own entry only fills in the text ones. The game uses that field unconditionally the instant a purchase succeeds, so buying a contract threw an error immediately after the coins were taken and the contract handed over. Nothing was lost or double-charged - you kept the contract and paid exactly the listed price - but the purchase flourish and the store's own list refresh never happened, so the shop sat showing stale coin-affordability until it was closed and reopened. The field is now supplied and the purchase finishes cleanly.
  • Whether the contract reached Haldor is now in the log. It never was. If the contract was in his stock, nothing said so; if it was missing, nothing said why - and there are four separate reasons it can be missing, all of which looked identical from outside. Each now writes one line:
    • At startup: [Contract] Dvergr Contract registered at 999 coins., or an error naming exactly what stopped it being created.
    • When Haldor wakes: [Contract] Added to Haldor's stock at 999 coins (9 entries before, 10 after).
    • Plus their own lines for "already in his stock, not added twice" and "Haldor woke but the contract item is missing".
    • If Haldor wakes and there is no [Contract] line at all, that is itself the answer. The game applies every mod's addition to a trader as one chain, so an error thrown by any mod ahead of this one cancels every addition queued behind it, this one included. Haldor's counter is a busy place - Yggdrasil's Reckoning sells its Tear there, Valheim Runestone sells its trader cards there - and that failure leaves no trace in LogOutput.log on its own. A missing line is now evidence, not silence.
  • Everyone must update together, as with any patch release. Server and every client must run 1.0.9; a 1.0.8 client is refused at the door with a screen showing both versions.
  • No gameplay, balance or save-data changes. Still 8 Harmony patches; a healthy log still reads [Patches] 8 applied, none failed.
1.0.8
  • Valkyrie's Cargo compatibility: Ingvar is never tamed. Valkyrie's Cargo's travelling merchant, Ingvar, is not a prefab of his own - he is a plain vanilla Dverger that the mod tags on its save data (VCargo_ingvar) and dresses up at runtime. Dvergr Allies makes every Dverger tameable at load time, so he was inheriting the taming, breeding and genetics components too. The visible symptom: with both mods installed, pressing [E] on Ingvar petted him (Shift+E offered to rename him) instead of opening the trade, because the taming component sat ahead of the merchant script in his interaction lookup. Less visibly, Valkyrie's Cargo marks him tamed for its own reasons, so he could have bred with your Dvergr, been given a gender and an owner tag on data that mod owns, and been counted as one of your tamed Dvergr in the BarrkBOT export.
    • He is now recognised by that tag the moment he appears on your machine, and every Dvergr Allies component is removed from him before you can look at him: no taming, no petting, no renaming, no follow/stay commands, no breeding, no gender, no stealth flag, no owner tag, no place in the census. The per-frame wild-Dvergr AI adjustments leave him alone as well - his behaviour is the merchant script's to drive.
    • Wild Dvergr are untouched: the prefab-level taming injection is exactly as before, and the check costs a wild Dvergr one integer read as it spawns.
    • Recognition is by the save-data tag, not by whether Valkyrie's Cargo is installed. A merchant left behind in a world after that mod is removed still keeps his hands off your taming pens.
    • Startup logs [Compat] Valkyrie's Cargo detected when it is present, and one [Compat] Valkyrie's Cargo merchant ... woke on this machine line each time Ingvar lands, so the exclusion can be seen working.
    • One more Harmony patch (Tameable.Awake), so a healthy log now reads [Patches] 8 applied, none failed.
  • Everyone must now run the exact same version. Network compatibility is tightened from "major.minor must match" to "the whole version must match". Before, a 1.0.7 client could join a 1.0.8 server, and that client's copy of the mod would still treat Ingvar as tameable - it could pet, rename or command him on its own screen and write those onto his save data, and nothing the 1.0.8 side does can stop a client that has not updated. Now a mismatched client is turned away at the door by Jotunn's version screen, which shows both versions, so a server upgrade is a coordinated "everyone update" rather than a silent split. Patch releases of this mod change game patches and save-data writes, so this is the honest contract going forward.

8 older entries, full version history & downloads →

Files

6 files · 219 KB download

Loading files…

Manual download
Just this mod One .zip — DvergrAllies 1.0.10
Files you'll get 3

Your browser may ask permission to download several files at once. How to install these manually

Manual installation instructions
1

Install BepInExPack Valheim

BepInExPack Valheim is required to run mods in Valheim.

Download BepInExPack Valheim 5.4.2360 · View mod page

Check out the mod page for detailed installation instructions.

2

Install DvergrAllies

This mod must be installed on both the client and the server.

Download DvergrAllies 1.0.10

Extract the ZIP and place the file(s) into the BepInEx/plugins/ folder inside your Valheim game folder.