PURPOSE

Tuning constants for the KPM-based artifact drop system. Defines the kills-per-minute thresholds that map to drop-rate extremes, the min/max interval bounds, the initial grace window, the rolling KPM measurement window, and the per-tier ramp on drop chance. Pure data module — no runtime behavior.

OWNS

  • ARTIFACT_KPM_LOW — KPM floor (50). At or below this, drop rate sits at its maximum.
  • ARTIFACT_KPM_HIGH — KPM ceiling (200). At or above this, drop rate sits at its minimum.
  • ARTIFACT_DROP_MIN_SEC — Fastest drop interval (60 s), reached at ARTIFACT_KPM_LOW.
  • ARTIFACT_DROP_MAX_SEC — Slowest drop interval (360 s), reached at ARTIFACT_KPM_HIGH.
  • ARTIFACT_DROP_GRACE_SEC — Seconds at run start during which no artifact may drop (30 s).
  • ARTIFACT_KPM_WINDOW_SEC — Rolling history window used to compute KPM (60 s).
  • ARTIFACT_TIER_RAMP_BASE — Drop-chance multiplier at tier 1 (0.3).
  • ARTIFACT_TIER_RAMP_PER_LEVEL — Additive drop-chance gain per tier level (+0.2).

READS FROM

Nothing. No imports, no dependencies.

PUSHES TO

Nothing directly. Constants are consumed by the artifact drop scheduler / KPM tracker elsewhere in the engine.

DOES NOT

  • Track kills, compute KPM, or interpolate intervals.
  • Decide whether an artifact actually drops on a given tick.
  • Select which artifact rolls (no loot tables, no rarity logic).
  • Read run state, player stats, tier, or RNG.
  • Export functions, types, or default exports — only named numeric constants.

Signals

None. This file is data-only with no side effects, observers, or events.

Entry points

Imported by name from sibling engine modules that own the artifact drop scheduler and the KPM history buffer. No barrel export from this file itself.

Pattern notes

  • Strict “content in data, behavior in code” split: every tuning number lives here as a named constant so no magic values appear in the scheduling code.
  • Paired-bound idiom: KPM_LOW / KPM_HIGH define an interpolation domain; DROP_MIN_SEC / DROP_MAX_SEC define the matching range. Lower KPM maps to the shorter (faster) interval — drops accelerate for struggling players.
  • Tier ramp is linear: effective drop chance at tier t is BASE + PER_LEVEL * (t - 1).
  • Grace window is absolute seconds from run start, independent of KPM state.
  • File name prefixed with underscore, matching the engine convention for low-level config fragments that are aggregated by a parent config module.