Is it possible to change how the XP curve is graded by editing the script? I'd like a little more levels for the XP I've got currently but the default rate you've put in is a bit too lenient for my tastes.
Ofcourse. I suggest fiddling with the multipliers, because that is where the magic happens:
float mult1 = (1f + (float)level) * 0.5f * (float)level * 1f;
float mult2 = (1f + (float)p1level) * 0.5f * (float)p1level * 0.25f;
float mult3 = (1f + (float)p2level) * 0.4f * (float)p2level * 0.15f;
float mult4 = (1f + (float)p3level) * 0.3f * (float)p3level * 0.1f;
The definitions of mult3 and mult4 are what you are after (and also what I changed / added) and in particular the values 0.4, 0.15, 0.3 and 0.1. This is all *very* sensitive to changes, as each of the previous multipliers also apply to those in the next 'bracket'. So a tiny change of i.e. 0.005 already has a noticeable effect in the higher levels. Try adjusting those a bit and see what works
I've thought about making a config option to allow easy customization of the curves, but I ultimately I decided to go with something worked for me and not over-complicate it.