There are several ways to enable incest in games.
1/
Using variables to store relationship words
Code:
mc "She's my [relation]."
a) Dev can let players to choose them at the beginning of the game. No patch is needed.
b) Or make a patch to automatically switch them. In this case, the patch is compatible with every version.
I'm not fond of this solution because it lacks of subtlety.
2/
Using a dictionary
And in a dictionary, you set up conversion words.
Code:
define dic = { "mother" : "landlady",
"mom" : "landlady",
"father" : "landlord",
...
}
The dictionary is used in the original game to automatically replace incest word by its consensual counterpart.
In this case, a patch is used to disable the dictionary. Of course, the patch is always compatible with every version.
This solution lacks of subtelty too.
3/
Change whole sentences
It's more complicated to handle but it gives you lots of possibilities.
I've seen different ways to do it.
a)
The whole sentence in a variable
In the original code, you find:
Code:
define sentence1 = "She's my landlady."
mc "[sentence1]"
And in the patch you find:
Code:
define sentence1 = "She's my mother."
In this case, the patch must be updated everytime.
b)
A sentence switch in the original code.
In the original code, you find:
Code:
define patch = False
if patch:
mc "She's my mother."
else:
mc "She's my landlady."
And in the patch:
The patch is obviously compatible with every version.
c)
Replace whole labels (Ms Denver case)
In the original code you have something like that:
Code:
if <incest file patch exists>:
jump incest_label
else:
jump normal label
label normal_label:
mc "She's my landlady."
And in the patch:
Code:
label incest_label:
mc "She's my mother."
The patch have to updated everytime in order to add new incest labels.
I'm not sure I like this one because I think it may make saves incompatible between the normal and the incest version. Not a big problem but still a problem.
4/
Translation
I think I've never seen this one used but you also could use the default Renpy translation system to introduce incest ingame.
In original code, you'll have the usual:
You create an "incest" language and in a separate translation file:
Code:
# game/script.rpy:5
translate incest script_28244f14:
# mc "She's my landlady."
mc "She's my mother."
You install the translation patch, select the "incest" language ingame and voila.
In this case, the patch would have to be updated at each version.