On Progressions and Deep Maths


Rules Questions

Dark Archive

First off, if this is out of place, please move it. I think it's relevant as it's definitely a rules question, if not an in game one.

I'm in the process of teaching myself a few million things about programming (Ruby, GUI design, how to use GIT properly, MVC, decent database design, testing methodologies and how to actually write an app in a sensible manor) by writing set of Dm tools. Now in order to have the DM tool that tracks PCs stats across a combat, it turns out you need to know a hell of a lot that is level dependant. Mainly, BAB, and saves.

Now, I don't just want to create tables in the DB for each of the classes and have their BAB, Fort,Ref,Will etc stored for each level. It takes too long, and just seems wrong.

I looked at the BAB and managed to work out that they work like:

BAB = a - floor(ab)

where floor(x) returns the lowest integer that is <= x, a = the class level you are looking at and b = 0 for the fighter progression, 0.5 for the sorc/wiz and 0.25 for everyone else.

This is good, I now have a table that holds a name for the progression, and a small number in my DB.

I want to do the same thing for the save progressions, of which I have worked out there are two, but I can't for the life of me work out a formula that would create the pattern. I have a feeling it will have a quadratic term in it...but that's as far as I have gotten....

Please help!


Nevynxxx wrote:


I want to do the same thing for the save progressions, of which I have worked out there are two, but I can't for the life of me work out a formula that would create the pattern. I have a feeling it will have a quadratic term in it...but that's as far as I have gotten....

Please help!

I do not know if it is any help:

Good saves = 2 + (Character level/2 [rounded down])
Bad saves = (Character level/3 [rounded down])


The way I use it in my excel character sheets:

good_bab: floor(level) (or level, really...)
average_bab: floor(level x 0.75)
poor_bab: floor(level x 0.5)

good_save: 2 + floor(level / 2)
poor_save: 0 + floor(level / 3)

You may also find it in the Unearthed Arcana, under "fractional saves and bab progression", page 73 (a houserule that I use)

edit: the saving throw progression for the pathfinder prestige classes has somewhat diverted from this pattern; it should be:

good_save: floor(0.5 + level/2)
poor_save: floor(0.5 + level/3)

The Exchange

Nevynxxx wrote:


Now, I don't just want to create tables in the DB for each of the classes and have their BAB, Fort,Ref,Will etc stored for each level. It takes too long, and just seems wrong.

It's not wrong.

The progression is elegant but stays useful just as long as nobody releases anything that isn't based upon on it - then you are back to using tables. A minor additional point is that a table lookup is quick while maths is less quick - less of an issue these days.

You can use a program to generate the tables and then suck them into the database for the classes that do follow the rules.

Never over-think your programming: "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." --Brian Kernighan

Good luck with your project and with your goal of levelling up in software engineer :)


brock wrote:

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."

This is so going into my Sig...


brock wrote:


Never over-think your programming: "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." --Brian Kernighan

Good luck with your project and with your goal of levelling up in software engineer :)

If he doesnt take on programs above his challenge rating he'll never level up enough to take on the pointy haired boss.

Dark Archive

Cpt. Caboodle wrote:
Good stuff

Thanks, and even simplified my original formula....even better!

brock wrote:

It's not wrong.

The progression is elegant but stays useful just as long as nobody releases anything that isn't based upon on it - then you are back to using tables. A minor additional point is that a table lookup is quick while maths is less quick - less of an issue these days.

You can use a program to generate the tables and then suck them into the database for the classes that do follow the rules.

Never over-think your programming: "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." --Brian Kernighan

Good luck with your project and with your goal of levelling up in software engineer :)

Hmmm, I was thinking I would need one table per class, but I guess there are ways around that.

I am already generating a lot of the DB (most of it really) and storing in CSV files, which get migrated into the database, could always do the same but generate some numbers as I go for the class levels table....hmmm...

Community / Forums / Pathfinder / Pathfinder First Edition / Rules Questions / On Progressions and Deep Maths All Messageboards

Want to post a reply? Sign in.