Stats Through Kills: How XP works?

First – how much XP do you need for your first point and how does it increase? just “+n Xp” or is it multiplied?
And second – how does game calculate the amount of xp you get for each kill?
Is there any way to modify these parameters?

300 and yes, it increases, based on the code at the time, like this (full list):

All Levels
// based on  D&D 5e level progression
static const std::array<int, 20> xp_cutoffs = { {
        300, 900, 2700, 6500, 14000,
        23000, 34000, 48000, 64000, 85000,
        100000, 120000, 140000, 165000, 195000,
        225000, 265000, 305000, 355000, 405000
    }
};

This also means that there’s a max Level (which is 20), and you won’t be able to get more stat points after that this way.

Well, yes and no. There is no “easy” way to edit them as in just changing it in a JSON file, as these are hardcoded.
You can however either download the full game’s source code from GitHub, change the values in the file and compile it yourself or use a runtime editor to find and change these values around for your current game session.

It uses each monster’s difficulty level, or - in case of NPCs - their size value.
Since the monster’s difficulty value is set in JSON, you can change this around if you want, in- or decreasing the speed at which you gain XP.
Please note that - from what I see in the code - changes also apply to already killed monsters.

1 Like

Hmm, i see. So, i can change max level, right? Can you explain a bit more how to do this?

By which method? I’ve listed two ways…
I assume you want to compile the game yourself? In that case, you might want to take a look at how you can compile it on your system.
After you could compile it successfully (basically before that, but I’d suggest to compile it first, as this is usually the most complicated step to get running), you can start to make changes to the source code locally on your computer.

As for changing the max level, there are different ways again, depending on what you want to do.
I’m not good at explaining stuff simple, but I’ll give it my best…

If you just want to increase the limit of levels, edit the std::array<int, 20> (from the xp_cutoffs varibale linked above) and change the 20 to the highest level you want to be able to reach. After that, you’ll have to add numbers to the list, so that the count of the numbers match the new limit (for example, if you set your new limit to 40, you’ll have to add 20 more numbers to the list). You can choose whatever values you want and changes existing ones too.

If you want to get “no level limit”, you could rewrite everything where xp_cutoffs variable is used and replace it with a function of your own that returns a multiplied value, so there will be no max level.

2 Likes

Okay, big thanks for the help. I’ll try to compile it and report how it goes!

1 Like