All posts

How to track a guild bank or shared inventory in Discord

CordBase Team

The simplest way to track a guild bank in Discord is a table that members update with slash commands, so what is in the bank, who put it there and who took it out is written down in the server where everyone already talks. Most servers start with a pinned message someone edits by hand, a Google Sheet linked in a channel, or an economy bot. All three work for a while. The pinned message breaks when two people edit it in the same evening. The sheet works until members stop opening it, and a lot of them do, because it lives outside Discord. Economy bots track items as things people buy with points, which is a different job from "who's holding our 40 iron bars".

This guide sets up an inventory that lives inside Discord: members log and look up items with slash commands, and admins see the whole table on the web. It uses CordBase, which we build, and it takes about five minutes.

What you'll end up with

  • A /inventory command in your server with add, query, view, update and leaderboard actions.
  • Columns for the item, quantity, owner, rarity and notes.
  • Role permissions so regular members can look things up but only officers can change counts.
  • A web table you can export to CSV once you're on a paid plan.

Step 1: Add CordBase and install the template

  1. Sign in at cordbase.gg with Discord and pick your server.
  2. Add the bot to the server when the dashboard asks.
  3. Open the template library and install Inventory Tracker. It comes with five columns: item (text, required), quantity (number, required), owner (member, required), rarity (Common to Legendary) and notes.

If your server shares one pool of items rather than tracking who holds what, install Guild Bank instead. It has item, quantity, deposited by, category (materials, gear, consumables, currency) and date. The rest of this guide uses Inventory Tracker; the commands work the same on Guild Bank, with its own column names.

The command is named after the table, so the template gives you /inventory-tracker. You can shorten it on the table's edit page by changing the slug; this guide assumes you renamed it to inventory.

Step 2: Lock down who can edit

New tables let everyone do everything, which is fine for testing and bad for a guild bank. In the table's permissions:

  • Give the role all members have (for example @Member) read. They can run query, view and leaderboard.
  • Give your officer role write so they can add and update.
  • Keep admin (delete and bulk edits) for leadership.

Once a table has any role set, members without one of those roles can't use it at all.

Anyone with Discord's Administrator permission keeps full access either way.

Step 3: Log items from Discord

Adding a row looks like this:

/inventory add item:Iron Bar quantity:40 owner:@Mara rarity:Common

Discord shows each column as an option, with the member picker for owner and a menu for rarity, so people can't type "legendery".

When stock changes, update the count instead of re-entering the row. Start typing in the row option and pick the item from the list, then set the _mode option, which decides what happens to numbers:

/inventory update row:Iron Bar quantity:15 _mode:Decrement

That subtracts 15 from whatever the current quantity is. Increment adds. Set (the default) replaces the value. Two officers decrementing at the same moment both count, because the change is applied as a math operation on the stored value rather than a "write this number" call.

Step 4: Look things up

  • /inventory query owner:@Mara lists everything Mara holds.
  • /inventory query item:iron finds every row whose item contains "iron", in any case.
  • /inventory query rarity:Legendary limit:25 shows up to 25 legendary items.
  • /inventory view row:Iron Bar (picked from the list) shows one row in full, with who added it and when.
  • /inventory leaderboard column:quantity ranks items by stock, highest first.

Query results show the newest rows first, and filters combine, so owner:@Mara rarity:Epic narrows to Mara's epic items.

Step 5: Keep a history (optional)

The inventory table holds the current state. If you also want a record of what came in and went out, install Loot Log next to it (item, received by, source or boss, rarity, date) and log drops there. Free plans get two tables, so inventory plus a loot log fits.

When something else fits better

A spreadsheet is still the better tool if you need formulas, charts or a lot of cross-referencing, and nobody minds leaving Discord to edit it. CordBase has no formulas and no Google Sheets sync.

If your "inventory" is really a virtual economy, with members earning coins and buying items from a shop, use an economy bot such as UnbelievaBoat. CordBase doesn't run a shop or pay out currency on its own.

CordBase fits when the data is real records the server cares about, and you want people to update it from Discord without granting them edit access to a whole spreadsheet.

Limits worth knowing

  • Free: 2 tables, 100 rows each. Pro ($8/month) raises that to unlimited tables and 10,000 rows per table and adds CSV/JSON export and bulk edits.
  • Up to 25 columns per table.
  • Tables are designed on the web; members can't create new tables from Discord.

Questions people ask

Can members see only their own items?

Not as a permission. Anyone with read access can query the whole table. Members can filter to their own rows by picking themselves in the owner option: /inventory query owner:@yourname.

Can I import my existing spreadsheet?

Not yet. CordBase has no CSV import today, so existing rows need to be added with /inventory add or from the dashboard. Paid plans can export to CSV and JSON.

Does the bot need to read messages?

No. CordBase only responds to slash commands and doesn't request the Message Content intent.