[...]Then you can edit the .rpy [...]
Why ? Why always use brute force to mod Ren'py games ? It come with so many features that you can do it softly, in a gentle way, making the engine orgasm under your touch while giving birth to the game you want.
Let your imagination go wild. Not only it will be less works in the end (since you'll not have to redo everything for each new version), but it also let the player use more than one mod.
Take this particular case. You'll have to change so many dialog lines directly in the source code, that every single file will be changed. So, when the player will try to use it with another mod for this game, one will revert the change made by the other...
So what ? No more DogMod ? Mandatory incest for DogMod ? Each time an "Incest DogMod" and an "IncestFree DogMod" ? And why if the (will clearly happen) "lab rats incest mod" don't change the sentences in the same way than DogMod will do it ?
Why working in this hard way when you can make mods cohabit like two polite roommates ?
For this particular case, there's three "soft" possibilities :
1) Using one of the callback to change the text on fly.
I've already done something like this in a previous mod. It's easy to do it but it will be limited to generic changes, which isn't necessary the better option in this particular case. You can still go further with this approach, but it will need more works and probably require a more complex support behind.
2) Using the translation feature of Ren'py.
I'm pretty sure that it's not limited to wathever -> English. It can also translate PatreonEnglish into IncestEnglish. And like the engine fallback to the original text when it don't found a translation, you only need to copy, then "translate", the sentences you need to revert. It will also works fine with any new version, it's just that the new content will not be reverted to the "incest way" before you update the mod.
3) Game developers works hand in the hand with modders.
Instead of using hard coded sentences, they generalize the use of variables for part of the content. So, in place of something like :
Code:
m "But we can't do this, you are the son of my best friend !"
[...]
m "What ? Are you implying that I want to have sex with him ? He's the son of my best friend. You must be insane if you think that I see him that way."
you'll have something like :
Code:
$ mcIsForM = "the son of my best friend"
[...]
m "But we can't do this, you are [mcIsForM] !"
[...]
m "What ? Are you implying that I want to have sex with him ? He's [mcIsForM]. You must be insane if you think that I see him that way."
Then come a mod who just change the content of
mcIsForM to "my son".
Obviously it will works better if the developers use each variable more than one time.
Please modders, stop to traumatize Ren'py games, start to mod them softly.