Dharkx Posted Monday at 11:52 AM Posted Monday at 11:52 AM (edited) View File Vulnerability Matters Gone are the days of pawns who are incapable of violence, or are without any clothes or armor to protect them, from being invulnerable. Mod Description Expands RimJobWorld’s pre-existing pawn vulnerability system with new configurable modifiers which will cause a pawn to be more or less vulnerable, based on gender, age, body type, combat capability, melee skill, body coverage exposure, tagged apparel visibility/protection, environmental and other conditions. Features Adds new configurable pawn vulnerability modifiers in Mod Settings, based on: Gender (male and female) Age (young and old age) Body type (hulk, thin and fat) Combat related ability (equipped range and melee weapon, incapable of violence) Melee threshold penalty system (penalty per missing level below threshold) Exposure and body coverage with apparel rules by gender (Nudist and ideology exemptions) Wearing only underwear, skimpy clothing, tight clothing, bondage apparel, or protective gear (more exposed = more vulnerable) In darkness (low visibility) Experiencing cold or hot temperatures Thirst need, and when actively having a shower or bath (Dubs Bad Hygiene mod patch) How RJW Vulnerability Works All pawns have a vulnerability level, with RimJobWorld's default value set to 120% (adjusted in RJW's mod settings). If a pawn's vulnerability level reaches or exceeds the target threshold, they may be considered a victim, and may targeted by other pawns whose vulnerability stat is lower than the victim pawn's. Vulnerability is built from two types of effects: Percent values act as multipliers. 100% means no change Above 100% increases vulnerability Below 100% reduces vulnerability Offset values are direct additions or subtractions. Positive values increase vulnerability Negative values reduce vulnerability 0 disables the effect RimJobWorld already covers things like melee skills (positive only), health, body types (thin & hulk), food and rest need. This mod expands and adds many more considerations, as detailed further below. Vulnerability Modifiers Below is a list of all the pawn vulnerability stats modifiers added by this mod and their default values. All modifiers can be adjusted or disabled in the mod settings: Spoiler Gender: Male multiplier: x90% Female multiplier: x110% Age: Young max age: 25 Young age: +0.10 Young age gender: Male & Female Old min age: 50 Old age: -0.10 Old age gender: Male & Female Body Type: Body type Hulk: -0.20 Body type Thin: +0.20 Body type Fat: +0.10 Environment: Darkness: x115% Cold Temperature: x110% Hot Temperature: x110% Combat: Equipped range weapon: -0.15 Equipped melee weapon: -0.15 Low melee skill threshold: 5 Penalty per missing level: +0.10 Incapable of violence: +0.50 Needs (Dubs Bad Hygiene): Urgently thirsty: x110% Dehydrated: x140% Shower: +0.25 Bath: +0.30 Exposure: Exposed nude top: +0.30 Exposed nude bottom: +0.40 Bondage collar: +0.25 Bondage outfit: +0.35 Underwear top only: +0.15 Underwear bottom only: +0.20 Skimpy top only: +0.10 Skimpy bottom only: +0.12 Tight top only: +0.05 Tight bottom only: +0.06 Protection: Vest protection: -0.15 Armor protection: -0.25 Coverage Rules: Males require covered: Bottom Females require covered: Top and Bottom Nudists exempted: Enabled Body Coverage Exposure The mod evaluates clothing coverage by body region rather than by the entire outfit as a single item. The exposure checks focus on the pawn's torso and legs because those are the body part groups used for top and bottom coverage decisions. A body region counts as covered when at least one worn apparel item covers that body part group and is not treated as an exposed or non protective item. If an item is tagged as Vulnerability_Exposed, it is treated as exposing that body region for coverage checks unless a more specific top or bottom coverage tag is present for the same region. This lets the mod distinguish between genuinely covering clothing, underwear style coverage, skimpy or tight covers, and clothing that is visually present but still effectively exposing the pawn. The mod also supports gender specific coverage requirements. For example, a male pawn may only need legs covered, while a female pawn may require both torso and legs covered before the exposure penalty is ignored. Nudists trait pawns and nudist ideologies can bypass those rules depending on your settings. Apparel Tags Apparel tags are used to classify apparel items for exposure and coverage rating. You can manually edit apparel tags using the mod 'Character Editor'. If an apparel item has not been patched, it is considered as a normal apparel item that provides full coverage. Apparel items can have multiple tags. For example a mini dress may have Vulnerability_SkimpyTop and Vulnerability_Exposed (provides skimpy top coverage 'Visible skimpy bottom', and no coverage around the waist). If the pawn is not wearing another apparel item that covers the 'Legs', for example pants, it will be county as 'Exposed nude bottom', but it they are wearing an apparel tagged with Vulnerability_UnderwearBottom, then it will be counted as 'Visible underwear bottom'. Apparel Tags: Spoiler Vulnerability_Exposed (provides no coverage) Vulnerability_UnderwearTop (apparel examples: bra, bikini top) Vulnerability_UnderwearBottom (apparel examples: panties, briefs) Vulnerability_SkimpyTop (apparel examples: tank top, open chest top or jacket) Vulnerability_SkimpyBottom (apparel examples: skirt or very short shorts) Vulnerability_TightTop (apparel examples: tight shirt or latex top) Vulnerability_TightBottom (apparel examples: leggings or tight pants) Vulnerability_BondageCollar (apparel example: slave collars) Vulnerability_BondageOutfit (apparel example: body strap) Vulnerability_Vest (apparel example: flak vest) Vulnerability_Armor (apparel example: marine armor) Required Mods Harmony RimJobWorld Patched Mods RimJobWorld Dubs Bad Hygiene Patched Apparel Mods: RimJobWorld Extension S16's Extension AKT_LewdClothes RJW QA LewdClothes Sized Apparel for Slaves UnderWhere Vanilla Expanded Apparel Vanilla Apparel Expanded Accessories Stylized Slave Collars and Headgears Combat Extended Recommended Mods Character Editor (for manually editing apparel tags) Expands RJW/gameplay around nudity and privacy: Nudity Matters More Nudity Matters More Opinions Patch Privacy Please Future Plans Pending feedback and suggestions. Adjust current default mod vulnerability stats from user feedback (are they to high or to low?) Add more mod patches Add more vulnerability conditions Add new events that can occur for a pawn with low vulnerability, besides the usual... Mod Development and AI Usage Disclaimer This mod was made from me, a new mod developer, but as a disclaimer - it was created heavily with the assistance of AI. Send through any mod related issues, feedback or suggestions. Previous Updates Changelogs Spoiler Version 1.0.3 (2026-09-09) This update adds mod support for Dubs Bad Hygiene, expands the mod settings layout, and improves clothing and exposure wording along with the RJW pawn Vulnerability stats UI. Added: - Added mod support for Dubs Bad Hygiene. - Added low thirst vulnerability. - Added hygiene activity vulnerability for pawns actively showering or bathing, with separate configurable offsets for showers and baths. - Added a new "Vulnerability Matters - Clothing & Exposure" section to the pawn Vulnerability stat breakdown. - Added grouped clothing and exposure categories in the stat breakdown for improved readability: - Nude Exposure - Minimal Coverage - Revealing Clothing - Protective Gear - Bondage Apparel - Added a new Vulnerabilities settings tab. Changed: - Moved the Environment vulnerability modifiers to the new Vulnerabilities settings tab. - Renamed the mod settings tab Exposure to Clothing & Exposure. - Renamed the mod settings tab Patches to Apparel Patches. - Updated the Clothing & Exposure settings tab labels and tooltips. Fixed: - Removed leftover underwear debug scan logging and related log spam. Version 1.0.2 (2026-09-08) Added: - Added body type vulnerability modifiers for Hulk, Thin, and Fat. - Added equipped ranged weapon vulnerability modifier. - Added body type and weapon entries (with hyperlinks) to the Vulnerability pawn stats breakdown. - Added updated tooltips and localized stat lines for new modifiers. Changed: - Reworked and cleaned up the mod settings general tab layout and options. - Updated README.md. Removed: - Removed RJW default body type stat visibility while the mod is enabled. Version 1.0.1 (2026-09-08) Added: - Added coverage recognition for RJW body parts 'Chest' and 'Genitals'. - Patched Mod: Vanilla Apparel Expanded Accessories - Added apparel tag: Vulnerability_Exposed: - VAEA_Apparel_BattleBanner - VAEA_Apparel_MiniTurretPack - VAEA_Apparel_Quiver Version 1.0.0 (2026-09-07) Added: - Initial release of Vulnerability Matters. - Configurable vulnerability modifiers for gender, combat capability, melee skill, exposure, and darkness. - Apparel tag system for body coverage, underwear, skimpy, tight, bondage, and protection categories, including Vulnerability_Exposed, Vulnerability_UnderwearTop, Vulnerability_UnderwearBottom, Vulnerability_SkimpyTop, Vulnerability_SkimpyBottom, Vulnerability_TightTop, Vulnerability_TightBottom, Vulnerability_BondageCollar, Vulnerability_BondageOutfit, Vulnerability_Vest, and Vulnerability_Armor. - Compatibility patch support for supported apparel mods. - Pawn vulnerability stat explanation breakdown with aggregated totals and item links for applicable apparel. - Mod settings UI with grouped controls and tooltips. - Localization split for settings, patches, and pawn stat explanations. Changed: - Expanded RJW vulnerability handling beyond base values with mod driven tuning. - Added tag based compatibility checks across supported apparel packs. Notes: - Requires Harmony and RimJobWorld. - Compatible with supported patched apparel mods listed in the README. Submitter Dharkx Submitted 09/07/26 Category Rimworld Requirements Rimworld 1.6, Harmony, RimJobWorld Install Instructions Same install process used for all other mods: Download ZIP folder > Extract > 'Vulnerability-Matters' folder outside of the first layer 'Vulnerability-Matters' folder. Place the 'Vulnerability-Matters' folder in your Rimworld Mods folder. Ensure that the install path is: Rimworld/Mods/Vulnerability-Matters (this folder will show all the files and folders, such as: LICENCE, README, CHANGELOG, LoadFolders, 1.6 and About) The mod can be safely added or removed mid save and does not require a new game. Mod Load Order: Harmony (required) RimJobWorld (required) Patched mods (recommended but not required) Vulnerability Matters Edited Monday at 11:56 AM by Dharkx
Dharkx Posted Monday at 12:02 PM Author Posted Monday at 12:02 PM Hi all, First mod I've posted here. Please send through any feedback for current content, or suggestions for new content!
DaMan1 Posted Monday at 07:41 PM Posted Monday at 07:41 PM Looks really cool, but it just expands how vulnurability is computed right? This mod doesn't add anything mechanic wise, right? 1
Dharkx Posted Tuesday at 07:15 AM Author Posted Tuesday at 07:15 AM (edited) 11 hours ago, DaMan1 said: Looks really cool, but it just expands how vulnurability is computed right? This mod doesn't add anything mechanic wise, right? Yep correct. The current state of the mod essentially only adds new pawn vulnerability modifiers to make a pawn more or less vulnerable based on the extensive list of adjustable new modifiers added (all listed in the Default Mods Settings section), which also includes consideration for a pawn's apparel and body being exposed. New gameplay mechanics for actions against pawns with low vulnerability may potentially be added in the future, based on any interesting feedback or suggestions that I could look at implementing. Edited Tuesday at 07:16 AM by Dharkx
McLovin3 Posted Tuesday at 03:27 PM Posted Tuesday at 03:27 PM 7 hours ago, Dharkx said: New gameplay mechanics for actions against pawns with low vulnerability may potentially be added in the future, based on any interesting feedback or suggestions that I could look at implementing. From the few years of playing RJW with rape enabled I sometimes noticed scenarios simulating Defeat Rape: Once everyone on side in a large battle went down, a victor or 2 would automatically rape a loser. But it felt like it became more unreliable over time, either from me trying to mess with RJW settings or RJW updates during Rimworld DLC Expansion. It feels like it's now either related to the Rapist Trait or Precept/Meme or Winning Enemy Mechs to ever get it going off. It never triggered if the player colonists were the winning side. Maybe that might spark something for you, like say downed (Which I thought was probably the main reason why it happened for me) or shackled/arrested, or some kind of combat defeat Ideology precept
Dharkx Posted Wednesday at 11:42 AM Author Posted Wednesday at 11:42 AM 20 hours ago, McLovin3 said: From the few years of playing RJW with rape enabled I sometimes noticed scenarios simulating Defeat Rape: Once everyone on side in a large battle went down, a victor or 2 would automatically rape a loser. But it felt like it became more unreliable over time, either from me trying to mess with RJW settings or RJW updates during Rimworld DLC Expansion. It feels like it's now either related to the Rapist Trait or Precept/Meme or Winning Enemy Mechs to ever get it going off. It never triggered if the player colonists were the winning side. Maybe that might spark something for you, like say downed (Which I thought was probably the main reason why it happened for me) or shackled/arrested, or some kind of combat defeat Ideology precept "Combat defeat" is an idea I was already thinking about implementing in some way in the future. So good idea to bring up. I'll write down your ideas including for the "combat defeat Ideology precept" and "colonists being on the winning side".
DeadSomething Posted Wednesday at 05:55 PM Posted Wednesday at 05:55 PM the folder tree in the 1.0.3 update is botched.
DeadSomething Posted Wednesday at 06:03 PM Posted Wednesday at 06:03 PM it doesn't create subfolders, it creates botched unreadable files all in the main folder
Dharkx Posted Thursday at 07:28 AM Author Posted Thursday at 07:28 AM 13 hours ago, DeadSomething said: it doesn't create subfolders, it creates botched unreadable files all in the main folder 13 hours ago, DeadSomething said: the folder tree in the 1.0.3 update is botched. Odd. I don't see this issue on my end and I have just re-downloaded v1.0.3 from the site. Extract path is Vulnerability-Matters-v1.0.3\Vulnerability-Matters Are you still having this issue? If yes try again if you haven't already, or try extracting the folders through another method. If still having issues, does v1.0.2 work fine? I did change the .zip name/folders in the upload from v1.0.2 > v1.0.3. No one else has reported any download or file issues for v1.0.3 or any version as of yet.
DeadSomething Posted Thursday at 01:20 PM Posted Thursday at 01:20 PM it worked fine with the previous version. i already tried two different tools for extraction (Ark and Archive Manager) which i also used for all other mods i manually downloaded. i'll redownload now and see if it works now.
DeadSomething Posted Thursday at 01:23 PM Posted Thursday at 01:23 PM (edited) this is how it looks in Ark and another mod for comparison the old file Edited Thursday at 01:45 PM by DeadSomething
Dharkx Posted Thursday at 02:06 PM Author Posted Thursday at 02:06 PM 42 minutes ago, DeadSomething said: it worked fine with the previous version. i already tried two different tools for extraction (Ark and Archive Manager) which i also used for all other mods i manually downloaded. i'll redownload now and see if it works now. I've just released a new version of the mod (v1.0.4) which has added/changed a few things. You can try again and see how it goes. If it still doesn't work as you expect it to for those extraction software's, try rename the .zip to "Vulnerability-Matters" and retry. 1
ESeeker Posted Thursday at 11:49 PM Posted Thursday at 11:49 PM could you add single gender race and gene lists to StatPart_Gender for ignoring race/pawn with gene plus inverted for flipping values both rjw genes and alpha genes add single gender genes, various HAR races are single gender public List<string> SingleGenderRace = new List<string>(); public List<string> SingleGenderGene = new List<string>(); public List<string> InvertedRace = new List<string>(); public List<string> InvertedGene = new List<string>(); // replace sMale, sFemale and sEnable with your settings public bool ActiveFor(Pawn pawn, out float amount) { var sFemale = 110; var sMale = 90; var sEnable = true; var statPart = RJWStatDefOf.Vulnerability.GetStatPart<StatPart_Gender>(); amount = 1f; if (pawn == null || !sEnable) return false; var SGenR = statPart.SingleGenderRace ?? new List<string>(); var SGenG = statPart.SingleGenderGene ?? new List<string>(); if (SGenR.Contains(pawn.def.defName)) return false; else if (pawn.genes != null) { foreach (var g in SGenG) { var gDef = DefDatabase<GeneDef>.GetNamedSilentFail(g); if (gDef == null) continue; if (pawn.genes.HasActiveGene(gDef)) return false; } } var invert = false; var InvR = statPart.InvertedRace ?? new List<string>(); var InvG = statPart.InvertedGene ?? new List<string>(); if (InvR.Contains(pawn.def.defName)) invert = true; else if (pawn.genes != null) { foreach (var g in InvG) { var gDef = DefDatabase<GeneDef>.GetNamedSilentFail(g); if (gDef == null) continue; if (pawn.genes.HasActiveGene(gDef)) { invert = true; break; } } } var tmp = 1f; switch (pawn.gender) { case Gender.Male: tmp = invert ? sFemale : sMale; break; case Gender.Female: tmp = invert ? sMale : sFemale; break; } if (Mathf.Approximately(tmp, 0)) return false; if (Mathf.Abs((float)(tmp * 0.01) - 1) < 0.01f) return false; amount = tmp; return true; } rjw addition already adds a more advanced vulnerability by age which accounts for HAR and VRE androids really old are more vulnerable and really young are exponentially more vulnerable
DeadSomething Posted Friday at 09:38 AM Posted Friday at 09:38 AM (edited) 19 hours ago, Dharkx said: I've just released a new version of the mod (v1.0.4) which has added/changed a few things. You can try again and see how it goes. If it still doesn't work as you expect it to for those extraction software's, try rename the .zip to "Vulnerability-Matters" and retry. thanks, will do and report back EDIT: yep, that looks much better Edited Friday at 09:42 AM by DeadSomething 1
Dharkx Posted Friday at 01:04 PM Author Posted Friday at 01:04 PM 3 hours ago, DeadSomething said: thanks, will do and report back EDIT: yep, that looks much better good to see. If you have any future issues with anything let me know 1
Dharkx Posted Friday at 01:57 PM Author Posted Friday at 01:57 PM 14 hours ago, ESeeker said: could you add single gender race and gene lists to StatPart_Gender for ignoring race/pawn with gene plus inverted for flipping values both rjw genes and alpha genes add single gender genes, various HAR races are single gender public List<string> SingleGenderRace = new List<string>(); public List<string> SingleGenderGene = new List<string>(); public List<string> InvertedRace = new List<string>(); public List<string> InvertedGene = new List<string>(); // replace sMale, sFemale and sEnable with your settings public bool ActiveFor(Pawn pawn, out float amount) { var sFemale = 110; var sMale = 90; var sEnable = true; var statPart = RJWStatDefOf.Vulnerability.GetStatPart<StatPart_Gender>(); amount = 1f; if (pawn == null || !sEnable) return false; var SGenR = statPart.SingleGenderRace ?? new List<string>(); var SGenG = statPart.SingleGenderGene ?? new List<string>(); if (SGenR.Contains(pawn.def.defName)) return false; else if (pawn.genes != null) { foreach (var g in SGenG) { var gDef = DefDatabase<GeneDef>.GetNamedSilentFail(g); if (gDef == null) continue; if (pawn.genes.HasActiveGene(gDef)) return false; } } var invert = false; var InvR = statPart.InvertedRace ?? new List<string>(); var InvG = statPart.InvertedGene ?? new List<string>(); if (InvR.Contains(pawn.def.defName)) invert = true; else if (pawn.genes != null) { foreach (var g in InvG) { var gDef = DefDatabase<GeneDef>.GetNamedSilentFail(g); if (gDef == null) continue; if (pawn.genes.HasActiveGene(gDef)) { invert = true; break; } } } var tmp = 1f; switch (pawn.gender) { case Gender.Male: tmp = invert ? sFemale : sMale; break; case Gender.Female: tmp = invert ? sMale : sFemale; break; } if (Mathf.Approximately(tmp, 0)) return false; if (Mathf.Abs((float)(tmp * 0.01) - 1) < 0.01f) return false; amount = tmp; return true; } rjw addition already adds a more advanced vulnerability by age which accounts for HAR and VRE androids really old are more vulnerable and really young are exponentially more vulnerable hello. I don't really play with any different gender types/races/genes from vanilla, so trying to understand this. To confirm, are you asking for this exact behavior in the Vulnerability gender stat part? - If a pawn’s race defName is in the “SingleGenderRace” list, ignore the gender multiplier completely - If a pawn has an active gene from the “SingleGenderGene” list, ignore the gender multiplier completely - If a pawn’s race defName is in the “InvertedRace” list, swap the male/female percentages - If a pawn has an active gene from the “InvertedGene” list, swap the male/female percentages - Otherwise, use the normal Gender Male/Female percentages from the mod settings Also, are you asking for this to be just hardcoded values in the stat part itself, or also to be implemented as mod setting lists using defNames?
ESeeker Posted 21 hours ago Posted 21 hours ago 4 hours ago, Dharkx said: hello. I don't really play with any different gender types/races/genes from vanilla, so trying to understand this. To confirm, are you asking for this exact behavior in the Vulnerability gender stat part? - If a pawn’s race defName is in the “SingleGenderRace” list, ignore the gender multiplier completely - If a pawn has an active gene from the “SingleGenderGene” list, ignore the gender multiplier completely - If a pawn’s race defName is in the “InvertedRace” list, swap the male/female percentages - If a pawn has an active gene from the “InvertedGene” list, swap the male/female percentages - Otherwise, use the normal Gender Male/Female percentages from the mod settings Also, are you asking for this to be just hardcoded values in the stat part itself, or also to be implemented as mod setting lists using defNames? not hardcoded since certain HAR mods have unofficial addon mods that enable/disable single gender HAR races I use/found: <li Class="dharkx.rjw.vulnerability.matters.StatPart_VulnerabilityAge"> <SingleGenderRace> <li>Moosesian</li><li>Alien_Miho</li><li>Yuran_Race</li><li>MeowKurin</li> <li>VV_Vivi</li><li>Arachne</li> <li>Alien_Mucus</li><li>Rjw_Slime_Blue</li> <li>Alien_Moyo</li> <!-- 'Moyo2.0-Blood stained business' Alien_Moyo appear to have low sexual dimorphism(with RJW Addition reduces it further) --> <li MayRequire="qyt.patch.GloomyDragonian">Dragonian_Race</li> <!--'only female gloomy dragonian'(qyt.patch.GloomyDragonian) makes Dragonian_Race female only--> <li>Anty</li><li>AT_Hiveguard</li><li>AT_dreadnought</li><li>AT_Oppressor</li><li>AT_Lacerator</li><li>AT_TriJaw</li> <!-- 'Anty the war ant race' warmonger ant-girls, integrated RJW compatibility with base Vulnerability at 0.5 --> </SingleGenderRace> <SingleGenderGene> <li>rjw_genes_female_only</li><li>rjw_genes_male_only</li> <li>AG_Female</li><li>AG_Male</li> <li>VREA_AG_Female</li><li>VREA_AG_Male</li> <!-- VRE Android prefixes genes with 'VREA_' --> </SingleGenderGene> <InvertedRace> <li>Rakkle</li> <!-- 'Rakkle (unofficial update)' males appear(thumbnail) similar with female clothes(bikini) --> </InvertedRace> <InvertedGene /> </li> mods enabling males for female only race: 'Male <Maru/Ratkin/Rabbie>' for <Maru/Ratkin/Rabbie>, 'Male Kurin'(id: odysseylotus.malekurin) for Kurin_Race(Kurin HAR Edition), 'Male Wolfein Continue' for Wolfein_Race, 'Male <Kiiro/Milira> Expanded'(femboy, virtually identical to female) for '<Kiiro/Milira>_Race' <!-- replace 'Male Race Mod' with each of the 7 male mods and 'Race Name' with respective race --> <Operation Class="PatchOperationFindMod"> <mods> <li>Male Race Mod</li> </mods> <nomatch Class="PatchOperationAdd"> <xpath>Defs/StatDef[defName="Vulnerability"]/parts/li[@Class="dharkx.rjw.vulnerability.matters.StatPart_VulnerabilityAge"]/SingleGenderRace</xpath> <value> <li>Race Name</li> </value> </nomatch> </Operation> anties(all types), dragonian, ratkin(female), rabbie(female) use thin as default bodytype
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now