Xptable.2da - sophisticated maths or what?

Recently I had a look in to the file. If I understand all the columns and rows (there are many, really many) correctly, then a PC at level 1, who slays a monster with a Challenge Ratio (CR) of 7 will receive 300 XP.
That’s much.
If the PC is at Level 2 and slays the very same creature, he/she’ll get 400 XP
That’s even better.
The best result is given at Level 3, there are no less than 500 XP awarded.

Assuming that advancing in levels will make the fight easier, I don’t quite understand, why the reward is raised instead of lowered. But there is more than one example, with this results in the table.

Can somebody please explain this? Maybe I’m completely wrong?

1 Like

There is a wiki article about this. Séems to say the opposite, but I haven’t looked into it.

Yupp, I know this article, but it does not explain the phenomen mentioned above; why ascending values appear in the table where decending values are expected.

Perhaps there’s a cap for low level chars so they don’t gain XP too fast.

Sorry, but I don’t think so. There are more occourences of this phenomen (a higher value follows a lower value within a column).

I was going to suggest that xpbaseconst.2da has something to do with it, but it doesn’t seem to have any effect. I agree however that it makes no sense for values in columns to not go down monotonically. Could be yet another bug nobody cared to fix.

But the file can be used to fine-tune XP gain, i.e. to prevent PC above level 1 from getting anything from attacking CR0 (or perhaps anything weaker).

Thanks for answering.

Maybe xpbaseconst.2da had some effect in the past, but is now outdated. I can’t note any influence of this file by myself.

The effect is only below level 10 and cr20. Meanwhile I believe, that it’s an old bioware glich “nobody cared to fix”.

However, an XP-finetuning is always a task of a mod-builder, no matter how the maths beyond the XP might be. And weird numbers are not helpful with this task.

Yeah, you can tell they couldn’t be bothered to think of a system for CR21+. Instead they just spammed 600. Perhaps some smart formula could be used to make a better table. Chart for C20 looks sort of like a Gaussian…


Apparently the game doesn’t care about class and race modifiers to XP and just feeds values straight from xptable.2da. So, to fix the vanilla irregularities, here’s my take on this table.

By fitting a simple non-linear model, you shall now always gain more XP at lower levels when slaying enemy at the same CR, for all levels in (1…40) and all CR in (0…40). Minimum XP is 1 (to keep log info), maximum is 1000 (when level 1 slays CR40).

There are two versions of the table: (1) with integer values and (2) rounded to nearest multiple of 5. I recommend the rounded version. I made some basic tests and it works fine. No idea how it will behave in a real module.

nwsh_xptable_not_rounded.zip (2.7 KB)
nwsh_xptable_rounded_to5.zip (1.7 KB)

File license: CC-BY-SA 4.0

1 Like