A finite pool of attribute points is one of the most consequential choices in an RPG build, and spreading them by feel almost always leaves value on the table. This optimizer turns your role into concrete weights and apportions every point so the split matches your playstyle exactly, with no points wasted to rounding.
How it works
Each role maps to a weight for the three core stats. The allocation uses the largest-remainder (Hamilton) method:
remaining = pool − sum(floors)
ideal_i = remaining × weight_i / Σ weight
base_i = floor(ideal_i)
leftover = remaining − Σ base_i
Leftover points are handed out one at a time to the stats with the largest fractional remainders, then the reserved floors are added back. This guarantees the final integers sum to exactly your pool.
Example and tips
With 100 points, a Carry weighting of 0.25 / 0.60 / 0.15, and a floor of 5 on each stat, the 85 free points split to roughly 21 Strength, 51 Agility and 13 Intelligence — plus the floors — landing on 26 / 56 / 18. Raise a floor when a build needs a survivability baseline; lower it to push harder into your primary attribute. Apply item and talent bonuses on top of the base split, not inside it.