# Match (multiplayer race) mode configuration # Add these to src/.env and src/.env.example as needed. # Enable match mode (free race queues and, if configured, paid race economies) MATCH_ENABLED=false # Max players per race (2-32) MATCH_MAX_PLAYERS=4 # Server tick interval in milliseconds (default 250ms = 4 Hz) MATCH_TICK_MS=250 # Server-selected ruleset. Built-ins: race, last-alive, score-attack, coop-escape. # Unknown or solo-only values fail closed to race. MATCH_RULESET_ID=race # Paid entrant freezes target H+2 and activate only after the target plus one confirmation. # Production requires explicit safe integers from 2 through 100 for both settings. MATCH_PAID_ENTROPY_DELAY_BLOCKS=2 MATCH_PAID_ENTROPY_CONFIRMATIONS=2 # Minimum duration in ms before a race can be ended by the next block (default 20s) MATCH_MIN_DURATION_MS=20000 # Hard ceiling in ms after which a race is force-ended (default 4 minutes) MATCH_HARD_CEILING_MS=240000 # Cost in credits to enter a prestige-credit race (default 1) MATCH_CREDITS_COST=1 # Enable crypto race-entry ticket economy (requires a paid instance) MATCH_CRYPTO_RACE_ENABLED=false # Independently stop new on-chain payout matches without affecting accepted liabilities. MATCH_PAYOUTS_ENABLED=false # Required outer winner-payout cap (atomic units) when crypto payouts are enabled. MATCH_PAYOUT_MAX=50000000000 # Explicit crypto economics (required for production preflight when enabled). MATCH_ENTRY_FEE_ATOMIC=5000000000 MATCH_HOUSE_FEE_PERCENT=5 # Also add a separately priced funded ticket product to COSMETIC_PRODUCTS. Its per-ticket # backing must equal MATCH_ENTRY_FEE_ATOMIC and its price must cover the full grant. # COSMETIC_PRODUCTS='[{"id":"race_2","label":"Two race entries","price":"10000000000","grants":{"race_entries":2,"race_entry_value_atomic":"5000000000"}}]'