Files
ffxiv-datamining/research/quest_exp_reward.md
T
2017-09-28 11:36:27 +01:00

3.4 KiB

Quest experience points are generated using a small equation. Why this is done I am not sure as the values always seem static.

New findings as of 27 September 2017:

(BASE is also known as EXP_FACTOR in godbert)


LEVEL 1-49 use "Core Formula"
	BASE * PARAMGROW * (45 + (5 * LEVEL)) / 100

LEVEL 50-51 use "Core Formula" + "Secondary Formula with a 800 modifier  and a starting EXP of 800"
	CORE + ((800 * (BASE / 100)) + ((LEVEL-52) * (800 * (BASE/100))))

LEVEL 52-59 use "Core Formula" + "Secondary Formula with a 2000 modifier  and a starting EXP of 2000"
	CORE + ((2000 * (BASE / 100)) + ((LEVEL-52) * (2000 * (BASE/100))))

LEVEL 60-69 use "Core Formula" + "Secondary Formula with a 2000 modifier and a starting EXP of 37125"
	CORE + ((37125 * (BASE / 100)) + ((LEVEL-60) * (3375 * (BASE/100))))
	exp = (A * B * (45 + (5 * C)) / 100) + ((37125 * (A/100)) + ((C-60) * (3375 * (A/100))))

Note:

For Quests level 50 or above, an additional formula is done, findings:

https://docs.google.com/spreadsheets/d/15h13UbfqhxkD9BoQJkLvR66fnZRq6Wn6YxEMRXO9VE4/edit#gid=0

// pre level 50
(exp_factor * param_grow * (45 + 5 * quest_level)) / 100;

// If quest is 50 or above
(exp_factor * param_grow * (45 + 5 * quest_level)) / 100 + (additive * (base / 100))
  • The exp_factor value can be found in the Quest itself, offset: found here
  • The param_grow value is found in the ParamGrow file! offset: quest_exp_modifier found here
  • The quest_level is the level of the quest, found in the Quest itself, offset class_level_1 (main class) found here

If a quest is a bove 50, it has an additional 10k exp per 100th exp_factor value.

If the exp_factor is 100, you add 10000 exp, if its 200, you add 20000. etc.

So after the question, you would do:

exp = (exp_factor * quest_exp_modifier * (45 + 5 * class_level_1)) / 100;

exp = exp + (exp_factor / 100) * 10000;

Not fully confirmed this, but it has worked for a few 50+ quests I tested against.


Random notes

(BASE is also known as EXP_FACTOR in godbert)

LEVEL 1-49 use "Core Formula" BASE * PARAMGROW * (45 + (5 * LEVEL)) / 100

LEVEL 50-51 use "Core Formula" + "Secondary Formula with a 800 modifier and a starting EXP of 800" CORE + ((800 * (BASE / 100)) + ((LEVEL-52) * (800 * (BASE/100))))

LEVEL 52-59 use "Core Formula" + "Secondary Formula with a 2000 modifier and a starting EXP of 2000" CORE + ((2000 * (BASE / 100)) + ((LEVEL-52) * (2000 * (BASE/100))))

LEVEL 60-69 use "Core Formula" + "Secondary Formula with a 2000 modifier and a starting EXP of 37125" CORE + ((37125 * (BASE / 100)) + ((LEVEL-60) * (3375 * (BASE/100))))

Level 60+ example

exp: (BASE * PARAMGROW * (45 + (5 * LEVEL)) / 100) + ((37125 * (BASE / 100)) + ((LEVEL-60) * (3375 * (BASE/100))))

A = BASE B = PARAMGROW C = LEVEL

exp = (AB(45+(5C))/100)+((37125(A/100))+((C-60)(3375(A/100)))) sim = ()

Test: BASE = 200 PARAMGROW = 135 LEVEL = 63

(200 * 135 * (63 + 9) / 20) + ((-6615 * 200) + (135 * 200 * 63) / 4) = -800550

(200 * 135 * (45 + (5 * 63)) / 100) + ((37125 * (200 / 100)) + ((63-60) * (3375 * (200/100)))) = 191700 (correct)

Simplified?

(200 * 135 * (63 + 9) / 20) + ((-6615 * 200) + (135 * 200 * 63) / 4)