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.
UndyingAmulet
An inventory-based undying amulet with per-character, per-world cooldown persistence.
CHANGELOG
Changelog
1.1.1
- Removed wind-driven particle force; mist keeps its rising motion and follows its parent without drifting with the wind.
1.1.0
- Added a ready-state buff while the amulet is off cooldown: faster sprinting, reduced stamina costs, and lifesteal.
- Added a wind-influenced rising mist around the player and dropped amulet, with the player aura distributed in 3D around the body.
- Confirmed compatibility with Valheim 1.0.16.
1.0.13
- Distributed the player aura emitters around the front, back, and sides of the body at multiple heights for a three-dimensional effect.
1.0.12
- Slowed the player aura's upward drift and particle motion while keeping the dropped-item mist unchanged.
1.0.11
- Shortened the player aura particle lifetime and reduced its wind influence to keep the effect close while moving.
- Increased aura emission rate to preserve a full appearance with the shorter particle lifetime.
1.0.10
- Confirmed compatibility with Valheim 1.0.16 and corrected the startup log so it no longer reports 1.0.15.
1.0.9
- Apply Valheim wind as a continuous world-space force to mist particles so existing wisps visibly drift with the wind.
- Refresh the wind force more frequently and log the first wind vector for troubleshooting.
1.0.8
- Added wind-driven horizontal drift to the amulet mist.
- Added a ready-state buff: 50% faster sprinting, 50% lower stamina consumption, and 20% lifesteal from damage dealt.
1.0.7
- Increased mist visibility and added multiple emitters around the player's legs, torso, and shoulders for a fuller aura.
1.0.6
- Keep the mist emitter upright regardless of the player's facing direction.
- Simulate wisps in world space so they drift upward and trail naturally as the player moves.
1.0.5
- Replaced square particle sprites with a soft, translucent mist texture.
- Extended the ready-state mist upward around the player and added upward drift with expanding wisps.
- Extended the rising mist above dropped amulets.
1.0.4
- Added a subtle pale rising-mist effect to dropped amulets and to the local player while an amulet is available off cooldown.
- Added a fallback drop prefab when the custom item has no drop prefab, and log messages to confirm both mist effects initialize.
1.0.3
- Fixed the Undying Cooldown HUD position so it sits just to the left of the minimap instead of overlapping it.
- Improved the dropped amulet model material fallback by preferring the cloned Resin placeholder material when other vanilla materials are not available during item registration.
1.0.2
- Fixed the custom dropped-item model falling back to the cloned Resin placeholder when a preferred vanilla material is unavailable. The model now checks all renderer material slots across several stable vanilla prefabs, then uses a Unity shader fallback if necessary.
- Fixed the CS0136 compile error in
Plugin.csthat prevented the project from building. - Damage is now intercepted in
Character.ApplyDamage(the method that removes health, running only on the owner of the player ZDO) instead ofCharacter.Damage, which only forwards an RPC. The amulet now reacts on the machine that owns the victim, so heals and immunity reach the actual player in co-op and PvP. - Lethality is evaluated after armor and difficulty modifiers are applied, so the amulet no longer triggers on hits the player would have survived.
- Immunity blocks every incoming hit for the configured duration, including damage over time and drowning.
- Death cleanup now patches
Player.OnDeath(the override that is actually called for players) instead ofCharacter.OnDeath. - Resurrection state is stored per player in the player ZDO instead of shared static fields, so one player can no longer overwrite another player state, the local HUD or another world cooldown.
- The overlay and cooldown HUD are driven by the local player only, stay visible while the inventory is open and scale with screen height.
- The config file is no longer written from the damage path; pending changes are flushed at most every 5 seconds and on plugin unload.
- Cooldown timestamps are validated against the configured cooldown length and are skipped when the world id is not available, which prevents cooldowns leaking between worlds.
- The item description is generated from the configured cooldown and immunity values.
- The
AutoEquipWhenOwnedconfig entry was replaced byEnabled(master switch). - Logging goes through the BepInEx logger and the generated icon texture is released on unload.
1.0.1
- Fixed persisted cooldown timestamps being displayed as excessively long cooldowns.
- Fixed dropped amulets being removed from inventory a second time after dropping.
1.0.0
- Added the Undying Amulet item.
- Prevents one lethal hit and restores 50% maximum health.
- Grants 30 seconds of damage immunity after activation.
- Stores cooldown per character and per world.
- Keeps cooldown through death, relogging, and world switching.
- Keeps dropped amulets network-spawnable and pickable.
- Added a cooldown HUD display and BepInEx/Jotunn compatibility metadata.