- Hollowcrown: The Rift Between Worlds as its own seed (npm run seed:hollowcrown), built from the campaign book: pools, 58 monsters, 57 NPCs, 28 locations, 72 encounters with rewards, and DM notes. Shared seeding logic moved to prisma/seedCampaign.js. - What players can see: only encounters their own character is in; only the pool entries their character holds (plus starting options while building); only locations their character has been to; no invite code; no gold, inventory or money log of other players' characters. Socket events carry ids only and campaign rooms are members-only. - Encounters have a location; while one is in progress its characters are there, and visits are remembered. - Campaign setting to show players a health bar only for monsters and NPCs. - Initiative is entered as the d20 roll (1-20) and the bonus is added; players can enter their own character's roll. - Number fields enforce their limits when typing, and the API enforces the same limits. - Temp HP shows on HP bars and absorbs damage before real HP. - All packages at version 1.3.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
6.1 KiB
Items and Inventory
How items work in this app: the campaign's item pool, what a character carries, item levels, and how items are handed out.
This describes the code as it stands. Related: WEAPONS.md (items level up the same way weapons do), SPELLS.md, CHARACTERS.md (money is covered there, in section 12).
Contents
- The basics
- The item pool
- A character's inventory
- Item levels
- Dice on items
- Starting items
- Items as rewards
- Permissions
- What is not modelled
1. The basics
- Every campaign has its own item pool: rope, potions, keys, quest items, anything that is not a weapon or a spell.
- A character's inventory is the items it holds from that pool. Players cannot type in items of their own.
- The DM creates items and hands them out. Players can only tick Equipped.
- Items are descriptive. Holding or equipping one never changes a number on the sheet.
2. The item pool
The pool is the "Items Pool" card on the campaign page (DM only).
| Field | What it is |
|---|---|
| Name | Free text, up to 120 characters |
| Description | Optional. Shown under the item in a character's inventory |
| Base dice | Optional dice such as 2d4+2, for items that deal damage or heal (section 5) |
| Starts at level | 1 to 9. The lowest level this item can be (section 4) |
| Growth | Standard, Powerful or Legendary. Only matters if the item has dice |
| Starting option | Whether a brand-new character may pick it in the builder (section 6) |
- Adding: the "+ Add Item" form. There is no built-in library of items.
- Changing: starting level, growth (when the item has dice) and the starting-option tick box can be changed in the table. Name, description and dice cannot be changed on screen once created (the API accepts it); remove and re-add instead.
- Removing: the ✕ button. This takes the item out of every inventory and off every encounter's reward list. There is no undo.
3. A character's inventory
On a character's sheet, the DM picks an item from the pool and clicks Give.
| Each held item has | Who changes it |
|---|---|
| Quantity | The DM, with the − and + buttons |
| Level | The DM, with the level picker |
| Equipped | The owning player or the DM |
- Giving an item the character already holds adds to the stack. A character holds one stack per item, and the whole stack shares one level.
- Quantity cannot go below 1; to take the last one away the DM uses ✕.
- Using up an item (drinking a potion) is not automatic: the DM lowers the quantity or removes it.
- Equipped is a label. It does not change Armor Class or anything else; armor is represented by the single "armor bonus" number on the sheet.
Passing items on. A character's owner (or the DM) can give some or all of a held stack to another character in the campaign from the "Give to Another Character" card on the sheet. The items leave the giver and arrive with the recipient at the giver's level, unequipped. If the recipient already holds that item, their stack grows and keeps its own level. Gold is given the same way, and both characters' money logs record it.
4. Item levels
Items use the same level system as weapons (a house rule of this app):
- Each held stack has a level from 1 to 9, never below the pool entry's starting level.
- A character must be at least the item's level to use it. A higher-level item is still held, but shows "Requires level N" and cannot be equipped.
- Only the DM changes an item's level.
- If the DM levels an item past its holder, or lowers the character's level, it is unequipped automatically.
For an item with no dice, the level is purely a requirement: a level 3 amulet is one a character cannot use until level 3.
5. Dice on items
An item can carry optional dice: a healing potion's 2d4+2, a firebomb's
3d6. The app does not know whether they heal or harm; the DM applies them.
The dice grow with the item's level exactly as a weapon's do, climbing the same ladder (1d4 → 1d6 → 1d8 → 1d10 → 1d12 → 2d6 → …) by one, two or three rungs per level depending on Growth. The full ladder is in WEAPONS.md, section 6.
Healing Potion, 2d4+2, Standard growth |
Dice shown |
|---|---|
| Level 1 | 2d4+2 (as typed) |
| Level 2 | 1d6+1d8 |
| Level 3 | 2d8 |
The dice are shown beside the item in the inventory. Nothing is rolled or applied automatically; use the dice roller.
6. Starting items
In the builder's equipment step a new character can pick items that are:
- ticked as a starting option in the pool, and
- starting level 1.
Starting items and starting weapons share the campaign's "starting items" allowance. Each arrives at level 1, quantity 1, unequipped.
7. Items as rewards
On an encounter the DM can line up an item as a reward, at a chosen level and quantity, and later award it to a character. Awarding adds it to the character's inventory, stacking with any they already hold. See ENCOUNTERS.md.
8. Permissions
| Action | DM | Owning player | Other players |
|---|---|---|---|
| See the item pool | Yes | Only what their own character holds, plus the starting options while they have a character to build | The same, for their own character |
| Add, change or remove pool items | Yes | No | No |
| Give an item from the pool, or take one away | Yes | No | No |
| Give a held item to another character | Yes | Yes | No |
| Change quantity or level | Yes | No | No |
| Equip or unequip | Yes | Yes, if the character can use it | No |
| See a character's inventory | Yes | Yes | Yes |
9. What is not modelled
- Any effect of an item on stats (AC, speed, abilities)
- Armor and shields as items
- Using up items automatically, charges, and attunement
- Weight, carrying capacity and containers
- Prices, buying and selling (record the gold change in the money log)
- Swaps as a single step (each side gives separately), and asking the recipient to accept