• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Mcgan

Lt. General
18 Badges
Mar 19, 2020
1.365
2.007
  • Crusader Kings III: Royal Edition
  • Stellaris: Galaxy Edition
  • Stellaris - Path to Destruction bundle
  • Stellaris: Distant Stars
  • Stellaris: Synthetic Dawn
  • Stellaris: Leviathans Story Pack
  • Stellaris: Apocalypse
  • Stellaris: Megacorp
  • Stellaris: Ancient Relics
  • Stellaris: Federations
  • Stellaris: Nemesis
  • Stellaris: Humanoids Species Pack
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Lithoids
  • Stellaris: Necroids

Information​

I have verifed my game files (Steam only)​

Yes

I have disabled all mods​

Yes

I am running the latest game update​

Yes

Required​

Summary​

"language_soft_cap" value can return an incorrect value

Description​

One of the things allowing more languages to be learned is having high enough learning. Every 5 points of it, one more language can learned without negative consequences.

The script value "language_soft_cap" (in "common\script_values\00_culture_values.txt") is used to track that, but if the learning stat of a character is higher than 5 and not a multiple of 5, that value is no longer an integer.

For example, with 12 learning, a character can now learn 2.4 more languages according to this script value.
But all the game will see is that this character can learn more than 2 additional languages, but less than 3.

Steps to reproduce​

Have a character with more than 5 learning, but not a multiple of 5.
Reach language cap, wait for events to contradict themselves, thinking the character can learn more when that's not actually the case.

There's a courtier/guest effect like this which triggers if they have at least 8 learning.

Game Version​

1.14.2.2

Platform​

Windows

Additional Information​

Affected Feature​

  • Events
  • Gameplay

Save Game​



Other Attachments​

language_soft_cap.jpg

 
The solution is to add a floor = yes within the add value.
Like this:
Code:
    if = {
        limit = {
            learning >= language_learning_divide_value
        }
        add = {
            add = learning
            divide = language_learning_divide_value
            floor = yes # MOD fix
        }
    }
 
  • 1
Reactions: