Distributing stat points by feel usually leaves a build slightly off, and the arithmetic of splitting whole points by priority is fiddly. This optimizer turns your playstyle weights into an exact, whole-number allocation that always sums to your available points.
How it works
Each stat’s share is proportional to its weight, then whole-number rounding fixes the totals:
share(s) = points × weight(s) / Σ weights
floor each share, then distribute leftover = points − Σ floors
leftovers go to the stats with the largest fractional remainders
This is the largest-remainder method, the same technique used to apportion seats by vote share, and it guarantees the assigned points add up exactly to what you have.
Example and tips
With 100 points and weights of Strength 6, Agility 3, Intelligence 1, the totals are 60, 30, and 10. If the proportions produce fractions, the leftover points go to whichever stats were closest to rounding up. Set a stat’s weight to zero to exclude it entirely, and treat the result as a baseline — if your build has a known breakpoint, shift a few points to land exactly on it.