Confirm with your password

StackIT

Server-synced stack, weight and pickup control for Valheim. Tune stacks per resource (wood 3x, metal 2x), cut item weights by a percentage, raise carry capacity, and hold Shift to harvest a whole berry patch

· Website · 💗 Donate

Stars
1
Downloads
868
Version
0.3.0
Updated
Author
Wubarrk
Virus scan
✓ Scan successful
Runs on
Client & Server
Required by
4 mods

Description

📦 StackIT

StackIT — crates stacked high under a rune-lit sky

Valheim Mod Multiplayer Compatible Framework License Version

Carry more of it, carry it further, and take the whole patch at once.

StackIT is a small, server-authoritative mod that decides two numbers for every item in the game: how many fit in a slot, and what one of them weighs. Both are multipliers you set once and forget — or, if you want the control, tune per category, per resource and per individual item, with exclusions and a hard ceiling. The server owns the settings and clients sync to it, so nobody has to compare config files.

It also stops you pressing E forty times in a berry patch: hold Shift and the whole patch comes up at once.

It deliberately never makes weapons, armour or tools stackable. Here is why.


📜 Contents
🔗 My other mods — all of them live on Hexium, all of them alive and well

Every mod below is on Hexium and is actively maintained — nothing on this list is abandoned, and fixes land there first.

Mod What it does
TortalPortal A complete overhaul of the portal network — pick destinations off a map, with photos, PIN locks and tame teleportation.
VikingOS Rebuild the whole interface. Move, resize and rotate any HUD element, plus a chat that keeps your capitals.
Fatty The food overhaul — no stat decay, a bigger food bar, stacking foods, and diet synergy buffs.
LetItGrow Farming, fully configurable. Grow timers, grid planting, and a Scarecrow that harvests and replants for you.
Shadows of Midgard A stealth engine. Creatures see, hear, remember and doubt — vision cones, noise, light and camouflage.
AwayFromHome Build a Keeper Stone and that place keeps living while you are elsewhere. Animals fed, smelters loaded.
Njord A mythic overhaul of ship handling, steering and acceleration, with its own HUD.
Wings of the Valkyrie Four tiers of runic dragon wings and a Flight skill that grows with every wingbeat.
Runic Runic Weapons of Thorium — 7 two-handers, 7 staves and 3 armour sets behind a new Ashlands ore chain.
Dvergr Allies Tame, breed and lead an army of Dvergr, across four classes with real breeding genetics.
Blighted World Heart A raid boss that summons endless waves, unique sub-bosses, and drops dozens of custom weapons.
Runebound Rest The Rested and Comfort system, rebuilt — plus a Well Rested buff for a full night in your own bed.
Mists of Avalor A procedural black-stone crypt-labyrinth in a forsaken sky-realm. Bring a torch.
The Eye A deterministic, cross-platform Valheim API extraction tool. Vibe coders love it.

⚠️ Upgrading to 0.3

Nothing changes on its own. Every new setting ships switched off: the four resource multipliers in 3 - Stack Resources are 0 (follow the category, then the global multiplier), Stack Multiplier Overrides is empty and Weight Reduction Bonus (%) is 0. A server that upgrades and touches nothing computes exactly the stack sizes and weights it did on 0.2.3.

Everyone needs 0.3.0. The new settings are server-synced and change what the server computes, so clients on an older StackIT are asked to update rather than play with different numbers.


⚠️ Upgrading to 0.2

Harvest All is on by default, and the key is Shift. Shift is also the run key, so sprinting up to a berry bush and pressing Use while still holding it will take the whole patch, not one bush. That is usually what you wanted anyway, but it is worth knowing before it surprises you. Change the key or set Harvest All = false in section 7 - Pickup.

Nothing else changes on its own. Auto Pickup Range ships at 2, which is exactly vanilla — raise it yourself if you want harvests to collect themselves.

Everyone needs the same version. The pickup settings are server-synced, so clients on an older StackIT are asked to update rather than play without them.


⚠️ Upgrading from 0.0.1

Weight reduction is on by default. 0.1.1 adds a Weight Multiplier that ships at 0.5, so every item weighs half what it used to the moment you launch. That is a real balance change on an existing server, and it is deliberate — bigger stacks are only worth having if you can carry them. If you want the old behaviour, set Weight Multiplier = 1.0 in section 4 - Weight.

Your stack multiplier carries over. It stayed in section 2 - Settings under the same key precisely so your existing value survives the upgrade untouched.

Everyone needs 0.1.1. Clients still on 0.0.1 will be asked to update, because they would compute different stack sizes to the server.


⚔️ Features

📦 Bigger Stacks

One multiplier applied to the base stack size of every item that already stacks in vanilla. Defaults to 3x: 50 wood becomes 150, 20 trophies become 60. A Max Stack Size ceiling (default 9999) is applied afterwards, so a big multiplier on an already-big stack can never produce a silly number.

Stack sizes are always recomputed from the vanilla value, never from the current one. Turn the multiplier down mid-session and it genuinely goes down; push a new config from the server ten times and you get the same answer ten times.

🪶 Lighter Items

The other half of the problem. A multiplier on every item's weight, defaulting to 0.5 — half of vanilla. Two details matter:

  • Items that weigh nothing in vanilla stay weightless. They are meant to be free.
  • Everything else gets a Minimum Item Weight floor (default 0.01) so nothing rounds down to free by accident.

On top of the multiplier there is a Weight Reduction Bonus (%): a further percentage taken off every item. Set it to 25 and everything is 25% lighter than the multiplier alone would make it — at the default multiplier of 0.5, a log that weighs 2 in vanilla ends up at 0.75. It ships at 0. Categories that have a multiplier of their own replace the global one, but the bonus is never replaced, so it is the one dial that moves every weight in the game at once. Weight Overrides and Excluded Items name an exact weight and are exempt; the minimum-weight floor still holds, so 100 leaves everything at the floor rather than at nothing.

🎒 More Carry Weight

Extra Carry Weight is a flat allowance added on top of vanilla's 300 and anything Megingjord is already giving you. It hooks the same call the encumbrance check and the inventory readout use, so the number in the corner of your inventory and the point at which you start waddling always agree. Defaults to 0 — the stack and weight multipliers usually get you there on their own.

🌿 Harvest All

Hold Shift and press Use on a raspberry bush and you get the whole patch, not one bush. The same goes for mushrooms, thistle, dandelion, flint, branches, stone — anything the game calls a pickable. Let go of Shift and Use behaves exactly as it always did, so nothing you already know changes.

Picking a plant does not put items straight in your pocket: it drops them on the ground where the plant stood, which is fine for one bush and useless for forty. That is what Auto Pickup Range is for — the radius loose items are vacuumed in from, 2 in vanilla and up to 64 here. Raise it and a harvest collects itself. Vanilla's own rules still hold: nothing is pulled in while you are out of slots or over your carry limit.

The prompt on your crosshair tells you it is there — [Shift + E] Harvest all sits under vanilla's own [E] Pick up, follows whatever key you bind, and hides itself on a gamepad.

Two guards, because "pick everything nearby" is a sharp tool:

  • Max Count (default 50) caps a single harvest, taking the nearest plants first. If a harvest hits the cap you are told so in the corner — it never quietly stops early and lets you believe the patch is empty.
  • Same Type Only (default off) restricts a harvest to plants dropping the item you actually picked, for when you want the berries out of a clearing and the mushrooms left where they are.

Plants sitting in tar are skipped rather than each complaining about it, and an Excluded Items list keeps named plants out of every harvest for good.

The modifier key is the one setting in StackIT the server does not decide. Which key you hold is a matter of taste and of keyboard, so it stays local to you — change it to Ctrl, Alt or anything else in 7 - Pickup.

🗂️ Per Category

If one number for the whole game is too blunt, every category has its own override. Leave a category at 0 and it follows the global multiplier; set anything else and it wins.

Stacks Weight
Materials ✅ ✅
Consumables ✅ ✅
Ammo ✅ ✅
Trophies ✅ ✅
Fish ✅ ✅
Misc ✅ ✅
Weapons — ✅
Armor — ✅
Tools — ✅

Weapons, armour and tools have no stack setting on purpose — see below.

🧱 Per Resource

The game files wood and metal under the same heading — Materials — but they are nothing alike. Wood is bulk you burn through building; metal is a chain of ore, scrap and smelting. Per Resource splits Materials into four groups so each can have its own number:

Resource Covers Vanilla stack
Wood Wood, Finewood, Corewood, Yggdrasil Wood, Ancient Bark, Ashwood, Timberwood 50
Stone Stone, Grausten, Black Marble 50
Metal Every ore and scrap the smelter and blast furnace take, and every bar they give back — copper, tin, bronze, iron, silver, black metal, flametal and bloodgold 30
Leather Hides, pelts, leather scraps and leather straps 50 (Troll Hide 20)
[3 - Stack Resources]
Wood  = 3
Metal = 2

That is triple wood stacks (50 → 150) and double metal ones (30 → 60), each independent of the other and of the Materials category. A group left at 0 follows its category, then the global multiplier, so nothing changes until you set one. The exact prefab names in each group are listed in the config file's comments, ready to copy into an exclusion or override list.

When more than one setting could apply to an item, the most specific one wins:

  1. Excluded Items — held at the vanilla stack size.
  2. Stack Size Overrides — an absolute size.
  3. Stack Multiplier Overrides — that one item's own multiplier.
  4. Per Resource — the item's resource group, if it is set.
  5. Per Category — the item's category, if it is set.
  6. Stack Multiplier — the global default.

Max Stack Size clamps whatever comes out, and weapons, armour, tools and anything that does not stack in vanilla are never touched.

🎯 Per Item

For when a category or a resource is still too broad. Two comma-separated lists set absolute values that ignore every multiplier, and a third scales the vanilla stack instead:

Stack Size Overrides       = Wood:500, Stone:500, Coins:9999
Weight Overrides           = Wood:0.1, Iron:4, BlackMetal:3
Stack Multiplier Overrides = Coal:4, Flint:2

The multiplier list is separate from the absolute one so that Coal:4 can only ever mean "four times the vanilla stack", never "four per stack". It is also where modded items go, since they belong to no built-in group. Entries of zero or less are ignored with a warning.

And two more hold specific items at their vanilla numbers, whatever the multipliers say:

[2 - Settings]  Excluded Items = Coins, SurtlingCore
[4 - Weight]    Excluded Items = Ymirremains

All five lists accept either the prefab name (Wood) or the shared name token ($item_wood), because item dumps and in-game tooltips do not agree on which one you are looking at. All five are case-insensitive, and all five are read in invariant culture — a config written on one machine reads identically on every other one, whatever its decimal separator.

🛡️ Why Gear Never Stacks

Plenty of stack mods will happily let you stack swords. StackIT will not, and this is the reason.

Valheim decides whether two items can merge in Inventory.FindFreeStackItem, and it compares name, quality and world level — it never looks at durability. So if stacking gear were allowed, a sword at full durability dropped onto a stack of worn ones would simply become a worn one. The game keeps a single durability value for the whole stack, and the better item's is discarded without a message.

There is no config flag to turn this on, because there is no version of it that is not silent data loss. Weight reduction still applies to gear in full — a lighter armour set is free of that problem.

The same rule covers anything that does not stack in vanilla, for the same reason. If you point a stack override at one of those items, StackIT ignores it and says so once in the log.


⚙️ Configuration

Everything lives in BepInEx/config/wubarrk.stackit.cfg, generated on first launch. Every setting below is server-synced except Harvest All Modifier, which is a keybind and stays local.

1 - General

Setting Default What it does
Lock Configuration true Only server admins may change the settings.
Verbose Logging false Logs how many item prefabs were touched on each re-apply. Handy while tuning overrides.

2 - Settings

Setting Default What it does
Stack Multiplier 3.0 Applied to the base stack size of everything that stacks in vanilla.
Max Stack Size 9999 Hard ceiling, applied after the multiplier and after any override.
Excluded Items (empty) Comma-separated names held at their vanilla stack size.
Stack Size Overrides (empty) Name:Value pairs setting absolute stack sizes.
Stack Multiplier Overrides (empty) Name:Multiplier pairs scaling that item's vanilla stack, e.g. Wood:3, IronOre:2.

3 - Stack Categories

Materials, Consumables, Ammo, Trophies, Fish, Misc — each defaults to 0, meaning use the global Stack Multiplier.

3 - Stack Resources

Wood, Stone, Metal, Leather — each defaults to 0, meaning use the category multiplier, then the global Stack Multiplier.

4 - Weight

Setting Default What it does
Weight Multiplier 0.5 Applied to every item's base weight. 1.0 is vanilla.
Weight Reduction Bonus (%) 0 Percentage taken off every item's weight on top of the multipliers. 25 is 25% lighter. Overrides and exclusions are exempt.
Minimum Item Weight 0.01 Floor applied after the multiplier. Vanilla-weightless items stay weightless.
Excluded Items (empty) Comma-separated names held at their vanilla weight.
Weight Overrides (empty) Name:Value pairs setting absolute weights, ignoring the floor.

5 - Weight Categories

Materials, Consumables, Ammo, Trophies, Fish, Misc, Weapons, Armor, Tools — each defaults to 0, meaning use the global Weight Multiplier.

6 - Carry Weight

Setting Default What it does
Extra Carry Weight 0 Added to every player's carry limit, on top of vanilla and Megingjord.

7 - Pickup

Setting Default What it does
Auto Pickup Range 2.0 Radius in metres loose items are vacuumed in from. 2 is vanilla.
Harvest All true Whether holding the modifier while pressing Use picks every plant nearby.
Harvest All Radius 8.0 Radius in metres searched around the plant you picked.
Harvest All Max Count 50 Most plants one harvest may take, nearest first.
Harvest All Same Type Only false Restrict a harvest to plants dropping the same item you picked.
Excluded Items (empty) Comma-separated names never mass-harvested.
Harvest All Modifier LeftShift The key you hold. Not server-synced — this one is yours.

🤝 Multiplayer

Install it on the server. Configuration is server-authoritative through ServerSync: the server holds the real values and pushes them to every client on connect, and again whenever an admin changes one — no restart, no reconnect, no comparing config files with your friends.

Lock Configuration (on by default) stops clients editing their own copy to give themselves bigger stacks. The single exception is Harvest All Modifier — a keybind is not a balance setting, so each player keeps their own. Because MinimumRequiredVersion matches the mod version, a client on an older StackIT is asked to update rather than quietly playing with different numbers to everyone else.

Single-player and dedicated servers both work with no extra setup. StackIT touches item prefabs only — it does not write to your save.


📦 Dependencies

⚠️ Requires: BepInEx

Dependency Why
BepInExPack Valheim The mod loader (also provides HarmonyX).

📥 Installation

With Gale (recommended): just install StackIT — the dependency above is pulled in for you.

Manual install:

  1. Install BepInExPack Valheim.
  2. Drop StackIT.dll into BepInEx/plugins.
  3. Launch once to generate BepInEx/config/wubarrk.stackit.cfg, then set your multipliers.
  4. On a dedicated server, install it on the server as well — that is the copy that decides.

📜 Licence

StackIT is released under the MIT License (LICENSE.md, included in the download). Fork it, ship it, sell it, put it in your modpack — keep the copyright notice and you are done. No permission needed and none to ask for.

ServerSync.cs (by Blaxxun) is compiled into the DLL and stays under its own author's terms.

Created by Wubarrk

Bug reports and suggestions are genuinely wanted — Discord is the fastest way to reach me.

Changelog

0.3.0 Latest

Added

  • Stack sizes can be tuned per resource. Wood and metal are both "Materials" to the game, so until now they shared one multiplier, or had to be overridden one item at a time in absolute numbers - which meant working out each item's vanilla stack first (wood is 50, every ore and bar is 30). The new 3 - Stack Resources section splits Materials into four groups with a multiplier each: Wood (Wood, Finewood, Corewood, Yggdrasil Wood, Ancient Bark, Ashwood, Timberwood), Stone (Stone, Grausten, Black Marble), Metal (every ore and scrap the smelter and blast furnace take, and every bar they give back) and Leather (hides, pelts, scraps and straps). Wood = 3 and Metal = 2 gives triple wood stacks and double metal ones, independently of each other and of the Materials category. Each group ships at 0, meaning follow the category, then the global multiplier, so nothing moves until you set one.
  • Stack Multiplier Overrides. A per-item list of multipliers - Wood:3, IronOre:2 - for anything the four groups do not cover, modded items included. It sits beside Stack Size Overrides rather than extending its syntax on purpose: that list holds absolute sizes, and a Wood:3 that meant "three per stack" in one list and "three times" in another would be a trap. Like the other lists it takes a prefab name or a $item_ token and ignores case. Entries of zero or less are rejected with a warning.
  • Weight Reduction Bonus (%). A percentage taken off every item's weight on top of the Weight Multiplier: at the default multiplier of 0.5, a bonus of 20 makes items 20% lighter again, so a weight-2 log ends up at 0.8. It applies to the categories too - a category's own multiplier replaces the global one, but the bonus still stacks on top - which makes it the one dial that moves every weight in the game at once. Ships at 0, which is exactly the old behaviour. Weight Overrides and Excluded Items are exempt, since they name an exact weight, and the Minimum Item Weight floor still applies, so 100 leaves everything at the floor rather than at nothing.
  • Verbose Logging says what it applied. The summary line now includes the weight bonus, any resource multipliers that are set, and how many per-item multipliers are loaded, so you can see the mod read your config the way you meant it.

Changed

  • A stack size is now decided in this order, first match wins: Excluded Items (vanilla) → Stack Size Overrides (absolute) → Stack Multiplier Overrides (per item) → resource group → category → global Stack Multiplier. Max Stack Size still clamps the result last, and gear and anything that does not stack in vanilla are still never touched.
  • Override lists turn away NaN and infinity. They used to parse cleanly and flow through the clamp untouched: Iron:NaN in Weight Overrides left iron weighing NaN, and Coal:NaN in Stack Size Overrides left coal with a stack size of -2147483648. They are now ignored with the same warning as any other malformed entry.
  • MinimumRequiredVersion moved to 0.3.0. The new settings are server-synced and change the numbers the server computes, so clients on an older StackIT are asked to update.
0.2.3

Valheim 1.0.16 compatibility

  • Rebuilt for Valheim 1.0.16 (client build 25527674 / dedicated server build 25527701, network version 40). No source change was needed: every Harmony target (ObjectDB.Awake / CopyOtherDB, ZNetScene.Awake, Player.GetMaxCarryWeight / AutoPickup, Pickable.GetHoverText / Interact) and every game member the item, pickup and category code reads was checked against the 1.0.16 decompile and is unchanged.
  • No behaviour change. MinimumRequiredVersion follows the mod version to 0.2.3, as it always has - everyone updates together.
0.2.2

Valheim 1.0.7 compatibility

  • Rebuilt for Valheim 1.0.7 (client build 25185596 / dedicated server build 25185644, network version 39) on BepInEx 5.4.2350. No source change was needed: every Harmony target (ObjectDB.Awake / CopyOtherDB, ZNetScene.Awake, Player.GetMaxCarryWeight / AutoPickup, Pickable.GetHoverText / Interact) and every game member the item, pickup and category code reads was checked against the 1.0.7 decompile and is unchanged. The 1.0 trinket slot (ItemType.Trinket) was already mapped to the Armor category.
  • No behaviour change. MinimumRequiredVersion follows the mod version to 0.2.2, as it always has - everyone updates together.
  • The Thunderstore dependency now names the 1.0 BepInEx pack (denikson-BepInExPack_Valheim-5.4.2350).

4 older entries, full version history & downloads →

Threads

Log in to post
Manual installation instructions
1

Install BepInExPack Valheim

BepInExPack Valheim is required to run mods in Valheim.

Download BepInExPack Valheim 5.4.2351 · View mod page

Check out the mod page for detailed installation instructions.

2

Install StackIT

This mod must be installed on both the client and the server.

Download StackIT 0.3.0

Extract the ZIP and place the file(s) into the BepInEx/plugins/ folder inside your Valheim game folder.