Valheim
You are viewing a potentially older version of this package. View Latest Version
Install with App

Details

Date Uploaded
3 days ago
Downloads
13.8K
Size
297KB
ADDatHost Valheim hosting
30% off

⚔️ Balrond Dual Mastery

Current documented version: 0.3.6

Balrond Dual Mastery adds a dedicated dual-wield combat system to Valheim. It allows the player to use two supported one-handed weapons at the same time, with independent weapon calculations, custom paired animations, a dedicated Dual Mastery skill, multiplayer support, and compatibility layers for other animation/skill mods.

Multiplayer: the mod is required on the server and on all clients joining that server.


✨ Key Features

  • Dual wield two supported one-handed weapons.
  • Dedicated Dual Mastery skill (SkillType ID 874298).
  • Independent primary-hand and off-hand weapon calculations.
  • Custom paired guard, combo, and secondary/power animations.
  • Off-hand damage, force, resource cost, and XP scaling.
  • Configurable primary and secondary animation-speed multipliers.
  • Animation-authored SPEED events supported by the paired clips.
  • Primary and secondary paired attacks aim toward the cursor/crosshair.
  • Fast pair replacement through a configurable local grace window.
  • Configurable local modifier for replacing only the off-hand item.
  • Separate holster positioning for paired back weapons.
  • ServerSync support for gameplay settings.
  • Optional shudnal/ConfigurationManager integration through standard BepInEx config metadata.
  • Soft compatibility with BetterArchery, WindstridesBowAnimations, OdinHorse, and SkillsReworked.
  • No dependency on BalrondExtraSkills.

Balrond Dual Mastery is not compatible with other mods that implement their own dual-wield ownership for the same player hands.


⚔️ Dual Mastery Skill

The mod registers:

Name: Dual Mastery
Skill ID: 874298

Accepted compatibility aliases include:

DualMastery
Dual Mastery
DualWield
Dual Wield
BalrondDualMastery
874298

By default, successful paired attacks raise the Dual Mastery skill.

When SkillsReworked manages skill 874298, SkillsReworked owns progression and attribute mapping while DualMastery continues to own the combat effects.

BalrondExtraSkills is not required.


⚔️ Combat Behaviour

Primary attack

While a valid pair is active:

  • the paired primary animation set is used;
  • primary and off-hand damage are calculated independently;
  • the off-hand strike receives the configured mastery and balance multipliers;
  • attack direction is aligned toward the cursor/crosshair;
  • the authored SPEED animation event controls clip cadence, with the configured Primary Animation Speed applied as an additional multiplier.

Secondary attack

The paired secondary attack:

  • uses the custom paired secondary/power animation;
  • applies its own resource surcharge;
  • applies the configured secondary damage multiplier;
  • aims toward the cursor/crosshair;
  • uses the authored SPEED event plus the configured Secondary Animation Speed multiplier.

The normal weapon-specific alternate attack is therefore replaced while the Dual Mastery pair is active.


🗡 Equipment Rules

Dual Mastery owns only valid supported paired layouts.

A pair normally consists of two compatible one-handed weapons. Spears keep their special handling so vanilla spear throw behaviour is not replaced by the paired system.

Items that are not valid paired weapons — for example bows, crossbows, two-handed weapons, tools, staffs, and similar non-pair items — end the paired state and follow their normal equip behaviour.

Pair Swap Grace

Local setting:

2 - Equipment / Pair Swap Grace Period
Default: 1.0 s
Range: 0-3 s

Example with an active pair A + B:

  1. select weapon C -> temporary A + C;
  2. select weapon D before the grace window ends -> final pair C + D.

Set the value to 0 to disable the grace behaviour.

This is a local player input setting and is not ServerSync-locked.

Replace Offhand Modifier

Local setting:

2 - Equipment / Replace Offhand Modifier
Default: LeftAlt

Hold the configured modifier while selecting:

  • supported one-handed weapon -> replace only the left-hand item;
  • shield -> replace only the left-hand item;
  • torch -> replace only the left-hand item.

If the selected item is a bow, crossbow, two-handed weapon, tool, or another incompatible item, normal Valheim equip behaviour is used and the paired state ends.

This setting is local and is not ServerSync-locked.


⚙️ Configuration

Balrond Dual Mastery uses normal BepInEx configuration entries.

Gameplay settings are synchronized through ServerSync when appropriate. Local UI/input/visual settings remain client-side.

General

  • Enabled
  • Lock Configuration

Equipment

  • Allow Mixed Weapon Skills
  • Separate Back Weapons
  • Pair Swap Grace Period
  • Replace Offhand Modifier

Combat defaults

Offhand Damage At Skill 0      = 0.55
Offhand Damage At Skill 100    = 0.80
Dual Wield Damage Scale        = 0.75
Secondary Damage Multiplier    = 1.08
Offhand Force At Skill 0       = 0.70
Offhand Force At Skill 100     = 0.95
Primary Extra Resource Ratio   = 0.60
Secondary Extra Resource Ratio = 0.75
Resource Discount At Skill 100 = 0.20

Skill defaults

Mastery Progression Enabled = true
Primary Attack XP           = 0.12
Secondary Attack XP         = 0.18
Mastery XP Multiplier       = 1.0

Animation defaults

Primary Animation Speed   = 1.0
Secondary Animation Speed = 1.0

The animation-speed values are additional multipliers. Custom Dual Mastery clips can contain SPEED AnimationEvents, and those authored events remain part of the final playback cadence.


🎬 Animation Ownership and Compatibility

DualMastery avoids continuously fighting other animation mods for runtimeAnimatorController.

BetterArchery

BetterArchery is treated as a soft compatibility target. DualMastery only works with the controller that is actually live on the player and does not continually restore a stale BetterArchery controller.

WindstridesBowAnimations

When Windstride owns the bow/draw pose:

  • DualMastery stops paired animation/controller writes;
  • Windstride keeps ownership of bow-body posing;
  • DualMastery does not apply its paired Animator speed while the bow pose is active.

Transitions from a paired loadout to a bow keep the equip transition stable instead of replacing the controller mid-transition.

OdinHorse

Mounted combat has priority over DualMastery animation ownership.

While OdinHorse owns mounted combat, DualMastery does not take over:

  • the mounted AnimatorController;
  • mounted root/aim rotation;
  • OdinHorse attack cadence;
  • mounted attack type handling.

OdinHorse 1.8.x lance behaviour is also treated as reserved mounted functionality and is not converted into a Dual Mastery pair.

SkillsReworked

SkillsReworked can be installed without BalrondExtraSkills.

DualMastery owns its SkillDef, combat effects, and attack XP emission. When SkillsReworked manages Dual Mastery, SkillsReworked owns the resulting progression/attribute level and DualMastery reads that effective level for scaling.

shudnal/ConfigurationManager

ConfigurationManager is optional.

DualMastery uses standard BepInEx ConfigEntry, ConfigDescription, AcceptableValueRange, and reflection-compatible ConfigurationManager metadata. No hard reference to ConfigurationManager is required.


💀 Death and Tombstone Behaviour

DualMastery does not replace Valheim's death-loot policy.

Vanilla Player.CreateTombStone and the current world modifiers remain authoritative for:

  • normal tombstone transfer;
  • Keep Inventory;
  • Keep Equipment;
  • Delete Items;
  • Delete Unequipped.

During the death transaction, DualMastery prevents its off-hand normalization from moving the left weapon back into the right hand while vanilla is processing UnequipAllItems.

After vanilla finishes, DualMastery only repairs hand references based on which items actually remain in the player's inventory.


🎒 Inventory Safety

DualMastery does not directly assign inventory grid positions and does not use Inventory.AddItem to restore the off-hand.

If a previously equipped off-hand item no longer exists in the player's inventory, DualMastery clears the stale hand reference instead of resurrecting the item.

Warnings such as:

Trying to add item to occupied slot -1, -1

originate from Valheim's inventory add path. If they occur, another inventory/equipment interaction may still need diagnosis; DualMastery should not intentionally create or add an item to (-1,-1).


🛠 Building the Project

The project targets:

.NET Framework 4.8
C# 7.3
publicized Valheim assemblies
BepInEx / HarmonyX
ServerSync
ILRepack

The project intentionally requires publicized Valheim assemblies and does not silently fall back to the raw Managed/assembly_valheim.dll.

AllowUnsafeBlocks is enabled.

Make sure the required AssetBundle and icon resources remain present before building.


📂 Installation

Install with a mod manager or place the compiled release in:

BepInEx/plugins

The server and every connecting client must use a compatible DualMastery build.

Restart the game after installation or update.


⚠️ Compatibility Notes

Tested/audited compatibility targets for the current development line include:

  • BetterArchery 2.0.2
  • WindstridesBowAnimations 1.1.1
  • OdinHorse 1.8.x
  • SkillsReworked 2.0.2
  • shudnal/ConfigurationManager
  • standalone DualMastery

These integrations are soft/capability-based. External mods are not compile-time dependencies unless explicitly required by the project itself.


💬 Support & Feedback

Balrond's Den Discord
https://discord.gg/Jfp8T5N7Pv

Support development:
https://ko-fi.com/balrond1020

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.