Jump to content

[mod] RJW Dynamics


Recommended Posts

Posted
9 hours ago, Herades said:

Honestly, it's really appreciated that the mod now tells you whether a character is trans or a femboy.

I'd like to suggest something: since trans characters use the female body, could you add an option for femboys to use the thin body type? I think it would fit their appearance much better. The standard male body doesn't really match their feminine look. It might also be nice to give them more default features that enhance their feminine appearance.

Thanks a lot for all the updates.

Yeah, I can add a thin body type to femboys. I would like a little bit of clarification on "standard male body" because femboys should be using the female body like they do in the screenshots. If you are seeing femboys with a male body, that is most definitely a bug. Do you have a mod list you can attach?

Posted

can we please have an option to disallow regular or all males to be bottom/receiving? if such thing already exists i couldnt find it yet. the dominance contest is really hot otherwise. also, can keyholders "unlock" the cages of their subs or is the key only there to enable the training?i set up the breeding training and all that ever happens is butt stuff, even with the keyholder 

Posted (edited)
On 7/4/2026 at 8:34 AM, ProbablyInert said:

Thanks that really means a lot! I will probably be working on this mod for awhile. I am basically making a sweep of changes I wish were part of RJW.

Could "public sex" be added to "dominant fixation"?

I got an idea, maybe you'll like it. Sometimes savages come, they are displayed as wild animals and they need to be tamed. to come up with a technology available already in the Neolithic for their domestication as a pet, capable of learning and reproduction. just with the temperature and the workout, you need to figure something out so that you don't have any clothes at all. to name the type of animal, for example, Tarzan. It is important that they are not settlers, but animals. something like this.

Edited by BulBulOgly
Posted (edited)

Yo thank you for making this mod, we really lack top/bottom mod in the rimworld 😆

There are two yellow errors when I first booted the mod btw;

  • Type ITab_Pawn_Dynamics probably needs a StaticConstructorOnStartup attribute, because it has a field _cageIcon of type Texture2D. All assets must be loaded in the main thread.
  • Type Patch_Sexcard_VulnerabilityBar probably needs a StaticConstructorOnStartup attribute, because it has a field _safeTex of type Texture2D. All assets must be loaded in the main thread.

 

Add: After come more testing, probably because I played with vanilla body, the cages and strap dick render on belly button. Could you add an option for using vanilla texture system? Or explain how to patch it, because I tried adding <wornGraphicPath> node with all of the appropriate textures, and removing your custom <renderNodeProperties>, but nothing happened.

image.png.f73045fb68490dd3b82be89e09f9564b.png

Edited by G_wie
Posted (edited)

Mod is exactly what was missing from RJW and the quirk system!

 

Possible bug or maybe a setup issue on my part: During animations, the chastity key disables rendering of breasts on a futa wearing the key if the futa is naked. Breasts render normally to include the key if the animation is playing with the pawn clothed. Have SA0 enabled and working. Any advice?

 

Also, it seems that if the dom has a bunch of keys equipped the names of the subs will push down the buttons in the dynamics tab below the visible portion of the displayed tab, and there is no scroll bar.

Edited by GenericUsername234
Posted
On 7/5/2026 at 12:31 AM, MoistMidnight said:

can we please have an option to disallow regular or all males to be bottom/receiving? if such thing already exists i couldnt find it yet. the dominance contest is really hot otherwise. also, can keyholders "unlock" the cages of their subs or is the key only there to enable the training?i set up the breeding training and all that ever happens is butt stuff, even with the keyholder 

 

The tenancy for males to bottom is calculated on the spot based on traits, bodies, and genital sizes. I could add a toggle, but there are other ways to stop males from bottoming. For example: futas tend to top men a lot because a toggle in the settings bumps the size of the average futas penis. Bigger penis = more dominant.

 

Disabling "EnableFutaSizeBump" will already drop the chance of men bottoming to 50%. From there, a male pawn with any combination of a high melee stat, hulk body, tough trait, and/or a big penis will basically never bottom. Alternatively, making an ideoligeon with the "Sexual Dynamics" meme and men as doms will stop men from bottoming outright without any trait changes or body types. In the future I may add a toggle to make all men top.

 

On 7/5/2026 at 2:44 AM, BulBulOgly said:

Could "public sex" be added to "dominant fixation"?

I got an idea, maybe you'll like it. Sometimes savages come, they are displayed as wild animals and they need to be tamed. to come up with a technology available already in the Neolithic for their domestication as a pet, capable of learning and reproduction. just with the temperature and the workout, you need to figure something out so that you don't have any clothes at all. to name the type of animal, for example, Tarzan. It is important that they are not settlers, but animals. something like this.

 

I encourage you to look into the Exhibitionist quirk the mod "Privacy, Please" adds. Exhibitionist is a valid fixation in this mod that causes doms to have sex with their sub in public and humiliate them.

 

Cool concept, but the domestic-able pet idea is a bit outside this mod's scope. Building it out into an actual pet system would be a lot of new surface, and this mod is honestly already bigger than I'd like to keep compatible across everyone's mod lists. It would be better as its own mod.

 

8 hours ago, G_wie said:

Yo thank you for making this mod, we really lack top/bottom mod in the rimworld 😆

There are two yellow errors when I first booted the mod btw;

  • Type ITab_Pawn_Dynamics probably needs a StaticConstructorOnStartup attribute, because it has a field _cageIcon of type Texture2D. All assets must be loaded in the main thread.
  • Type Patch_Sexcard_VulnerabilityBar probably needs a StaticConstructorOnStartup attribute, because it has a field _safeTex of type Texture2D. All assets must be loaded in the main thread.

 

Add: After come more testing, probably because I played with vanilla body, the cages and strap dick render on belly button. Could you add an option for using vanilla texture system? Or explain how to patch it, because I tried adding <wornGraphicPath> node with all of the appropriate textures, and removing your custom <renderNodeProperties>, but nothing happened.

image.png.f73045fb68490dd3b82be89e09f9564b.png

 

The static constructor issue is luckily harmless and I opted to suppressed it. The strap-on and cage height is supposed to work with and without SA0, but it looks like some something in the offset got flubbed. Both issues are fixed as of 1.1.1.

 

49 minutes ago, GenericUsername234 said:

Mod is exactly what was missing from RJW and the quirk system!

 

Possible bug or maybe a setup issue on my part: During animations, the chastity key disables rendering of breasts on a futa wearing the key if the futa is naked. Breasts render normally to include the key if the animation is playing with the pawn clothed. Have SA0 enabled and working. Any advice?

 

Nothing in this mod tries to hide breasts. Do a quick check before anything else: take the key off and run the same animation fully nude. If the breasts are still gone, it's SA0 not drawing bare breasts during animations, not the key. If they come back without the key, grab a screenshot and your Player.log and I'll try to recreate it.

Posted (edited)
4 hours ago, ProbablyInert said:

I encourage you to look into the Exhibitionist quirk the mod "Privacy, Please" adds. Exhibitionist is a valid fixation in this mod that causes doms to have sex with their sub in public and humiliate them.

Thanks! I have installed a privacy mod. animal beds with peta pawns cause dissatisfaction among ordinary pawns. Is that the way it's meant to be? Will they get used to it or become exhibitionists? What to expect?

Edited by BulBulOgly
Posted
5 hours ago, ProbablyInert said:

Nothing in this mod tries to hide breasts. Do a quick check before anything else: take the key off and run the same animation fully nude. If the breasts are still gone, it's SA0 not drawing bare breasts during animations, not the key. If they come back without the key, grab a screenshot and your Player.log and I'll try to recreate it.

Animation plays normally with breasts showing with the keys(s) unequipped on the same character, whether they are clothed or naked before the start of the animation. Did some more testing, and it seems the issue is weird and somehow tied to the vanilla Formal Shirt.

 

Dom pawn wearing Formal Shirt and Keys with Sub pawn wearing Chastity Belt = No tits on the Dom during animation

Dom pawn wearing Button Down Shirt and Keys with Sub pawn wearing Chastity Belt= Everyone has tits as normal

Dom pawn wearing Keys and Sub pawn wearing Formal Shirt and Chastity Belt = No tits on the Sub pawn while Dom pawn has normal rendered tits.

Dom pawn wearing Formal Shirt without Keys and Sub Pawn wearing Chastity Belt = Everyone has tits as normal

 

Formal shirt doesn't cause this issue without this mod installed. Maybe it has something to do with the Belt/Key being in the utility layer and rendering? But honestly, have no clue why it would affect the Formal Shirt but not the Button Down Shirt...

Posted

Oh, and the scroll bar does initially appear in the "Dynam" tab of the pawn. But it throws out these three errors and the scroll bar disappears until game reload.

Spoiler

Could not resolve symbol "PAWN_labelShortCap" for string "Training held subs for: {FOCUS}. {PAWN_labelShortCap} {BLURB}".
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch1 (string)
Verse.Log:ErrorOnce (string,int)
Verse.GrammarResolverSimple:TryResolveInner (Verse.TaggedString,int,System.Text.StringBuilder,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>,bool)
Verse.GrammarResolverSimple:Formatted (Verse.TaggedString,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>)
Verse.GrammarResolverSimpleStringExtensions:Formatted (string,Verse.NamedArgument,Verse.NamedArgument,Verse.NamedArgument)
Verse.GrammarResolverSimpleStringExtensions:Formatted (Verse.TaggedString,Verse.NamedArgument,Verse.NamedArgument,Verse.NamedArgument)
Verse.TranslatorFormattedStringExtensions:Translate (string,Verse.NamedArgument,Verse.NamedArgument,Verse.NamedArgument)
RJWDynamics.ITab_Pawn_Dynamics:FillTab ()
Verse.InspectTabBase/<>c__DisplayClass19_0:<DoTabGUI>b__0 ()
Verse.ImmediateWindow:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)

 

Spoiler

Could not resolve symbol "PAWN_labelShortCap" for string "with {PAWN_labelShortCap}".
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch1 (string)
Verse.Log:ErrorOnce (string,int)
Verse.GrammarResolverSimple:TryResolveInner (Verse.TaggedString,int,System.Text.StringBuilder,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>,bool)
Verse.GrammarResolverSimple:Formatted (Verse.TaggedString,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>)
Verse.GrammarResolverSimpleStringExtensions:Formatted (string,Verse.NamedArgument)
Verse.GrammarResolverSimpleStringExtensions:Formatted (Verse.TaggedString,Verse.NamedArgument)
Verse.TranslatorFormattedStringExtensions:Translate (string,Verse.NamedArgument)
RJWDynamics.ITab_Pawn_Dynamics:FillTab ()
Verse.InspectTabBase/<>c__DisplayClass19_0:<DoTabGUI>b__0 ()
Verse.ImmediateWindow:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)

Spoiler

Could not resolve symbol "DRIVER_labelShortCap" for string " (set by {DRIVER_labelShortCap})".
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch1 (string)
Verse.Log:ErrorOnce (string,int)
Verse.GrammarResolverSimple:TryResolveInner (Verse.TaggedString,int,System.Text.StringBuilder,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>,bool)
Verse.GrammarResolverSimple:Formatted (Verse.TaggedString,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>)
Verse.GrammarResolverSimpleStringExtensions:Formatted (string,Verse.NamedArgument)
Verse.GrammarResolverSimpleStringExtensions:Formatted (Verse.TaggedString,Verse.NamedArgument)
Verse.TranslatorFormattedStringExtensions:Translate (string,Verse.NamedArgument)
RJWDynamics.ITab_Pawn_Dynamics:FillTab ()
Verse.InspectTabBase/<>c__DisplayClass19_0:<DoTabGUI>b__0 ()
Verse.ImmediateWindow:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)

Posted (edited)

loving the consistent updates and improvements! Only reason I go on this site daily is to check what you've done next 😁. Also, if you don't mind me asking how you use AI for the coding is just optimizations or certain things you didn't know how to code?

Edited by CoffeeFlavor
Posted
21 hours ago, ProbablyInert said:

 

The tenancy for males to bottom is calculated on the spot based on traits, bodies, and genital sizes. I could add a toggle, but there are other ways to stop males from bottoming. For example: futas tend to top men a lot because a toggle in the settings bumps the size of the average futas penis. Bigger penis = more dominant.

 

Disabling "EnableFutaSizeBump" will already drop the chance of men bottoming to 50%. From there, a male pawn with any combination of a high melee stat, hulk body, tough trait, and/or a big penis will basically never bottom. Alternatively, making an ideoligeon with the "Sexual Dynamics" meme and men as doms will stop men from bottoming outright without any trait changes or body types. In the future I may add a toggle to make all men top.

 

 

Yeah I've already resorted to shrinking/increasing their meat and looked for more immersive ways like Rimbody to turn males into hulks. Ive still seen futa slaves dominate regular male colonists especially if the (futa)pawn had already spawned in with >10 melee and I cant do nothing about it. A toggle would be really appreciated ;_; 

 

Also, RJW just got an update and RJW dynamics UI and mod menu turned into a mess 

Posted

Hi,

I have ran into an issue with RimJobWorld - Onahole Extension 3.2.6 and this mod, I have zero programming experience for context, but irrespective of where in the load order they are with each other when dynamics is enabled and a female pawn is placed into a contraption from Onahole it leads to them becoming invisible and crashes the tps. Maybe someone can help?

Here is the error that is thrown:
 

Spoiler

Error rendering pawn portrait: System.NullReferenceException: Object reference not set to an instance of an object [Ref 66CD0A50] rjw.Modules.Interactions.SexInteraction..ctor(InteractionDef def) at rjw.SexProps.get_interaction () [0x00008] in /rjw/Comps/SexProps.cs:59 at rjw.SexProps.get_sexType () [0x0000d] in /rjw/Comps/SexProps.cs:116 at RJWDynamics.Patch_SA0_HideMismatchedOrificesDuringSex.ShouldHide (rjw.SexProps props, System.Boolean isVagina, System.Boolean isAnus) [0x0000d] in <fb738b5cb384401f95fa7acbe96f1781>:0 at RJWDynamics.Patch_SA0_HideMismatchedOrificesDuringSex.Postfix (Verse.PawnRenderNode node, System.Boolean& __result) [0x000a7] in <fb738b5cb384401f95fa7acbe96f1781>:0 at SizedApparel.SizedApparelRenderNodeWorker.CanDrawNow (Verse.PawnRenderNode node, Verse.PawnDrawParms parms) [0x00042] in <eb4ee254d7fd4f519ef63d3092d4e315>:0 - POSTFIX futacracy: Void RJWDynamics.Patch_SA0_HideMismatchedOrificesDuringSex:Postfix(PawnRenderNode node, Boolean& __result) - POSTFIX futacracy: Void RJWDynamics.Patch_SA0_RevealCrotchNodeWhenNude:Postfix(PawnRenderNode node, Boolean& __result) at Verse.PawnRenderNode.AppendRequests (Verse.PawnDrawParms parms, System.Collections.Generic.List1[T] requests) [0x000f7] in <61e4173561894da49d210260257b5097>:0 - PREFIX rjwanim: Boolean Rimworld_Animations.HarmonyPatch_PawnRenderNode:Prefix(PawnRenderNode& __instance, PawnDrawParms& parms) at Verse.PawnRenderNode.AppendRequests (Verse.PawnDrawParms parms, System.Collections.Generic.List1[T] requests) [0x0010a] in <61e4173561894da49d210260257b5097>:0 - PREFIX rjwanim: Boolean Rimworld_Animations.HarmonyPatch_PawnRenderNode:Prefix(PawnRenderNode& __instance, PawnDrawParms& parms) at Verse.PawnRenderTree.ParallelPreDraw (Verse.PawnDrawParms parms) [0x00084] in <61e4173561894da49d210260257b5097>:0 - PREFIX co.uk.epicguru.meleeanimation: Void AM.Patches.Patch_PawnRenderTree_ParallelPreDraw:Prefix(PawnDrawParms parms, State& __state) - POSTFIX co.uk.epicguru.meleeanimation: Void AM.Patches.Patch_PawnRenderTree_ParallelPreDraw:Postfix(State& __state) - POSTFIX rimworld.Nals.FacialAnimation: Void FacialAnimation.HarmonyPatches:PostfixParallelPreDraw(PawnRenderTree __instance, Pawn& ___pawn, List1& ___drawRequests, PawnDrawParms parms) at Verse.PawnRenderer.RenderCache (Verse.Rot4 rotation, System.Single angle, UnityEngine.Vector3 positionOffset, System.Boolean renderHead, System.Boolean portrait, System.Boolean renderHeadgear, System.Boolean renderClothes, System.Collections.Generic.IReadOnlyDictionary2[TKey,TValue] overrideApparelColor, System.Nullable1[T] overrideHairColor, System.Boolean stylingStation) [0x0014a] in <61e4173561894da49d210260257b5097>:0 UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch4 (string) Verse.PawnRenderer:RenderCache (Verse.Rot4,single,UnityEngine.Vector3,bool,bool,bool,bool,System.Collections.Generic.IReadOnlyDictionary2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable1<UnityEngine.Color>,bool) RimWorld.PawnCacheRenderer:OnPostRender () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.PawnCacheRenderer.RenderPawn_Patch1 (RimWorld.PawnCacheRenderer,Verse.Pawn,UnityEngine.RenderTexture,UnityEngine.Vector3,single,single,Verse.Rot4,bool,bool,bool,bool,UnityEngine.Vector3,System.Collections.Generic.IReadOnlyDictionary2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable1<UnityEngine.Color>,bool) RimWorld.PortraitsCache/PortraitParams:RenderPortrait (Verse.Pawn,UnityEngine.RenderTexture) RimWorld.PortraitsCache:Get (Verse.Pawn,UnityEngine.Vector2,Verse.Rot4,UnityEngine.Vector3,single,bool,bool,bool,bool,System.Collections.Generic.IReadOnlyDictionary2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable1<UnityEngine.Color>,bool,System.Nullable1<Verse.PawnHealthState>) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.ColonistBarColonistDrawer.DrawColonist_Patch1 (RimWorld.ColonistBarColonistDrawer,UnityEngine.Rect,Verse.Pawn,Verse.Map,bool,bool) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.ColonistBar.ColonistBarOnGUI_Patch2 (RimWorld.ColonistBar) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.MapInterface.MapInterfaceOnGUI_BeforeMainTabs_Patch2 (RimWorld.MapInterface) RimWorld.UIRoot_Play:UIRootOnGUI () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Root.OnGUI_Patch1 (Verse.Root)

 

Posted
19 hours ago, GenericUsername234 said:

Animation plays normally with breasts showing with the keys(s) unequipped on the same character, whether they are clothed or naked before the start of the animation. Did some more testing, and it seems the issue is weird and somehow tied to the vanilla Formal Shirt.

 

Dom pawn wearing Formal Shirt and Keys with Sub pawn wearing Chastity Belt = No tits on the Dom during animation

Dom pawn wearing Button Down Shirt and Keys with Sub pawn wearing Chastity Belt= Everyone has tits as normal

Dom pawn wearing Keys and Sub pawn wearing Formal Shirt and Chastity Belt = No tits on the Sub pawn while Dom pawn has normal rendered tits.

Dom pawn wearing Formal Shirt without Keys and Sub Pawn wearing Chastity Belt = Everyone has tits as normal

 

Formal shirt doesn't cause this issue without this mod installed. Maybe it has something to do with the Belt/Key being in the utility layer and rendering? But honestly, have no clue why it would affect the Formal Shirt but not the Button Down Shirt...

Another thing that could be related: The chastity belts are rendered at a layer ABOVE the breasts from SA0, so if the breast sizes get too big they'll clip under the chastity belt.

Posted

Thank you for the quick fix, just one last thing:

 

I'm working with a retexture mod that vanilla-fy some BDSM gears, including S16's and petification, so I really wanted to add this in my collection as well (since I dislike how hololock-heavy RJW Extension stuffs are). The only problem is that I couldn't patch "tiny cage" to give it different graphics than sadist cage. I have no idea where it went wrong since there's no patch failure notification, so maybe can you help check the patch, or if anything else, add their own texture folder?

Patches.zip

Posted (edited)

1.1.3 is up. 1.1.2 also went up a couple of days ago and I never said anything about it. A few of you reported something, got no reply, and had no way to know the fix was already in the download. That is my bad. If you are still on 1.1.1, update before you retest any of this.

 

On 7/6/2026 at 7:53 PM, BulBulOgly said:

Thanks! I have installed a privacy mod. animal beds with peta pawns cause dissatisfaction among ordinary pawns. Is that the way it's meant to be? Will they get used to it or become exhibitionists? What to expect?

 

Generally speaking, exhibitionism only applies to the exhibitionist themselves. Onlookers still get mood hits from witnessing bestiality and public sex unless their ideology approves of it. The mood hits themselves are most likely from Privacy Please rather than this mod and it has its own set of mod options for things like this.

 

On 7/7/2026 at 8:48 AM, CoffeeFlavor said:

loving the consistent updates and improvements! Only reason I go on this site daily is to check what you've done next 😁. Also, if you don't mind me asking how you use AI for the coding is just optimizations or certain things you didn't know how to code?

 

I know how to do most of the stuff myself but I use AI for boilerplate code, IL, and navigating the many mod overlaps/conflicts with features from this mod. I still review everything and have to rigorously test things in-game. There is a 10 page long markdown file for the AI of just pitfalls that cause massive issues/crashes to avoid. Most of the syntax AI writes is okay but edits to XML always have to be treated with great suspicion or avoided entirely. Other than that, AI mostly just speeds up the writing and investigating process. The textures are actually blender renders that I took and cleaned up to look Rimworld-themed.

 

On 7/7/2026 at 1:56 PM, MoistMidnight said:

Yeah I've already resorted to shrinking/increasing their meat and looked for more immersive ways like Rimbody to turn males into hulks. Ive still seen futa slaves dominate regular male colonists especially if the (futa)pawn had already spawned in with >10 melee and I cant do nothing about it. A toggle would be really appreciated ;_; 

 

Also, RJW just got an update and RJW dynamics UI and mod menu turned into a mess 

 

Both done in 1.1.2. There is a toggle now to make male pawns always top, so you can stop shrinking meat and sending them to the gym. The UI mess after the RJW update was my bug, not theirs. I was resolving pawn names with a token that was never valid and the RJW change surfaced it. It threw on every draw, which garbled the names and took the tab's scroll bar with it.

 

On 7/7/2026 at 2:34 PM, Applebottomb0i said:

Hi,

I have ran into an issue with RimJobWorld - Onahole Extension 3.2.6 and this mod, I have zero programming experience for context, but irrespective of where in the load order they are with each other when dynamics is enabled and a female pawn is placed into a contraption from Onahole it leads to them becoming invisible and crashes the tps. Maybe someone can help?

Here is the error that is thrown:
 

  Reveal hidden contents

Error rendering pawn portrait: System.NullReferenceException: Object reference not set to an instance of an object [Ref 66CD0A50] rjw.Modules.Interactions.SexInteraction..ctor(InteractionDef def) at rjw.SexProps.get_interaction () [0x00008] in /rjw/Comps/SexProps.cs:59 at rjw.SexProps.get_sexType () [0x0000d] in /rjw/Comps/SexProps.cs:116 at RJWDynamics.Patch_SA0_HideMismatchedOrificesDuringSex.ShouldHide (rjw.SexProps props, System.Boolean isVagina, System.Boolean isAnus) [0x0000d] in <fb738b5cb384401f95fa7acbe96f1781>:0 at RJWDynamics.Patch_SA0_HideMismatchedOrificesDuringSex.Postfix (Verse.PawnRenderNode node, System.Boolean& __result) [0x000a7] in <fb738b5cb384401f95fa7acbe96f1781>:0 at SizedApparel.SizedApparelRenderNodeWorker.CanDrawNow (Verse.PawnRenderNode node, Verse.PawnDrawParms parms) [0x00042] in <eb4ee254d7fd4f519ef63d3092d4e315>:0 - POSTFIX futacracy: Void RJWDynamics.Patch_SA0_HideMismatchedOrificesDuringSex:Postfix(PawnRenderNode node, Boolean& __result) - POSTFIX futacracy: Void RJWDynamics.Patch_SA0_RevealCrotchNodeWhenNude:Postfix(PawnRenderNode node, Boolean& __result) at Verse.PawnRenderNode.AppendRequests (Verse.PawnDrawParms parms, System.Collections.Generic.List1[T] requests) [0x000f7] in <61e4173561894da49d210260257b5097>:0 - PREFIX rjwanim: Boolean Rimworld_Animations.HarmonyPatch_PawnRenderNode:Prefix(PawnRenderNode& __instance, PawnDrawParms& parms) at Verse.PawnRenderNode.AppendRequests (Verse.PawnDrawParms parms, System.Collections.Generic.List1[T] requests) [0x0010a] in <61e4173561894da49d210260257b5097>:0 - PREFIX rjwanim: Boolean Rimworld_Animations.HarmonyPatch_PawnRenderNode:Prefix(PawnRenderNode& __instance, PawnDrawParms& parms) at Verse.PawnRenderTree.ParallelPreDraw (Verse.PawnDrawParms parms) [0x00084] in <61e4173561894da49d210260257b5097>:0 - PREFIX co.uk.epicguru.meleeanimation: Void AM.Patches.Patch_PawnRenderTree_ParallelPreDraw:Prefix(PawnDrawParms parms, State& __state) - POSTFIX co.uk.epicguru.meleeanimation: Void AM.Patches.Patch_PawnRenderTree_ParallelPreDraw:Postfix(State& __state) - POSTFIX rimworld.Nals.FacialAnimation: Void FacialAnimation.HarmonyPatches:PostfixParallelPreDraw(PawnRenderTree __instance, Pawn& ___pawn, List1& ___drawRequests, PawnDrawParms parms) at Verse.PawnRenderer.RenderCache (Verse.Rot4 rotation, System.Single angle, UnityEngine.Vector3 positionOffset, System.Boolean renderHead, System.Boolean portrait, System.Boolean renderHeadgear, System.Boolean renderClothes, System.Collections.Generic.IReadOnlyDictionary2[TKey,TValue] overrideApparelColor, System.Nullable1[T] overrideHairColor, System.Boolean stylingStation) [0x0014a] in <61e4173561894da49d210260257b5097>:0 UnityEngine.StackTraceUtility:ExtractStackTrace () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch4 (string) Verse.PawnRenderer:RenderCache (Verse.Rot4,single,UnityEngine.Vector3,bool,bool,bool,bool,System.Collections.Generic.IReadOnlyDictionary2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable1<UnityEngine.Color>,bool) RimWorld.PawnCacheRenderer:OnPostRender () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.PawnCacheRenderer.RenderPawn_Patch1 (RimWorld.PawnCacheRenderer,Verse.Pawn,UnityEngine.RenderTexture,UnityEngine.Vector3,single,single,Verse.Rot4,bool,bool,bool,bool,UnityEngine.Vector3,System.Collections.Generic.IReadOnlyDictionary2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable1<UnityEngine.Color>,bool) RimWorld.PortraitsCache/PortraitParams:RenderPortrait (Verse.Pawn,UnityEngine.RenderTexture) RimWorld.PortraitsCache:Get (Verse.Pawn,UnityEngine.Vector2,Verse.Rot4,UnityEngine.Vector3,single,bool,bool,bool,bool,System.Collections.Generic.IReadOnlyDictionary2<RimWorld.Apparel, UnityEngine.Color>,System.Nullable1<UnityEngine.Color>,bool,System.Nullable1<Verse.PawnHealthState>) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.ColonistBarColonistDrawer.DrawColonist_Patch1 (RimWorld.ColonistBarColonistDrawer,UnityEngine.Rect,Verse.Pawn,Verse.Map,bool,bool) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.ColonistBar.ColonistBarOnGUI_Patch2 (RimWorld.ColonistBar) (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:RimWorld.MapInterface.MapInterfaceOnGUI_BeforeMainTabs_Patch2 (RimWorld.MapInterface) RimWorld.UIRoot_Play:UIRootOnGUI () (wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Root.OnGUI_Patch1 (Verse.Root)

 

 

Fixed in 1.1.2. Grab the current build. If it still happens, post the log again and I will look at it when I am back.

 

On 7/6/2026 at 11:06 PM, GenericUsername234 said:

Animation plays normally with breasts showing with the keys(s) unequipped on the same character, whether they are clothed or naked before the start of the animation. Did some more testing, and it seems the issue is weird and somehow tied to the vanilla Formal Shirt.

 

Dom pawn wearing Formal Shirt and Keys with Sub pawn wearing Chastity Belt = No tits on the Dom during animation

Dom pawn wearing Button Down Shirt and Keys with Sub pawn wearing Chastity Belt= Everyone has tits as normal

Dom pawn wearing Keys and Sub pawn wearing Formal Shirt and Chastity Belt = No tits on the Sub pawn while Dom pawn has normal rendered tits.

Dom pawn wearing Formal Shirt without Keys and Sub Pawn wearing Chastity Belt = Everyone has tits as normal

 

Formal shirt doesn't cause this issue without this mod installed. Maybe it has something to do with the Belt/Key being in the utility layer and rendering? But honestly, have no clue why it would affect the Formal Shirt but not the Button Down Shirt...

 

On 7/6/2026 at 11:20 PM, GenericUsername234 said:

Oh, and the scroll bar does initially appear in the "Dynam" tab of the pawn. But it throws out these three errors and the scroll bar disappears until game reload.

  Reveal hidden contents

Could not resolve symbol "PAWN_labelShortCap" for string "Training held subs for: {FOCUS}. {PAWN_labelShortCap} {BLURB}".
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch1 (string)
Verse.Log:ErrorOnce (string,int)
Verse.GrammarResolverSimple:TryResolveInner (Verse.TaggedString,int,System.Text.StringBuilder,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>,bool)
Verse.GrammarResolverSimple:Formatted (Verse.TaggedString,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>)
Verse.GrammarResolverSimpleStringExtensions:Formatted (string,Verse.NamedArgument,Verse.NamedArgument,Verse.NamedArgument)
Verse.GrammarResolverSimpleStringExtensions:Formatted (Verse.TaggedString,Verse.NamedArgument,Verse.NamedArgument,Verse.NamedArgument)
Verse.TranslatorFormattedStringExtensions:Translate (string,Verse.NamedArgument,Verse.NamedArgument,Verse.NamedArgument)
RJWDynamics.ITab_Pawn_Dynamics:FillTab ()
Verse.InspectTabBase/<>c__DisplayClass19_0:<DoTabGUI>b__0 ()
Verse.ImmediateWindow:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)

 

  Reveal hidden contents

Could not resolve symbol "PAWN_labelShortCap" for string "with {PAWN_labelShortCap}".
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch1 (string)
Verse.Log:ErrorOnce (string,int)
Verse.GrammarResolverSimple:TryResolveInner (Verse.TaggedString,int,System.Text.StringBuilder,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>,bool)
Verse.GrammarResolverSimple:Formatted (Verse.TaggedString,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>)
Verse.GrammarResolverSimpleStringExtensions:Formatted (string,Verse.NamedArgument)
Verse.GrammarResolverSimpleStringExtensions:Formatted (Verse.TaggedString,Verse.NamedArgument)
Verse.TranslatorFormattedStringExtensions:Translate (string,Verse.NamedArgument)
RJWDynamics.ITab_Pawn_Dynamics:FillTab ()
Verse.InspectTabBase/<>c__DisplayClass19_0:<DoTabGUI>b__0 ()
Verse.ImmediateWindow:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)

  Reveal hidden contents

Could not resolve symbol "DRIVER_labelShortCap" for string " (set by {DRIVER_labelShortCap})".
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch1 (string)
Verse.Log:ErrorOnce (string,int)
Verse.GrammarResolverSimple:TryResolveInner (Verse.TaggedString,int,System.Text.StringBuilder,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>,bool)
Verse.GrammarResolverSimple:Formatted (Verse.TaggedString,System.Collections.Generic.List`1<string>,System.Collections.Generic.List`1<object>)
Verse.GrammarResolverSimpleStringExtensions:Formatted (string,Verse.NamedArgument)
Verse.GrammarResolverSimpleStringExtensions:Formatted (Verse.TaggedString,Verse.NamedArgument)
Verse.TranslatorFormattedStringExtensions:Translate (string,Verse.NamedArgument)
RJWDynamics.ITab_Pawn_Dynamics:FillTab ()
Verse.InspectTabBase/<>c__DisplayClass19_0:<DoTabGUI>b__0 ()
Verse.ImmediateWindow:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)

On 7/7/2026 at 6:31 PM, GenericUsername234 said:

Another thing that could be related: The chastity belts are rendered at a layer ABOVE the breasts from SA0, so if the breast sizes get too big they'll clip under the chastity belt.

 

All three are fixed in 1.1.2. The formal shirt testing was a major help, thank you for that. The key was never hiding the breasts. SA0 decides whether to draw bare breasts by looking at what apparel is on the pawn, and my cage, strapon, and key all counted as clothing. The formal shirt has no sized version in SA0 and button down does, so with one of my items on, SA0 hid the breasts and nothing drew them back. My nodes are excluded from that check now.

 

The scroll bar and those three errors were the same bug as the garbled names MoistMidnight had. Something threw partway through drawing the tab, so the code that closes the scroll view never ran, and the GUI stayed broken until reload. Belts draw behind the breasts now. The belts were drawing on top as a band-aid fix to pubic hair showing above the belt. I have since sorted the layering out.

 

17 hours ago, G_wie said:

Thank you for the quick fix, just one last thing:

 

I'm working with a retexture mod that vanilla-fy some BDSM gears, including S16's and petification, so I really wanted to add this in my collection as well (since I dislike how hololock-heavy RJW Extension stuffs are). The only problem is that I couldn't patch "tiny cage" to give it different graphics than sadist cage. I have no idea where it went wrong since there's no patch failure notification, so maybe can you help check the patch, or if anything else, add their own texture folder?

Patches.zip 22.89 kB · 1 download

 

Your patch is good, both cages pointed to the same tiny cage textures so there was no way to reskin one without the other. As of 1.1.3, both cages have their own texture folders. Both cages support severity sizes 0 through 5 from SA0. Your artwork looks great by the way.

 

17 hours ago, Herades said:

Now, when I add the femboy trait, something happens to the NPCs' faces.

 

Some of that is on purpose. Femboys read as female to Nal's Facial Animation so they get female face parts. If the faces just look feminine, that is working. If something is actually wrong, missing eyes especially, that was a bug I fixed in 1.1.1, so make sure you are current. If you are still seeing it on 1.1.3, send a screenshot and we can work it out when I get back. Editing a femboy in Character Editor resets his body to male, which looks like my bug and is not. I also added thin bodies for femboys in 1.1.1.

 

Edited by ProbablyInert
Posted (edited)

I am going out of town and won't be able to work on this until August 2nd.

 

The mod is not abandoned and I have not lost interest. I would rather say I won't be around now than go silent for three weeks. I have posted version 1.1.3 and left 1.1.2 up as well in case 1.1.3 has a bad bug while I am gone.

 

Keep posting bugs. I won't be able to answer them, but I will read the whole thread when I get back and work through it. A report with your Player.log and your mod list is worth ten without. If RJW updates and something in here breaks, I won't be able to fix it before August. The source is MIT and lives at gitgud.io/ProbablyInert/rjw-dynamics, so patch around it if you need to, and post it here if you do.

 

Thank you all for the reports, testing, and ideas. See you in August.

Edited by ProbablyInert
Posted (edited)

I added this to an existing save.  I am unable to craft the chastity cage or flat cage.  It says "Missing Steel" and "Missing Metal" respectively.  I have plenty of steel, etc.

 

ETA: I was able to Dev Mode in a cage.  I'm just blown away at how extensive this mod is.  

 

ETA: I was the one that broke my game by removing a mod mid-save.  RJW-Dynamics is innocent here.  I am dumb.

Edited by Rimworld Traveller
Posted
On 7/10/2026 at 4:21 AM, ProbablyInert said:

I am going out of town and won't be able to work on this until August 2nd.

 

The mod is not abandoned and I have not lost interest. I would rather say I won't be around now than go silent for three weeks. I have posted version 1.1.3 and left 1.1.2 up as well in case 1.1.3 has a bad bug while I am gone.

 

Keep posting bugs. I won't be able to answer them, but I will read the whole thread when I get back and work through it. A report with your Player.log and your mod list is worth ten without. If RJW updates and something in here breaks, I won't be able to fix it before August. The source is MIT and lives at gitgud.io/ProbablyInert/rjw-dynamics, so patch around it if you need to, and post it here if you do.

 

Thank you all for the reports, testing, and ideas. See you in August.

tysm for the men always top toggle ♥ truly cooking with this one 

Posted

The pawns are constantly running after each other and asking for the key, as a result, no one is working. is it possible to limit this somehow or make a switch? maybe there is such a switch in the settings, I just couldn't find it. maybe someone will point this out to me.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...