RimWorld

RimWorld

FemaleBodyVariants
127 Comments
tiagocc0  [author] 26 Sep @ 5:21am 
try changing the order of the mods
other than that maybe we would need to patch it to allow exceptions
but I won't be able to come back to rimworld for a good while
Paradox 26 Sep @ 5:03am 
For some reason the droids from Android Expanded (which have their own robot body textures) are using human body textures when this mod is active. Is there any way to blacklist this mod from affecting certain races?
MadMage 5 Sep @ 10:07pm 
Awesome, thanks. It was so simple I was straight up unsure.
tiagocc0  [author] 31 Aug @ 2:51am 
It doesn't check for genes, the code checks two different places one for normal pawns and another for pawns that fit the fur skin criteria.

In both cases it doesn't look for hardcoded paths, it just finds out a texture is going to be loaded for a certain pawn and checks if it is female and adds a _female to the path, so should work regardless of what name is being used if they are using one of these two routes.

If the body uses a new custom function to load the texture, then it won't work here or a third vanilla function I'm not aware of.

So yes, just load a mod with just images with the correct names and it will work.
MadMage 30 Aug @ 9:24pm 
@tiagocc0 Does this follow for ANY skin gene? Just drop the textures in using the same naming convention and it'll just... see them?
tiagocc0  [author] 30 Aug @ 6:46am 
I load it first but I use just a few body mods.
veoba 30 Aug @ 6:44am 
Should this mod be loaded before all bodies mods?
artemidle 26 Aug @ 5:37am 
Thanks
tiagocc0  [author] 26 Aug @ 5:34am 
You can take a look at this mod, it has the images of the new textures like:
Naked_Thin_Female_south.png

You can copy this mod to your mod folder directly in the rimworld folder and change the image files to your own, later you can adjust the rest of the files to make your own mod if you want.

However for yttakin there is no file in this mod for it but you can create them in the same place as the other images but this name:
FurCovered_Thin_Female_south.png

Then just follow the same pattern.
artemidle 26 Aug @ 5:30am 
I have a question, is there a guide for adding new body types or how do I add them myself?
тетеря, блин 6 Aug @ 4:59pm 
for some reason, I needed to create a custom rule to load this mod after «Paniel the Automata». otherwise many different races (Kiiro, Maru to name a few and Paniel itself) loaded some other bodies that don't fit their apparels. maybe this is not the Automata mod, but some other load order changes that fix stuff, but it required quite some time to find this pattern.
tiagocc0  [author] 5 Aug @ 6:53pm 
I will update the github, I forgot about it, lately I have been using just dnspy, I will comment here when I do
AJarOfDirt 5 Aug @ 12:20pm 
@tiagocc0 I'm interested in seeing your solution, but it doesn't look like your github is updated and the source code isn't published with the mod. Could you share what you did?
tanyfilina 2 Aug @ 11:02am 
As it seems that currently only my mod needs that and there is some mere hundred people subscribed to my mod, I'll probably test it myself, just slowly probably :)

As for the wings and tails, I think, their rendering must be similiar to clothes, so hopefully shouldn't be very hard to implement?
tiagocc0  [author] 2 Aug @ 10:53am 
It will depend more on what function in the game it uses rather than coding the gene or an exclusion tag like Ajar solution, they are control techniques.

As it is right now it should work for anything unless there is a third function in the source code for this which I don't think exists or if a modder made this third function. Then in this case I would need to mod around their mod.

The scaly body that you gave as an example probably already works, I can test if you want, let me know the mod name.

But this mod is for bodies so tails and wings could probably mean it is located in a different function in the source code.
tanyfilina 2 Aug @ 10:42am 
Actually it would be great if you could write some code so that we could add any gene female variants, as manu things don't look good: different bodies, tails, even wings...
tiagocc0  [author] 2 Aug @ 6:57am 
The patch applies to the original GetFurBodyGraphicPath so if these mods are using a variation of fur to achieve scaly bodies, then yes.
tanyfilina 2 Aug @ 6:55am 
Will this now support other body genes too, like scaly bodies from some mods?
tiagocc0  [author] 2 Aug @ 6:43am 
Let me know if you guys find an error.

Also it is important to give me a modlist, since many mods might conflict with this.
tiagocc0  [author] 2 Aug @ 6:41am 
Using this mod with female apparel mod shouldn't be a problem, but other mod combinations might. I have tested the two mods together before release.
tiagocc0  [author] 2 Aug @ 6:39am 
Sorry it took a while, made an update for fur covered bodies, thanks to AJarOfDirt and Pillowkitty for helping me with this.
I did try a more simple approach, instead of looking for exclusion gene tags, I modified the code to check if the texture exists, like the apparel mod, so it won't give an error if it doesn't or give a red X texture and if it exists it will load automatically without a need for xml patches or further verification.

I tested it with Yttakin and VRE Highmate.

So FurCovered_Thin_Female_south.png texture will work.
Acrollex 1 Aug @ 10:29pm 
@Iirly thank you for clarifying i ended up removing both including the mod requiring female apparel variants and FemaleBodyVariants, WDI relastic bodies requires both mods to be installed to work i ended up removing the mod completley with the requirements and installed another body mod now everything works fine
Iirly 31 Jul @ 8:01pm 
@Acrollex if you are using this mod with female apparel variants, that was giving me the same issue. removing it is only a work around if you're using it though. Hope that helps.
ПΛПО Dragoon 30 Jul @ 7:04pm 
@Decimus Magnus Yeah I've never tried adding mods mid save but did you test doing that with only this mod?
тетеря, блин 30 Jul @ 4:23pm 
should this be used alongside?

https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=1792668502

I mean, is it okay or it's better to exclude it?
тетеря, блин 30 Jul @ 5:44am 
would be great to see a collection of mods that support it eventually.
Decimus Magnus 29 Jul @ 10:31pm 
I tried to add this mid game and it completely breaks the map for some reason. Not sure if it's an incompatibility with another mod, but the entire map (not the globe) refuses to load and is purely black.
тетеря, блин 29 Jul @ 6:11am 
@tiagocc0 high hopes!
AJarOfDirt 28 Jul @ 9:58pm 
@Acrollex No way that is this mod. This mod doesn't touch the head at all.
Acrollex 28 Jul @ 7:10pm 
This mod has huge amount incompatibility with Medieval Overhaul where females textures specifically the head area shows a big [ X ] symbol

error:
Failed to find any textures at Things/Pawn/Humanlike/Apparel/Headgear/Coif/Coif_Thin while constructing Multi(initPath=Things/Pawn/Humanlike/Apparel/Headgear/Coif/Coif_Thin, color=RGBA(0.792, 0.765, 0.667, 1.000), colorTwo=RGBA(1.000, 1.000, 1.000, 1.000))

seems to have some type of conflict with headgear for some reason
tiagocc0  [author] 28 Jul @ 6:22pm 
I wouldn't know, never looked into the source code about how the faces are drawn
тетеря, блин 28 Jul @ 11:56am 
is it possible to make the same, but for animated faces? there are so many of them. would be especially great to be able to bind them to factions.
FanKaydarius 27 Jul @ 7:15am 
I do have my own personal texture mod that I use for myself, but when it comes to giving males the female body variant and vice versa, I simply just use the pre-existing character editor mod. I don't think it'd be necessary to find a way to have them spawn naturally anyways. (Though it sometimes happens via glitches anyways lol)
tiagocc0  [author] 26 Jul @ 10:45am 
I get what you are saying but they are the only official type that have male/female variant, and due to how difficult it would be also have separated bodies for the other types, the only that is also separated in the code.

Following the same silhouette, it would be a feminine male body and a masculine female body right?

It it's possible for the texture the be arranged like that, however I don't know if in the code a female body would ever appear as male and vice versa, or do you already have a mod for that?
FanKaydarius 26 Jul @ 7:42am 
This might sound a bit much, but would it be possible to somehow introduce a male variant for the female body type, and a female variant for the male body type?
tanyfilina 24 Jul @ 6:59am 
I've made a mod based on this framework - https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=3533234315
tiagocc0  [author] 23 Jul @ 5:35pm 
Thanks I will check it
AJarOfDirt 23 Jul @ 2:03pm 
@tiagocc0 Yeah I never had any issues with baseliner textures. That patch should only affect xenotypes that have a fur type that also has the tag. Everything else should be left alone. Here is my github page if you wanted to just check that out (https://github.com/AJarOfDirt0/Rimworld-Custom-changes) . It has some other stuff that I've collected for my own use too.
tiagocc0  [author] 23 Jul @ 8:18am 
@Pillowkitty if possible, I don't know when I will have time to check the code, this would help a lot

you can reach me on discord, this is my id 253930179196485633
If you prefer another way let me know
Pillowkitty 23 Jul @ 8:08am 
@tiagocc0 What I did was clone your FemaleBodyVariants.dll then rename it to FemaleBodyFurVariants.dll and slipped/replaced the lines in via dnSpy. My baseliners are generating properly as it does not touch your original assembly.

If you want I can pass you my assembly? It has been working on my end with all the VE races I have completed art for. I'm still working on designing full body skins of Roo's unguligrade legs as whatever design/code that is used for those overlays are not cooperating.
tiagocc0  [author] 23 Jul @ 6:44am 
@AJarOfDirt I tried to add the patch but then for baseliners it wouldn't show the female body, is the patch made to work exclusively with other types of bodies that have those genes?
Pillowkitty 22 Jul @ 12:27pm 
@AJarOfDirt Thank you so much for providing those patch lines! Guess the rest of my day is going to be spent fiddling in GIMP to add more female furdef variants to the existing xenotypes I play with! <3
tiagocc0  [author] 14 Jul @ 11:26am 
Ok, I won't have time to check it now, but will do so next weekend, thanks
AJarOfDirt 14 Jul @ 1:13am 
Sorry about the formatting. Had to split it into two comments too, but this patch checks for the exclusionTag Has_Female_Variants". Pretty much just went off your existing patch.
AJarOfDirt 14 Jul @ 1:12am 
[HarmonyPatch(typeof(FurDef), "GetFurBodyGraphicPath")]
public static class FurDef_GetFurBodyGraphicPath_Patch
{
[HarmonyPostfix]
public static void Postfix(FurDef __instance, ref Pawn pawn, ref string __result)
{
if ((__result == null)
|| (pawn.Drawer.renderer.CurRotDrawMode == RotDrawMode.Dessicated)
|| (ModsConfig.AnomalyActive && pawn.IsMutant && !pawn.mutant.Def.bodyTypeGraphicPaths.NullOrEmpty())
|| (ModsConfig.AnomalyActive && pawn.IsCreepJoiner && pawn.story.bodyType != null && !pawn.creepjoiner.form.bodyTypeGraphicPaths.NullOrEmpty())
|| (pawn.story?.bodyType?.bodyNakedGraphicPath == null)
)
{
return;
}
AJarOfDirt 14 Jul @ 1:12am 
string graphicPath = __result;
if (pawn.gender != Gender.Male && graphicPath != null && !graphicPath.Contains("_Female") && (graphicPath.Contains("_Thin") || graphicPath.Contains("_Fat") || graphicPath.Contains("_Hulk")))
{
foreach (Gene gene in pawn.genes.GenesListForReading) {
if (gene.def.exclusionTags?.Contains("Has_Female_Variants") == true)
{
graphicPath += "_Female";
__result = graphicPath;
}
}
}
}
}
}
tiagocc0  [author] 12 Jul @ 2:46am 
Seems interesting, is it a hamorny patch or xml?
AJarOfDirt 12 Jul @ 12:32am 
@tiagocc0 If you're interested, I made a patch to use an exclusiontag in the FurDef of genes that add fur to add variants too. Just need to add the tag to a genes FurDef and it works. Tested it with the highmate giving it a different set of textures.
tiagocc0  [author] 29 Jun @ 8:27am 
tiagocc0  [author] 29 Jun @ 8:01am 
reverted