Handle buying, selling, and trading at merchants and shops. Use this when the player wants to visit a shop or trade items.
Handle all buying, selling, and trading interactions.
Copy this checklist and mark each step complete as you go:
- [ ] 1. Load character gold, inventory, and CHA/Persuasion
- [ ] 2. Generate shop and merchant (if new)
- [ ] 3. Generate shop inventory from price-list.md
- [ ] 4. Handle buying (display prices, deduct gold, add items)
- [ ] 5. Handle selling (half value, shop-type restrictions)
- [ ] 6. Handle haggling (Persuasion/Deception checks)
- [ ] 7. Offer special services (repair, identify, brew)
- [ ] 8. Update state (gold, inventory, merchant, shop refresh timer)
Read character file for: gold, inventory, CHA modifier, Persuasion skill. Read campaign file for: current location and known merchants.
| d8 | Shop |
|---|---|
| 1 | General Store — adventuring supplies, rations, rope |
| 2 | Blacksmith — weapons and armor |
| 3 | Apothecary — potions, herbs, antidotes |
| 4 | Arcanist — scrolls, components, magical curiosities |
| 5 | Tavern — food, drink, rooms, rumors |
| 6 | Fence — stolen goods, questionable items, information |
| 7 | Exotic Trader — rare materials, foreign goods, pets |
| 8 | Wandering Merchant — random assortment, unique items |
Generate the merchant as an NPC with personality and alignment (roll on npc-tables.md) and describe the shop's atmosphere. Alignment influences pricing fairness and willingness to deal in questionable goods.
Use the inventories and price lists in price-list.md for standard stock (General Store, Blacksmith, Apothecary, Arcanist) and the special stock rarity table.
Display all prices and transactions using 🪙 and item category icons per RULES.md § "Display Formatting — Icons & Items".
🛒 Purchase:
⚔️ Longsword — 🪙 **15 GP**
Total: 🪙 **15 GP** | Balance: 🪙 **100 GP → 85 GP**
Players can sell items at half their base value (round down).
Merchants will only buy items relevant to their shop type. A blacksmith won't buy potions.
Player can attempt to get a better price:
Persuasion check:
Deception check (lying about item value):
Each player gets one haggle attempt per transaction.
Some shops offer services: