Stat allocation in most RPGs reduces to a simple question: given a fixed pool of points and a known value per point for each stat, where does every point go to maximise output? This optimiser answers that exactly.
How it works
Each stat has a weight — the effective output gained per point. With a budget of
N points and weights w₁, w₂, …, total output is maximised by a greedy rule:
while points remain:
pick the stat with the highest weight that is still below its cap
add 1 point to it
total output = Σ (points in stat × weight of stat)
Because output is linear in each stat, greedy allocation is provably optimal — no point can be moved to a higher-value stat without lowering the total. Caps let you stop investing once a stat hits a breakpoint, which redirects the remaining points to the next-best stat.
Example and tips
With 30 points and weights Critical 2.0, Determination 1.4, Direct Hit 1.2, and no caps, every point pours into Critical for an output of 60. Add a cap of 15 on Critical and the next 15 points flow to Determination, giving 30 + 21 = 51. Set caps at the breakpoints your job actually has — that is what turns this from a naive all-in-one-stat answer into a realistic split.