• 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.
If highest level entries in Personality are all weight_modifier then it has to be modifying weight somewhere, right? And if that weight value is not contained within Personalities, then it's elsewhere? If this weight value is random or somehow modified by non-Personality values, then there's your randomness.

I'm pretty sure weight_modifier is simply the name of that particular attribute on the personality object, tbh. The base weight is defined within it on weight = X. So basically, the game looks at all the personality weights (modifying by the modifiers listed within - see evangelising_zealots for example) and then rolls a dice on the resulting table, like so:

Personality A = 1-100
Personality B = 101-500
Personality C 501-600

The majority of them will come out as B, but around a sixth will be As and another 6th will be Cs.
 
Terribly sorry everyone. I just now noticed an extremely relevent comment at the top of the personality file.
Code:
# NOTE: Weight is additive!
Well that answers that.
I just noticed that too. So, in the Personality example, worst case the weight_modifier = 0.
 
Terribly sorry everyone. I just now noticed an extremely relevent comment at the top of the personality file.
Code:
# NOTE: Weight is additive!
Well that answers that.

Yeah, like most Paradox games some weights are additive and some are multiplicative, and it varies depending on.. the will of the Gods, mostly.

Thankfully, Stellaris usually has a comment telling you which is in play at any given time. The lack of comments was so endemic in earlier Paradox titles that often the Devs themselves would include the wrong ones, leading to negative multiples being used in some files, or additive zeros in others. IIRC, V2's entire promotion system at release was using additive factors, but had been written with multiplicative ones in mind.
 
I'm pretty sure weight_modifier is simply the name of that particular attribute on the personality object, tbh. The base weight is defined within it on weight = X. So basically, the game looks at all the personality weights (modifying by the modifiers listed within - see evangelising_zealots for example) and then rolls a dice on the resulting table, like so:

Personality A = 1-100
Personality B = 101-500
Personality C 501-600

The majority of them will come out as B, but around a sixth will be As and another 6th will be Cs.
I'm not sure I understand.

I feel like the weight_modifier should be within weight (1), and that if it isn't, then the sum weight_modifier is refering to another weight (2) somewhere. This weight (2) could be the array value?
 
I'm not sure I understand.

I feel like the weight_modifier should be within weight (1), and that if it isn't, then the sum weight_modifier is refering to another weight (2) somewhere. This weight (2) could be the array value?

No, it's just a bad naming convention. In the Personalities file, the category weight_modifier always contains the weight, and the modifiers that act upon that weight. It's just called weight_modifier because weight itself requires a numeric value and can't have other modifiers attached to it.