
EpicLoot ProgressionFix
EpicLoot 0.14.13 crafting progression and rune range fixes, StarLevelSystem fixes, blocking after armor, combat effect fixes, long-range Andvaranaut, server-wide chat and optional Discord announcements. Requires server and clients.EpicLoot Progression Fix
Unofficial Harmony add-on for original EpicLoot 0.14.13, built against the installed Valheim dedicated server 1.0.15 and checked with client 1.0.17. Keeps EpicLoot's DLL, assets and configuration intact.
Installation
Install on the server and all clients through Gale or a Thunderstore manager, with matching add-on versions. Dependencies install automatically. Keep original EpicLoot 0.14.13; avoid replacement DLLs.
Features
- Bow and crossbow projectiles reject creatures with zero health or a completed death flag, preserving the killing hit and letting spare arrows continue normally. Native damage and impact timing remain immediate. For creatures another client controls, healing, adrenaline, skill credit and hit effects use that client's confirmed contact; duplicate replies cannot repeat rewards, and rejected contacts refund their per-hit coin costs.
- Ammo Conservation rolls independently for each arrow or bolt spent. Triple Shot can retain zero through three arrows, so 40% conservation saves 40% of ammunition on average. Saved ammunition keeps its original stack and item data, including in full inventories and last stacks; the conserved loaded bolt retains its crossbow reload skip.
- With an item's shard slots open using E, Ctrl + left click on a shardstone swaps the first different stone from left to right. Hover over a shardstone and press 1-9 or a keypad number to insert or swap one stone into that displayed slot. Number, Ctrl-click and drag swaps return outgoing stones into compatible inventory stacks with room. When the incoming stack is consumed and the outgoing item needs its own stack, it uses the freed inventory cell, even in a full bag. Removal and compatibility rules still apply; both items retain their data.
- With inventory open, hover over an item in the visible player grid and press its destination hotbar key (normally 1-8). The whole stack moves there; an occupied slot returns its item to the hovered cell, even in a full bag. Existing primary and secondary hotbar bindings are kept. Item data, favorites and equipped weapon state stay intact. E-opened socket mode retains its shardstone shortcuts and blocks hotbar assignment; text entry, dragging, splitting and held modifiers also block assignment. Worn equipment, quick slots and chest contents stay outside this shortcut.
- Native refinement recipes use the idol matching their equipment tier, including silver weapon idols for Draugr Fang. Ordinary crafting and station upgrades retain their resource costs.
- StarLevelSystem 1.23.1 compatibility preserves the pack's gameplay patches and optional unrestricted global sizing; explicit per-creature size limits remain available.
- StarLevelSystem handles its night-only star factor directly; Love Potion star scaling remains in the add-on.
- Adult and baby seals keep their natural skin hue and saturation while retaining star brightness, stats and visual variants.
- Northern grave chests retain buried structural support after reload. One-time recovery follows the original seeded chest choices and requires a compact, unmixed spill with its Wood refund, native torch and chest loot still present. Excavations, nearby player builds or belongings, incomplete or merged piles and drops owned by another client remain untouched. Eligible recovery preserves item data and never rerolls loot.
- Mob spawners take only direct hits from players, creatures or other sources, retaining their native resistances. Area attacks, projectile splash, lingering effects and death novae cannot damage them. Explosive projectiles can damage the spawner they directly strike, while nearby spawners and secondary area effects remain protected. Ordinary props retain their normal damage rules.
- Snow lanterns use a five-metre light radius on creation and reload. Add
piece_snowlanternto NoSmokeStayLit's Custom Items Keep Lit list for perpetual fuel, as this pack does. - Optional private currency income records on the dedicated server, with durable receipts, source breakdowns and separate transfers/refunds. Requires ServerCharacters; no public display or Discord posting.
- Trollbot's custom Discord status shows the online count and character names. Requires DiscordBot_AWL; no roster messages are posted.
- Comfort furniture reaches 20 metres, including vertically; ComfortMe's room panel and upgrade chips use the same range.
- Mistlands weapons clear mist while held, including Skoll and Hati and its styles, Skull splittur and all four Mistlands staves. The grappling hook and black metal pickaxe also clear mist. They use Better Wisps' base range and increase per level, based on their own upgrade quality, with or without an equipped Wisplight. Bile bombs, weapon upgrade limits, Wisplights and placed torches are unchanged.
- Crafting-gated progression, preserved equipment tiers, unidentified-item fixes, English shared item names and enchanting/rune UI corrections.
- Treasure maps retain their buyer's crafting eligibility at purchase, including legacy credits and foundry casts. Chest generation and recovery use that saved history after ownership changes or while the buyer is offline. Older unopened treasure replaces only equipment the buyer has not unlocked, keeping its rarity and other contents; opened chests and collected equipment remain unchanged. Legacy spawners without a purchase snapshot wait for their buyer to approach before generating.
- Enchanting-table actions keep the mouse scroll position in Sacrifice, Identify, all material conversion modes, Enchant, Disenchant and rune extraction/etching. Shorter lists clamp at their end; controller focus still brings the selected row into view.
- Augment and rune-etch replacement checks exclude the selected effect even when it has no numeric roll, so Bloodletting, Unhindered, Indestructible, Warmth, Waterproof and Triple Shot can be replaced directly by otherwise eligible conflicting effects. Recalling and Apportation accept rolled or socketed Throwable, or a spear's built-in throw, in socketing, augments and rune etching. Replacements check the effects that remain, including retained socketed runes; a socket swap cannot count the Throwable rune it removes. Unsocketing the sole Throwable source removes the weapon's throwing ability. Other conflicts, attack-health prerequisites, existing item data and keep-original choices are preserved. The pack makes declared conflicts reciprocal without changing existing gear.
- Choosing an augment replacement returns incompatible shardstones to inventory, including fixed-effect stones normally broken by manual removal. Compatible stones and socketed runes remain. Returns merge into compatible stacks; insufficient room or an unavailable stone prefab leaves the item unchanged and keeps the same paid choices open. Keeping the original effect changes no sockets. Native matching-effect settings still apply.
- Existing items repair automatically as the game loads or handles them: player inventory after character load and inventory changes, owned containers on load/access, and owned ground items on load. Incompatible shardstones return to their inventory or container; overflow drops beside its source, and loose equipment returns stones beside itself. Compatible stones, runes, rolled values and host metadata stay intact. Unavailable reconstruction or delivery keeps the original sockets for a later attempt. Repeat loads do not duplicate returns; no offline world or player-file editing is needed.
- Etched runes stack to 10 when their exact effect, power and saved metadata match. Quick Stack deposits runes only into chests already holding compatible runes, including when a matching full stack needs another slot. Ordinary binary effects use their lowest allowed rarity, including existing runes on load and socket removal; numeric effects and equipment tiers stay intact. Rune icons show a distinct affix abbreviation at top right, strength at bottom left and quantity as count/10 at bottom right, including single runes. Reused chest and inventory cells keep normal quantity visibility for empty slots and ordinary items. Downgraded runes sacrifice at their new tier.
- Extraction preserves the complete numeric affix, including identification and tempering above its normal range. Each affix remembers its highest applied extraction power through etching, sockets, saves, tempering and crafting transfers. A better table grants only the remaining multiplier; repeated 110% transfers give no additional bonus. Extraction below 100% still loses that share of the current value. Numeric +1 and fractional effects receive the multiplier; binary effects stay unchanged. Older loose and socketed runes without a record count as already extracted at 110%; unrecorded equipment gets its first recorded extraction normally.
- Mining and lumberjacking displays show the whole drop bonus actually applied, including rune icons and Hildir's before/after previews. Numeric affix text, descriptions, rune labels and tempering information use at most two decimal places without trailing zeros; stored values and gameplay retain their full precision. Hildir labels fractional stored drop values separately because they determine tempering chance. Zero-chance attempts are unavailable and cannot succeed on a zero random draw; guaranteed outcomes stay guaranteed.
- AAA Crafting's favorites star highlights when the favorites filter is enabled, including after keyboard toggles and reopening the crafting window.
- The outlined-anvil button beside the favorites star shows only available equipment recipes still locked by your crafting history. It starts off, combines with other recipe filters and removes an item after its first craft. Legacy unlock credits count; pickups and upgrades do not. It applies only to the Craft tab in crafting-gated mode.
- AAA Crafting's Max uses the current station's actual crafting ingredients, excludes upgrade-only reagents at ordinary stations and refreshes when nearby chest availability changes.
- Bounties complete on the main kill; minions are optional. Main targets double natural enchanted equipment drops and guarantee one item, so low-drop averages exceed 2x. Equipment retains its species' tier and rarity ceiling; resources and contract payouts retain their normal rules.
- Andvaranaut guides hunts and treasure; bounty placement is improved. Bounty targets retain their full boss HUD and an overhead name and health bar that clips at screen edges like an ordinary creature bar.
- Aiming at creatures shows their health bars with the hammer and other build tools equipped, retaining normal range and visibility rules.
- Alerted hostile creatures show their normal overhead health bars within the configured HUD range, even when mist prevents crosshair targeting. Solid walls, closed doors and terrain hide these bars immediately; a visible head above partial cover retains its bar. Idle and friendly creatures keep their normal display rules.
- Jump checks use the final stamina cost; free jumps need no reserve and blocked air-jump attempts remain available until a jump launches. An unused Double Jump recovers the submerged starting height and uses airborne movement while rising, so it can reach ice or shore from water. Its stamina cost and extra-jump limit remain unchanged. Keyboard jump presses survive a quick release and re-press between physics updates; holding jump still launches only once.
- Newly built carts gain 4% maximum health per crafting skill point, up to +400% at 100. The saved bonus follows the cart through ownership changes; existing carts retain their health.
- The quick cart key detaches the cart being pulled first, even while aiming elsewhere. When unattached, it attaches only to the cart under the reticle within the configured range, including with build tools equipped. Occupied, obstructed and out-of-range targets or empty aim never select a different cart. Personal key bindings retain their behavior.
- Hammer-menu icons refresh their building requirements while the menu is open, including entering or leaving workbench and chest range, without rebuilding buttons or changing selection.
- Ctrl + G with the hammer toggles a local view of loaded pieces' spawn protection: bright solid orange ground 20 cm above the terrain and transparent striped orange borders 2 m tall. Fixed world chunks cache native terrain triangles and conservative coverage. A filled triangle must fit entirely inside one protection volume; uncertain patches are subdivided to roughly two centimetres on normal terrain and stay unfilled. Small internal gaps receive closed borders, and neighbouring chunks share their contour. A 3 mm inward margin covers float rounding. Walking reuses cached coverage; protection changes rebuild affected chunks, while wholly contained additions need no rebuild. Coverage, mesh assembly and contour merging run on one low-priority background worker. Shared mesh vertices reduce rendering cost; Unity access and GPU uploads use a bounded main-thread queue and swap complete buffers together. Obsolete fill is hidden during reconstruction. A staggered collider audit catches changes without game callbacks. The display follows native player-base protection; spawners that bypass it, such as nests and boss summons, still can spawn. It suppresses the gesture wheel for that shortcut; plain G still opens the wheel. Putting the hammer away or switching tools clears the toggle; the next hammer use starts off. It respects input focus and adds no physical walls, saved preference or on-screen hint.
- Automatic grave recovery counts EpicLoot carry enchantments on the armor and accessories it will re-equip, following EquipmentAndQuickSlots' existing settings.
- Automatic free-slot searches fill inventory rows from the top, left to right, for every item type. Existing stacks, manual placements and dedicated equipment slots retain their normal behavior.
- Trader purchases use room in compatible existing stacks when the bag is full, and reject an entire offer that cannot fit. Opening a trader and selling refresh carried stack limits from ItemStacks, so sale gold fills existing coin stacks before using another slot.
- Quick Stack's weight criterion uses the whole stack, including native quality and enchantment weight changes. The pack sorts bags and chests from the top with heavier stacks first; favorite items stay fixed in chests too, including when another game owns the chest.
- Nearby Quick Stack and Restock follow AzuCraftyBoxes’ All, Only mine and Off modes. Alt + O’s status captions are “Interact only with my own nearby containers” and “No interaction with nearby containers”; deliberately opened or targeted chests still work normally.
- All objects retain native near loading through two zones. Creatures, Leviathans, player-built pieces, terrain edits and supporting ice also load through four zones, alongside native far-visible trees and rocks. Unplaced natural objects, loose items and crops retain native loading and mesh culling.
- Decorative vegetation retains native generation distance, detail fading and the player's selected density. Placeable beacon fires keep their flame meshes and illumination distance through the loaded building range; ordinary world lights, native light/shadow budgets, fuel and harvesting retain their original rules.
- Deep North ice supports distant creatures; overdue renewable plants regrow on load, hover or harvest via native timers.
- Diving Leviathans remain loaded through four zones, like other creatures, and retain their final mesh until unloading. Native mining reactions and diving remain unchanged.
- Distant buildings and beacon fires keep their detailed, edited ground visible through the same loaded range; new far building pieces wait for their terrain zone.
- Shift fills nearby wooden and iron cooking stations with the first selected meat only, or collects their finished food directly into inventory, using the shared harvest radius. Native cooking XP, bonus portions and item metadata are retained; a full inventory leaves overflow on the ground. The pack can set the radius without replacing PlantEasily's personal controls.
- Mead bases and barley wine base honor explicit ItemStacksItemWeights limits. Without an explicit limit they stay individual; tools and individual feast servings stay individual, and fermenters still consume one base per batch.
- Area-harvested beehive honey and Birds' Nest feathers go directly into inventory with the same harvest radius and personal controls. Native yields, ward access and beehive queen-bee drops are retained; nests never yield queen bees, and full inventories leave excess output on the ground. Ordinary E keeps its native behavior.
- Every Convert materials subsection supports multiple selected recipes with combined previews and one action. Ctrl-click selects each recipe's affordable maximum after reserving the other selections' materials; Ctrl-clicking that maximum again clears only that recipe.
- Salvage junk excludes favorite items and protected inventory slots from its recipes, quantities and payment, including hidden inventory rows and favorite items in nearby chests. Protection is checked again after the countdown; insufficient unprotected materials cancel the complete selection without payment. Other material conversions keep their normal behavior.
- Guaranteed enchanted boss equipment, star/Hoarding loot scaling, creature strength, Eitr-drain icons and dungeon interior reset fixes.
- Creature loot ceilings are Mythic for Moose and Legendary for Elaking/lanterns, northern skeletons, frozen greydwarves/shamans, Voltures and lava blobs. They apply after star, Hoarding and Luck bonuses to equipment, unidentified items, crafting materials and socketable stones. The pack excludes seal/pup EpicLoot drops and supplies creature-only Ashlands/Deep North stone pools with the existing colour weights; bosses, chests and direct elite stone branches retain their previous pools. Trophy rewards and pool weights live in the pack's EpicLoot patches. Material upgrades retain their configured costs, including late-game 1:1.
- Fresh creatures become visible and active after StarLevelSystem finishes their initial setup, preventing a flash of default color and size. Existing creatures keep their current loading behavior.
- Character camera zoom extends by 50%, from the native 8 metres to 12. Ships reach 24 metres for the helmsman and passengers, including jumps on deck. Leaving a ship restores the character limit, even with a menu or build selection open. Camera tilt, field of view and collision behavior are retained.
- Summoned bats hunt hostile monsters and defend against aggressive wildlife, but leave peaceful wildlife and unprovoked dvergr alone. Idle bats assist the owner's hit on a neutral creature and retain that pursuit within 60 metres. Bats are ignored as creature targets, reject player and tame-pet damage, and pass through character bodies.
- Recall preserves the original thrown weapon through death, projectile expiry, character saves and logout. Pending weapons stay in saved character recovery outside the grave and return to the living inventory when space is available, with their original item data. Returns still respect equipped and stowed weapons and native durability restrictions.
- Sailing uses the normal death penalty and fortified floor. Combat/skill fixes, inventory/favorite safeguards, crafting/conversion improvements and optional Discord integration.
Dungeon reset timing
With Interior-only resets = true, each new dungeon starts its real UTC reset timer on the first actual player entry. Later visits do not restart it, and generation or passing nearby does not start it. Existing saved timers and due dates remain unchanged when upgrading. A successful reset preserves the exterior and belongings, then waits for the first entry into the fresh interior before starting another timer. The pack's StarLevelSystem/LocationResetSettings.yaml sets the Dungeons interval to 168 hours; server downtime counts, and an overdue occupied interior waits for its last player to leave.
Discord player status
The status uses 2 online: Alice, Bob, or Nobody online when empty. Character names are sorted, control characters are flattened, and complete names fit within 128 characters; overflow ends with +N more. Updates use DiscordBot's existing connection, at most once every 15 seconds, including player replacements with an unchanged count. Discord controls sidebar clipping and profile wrapping; names are not linked to Discord accounts.
Configuration and safety
Settings: BepInEx/config/valheim.epiclootprogressionfix.cfg. The server controls synchronized gameplay settings; keep pack overrides in the pack's sources.
New saved keys, RPC names and Harmony IDs are named Plugin.Id + ".<feature>", such as valheim.epiclootprogressionfix.bounty-spots. Older names such as ProgressionFixAddCookingItem and epicloot_progression_pheromones stay as they are, because worlds, characters and other players' games still use them; never rename a saved key or an RPC.
Fix reported initialization errors before continuing. Back up saves before changing mods. Before removal, load and save every character and container that may hold legacy Starter Gear; unloaded inventories and old backups can still need migration support. Remove this add-on from server and clients together.
Credits
EpicLoot is by RandyKnapp. Built with AI assistance; source is in src/, releases in CHANGELOG.md.