RimWorld

RimWorld

This topic has been locked
Aryath Sep 21, 2019 @ 6:25am
Analysis of the Social System, Compatibility, Attraction, Lovin MTB
Intro
When trying to find information how the social system in Rimworld works, you are currently having a tough time. It seems a lot of the answers in discussions about this topic are based on guessing, and that some answers even contain wrong information.

There is someone who looked at the code and gave some pretty helpful insight: ZorbaTHut
about attractiveness, age and sexual orientation
about Lovin MTB

But that info is kinda lengthy and hard to read if you just want to know the basics, and also a bit incomplete in some aspects.

Compatibility
This value determines how well pawns will get along and how well they build positive (non-romantic) relationships. In practice, this happens by changing the chances for good and bad interactions, i.e. if the compatibility of two pawns is high, they will become friends easily.

(There was a post that a value between 0 and 1 is best, which is wrong. The higher, the better.)
E.g. for a random pair (with +1 opinion each), you could get chances like this (c = compatibility, dt = deep talk, i = insult):
c=-1.32 dt=0.12 i=1.8
c=-0.19 dt=2.7 i=1.1
c=0.96 dt=11 i=0.46
c=3.1 dt=18 i=0.22

You can see that information if you enable development mode and inspect the social tab.

How can you change that value?
In a normal play session, a pair of pawns will always have the same compatibility. You cant change it without using dev tools/save file editing.

There is a base offset for this value, which is calculated pseudo-randomly by using the IDs of the two pawns, it doesnt get saved anywhere. So to change that, you have to edit the ID of one pawn in your save file (by replacing ALL; make sure not to replace Thing_Human1352211, only use Human1352211, because it is used one time without Thing_). The outcome is kinda random, so you have to try a few times if you want to get high compatibility.

Secondly, that value decreases with increasing age difference. So pawns at the same age will on average have the highest compatibility.

There were several posts on the internet that contained the guess that compatibility depends on traits. That is wrong, it does not depend on traits at all.

Attraction
This value (also called RomanceChanceFactor) determines how attracted a pawn is to another pawn and how much he wants to start a romance with it. In contrast to compatibility, attraction is different for both pawns, i.e. a pawn may be attracted to another pawn, but that other pawn may not be attracted to the first pawn at all.

Attraction is influenced by a lot of things. Age is a huge factor, beauty is a huge factor, blood relationship will decrease attraction a lot (but not completely, i.e. incest is a thing in Rimworld), sexual orientation matters, too (check the link to ZorbaTHut's post about that).

About the age aspect: Men find women younger than them and older than 20 most attractive. Women find men at the same age and up to 10 years older than them most attractive; however, if the women are younger than 20, their attraction to men gets reduced linearly until it reaches zero at 15.

Attraction is not affected by opinion, but the chance to start a RomanceAttempt and the success chance does depend on the respective opinions of each other.

To get max attraction you can e.g. create a pair of 20 yo pawns, both with the beautiful trait. As far as I can tell, the max value is 230.

Lovin MTB
This value determines the Mean Time Between acts of Lovin, i.e. the lower the value, the more frequent they will "love". This value heavily depends on attraction, but in addition, it decreases with age, and increases with better opinions of each other. The age effect is calculated like this: it is max (100%) until 25 yo, and min (20%) above 80 yo. Between 25 and 80 it decreases linearly.

So to get min Lovin MTB you can use the couple mentioned above, both 20 yo and beautiful. A 20 yo woman and 25 yo man works, too. Good compatibility and the kind trait helps to maintain a good relationship. As far as I can tell, the min value is 1.1 hrs.

Disclaimer
A great part of that information was taken from ZorbaTHut's posts, and the missing information was gained by experimenting in development mode. I don't mind if you repost this info elsewhere, and you dont have to give me credit, tho I dont mind if you do :)

If you find anything wrong, please tell me. Also, if anything is unclear or you have further questions, feel free to reply
Last edited by Aryath; Sep 21, 2019 @ 6:35am
< >
Showing 1-10 of 10 comments
Aryath Sep 21, 2019 @ 10:38am 
Well, you could change the compatibility value in a normal game session by putting a pawn into cryptosleep, so that the biological age difference to another pawn gets reduced...
Aryath Sep 22, 2019 @ 5:40am 
You can already max out attraction/lovin MTB with the pretty trait on both pawns instead of beautiful
TH:D Jan 14, 2020 @ 8:41am 
Thank you very much, I will try to edit the pawn IDs someday.
TH:D Jan 14, 2020 @ 8:43am 
BTW, I wonder how can I change the pawn IDs, do I need some tools to open up the code of the game?
BlackSmokeDMax Jan 14, 2020 @ 9:01am 
Originally posted by ThEo_DorE:
BTW, I wonder how can I change the pawn IDs, do I need some tools to open up the code of the game?

Text editors work just fine for xml files. For deeper looking you'll need to decompile and know C# programming, well at least the basics .

If that is something in the save file, which I expect it is, text editing should be fine.
Last edited by BlackSmokeDMax; Jan 14, 2020 @ 9:01am
Morkonan Jan 15, 2020 @ 8:17am 
Originally posted by Thaliviel:
...
If you find anything wrong, please tell me. Also, if anything is unclear or you have further questions, feel free to reply

Really nice info!

Reddit's having issues atm, so..

What variables effect changes in these values over time?

Would it only be the temporary effects of negative interactions eventually leading them to "divorce?" Or, is there some increasing likelihood or a set of circumstantial variables that seem to lead up to an eventual, perhaps unavoidable if enough time has passed, breakup?

Given that some variables are generated dynamically on start and then saved, that would lead one to assume that some pawns present are practically "destined" for each other. Can these values be easily manipulated in other ways, perhaps to "force" the issue? ie: A mod with "Wedding Rings" that will force positive values to the point where two selected pawns will "marry." (I assume certain mods will do this, though I don't have an interest in playing with them. Just curious as to "how" they do what they do. :))

(When Reddit fixes itself, I'll be able to see a bit more. :) Thanks for posting this - The topic comes up fairly frequently.)
Last edited by Morkonan; Jan 15, 2020 @ 8:17am
Andy Jul 13, 2020 @ 2:55am 
2
I realize this is an old thread, but it's one of the top results from searching "change pawn compatibility rimworld," so I figured I'd share what I think might be the quickest and easiest way to find two pawn IDs that have good compatibility. This requires use of Development Mode.

Note that the following assumes you have Commitment mode off. If you are using Commitment mode, make a backup of your save file.

Open your save file, pause the game, activate Devmode, open the "Debug Actions Menu" by pressing the relevant button at the top of the screen, and hit the "Make colony (full)" button under the "Autotests" column.
Your game will probably hang for a few moments.

Then a giant debug base will spawn on your map with a ton of pawns and all manner of junk. Go through each pawn at the top of the screen with the Social tab open, and hit the debug mode button in the social tab window labeled "Debug Info" and select "CompatibilityTo"

This will open a window that shows you the compatibility of the selected pawn to every other one on the map, as well as their ages. Go through each pawn and write down the names of pairs with the highest compatibility you see.
Be sure to make note of any huge age gaps you see that still manage to get over 3.5 compatibility. Save a new save file, and open up this file in a text editor. Find the IDs of the pawns with the highest compatibility. Now open your old save file in another window, and swap out the IDs of your pawns with the high-compatibility debug pair.

This took about... 10 minutes maybe? Depends on your familiarity with debug mode, the save files, and text editors.

The highest score I saw in the debug base was 4.35 with two pawns 4 years apart in age. But I also spotted a pair that were 63 years apart with 3.66.
I took the IDs from the latter pair and gave them to two pawns that were the same age, and wound up with a score of 4.56.

More testing seems to suggest 4.85 is the highest possible compatibility value. The following pairs of character IDs have this value:

54511 54549
54515 54537
54518 54540
54522 54528

Anyway, thanks for the info on this, OP, and good luck to whoever finds this thread on Google years from now, hopefully this will still be relevant.

Edit: After playing my save file for some time, I found a pair of pawns had compatibility above 4.85. I suspect whatever mathematical formula is used for this calculation can produce more extreme values the larger a pawn's ID is.
Which has the strange effect where pawns created early in world generation will generally have less extreme compatibility values than ones made years into a game.
Last edited by Andy; Oct 27, 2020 @ 2:17am
Tom Jan 5, 2021 @ 12:55am 
Wow! Stumbled on this thread after investigating it myself. What a pain and how bizarre that it's predetermined nor is it saved. Someone really ought to make a mod to change this easier/dynamically or something.
IceScarecrowMax Sep 23, 2023 @ 2:23pm 
I saw two pawns who had 4.94 compatibility. Maybe maximum is 5.00?
Andy Apr 9, 2024 @ 10:54pm 
A pair of pawns who are the same age with the IDs 23938509 and 21929156 wind up with compatibility of 5.46

I can only assume the maximum value occurs when you reach the limit of pawn ID length.

Oh, one more thing, as of 1.4, there is no longer a button to view compatibility scores, rather it appears when you hover over a relation with Dev mode enabled.
< >
Showing 1-10 of 10 comments
Per page: 1530 50

Date Posted: Sep 21, 2019 @ 6:25am
Posts: 10