Home Economy & Markets

Economy & Markets


1. Summary

The economy is open: any tradable item instance can be sold, bought, bartered, or listed — no artificial trade restrictions.

No interchangeable end-game gear — markets trade specific instances (weapons, armor, accessories) and bulk material lots (18). Two players never converge on the same loadout.

Two complementary market layers in the global world:

  1. Broker markets — per town/region with dynamic supply/demand and cross-region price quotes
  2. Player commercecrafted market stalls (player-set prices) and direct trades

Players arbitrage between regions: list remotely at premiums, travel for better broker quotes, undercut stalls.

Control plane holds authoritative ledgers, price history, and listing state.


2. Design principles

Principle Meaning
No trade limits Player freedom; audit for exploits not restriction
Supply & demand Broker prices move on buys/sells and scarcity
Location matters Different regions → different broker prices → travel incentive
Player pricing Stalls and broker premiums are player-chosen
Unique instances Equipment, tools, meals = one instance_id each; no BiS template chase (18)
Player food economy Crafted meals — unique instances; player tier beats settlement rations (15)
Settlement shops NPC workers craft basics onto shelves — stock depletes (18)
Schematic blueprints Player-authored building YAML — validated, tradeable (20)
Physical + ledger Coins have weight; bank for transfers (08)

3. Trade modes

Mode Counterparty Price set by
Direct trade Player ↔ player Mutual agreement (window)
Player stall Player → buyer Stall owner
Worker broker sell Employer’s worker → broker Job config (13)
Broker sell Player → broker → buyer Area average ± player premium
Broker buy Seller → broker → player Area bid + premium
Bank transfer Account ↔ account N/A (currency only)

All item moves = central-audited transactions.


4. Broker markets

4.1 Per-region brokers

Each town or region hosts broker market instances:

BrokerMarket {
  region_id,
  broker_id,
  material_books: Map<ItemTemplateId, CommodityBook>,  // ore, herbs — bulk
  instance_listings: Vec<InstanceListing>,             // weapons, armor, tools
}

CommodityBook {
  last_price,           // clearing price
  bid, ask,             // current spread
  volume_24h,
  stock_depth,          // broker inventory from player listings
  scarcity_index,       // derived
}

4.2 Price discovery (supply & demand)

When buys exhaust listed stock:

  • last_price trends up (auction-like pressure)
    When sells flood the market:

  • last_price trends down

Example: No iron ore listings; last trade was 3 silver. New listing at +10% premium (3.3 silver). If buyers take it, index rises; broker quotes shift.

price_delta = f(buy_pressure, sell_pressure, scarcity, time_decay)
new_price = clamp(last_price + delta, floor, ceiling)

Parameters per commodity in ruleset config — not hardcoded.

4.3 Player listings on broker

Players list items for sale at broker without standing there:

Field Meaning
item_instance Escrowed to broker (central custody)
premium_pct ± vs current area average (e.g. +10%, −5%)
region_id Which broker market
remote_listing Listed in region B while player in region A (same world)

Remote listing: allowed at higher fees / minimum premium — reflects logistics and risk (08 bank transfers for payment; item delivered via broker pickup in that Area).

4.4 Buying from broker

  • Instant buy if stock at ask price
  • Partial fills if multiple listings
  • Coins: physical at pickup or debit bank + fee

4.5 Selling to broker

  • Instant sell at broker bid (below ask) — quick dump
  • Listed sell at premium/discount — waits for buyer

5. Cross-region price quotes

Brokers on the magical market network publish read-only quotes across the world:

flatland market quote iron_ore
  Region Northhold:  3.0 silver (12 listed)
  Region Deepport:   4.8 silver (2 listed)  ← scarce
  Region Capital:    2.6 silver (400 listed)

Players travel to buy cheap or haul goods to sell where scarce.

5.1 Food & finished goods (decided)

Crafted meals and equipment list as specific instances on stalls and broker (18). Price discovery uses recent sales of similar templates — buyers inspect rolls and enchants before purchase.

Channel What's sold Pricing
Player stalls Unique instances Owner-set — inspect instance_id
Broker Material lots (template book) + instance listings Supply/demand / owner premium
Settlement shop Worker-crafted basics — finite shelf stock (18) Fixed or market-tuned; empty when sold out

Enchanted items — high-margin player craft (17); each listing is one permanent instance until destroyed.

Quote API:

  • Control plane aggregates per region commodity books
  • Stale TTL (e.g. 5–15 min game time)
  • Cartography helps players find markets (06)

6. Player market stalls

6.1 Stall as crafted item

Market stall kit — crafted product (09):

  • Placed in allowed zones (town market square, player lease plot)
  • Opens stall container + UI for owner
  • Owner sets per-item price in coin (any amount — no price caps)

6.2 Buyer experience

  • Browse nearby stalls (AOI + market district)
  • See item, price, inspect stats
  • Purchase → coins to stall escrow → owner collects (physical or bank)

6.3 vs broker

Stall Broker
Price Owner fixed Market-driven + premium
Presence Owner may AFK Always on (escrow)
Fee Plot rent / tax Listing + remote fee
Best for Rare instances, bundles Materials, instance arbitrage

7. Remote listings & arbitrage

Remote broker listing (player in region A, lists in region B):

  • Minimum premium config (e.g. ≥ +5% over B's average)
  • Higher listing fee
  • Buyer picks up in B; seller paid via bank transfer minus fees

Encourages merchant gameplay across the global world.


8. Currency integration

Action Settlement
Stall purchase Buyer pays physical coins or bank debit (buyer choice + fees)
Broker trade Escrow coins or bank; branch withdraw for physical
Direct trade Physical items + coins in trade window
Remote withdraw Not allowed — coins physical only at bank branch (08)

9. Central authority & anti-cheat

Responsibility Owner
Escrow items & coins during listings Central
Price history & commodity indices Central
Trade window atomic swap Central
Duplicate item prevention Central mint/burn
Area broker UI Region worker (read cache)

Region hosts cannot fake sales or mint gold.


10. TUI / agent

  • flatland market quote <item> [--all-regions]
  • flatland market list <item> --region <id> --premium +10
  • flatland market buy <item> --qty 5 --area w
  • flatland stall open / flatland stall set-price <slot> <price>
  • flatland trade offer <player>

11. Phasing

Phase Scope
4 Direct player trade window
5 Broker instant buy/sell + area price per commodity
6 Player listings ± premium; price movement
7 Cross-region quotes; remote listing fees
8 Crafted market stalls; plot rental

12. Open questions

Resolved (2026-07-06):

# Decision
E1 Per-commodity escrow cap on brokers
E2 Regional sales tax (gold sink)
E3 No player/guild-run brokers
E4 Commodity futures — not in scope

13. Design feedback

Open economy + broker indices gives emergence in a single world. Cross-region quotes tie into cartography and travel — knowing where to sell matters (01, 06).

Supply/demand on brokers should move prices gradually with configurable elasticity to prevent single-transaction manipulation while still rewarding scarcity plays (no iron → +10% listing clears → index rises).


Crafting graph & soul-bind scrolls: 09-crafting-and-recipes.html