From 15fc3201b9a37282c9e6ffee0193f6b9dfc3c45d Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Sun, 17 May 2026 18:55:13 +1000
Subject: [PATCH 01/11] Rework of Gene Application order for New pawns.
---
1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml | 3 ++
1.6/Defs/GeneDefs/GeneDefs_Fluids.xml | 6 +++
1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml | 13 +++--
1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml | 3 ++
1.6/Source/Common/Defs/ChanceExtension.cs | 1 -
.../Common/Defs/SexualizerGeneExtension.cs | 21 +++++++++
.../Common/patches/Patch_RJWSexualizer.cs | 47 +++++++++++++++++++
.../Genes/ExtraGenitalia/Gene_ExtraPenis.cs | 18 +++----
.../Genes/Patches/Patch_sexualize_pawn.cs | 3 ++
1.6/Source/Genes/RJW_Gene.cs | 3 ++
1.6/Source/HarmonyInit.cs | 6 ++-
1.6/Source/Rjw-Genes.csproj | 2 +
About/About.xml | 17 +++----
13 files changed, 116 insertions(+), 27 deletions(-)
create mode 100644 1.6/Source/Common/Defs/SexualizerGeneExtension.cs
create mode 100644 1.6/Source/Common/patches/Patch_RJWSexualizer.cs
diff --git a/1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml b/1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml
index eec2a22..6bb3aea 100644
--- a/1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml
+++ b/1.6/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml
@@ -8,6 +8,9 @@
Genes/Icons/RJW_Genes_Endogene_Background
Genes/Icons/RJW_Genes_Xenogene_Background
+
+ 20
+
diff --git a/1.6/Defs/GeneDefs/GeneDefs_Fluids.xml b/1.6/Defs/GeneDefs/GeneDefs_Fluids.xml
index eb68666..bf99e12 100644
--- a/1.6/Defs/GeneDefs/GeneDefs_Fluids.xml
+++ b/1.6/Defs/GeneDefs/GeneDefs_Fluids.xml
@@ -11,6 +11,9 @@
Genes/Icons/RJW_Genes_Endogene_Background
Genes/Icons/RJW_Genes_Xenogene_Background
+
+ 50
+
@@ -72,6 +75,9 @@
Genes/Icons/RJW_Genes_Endogene_Background
Genes/Icons/RJW_Genes_Xenogene_Background
+
+ 50
+
diff --git a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml
index 208b193..a2c66f9 100644
--- a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml
+++ b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml
@@ -5,11 +5,14 @@
-
- Genes/Icons/RJW_Genes_Endogene_Background
- Genes/Icons/RJW_Genes_Xenogene_Background
-
-
+
+ Genes/Icons/RJW_Genes_Endogene_Background
+ Genes/Icons/RJW_Genes_Xenogene_Background
+
+
+ 50
+
+
diff --git a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml
index 543c542..244c72f 100644
--- a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml
+++ b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml
@@ -14,6 +14,9 @@
Genes/Icons/RJW_Genes_Endogene_Background
Genes/Icons/RJW_Genes_Xenogene_Background
+
+ 30
+
diff --git a/1.6/Source/Common/Defs/ChanceExtension.cs b/1.6/Source/Common/Defs/ChanceExtension.cs
index ff8b260..111f73e 100644
--- a/1.6/Source/Common/Defs/ChanceExtension.cs
+++ b/1.6/Source/Common/Defs/ChanceExtension.cs
@@ -11,5 +11,4 @@ namespace RJW_Genes
{
public float chance;
}
-
}
diff --git a/1.6/Source/Common/Defs/SexualizerGeneExtension.cs b/1.6/Source/Common/Defs/SexualizerGeneExtension.cs
new file mode 100644
index 0000000..1a9213f
--- /dev/null
+++ b/1.6/Source/Common/Defs/SexualizerGeneExtension.cs
@@ -0,0 +1,21 @@
+using Verse;
+
+namespace RJW_Genes
+{
+
+ ///
+ /// Used by the 'On Sexualization' Patch to determine if a gene needs to be applied, and what order to do so.
+ /// This Extension is applied to RJW related genes that Depend on the order they are Applied in,
+ /// using the following basic values
+ ///
+ /// 10 Unused.
+ /// 20 Genes that Alter the Number of sexual parts a Pawn may have. (Includes the Zero Genes?)
+ /// 30 Genes that Alter the type of genitals a Pawn may have.
+ /// 40 Genes that Add a specific genital type to the pawn.
+ /// 50 Genes that alter the values on a pawns genitals such as size or fluid type.
+ ///
+ internal class SexualizerGeneExtension : DefModExtension
+ {
+ public int order;
+ }
+}
diff --git a/1.6/Source/Common/patches/Patch_RJWSexualizer.cs b/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
new file mode 100644
index 0000000..785308a
--- /dev/null
+++ b/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+
+namespace RJW_Genes
+{
+ internal static class Patch_RJWSexualizer
+ {
+ ///
+ /// This Harmony patch is called after Sexualiser, and runs all the genes on that pawn that would have not been functional before sexualization.
+ ///
+ public static void ApplyGenesPostfix(Pawn pawn)
+ {
+ //Generate a sorted list of Genes that need to be processed.
+ Dictionary> geneDict = new Dictionary>();
+ foreach (Gene curGene in pawn.genes?.GenesListForReading)
+ {
+ if (!curGene.def.HasModExtension()) continue;
+
+ SexualizerGeneExtension geneExtension = curGene.def.GetModExtension();
+ if (geneDict.ContainsKey(geneExtension.order))
+ {
+ geneDict[geneExtension.order].Add(curGene);
+ }
+ else
+ {
+ geneDict.Add(geneExtension.order, new List { curGene });
+ }
+
+
+ }
+ //Once we have the List, iterate over it to run the relavant functions.
+ List keysList = geneDict.Keys.ToList();
+ keysList.Sort();
+ foreach (int key in keysList)
+ {
+ foreach (var curGene in geneDict[key])
+ {
+ curGene.PostAdd();
+ }
+ }
+ }
+ }
+}
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs
index 5bacdbd..34926d5 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraPenis.cs
@@ -16,23 +16,23 @@ namespace RJW_Genes
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
- if (HasAlreadyTwoPenis())
- {
- return;
- }
+ //if (HasAlreadyTwoPenis())
+ //{
+ // return;
+ //}
// Penis are only added for male pawns!
- if (GenderUtility.IsMale(pawn) && additional_penis == null)
- {
- CreateAndAddPenis();
- }
+ //if (GenderUtility.IsMale(pawn) && additional_penis == null)
+ //{
+ // CreateAndAddPenis();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
if (HasAlreadyTwoPenis())
diff --git a/1.6/Source/Genes/Patches/Patch_sexualize_pawn.cs b/1.6/Source/Genes/Patches/Patch_sexualize_pawn.cs
index 4e5ea56..ccc4adb 100644
--- a/1.6/Source/Genes/Patches/Patch_sexualize_pawn.cs
+++ b/1.6/Source/Genes/Patches/Patch_sexualize_pawn.cs
@@ -6,8 +6,11 @@ using System.Threading.Tasks;
using rjw;
using Verse;
+
+
namespace RJW_Genes
{
+ [Obsolete]
internal static class Patch_sexualize_pawn
{
///
diff --git a/1.6/Source/Genes/RJW_Gene.cs b/1.6/Source/Genes/RJW_Gene.cs
index b97dbd7..bf73eb4 100644
--- a/1.6/Source/Genes/RJW_Gene.cs
+++ b/1.6/Source/Genes/RJW_Gene.cs
@@ -37,5 +37,8 @@ namespace RJW_Genes
public virtual void Notify_OnPawnGeneration()
{
}
+
+
+ public virtual void Notify_OnPawnSexualization() { }
}
}
diff --git a/1.6/Source/HarmonyInit.cs b/1.6/Source/HarmonyInit.cs
index 7f0a376..0ba3837 100644
--- a/1.6/Source/HarmonyInit.cs
+++ b/1.6/Source/HarmonyInit.cs
@@ -48,10 +48,12 @@ namespace RJW_Genes
//harmony.Patch(AccessTools.Method(typeof(Quirk), nameof(Quirk.CountSatisfiedQuirks)),
//postfix: new HarmonyMethod(typeof(QuirkPatcher), nameof(QuirkPatcher.CountSatisfiedPostfix)));
-
+
//RJW.Sexualizer.sexualize_pawn
harmony.Patch(AccessTools.Method(typeof(Sexualizer), nameof(Sexualizer.sexualize_pawn)),
- prefix: new HarmonyMethod(typeof(Patch_sexualize_pawn), nameof(Patch_sexualize_pawn.PreFix)));
+ //prefix: new HarmonyMethod(typeof(Patch_sexualize_pawn), nameof(Patch_sexualize_pawn.PreFix))); //Old Method that ran Sexualize early.
+ postfix: new HarmonyMethod(typeof(Patch_RJWSexualizer), nameof(Patch_RJWSexualizer.ApplyGenesPostfix)));
+
//Patch for Elastic Gene support with Eltoro's Streching mod.
diff --git a/1.6/Source/Rjw-Genes.csproj b/1.6/Source/Rjw-Genes.csproj
index 6d77471..9a866a2 100644
--- a/1.6/Source/Rjw-Genes.csproj
+++ b/1.6/Source/Rjw-Genes.csproj
@@ -31,6 +31,7 @@
+
@@ -41,6 +42,7 @@
+
diff --git a/About/About.xml b/About/About.xml
index 41240b4..4b93ec5 100644
--- a/About/About.xml
+++ b/About/About.xml
@@ -1,6 +1,9 @@
RJW Genes
- Vegapnk - 1.6 Rewrite by Telanda
+
+ Vegapnk
+ 1.6 Rewrite by Telanda
+
Vegapnk.rjw.genes
2.6.2
@@ -14,7 +17,6 @@ Adds:
- Genes for Genitalia Types and Sizes
- Fertilin, a resource similiar to Hemogen, and accompanying sex-vampires
- Mechanics for Breeding and being Breed by Animals and Insects
-- Inherit genes from bestiality or produce VGE-Hybrids
- Male / Female Only, MPreg, Genderfluid Pawns
- Orgasmic Mytosis, Orgasmic Supercharging, Age-Transfer on Sex, Pheromones
- Cum-Amount changes, Cumflation Immunity
@@ -22,6 +24,9 @@ Adds:
- Genetic Diseases that Spread on Intercourse
- Patches for some popular Xenotypes from the Workshop
- Sexual Taming of Animals
+
+For Feedback or Support please see the Rimjob World Discord!
+https://discord.gg/UWZ3WfVWeK
https://github.com/vegapnk/RJW-Genes
@@ -40,14 +45,6 @@ Adds:
steam://url/CommunityFilePage/2009463077
https://github.com/pardeike/HarmonyRimWorld/releases/latest
-
Ludeon.RimWorld
From d4bbb6e5ff6cf9eba5a229fe2199ad956041a1bf Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Sun, 17 May 2026 19:43:43 +1000
Subject: [PATCH 02/11] Migrated Genital Genes to new Post-Sexualizeing system,
removing likelyhood of Duplicates.
---
.../Common/patches/Patch_RJWSexualizer.cs | 6 ++++--
.../Genes/ExtraGenitalia/Gene_ExtraAnus.cs | 18 ++++++++---------
.../Genes/ExtraGenitalia/Gene_ExtraBreasts.cs | 20 +++++++++----------
.../Genes/ExtraGenitalia/Gene_ExtraVagina.cs | 20 +++++++++----------
.../ExtraGenitalia/Gene_FeaturelessChest.cs | 12 +++++------
.../Genes/ExtraGenitalia/Gene_Femboy.cs | 1 +
1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs | 2 +-
.../Genes/ExtraGenitalia/Gene_NoAnus.cs | 10 +++++-----
.../Genes/ExtraGenitalia/Gene_NoBreasts.cs | 12 +++++------
.../Genes/ExtraGenitalia/Gene_NoPenis.cs | 12 +++++------
.../Genes/ExtraGenitalia/Gene_NoVagina.cs | 10 +++++-----
.../Genes/ExtraGenitalia/Gene_UdderBreasts.cs | 2 +-
.../Fluid/Genes/Gene_ChangeFluidAmount.cs | 7 ++++---
.../Genes/Fluid/Genes/Gene_ChangeFluidType.cs | 1 +
.../Genes/Genitalia/Gene_GenitaliaType.cs | 1 +
.../Gene_GenitaliaResizingGene.cs | 11 +++++-----
1.6/Source/Genes/RJW_Gene.cs | 8 ++++----
17 files changed, 80 insertions(+), 73 deletions(-)
diff --git a/1.6/Source/Common/patches/Patch_RJWSexualizer.cs b/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
index 785308a..cd35dbc 100644
--- a/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
+++ b/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
@@ -13,10 +13,12 @@ namespace RJW_Genes
/// This Harmony patch is called after Sexualiser, and runs all the genes on that pawn that would have not been functional before sexualization.
///
public static void ApplyGenesPostfix(Pawn pawn)
- {
+ {
//Generate a sorted list of Genes that need to be processed.
+ if (pawn == null) return;
Dictionary> geneDict = new Dictionary>();
- foreach (Gene curGene in pawn.genes?.GenesListForReading)
+ if (pawn.genes == null) return;
+ foreach (Gene curGene in pawn.genes.GenesListForReading)
{
if (!curGene.def.HasModExtension()) continue;
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs
index 277691c..527ac35 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraAnus.cs
@@ -16,22 +16,22 @@ namespace RJW_Genes
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
- if (HasAlreadyTwoAnus())
- {
- return;
- }
+ //if (HasAlreadyTwoAnus())
+ //{
+ // return;
+ //}
- if (additional_anus == null)
- {
- CreateAndAddAnus();
- }
+ //if (additional_anus == null)
+ //{
+ // CreateAndAddAnus();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
if (HasAlreadyTwoAnus())
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs
index b763a64..64e44d4 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraBreasts.cs
@@ -16,23 +16,23 @@ namespace RJW_Genes
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
- if (HasAlreadyTwoBreasts())
- {
- return;
- }
+ //if (HasAlreadyTwoBreasts())
+ //{
+ // return;
+ //}
- // Tits are only added for female pawns!
- if (GenderUtility.IsFemale(pawn) && additional_breasts == null)
- {
- CreateAndAddBreasts();
- }
+ //// Tits are only added for female pawns!
+ //if (GenderUtility.IsFemale(pawn) && additional_breasts == null)
+ //{
+ // CreateAndAddBreasts();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
if (HasAlreadyTwoBreasts())
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs
index 179742b..2771bd6 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_ExtraVagina.cs
@@ -21,23 +21,23 @@ namespace RJW_Genes
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
- if (HasAlreadyTwoVaginas())
- {
- return;
- }
+ //if (HasAlreadyTwoVaginas())
+ //{
+ // return;
+ //}
- // Vaginas are only added for female pawns!
- if (GenderUtility.IsFemale(pawn) && additional_vagina == null)
- {
- CreateAndAddVagina();
- }
+ //// Vaginas are only added for female pawns!
+ //if (GenderUtility.IsFemale(pawn) && additional_vagina == null)
+ //{
+ // CreateAndAddVagina();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Some sources add Genes before they fire, e.g. Character Editor
// This should harden the gene, to solve #19
if (HasAlreadyTwoVaginas())
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs
index df07876..cf0ad0b 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs
@@ -11,18 +11,18 @@ namespace RJW_Genes
{
base.PostMake();
- if (removed_breasts == null)
- {
- RemoveButStoreBreasts();
- AddFeaturelessBreast();
- }
+ //if (removed_breasts == null)
+ //{
+ // RemoveButStoreBreasts();
+ // AddFeaturelessBreast();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (removed_breasts == null)
{
RemoveButStoreBreasts();
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_Femboy.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_Femboy.cs
index b3e9140..d78043f 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_Femboy.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_Femboy.cs
@@ -15,6 +15,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (GenderUtility.IsMale(this.pawn) && this.additional_genital == null)
{
this.CreateAndAddVagina();
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs
index 011b466..0de91a3 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_Futa.cs
@@ -19,7 +19,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// If the Pawn is already a Futa, do not do anything. Can Happen by Base-RJW Spawn Chance or potentially races / other mods.
if (IsAlreadyFuta(pawn))
{
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs
index 11f8706..de609a2 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs
@@ -13,17 +13,17 @@ namespace RJW_Genes
{
base.PostMake();
- if (removed_anus == null)
- {
- RemoveButStoreAnus();
- }
+ //if (removed_anus == null)
+ //{
+ // RemoveButStoreAnus();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (removed_anus == null)
{
RemoveButStoreAnus();
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs
index f1e6aed..acd9135 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs
@@ -13,18 +13,18 @@ namespace RJW_Genes
{
base.PostMake();
- // Breasts are removed for female pawns!
- if (GenderUtility.IsFemale(pawn) && oldSize < 0)
- {
- RemoveButStoreBreasts();
- }
+ //// Breasts are removed for female pawns!
+ //if (GenderUtility.IsFemale(pawn) && oldSize < 0)
+ //{
+ // RemoveButStoreBreasts();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Breasts are removed for female pawns!
if (GenderUtility.IsFemale(pawn) && oldSize < 0)
{
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs
index 5471309..54e4c20 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs
@@ -13,18 +13,18 @@ namespace RJW_Genes
{
base.PostMake();
- // Penis are only removed for male pawns!
- if (GenderUtility.IsMale(pawn) && removed_penis == null)
- {
- RemoveButStorePenis();
- }
+ //// Penis are only removed for male pawns!
+ //if (GenderUtility.IsMale(pawn) && removed_penis == null)
+ //{
+ // RemoveButStorePenis();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Penis are only removed for male pawns!
if (GenderUtility.IsMale(pawn) && removed_penis == null)
{
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs
index c5ec081..29f1be1 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs
@@ -14,17 +14,17 @@ namespace RJW_Genes
base.PostMake();
// Vaginas are only removed for female pawns!
- if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
- {
- RemoveButStoreVagina();
- }
+ //if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
+ //{
+ // RemoveButStoreVagina();
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
// Vaginas are only removed for female pawns!
if (GenderUtility.IsFemale(pawn) && removed_vagina == null)
{
diff --git a/1.6/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs b/1.6/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs
index ce53b43..0fdd0fe 100644
--- a/1.6/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs
+++ b/1.6/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs
@@ -27,7 +27,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
-
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
AddUdders();
}
diff --git a/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidAmount.cs b/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidAmount.cs
index 49c84a2..89bd8f6 100644
--- a/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidAmount.cs
+++ b/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidAmount.cs
@@ -9,15 +9,16 @@
{
base.PostMake();
- float multipier = FluidUtility.LookupFluidMultiplier(this);
- FluidUtility.MultiplyFluidAmountBy(pawn, multipier);
- has_been_fired = true;
+ //float multipier = FluidUtility.LookupFluidMultiplier(this);
+ //FluidUtility.MultiplyFluidAmountBy(pawn, multipier);
+ //has_been_fired = true;
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (!has_been_fired)
{
float multipier = FluidUtility.LookupFluidMultiplier(this);
diff --git a/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidType.cs b/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidType.cs
index 4745828..1531f7e 100644
--- a/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidType.cs
+++ b/1.6/Source/Genes/Fluid/Genes/Gene_ChangeFluidType.cs
@@ -18,6 +18,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
Apply();
}
diff --git a/1.6/Source/Genes/Genitalia/Gene_GenitaliaType.cs b/1.6/Source/Genes/Genitalia/Gene_GenitaliaType.cs
index b33a210..41b85be 100644
--- a/1.6/Source/Genes/Genitalia/Gene_GenitaliaType.cs
+++ b/1.6/Source/Genes/Genitalia/Gene_GenitaliaType.cs
@@ -13,6 +13,7 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
Apply();
}
diff --git a/1.6/Source/Genes/GenitaliaSize/Gene_GenitaliaResizingGene.cs b/1.6/Source/Genes/GenitaliaSize/Gene_GenitaliaResizingGene.cs
index fd1a5f1..fd9a2f2 100644
--- a/1.6/Source/Genes/GenitaliaSize/Gene_GenitaliaResizingGene.cs
+++ b/1.6/Source/Genes/GenitaliaSize/Gene_GenitaliaResizingGene.cs
@@ -32,17 +32,18 @@ namespace RJW_Genes
public override void PostMake()
{
base.PostMake();
- if (pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age)
- {
- Resize();
- ResizingWasApplied = true;
- }
+ //if (pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age)
+ //{
+ // Resize();
+ // ResizingWasApplied = true;
+ //}
}
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostAdd();
+ if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) return; //If pawn hasn't been sexualized yet, skip.
if (pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age)
{
Resize();
diff --git a/1.6/Source/Genes/RJW_Gene.cs b/1.6/Source/Genes/RJW_Gene.cs
index bf73eb4..818d686 100644
--- a/1.6/Source/Genes/RJW_Gene.cs
+++ b/1.6/Source/Genes/RJW_Gene.cs
@@ -19,10 +19,10 @@ namespace RJW_Genes
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
- if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
- {
- Sexualizer.sexualize_pawn(pawn);
- }
+ //if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
+ //{
+ // Sexualizer.sexualize_pawn(pawn);
+ //}
base.PostAdd();
}
From 0c7a9c3c2edaa93d0eb511c81e51871996114922 Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Sun, 17 May 2026 20:17:43 +1000
Subject: [PATCH 03/11] Gender Fluid no longer allows sex change while
pregnant.
---
1.6/Source/Common/Defs/SexualizerGeneExtension.cs | 4 ++++
1.6/Source/Common/patches/Patch_RJWSexualizer.cs | 1 +
1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs | 6 ++++--
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/1.6/Source/Common/Defs/SexualizerGeneExtension.cs b/1.6/Source/Common/Defs/SexualizerGeneExtension.cs
index 1a9213f..b8fd7e8 100644
--- a/1.6/Source/Common/Defs/SexualizerGeneExtension.cs
+++ b/1.6/Source/Common/Defs/SexualizerGeneExtension.cs
@@ -14,8 +14,12 @@ namespace RJW_Genes
/// 40 Genes that Add a specific genital type to the pawn.
/// 50 Genes that alter the values on a pawns genitals such as size or fluid type.
///
+#pragma warning disable CS0649 //Disable the warning for a variable that is 'unset'.
internal class SexualizerGeneExtension : DefModExtension
{
+
public int order;
+
}
+#pragma warning restore CS0649
}
diff --git a/1.6/Source/Common/patches/Patch_RJWSexualizer.cs b/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
index cd35dbc..3deabc1 100644
--- a/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
+++ b/1.6/Source/Common/patches/Patch_RJWSexualizer.cs
@@ -20,6 +20,7 @@ namespace RJW_Genes
if (pawn.genes == null) return;
foreach (Gene curGene in pawn.genes.GenesListForReading)
{
+
if (!curGene.def.HasModExtension()) continue;
SexualizerGeneExtension geneExtension = curGene.def.GetModExtension();
diff --git a/1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs b/1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs
index 4f530f6..5d6d272 100644
--- a/1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs
+++ b/1.6/Source/Genes/Gender/Genes/Gene_GenderFluid.cs
@@ -56,14 +56,16 @@ namespace RJW_Genes
// Case 2: Check every interval if the Chance triggers
else if (pawn.IsHashIntervalTick(change_interval) && (new Random()).NextDouble() < switch_chance)
{
+ // Case 2.A - if the Pawn is Pregnant, do not allow sex change this interval.
+ if (pawn.IsPregnant()) return;
- // Case 2.A) SexChange was blocked, postpone it
+ // Case 2.B) SexChange was blocked, postpone it
if (SexChangeBlocked(pawn))
{
sexChangeWasBlocked |= true;
return;
}
- // Case 2.B) Nothing blocking, change the sex.
+ // Case 2.C) Nothing blocking, change the sex.
else { ChangeSex();}
}
From 1d2bb665ecf946b8a9cab70778c3d72e988644b9 Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Mon, 18 May 2026 13:19:49 +1000
Subject: [PATCH 04/11] Fixed changes to Big & Small Lamia & Sneks Xenotype
Names. (Thank you RHS0 on discord for the report!)
---
1.6/Patches/Xenotypes/PatchBSSneks.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/1.6/Patches/Xenotypes/PatchBSSneks.xml b/1.6/Patches/Xenotypes/PatchBSSneks.xml
index 173a3df..be6b17a 100644
--- a/1.6/Patches/Xenotypes/PatchBSSneks.xml
+++ b/1.6/Patches/Xenotypes/PatchBSSneks.xml
@@ -11,9 +11,9 @@
Defs/XenotypeDef[defName = "LoS_Lamia"
or defName = "LoS_TrueLamia"
or defName = "Naga"
- or defName = "Los_Adderman"
- or defName = "Los_Anacondaman"
- or defName = "Los_Snakeman"]/genes
+ or defName = "LoS_Adderman"
+ or defName = "LoS_Anacondaman"
+ or defName = "LoS_Snakeman"]/genes
rjw_genes_reptilian_genitalia
From ec92b082b0b6458245171f666581ff7d4ee75dd4 Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Tue, 19 May 2026 12:19:27 +1000
Subject: [PATCH 05/11] Update Load order & Xenotype cleanup.
---
1.6/Patches/Xenotypes/PatchBiotechNyaron.xml | 14 ----
1.6/Patches/Xenotypes/PatchImphileeXeno.xml | 36 --------
1.6/Patches/Xenotypes/PatchNyaron.xml | 12 +++
1.6/Patches/Xenotypes/PatchPapou.xml | 4 +-
1.6/Patches/Xenotypes/PatchRoosFaun.xml | 2 +-
1.6/Patches/Xenotypes/PatchRoosSatyr.xml | 2 +
...PatchPigskins.xml => PatchVREPigskins.xml} | 0
.../{PatchSaurid.xml => PatchVRESaurid.xml} | 0
About/About.xml | 84 ++++++++++++++++---
9 files changed, 91 insertions(+), 63 deletions(-)
delete mode 100644 1.6/Patches/Xenotypes/PatchBiotechNyaron.xml
delete mode 100644 1.6/Patches/Xenotypes/PatchImphileeXeno.xml
rename 1.6/Patches/Xenotypes/{PatchPigskins.xml => PatchVREPigskins.xml} (100%)
rename 1.6/Patches/Xenotypes/{PatchSaurid.xml => PatchVRESaurid.xml} (100%)
diff --git a/1.6/Patches/Xenotypes/PatchBiotechNyaron.xml b/1.6/Patches/Xenotypes/PatchBiotechNyaron.xml
deleted file mode 100644
index 9f32522..0000000
--- a/1.6/Patches/Xenotypes/PatchBiotechNyaron.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- Biotech Nyaron
-
-
- Defs/XenotypeDef[defName="Nyaron"]/genes
-
- rjw_genes_feline_genitalia
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Xenotypes/PatchImphileeXeno.xml b/1.6/Patches/Xenotypes/PatchImphileeXeno.xml
deleted file mode 100644
index 4a8655f..0000000
--- a/1.6/Patches/Xenotypes/PatchImphileeXeno.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-
- Imphilee Xeno
-
-
- Defs/XenotypeDef[defName="LD_Imphilee"]/genes
-
- rjw_genes_tight_female_genitalia
- rjw_genes_small_breasts
- rjw_genes_elasticity
- rjw_genes_demonic_genitalia
-
-
-
-
-
- Imphilee Xeno
-
-
- Defs/XenotypeDef[defName="LD_Imphilee_Overlord"]/genes
-
- rjw_genes_tight_female_genitalia
- rjw_genes_small_breasts
- rjw_genes_elasticity
- rjw_genes_demonic_genitalia
- rjw_genes_rapist
-
-
-
-
-
-
diff --git a/1.6/Patches/Xenotypes/PatchNyaron.xml b/1.6/Patches/Xenotypes/PatchNyaron.xml
index 4ad40a5..8d9848a 100644
--- a/1.6/Patches/Xenotypes/PatchNyaron.xml
+++ b/1.6/Patches/Xenotypes/PatchNyaron.xml
@@ -12,4 +12,16 @@
+
+
+ [CAP]Biotech Nyaron HAR Addition
+
+
+ Defs/XenotypeDef[defName="Nyaron"]/genes
+
+ rjw_genes_tight_female_genitalia
+ rjw_genes_feline_genitalia
+
+
+
\ No newline at end of file
diff --git a/1.6/Patches/Xenotypes/PatchPapou.xml b/1.6/Patches/Xenotypes/PatchPapou.xml
index 39a6e81..361aa89 100644
--- a/1.6/Patches/Xenotypes/PatchPapou.xml
+++ b/1.6/Patches/Xenotypes/PatchPapou.xml
@@ -2,10 +2,10 @@
- Papou Race : emotional birds
+ Papou Xenotype: Emotional Birds (Continued)
- Defs/XenotypeDef[defName="papago"]/genes
+ Defs/XenotypeDef[defName="Papago"]/genes
rjw_genes_orgasm_rush
rjw_genes_tight_female_genitalia
diff --git a/1.6/Patches/Xenotypes/PatchRoosFaun.xml b/1.6/Patches/Xenotypes/PatchRoosFaun.xml
index 64ee8ad..7d27b2f 100644
--- a/1.6/Patches/Xenotypes/PatchRoosFaun.xml
+++ b/1.6/Patches/Xenotypes/PatchRoosFaun.xml
@@ -7,7 +7,7 @@
Defs/XenotypeDef[defName="RBSF_Faun"]/genes
- rjw_genes_equine_genitalia
+ rjw_genes_Needle_genitalia
rjw_genes_zoophile
rjw_genes_mating_call
rjw_genes_tight_female_genitalia
diff --git a/1.6/Patches/Xenotypes/PatchRoosSatyr.xml b/1.6/Patches/Xenotypes/PatchRoosSatyr.xml
index b82b1e1..e2bdfe7 100644
--- a/1.6/Patches/Xenotypes/PatchRoosSatyr.xml
+++ b/1.6/Patches/Xenotypes/PatchRoosSatyr.xml
@@ -7,8 +7,10 @@
Defs/XenotypeDef[defName="RBSF_Satyr"]/genes
+ rjw_genes_equine_genitalia
rjw_genes_aphrodisiac_pheromones
rjw_genes_much_fluid
+ rjw_genes_zoophile
diff --git a/1.6/Patches/Xenotypes/PatchPigskins.xml b/1.6/Patches/Xenotypes/PatchVREPigskins.xml
similarity index 100%
rename from 1.6/Patches/Xenotypes/PatchPigskins.xml
rename to 1.6/Patches/Xenotypes/PatchVREPigskins.xml
diff --git a/1.6/Patches/Xenotypes/PatchSaurid.xml b/1.6/Patches/Xenotypes/PatchVRESaurid.xml
similarity index 100%
rename from 1.6/Patches/Xenotypes/PatchSaurid.xml
rename to 1.6/Patches/Xenotypes/PatchVRESaurid.xml
diff --git a/About/About.xml b/About/About.xml
index 4b93ec5..2d08446 100644
--- a/About/About.xml
+++ b/About/About.xml
@@ -11,8 +11,7 @@
1.5
1.6
-
-Adds Genes for RJW Content.
+ Adds Genes for RJW Content.
Adds:
- Genes for Genitalia Types and Sizes
- Fertilin, a resource similiar to Hemogen, and accompanying sex-vampires
@@ -22,9 +21,42 @@ Adds:
- Cum-Amount changes, Cumflation Immunity
- Horny Pheromones, Animal Mating Call
- Genetic Diseases that Spread on Intercourse
-- Patches for some popular Xenotypes from the Workshop
- Sexual Taming of Animals
+Patches for the following Xenotype Mods
+- Alpha Genes
+- Biotech Expansion - Mammalia
+- Biotech Expansion - Mythic
+- Biotech Nyaron
+- Big and Small Heaven and Hell
+- Big and Small More Xenotypes
+- Big and Small - Races
+- Big and Small - Slimes
+- Big and Small - Lamias and other Snake-People
+- Big and Small - Vampires and the Undead
+- Big and Small - Yokai
+- Erin's Auronya
+- Erin's Shisune
+- Kijin Race 3.0
+- NaraiXenotype
+- Obsidia Expansion - Arachnas Xenotype
+- Papou Xenotype: Emotional Birds (Continued)
+- Rimsenal Xenotype Pack - Askbarn
+- Roo's Faun Xenotype
+- Roo's Minotaur Xenotype
+- Roo's Satyr Xenotype
+- Vanilla Races Expanded - Android
+- Vanilla Races Expanded - Archon
+- Vanilla Races Expanded - Fungoid
+- Vanilla Races Expanded - Genie
+- Vanilla Races Expanded - Highmate
+- Vanilla Races Expanded - Lycanthrope
+- Vanilla Races Expanded - Pigskin
+- Vanilla Races Expanded - Phytokin
+- Vanilla Races Expanded - Sanguophage
+- Vanilla Races Expanded - Saurid
+- [LTS]Xenotech
+
For Feedback or Support please see the Rimjob World Discord!
https://discord.gg/UWZ3WfVWeK
@@ -47,17 +79,49 @@ https://discord.gg/UWZ3WfVWeK
- Ludeon.RimWorld
- Ludeon.RimWorld.Royalty
- Ludeon.RimWorld.Ideology
- Ludeon.RimWorld.Biotech
- rim.job.world
+ ASMR.RJW.RaceSupport
+ biotexpans.insect
+ biotexpans.mammalia
+ biotexpans.mythic
brrainz.harmony
+ CaptoLamia.NyaronBioTechHAR
+ erin.auronyabiotech
+ erin.shisune
+ Ludeon.RimWorld.Biotech
+ Ludeon.RimWorld.Ideology
+ Ludeon.RimWorld.Royalty
+ Ludeon.RimWorld
+ lyzz.naraixenotype
+ obsidiaexpansion.xenos.arachnas
OskarPotocki.VanillaFactionsExpanded.Core
- sarg.alphaanimals
- Sl4vP0weR.DominantGene
+ oskarpotocki.vfe.empire
+ redmattis.bsslimes
+ redmattis.heaven
+ redmattis.lamiasandothersnakes
+ redmattis.undead
+ redmattis.yokai
+ rim.job.world
+ rimsenal.askbarn
rjw.sexperience.cumgenes
+ sarg.alphaanimals
+ sarg.alphagenes
+ Sl4vP0weR.DominantGene
+ ssulunge.kijinrace3
+ tug.minotaur
+ tug.satyr
+ v.rooboid.faun
+ VanillaExpanded.VGeneticsE
+ vanillaracesexpanded.android
+ vanillaracesexpanded.archon
+ vanillaracesexpanded.fungoid
+ vanillaracesexpanded.genie
+ vanillaracesexpanded.highmate
+ vanillaracesexpanded.lycanthrope
+ vanillaracesexpanded.phytokin
+ vanillaracesexpanded.sanguophage
+ vanillaracesexpanded.saurid
vegapnk.cumpilation
+ zal.papou
From 6d911029808184085c24017cbaa8bdbdcebc5882 Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Thu, 23 Jul 2026 13:38:10 +1000
Subject: [PATCH 06/11] Fix to Littered Births. Fix to Gender Genes to make
sure they only fire if active. Version increment to 2.7
---
1.6/Rjw-Genes.sln | 4 ++--
1.6/Source/CumpilationLoader/CumpilationPatcher.csproj | 2 +-
1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs | 6 ++++--
1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs | 7 +++++--
1.6/Source/Genes/Patches/PatchLitteredBirth.cs | 5 ++---
1.6/Source/Genes/RJW_Gene.cs | 5 -----
1.6/Source/Properties/AssemblyInfo.cs | 2 +-
1.6/Source/Rjw-Genes.csproj | 9 +++++++++
About/About.xml | 2 +-
About/Manifest.xml | 2 +-
CHANGELOG.md | 9 +++++++++
11 files changed, 35 insertions(+), 18 deletions(-)
diff --git a/1.6/Rjw-Genes.sln b/1.6/Rjw-Genes.sln
index 86df24b..3cee1cf 100644
--- a/1.6/Rjw-Genes.sln
+++ b/1.6/Rjw-Genes.sln
@@ -15,8 +15,8 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Debug|Any CPU.ActiveCfg = Release|Any CPU
- {D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Debug|Any CPU.Build.0 = Release|Any CPU
+ {D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7D21B4A-1DA7-41D8-B202-C58CA8FA62AA}.Release|Any CPU.Build.0 = Release|Any CPU
{3BF2C17E-C492-44DA-8BC4-7AF6ADEB6468}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
diff --git a/1.6/Source/CumpilationLoader/CumpilationPatcher.csproj b/1.6/Source/CumpilationLoader/CumpilationPatcher.csproj
index 6207e63..025c5d6 100644
--- a/1.6/Source/CumpilationLoader/CumpilationPatcher.csproj
+++ b/1.6/Source/CumpilationLoader/CumpilationPatcher.csproj
@@ -15,7 +15,7 @@
true
- full
+ portable
false
..\..\Mods\Cumpilation\Assemblies\
diff --git a/1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs b/1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs
index 551f5ea..57d3635 100644
--- a/1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs
+++ b/1.6/Source/Genes/Gender/Genes/Gene_FemaleOnly.cs
@@ -15,8 +15,10 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostMake();
- AdjustPawnToFemale();
- GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn);
+ if (this.Active) {
+ AdjustPawnToFemale();
+ GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn);
+ }
}
private void AdjustPawnToFemale()
diff --git a/1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs b/1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs
index b25bfa1..ca405e4 100644
--- a/1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs
+++ b/1.6/Source/Genes/Gender/Genes/Gene_MaleOnly.cs
@@ -15,8 +15,11 @@ namespace RJW_Genes
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
base.PostMake();
- AdjustPawnToMale();
- GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn);
+ if (this.Active)
+ {
+ AdjustPawnToMale();
+ GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn);
+ }
}
private void AdjustPawnToMale()
diff --git a/1.6/Source/Genes/Patches/PatchLitteredBirth.cs b/1.6/Source/Genes/Patches/PatchLitteredBirth.cs
index 90c4f12..3a938d5 100644
--- a/1.6/Source/Genes/Patches/PatchLitteredBirth.cs
+++ b/1.6/Source/Genes/Patches/PatchLitteredBirth.cs
@@ -38,7 +38,6 @@ namespace RJW_Genes
ModLog.Message("Pawn: " + __instance.pawn.NameShortColored + " (" + __instance.pawn.ThingID + ")");
ModLog.Message("birthCount: " + laborStateMap.TryGetValue(__instance.pawn.ThingID).birthCount);
}
-
return;
}
@@ -46,7 +45,7 @@ namespace RJW_Genes
if (laborStateIsNull && hasLitteredBirthsGene)
{
ModLog.Message("Found littered births gene");
- int litteredBirthsTotalRoll = Rand.RangeInclusive(2, 4);
+ int litteredBirthsTotalRoll = Rand.RangeInclusive(1, 3);
laborStateMap.SetOrAdd(__instance.pawn.ThingID, new LaborState(__instance.pawn, litteredBirthsTotalRoll));
return;
}
@@ -119,7 +118,7 @@ namespace RJW_Genes
return;
}
- if (currentLaborState.birthTotal == currentLaborState.birthCount)
+ if (currentLaborState.birthTotal <= currentLaborState.birthCount)
{
laborStateMap.Remove(__instance.pawn.ThingID);
if (__instance.pawn.health.hediffSet.HasHediff(HediffDef.Named("Bioscaffold")))
diff --git a/1.6/Source/Genes/RJW_Gene.cs b/1.6/Source/Genes/RJW_Gene.cs
index 818d686..a036554 100644
--- a/1.6/Source/Genes/RJW_Gene.cs
+++ b/1.6/Source/Genes/RJW_Gene.cs
@@ -19,12 +19,7 @@ namespace RJW_Genes
public override void PostAdd()
{
if (pawn.kindDef == null) return; //Added to catch Rimworld creating statues of pawns.
- //if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn))
- //{
- // Sexualizer.sexualize_pawn(pawn);
- //}
base.PostAdd();
-
}
diff --git a/1.6/Source/Properties/AssemblyInfo.cs b/1.6/Source/Properties/AssemblyInfo.cs
index 5dbde35..9381075 100644
--- a/1.6/Source/Properties/AssemblyInfo.cs
+++ b/1.6/Source/Properties/AssemblyInfo.cs
@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.6.2")]
+[assembly: AssemblyVersion("2.7.0")]
diff --git a/1.6/Source/Rjw-Genes.csproj b/1.6/Source/Rjw-Genes.csproj
index 9a866a2..c4a3bc8 100644
--- a/1.6/Source/Rjw-Genes.csproj
+++ b/1.6/Source/Rjw-Genes.csproj
@@ -22,6 +22,15 @@
4
false
+
+ bin\Debug\
+ true
+ AnyCPU
+ 9
+ prompt
+ portable
+ true
+
diff --git a/About/About.xml b/About/About.xml
index 2d08446..c6f0f05 100644
--- a/About/About.xml
+++ b/About/About.xml
@@ -5,7 +5,7 @@
1.6 Rewrite by Telanda
Vegapnk.rjw.genes
- 2.6.2
+ 2.7.0
1.4
1.5
diff --git a/About/Manifest.xml b/About/Manifest.xml
index 0cd2bf9..f10acfc 100644
--- a/About/Manifest.xml
+++ b/About/Manifest.xml
@@ -1,7 +1,7 @@
RJW-Genes
- 2.6.2
+ 2.7.0
RimJobWorld
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e044bfc..e27c1b5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,13 @@
#INPROG
+# 2.7.0 (18-05-2026)
+(Commit by @Telanda-DDS)
+
+**Fixes**
+- Updated Big & Small - Lamia Patches to accoutn for changes in Def Capitalizeation.
+- Rewrite of how Genital Genes handle non-Sexualised pawns, should address most 'extra genitals' bugs.
+
+**Changes**
+- Fixed `Fertile Anus` Gene so that it is now compatible with both RJW & Biotech Pregnancies.
# 2.6.2 (15-02-2026)
(Commit by @Telanda-DDS)
From f65a11efaa78f4bee7218c1b2934a825d34d5f40 Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Thu, 23 Jul 2026 15:54:32 +1000
Subject: [PATCH 07/11] Hormonal Saliva Gene Fixes.
---
1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs | 8 ++++++--
1.6/Source/Rjw-Genes.csproj | 3 ++-
CHANGELOG.md | 6 +++---
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs b/1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs
index 48a035f..1be353f 100644
--- a/1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs
+++ b/1.6/Source/Genes/Special/Patches/Patch_HormonalSaliva.cs
@@ -59,9 +59,13 @@ namespace RJW_Genes
}
CompHediff.UpdateSeverity();
- // Increase Fluid
- if (CompHediff != null)
+ // Increase Fluid, if it's already above 10x don't increase to avoid crash issues.
+ if (CompHediff != null && (CompHediff.partFluidMultiplier < 10))
+ {
CompHediff.partFluidMultiplier *= cum_multiplier;
+ if (CompHediff.partFluidMultiplier > 10)
+ CompHediff.partFluidMultiplier = 10;
+ }
}
}
diff --git a/1.6/Source/Rjw-Genes.csproj b/1.6/Source/Rjw-Genes.csproj
index c4a3bc8..2404ae3 100644
--- a/1.6/Source/Rjw-Genes.csproj
+++ b/1.6/Source/Rjw-Genes.csproj
@@ -23,13 +23,14 @@
false
- bin\Debug\
+ ..\Assemblies\
true
AnyCPU
9
prompt
portable
true
+ TRACE;DEBUG
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e27c1b5..67b7ca4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,13 +1,13 @@
#INPROG
-# 2.7.0 (18-05-2026)
+# 2.7.x (12-07-2026)
(Commit by @Telanda-DDS)
**Fixes**
- Updated Big & Small - Lamia Patches to accoutn for changes in Def Capitalizeation.
- Rewrite of how Genital Genes handle non-Sexualised pawns, should address most 'extra genitals' bugs.
+- Hormonal Saliva now has a cap on fluid production, pawns will no longer grow so productive their cumshots crash the game.
+
-**Changes**
-- Fixed `Fertile Anus` Gene so that it is now compatible with both RJW & Biotech Pregnancies.
# 2.6.2 (15-02-2026)
(Commit by @Telanda-DDS)
From faec8878b1d126e007218ea18f23ebed5d343b0d Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Thu, 23 Jul 2026 16:05:45 +1000
Subject: [PATCH 08/11] Updates to Changelog.
---
CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 67b7ca4..a0b2fa2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,13 +1,49 @@
#INPROG
-# 2.7.x (12-07-2026)
+# 2.7.0 (23-07-2026)
(Commit by @Telanda-DDS)
**Fixes**
-- Updated Big & Small - Lamia Patches to accoutn for changes in Def Capitalizeation.
- Rewrite of how Genital Genes handle non-Sexualised pawns, should address most 'extra genitals' bugs.
+- Gender Fluid no longer allows sex changes while a pawn is pregnant.
+- Updated Big & Small - Lamia Patches to account for changes in Def Capitalisation.
- Hormonal Saliva now has a cap on fluid production, pawns will no longer grow so productive their cumshots crash the game.
+**Xenotypes**
+I've done a Check over the included xenotype patches, A few Xenotypes that hadn't been updated to 1.6 have been removed, and minor fixes Applied to other races. The current Supported Xenotype list is as following.
+- Alpha Genes
+- Biotech Expansion - Mammalia
+- Biotech Expansion - Mythic
+- Biotech Nyaron
+- Big and Small Heaven and Hell
+- Big and Small More Xenotypes
+- Big and Small - Races
+- Big and Small - Slimes
+- Big and Small - Lamias and other Snake-People
+- Big and Small - Vampires and the Undead
+- Big and Small - Yokai
+- Erin's Auronya
+- Erin's Shisune
+- Kijin Race 3.0
+- NaraiXenotype
+- Obsidia Expansion - Arachnas Xenotype
+- Papou Xenotype: Emotional Birds (Continued)
+- Rimsenal Xenotype Pack - Askbarn
+- Roo's Faun Xenotype
+- Roo's Minotaur Xenotype
+- Roo's Satyr Xenotype
+- Vanilla Races Expanded - Android
+- Vanilla Races Expanded - Archon
+- Vanilla Races Expanded - Fungoid
+- Vanilla Races Expanded - Genie
+- Vanilla Races Expanded - Highmate
+- Vanilla Races Expanded - Lycanthrope
+- Vanilla Races Expanded - Pigskin
+- Vanilla Races Expanded - Phytokin
+- Vanilla Races Expanded - Sanguophage
+- Vanilla Races Expanded - Saurid
+- \[LTS\]Xenotech
+
# 2.6.2 (15-02-2026)
(Commit by @Telanda-DDS)
From 438080664411fb76c769dec034f9f71dba419cb1 Mon Sep 17 00:00:00 2001
From: Telanda-DDS <215767052+Telanda-DDS@users.noreply.github.com>
Date: Thu, 23 Jul 2026 16:20:03 +1000
Subject: [PATCH 09/11] DLL Commit Fluid Production Rebalance
---
1.6/Assemblies/Rjw-Genes.dll | Bin 160768 -> 161280 bytes
.../Genes/Gene_EvergrowingGenitalia.cs | 7 ++++++-
.../Special/Patches/Patch_HormonalSaliva.cs | 6 +++---
CHANGELOG.md | 3 +--
4 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/1.6/Assemblies/Rjw-Genes.dll b/1.6/Assemblies/Rjw-Genes.dll
index 4778bf2105dfd00e748f256e732ae18cfe942915..bb86a3affa9320ee133d92870bf6f84af8c9ee24 100644
GIT binary patch
literal 161280
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