Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
UniversalWand
One wand for Valheim's magic staffs, with progression plus optional Staffs of Fracturing and MagicTweaks support.
| Date uploaded | 2 weeks ago |
| Version | 0.2.0 |
| Download link | L4zerShark_Team-UniversalWand-0.2.0.zip |
| Downloads | 16 |
| Dependency string | L4zerShark_Team-UniversalWand-0.2.0 |
This mod requires the following mods to function
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.2350ValheimModding-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.0README
Universal Wand
One wand. Every staff.
- Switch between twelve vanilla magic weapons, including the four Deep North staffs, with configurable Numpad hotkeys.
- Keep one Universal Wand equipped while changing spells instantly.
- Unlock each spell by acquiring, crafting, upgrading, or successfully casting its original staff.
- Preserve the highest source-staff level reached for every spell.
- Optionally cycle through all three Staffs of Fracturing variants.
- Optionally inherit MagicTweaks right-click Protection/Trollstav casting.
- Original staffs remain unchanged and fully usable.
Important release status
Version 0.2.0 targets Valheim 1.0.12 and requires Jotunn 2.30.0 or later. It preserves the 0.1.6 selection fixes, adds the four Deep North staffs, and uses public game APIs for equipment access. It also preserves spell level and casting data for delayed projectiles/summons, and protects the physical wand level during saves and inventory cloning.
This remains a release candidate, compiled against the supplied, unmodified Valheim 1.0.12 game/Unity assemblies, BepInEx core and Jotunn 2.30.0. Automated checks cover service behavior and binary API compatibility; they do not launch Valheim. In-game spell, crafting, multiplayer and optional-mod retests remain required.
Existing selections, unlocks, recorded staff levels and configured keys are preserved. The new shortcut is additive. Do not mix the 0.1.x and 0.2.x releases across a server and its clients.
Controls
| Key | Spell |
|---|---|
| Numpad 0 | Staff of Protection |
| Numpad 1 | Staff of Frost |
| Numpad 2 | Staff of Embers |
| Numpad 3 | Fracturing family; press repeatedly to cycle |
| Numpad 4 | Dundr |
| Numpad 5 | Staff of the Wild |
| Numpad 6 | Unassigned/reserved |
| Numpad 7 | Unassigned/reserved |
| Numpad 8 | Dead Raiser |
| Numpad 9 | Trollstav |
| Numpad Enter | Cycle unlocked Deep North staffs |
Numpad Enter cycles Echo Spike, Spirit Caller, Northern Vengeance, and Lightning Strike in that order. Locked or unavailable entries are skipped. If none are unlocked, it only displays Not yet unlocked.. Each source staff records its own highest level using the same progression rules as the original eight. The configurable setting is Extra Spells Key; reserved slots 6 and 7 remain available for future use.
Every shortcut is a configurable BepInEx KeyboardShortcut, but gameplay polling uses UnityInput.Current and checks only its main key and intentionally configured modifiers. Both supported Unity input backends are handled. Holding movement, sprint, dodge, or another unrelated gameplay key does not block a spell switch. Set a shortcut to None to unbind it. If shortcuts conflict, the lowest mapped number wins; direct slots take precedence over the extra-spell shortcut, and a warning is logged.
Config entries use staff names such as Staff of Embers Key instead of Slot 2. Existing Slot 0–Slot 9 values migrate automatically and the old entries are removed.
Input is accepted only while the local player has the wand equipped and Valheim allows gameplay input. Typing, menus, inventory/crafting, console, and compatible configuration UI block selection.
Temporary testing option
Set [Testing] Unlock All Spells = true to make every currently resolved wand mode available at level 1. A legitimately recorded higher source level remains higher. This override is live, does not write fake character progression, and can be disabled without changing real unlocks.
Use it to isolate failures:
- If every Numpad key selects and casts a different spell while enabled, input/casting works and remaining trouble is in progression detection.
- If a named selection message appears but the spell cannot be applied, the HUD says
Spell source unavailable.and the log identifies that exact source. - If no message appears, check
BepInEx/LogOutput.logforUniversal Wand spell selection failed. A runtime input failure is distinct from a key not being detected or Valheim blocking input while a menu is open.
Optional Staffs of Fracturing support
When L4zerShark_Team-StaffsOfFracturing-1.0.0 is installed, repeated presses of the Fracturing shortcut cycle in this stable order:
- Staff of Fracturing
- Iolite Staff of Fracturing
- Jade Staff of Fracturing
- Bloodstone Staff of Fracturing
Unavailable or locked variants are skipped. Each variant unlocks separately when that character acquires, crafts, upgrades, or successfully casts its corresponding original staff. A locked selection still displays only Not yet unlocked.
Staffs of Fracturing is an optional integration, not a hard dependency. If it is absent, Numpad 3 selects normal vanilla Fracturing and every other wand mode continues working. If it is installed, install the same compatible Staffs of Fracturing version on the server and every client as required by that mod.
Optional MagicTweaks support
When Gaakrin-MagicTweaks-1.0.0 is installed, right-clicking the Universal Wand follows MagicTweaks' alternate-cast layout:
- Dead Raiser selected: cast Trollstav.
- Any other selected mode: cast Staff of Protection.
The alternate source must already be unlocked by that character. Its highest recorded source-staff level is used for the complete alternate cast. A locked alternate displays only Not yet unlocked. and does not cast. MagicTweaks remains optional and is not listed as a required Thunderstore dependency; if installed, use it on the same clients/server where its normal behavior is expected.
Unlock progression
A mode permanently unlocks for that character once the corresponding source magic weapon is observed in that character's inventory. This covers:
- already-owned or newly picked-up staffs,
- completed crafts and upgrades, and
- staffs equipped and used normally.
Inventory ownership is checked every 0.75 seconds without patching Valheim's crafting methods. Prefab identity is used first, followed by stable live source name/attack identity for cloned or rewritten item instances. The existing fail-open Humanoid.StartAttack boundary also records an equipped original staff immediately before returning it untouched to Valheim. Progression lives in versioned character custom data, not on the wand, so trading a wand never transfers it.
The recorded value for each spell is the highest source-staff quality that character has ever possessed, crafted, upgraded, or successfully used. Acquiring level 3 after level 1 upgrades the wand's matching spell to level 3; later seeing a lower-level copy never downgrades it. Older Boolean unlock records migrate safely as level 1. Pressing a locked key leaves the current mode unchanged and displays only Not yet unlocked. to avoid automatic spoilers.
The attack boundary records Valheim's current weapon immediately; the periodic inventory scan also covers owned items that are not currently selected. These use the public Valheim 1.0 APIs without reaching into private equipment fields.
How casting works
The mod does not swap inventory items and does not reimplement vanilla or Staffs of Fracturing spell logic. Each mode creates a wand-owned shallow casting view from the live registered source weapon. Only when the Universal Wand starts an attack, it temporarily reports that spell's recorded source-staff quality for the complete cast—including delayed projectile bursts—and restores its own quality when the attack finishes or fails. Swords, original staffs, crafting, and every non-wand item bypass this state completely. Valheim's native attack pipeline supplies:
- Eitr or Blood Magic health costs
- attacks, reload/channel timing, skill selection and gain
- quality-scaled damage and item level, projectiles, status effects, targeting, ownership and friendliness
- shields, summons, summon caps, location restrictions and cooldowns
No source SharedData, attack, prefab, model, or recipe is modified. A switch requested during an active attack is queued until the attack ends. During a MagicTweaks alternate cast, a fresh temporary wand-owned view keeps the other mod's live secondary attack intact until Valheim finishes that attack.
Projectiles, area effects and delayed summon abilities receive a snapshot of the wand's casting data and spell level. Finishing the animation or selecting another mode cannot change that snapshot. Saving or dropping a wand during a cast retains the physical wand's own level. Original staffs and ordinary item saves/clones pass through unchanged.
Item and recipe
The wand has qualities 1–4, 200 base durability, and +50 durability per quality. Its held model is a very small, straight, three-sided wooden stick: half the previous dimensions, with the wooden base at the hand attachment point and no permanent orb or strange tip geometry. A brief simple cyan switch flash may appear at the otherwise plain end. It intentionally retains the two-handed staff animation/restriction family and no-shield balance.
Craft at a Galdr table:
| Material | Quality 1 | Per upgrade level |
|---|---|---|
| Yggdrasil wood | 20 | 5 |
| Refined eitr | 30 | 10 |
| Black core | 5 | 2 |
| Red gemstone | 2 | 1 |
The station requirement starts at level 1 and rises with item quality, making quality 4 require a level-4 Galdr table.
Multiplayer and installation
Install the release ZIP with a Thunderstore-compatible mod manager, or replace UniversalWand.dll in BepInEx/plugins/UniversalWand/. BepInExPack Valheim 5.4.2350 and Jotunn 2.30.0 or later are required. Keep only one installed Universal Wand DLL.
The mod declares Jotunn EveryoneMustHaveMod compatibility with Minor version strictness. Install the same compatible version on the dedicated/listen server and every player client. Mixed modded/unmodded play is rejected instead of allowing unknown custom items or half-working casts. Unmodded console/crossplay clients are therefore unsupported on a server running this mod.
Selection/HUD/VFX are local. Actual casts use vanilla projectile, damage, status and summon networking paths. This is consistent with Valheim's normal trusted mod environment; it is not advertised as an anti-cheat system.
Compatibility notes
Source weapons are resolved after vanilla and normal mod item registration. Rebalances already present at that point are inherited. A mod that mutates source attacks later at runtime may need an explicit adapter. Missing/renamed prefabs disable only the affected mode and log once.
The optional Staffs of Fracturing 1.0.0 adapter was verified against plugin GUID com.l4zershark.staffsoffracturing and the three registered item prefabs in the supplied release DLL. Compatibility uses only stable IDs and live source data; Universal Wand does not compile against, bundle, or modify the other mod's assembly.
The optional MagicTweaks 1.0.0 adapter was verified against plugin GUID gaakrin.magictweaks and its published implementation. Universal Wand reads the secondary attacks that MagicTweaks has already attached to the live vanilla source data; it does not reference, bundle, modify, or reproduce MagicTweaks code.
Those optional integrations remain available, but their own Valheim 1.0 runtime compatibility was not verified here. Use versions of those mods that work on your current game.
The Deep North staff identifiers were checked against Jotunn's generated prefab list. Source attacks and effects are obtained from the installed game at runtime.
See TEST_REPORT.md for completed and outstanding verification.
CHANGELOG
Changelog
0.7.2 - 2026-10-01
- Cancel a queued native spell selection if the player changes to another wand. Previously, a selection requested during an attack could overwrite the newly equipped wand's spell.
- Add a regression covering replacement during an attack and immediately before it ends; all 63 integration scenarios pass.
- Review Jotunn registration and multiplayer requirements against its 2.30.2 GitHub source; clarify controls, installation and testing scope.
0.7.1 - 2026-09-30
- Defer missing-source warnings until gameplay item registration has completed and its callbacks have settled. The incomplete menu database no longer reports all twelve vanilla staffs as disabled.
- Recheck sources registered through the API after gameplay starts. A genuinely absent source still produces a warning; a later available source recovers normally.
- Let optional Staffs of Fracturing sources finish registration before reporting an absent variant.
- Restore the clean SDK project and build against Valheim 1.0.16, Jotunn 2.30.2 and BepInExPack 5.4.2351. Add four registration lifecycle regressions; all existing suites pass.
0.7.0 - 2026-09-13
- Reduced the base recipe to 10 core wood, 5 fine wood, 2 silver and 1 black core. Upgrades now use core wood, fine wood and silver with native quality scaling.
- Added one historical base-recipe reimbursement per eligible character when their old wand is in their inventory. Return 20 Yggdrasil wood, 30 refined eitr, 5 black cores and 2 red gemstones; keep the wand, fill available inventory space and drop the remainder at the player's feet. Notify that player through local chat.
- Require the wand's recorded crafter/upgrader to match the local character. Exclude new-recipe wands, known cheated items and existing claims. Historical upgrade costs and other mods' price changes cannot be reconstructed from old saves.
- Reserve a durable receipt before delivery and preserve character/item markers. Empty, interrupted or corrupt receipts block repeat awards; ambiguous inventory/drop failures stop without automatically retrying. Preserve the refund receipt folder across mod/profile updates.
- Mark native newly created and upgraded wands before inventory insertion, including positioned upgrades, without patching global attack or crafting UI methods.
- Added 101 refund scenarios covering 1,120 assertions, including real-file concurrent claims, interrupted delivery, rollback, replay and crafting-scope cleanup.
- Added default
SilverCoreappearance: wood body, shiny silver base and a faintly emissive dark-purple core tip. Preserve the same mesh, size and grip. ChooseClassicWoodin the local visual config to restore the previous appearance immediately. - Update modded clients and servers together to 0.7.x. Native API checks and deterministic builds passed; live Valheim refund delivery, crafting compatibility, appearance and multiplayer validation remain required before public release.
0.6.3 - 2026-09-12
- Removed Spirit Orb from active custom spells, including casting, sound and local/remote effects. Custom Lightning Strike remains disabled.
- Numpad + now cycles Lumos → Telekinesis. Their controls, the default-Off/server-controlled custom setting and native staff alternate casting are retained.
- Updated the description and config help; kept inactive spell code and stable identifiers for future work.
0.6.2 - 2026-09-12
- Temporarily disabled custom Lightning Strike, including selection, casting and remote visual playback/relay. Retained its implementation for a future return.
- Numpad + now cycles Spirit Orb → Lumos → Telekinesis. Their existing controls and Protection alternate remain.
- Updated the description and config help. Native staff spells, including the separate Deep North Lightning Strike, are unchanged.
0.6.1 - 2026-09-12
- Restored the earlier lightning style, removing 0.6.0's added HDR material boost, glow shells and thin tributaries/forks.
- Raised the blue strike origin to 300 m above its target and moved the purple gathering to 280–320 m overhead. Preserved the orbital circle, fast purple → blue → red timing and single impact at 1.15 seconds.
- Kept materials local to each strike, the eight-visual limit and cleanup. No global lightning, camera, fog or bloom setting is changed. The reported interaction with other lightning could not be reproduced here.
- Retained 0.6.0 telekinesis following, held raising, pulling and momentum release.
- Shortened the description with a quick overview, clear controls and telekinesis instructions. Kept Gaakrin's MagicTweaks credit; moved the full reference to the source ZIP.
0.6.0 - 2026-09-12
- Added emissive lightning cores, wider soft glow and attached thin tributaries/forks. Kept the purple → blue → red sequence and single damage impact at 1.15 seconds.
- Capped lightning presentation at eight simultaneous instances, with bounded geometry and material/texture cleanup; damage remains independent of visual eviction.
- Telekinesis now follows player movement and camera aim at a retained distance. Held secondary raises it; held Block brings it closer.
- Acquisition remains held when its button is released. A later short secondary tap releases existing swing momentum; holding instead raises and keeps the target. Primary keeps the 32 m/s powered expulsion.
- Added collision-aware follow targets, responsive velocity tracking, stale/blocked hold cleanup, and velocity-preserving fling impact monitoring. Menu/policy/death cleanup cannot trigger a fling.
- Preserved Lumos, Spirit Orb, native Protection and all staff progression/network behavior. Custom spells remain Off by default and server-controlled.
- Isolated custom test build directories so linked test programs cannot share stale apphost/incremental outputs. Added follow/gesture/control regressions; actual gameplay and visuals still require in-game checks.
0.5.0 - 2026-09-12
- Condensed Plus cycling to Spirit Orb → Lumos → Lightning Strike → Telekinesis.
- Telekinesis now uses secondary attack to lift/release, held Block to pull closer and primary attack to throw. Increased throw speed 24 → 32 m/s while retaining damage caps, ownership, costs and cleanup.
- Disabled the blue custom forward shield and its damage hook. Spirit Orb/Lightning secondary now uses the full native Protection spell with its own unlock, recorded level, costs and effects. Custom selection remains intact; saved Dead Raiser cannot redirect it to Trollstav.
- Retained the lightning targeting circle; added high purple sky buildup, a bright blue downward strike impacting at 1.15 seconds, then red lightning rising from the ground. Damage occurs once at the blue impact.
- Renamed Magical Light to Lumos; its wisp appearance, passive behavior and 30-second detached lights are preserved.
- Added a quiet short casting sound to Spirit Orb, with native audio lookup and a soft synthesized fallback. Remote launches sound once; failed/duplicate casts do not.
- Preserved Off-default/server-controlled custom policy, native spell progression, client-only vanilla support, artwork and held model. Update installed clients/server together to 0.5.x.
- Added focused controls, native Protection and lightning timeline regressions. In-game appearance, audio, physics and networking still require testing.
0.4.0 - 2026-09-12
- Added wand-only custom casting, default Off under
[Custom Spells] Custom Added Spells = On/Off. Local worlds use the local choice; a modded server controls clients. An unmodded/unconfirmed server always means Off. - Added configurable Numpad + cycling: Spirit Orb, Magical Light, Lightning Strike, Levitate, In / Out, Expulsion. Existing numbered keys and Enter retain native staff selection. No Fallen Valkyrie spell is included.
- Spirit Orb fires rapid Spirit/Lightning projectiles. Lightning calls an aimed area strike with blue/violet effects, optional available native red-lightning color, thunder and one hit per target.
- Wisp-like light follows the tip while equipped. Left-click throws a light; right-click places it at the tip's current position. Detached lights last 30 seconds and survive ordinary spell switches/unequip.
- Spirit Orb and Lightning right-click create a blue forward barrier with directional caster-only damage absorption, finite capacity and duration.
- Levitate holds eligible mobs/objects; hold left/right in In / Out to pull/push. Expulsion throws them and applies native impact damage to both health-bearing objects, including chop damage to struck trees. Delayed impacts retain launch skill/world data.
- Added confirmed-peer visual relay and server permission renewal. Policy/world/death/ownership cleanup removes ongoing custom gameplay. New effects require explicit server support; no custom network-prefab registration is needed.
- Kept custom input blocked after permission loss until explicit native selection, preventing accidental stale staff casts. New queued custom/native choices cancel older choices from the other selector.
- Preserved native complete-spell alternates, highest recorded staff levels, carrier networking, inventory transparency and small held model. MagicTweaks notice and Gaakrin inspiration credit remain.
- Added focused custom controller, policy, shield, light motion and telekinesis snapshot checks. Real Unity rendering, damage/physics and multiplayer testing remain required.
0.3.2 - 2026-09-12
- Made alternate casting a built-in wand feature, enabled by default under
[Casting] Enable Alternate Casting. Disabling it restores the selected source's native secondary behavior. - Right-click casts unlocked Trollstav with Dead Raiser selected, otherwise unlocked Protection. Left-click and the saved primary selection are preserved.
- Retained full native alternate spell data and its separately recorded level, costs, skills, restrictions and delayed-effect snapshots. No manual shield or extra summon is applied.
- Prevented repeated/opposite clicks during an active cast from replacing its target data or level before the trigger frame.
- Removed the MagicTweaks casting integration and soft dependency. Detection now logs a compatibility notice after plugin initialization; remove incompatible MagicTweaks 1.0.0 and restart. This release does not disable that separate DLL's global attack patches.
- Built-in alternate casting inspired by MagicTweaks by Gaakrin. No MagicTweaks code or assets are bundled.
- Preserved optional server installation, vanilla-spell networking, visuals and saved progression. Added regressions with MagicTweaks absent; actual shield absorption, summons and multiplayer still require in-game verification.
0.3.1 - 2026-09-11
- Fixed the MagicTweaks right-click adapter carrying Embers item data with a copied Protection animation, leaving out the target spell's status-effect and skill data.
- Run the complete native Protection source through the secondary slot at the character's recorded Protection level. Dead Raiser uses the complete Trollstav source at its recorded level.
- Keep the wand's own identity and selected primary spell during alternate casts; no manual shield lookup or MagicTweaks secondary initialization is required.
- Added three regressions covering shield data through the trigger frame, missing MagicTweaks initialization, and correct alternate data for every primary mode.
- Retained the 0.3.0 network protocol, controls, unlocks, icon and model. In-game shield and multiplayer verification remain outstanding.
0.3.0 - 2026-09-11
- Added client-only operation for all twelve vanilla spells; Universal Wand is now optional on the server and other clients.
- Publish the selected vanilla staff's equipment identity while restoring the custom wand model locally for viewers with Universal Wand.
- Store and drop wands through a vanilla Staff of Embers carrier with a versioned item marker, retaining selection and physical quality through standard item serialization.
- Migrate older custom-prefab inventory records before Valheim replaces their custom data; normalize legacy dropped items when loaded with the mod.
- Prevent the carrier from granting an unearned Embers unlock and clear visual markers when another weapon is equipped.
- Preserve hidden-item visuals, highest source levels, delayed casting snapshots, bindings, transparent icon and existing hand-aligned geometry.
- Require confirmed server support for the optional custom Staffs of Fracturing projectiles; absent-server variants are skipped without deleting progression.
- Added client compatibility regressions and checked every new Harmony target and argument against the supplied Valheim 1.0.12 assembly. Live multiplayer testing remains required.
0.2.0 - 2026-09-11
- Rebuilt against the supplied Valheim 1.0.12 game and Unity assemblies; requires BepInExPack Valheim 5.4.2350 and Jotunn 2.30.0 or later.
- Replaced private equipment-member access with public Valheim 1.0 APIs; no publicized game reference is required.
- Added Echo Spike, Spirit Caller, Northern Vengeance and Lightning Strike with independent unlocks and highest-level progression.
- Added configurable Numpad Enter cycling for unlocked Deep North staffs, preserving all existing keys and saved progress.
- Captured wand-only casting snapshots for delayed projectiles, area effects and summons so later switches cannot change their level or source data.
- Protected physical wand quality during item saving and inventory cloning, including saves/drops during a cast.
- Preserved native combat/crafting paths, optional integrations, transparent inventory icon and held model.
0.1.6 - 2026-09-11
- Replaced direct publicized-only gameplay-input access with a cached runtime method binding, preserving Valheim's own menu and typing guards.
- Restored active-backend keyboard support through BepInEx
UnityInput.Current, while retaining tolerance for unrelated held gameplay keys. - Enabled compiler support for access to game members through publicized references.
- Aligned the plugin's .NET Standard 2.1 target with its Unity 6000 reference assemblies.
- Isolated update stages and added deduplicated error reporting so a maintenance failure cannot silently disable selection.
- Made selection and queued switching use the same current-weapon lookup as casting.
- Process explicit selection requests before refreshing the prior mode, and only commit fallback state after its source view is prepared successfully.
- Added 17 executable integration scenarios covering all eight vanilla selections, unlocks, highest staff levels, queued switching and unequipping, MagicTweaks alternates, input backends and exception recovery.
- Corrected the build script to execute its regression runners.
0.1.5 - 2026-09-01
- Fixed a gameplay input bug where BepInEx's exact
KeyboardShortcut.IsDown()modifier test could reject Numpad selection whenever movement, sprint, or another unrelated keyboard key was held. - Replaced exact-shortcut polling with main-key polling that requires configured modifiers but ignores unrelated gameplay keys.
- Added
[Testing] Unlock All Spells, a live non-persistent override that exposes every resolved spell at level 1 while preserving legitimately recorded higher levels. - Added explicit selection diagnostics: detected locked requests, successful spell/level selections, and resolved-source application failures now produce distinct feedback/log entries.
- Renamed keybind config entries from
Slot 0–Slot 9to the corresponding staff names. - Added automatic one-time migration of existing slot-key values and removal of the obsolete slot entries.
- Strengthened immediate progression recognition by checking both the current weapon and right-hand item when they differ.
- Preserved the confirmed 0.1.4 MagicTweaks shield path, native combat isolation, crafting isolation, icon, and held model.
- Expanded pure core coverage from 20 to 23 checks.
0.1.4 - 2026-09-01
- Hardened source-staff recognition after runtime testing showed that Frost worked but other acquired/used staffs could remain locked.
- Added stable source-name and attack/projectile identity fallbacks for cloned or rewritten inventory item instances.
- Added an immediate, read-only progression check when a non-wand source staff begins an attack; normal weapons still return directly to Valheim and cannot be cancelled by this check.
- Contained progression-scan exceptions so a bad inventory item cannot stop Numpad selection or wand updates; failed scans retry automatically.
- Explicitly excludes the Universal Wand itself from progression recognition so its temporary casting view or physical quality can never grant/upgrade a source spell.
- Added optional soft-dependency compatibility with MagicTweaks 1.0.0.
- With MagicTweaks installed, wand right-click casts unlocked Protection normally or unlocked Trollstav while Dead Raiser is selected.
- Alternate casts use the target spell's highest recorded source-staff level and a fresh live MagicTweaks secondary-attack view.
- Prevented normal selection refresh from replacing a MagicTweaks compatibility view during an active attack.
- Expanded pure core coverage from 17 to 20 checks.
0.1.3 - 2026-08-31
- Removed the
InventoryGui.DoCraftingHarmony patch that could stall AzuCraftyBoxes and normal crafting. Inventory scanning now observes completed crafts/upgrades without touching the crafting pipeline. - Removed every
Attack.OnAttackTriggerandAttack.FireProjectileBurstpatch after runtime testing showed that they could suppress damage and spell projectiles for unrelated weapons. - Kept only one fail-open
Humanoid.StartAttackboundary. It exits immediately for non-wands, so swords and original staffs stay entirely on Valheim's native path. - Changed source-level handling to a wand-only cast lease: the recorded staff quality remains active for the wand's complete attack and is restored as soon as that attack finishes or fails.
- Added exception containment so a Universal Wand preparation failure logs an error but cannot cancel a normal weapon attack.
- Added live-
SharedDatafallback recognition for source staffs whose inventory prefab name is unavailable or altered by another mod. - Preserved the 0.1.2 transparent inventory icon and corrected half-size hand-aligned model unchanged.
0.1.2 - 2026-08-31
- Removed personal-name branding from the plugin GUID, assembly metadata, license, save keys, source, and packaged files.
- Separated the artwork outputs: Thunderstore keeps the neutral gray presentation, while the embedded in-game icon uses a genuinely transparent background.
- Reworked progression so carrying a source staff, crafting/upgrading it, or successfully casting it unlocks the matching spell reliably.
- Added versioned per-character source-quality progression. The highest source-staff level ever acquired or used is retained for each spell and never downgraded.
- Applied that stored source quality during the complete native cast path, including delayed projectile bursts, while preserving the Universal Wand's own quality and durability outside each cast.
- Migrated older Boolean unlocks as level 1 without retaining the former identifying save-key prefix.
- Reduced the held model to half its previous dimensions, made it completely straight, removed the permanent tip object, and placed its wooden base at the hand attachment point.
- Expanded pure core coverage from 15 to 17 checks.
0.1.1 - 2026-08-31
- Added optional soft-dependency compatibility with Staffs of Fracturing 1.0.0.
- Added Iolite, Jade, and Bloodstone to the Fracturing family without taking additional direct-selection keys.
- Repeated Fracturing-key presses now cycle through installed and individually unlocked family entries in a stable order.
- Added per-character craft-or-successful-cast unlock handling for each Fracturing variant.
- Kept clean fallback behavior when the optional mod or a previously selected variant is absent.
- Replaced the runtime model with an actual three-sided wooden stick with flat triangular caps.
- Enlarged the cyan tip orb and centered its core directly on the wand endpoint in both the runtime model and icon.
- Expanded pure core coverage from 10 to 15 checks and added supplied-DLL identifier verification.
0.1.0 - 2026-08-29
- Added the quality 1–4 Universal Wand with a lightweight faceted, subtly irregular continuous-taper wood model and matching low-poly original icon.
- Added eight data-driven adapters for the current vanilla magic roster.
- Added exact default Numpad 0–9 mapping with slots 6 and 7 reserved.
- Added per-character craft-or-successful-cast unlock progression and spoiler-safe locked feedback.
- Added per-item selected-mode persistence and safe queued switching during attacks.
- Added configurable live BepInEx shortcuts, deterministic duplicate handling, HUD notices, and pooled switch flash.
- Added
EveryoneMustHaveMod/Minor network enforcement and dedicated-server visual guards. - Added tests, deterministic-build checks, package validation, source archive, architecture notes, and the Valheim 1.0 maintenance plan.