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 atARTIFACT_KPM_LOW.ARTIFACT_DROP_MAX_SEC— Slowest drop interval (360 s), reached atARTIFACT_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_HIGHdefine an interpolation domain;DROP_MIN_SEC/DROP_MAX_SECdefine 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
tisBASE + 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.