You are viewing a potentially older version of this package. View all versions.
Madkatz-ArcaneWard-1.0.4 icon

ArcaneWard

Skill-scaled Eitr wards and Arcane Blade, built from vanilla assets for balanced progression and compatibility.

Date uploaded 3 weeks ago
Version 1.0.4
Download link Madkatz-ArcaneWard-1.0.4.zip
Downloads 64
Dependency string Madkatz-ArcaneWard-1.0.4

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2350 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2350
ValheimModding-Jotunn-2.30.0 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.30.0

README

Arcane Ward

Arcane Ward

Arcane Ward adds three Eitr-powered magical off-hand wards and the Arcane Blade to Valheim. It is designed as a compact magic-combat expansion: the wards still use Valheim's native blocking and parry mechanics, but each one turns defense into a different elemental playstyle.

The wards and Arcane Blade are deliberately skill-scaled and progression-minded in an attempt to remain useful without simply overpowering vanilla equipment throughout a playthrough. Ward capacity and elemental effects grow with the relevant skills, while the Arcane Blade begins around Bronze Sword strength for an inexperienced swordsman and grows toward Nord Sword strength at Swords 100. The goal is for the equipment to grow with the character rather than arrive at full late-game power immediately.

This is my first Valheim mod. It was built entirely from vanilla Valheim assets and mechanics wherever practical, both to keep the visual style at home in Valheim and to make a good-faith attempt at compatibility with other mods. Arcane Ward does not require a custom asset bundle.

The three wards are Fire for retaliation and damage, Frost for tanking and crowd control, and Lightning for area damage and weakening enemies.

The three Wards

Fire Frost Lightning
Offensive retaliation Tank / crowd control Support / debuff
Parries ignite nearby enemies Blocks can slow and taunt enemies Parries release an AoE lightning burst
Strong direct retaliation against melee attackers No parry specialization Temporarily weakens affected enemies

Arcane Fire Ward

Arcane Fire Ward

The offensive Ward. Successful parries can ignite enemies around you, while a melee attacker can also receive a stronger direct fire retaliation. Its elemental effects scale with Elemental Magic.

Fire Ward retaliation

Arcane Frost Ward

The defensive/control Ward. Funded melee blocks can slow the attacker and taunt nearby hostile monsters, drawing attention toward the Ward user. Unlike Fire and Lightning, Frost deliberately does not specialize in parrying.

Arcane Frost Ward

Frost Ward crowd control

Arcane Lightning Ward

The support/debuff Ward. Successful timed parries release a lightning burst around the player, damaging nearby enemies and temporarily weakening them. The burst is paid for per affected enemy, so available Eitr determines how many targets can be caught.

Arcane Lightning Ward

Lightning Ward parry burst

Eitr-powered defense

All three Wards provide their own small Ward Eitr reserve while equipped. Blocking spends Eitr instead of behaving like a conventional stamina-only shield, and the reserve regenerates using Valheim's Eitr-regeneration modifiers. Its capacity also grows slightly with Blocking skill.

When actively blocking with an Arcane Ward, elemental attacks can consume Eitr to negate the configured Fire, Frost, and Lightning portions of the incoming hit. Poison and Spirit are left alone.

The wards are omnidirectional for blocking while still using Valheim's underlying block calculations.

Arcane Blade

The Arcane Blade grows with its wielder: its physical slash damage starts around Bronze Sword strength at low Swords skill and scales up to Nord Sword strength at Swords 100. Normal swings use and train Swords, while successful thrown attacks train Spears.

Arcane Blade throw

The Arcane Blade is a Nord-style sword in melee and uses normal sword attacks. Its secondary attack transforms it into a magical spear throw. After impact—or after a sufficiently long miss—the weapon magically returns to its wielder.

With an Arcane Ward equipped, the thrown Blade inherits that Ward's Fire, Frost, or Lightning identity and gains the corresponding elemental effect. Empowered throws cost Eitr. The default throw cooldown is 5 seconds, making the Blade a strong periodic ranged option without replacing bows as sustained ranged weapons.

Magical lumbering and durability

While an Arcane Ward is equipped, melee strikes from the Arcane Blade can spend 6 Eitr per successful tree/log hit to deal 45 chop damage and bypass normal axe tool-tier restrictions. The thrown Blade does not chop trees. This is intended as magical utility rather than a replacement for sustained axe use; for comparison, current vanilla axe primary attacks range from roughly 8 stamina for a Bronze Axe to 16 stamina for late-game Berserkir Axes.

The Arcane Blade uses Valheim's normal durability system. When held together with an Arcane Ward, the Ward can passively restore 1 durability for 2 Eitr, once per second by default. Repair stops at full durability and pauses while actively blocking so it does not compete with immediate defensive Eitr use.

Arcane Blade combat

Multiplayer

Install Arcane Ward on every client that will use or observe its custom features. Version 1.0.2 also prevents the locally-created Ward barrier VFX from retaining vanilla network components, addressing a case where another player's shield bubble could remain stuck on them after Ward use.

Version 1.0.3 adds focused lifecycle logging to help identify a reported ZNetScene.RemoveObjects exception storm during death respawn. When reporting that problem, include the full BepInEx log so the [ArcaneWard Diagnostic] events immediately before Starting respawn can be compared with the exception sequence.

Version 1.0.4 constructs the Staff Shield-derived barrier while inactive and removes its networking components before the cosmetic clone is ever activated. Arcane Ward no longer patches Player.OnDeath; Valheim owns the complete death and respawn transition.

The Arcane Blade's elemental projectile identity is synchronized so modded peers can reproduce its in-flight Fire/Frost/Lightning VFX. Frost taunt uses Valheim's ownership and AI synchronization so monster targeting and movement can replicate between peers.

Requirements

  • Valheim 1.0.x
  • BepInExPack Valheim
  • Jotunn

Installation

The easiest installation is through a Thunderstore-compatible mod manager. For manual installation, install BepInEx and Jotunn, then place ArcaneWard.dll in BepInEx/plugins/ArcaneWard/.

Spawn IDs

For testing with devcommands:

  • ArcaneWard — Arcane Fire Ward (legacy internal ID retained for save compatibility)
  • ArcaneFrostWard
  • ArcaneLightningWard
  • ArcaneBlade

Configuration

Gameplay values such as Ward block strength, Eitr costs, regeneration, elemental effects, and Arcane Blade throw behavior are configurable through the generated BepInEx configuration file.

Version 1.0.1

First public release. Includes all three Ward specializations, deterministic Ward Eitr, omnidirectional Ward blocking, elemental blocking, the returning Arcane Blade and its elemental throws, multiplayer projectile VFX synchronization, Frost taunt networking, and the tested respawn lifecycle fix.

Bug reports and feedback

Please report reproducible problems through ArcaneWards GitHub Issues. Include the Arcane Ward version, Valheim version, relevant installed mods, reproduction steps, and the BepInEx log when possible.

CHANGELOG

Changelog

1.1.15

  • Backported the full cast-direction safety guard from the experimental branch: all Arcane Knife projectile/cast rotations now reject zero, NaN, or infinite aim vectors and fall back safely before Quaternion.LookRotation or projectile setup.
  • Fixed the Frost Ward chill visual ZDO lifecycle bug by cloning vfx_Frost inactive, removing ZNetView/ZSyncTransform and other gameplay components before first activation, then using it only as a local cosmetic.
  • Hardened the hand-orb visual with the same pre-activation network sanitization used by the Ward bubble.
  • Hardened replayed vanilla casting-audio effect prefabs so audio-only local clones cannot accidentally register ZDOs.
  • Added one network-aware destroy path for malformed/expired Arcane projectile objects so registered projectiles are destroyed through ZNetScene bookkeeping instead of raw Unity destruction.
  • Fixed the stable build script's stale Thunderstore output name; it now creates ArcaneWard-1.1.15-Thunderstore.zip.
  • No weapon damage, Ward balance, Eitr costs, recipes, or other intended gameplay values were changed.

1.1.14

  • Fixed Arcane Knife cast-facing compatibility with current Valheim builds by removing the obsolete Player.SetLookDir(Vector3) reflection lookup.
  • Facing now updates the player transform plus the existing internal m_lookDir field directly, preventing repeated Harmony missing-method warnings during Fire/Lightning casts.
  • No balance or gameplay values changed.

1.1.13

  • Fixed the Dundr Knife audio helper to compile against the current Valheim/Unity assemblies without adding an AudioModule dependency.
  • Dundr audio discovery now inspects vanilla start-effect components generically and remains cosmetic/fail-safe.
  • Retains the v1.1.12 Lightning pellet rebalance (3.5 to 6.0 lightning per pellet across Elemental Magic 0 to 100).

1.1.12

  • Rebalanced the Lightning Ward Arcane Knife Dundr blast so each individual pellet is intentionally weak.
  • Default per-pellet lightning damage now scales from 3.5 at Elemental Magic 0 to 6.0 at 100; the attack earns its damage by landing multiple pellets at close range.
  • Existing 12/0.08 Lightning Knife configs from v1.1.8-v1.1.11 are automatically migrated to the new defaults.
  • Added theoretical maximum volley damage to the Lightning Knife release diagnostic for easier balance verification.

1.1.11

  • Added configurable impact alert/noise radii for Arcane Knife Fire, Frost, and Lightning ranged casts.
  • Fire defaults to 30 m, Frost to 18 m, and Lightning to 25 m.
  • Arcane Blade returning spear throws now use 50% of their previous projectile-impact alert/noise radius by default because the throw is not explosive.
  • Alert tuning is implemented through Valheim projectile hit-noise, so enemies are alerted from the impact location and still target the caster through vanilla projectile-noise behavior.

1.1.10

  • Removed the Fire Knife charge/hand VFX from Lightning Knife casts.
  • Added Dundr-derived cast audio to the Lightning Knife blast by replaying only audio-bearing vanilla start effects.
  • Cleaned the Thunderstore README description so release-history notes appear only in the patch-notes/changelog area.

1.1.8

  • Frost Knife channel now sends the vanilla attack_abort trigger when MMB is released, the Ward/stance becomes invalid, or Eitr runs out, preventing the rapid-fire casting animation from remaining locked.
  • Fire and Frost casts now check Eitr before starting their casting animation. Frost requires enough Eitr for at least one shard; Fire requires enough for one fireball.
  • Lightning Knife ranged cast now borrows the vanilla Dundr (StaffLightning) short-range 12-projectile lightning blast and its staff_lightningshot presentation instead of throwing a visible spear haft.
  • Lightning blast damage scales with Elemental Magic per pellet; old v1.1.7 single-spear default config values are automatically migrated to restrained Dundr-style defaults.
  • Existing 0.70-second committed Fire/Lightning wind-up, aim-facing reinforcement, crouched knife leap, melee scaling, and Ward mechanics are retained.

1.1.7

  • Arcane Knife aim-facing is now reinforced throughout the active cast/channel, including Valheim's internal look direction, so the animation consistently follows the cursor/camera aim.
  • Frost Ward + standing MMB now channels the vanilla Staff of Frost projectile/VFX while held, using the vanilla staff projectile, damage and per-shot Eitr cost.
  • Lightning Ward + standing MMB keeps the 0.70-second committed draw and releases an Arcane Blade spear projectile with higher Elemental Magic-scaled lightning damage and a brighter doubled in-flight lightning cosmetic.
  • Fire Ward retains the existing 0.70-second automatic fireball cast.
  • Crouched MMB retains the native knife leap.

1.1.6

  • Arcane Knife: starting a standing Ward+MMB cast now turns the local character horizontally toward the camera/cursor aim direction before the draw animation begins.
  • Projectile direction, auto-release timing, Eitr, damage, and VFX lifecycle are unchanged.
  • Facing alignment is cosmetic/best-effort and cannot block the cast if it fails.

1.1.6

  • Arcane Knife ranged cast is now a committed timed cast: pressing standing MMB with a Ward starts the draw and the fireball releases automatically at full draw.
  • Default automatic release is 0.70 seconds, matched to the observed vanilla draw animation timing.
  • Letting go of MMB early no longer causes a partial-power shot or cancels the cast.
  • Release animation and projectile launch now occur together at the full-draw point.
  • Existing projectile, Eitr, damage, origin, VFX lifecycle, melee, crouched leap, and Ward systems remain otherwise unchanged.

1.1.3

  • Matched the Arcane Knife full-charge timing to the observed vanilla draw animation: full power now lands at 0.70 seconds by default.
  • Existing installs still carrying the old untouched 1.25-second default are migrated automatically to 0.70 seconds; customized charge times are preserved.
  • Release remains input-driven: releasing middle mouse immediately casts at the charge reached at that moment, so the projectile is not dependent on an animation event.
  • No projectile, damage, Eitr, impact, Ward, or VFX lifecycle logic was restructured.

1.1.2

  • Added cosmetic-only vanilla animation triggers for Arcane Knife charge and successful fireball release.
  • Added a sanitized local-only fire charge VFX that follows the upper-body cast origin and grows with charge.
  • Moved Arcane Knife fireball spawn to a stable shoulder/hand-height origin with a small forward offset.
  • Gameplay remains independent of animation/VFX success; no projectile, damage, Eitr, or impact logic was restructured.

1.1.1

  • Fixed Unity 6 DestroyImmediate errors during Ward-empowered Arcane Blade projectile creation/impact.
  • Fire/Frost projectile cosmetics are now cloned inactive, sanitized with deferred Destroy, and activated on the following frame.
  • Lightning impact cosmetics now use the same callback-safe deferred sanitization path.
  • Retains the Arcane Knife charged fireball and Elemental Magic ranged progression introduced in 1.1.0.

1.1.0

  • Added Arcane Knife with Knives-scaled physical progression.
  • Added Ward-matching melee elemental infusion.
  • Added charged Staff-of-Embers-style ranged fireball on standing middle mouse; sneak middle mouse preserves native knife leap.
  • Added Elemental Magic scaling/cost tuning to fireball.
  • Added 5/4/3/2 second Arcane Blade throw cooldown progression at Elemental Magic 0/25/50/75.
  • Added Elemental Magic progress on successful Ward-empowered Blade/Spear throws.

1.0.9

  • Fixed the Fire Arcane Blade fallback VFX cloning active vfx_Burning and leaving destroyed ZNetView components registered in ZNetScene.
  • Fire fallback visuals are now cloned while inactive, kept inactive through deferred network/gameplay component removal, and activated on the following frame only after they are safe local cosmetics.
  • No new weapons or other gameplay features are included in this hotfix.

1.0.8

  • Corrected the BepInEx plugin GUID and configuration filename to use the public Torvios identifier: torvios.arcaneWard.
  • Automatically copies existing settings from the legacy Arcane Ward configuration to torvios.arcaneWard.cfg on first launch; the legacy file is retained as a backup.
  • Updated the development builder to recoverably disable duplicate ArcaneWard DLL copies before installing the newly built DLL, preventing the retired and current GUIDs from loading together.

1.0.7

  • Fixed the Frost Arcane Blade throw VFX remaining near the player by cloning only the Staff of Frost projectile's visual hierarchy and parenting it to the actual Blade projectile.
  • Removed Lightning's in-flight Himminafl area effect. Lightning throws now create a sanitized, short-lived Himminafl burst only when the Blade impacts an enemy, terrain, or structure.
  • Separated README release notes from the multiplayer documentation.

1.0.6

  • Fixed Arcane Blade elemental projectile VFX sometimes remaining at the impact point after striking terrain, structures, or enemies.
  • Projectile cosmetics are now tracked explicitly and deactivated before Valheim processes an impact, with additional cleanup on miss timeout, range return, disable, and destruction.
  • Sanitizes and tracks every cloned projectile visual so the cleanup system destroys cosmetic children only, never the network-managed projectile object.

1.0.5

  • Restored multiplayer Ward-bubble visibility: the Ward user publishes only blocking state and Ward element through the existing player ZDO, and each observing client creates its own sanitized cosmetic bubble.
  • Remote bubbles now clean up when blocking stops, the Ward changes, the player dies, or the remote player leaves range. The Staff Shield-derived VFX remains inactive until all network and physics components have been stripped.
  • Replaced the Frost movement patch's warning-producing method lookup with cached reflection that quietly skips movement getters absent from the current Valheim build.
  • Expanded the README multiplayer notes and added a direct GitHub bug-report link with a report checklist.

1.0.4

  • Creates the Staff Shield-derived Ward barrier while its source and clone are inactive, then strips ZNetView and ZSyncTransform before the cosmetic clone is ever activated. This prevents the visual from registering with ZNetScene during construction.
  • Removed Arcane Ward's temporary Player.OnDeath cleanup/diagnostic patch so Valheim exclusively owns the death and respawn transition.
  • Retained focused visual lifecycle logging for confirmation testing.

1.0.3

  • Added focused visual-lifecycle diagnostics for the respawn exception investigation: local-player transitions, Ward barrier creation and component stripping, activation, cleanup reasons, and Player.OnDeath state are now logged.
  • Ward barrier cleanup now deactivates and detaches the observer-local visual before scheduling its destruction, while preserving the 1.0.2 gameplay and visual behavior.

1.0.2

  • Fixed a multiplayer visual-lifecycle issue that could leave the Ward shield bubble stuck on another player after Ward use.
  • Added Ward-empowered Arcane Blade tree/log chopping: 45 chop damage for 6 Eitr per successful melee hit, with normal tool-tier restrictions bypassed.
  • Arcane Blade now explicitly uses Valheim's normal durability system.
  • While held with an Arcane Ward, the Blade passively repairs 1 durability for 2 Eitr once per second by default; repair pauses while blocking.
  • Updated README links for the renamed ArcaneWards GitHub repository and added bug-report instructions.

1.0.1

  • Arcane Blade physical slash damage now grows from Bronze Sword-level (35 listed slash at Swords 0) to Nord Sword-level at Swords 100.
  • Normal Arcane Blade melee attacks continue to use and train Swords.
  • Successful Arcane Blade throws now attribute weapon skill progress to Spears.

1.0.0

  • First public Thunderstore release.
  • Added Arcane Fire, Frost, and Lightning Wards.
  • Added Eitr-powered blocking and Ward-specific Eitr reserve/regeneration.
  • Added Fire parry retaliation and area ignition.
  • Added Frost block slow and taunt/control behavior.
  • Added Lightning parry area damage and weakening effect.
  • Added Arcane Blade with standard Nord Gold Sword melee attacks and returning magical spear throw.
  • Added Fire, Frost, and Lightning projectile imbues for Arcane Blade.
  • Added network synchronization for Arcane Blade projectile VFX.
  • Added Frost taunt ownership handling for multiplayer.
  • Set Arcane Blade throw cooldown to 5 seconds by default.
  • Fixed player respawn lifecycle interaction with Ward Eitr capacity.
  • Removed development diagnostics and obsolete spear-orientation code.