Spreading stat points by feel usually leaves effectiveness on the table. This tool runs a real greedy marginal-value optimization with diminishing returns: it hands each point to the stat that currently buys the most weighted effectiveness, which naturally balances your build instead of over-stacking a single stat.
How it works
Each stat has a weight and a per-point gain, and its marginal value falls as you invest:
marginalValue(stat) = weight × perPointGain / (1 + pointsAllocated)
The optimizer loops once per available point, gives that point to the stat with the
highest current marginal value, then recomputes. The total score is the sum of each
stat’s weight × perPointGain × points.
Example and tips
With 20 points across an offense stat (weight 3, gain 2) and a defense stat (weight 1, gain 2), the optimizer front-loads offense but starts feeding defense once offense’s marginal value drops below it, landing on a split like 15 / 5. Tune the weights to your playstyle: a glass-cannon build raises the offense weight, a survival build raises defense.