Summary
Allow DMs to dynamically adjust merchant prices during gameplay for haggling, reputation changes, or story events. Supports one-time adjustments and permanent modifications.
Phase: 3 - Advanced Features
Systems: Shop System, DM Tools
Prerequisites
Goals
/dmentity shop <entity> adjust <item> <price> - One-time price change
/dmentity shop <entity> discount <percent> [permanent] - Apply discount
/dmentity shop <entity> markup <percent> [permanent] - Increase prices
/dmentity shop <entity> reset [item] - Reset to base prices
/dmentity shop <entity> restock - Refresh stock quantities
- Save adjustments to entity instance (persist across restarts)
Use Cases
Scenario 1: Haggling
Player: "Can you give me a better price on that sword?"
DM: /dmentity shop balin adjust longsword 12
> Longsword price adjusted: 15 GP → 12 GP (one-time)
# Next server restart, reverts to 15 GP (not permanent)
Scenario 2: Reputation Reward
# Players saved the blacksmith's daughter
DM: /dmentity shop balin discount 20 permanent
> All prices reduced by 20% permanently for this entity
# Longsword: 15 GP → 12 GP
# Chainmail: 75 GP → 60 GP
# Persists across restarts
Scenario 3: War Economy
# War drives up weapon prices
DM: /dmentity shop balin markup 50 permanent
> All prices increased by 50% permanently
# Affects all items in shop
Commands
# Single item adjustment (temporary)
/dmentity shop balin adjust longsword 10
# Discount entire shop (permanent)
/dmentity shop balin discount 15 permanent
# Markup specific item (permanent)
/dmentity shop balin markup chainmail 25 permanent
# Reset single item
/dmentity shop balin reset longsword
# Reset all prices
/dmentity shop balin reset
# Restock all items
/dmentity shop balin restock
Persistence
# plugins/jkvttplugin/SpawnedEntities/balin.yml
entity_id: balin_blacksmith
custom_name: "Balin"
shop_adjustments:
global_discount: 0.20 # 20% off everything
item_adjustments:
longsword: 10 # Override specific item
stock_remaining:
longsword: 3 # Down from 5
chainmail: 2
Next Steps
After completing this issue, tackle:
Related Issues
Summary
Allow DMs to dynamically adjust merchant prices during gameplay for haggling, reputation changes, or story events. Supports one-time adjustments and permanent modifications.
Phase: 3 - Advanced Features
Systems: Shop System, DM Tools
Prerequisites
Goals
/dmentity shop <entity> adjust <item> <price>- One-time price change/dmentity shop <entity> discount <percent> [permanent]- Apply discount/dmentity shop <entity> markup <percent> [permanent]- Increase prices/dmentity shop <entity> reset [item]- Reset to base prices/dmentity shop <entity> restock- Refresh stock quantitiesUse Cases
Scenario 1: Haggling
Scenario 2: Reputation Reward
Scenario 3: War Economy
Commands
Persistence
Next Steps
After completing this issue, tackle:
Related Issues