BloodMagicCompanion
Configurable stamina-powered Blood Magic, caster shield XP, skeleton T.W.I.G. training and optional summoned-skeleton lava immunity. Server optional; creature-owner and mixed-client limitations docume
About this mod Author’s original text
Blood Magic Companion
Three configurable Blood Magic changes in one Valheim mod:
- Stamina-powered casting: replace eitr with fixed stamina costs, scaled by Blood Magic skill, while preserving the original health cost.
- Caster shield XP: credit Staff of Protection shield-break XP to the caster when the computer processing the break and the caster support the feature.
- Optional skeleton training: summoned melee and archer skeletons can target T.W.I.G.; disabled by default.
All features can be switched off independently. One DLL, one configuration file.
Status: experimental release 1.2.1. Compiled against Valheim 1.0.17 and BepInExPack 5.4.2350. Offline arithmetic, routing, and static checks pass. Unity loading, actual casting, and multiplayer have not been playtested. The default conversion rate is a starting point for balancing, not a claim of equivalence to vanilla eitr.
Install and upgrade
Use r2modman or Mod Manager with BepInExPack_Valheim 5.4.2350 or newer. Update the existing qwertyzxcv-BloodMagicCompanion package after 1.2.1 is published, then launch with Start modded. For a local ZIP, use Settings → Profile → Import local mod and select LocalMods-BloodMagicCompanion-1.2.1.zip. Avoid enabling both a local import and the public package at once.
For manual installation, replace BloodMagicCompanion.dll inside BepInEx/plugins with the new DLL. Keep only one copy. Close Valheim before updating.
Remove or disable both standalone predecessors: BloodMagicCasterXP and BloodMagicHealthCost. The combined plugin declares those IDs incompatible to avoid double patches.
After the first launch, edit BepInEx/config/local.valheim.bloodmagiccompanion.cfg through the mod manager's Config editor. Restart to apply settings.
Upgrading from 1.0.0 changes casting balance: the extra health payment is replaced by stamina. The original health cost is restored. If the old HealthCosts/Enabled setting was false, it seeds StaminaCosts/Enabled=false when the new setting is first created. An existing StaminaCosts/Enabled always takes precedence. Other old HealthCosts settings are ignored; configure the new StaminaCosts section instead. Old per-staff health multipliers are not copied because the units and meaning changed. CasterXP and Logging settings are retained.
Stamina and health costs
At the defaults, each point of base eitr becomes 1 stamina, discounted once by Blood Magic skill: 0% at skill 0, 16.5% at skill 50, and 33% at skill 100.
converted stamina = base eitr × StaminaPerEitr × item multiplier
× (1 − CostReductionAtSkill100 × skill level / 100)
total stamina = max(0, native stamina cost) + converted stamina
Skill is clamped to levels 0–100. Primary and secondary attacks use their own base eitr fields. Any original stamina cost retains its native modifiers and is added separately. Equipment and status-effect stamina discounts do not reduce the converted surcharge. A negative native stamina refund cannot cancel the surcharge.
| Base eitr | Skill 0 | Skill 50 | Skill 100 |
| --- | --- | --- | --- |
| 60 | 60 stamina | 50.1 stamina | 40.2 stamina |
| 100 | 100 stamina | 83.5 stamina | 67 stamina |
| 120 | 120 stamina | 100.2 stamina | 80.4 stamina |
These are conversion examples; each attack uses its actual configured base eitr cost.
Health remains vanilla. Original flat health plus the percentage of current health, its native skill discount, eligibility checks, and payment cap are unchanged. There is no extra health payment and no new health threshold. The conversion does not scale with current or maximum health.
Enough stamina is required. Native attack-start checks use the total stamina cost (including the game's small 0.1 stamina start margin). Spending down to zero does not make casting free. Native per-burst checks also apply, so a burst attack stops when it cannot afford another burst. The game controls deduction timing; this mod does not reserve stamina during wind-up or add a separate payment.
The toolt
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: