This guide covers TODOS.phase-72.72.18.1.15: the economy documentation for
design principles, balancing methodology, and monitoring. It is the operating
map for the V2 economy surface; individual runtime docs remain the source of
truth for structs, helper APIs, and feature-specific validation.
Runtime Map#
CurrencyDefinition.V2owns stable currency ids, display metadata, premium flags, minor units, negative-balance rules, and hard caps.CurrencyLedger.V2records every currency mutation as an immutable audit trail with transaction ids, source ids, reasons, timestamps, and before/after balances.ServerCurrencyAuthority.V2is the only gameplay path that applies trusted currency mutations. Client-authored balance writes are rejected before ledger application.PremiumCurrencySystem.V2fulfills platform-verified premium currency receipts throughServerCurrencyAuthority.V2withSourceId = platform.iap.PriceTable.V2, vendor shops, auction house, and direct trade resolve item prices and player-to-player exchange while preserving currency ids and ledger auditability.V2LootTable,V2LootTableDebugger,V2EconomySimulation, andEconomyBalanceTuning.V2are the authoring and live-ops surfaces used before rewards, prices, and drop rates ship.@v2/economy-analytics,@v2/economy-analytics-dashboard,EconomyExploitDetection.V2, andServerEconomyValidation.V2provide the monitoring and enforcement loop after changes are live.
Design Principles#
- Keep the ledger server-authoritative. Economy state changes must flow through
ServerCurrencyAuthority.V2andCurrencyLedger.V2; direct client balance writes, local-only spend approvals, and untrusted source ids are not valid economy state. - Use stable ids and minor units. Currency ids, item ids, and price rows must be stable across patches, and all currency amounts must use minor units so rounding never changes a spend or grant.
- Put caps and premium rules in data.
CurrencyDefinition.V2hard caps, negative-balance permissions, and premium currency flags are the rules that fulfillment, pricing, and display surfaces consume. - Make every grant and sink attributable. A transaction needs a unique transaction id, source id, reason, timestamp, account id, and audit tag set before its audit trail is acceptable for review or rollback analysis.
- Separate earned, purchasable, and reputation economies. Soft currencies, premium currency, time-limited tokens, and reputation-style balances must have separate ids, sources, caps, and sink expectations.
- Treat monetization as explicit fulfillment. Real-money purchases require
store server verification, account binding, replay protection, refund
rejection, and
platform.iapledger grants. Gameplay rewards must not mimic store receipts. - Prefer deterministic reward decisions. Loot and reward seeds should be derived from stable server context so replaying the same table, context tags, pity counters, and grant ids produces explainable results.
- Balance sources and sinks before widening access. New earn rates, vendors, auction fees, repairs, crafting costs, rerolls, and event rewards need a source/sink hypothesis and monitoring threshold before they reach production.
Balancing Methodology#
- Define the currency role and player cohort. For each proposed change, record whether the target is soft currency, premium currency, token, or reputation; identify the level bands, player segments, and item families affected.
- Model the source/sink plan in
V2EconomySimulation. Include quest rewards, match payouts, vendor sell grants, live-event grants, repairs, crafting, auction fees, rerolls, and repeatable vendor spends. The simulation must show whether the economy is stable, inflating, or deflating over the target N-hour window. - Validate reward randomness with
V2LootTableDebugger. Use production-like context tags, deterministic seeds, pity counters, expected rates, and sample limits before a loot table or reward pool is allowed into a canary. - Validate prices with
PriceTable.V2. Buy prices, sell prices, dynamic multipliers, regional overrides, and quantity quotes must be checked againstCurrencyDefinition.V2currency ids and the expected sink/source ratio. - Preview live-ops edits through
EconomyBalanceTuning.V2. Drop rates, prices, and rewards must publish as remote config only when validation passes and the preview showsrequiresClientPatch: false. - Canary the smallest meaningful population. Release to a narrow segment, compare against baseline cohorts, and watch inflation, deflation, earn/spend rates, item price effectiveness, and support reports before a wider rollout.
- Document acceptance and rollback criteria before publish. Each balance change needs an owner, reason, target metric movement, abort threshold, rollback path, and the validation commands that passed.
Monitoring And Alerts#
@v2/economy-analyticstracks currency earn/spend rates, inflation tracking, and item price effectiveness.@v2/economy-analytics-dashboardtracks currency supply velocity, average player wealth by level, item price trends, and sink/source ratios.EconomyExploitDetection.V2flags impossible currency gains, item duplication, untrusted currency sources, and exploit velocity; ranked and tournament economy signals queue fair-play review and fail closed.ServerEconomyValidation.V2remains the online validation boundary for suspicious spend/grant requests before downstream monitoring sees them.- Daily launch checks review supply velocity, average player wealth by level, active-player wealth by cohort, top source ids, top sink ids, premium currency fulfillment, refund/replay rejection, and item price movement.
- Weekly balance review compares modeled source/sink expectations against live sink/source ratios, inflation and deflation trends, economy bot behavior, support incidents, and exploit evidence ids.
- Alerts should fire when total supply velocity, wealth concentration, item price trends, or earn/spend rates exceed the documented canary threshold, or when impossible gains, duplicate item instances, receipt replay, or untrusted source ids appear in production.
Live-Ops Change Workflow#
- Open a balance proposal with the player cohort, currency role, source/sink hypothesis, expected player impact, and rollback owner.
- Run simulation, loot-table debugging, price-table validation, and remote-config preview in staging.
- Record the accepted validation output, target metrics, and alert thresholds in the proposal before publish.
- Ship through canary remote config, never by client patch unless the owning feature contract explicitly requires one.
- Watch the economy dashboard for the first day, then include the change in the weekly balance review until metrics return to the normal range.
- Roll back immediately when ledger integrity, premium purchase fulfillment, fair-play evidence, or hard-cap enforcement is in doubt.
Validation Commands#
Run these checks when changing economy design guidance, balancing methodology, monitoring docs, or CI/Horde wiring:
bash
python3 V2/ue/Tools/check-v2-economy-documentation.py
python3 V2/ue/Tools/check-v2-economy-simulation.py
python3 V2/ue/Tools/check-v2-economy-balance-tuning.py
python3 V2/ue/Tools/check-v2-economy-exploit-detection.py
python3 V2/ue/Tools/check-v2-economy-analytics.py
python3 V2/ue/Tools/check-v2-economy-analytics-dashboard.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/Gameplay/Economy/EconomyDocumentation_V2_Contract.json
python3 -m json.tool V2/ue/Build/Horde/v2-buildgraph-job.json
python3 V2/tools/validate-v2-docs.py