Thanks for the answer, I had already understood points 1 2 3Hi, I will do my best to explain what you are experiencing and the key points of the base game system:
The XP multiplier system is designed to balance gameplay and provide subtle advantages for different character builds.
1. Base Multiplier Calculation:
The base multiplier uses a logarithmic function based on total stats:
This ensures that as your total stats increase, the multiplier changes at a decreasing rate, preventing exponential growth.Code:(set: _score_multiplier_temp to _a + _b * (log: $total_stats - _c))
2. Level Cap Adjustment:
The 3% adjustment per unobtainable stat point compensates for self-imposed limitations:
This is multiplicative, not additive. In your first screenshot, with a total of 11 stats and a max of 10 per stat, you have 19 unobtainable points (30 - 11). This results in a 57% increase (19 * 3%), explaining the 1.26x multiplier.Code:(set: _level_cap_adjustment to $stats_unobtainable * 0.03) (set: $score_multiplier to (round: (100 * $score_multiplier * (1 + _level_cap_adjustment))) / 100)
3. Hidden Achievements Bonus:
This bonus is applied separately and additively:
Code:(set:_hidden_ach_bonus to $hidden_achievement_count * 0.03) (set:$score_multiplier to $score_multiplier + _hidden_ach_bonus)
This bonus is applied after the level cap adjustment, which is why you might not see it directly reflected in the numbers you mentioned.
The reason your modification (changing 0.03 to 1/3 - 3% to 33%) resulted in a lower multiplier is that it drastically increased the level cap adjustment, which interacts with the logarithmic base calculation
The system aims to reward self-imposed limitations while still allowing players free to choose various stat setups. If you find it too grindy, modding is definitely encouraged, as you know it is very easy to do. All I can do is explain why I have set it up this way in the base game, as far as I can tell things are working as intended.
What I do not get (and the reason I reported it as bug) is how the level cap adjustment can result in a lower multiplier, but it happens only after a achievement is unlocked.
with the 33% modification enabled:
a) before unlocking an achievement
The level cap adjustment interacts with the logarithmic base calculation => gives the expected multiplier score (1.26)
b) after unlocking an achievement
step (a) should still stand / remains the same? correct? It should still be (1.26)
then the bonus should be triggered and the new value should be (1.26) + bonus
But from what I see it ignores the level cap adjustment (all together) and gives
a result of the default initial multiplier only (logarithmic base calculation), ignoring the level cap adjustment setting, and the bonus compensates to bring the value back to the initial setting.
----------------------------
If no modifications are done to the game:
no achievement triggered
level cap + base calculation = results to a value (A)
achievement triggered
level cap + base calculation + bonus = results to a value (B)
(A) should be different than (B) if a bonus is really applied correct?
But in reality, what I get is that (A) is equal to (B)
So either the bonus is not applied (I don't think is the case)... or the multiplier ignores the level cap and applies only the bonus.
edit 2: never mind I found the conflicting code
It's inside passagedata pid="3321" name="score multiplier calc"
(set: $score_multiplier to (round: (100 * _score_multiplier_temp)) / 100)
conflicts with
(set: $score_multiplier to (round: (100 * $score_multiplier * (1 + _level_cap_adjustment))) / 100)
During the setup is used
(set: $score_multiplier to (round: (100 * $score_multiplier * (1 + _level_cap_adjustment))) / 100)
and then during the game play is ovewritten again from
(set: $score_multiplier to (round: (100 * _score_multiplier_temp)) / 100)
Last edited: