RimWorld

RimWorld

Intimacy - A Lovin' Expansion
 This topic has been pinned, so it's probably important
turkler  [developer] 1 Jul @ 5:56am
Compatibility matters
Mods with built-in compatibility patches
  • Vanilla Social Interactions Expanded
The lovin' system added by this mod will correctly count towards the flirting frenzy aspiration.

  • Vanilla Ideology Expanded - Memes and Structures
The orgy ritual fills the intimacy need of all involved colonists.

  • Way Better Romance
The hookups function of Way Better Romance is disabled in favor of this mod's seduction and lovin' mechanics, as Intimacy's systems are a lot more in-depth and do not require beds. All other interactions work as usual. Integration for Way Better Romance's sexuality genes is included.

  • Vanilla Races Expanded - Android
Androids have a new hardware module that disables the intimacy need. This hardware module, of course, is removed when an android is awoken.

  • Vanilla Races Expanded - Highmate
Pawns with a lovin' need will have their lovin' need filled as usual. The libido genes added by this mod affect the frequency of lovin' as intended. The perfect body gene correctly affects how much a pawn enjoys lovin'.

  • ReSplice: Charmweavers
Lovefeeding correctly triggers after lovin'. The libido genes added by this mod affect the frequency of lovin' as intended.

  • Big and Small - Genes & More
The libido genes added by this mod affect the frequency of lovin' as intended.

  • Allow Consensual Incest
Seduction and lovin' respects the precepts about kinship from this mod.

  • [NL] Facial Animation
Lovin' facial animations will correctly play when two pawns are doing lovin'.

Mods with patches made by other developers
  • Simple Trans (Expanded)

  • Rimpsyche

Incompatible mods I don't plan to patch myself
  • Romance on the Rim
I poked around the mod's code with ILSpy and came to the conclusion that it would be incredibly difficult for me to redirect RotR functions to work with my mod while it would be more or less trivial for the developer of RotR to patch their functions to work with mine. For this reason, I decided to leave compatibility matters to the developer of Romance on the Rim.

  • Hermaphrodite Gene Continued
The developer of this mod has no interest in patching their mod to work with mine and I have no plans of making their mod work with mine.
The mod claims Intimacy breaks pregnancy between same sex couples but this is just false. See the pregnancy problem section below.

Patching other mods' functions to work with Intimacy
Intimacy was developed with mod compatibility in mind. Unlike vanilla lovin' code, where most everything happens within the toil itself, Intimacy has a lot of sub-functions that make the code a lot easier to patch.

[img]https://i.imgur.com/mTB1NQe.png[/img]

Patching any individual part of Intimacy - how pregnancies are rolled, how the mod checks for sexual attraction or incest, etc. - is rather easy and I even do this myself with the built-in compatibility patches.
This is also why I expect mods like Romance on the Rim to patch things on their end. My code doesn't repeat itself and uses sub-functions as much as it can, meaning it's trivial for other mods to plug their systems into my mod while a lot of other big mods have no such qualms and will hardcore critical functions into a job toil.

The pregnancy problem
This mod will probably need integration patches for any mods that make big changes to how pregnancies are rolled. Mods that just touch the pregnancy hediff or make other changes to pregnancy should work fine, I'm talking specifically about mods that change how pregnancies are applied like, say, a mod that allows same sex couples to impregnate each other.

The pregnancy code used by Intimacy is in its own function and any other mod can easily patch onto this function to do anything, really. Modders can easily make small tweaks or even completely change how pregnancy works with a simple Harmony patch.
This is a reimplementation of the vanilla pregnancy code because the pregnancy code is buried in one of the toils for the vanilla lovin' job. Working around this limitation would be a nightmare and I'm not even sure if I could pull it off.
And so, I chose to reimplement pregnancy rolls in a function that can easily be patched by other mods that want to make changes to how pregnancies are rolled.
Last edited by turkler; 3 hours ago
< >
Showing 1-14 of 14 comments
eth0net 7 Jul @ 8:09am 
Thanks for the breakdown! Just found this mod after someone reported an issue with my Alternate Fertility mod so I'll be patching in support for this ^^
turkler  [developer] 7 Jul @ 8:14am 
Originally posted by eth0net:
Thanks for the breakdown! Just found this mod after someone reported an issue with my Alternate Fertility mod so I'll be patching in support for this ^^
thank you, let me know if you need something changed to make things easier
Last edited by turkler; 8 Jul @ 8:46am
Does it work with the forbidden mod, and 1-2-3 personalities?
turkler  [developer] 19 Jul @ 11:25am 
Originally posted by GrimoireODS:
Does it work with the forbidden mod, and 1-2-3 personalities?
lol ''does this work with 1-2-3 personalities'' yeah I wonder if the mod that does something works with the mod that does nothing
Last edited by turkler; 19 Jul @ 11:26am
The Initiate Lovin ability from VRE Highmate causes breakups when ideology is set to Polycules Only.
turkler  [developer] 21 Jul @ 2:25pm 
Originally posted by theothersteve7:
The Initiate Lovin ability from VRE Highmate causes breakups when ideology is set to Polycules Only.
that's apparently intentional
This seems incompatible with Adoptive Relationships and Platonic Relationships, as it allows seduction between pawns where romance is counted as incestuous. Is it possible to patch this?
Maux 1 Aug @ 1:17am 
Could you maybe add "Rimpsyche_Smalltalk" as a member for InteractionWorker_Interacted_Patch.IntimateInteractions, for Compatibility with Rimpsyche?
I've made the compatibility for Rimpsyche_Conversation on my side, as it needs to consider the result of the conversation.
However, Smalltalk is just a chitchat with different logRule, so I thought it would be better to ask compatibility from your side. Of course, If you'd rather not add a modded content to the hashset, I'll find another way.
turkler  [developer] 1 Aug @ 2:27am 
Originally posted by Maux:
Could you maybe add "Rimpsyche_Smalltalk" as a member for InteractionWorker_Interacted_Patch.IntimateInteractions, for Compatibility with Rimpsyche?
I've made the compatibility for Rimpsyche_Conversation on my side, as it needs to consider the result of the conversation.
However, Smalltalk is just a chitchat with different logRule, so I thought it would be better to ask compatibility from your side. Of course, If you'd rather not add a modded content to the hashset, I'll find another way.
oh no, I wouldn't take on the responsibility of maintaining such a patch. you patching your own mod was the intended way of things and I appreciate you doing so
Maux 1 Aug @ 5:30am 
Originally posted by turkler:
oh no, I wouldn't take on the responsibility of maintaining such a patch. you patching your own mod was the intended way of things and I appreciate you doing so
Yes, that's what I thought too. I agree that once you start introducing other modded content into your hard coded field, it can start getting messy real quick. I still had to ask though, since adding the string to the hashset seemed like the easiest way to implement compatibility.

I'll use other method to patch it. Thanks for checking in!
turkler  [developer] 1 Aug @ 5:40am 
Originally posted by Maux:
Originally posted by turkler:
oh no, I wouldn't take on the responsibility of maintaining such a patch. you patching your own mod was the intended way of things and I appreciate you doing so
Yes, that's what I thought too. I agree that once you start introducing other modded content into your hard coded field, it can start getting messy real quick. I still had to ask though, since adding the string to the hashset seemed like the easiest way to implement compatibility.

I'll use other method to patch it. Thanks for checking in!
if it helps, I'll add a helper function to add interactions to the hashset next update. I do already have helper functions to add things to the various gene and trait lists, adding one for interactions must have escaped my mind
Last edited by turkler; 1 Aug @ 5:53am
What exacly is incompatible with Intimancy and romance on the rim? I am running both perfectly together no issues.
Nevermind I missread. I don't have romance on the rim, I have "Way better romance" sorry.
Maux 1 Aug @ 8:05am 
Originally posted by turkler:
Originally posted by Maux:
Yes, that's what I thought too. I agree that once you start introducing other modded content into your hard coded field, it can start getting messy real quick. I still had to ask though, since adding the string to the hashset seemed like the easiest way to implement compatibility.

I'll use other method to patch it. Thanks for checking in!
if it helps, I'll add a helper function to add interactions to the hashset next update. I do already have helper functions to add things to the various gene and trait lists, adding one for interactions must have escaped my mind
Yes, that would be wonderful, thank you! I can of course just make another postfix, but I felt like that was such a waste of performance, seeing as we already check for hash membership. I'll look forward to the next update!
< >
Showing 1-14 of 14 comments
Per page: 1530 50