You are viewing a potentially older version of this package. View all versions.
HelixDev-Hoard-1.1.0 icon

Hoard

A hoard for your enchanted gear, per ward or shared, with a sortable, filterable list, plus a Rune Cache shelf for enchanting materials.

Date uploaded a week ago
Version 1.1.0
Download link HelixDev-Hoard-1.1.0.zip
Downloads 25
Dependency string HelixDev-Hoard-1.1.0

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.2 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.2
shudnal-ConditionalConfigSync-1.0.9 icon
shudnal-ConditionalConfigSync

Shared config synchronization and server policy library for Valheim mods. Installed as a dependency and compatible with Jotunn and ServerSync.

Preferred version: 1.0.9
RandyKnapp-EpicLoot-0.14.13 icon
RandyKnapp-EpicLoot

Adds loot drops, magic items, and enchanting to Valheim.

Preferred version: 0.14.13

README

Hoard

A hoard for your enchanted gear, shown as a list you can sort and filter instead of a chest grid. A Hoard inside your ward opens your ward's own store, shared with the players on that ward. A Hoard outside any ward opens a store the whole server shares (or, if the server chooses, each player's own). Stores grow as you beat bosses. A second piece, the Rune Cache, is a labelled shelf for runestones, shard stones and enchanting materials.

Requires EpicLoot. The Hoard only takes enchanted equipment.

The Hoard

  • Build it with the hammer (Misc) near a workbench: 20 Wood, 10 Stone, 5 Resin.
  • Items are kept on the server, not in the piece, so removing a Hoard with the hammer loses nothing. Nothing damages it: raids, fire, weather and losing its support all leave it alone.
  • It takes identified EpicLoot magic equipment, from any mod. Plain gear, unidentified items and materials are refused with a message.
  • You have to stand within 5 m to use it.
  • An item from a mod you removed stays in the Hoard as "Unknown item" until the mod is back.

Which store a Hoard opens

  • Inside a player's ward: that ward's own store. Only the ward's owner and the players on its list can open it. Every Hoard inside the same ward opens the same store. A new ward starts with an empty store.
  • Outside every ward: the shared store, which every such Hoard opens. A server can set this to each player's own store instead (UnwardedHoards); then the shared store can't be opened until it's set back.
  • Several wards over one Hoard: the ward whose store was set up first wins. If none has a store yet, the nearest ward.
  • A switched-off ward: its store still opens, for the players on its list. While a ward is off, anyone can add themselves to its list at the stone, so the window warns you. A server can make it owner-only (OffWardAccess).
  • A ward that's gone or switched off: its store is kept for its owner. Place a new ward and open a Hoard inside it: the window offers Claim. Claim before depositing there, because a deposit starts a new store for that ward instead.
  • The window's title always says which store you're in: Shared, Yours, or someone's ward.

Only the base game's wards count, and mods that use them (such as ProtectiveWards). Wards from WardIsLove, ArcaneWard or LegacyWard aren't recognised: Hoards near them open the shared store. If a mod changes the ward range only inside the game (ValheimPlus, BetterWards), set WardRange to the range it uses.

Tiers

Every store starts at 40 slots and upgrades on its own. You can upgrade at any Hoard of that store, one tier per boss. The boss has to be dead in the world. The materials come from your inventory, or with AzuCraftyBoxes also from nearby chests, as crafting does. The chest's look changes as it grows, and coin piles appear around it.

Tier Boss Slots Default cost
1 Eikthyr 80 Deer hide 10, Hard antler 1, Magic dust 5, Magic essence 2
2 The Elder 120 Bronze 10, Fine wood 10, Magic dust 10, Magic reagent 5
3 Bonemass 180 Iron 10, Chain 2, Rare dust 5, Rare essence 3
4 Moder 240 Silver 10, Wolf pelt 5, Rare dust 10, Rare reagent 5
5 Yagluth 300 Black metal 10, Linen thread 10, Epic dust 5, Epic essence 3
6 The Queen 380 Eitr 10, Yggdrasil wood 10, Legendary dust 5, Legendary reagent 3
7 Fader 480 Flametal 10, Grausten 10, Mythic dust 5, Mythic essence 3

The window

  • To deposit, drag gear onto the list or Ctrl-click it in your inventory. To take, click a row or drag it out.
  • Deposit all magic gear leaves your hotbar, equipped items, AzuExtendedPlayerInventory's slots and your QuickStackStore favourites where they are.
  • Filters: name, rarity, type, biome, upgrade level, set pieces, enchantments (all or any, with minimum values), and up to three stat rows like "damage >= 120". Click a column to sort by it, and again to reverse.
  • Hovering a row compares the item with what you have equipped.
  • History tab: the store's recent deposits, takes, upgrades and claims, with who and when. Anyone who can open the store can see it.
  • Taking needs a free inventory slot. If your inventory fills up before the item arrives, it waits until you make room.
  • The game saves your character when you open the Hoard, and sometimes before a deposit. That save is what lets Hoard recover from a crash without losing or duplicating anything.
  • Gamepad: the stick moves through the list, A takes, X deposits all, Y changes the sort, LB moves to the list (press it again to switch between Items and History), RB goes back to your inventory, and B closes. A on a Claim row claims it. Filters and the Upgrade button need a mouse.

The Rune Cache

A wardrobe with a shelf inside: one labelled slot for each material, rows Magic to Ancient, columns Dust, Essence, Reagent, Shard and Runestone. Empty slots show the material's faded icon. Shard stones and etched runestones go in the loose cells beside and below the shelf.

  • Build it with the hammer (Misc) within 10 m of an enchanting table: 10 Fine wood, 8 Iron.
  • It only takes runestones, shard stones and enchanting materials.
  • Each material has exactly one slot, holding one normal stack. A material always goes to its own slot, however you add it (drag, quick-stack, Store All, MultiUserChest). When its slot is full, the add is refused with a message.
  • QuickStackStore's Sort tidies it: every material back to its slot, everything else into the loose cells.
  • Recycle_N_Reclaim's Reclaim all does nothing on a Rune Cache.
  • Anyone can open it, and wards apply. It can't be damaged, and the hammer only removes it once it's empty.
  • With AzuCraftyBoxes, enchanting pays from a nearby Rune Cache. Its contents can't be sacrificed.
  • RuneCacheShelfView (a per-computer setting) turns the labels and icons off; the slots and rules stay the same.

Installing

Install Hoard on the server and on every client, all on the same version.

If you use these mods, add the Rune Cache to their exclusions:

  • AzuAutoStore, in the server's Azumatt.AzuAutoStore.yml, so auto-store doesn't fill it:
    hoard_runecache:
      exclude:
        - All
    
  • PlanBuild: add hoard_runecache to Excluded plan prefabs, or a planned Rune Cache can be finished away from an enchanting table.

Updating from 1.0

  • Take a backup of the world folder first.
  • On its first start, 1.1 converts the Hoard's files and keeps a copy of the 1.0 files next to them (see "Going back to 1.0" below).
  • Everything already in the Hoard stays in the shared store, at its tier. A Hoard that stands inside a ward now opens that ward's new, empty store, at tier 0. To move your items, take them out at a Hoard outside every ward, then deposit them at your ward's Hoard. With UnwardedHoards on its default Shared, an admin can instead turn WardStores off for a moment: every Hoard then opens the shared store. Move the 1.0 items before switching UnwardedHoards to Personal: the shared store can't be opened while it's set to Personal.
  • Rune Caches become wardrobes where they stand. The first time each one is opened, it moves its items into the new slots; nothing is removed. If a cache held two stacks of one material, the second goes to a loose cell: drag it onto the material's slot to merge them. The wardrobe is bigger than the old chest, so it can clip into walls; moving it means emptying it first.

Settings

BepInEx/config/helix.hoard.cfg. The server's values apply to everyone. Admins can change them in game with a configuration manager, and a hand edit on the server is picked up within a few seconds.

Section What you can set
2 Hoard Build cost, access range, items per deposit message
3 Tiers Starting slots, and one line per tier: boss key; slots; materials, e.g. defeated_eikthyr; 80; DeerHide:10, HardAntler:1, DustMagic:5, EssenceMagic:2
4 Rune Cache Build cost, FreeRows (rows of loose cells below the shelf, 0–8), how close the enchanting table must be. The old Rows setting is no longer used
5 Storage Backup copies to keep, journal size
6 Wards WardStores (on/off), OffWardAccess (Members or OwnerOnly), WardRange (0 = each ward's own), HistoryLength (0 hides the History tab), UnwardedHoards (Shared or Personal)
9 Client Window size, tooltip compare, log level, RuneCacheShelfView (per computer)

Turning a setting off never moves or deletes items. With WardStores off, ward stores keep their items until it's back on. With UnwardedHoards switched, the other kind of store keeps its items until it's switched back.

For admins

The stores live in the server's worlds_local folder, next to the world:

  • <World>.hoard with .old and .old2 backups
  • <World>.hoard.journal*, a record of every change
  • <World>.hoard.<date>, a copy taken at every world save (the newest 10 are kept)

Players' games keep a small recovery file in a Hoard folder in their local save folder. Don't delete it.

Admin commands, in the console or in chat with a leading /:

Command
hoard stats Items, number of stores, the shared store's tier, pending transfers, journal and backup state
hoard stores [orphans|<player>] One line per store: its ward or owner, state (live, off, or orphan when its ward is gone), items, tier, last use
hoard reattach <store ID> [transfer [<player>]] [force] Moves a store to the nearest ward you stand in that has no store yet. A ward store needs its ward gone or off, unless you add force; add transfer when that ward's owner isn't the store's owner. A personal store always needs transfer: alone it goes to the ward you stand in, and transfer <player> hands it to another character (an offline player by player ID). The shared store can't be moved
hoard journal <player, item ID or request ID> [store:<store ID>] The latest matching journal lines
hoard restore <item ID or request ID> [player ID] Gives the player a new copy of an item from the journal. Every run makes another copy, so use it only for items that were really lost
hoard export Writes every stored item to a .hoardx file next to the store
hoard verify Checks that every stored item can be loaded

To roll the world back, stop the server, then:

  1. Restore the world backup.
  2. Move every <World>.hoard* file, including the journal, into another folder. If the journal stays, the server replays it and undoes the rollback.
  3. Copy the <World>.hoard.<date> taken at the same world save back as <World>.hoard.

Characters don't roll back with the world, so items taken or deposited since can end up doubled or missing, the same as with any chest.

forcedelete on a Rune Cache deletes everything in it. Empty it first. A Hoard piece is safe to remove.

Going back to 1.0

1.0 refuses the files 1.1 has written and changes nothing, so the Hoard stays off until you reinstall 1.1 or restore the copy 1.1 kept when it converted them.

What a restore loses: the Hoard goes back to exactly what it held at the update. Items deposited since, including everything in every ward store and personal store, are gone. Items taken out since are back in the Hoard while the players still have them.

To restore:

  1. Stop the server.
  2. In the server log, find the newest [store] migrated … 1.0 copy v1-<stamp> line. That stamp's set, the one with the newest <World>.hoard.v1-<stamp>.done file, is the one to restore. An older complete set is an older state, and a set without a .done file is incomplete: never restore it.
  3. Move every other <World>.hoard* file out of the worlds folder.
  4. Check each file the .done lists: its size and its CRC-32 (the checksum zip uses), for example python3 -c "import sys,zlib;d=open(sys.argv[1],'rb').read();print(len(d),format(zlib.crc32(d),'08x'))" <file>.
  5. Rename each listed copy back to the original name it lists (drop .v1-<stamp>).
  6. Move the .done file itself aside, then start 1.0.

Limitations

  • If your game crashes, an item you took comes back only if it was still in your inventory. One you had already moved into a backpack or an AzuExtendedPlayerInventory loadout is lost, as with a chest.
  • A crash within a frame of an item leaving your inventory can duplicate it.
  • With MultiUserChest:
    • An item you took and then put in a chest another player's game is handling can be lost, if that chest refuses it in a rare race and your game crashes before the next save.
    • If someone sorts a Rune Cache, or it converts on its first open, at the same moment another player drags an item into it, that item can be lost. MultiUserChest has the same race on any chest someone sorts.
  • After a crash mid-transfer, log back in on the same computer. The recovery file doesn't travel with your character.
  • A store belongs to a character, not an account. A new character doesn't see an old character's personal store or ward stores (an admin can hand them over with hoard reattach … transfer).
  • A ward rebuilt by the same player at exactly the same spot gets its old store back; anywhere else it's a new ward, and the old store waits to be claimed.
  • While a ward is switched off, anyone can join its list at the stone, and the ward's owner can't remove them. This is how the base game's wards work.
  • With AzuCraftyBoxes, upgrade materials taken from a chest another player's game is handling can come back, as with any AzuCraftyBoxes craft.
  • Range checks trust the positions players' games report, like other chest mods.

Uninstalling

Empty every Rune Cache first. The Hoard's items stay in <World>.hoard and come back if you reinstall 1.1.

CHANGELOG

Changelog

1.1.2 — 2026-09-28

Required on the server and on every client (exact version match). The Hoard's files are unchanged from 1.1.0, so updating converts nothing.

  • The Hoard window slides in with the inventory: it was placed a frame early, before the inventory's slide had moved, so it flashed in its final spot, jumped to the top and then trailed the inventory down. It now moves with the inventory from the first frame, as a chest does.

1.1.1 — 2026-09-27

Required on the server and on every client (exact version match). The Hoard's files are unchanged from 1.1.0, so updating from 1.1.0 converts nothing.

  • No more hitch when opening a Hoard: the game no longer saves your character every time you open one. That save froze the game for about a fifth of a second and made the window pop in instead of sliding in with the inventory. Deposits are as safe as before: a deposit still saves first when an item isn't in your last save as it is now, so the first deposit of newly looted gear may hitch once instead. Items you take from a Hoard are now protected against a crash from the next autosave onward, where reopening a Hoard used to save them sooner; the leftovers in Limitations (a taken item moved into a backpack, or refused by a chest another player's game controls) can therefore last until that autosave.

1.1.0 — 2026-09-26

Required on the server and on every client (exact version match). Back up the world folder before updating: 1.1 converts the Hoard's files on its first start (it keeps a copy of the 1.0 files; 1.0 can't read the new ones — see "Going back to 1.0" in the README).

  • Ward stores. A Hoard inside a player's ward opens that ward's own store, for the ward's owner and the players on its list. Hoards outside wards keep opening the shared store, which keeps everything 1.0 held. Several wards over one Hoard: the ward whose store was set up first. A switched-off ward's store stays open to its list (anyone can join a switched-off ward at its stone, so the window warns). A store whose ward is gone or off is kept for its owner and can be claimed at a new ward.
  • Personal stores (optional). UnwardedHoards = Personal gives each player their own store at Hoards outside wards.
  • Each store upgrades on its own, on the same boss ladder. Each Hoard piece shows the tier of the store it opens.
  • History tab: a store's recent deposits, takes, upgrades and claims, with who and when, for anyone who can open it.
  • Upgrades pay from nearby chests with AzuCraftyBoxes, as crafting does. The Upgrade button counts them, and a shortfall (a chest emptied a moment earlier) is shown and logged.
  • New settings (section 6 Wards): WardStores, OffWardAccess, WardRange (for ward mods that change the range only in game), HistoryLength, UnwardedHoards. All apply live and never move or delete items.
  • New admin commands: hoard stores and hoard reattach (move a kept store to a ward, or hand a personal store to another character). hoard journal takes a store: filter; export and verify cover every store.
  • Rune Cache: a labelled material shelf in a wardrobe. One slot per material (Magic to Ancient × Dust, Essence, Reagent, Shard, Runestone), each holding one stack and showing a faded icon when empty; loose cells beside and below for shard stones and etched runestones. Every way of adding an item routes it to its slot or refuses it with a message. QuickStackStore's Sort tidies it. Recycle_N_Reclaim's Reclaim all does nothing on it. Existing Rune Caches become wardrobes and move their items into the slots the first time they're opened; nothing is removed. 4 Rune Cache.Rows is replaced by FreeRows; 9 Client.RuneCacheShelfView turns the labels off.
  • The Hoard window no longer jumps when it opens: it slides in with the inventory, as a chest does.
  • The Hoard window names its store in the title (Shared, Yours, or the ward owner's).
  • Shorter, plainer README.
  • Checked against Valheim l-1.0.16, AzuCraftyBoxes 1.8.26 and AzuExtendedPlayerInventory 2.6.0.

1.0.1 — 2026-09-25

Required on the server and on every client, like 1.0.0 (exact version match).

  • Crash safety: before a deposit, the game now saves your character whenever the item isn't exactly what your last save holds (changed in place, for example by an EpicLoot Brokkr's Gift, replaced by a craft, moved or taken since). Before, depositing an item changed that way and then crashing could duplicate it.
  • Crash safety: an item taken from the Hoard and then remade by a recipe that consumes it (for example a hand refuel) is now followed by its enchantment data, so an extra plain copy handed back by another mod can't hide it. Before, a crash right after such a craft could lose it.
  • Crash safety: a character save whose Steam Cloud write failed (the game falls back to a local copy) no longer counts as saved for Hoard's purposes.
  • Fewer save hitches: your character is saved when you open the Hoard (and before depositing an item your last save doesn't hold), no longer also when you close it and after Deposit all.
  • Window placement: the Hoard window follows the size of your inventory and other mods' panels (for example AzuExtendedPlayerInventory's extra rows and character panel) and no longer covers them.
  • Rune Cache look: the blue glow is gone; it looked like a solid blue chest.
  • Checked against Valheim l-1.0.16: none of the game code Hoard relies on changed from l-1.0.15.

1.0.0 — 2026-09-24

First release, built against Valheim l-1.0.15 (network version 40), BepInEx 5.4.23.5, Jotunn 2.30.2, ConditionalConfigSync 1.0.9 and EpicLoot 0.14.13.

  • The Hoard (hammer, Misc, at a workbench): one world-wide store of enchanted equipment, kept on the server. Every Hoard piece opens the same contents; pieces take no damage, and removing one loses nothing.
  • Seven boss-gated upgrades, from 40 to 480 slots, each paid in biome and EpicLoot materials; the chest's look changes with the tier. The whole ladder is configurable.
  • A sortable, filterable list next to your inventory: text, rarity, type, biome tier, upgrade level, set pieces, enchantments (ALL/ANY with minimums) and up to three stat rows, with the item's tooltip compared to what you have equipped. Deposit all magic gear skips the hotbar, equipped items, AzuExtendedPlayerInventory slots and QuickStackStore favourites. Basic gamepad support.
  • Crash-safe transfers: every change is journaled to disk on the server before it is confirmed, and each player's game keeps its own journal, so a deposit or take interrupted by a crash or a lost connection is settled at the next login. After a crash, a taken item comes back only if it was still in your inventory; the few cases this can't cover are listed in the README under Limitations. Stored items are kept byte for byte, including items whose mod was removed.
  • The Rune Cache (hammer, Misc, near an enchanting table): a public chest that takes only runestones, shard stones and EpicLoot enchanting materials; it can't be damaged, can only be removed with the hammer when empty (an admin's forcedelete deletes it with its contents), is closed to sacrifice, and works with AzuCraftyBoxes and QuickStackStore.
  • Admin commands in the console or chat: hoard stats, journal, restore, export and verify, accepted only from players who have finished joining and are in the server's admin list.
  • Required on the server and on every client (exact version match). All gameplay settings are server-synced with an admin lock and editable in game with a configuration manager; hand edits of the file on the server are reloaded live.