Stepped Stats
What it is
A stepped stat is a weapon field whose value changes at discrete level breakpoints instead of growing along a continuous curve. The field is declared as an array of [minLevel, value] pairs, and only those listed levels mark a change — every level in between holds the previous value.
The resolution rule
The engine walks the array of pairs in order and tracks the value attached to the highest entry whose minLevel is less than or equal to the current weapon level. The first pair’s value is used as the starting point before the walk begins, so a level that falls below the lowest declared minLevel resolves to the first pair’s value.
When a fractional level is supplied — for example a partially-leveled stat between integer levels — the engine resolves the floor and ceiling separately, then picks the ceiling value with probability equal to the fractional remainder and the floor value otherwise. If floor and ceiling resolve to the same value, that value is returned directly.
Which fields use it
Every weapon field below is typed as a stepped stat. The “Used by” column lists the weapons that declare values for the field; fields with no current usage are typed for future weapons.
| Field | What it controls | Used by |
|---|---|---|
projectileCount | Number of projectiles fired per shot | Burst, Missile, Shotgun |
shellCount | Number of shells produced per fire event for arc-mortar and artillery weapons | Cannon, Mortar, plus two legendaries |
chainCount | Number of additional targets a chain jump can hit | Lightning |
burstPattern | Number of rounds in a burst-fire cadence | Revolver |
seekerCount | Number of seeker submunitions spawned | Revolver |
starCount | Stars per cast for the orbit-ring legendary | Star Halo |
emberCount | Embers produced per fire event for flame weapons | Defy, Flame |
bladeCount | Orbiting blades active around the ship | Fire Ring, Sweep |
beamDecayExplosions | Cascade explosions spawned along a decaying beam path | Railstorm |
pelletCount | Pellets fired by shotgun-family weapons | (typed only, no current usage) |
maxActive | Maximum number of simultaneously-active instances of the weapon’s projectile | (typed only, no current usage) |
Interaction with scaling curves
Stepped stats and curve-based stats coexist on the same weapon. A field is either one or the other — never both — because the two systems are evaluated differently. A field declared as [minLevel, value] pairs is resolved by the stepped lookup. A field declared with a base and scaling number is resolved by the linear formula and remapped through the weapon’s scaling curve. Stepped stats ignore the weapon’s scalingCurve field; their growth shape is fully defined by the breakpoints in the array.