Open-World Narrative · Guides & deep dives

V5 Persistent World Economy — Sink/Faucet Analysis

Cadences cited from the feature spec where specced; magnitudes are planning assumptions adopted 2026-06-12, to be tuned against the §6 simulations and closed-beta telemetry.

6sections9 minread6tables

On this page

plan-id: v5-economy-sink-faucet.v1

Status: Draft for review — fills audit gap V1_V7_PLAN_SET_AUDIT_2026-06-12 §6.2 ("no sink/faucet economy modeling").

Owners: Economy Designer (faucet/sink budgets, inflation target), Live-Ops SRE Lead (monitoring + circuit-breaker plumbing), Trust & Safety Lead (exploit/RMT response), V5 Online Services Lead (ledger invariants in services).

Grounding: V5/V5_features.md §"Persistent World Economy" (per-cell economies; economy state is part of the cell save and deterministic given the world seed; coarse simulation while inactive, full resolution on return; AI Director and encounter eligibility read economy state), §"Workshop & Mods" (paid-mod marketplace = a real-money market adjacent to the soft economy), §"Anti-Cheat" (server-side signals, ML classifier, human-review flow), arch§"Launch Readiness" (public balance ledger live at launch).

Structural decision restated up front (planning assumption adopted 2026-06-12, and the single biggest RMT mitigation in this document): soft currency is per-cell, non-purchasable with real money, and non-transferable between players. There is no player-to-player currency or item trading at launch; the only real-money surface is the paid-mod marketplace, which pays creators in fiat, never in game currency. Any future trading feature must re-run §4 and §6 before it ships.


1. Faucets and Sinks per Cell#

Cadences cited from the feature spec where specced; magnitudes are planning assumptions adopted 2026-06-12, to be tuned against the §6 simulations and closed-beta telemetry. "Share" = target share of that cell's daily currency issuance/destruction for the median player, summing to 100% per column.

1.1 Urban#

Faucets Share Sinks Share
Mission/heist payouts (scaled to heist take) 45% Weapons, gear, ammo 25%
In-fiction stock-market gains (event/action-driven) 20% Stock-market losses (symmetric instrument) 20%
District activity rewards (crime-rate dynamics) 15% Safehouse purchase/upkeep 20%
Gang-territory control income 12% Bribes, fines, hospital/death fees 15%
Ambient loot/fencing 8% Vehicle purchase/customization (Tier 2 blueprint parts) 20%

1.2 Frontier#

Faucets Share Sinks Share
Bounty office payouts (refresh on schedule, scale to player's accumulated bounty) 40% Ammo, provisions, camp upkeep 30%
Cattle-drive and resource events (weather-driven) 25% Horses, tack, stabling 25%
Train/stagecoach work (world-clock schedules) 20% Train/stagecoach fares 10%
Hunting/pelt economy 15% Bounty payoffs on the player's own head 20%
Gear/weapon upgrades 15%

1.3 Hunter#

Faucets Share Sinks Share
Contract-board rewards (board posts every 36 in-game hours) 50% Alchemy ingredients (biome respawn-gated) 30%
Monster-part sales (respawns on 4-in-game-day cadence) 30% Gear crafting/repair 35%
Treasure/exploration finds 20% Fast travel, lodging, training 20%
Decoction/oil consumables 15%

1.4 Sci-Fi#

Faucets Share Sinks Share
Faction mission payouts (reputation-drift coupled) 35% Ship modules and upgrades 35%
Commodity-market gains (supply-event driven) 25% Commodity-market losses (symmetric) 25%
Mining yields (deplete/recover per body) 25% Fuel, repairs, docking fees 25%
Salvage/boarding income 15% Fines, insurance on ship loss 15%

The two market instruments (Urban stocks, Sci-Fi commodities) are designed net-neutral before drift: aggregate player gains are paid from aggregate player losses plus a bounded market-maker subsidy capped at 2% of cell daily issuance — they are volatility surfaces, not net faucets.

Mind Palace and the Bureau HQ hub deliberately have no currency faucets — the hub writes profile/cosmetics/XP/codex domains and blocks per-cell campaign writes (features§"Cross-Cell Online Persistent World"), which conveniently keeps the 64-player shared space out of the money supply entirely.

2. Target Inflation Rate#

  • Target: 0% to +3% per 90-day season (the Season 1 window 2027-03-01 → 2027-05-30) in the age-adjusted median wallet (§3), per cell.
  • A mild positive ceiling rather than strict zero: new-player onboarding and seasonal events legitimately grow per-capita wealth early; deflation is the worse failure (it punishes new players and pushes toward RMT).
  • Design budget behind the target: for the median player at steady state, sink/faucet ratio 0.92–1.00 measured over any rolling 14 days (i.e., sinks reclaim 92–100% of issuance). The §1 share tables are tuned in the §6 simulator until this holds.
  • Price-integrity guardrail: the in-fiction price level of the standard basket (each cell defines a 10-item basket: ammo, repair, fast travel, consumables, one mid-tier gear item) is fixed by design at launch; inflation therefore shows up in wallets, not prices — which is exactly why the wallet metric below is the primary signal.

3. Monitoring Metric — Age-Adjusted Median Wallet#

Raw median wallet conflates inflation with population mix (a marketing beat that brings in new players crashes the naive median). The primary metric corrects for account age:

text
Cohorts by account age: 0–7d, 8–30d, 31–90d, 91–180d, 181d+
W_c(t)   = median wallet of cohort c in a cell on day t
B_c      = baseline curve per cohort, frozen from closed beta + launch days 1–30
AAMW(t)  = Σ_c  w_c x ( W_c(t) / B_c )      with fixed weights w_c = (.05,.15,.30,.25,.25)
  • AAMW = 1.00 means wallets sit on the baseline curve; the §2 target is AAMW drift ≤ +3% per season, alert thresholds: warn at ±1.5% week-over-week, page (SEV-3) at ±4% week-over-week, SEV-2 at ±10%.
  • Computed daily per cell in ClickHouse from the economy event stream (econ.wallet_snapshot events, one per account per day-rollover); Grafana dashboard owned by the Economy Designer.
  • Secondary metrics: sink/faucet ratio (14-day rolling, target 0.92–1.00), wallet Gini coefficient (alert > 0.80 — concentration signals botting or exploit), top-100 wallet share, faucet-mix drift (a faucet whose share moves

    10 pts from the §1 table without a patch explaining it = exploit signal).

4. The Ledger Invariant (dupe detection)#

Every currency mutation is a signed ledger event with a faucet/sink reason code. The conservation invariant, reconciled per cell per day:

text
Δ(money supply) = Σ faucet events − Σ sink events     | tolerance 0.5%
  • Offline play makes this subtle: economy state is deterministic given the world seed, and offline sessions reconcile on reconnect (the spec's reconcile path). On reconnect, the client submits the offline event log; the server re-derives the wallet delta from the seed + event log and rejects a reconcile whose claimed delta exceeds the re-derived delta by >0.1% — determinism is the anti-tamper mechanism, not trust in the client.
  • A reconciliation breach >0.5% daily drift pages trust-safety-economy and triggers the economy-dupe-exploit runbook (V5/docs/planning/incident-response-and-oncall.md), including ledger-traced clawback rather than global rollback.

5. Exploit-Economics Model and Circuit Breakers#

5.1 Threat economics#

Threat Attacker economics Primary mitigations
Dupe (reconcile race, market round-trip, reward replay) Value = unbounded until detected; expected attacker yield = minted amount x P(cash-out before detection). With no P2P transfer there is no cash-out: minted currency is stuck on the minting account, so yield collapses to "one account gets rich until the ledger flags it" — detection (§4) within 24 h bounds blast radius to one day of faucet-cap-violating events Ledger invariant (§4), deterministic re-derivation on reconcile, faucet caps (§5.2), targeted clawback
Botting Bot revenue ≤ per-account daily faucet cap (§5.2). At cap C and account cost A (game price + new account friction — full-price title, no F2P accounts), bot ROI = C x days-undetected / A. With C ≈ 3x median daily earn and A = full game price on every platform, payback needs weeks of undetected botting and a way to monetize, which non-transferability removes except account-sale Faucet caps; anti-cheat behavioral ML (the existing telemetry classifier covers input-pattern anomalies); account-sale ToS enforcement
RMT pressure (paid marketplace adjacency) The marketplace anchors a real-dollar value for V5 content, so demand for "buy progression" exists. Supply-side, sellers can offer: account sales, boosting (piloted or carried), and stolen-card marketplace farming (buy paid mods with stolen cards → chargeback) No currency/item transfer (structural); boosting addressed by carry-detection signals (carried-account performance discontinuity z > 4 vs own history → review); stolen-card farming addressed by the 1.0% chargeback-rate gate + reserve mechanics in ugc-marketplace-compliance.md §6
Market manipulation (Urban stocks, Sci-Fi commodities) Single-actor pump attempts on event-driven prices; cost = position size, payoff = price impact x exit volume. Per-account position caps (≤5% of any instrument's float) bound payoff below cost for solo actors; collusion shows as correlated order timing Position caps, market circuit breakers (§5.2), order-timing correlation monitor (pairwise order-sync > 0.8 across ≥5 accounts → review)

5.2 Circuit breakers#

All breakers are server-side live-config, flippable without a client patch (via the live-service-calendar service's config channel), and every activation writes a public balance-ledger note (the transparency surface is already a launch gate):

  1. Per-account daily faucet caps — per cell, cap = μ + 4σ of the honest cohort's daily earnings (recomputed weekly from telemetry; initialized from §6 simulation, planning placeholder 3x median daily earn). Soft cap at 80% (diminishing returns banner), hard cap at 100% (faucets pay 0, sinks still work). Prestige/grinder players hitting hard caps >3 days/week is a tuning bug — reviewed weekly.
  2. Market halts — modeled on equity circuit breakers: a ±10% move in the Urban stock index or a Sci-Fi commodity within 1 in-game hour → 1-hour trading halt; ±20% within a day → market closes for the day and pages the Economy Designer for manual review before reopen.
  3. Board freezes — bounty office / contract board posting can be frozen per cell (used when a reward-replay exploit is suspected).
  4. Global faucet kill-switch — per-cell, all faucets pay 0 (sinks remain); the SEV-1 backstop in the dupe runbook. Activation > 2 h requires the Live-Ops Producer's sign-off because it is player-hostile.
  5. Reconcile quarantine — accounts whose offline reconcile fails §4 re-derivation keep local play but their economy writes quarantine until review (fail-loud to the player: "session flagged for review", never silent confiscation).

6. Simulation Validation Plan#

The economy is deterministic given the world seed (spec), which makes it simulable bit-exactly: the validation harness runs the shipping economy code headless (the same coarse-simulation path used while a cell is inactive), not a reimplementation. Owner: Economy Designer; harness in CI nightly once cells content-lock.

Agent population: 10,000 simulated players per run, archetype mix (planning assumption adopted 2026-06-12, recalibrated from closed-beta behavior): 5% grinder (4 h/day, faucet-optimal play), 70% average (1 h/day, mixed play), 25% casual (3 h/week, story-forward). 90 simulated days (one season). Each scenario runs across 25 seeds; pass = all seeds pass.

ID Scenario Pass criteria
EC-S1 Baseline season — archetype mix, no exploits AAMW drift within 0–3% per cell; sink/faucet ratio 0.92–1.00 every rolling 14d; wallet Gini < 0.75; no basket item unaffordable to the 25th-percentile casual by day 30 milestones
EC-S2 Grinder-heavy — 20% grinders (streamer-meta world) Faucet caps engage for ≤ the top 7% of agents; AAMW drift ≤ +5%; median-player progression time to mid-tier gear changes < 10% vs EC-S1
EC-S3 Faucet exploit injection — 1% of agents mint 50x daily cap via a synthetic dupe on day 10 Ledger invariant flags within 1 simulated day; with §5.2 breakers scripted on, season-end AAMW recovers to within 1% of EC-S1; clawback removes ≥95% of minted currency
EC-S4 Sink avoidance — agents refuse all optional sinks (no cosmetics, minimal upkeep) Mandatory-sink floor (repair/ammo/travel) alone keeps sink/faucet ≥ 0.80; AAMW drift ≤ +8% (degraded but not runaway) — if violated, mandatory-sink share in §1 is rebalanced
EC-S5 Market shock — scripted supply event drives a commodity −60% fundamental on day 45 Circuit breakers halt per §5.2; no agent archetype is wiped below 50% of baseline wealth by contagion; market reopens within 2 simulated days without a second halt
EC-S6 Offline-reconcile divergence — 30% of agents play 20% of hours offline, with 0.5% of them submitting tampered logs 100% of tampered reconciles rejected by re-derivation (§4); 0 false-positive rejections of honest offline logs; post-reconcile cell state matches the all-online control run bit-exactly for honest agents

Gate: EC-S1..S6 green is an entry condition for the closed beta's economy surfaces (beta-program.md), and rerun green on the launch candidate. A balance patch that changes any §1 share by >5 pts must rerun EC-S1/S4 before shipping (enforced as a checklist item in the balance-ledger publish flow).