Bundle vs Standalone Modifier Ratios
The level-up modifier pool uses a two-tier design pattern: common-rarity bundles combine multiple related stats at modest per-rank values, while uncommon/rare standalone variants extract a single stat from the bundle at 1.6x–2.67x the bundle’s per-rank rate. This page documents the ratio pattern, the worked examples in src/starship-survivors/data/modifiers.ts, and the design reasoning.
The pattern
A common-rarity bundle modifier rolls 2–3 related stats into a single pick. The bundle is generous because it’s offered frequently, but no single stat in the bundle grows fast. An uncommon/rare standalone variant drops the other stats entirely and pays the saved per-rank budget into the one stat it keeps, at a multiplier of roughly 1.6x to 2.67x the bundle’s contribution to that stat.
The standalone is gated behind a rarer tier, so players only see it once they’re already invested in a build direction. This converts level-up picks from “always-best generalist” into a real choice: take the bundle for breadth, or wait for the standalone to spike one axis.
Worked examples
Shield bundle → Overshield + Charge
The Shield bundle (uncommon, common pre-v3.26) gives +15% shieldMax, +7.5% shield regen rate, and -4.5% regen delay per rank.
- Overshield (uncommon): +25% shieldMax per rank — 1.67x the bundle’s shieldMax contribution, with no regen rate or delay.
- Charge (uncommon): +12% shield regen rate per rank — 1.6x the bundle’s regen rate, with no shieldMax or delay.
A player who eats big hits but rarely sits in regen-delay danger picks Overshield. A player who wants fast shield cycles between hits picks Charge. The Shield bundle remains the well-rounded default.
Health bundle → Bulwark + Vitality
The Health bundle (common) gives +15% hpMax, +0.75 flat damageReduction, and +0.5 HP/s regen per rank. The hpRegen line is described in-source as a “small primer” so HP picks still give some passive sustain.
- Bulwark (uncommon): +2.0 flat damageReduction per rank — 2.67x the bundle’s DR contribution, no hpMax or regen. L20 = +40 flat DR.
- Vitality (uncommon): +1.0 HP/s regen per rank — 2.0x the bundle’s regen contribution, no hpMax or DR. L20 = +20 HP/s, bounded by hpMax.
Bulwark is the dedicated armor build; Vitality is the dedicated sustained-healing build. Health remains the pool-and-armor generalist that anyone can take.
- Leech (rare): +0.5% lifesteal per rank. This is gated one tier deeper than Vitality and Bulwark because it’s not extracted from any bundle — it’s a third sustain pillar (“sustain via aggression”) that no common pick provides at all.
Speed bundle → Thrust
The Speed bundle (common) gives +30% thrust, -10% drag, and +30% maxSpeed per rank.
- Thrust (uncommon): +50% thrust per rank — 1.67x the bundle’s thrust contribution, with no drag or maxSpeed change.
A player who wants snappier acceleration without inflating the speed cap or fighting the bundle’s drag-reduction-vs-coast tradeoff picks Thrust. Thrust pairs strongly with Speed (cap-extender) for a top-tier mobility build.
Ratio table
| Standalone (uncommon/rare) | Stat extracted | Bundle per-rank | Standalone per-rank | Ratio |
|---|---|---|---|---|
| Overshield | shieldMax | +15% (Shield) | +25% | 1.67x |
| Charge | shieldRegenRate | +7.5% (Shield) | +12% | 1.6x |
| Bulwark | damageReduction | +0.75 (Health) | +2.0 | 2.67x |
| Vitality | hpRegen | +0.5 (Health) | +1.0 | 2.0x |
| Thrust | thrust | +30% (Speed) | +50% | 1.67x |
The 1.6x–2.67x band is wide on purpose. Stats that already feel small in the bundle (HP regen primer, flat DR) get the bigger multipliers; stats that already feel meaningful in the bundle (shieldMax, thrust at +30%) get the smaller multipliers. The standalone always feels like an obvious upgrade on its axis, but never so much that the bundle becomes a trap pick.
Why bundling exists
Three reasons the pool is structured this way rather than as a flat list of single-stat picks:
- Common picks must always feel useful. A common bundle that touches three stats is hard to mis-pick — at least one of its lines is helping you. A common single-stat pick can be a dud if your build doesn’t need it.
- Standalones reward investment. When the player has already picked Shield three times and the run is producing the right enemy mix, an Overshield offer feels like the build “leveling up” rather than another generic pick. The rarity gate ensures the standalone shows up after the player has signaled the build direction by accepting the bundle.
- Three builds per defense slot, not one. Without standalones the Shield bundle is the only shield path. With Overshield + Charge, the player has three meaningful shield trajectories: balanced (Shield), pool (Overshield), uptime (Charge). The same trick gives Health three defense trajectories (pool/armor balanced, pure armor, pure regen) and Speed two mobility trajectories (balanced, acceleration-focused).
The standalone’s rarity tier is always one step rarer than the bundle’s tier — common bundle → uncommon standalone (Health → Bulwark/Vitality, Speed → Thrust), uncommon bundle → uncommon standalone matching the bundle’s tier (Shield → Overshield/Charge). Leech is the exception: rare-tier, no parent bundle, gates a third build axis (lifesteal) that no common pick touches.
Related
data/modifiers.md— full per-rank values and modifier definitionsgameplay/concepts/rarity-rolls.md— how the rarity gate is rolled per level-up offergameplay/concepts/scaling-formulas.md— thek = -1flat-per-rank formula every modifier here uses