A bag's slot count usually ships with the item. Stowage makes it a server setting.
It can target one bag, a family of item codes, or compatible bags from another mod. When a bag already has things in it, those items still have to go somewhere. They are not hidden and they are not deleted.
This mod is published on Mod DB.
- Capacity by item code: one bag, a family such as
game:backpack-*, or another asset domain. First match in the file wins. - Bags from other mods: standard held bags are recognised by behavior, not by mod id. A compatible bag mod needs no Stowage plugin.
- Growing: occupied slots keep their places. New slots start empty.
- Shrinking: a dormant bag keeps its old layout until Stowage can compact, overflow, and drop. The smaller grid is saved only after every item has somewhere to go.
Rules can target one bag, a wildcard family, or bags from another asset domain.
The server creates
%APPDATA%\VintagestoryData\ModConfig\stowage.json on first run.
After editing it, restart the dedicated server or reopen the
singleplayer world so the server loads the updated rules.
| Setting | Default | Effect |
|---|---|---|
BagCapacityOverrides |
{} |
Maps item-code patterns to capacities from 1 through 256 |
- Patterns accept
*wildcards. - A pattern without a domain is treated as
game:. - Rules are checked in file order, and the first match wins.
- An empty map preserves the capacities supplied by the game and other mods.
{
"BagCapacityOverrides": {
"game:backpack-*": 12,
"game:linensack": 10,
"game:basket-*": 8,
"othermod:rucksack-*": 18
}
}Vanilla bags and bags from other mods are eligible when they use Vintage Story's standard held-bag behavior. A custom inventory that only looks like a bag is left alone and logged.
Existing bags grow the next time their contents load. Occupied slots keep their places. Newly added slots start empty.
When a configured capacity becomes smaller, a dormant bag keeps its old layout until it is used. On equip or open, the server compacts its contents into the remaining slots, moves overflow into valid player inventory and other equipped bags, then drops anything that still does not fit. The smaller layout is saved only after every overflow item has somewhere to go.
An already-equipped bag is resized when its player finishes joining the world. A ground-stored or entity-attached bag is resized when opened. Until then, its old slots remain visible so no contents become hidden.
Back up important worlds before changing any inventory-related mod setup.
- Built for Vintage Story 1.22.3.
- Required on both the client and server. Clients and servers should use the same Stowage version.
- Standalone, with no required dependencies.
- Custom bag implementations that ignore the standard capacity attribute are left unchanged and reported in the server log.
Stowage patches standard bag loading and interaction methods. Other Vintage Story versions remain unverified until they pass the same review and in-game checks.
- Download the latest
stowage_*.zipfrom GitHub Releases. - Place the zip in the Vintage Story
Modsdirectory. - Restart the game, or restart the server and reconnect.
resources/modinfo.json is the source of truth for release metadata.
dotnet build
./build.ps1
./build.ps1 -DeployThe build script creates Releases/stowage_<version>.zip. -Deploy
also copies that package into the active Vintage Story Mods directory.
- CHANGELOG.md is the release history.
- FEATURES.md is the design notes.
- docs/MODDB.html is the maintained Mod DB page.
See LICENSE. Personal non-commercial use and pull requests back to this repository are allowed. Redistribution and modpacks require prior written permission.
You can support Stowage and other projects on Ko-fi.

