Scaling Curves
Scaling curves limit late-game stat inflation. When an attribute exceeds a threshold, only the exceeding part is reduced by a curve. This keeps progression valuable while preventing equipment, gems, strengthening, and sets from breaking combat balance.
Recommended use cases
Apply scaling curves first to:
- Main damage attributes:
physical_attack,projectile_attack,spell_attack. - Defense attributes:
physical_defense,projectile_defense,spell_defense. - Probability attributes such as critical chance, dodge chance, and lifesteal chance.
- Resource caps such as health and mana.
- Penetration, damage reduction, cooldown reduction, or other attributes near hard caps.
Configuration
Scaling curves are configured in config.yml:
yaml
scaling_curves:
physical_attack_cap:
attribute: "physical_attack"
threshold: 500
curve_type: "logarithmic"
factor: 100| Field | Description |
|---|---|
attribute | Attribute id affected by this rule. |
threshold | Value where diminishing returns begin. |
curve_type | logarithmic, sqrt, or piecewise_linear. |
factor | Curve factor; exact meaning depends on curve type. |
Final value can be understood as:
text
final = threshold + reduced_excessCurve types
logarithmic
Good for main damage and defense attributes. Growth continues after the threshold but slows down smoothly.
sqrt
Stronger reduction. Suitable for strict control of defense, mitigation, or resource caps.
piecewise_linear
Keeps a fixed ratio of the excess part. Useful for probability attributes or rules that should be easy to reason about.
yaml
scaling_curves:
crit_rate_cap:
attribute: "physical_crit_rate"
threshold: 80
curve_type: "piecewise_linear"
factor: 0.3If the raw value is 100, the final value is about 80 + (20 * 0.3) = 86.
Tuning notes
- Set thresholds near reasonable endgame values, not beginner values.
- Avoid multiple curve rules for the same attribute unless you have a clear reason.
- Test low, mid, endgame, and extreme-stacked characters after changing curves.
- If growth feels too weak, increase
thresholdorfactor; if too strong, lower them or use a stronger curve.