Point Buy Stat Calculator
Point buy replaces rolling with a budget: every score above the minimum costs points, and the cost rises steeply at the top so nobody simply maxes everything. This spends a budget across as many scores as you like, then re-costs the finished array against the table and confirms that nothing else could still have been bought — the two ways an array can quietly be wrong.
What this generator does
Starts every score at the minimum and spends the budget one raise at a time, choosing at random among the raises still affordable. It then re-costs the finished array and checks that no further raise was within budget.
How to use this tool
- Set the point budget and how many scores to buy.
- Generate, and read the array.
- Check the spend against the budget.
- Note any points left over — the top of the table is expensive.
Understanding the controls
- Points to spend
- The budget. Twenty-seven is the familiar figure in several systems, and the shape of the array changes noticeably above and below it.
- How many scores
- Six for most character sheets. Fewer scores means more points each and a much sharper array.
- Seed
- Reproduces the same array, which is useful for a worked example.
Common use cases
- Generating a valid point-buy array for a character
- Checking whether an array actually fits the budget
- Seeing how the escalating cost shapes the spread
- Producing example arrays for a session or a rules explanation
- Comparing what different budgets can buy
How this generator works
The cost table charges one point per step at the bottom and two per step at the top, which is what stops an array being all maximums and all minimums. Raises are bought one at a time from whichever scores can still afford one, chosen at random so the arrays vary. Before display the array is re-costed from the table and compared against the reported spend, the spend is confirmed within budget, and every score is checked to see whether one more raise was affordable — if it was, the budget was not spent as far as it could go.
Randomness and fairness
Uses your browser's cryptographic random source to choose which score to raise. A seed switches to a reproducible sequence, which is deterministic and not cryptographically secure.
For how randomness is produced across the whole site, see how Generate Random works.
Limitations and good to know
- One cost table, the common eight-to-fifteen one; systems with different tables need different figures.
- Racial or species adjustments are applied after point buy in most systems and are not included here.
- The array is valid rather than optimal — a character usually wants points concentrated, and this spreads them at random.
- Points left over cannot always be spent, which is a feature of an escalating table rather than a fault.
Privacy and your data
The array is generated in your browser and your budget is never transmitted, stored or included in analytics.
Related generators
- Character Trait GeneratorA personality trait to layer onto a fictional character for more depth.
- Dice Pool Success CalculatorThe exact odds of counting successes in a pool of dice, as a full distribution that sums to one and matches counting every outcome.
- Dice Probability CalculatorThe exact distribution of any dice total — every outcome counted, not simulated, with the odds of rolling at least a given number.
- Multiple Custom Dice RollerRoll a mixed pool of differently-sided dice at once, like 2d6 + 1d8, plus a modifier.