← All proposalsWork blog
Oil painting of a hooded banker writing in a ledger behind a counter stacked with strongboxes, scales and lantern light

The Well-Traveled Vault

A deep dive into Shroud of the Avatar's bank, the account-wide vault the genre took twenty years to invent, and twenty proposals that turn the light on inside it.

Every character you make shares one bank. Any banker in any town opens it. Gold is a number on your account, not a pile in a bag. Most MMOs needed two decades to reach that design; Shroud has quietly had it since 2018. This document surveys what the rest of the genre learned about vaults, measures our bank window against it, and proposes twenty improvements. Fifteen are pure client work, and the whole catalog is quality of life: nothing here touches what storage costs or how it is sold.

0 · Executive summary 1 · Where we are today 2 · Lessons: Ultima Online to modern 3 · The twenty proposals    Tier 1 · Quick wins (S1–S10)    Tier 2 · Bigger client work (S11–S15)    Tier 3 · Server-backed (S16–S20)    Considered and rejected 4 · The composed window 5 · Sequencing 6 · Appendix
Section 0

Executive summary

Shroud of the Avatar already won the war most MMOs spent twenty years fighting. The bank has been one account-wide vault since 2018: every character shares it, every banker in every town opens it, and gold is a number on the account rather than a weight in a bag. Ultima Online needed two decades of retrofits to reach that point. World of Warcraft only arrived in 2024 and called it a headline expansion feature. But winning the vault war exposed the next one. Our vault is a locked attic: you own everything in it, and the window will tell you what is there, but not why the same reagent sits in two piles, not where a chair you never deposited came from, not what is eating your slots, and often not even that the vault is one vault. Almost nothing on this page adds storage machinery. Nearly all of it turns the light on in the attic.

Measured against the modern vault canon (Old School RuneScape's reference bank UI, WoW's Warband vault, Guild Wars 2's material storage, Final Fantasy XIV's trophy shelves), our gaps cluster in three places:

  1. Legibility. The vault does not explain itself. Stacks split by deposit town with no visible reason, items the game deposits arrive unannounced, some refusals are silent, and nothing anywhere says the bank is account-wide.
  2. Slot economy. In a count-limited vault, stacking policy is capacity policy. Deposits start new stacks instead of topping up old ones, there is no merge tool, no capacity picture beyond one line of text, and no relief valve for the materials and event items that actually fill banks.
  3. Ergonomics. The gestures are missing: no quantity controls on withdrawals, no sort modes, no tabs of your own, no saved kits, no one-click claim on a delivery bag.

Twenty proposals follow. Tier 1 and Tier 2 (fifteen proposals) are pure client work riding data and operations the game already has. Five are server-backed, each flagged with its exact cost, and two of those are content or configuration rather than code. Everything is free to players by design: the two capacity proposals grant slots through play, not purchases.

#ProposalTierSizeServerOne-line pitch
S1Compact Stacks1Mnonemerge same-item stacks split across towns; deposits top up existing stacks
S2One vault, say so1Snonethe window finally says all your characters share one vault
S3Every refusal gets a reason1Snoneblocked deposits say why in one plain sentence
S4Capacity transparency1Snonefill meter, next-upgrade gold preview, what-is-using-my-space
S5Withdraw X1MnoneWithdraw 1 / 5 / 10 / X / All, with X remembered
S6New since last visit1Mnonearrivals badge and a Recent filter for items that appeared while away
S7Where did this come from1Mnoneevery banked item explains how it got there
S8Sort modes1Snonearrange by name, category, rarity or newest; view only
S9A legible location filter1Mnonelabeled town and source chips replace Everything and LocalOnly
S10Find a banker1Snonea first-vault pointer for new players
S11Claim delivery2Mnoneone button empties a system delivery bag into your pack
S12My tabs2Lnoneplayer-named bank tabs; your vault, your shelves
S13Bank presets2Lnonesaved kits: bank this, withdraw that, one click at any banker
S14Bank counts in tooltips2Mnonehover anywhere shows how many you already have banked
S15Deposit points2Mnonedeposit-only strongboxes at adventuring hubs, behind an owner decision
S16System deposits stack politely3Mbehaviorgame-made deposits merge into stacks you already have
S17Earned vault space3Mcontentfree slot grants from quests and achievements
S18Vault layout that follows you3Mnew recordyour tabs and kits roam with your account
S19The trophy case3XLnew record + opsevent items become a permanent collection and free their slots
S20The materials shelf3XLshelf bagraw materials become counts on a shelf, off your slot budget
Section 1

Where we are today

Credit first, because there is a lot of it. The bank went global in 2018 and players celebrated: one vault, opened by any banker in any town, shared by every character on the account. The window finished its move to the new UI this summer with a search box, category filter tabs, sortable columns, a live capacity readout, and a Buy More Space button that works. The account-wide item search that ships with the new inventory reaches into the bank from anywhere. Gold never touches a bank slot because it is an account number, a design Ultima Online only reached in 2015 after eighteen years of players hauling literal gold piles. None of that is proposed here; it is the floor this page stands on.

Bank
SearchEverything ▾
All ItemsArtifactBook & PaperConsumableContainerDecorationDeed & HouseEquipmentMaterialPatternReagentRecipeTool
Item Name ▲QtyWeightDurabilityValue
Beeswax444.488
Garlic1201.2120
Garlic850.985
Iron Ingot250125.0750
Ring of the Oracle10.150/504,200
Wooden Chair18.035
Yule Wreath11.0
Items: 214 / 260Refresh Buy More Space

The vault model in one picture

Under the hood the vault is one account-wide bank made of shelves. Depositing at a banker files the item on that town's shelf, which is why stacks split by town. The game also keeps system shelves it fills on your behalf: store deliveries, property returned from a released lot, expired vendor listings, expired mail, guild war spoils, and old migrations. Every banker opens all of it at once; the shelf is a label, never a wall. Every proposal on this page is either a better window onto this model or a small, careful change to how items land on the shelves.

flowchart LR
  V["Your account vault\none bank, all characters"] --> T["Town shelves\nSoltown / Aerie / Central Brittany ..."]
  V --> Y["System shelves\nRewards / Returned property / Vendor returns\nExpired mail / War spoils / Migration"]
  B1["Banker in any town"] --> V
  B2["Placed bank access device"] --> V
  S1["You deposit"] --> T
  S2["The game delivers"] --> Y
The one hard constraint. Items in this game move only through one battle-tested transfer path, and this page honors that: every proposal that moves items is a batch of ordinary moves the game can already do, planned and previewed on the client. Nothing here invents a new way to create, destroy or teleport an item. The two proposals that need genuinely new server machinery (S19, S18) say so on their face.
Section 2

Lessons: Ultima Online to modern

UO's bank box is the ancestor: a safe container at every banker, opened by saying "bank," 125 items, no tools. It was the genre's storage baseline for a decade, and its history is a list of things players asked for until they got them. Gold was a physical, weighty item, so players invented bank checks to compress it; UO deleted the whole problem in 2015 by making money an account number, which is where Shroud started. Bank boxes were per-character for twenty years; UO retrofitted shared account storage in 2018 through 2020. There was a weight cap on the bank; UO concluded it added nothing and removed it. Shroud inherited the good endings of all three arcs on day one. What it did not inherit is the tooling the rest of the genre built once capacity questions were settled.

Oil painting of a knight, a hooded mage and a ranger reaching together into one glowing treasure chest
One chest, many hands. Every character on an account shares the same vault, and has since 2018. The window has never said so, and that silence is where half this page's proposals come from.
1997
UO bank box
A safe box at any banker. 125 items, invisible cap, zero tools. The genre's storage baseline for a decade.
2015
UO currency account
Gold stops being an item. UO deletes eighteen years of bank-check workarounds by making money a number on the account.
2018
SotA global bank
Per-town vaults merge into one account-wide bank any banker opens. Players still celebrate the thread that greeted it.
2024
WoW Warband bank
Blizzard ships the account vault as a headline expansion feature after twenty years of per-character banks. The genre converges where Shroud already stood.
now
The tooling era
Capacity solved, the frontier moves to legibility: OSRS tabs and placeholders, GW2 deposit-all, FFXIV trophy shelves. Vault tooling is this page's subject.

What each game contributes

Old School RuneScape: the reference bank UI. Drag-to-make tabs, type-to-search, placeholders that hold an item's spot at quantity zero, Withdraw-1/5/10/X with a remembered X, and one-click deposit buttons. Everything stacks, one slot per item type, which is why an 800-slot bank feels infinite: in a count-limited bank, stacking policy is capacity policy. OSRS also grants bonus slots for securing your account, capacity as a reward for play. World of Warcraft: the reagent bank (2014) proved the specialized sub-bank, and the Warband bank (2024) is the industry finally shipping the account vault Shroud has had for six years. Guild Wars 2: material storage turns crafting materials into per-type counters off the slot budget, and Deposit All Materials is the single most-praised storage button in the genre. Elder Scrolls Online: the Craft Bag shows both the power and the trap of material storage; it is transformative, and it is the game's most resented paywall because it is subscription-locked. Any Shroud version must be free for everyone. Final Fantasy XIV: the armoire and glamour dresser take whole categories of seasonal and trophy gear out of inventory forever, the genre's answer to a vault full of festival hats; its six-container fragmentation is also the cautionary tale. Albion Online: the deliberate anti-pattern, local per-city banks in a game built entirely around transport risk. It works there and nowhere else, and even there players ask for global banks. Shroud chose the global vault and players celebrated; the right move is to lean into it.

Capability matrix

CapabilityUO classicUO modern*OSRSWoWGW2ESOFFXIVSotA todaySotA proposed
Account-wide vault◔ retrofit● 2024○ silos● since 2018
Any banker opens the whole vault◔ bells● since 2018
Currency out of item space○ gold is items● 2015● 2024● wallet● account gold
Search inside the bank● new window● + town filter
Category tabs or filters● manual● filter tabs● + your own, S12
Deposits merge into existing stacks● one slot per type○ splits by town● S1/S16
One-click stack compaction● sort● compact● tidy● S1
Explains why an item arrived◔ guild log◔ folklore● S6/S7
Capacity meter and breakdown○ invisible◔ text only● S4
Earnable bonus slots○ paid codes● security rewards● S17
Collection shelf for trophies◔ house● appearances● wardrobe● armoire● S19
Materials off the slot budget◔ stacks-as-types◔ reagent bank● counters◔ sub only● S20, free
Crafting reads the bank◔ crafting page S20

● native · ◔ partial or third-party · ○ absent. *UO modern = post-2015 retrofits. "SotA today" = the migration-branch window, 2026-08.

Section 3

The twenty proposals

Tier 1 · Quick wins: client-only, zero server changes

S1 · Compact Stacks

Tier 1Size MServer: none

Your vault is one bank, but items remember which town you deposited them in, so ten iron ingot stacks from ten towns eat ten slots. Compact merges them. One button previews what will merge, then combines identical stacks across your whole vault and reports how many slots you got back. Deposits get smarter too: putting a stackable item in the bank tops up an existing stack anywhere in your vault before starting a new one. Nothing is lost and nothing moves that was not identical to begin with; unique items, containers and no-trade items are untouched.

Seen in: every modern MMO's auto-stack; FFXIV's retainer Entrust Duplicates is the closest one-click precedent. UO players spent two decades inventing bank checks and commodity deeds to do this by hand.

Bank
Items: 214 / 26012 slots held by split stacksCompact Stacks
Compact Stacks
Compacting will merge 14 stacks into 5 and free 9 slots.
Items keep no town label after merging.
Compact Cancel
Implementation notes

Two halves. Deposit policy: the deposit path already knows how to top up an existing bank stack (the full-bank top-up fix shipped this month); this extends that targeting from "when the bank is full" to "always", preferring any matching stack across the loaded bank containers before creating a new one. Compact: a pure client planner groups identical stackables across all bank containers using the game's existing stacking-identity rules, picks the largest stack as the survivor, and executes the merge as ordinary item moves between the player's own bank containers, sequential and abortable, idempotent if rerun. The preview line comes from the plan, the result toast from the executed count. No new server operation; ownership checks already cover moves between your own bank containers. The planner is a pure function and a natural EditMode test target.

client Mserver noneperf batched moves, throttledtests merge planner suite

S2 · One vault, say so

Tier 1Size SServer: none

The bank has been one shared account vault for years, and players still ask which town their stuff is in. Stale wikis still say banks are local. The fix is words: a footer sentence in the window that says "One vault. Every banker opens it. All your characters share it.", a short first-open explainer, and the same line on the banker's chat button. The oldest confusion about the bank dies of plain language.

Seen in: WoW sold the Warband vault with exactly this kind of messaging in 2024. Shroud got there in 2018 and never told anyone.

Implementation notes

Footer line in the bank window chrome; a one-time first-open panel (three short lines: one vault everywhere; the town on an item is only a label; your other characters see everything here) behind a local pref flag; the banker chat button gains a tooltip with the first line. Localized strings are the whole cost.

client Sserver noneperf nonetests n/a (strings + flag)

S3 · Every refusal gets a reason

Tier 1Size SServer: none

Today the bank sometimes just refuses: nothing moves, nothing is said. Every failed deposit or withdrawal should say why in one plain sentence. "Your bank is full. You need 3 free slots." "Containers can only nest this deep in the bank." "This banker cannot take that item." No more guessing, no more bug reports for behavior that was technically correct but completely silent.

Seen in: everywhere. Silent failure is the one storage pattern with no defenders anywhere in the genre.

Implementation notes

An audit pass over every early exit in the bank deposit gate assigns each a reason from a small enum; a pure mapper turns reason plus context (slots needed, nesting depth) into a localized chat line, with a brief flash on the drop target. The slots-needed arithmetic reuses the same counting rules as the capacity readout. Later cards (Claim Delivery, presets) report through the same mapper, so it is load-bearing beyond its size. Exhaustiveness is testable: every gate exit maps to a reason.

client Sserver noneperf nonetests reason mapper exhaustiveness

S4 · Capacity transparency

Tier 1Size SServer: none

"Items: 214 / 260" is accurate and invisible. Give the vault a real capacity picture: a fill meter that shifts color as it fills, a Buy More Space button that shows what the next upgrade costs in gold before you click it, and a breakdown of what is actually using the space. The first gold upgrades are cheap and almost nobody knows; the breakdown answers "clean house or buy slots" without a spreadsheet.

Seen in: WoW's Warband purchase UI shows escalating prices up front; RuneLite made bank-value overlays a community standard; GW2 shows per-material fill everywhere.

Bank Capacity
Items: 214 / 260
What is using the space
Decorations96
Materials54
Equipment31
Everything else33
Recoverable by Compact Stacks12
Next upgrade adds 10 slots for 1,700 gold
Implementation notes

The meter reuses the exact counts the readout already computes. The next-upgrade price comes from the same rules object the server already sends the window (never a hardcoded curve, so a tuning change cannot desync the label); the breakdown is one pass over the loaded containers with the same category classifier the filter tabs use. The known wrinkle that the footer does not refresh itself after a purchase gets fixed in passing. Price display math extends the existing bank formula test suite.

client Sserver noneperf reuses computed countstests capacity/price display math

S5 · Withdraw X

Tier 1Size MServer: none

Moving 40 boards out of a 2,000-board stack should not require a stack-splitting dialog dance. Right-click a bank stack and choose Withdraw 1, 5, 10, X or All, where X remembers the last number you typed. The same controls work for depositing. One gesture, exact quantity, and it works the same every time.

Seen in: OSRS's Withdraw-1/5/10/X with remembered X is the genre reference; WoW and RS3 have equivalents.

Implementation notes

Context menu on stackable rows in the bank grid (and backpack rows while the bank is open), gated to bank context so the shared grid component does not grow menus elsewhere. All quantities execute as the partial-stack move the game already supports; X persists in local prefs. Refusals speak through the S3 mapper. Quantity clamping and X persistence are pure-function testable.

client Mserver noneperf nonetests quantity clamp + X memory

S6 · New since last visit

Tier 1Size MServer: none

Open your bank and instantly see what is new: items that arrived since your last visit get a subtle marker, a Recent chip shows only them, and a small digest summarizes what came in. This matters more here than in most games because Shroud's bank receives deliveries you never made yourself.

Seen in: New World's new-item markers; GW2's inventory highlights; WoW's new-loot glow.

Bank: New Arrivals
While you were away
14 decorations from a released lot in SoltownView
6 items from an expired vendor listing in AerieView
1 parcel from expired mailView
View filters the bank to just those items.
Implementation notes

The client snapshots a manifest of the vault (item and count per container) when the window closes; the next open diffs against it and badges additions and count increases. The snapshot is local and per-account. A counts-only diff can miss like-for-like swaps; acceptable for v1. The differ is a pure function shared with S7 and S14, and the archetype preload that already runs at login guarantees badge tooltips resolve.

client Mserver noneperf one diff per opentests snapshot differ suite

S7 · Where did this come from

Tier 1Size MServer: none

Things appear in your bank without you: property returns when a lot is released, expired vendor listings, expired mail, guild war spoils, old migrations. Every banked item should say how it got there. Tooltips get a source line like "Returned from your vendor" or "Deposited in Soltown", system deliveries get clear banners, and a small vault journal lists recent arrivals with dates. Years of "my items are auto moving" reports end here.

Seen in: nobody does this well, which is the opportunity. EVE's asset journal mentality applied to a fantasy vault.

Implementation notes

The data already exists: every bank container carries a deposit reason and a location, delivered to the client when the bank loads. A small classifier maps reason plus location to a player-friendly source name (a town name for your own deposits; "Delivery from the store", "Returned property", "Expired vendor sale", "Expired mail", "Guild war spoils", "Moved during a game update" for the system shelves), with a safe fallback label for anything unknown. The journal rides the S6 differ. Classifier is exhaustively testable over the reason set.

client Mserver noneperf nonetests source classifier exhaustive

S8 · Sort modes

Tier 1Size SServer: none

One click to arrange the bank view by name, category, rarity, or newest first. It is only how the window displays your vault, so nothing moves and nothing can go wrong; switch back any time and your items never noticed.

Seen in: GW2's compact, FFXIV's sort, New World's sort buttons. The cheap, safe substitute for manual layouts.

Implementation notes

A sort dropdown beside the category tabs: Name, Category, Rarity, Newest (from the S6 snapshot dates), plus today's default order. Stable comparators in the view layer, memoized until contents change, persisted per account in prefs. Filter first, then sort, so it composes with search and tabs. Big-vault smoothness ultimately inherits the inventory page's grid virtualization work (inventory S13), credited not duplicated.

client Sserver noneperf memoized comparatorstests sort stability + composition

S9 · A legible location filter

Tier 1Size MServer: none

The Everything/LocalOnly popup is doing real work with unreadable names. Replace it with labeled chips: All Towns, This Town, plus each town you have actually used and each system source, every one with an item count. Towns with nothing in them stop cluttering the list. An optional group-by-town view keeps the shelf structure visible for players who use it as their filing system.

Seen in: WoW's Warband tabs give each shelf an identity; OSRS's tab bar ergonomics; ESO's category rows.

Bank: Locations
Show items from
All towns214
This town (Aerie)61
Soltown96
Central Brittany45
Deliveries and returns12
Towns with no items are hidden.
Implementation notes

Same underlying per-container filter the popup drives today; the entries become the S7 classifier's names with counts, empties hidden as a display rule (the empty per-town records deliberately persist underneath, unchanged). "LocalOnly" dies as a word; picking a town is a filter, never a mode, and search always spans the whole vault. Chip overflow for many-town accounts falls back to the dropdown.

client Mserver noneperf nonetests shares classifier suite

S10 · Find a banker

Tier 1Size SServer: none

New players hit their carry limit in the first hour and do not know the bank exists, where the nearest banker is, or that storage is shared. The first time a new account's pack gets heavy without ever opening a bank, a short "Store your things" pointer marks the nearest banker on the compass and map, and ends at the S2 explainer. It fires once and never nags.

Seen in: every modern MMO's storage onboarding beat; OSRS's tutorial bank stop.

Implementation notes

Bankers already have a map icon; the trigger is a client-side flag (first heavy-pack crossing with zero bank opens), the completion is the first bank open, which shows the S2 first-open panel. No server involvement.

client Sserver noneperf nonetests trigger state machine

Tier 2 · Bigger client work

S11 · Claim delivery

Tier 2Size MServer: none

When the game returns your property or an expired vendor listing to the bank, you get a bag of stuff to drag out one item at a time. Every system delivery bag gets one Claim button that moves the whole delivery to your backpack and tells you exactly what did not fit and why: "Claimed 11 of 14 items. Your backpack cannot hold the rest."

Seen in: WoW's mail Take All; FFXIV's delivery retrieval.

Implementation notes

A batch planner over ordinary bank-to-backpack moves, executed sequentially, stopping cleanly at the first refusal with the S3 reason and a remainder count. Carry-capacity math runs client-side before the batch starts. One known interaction needs care: bulk moves into player inventory automatically redeem several special item types; the claim planner inherits the inventory automation epic's handling for that rather than reimplementing it, and the two batch engines should be one shared planner with inventory P8's Quick Deposit.

client Mserver noneperf sequential batchtests claim planner + remainder report

S12 · My tabs

Tier 2Size LServer: none

Search and category filters find things; tabs let you own the layout. Make up to ten named tabs, drag an item type onto a tab, and that is where it shows from then on. Unassigned things live in Main. Tabs compose with search and sort, and search always searches everything. Your vault, your shelves.

Seen in: OSRS's drag-to-tab bank is the gold standard; WoW's Warband tabs; GW2's bank tabs. RuneLite's tag tabs prove demand outlives even a good first-party version.

Implementation notes

Pure view metadata over the vault: an archetype-to-tab map in local prefs, rendered as a grouping layer over the existing grid. The one hard design problem is hierarchy: player tabs become the primary row, category chips and the S9 location filter live in a secondary row, so three filter axes never compete for the same strip. v1 is per-machine; S18 makes it roam. Serialization round-trip and unknown-archetype handling are the test surface.

client Lserver noneperf grouping layer onlytests tab map round-trip

S13 · Bank presets

Tier 2Size LServer: none

Save your mining kit, your fishing kit, your siege kit. At any banker, one click pulls the saved set out of the vault: equipment on, consumables topped up to saved counts, and a plain report of anything missing: "Your kit is missing 2 of 5 healing potions." Getting ready becomes one action instead of twenty.

Seen in: RS3's bank presets are beloved; WoW's equipment manager; the deck system already trained Shroud players to expect saved kits.

Implementation notes

Named presets capture equipment slots plus a consumables list with target counts; Apply computes a move-and-equip plan, previews it, and executes through existing operations, reporting shortfalls through the S3 mapper. The planner is the hard part (bound items, broken gear, two-handed swaps); v1 ships withdraw-and-equip, opt-in auto-banking of the current kit second. Stored locally until S18.

client Lserver noneperf plan preview before movestests preset apply planner

S14 · Bank counts in tooltips

Tier 2Size MServer: none

Hovering an item anywhere should tell you how many you already have banked, so you stop opening the bank just to check before you buy, craft or trash something. "In bank: 240 (as of your last visit)." Counts refresh whenever you bank, and the label is honest about staleness.

Seen in: GW2's material counts, WoW's reagent counts in recipes, RuneLite's bank overlays.

Implementation notes

Reads the S6 snapshot store by archetype, updates live while the bank window is open, suppressed when no snapshot exists yet. Deliberately no extra server chatter: the count is as fresh as your last visit and says so. A live-count push is a possible v2 with its own server cost, not proposed here.

client Mserver noneperf cache lookup per tooltiptests rides differ suite

S15 · Deposit points

Tier 2Size MOwner decision

Coming back from a long gathering run overloaded, the only thing you need is to put things away. A few deposit-only strongboxes at major adventuring hubs would let you unload into your vault without walking back to town, while withdrawing still means visiting a banker. An honest note: the bank is global and bankers are everywhere, so this is a narrow gap, and if trips back to town are load-bearing for the game's pacing, this card should be dropped rather than watered down. That call belongs to the design owners, and the card says so on its face.

Seen in: OSRS's deposit boxes, deliberately weaker and more available than full banks.

Implementation notes

The in-world bank interactive already drives window-open on placed objects; deposit-only is a window mode (withdraw and purchase hidden, deposits and Compact allowed). Placement at four to six flagship adventure-scene entrances as a pilot is content work. No new server behavior: same operations, same ownership checks.

client S + contentserver noneperf nonetests mode gating

Tier 3 · Server-backed, each with its exact cost

S16 · System deposits stack politely

Tier 3Size MServer: behavior change

When the game itself puts stackable items in your bank, from an expired vendor listing, expired mail, or a property return, identical commodities should merge into what you already have instead of opening yet more slots. Unique items and decorations still arrive grouped in their delivery bag so you can see what came in; only plain stackables merge.

Seen in: WoW's mail auto-stacking; FFXIV's entrust-duplicates semantics applied to system deliveries.

Implementation notes

A server-side deposit-target change scoped to commodity stackables inside the existing bank conversion helpers, riding the existing merge logic; no new operation, no record shape change, no config. The stacking-identity rules must exactly match the client's or stacks fragment again, which makes the shared drift test the important artifact. Provenance for merged commodities survives in the S7 journal, which is why S7 ships first.

client noneserver M, behavior onlyperf neutraltests server integration + drift test

S17 · Earned vault space

Tier 3Size MServer: content only

Bank space you earn by playing: a small ladder of permanent slot grants from milestones, on top of the gold upgrades and changing nothing about them. Finish the first storage quest, reach a mid-tier adventuring milestone, complete a collection achievement, and your vault grows for free. New players get breathing room where the pinch is sharpest; veterans get room as a byproduct of playing.

Seen in: OSRS grants bonus bank slots for securing your account: capacity as a reward for engagement, the explicit anti-monetization pattern.

Implementation notes

Reward-table content granting the existing bank upgrade item through the existing rewards delivery and redemption flow, landing in the counter that already exists for granted upgrades. No new operation, no record shape change. Grant sizing is a design-owner balance call; grants stay modest so the gold ladder keeps meaning. Achievement-sourced grants ride the achievements page's S26 reward-shelf machinery.

client noneserver content/configperf nonetests existing redemption coverage

S18 · Vault layout that follows you

Tier 3Size MServer: new record + op pair

Your custom tabs and saved kits should be yours on any computer. Store the bank layout and presets with your account, so logging in elsewhere brings your organization with you. This card exists only to be sequenced honestly: it ships after tabs and presets prove people use them, never before.

Seen in: OSRS bank layouts survive any client; WoW's Warband configuration roams.

Implementation notes

One small per-account layout record (a size-capped, version-tagged blob) and one get/set operation pair. Deliberately its own record rather than a field on an existing one, so nothing shared changes shape. Local prefs remain the offline fallback and the migration source. Standard new-record bookkeeping applies (data-migrations ledger entry, dispatcher wiring, build registration), all routine.

client Sserver M, new small recordperf debounced savestests blob versioning round-trip

S19 · The trophy case

Tier 3Size XLServer: new record + ops

Festival hats, event trophies and commemoratives are memories, not inventory, yet they sit in the vault eating slots. A trophy case turns them into a permanent account collection: shelve an eligible item and it stops using bank space forever; take it back out whenever you want to display or wear it, one copy at a time. Shelving is voluntary, the dialog says plainly that a tradeable item becomes account-bound on the shelf, and your history stops competing with your ore.

Seen in: FFXIV's armoire and glamour dresser, the genre's answer to a vault full of festival hats; WoW's transmog appearances.

Trophy Case
Shelve a trophy
Yule WreathIn bank
Shelved trophies become a permanent collection entry and stop using bank slots. A tradeable item becomes bound to your account when shelved.
Place on shelf Cancel
CollectionShelved
Yule4 of 9
Harvest Festival2 of 6
Guild War Banners1 of 12
Implementation notes

The big one, flagged honestly: a new per-account collection record and a store/retrieve operation pair. Intake follows the existing consume-an-item-and-record shape the game already uses for redemptions; retrieval follows the existing rewards-grant shape, so no wholly novel item path is invented; the single-instance rule (exactly one copy exists, shelved or out) is the core correctness requirement and gets the heaviest test coverage on this page. Eligibility is a curated list of event and trophy archetypes, grown over time. Shares its collection-record patterns with the achievements page's machinery.

client Lserver XL, new record + opsperf n/atests round-trip + single-instance invariant

S20 · The materials shelf

Tier 3Size XLServer: shelf bag

Crafting materials are what actually fill banks. The materials shelf is a dedicated part of your vault where common raw materials live as simple counts: 1,840 iron ore, 620 cotton, one line each with a generous per-material cap, and none of it uses your bank slots. One Store Materials button sweeps every raw material you are carrying onto the shelf. Free for every player, forever; ESO proved this feature is transformative and then locked it behind a subscription, and that resentment is the one part of it worth copying nothing from.

Seen in: GW2's material storage, the genre's most-praised storage feature; WoW's reagent bank; ESO's craft bag as the anti-pattern.

Bank: Materials Shelf
Search materialsStore Materials
MaterialStored
Iron Ore1,840 / 5,000
Cotton620 / 5,000
Maple Timber2,215 / 5,000
Black Pearl340 / 5,000
Shelf items use no bank slots
Implementation notes

The design that makes the genre's biggest storage feature affordable here: the shelf is not a new storage system. It is one system shelf in the existing vault (a new deposit reason alongside the existing system shelves), created on demand the same way town shelves are, holding exactly one stack per material from a curated list of plain raw materials. Storing and withdrawing are ordinary stack merges and splits over the existing transfer machinery, so no new item path exists anywhere. The counter UI is a rendering of stacks; the shelf is excluded from the slot count with per-material caps enforced at the deposit gate, and the S4 breakdown gains a "Materials shelf: not counted" line so the readout change cannot read as a bug. Crafting stations do not pull from the shelf in this card; that is the crafting page's S20, which this shelf feeds cleanly later. The shared-enum addition follows the standard mirror-sync and additive-migration bookkeeping.

client Lserver M, enum + shelf targetingperf one stack per materialtests shelf rules + sweep planner

Considered and rejected

Section 4

The composed window

Twenty proposals could easily mean twenty widgets. The composed bank is the same window with three additions and one rename: the search box is untouched, the category tabs are untouched, location is demoted from a mode to data (a chip and a column), capacity becomes a meter line that owns the Compact button, and arrivals are one chip that only exists when something arrived. The footer says the sentence the vault has been owed since 2018.

Bank
Search All towns ▾
All ItemsEquipmentConsumableMaterialDecorationMore ▾
Items: 214 / 260 12 slots held by split stacks Compact Stacks
3 arrived while you were away ▾ from a vendor listing, mail, and a released lot
Item Name ▲QtyDeposited AtValue
Beeswax44Aerie88
Garlic120Soltown120
Garlic85Aerie85
Iron Ingot250Central Brittany750
Ring of the Oracle1Aerie4,200
Wooden Chair1Soltown35
Yule Wreath1Rewards
New arrival
Wooden ChairSoltown
Sent to your bank when your lot in Soltown was released.
Items the game moves for you always land in the bank and are listed as new arrivals.
One vault. Every banker opens it. All your characters share it. Refresh Buy More Space

After Compact runs: the two Garlic rows become one row of 205 filed under Soltown, the readout drops to 202 / 260, the meter leaves amber, and the split-stacks note disappears until the vault fragments again.

Zone anatomy

ZoneWhat it isProposals absorbed
Title + searchUnchanged; search always spans the whole vault.current state
All Towns chipReplaces Everything/LocalOnly one for one: same surface, readable entries with counts, empties hidden.S9
Options buttonThe single options surface: group by town, arrivals chip on/off, merge-on-deposit toggle.S9, S1
Tab rowCategory tabs, one row plus More. Player tabs (S12) take this row over when they ship; categories become chips.current state, S12
Capacity lineReadout + meter + reclaimable count + the Compact button. Clicking the meter opens the breakdown panel.S4, S1
Arrivals chipPresent only when something arrived since last visit; opens the digest.S6, S7
The ledgerThe existing sortable table plus a Deposited At column, so split stacks explain themselves at a glance.S7, S8
FooterRefresh and Buy More Space unchanged, plus the one-vault sentence.S2
Section 5

Sequencing

WaveShipsWhy this order
1S2, S3, S4, S10Trust and legibility first: small, independent, and they change the bank's reputation before any mechanics change. S3's reason mapper is load-bearing for three later cards.
2S1, S5, S8The headline. Compact lands best after refusals speak and the model is explained; Withdraw X becomes the daily gesture once stacks are big.
3S6, S7, S9, then S11The provenance cluster shares one snapshot differ and one source-naming table; Claim Delivery consumes both plus S3.
4S12, S13, S14, S15The ownership layer: tabs, then presets (same planner discipline as S1), tooltip counts read wave 3's cache. S15 runs in parallel as an owner-decision pilot.
5S16, S17, S20, S19, S18Server tier in cost order: the behavior change completes the S1 story, content-only grants pair with the achievements program, the shelf before the case (bigger lever, smaller surface), roaming only after tabs and presets prove demand.
flowchart LR
  S2 --> S10
  S3 --> S1
  S3 --> S11
  S3 --> S13
  S6 --> S7
  S6 --> S14
  S7 --> S9
  S7 --> S16
  S9 --> S11
  S1 --> S15
  S1 --> S20
  S4 --> S20
  S12 --> S18
  S13 --> S18
  A26["achievements S26"] --> S17
  S20 --> C20["crafting S20 later"]
Section 6

Appendix

Why these proposals: the evidence trail

The catalog follows the record, not a wishlist. The most persistent bank complaint on the official forums from 2018 through 2021, appearing in praise threads, wishlist threads and at least four bug reports, is stacks splitting by deposit town (S1, S16). The deepest confusion, documented in both directions across forums and external wikis, is whether the bank is one vault or many (S2, S9, S10). Threads about items appearing in the bank unexplained after lot releases and vendor expiries run from 2018 to a Steam thread in 2025 (S6, S7, S11). New-player threads describe hitting the carry limit in the first hour with 30 bank slots (S4, S10, S17, S20). And a set of refusal cases fail today with no message at all (S3). What the record does not show is demand for bank search, and this page accordingly does not claim it; search shipped with the new window and is celebrated, not proposed.

Adjacent territory: credited, not re-proposed

ThemeOwned by
Craft-from-bank, materials source selectorCrafting program, S20 there
Guild bankGuilds program, S24 there
Quick Deposit from inventoryInventory program, P8/S12 there
Sort-to-bags container routingInventory automation, S16/P13 there
Grid virtualization for huge listsInventory program, S13 there
Attribute search grammar, saved searches, column picker, All BagsInventory program, S1/S11/S4/S5 there
Junk flagging and sell-allInventory program, S14 there
Upgrade price integrity, service feesEconomy program, S16/S18 there
Reward shelf machineryAchievements program, S26 there
Cross-silo item searchShipped, 2026-08

Arrival reasons in player terms

The window will sayWhat happened
Deposited in [town]You or one of your characters banked it there.
Delivery from the storeA purchase or reward was delivered to your vault.
Returned propertyA lot was released or moved and its contents came home.
Expired vendor saleA vendor listing ran out and the item came back.
Expired mailMail lapsed and its attachments were kept safe here.
Guild war spoilsYour guild won and the spoils were deposited.
Moved during a game updateAn old migration filed it here.

Constraints honored

Test surface

The client proposals are deliberately built around pure-logic planners and mappers so they can be covered by editor tests in the project's existing bank test pattern: the merge planner and deposit-target selector (S1), the refusal-reason mapper (S3), capacity and price display math (S4), the snapshot differ (S6, S7, S14), the source classifier (S7, S9), sort comparators (S8), the claim planner (S11), tab metadata round-trips (S12, S18), the preset apply planner (S13), materials shelf rules (S20), and withdraw-quantity clamping (S5). The two server-backed records (S18, S19) get integration round-trips, with S19's single-instance invariant as the heaviest coverage on the page.

Sources

Ultima Online bank box, bank checks and currency history (uoguide, uo.com wiki, uotides); the 2018 shared-storage retrofit (massivelyop, ultimacodex); Old School RuneScape bank, placeholders, fillers and presets (oldschool.runescape.wiki, RuneLite); WoW reagent bank and 2024 Warband bank (warcraft.wiki.gg, wowhead); GW2 material storage and account vault (wiki.guildwars2.com); ESO craft bag (help.bethesda.net, eso-hub); FFXIV retainers, saddlebag, armoire and dresser (finalfantasyxiv.com); Albion local banks (albiononline forums and wiki); New World storage sheds (newworld wiki); EVE hangars (eveuniversity). Community record: official Shroud forums bank threads 2018-2022, Steam discussions 2017-2025, sotawiki. Full link list in the internal research pack.

This page is one of a series of deep dives into Shroud's systems. Comment threads and votes below feed directly into what gets built first. The catalog is a menu, not a promise: tell us which of these matter to you, and which we got wrong.

Feedback

General comments

No account needed. Every proposal above also has its own Discussion box for talking about that one alone; this thread is for the plan as a whole. Comments are plain text, held to basic decency, and may be trimmed.

← All proposalsWork blog