Jump to content

[mod] Rimjobworld - Highmate Patch


Recommended Posts

Posted

Rimjobworld - Highmate Patch


Allows RJW sex to fulfill the Lovin' need introduced in Vanilla Races Expanded - Highmate.

 

Made with

  • Rimworld v1.6
  • RJW v6.1.2 (April 2, 2026)
  • VRE - Highmate v3.0.2 (October 10, 2025)

 

It would be great of a larger race compatibility patch author could include this with their file.

 

Instructions:

  1. Extract to the Rimworld Mods folder
  2. Activate mod with mod manager or in game.
  3. Make sure patch is below the following mods
    1. VRE - Highmate
    2. RJW

 

Safe to add midgame.


Source code for the DLL patch (v1.01):

Spoiler

 

using HarmonyLib;
using rjw;
using System;
using System.Net;
using System.Reflection;
using VanillaRacesExpandedHighmate;
using RimWorld;
using Verse;

namespace RJWHighmatePatch
{
    [StaticConstructorOnStartup]
    public class ModInitializer
    {
        static ModInitializer()
        {
            new Harmony("com.RJWHighmatePatch").PatchAll(Assembly.GetExecutingAssembly());
        }
    }
}

[HarmonyPatch(typeof(SexUtility), "SatisfyPersonal")]
public static class RJW_LovinSex_Patch
{
    [HarmonyPostfix]
    public static void Postfix(SexProps props, float satisfaction)
    {
        Pawn pawn = props.pawn;
        if (pawn == null || !pawn.Spawned) return;
        Need_Lovin need_Lovin;
        Pawn_NeedsTracker needs = pawn.needs;
        need_Lovin = ((needs != null) ? needs.TryGetNeed<Need_Lovin>() : null);

        if (need_Lovin != null)
        {
            need_Lovin.CurLevel = 1f;
        }
    }
}

 

 


  • Submitter
  • Submitted
    05/31/26
  • Category
  • Requirements
    Harmony
    RJW (1.6+)
    Vanilla Races Expanded - Highmate
  • Install Instructions

 

Posted (edited)

Cool, I didn't even know about vanilla races expanded. Do other races require RJW patches too?

 

The patch throws an error:

 

Spoiler

Error in static constructor of RJWHighmatePatch.ModInitializer: System.TypeInitializationException: The type initializer for 'RJWHighmatePatch.ModInitializer' threw an exception. ---> HarmonyLib.HarmonyException: Patching exception in method static System.Void rjw.SexUtility::SatisfyPersonal(rjw.SexProps props, System.Single satisfaction) ---> System.Exception: Parameter "pawn" not found in method static System.Void rjw.SexUtility::SatisfyPersonal(rjw.SexProps props, System.Single satisfaction)
[Ref A7EF28E7]
  at HarmonyLib.MethodCreatorTools.EmitCallParameter (HarmonyLib.MethodCreator creator, System.Reflection.MethodInfo patch, System.Boolean allowFirsParamPassthrough, System.Reflection.Emit.LocalBuilder& tmpInstanceBoxingVar, System.Reflection.Emit.LocalBuilder& tmpObjectVar, System.Boolean& refResultUsed, System.Collections.Generic.List`1[T] tmpBoxVars) [0x00a37] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.MethodCreator.AddPostfixes (System.Boolean passthroughPatches) [0x00079] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.MethodCreator.CreateReplacement () [0x00500] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x0007c] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.PatchClassProcessor.ProcessPatchJob (HarmonyLib.PatchJobs`1+Job[T] job) [0x000f8] in <024a0e6ec8c2437ead047b6279389c23>:0 
   --- End of inner exception stack trace ---
[Ref BCB63A03]
  at HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) [0x0013c] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.PatchClassProcessor.Patch () [0x00096] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.Harmony.<PatchAll>b__10_1 (System.Type type) [0x00007] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.CollectionExtensions.Do[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Action`1[T] action) [0x00014] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.CollectionExtensions.DoIf[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Func`2[T,TResult] condition, System.Action`1[T] action) [0x00007] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.Harmony.PatchAll (System.Reflection.Assembly assembly) [0x00006] in <024a0e6ec8c2437ead047b6279389c23>:0 
RJWHighmatePatch.ModInitializer..cctor()
   --- End of inner exception stack trace ---
[Ref 64F24772]
(wrapper managed-to-native) System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(intptr)
  at System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor (System.RuntimeTypeHandle type) [0x0002a] in <51fded79cd284d4d911c5949aff4cb21>:0 
  at Verse.StaticConstructorOnStartupUtility.CallAll () [0x00028] in <46372f5dadbf4af8939e608076251180>:0 
    - POSTFIX LunarFramework.Bootstrap: Void LunarFramework.Internal.Patches.Patch_Verse_StaticConstructorOnStartupUtility:CallAll_Postfix()
    - POSTFIX PerformanceOptimizer.Main: Void PerformanceOptimizer.InitializeMod:Postfix()
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch3 (string)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.StaticConstructorOnStartupUtility.CallAll_Patch2 ()
Verse.PlayDataLoader/<>c:<DoPlayLoad>b__4_4 ()
Verse.LongEventHandler:ExecuteToExecuteWhenFinished ()
Verse.LongEventHandler:UpdateCurrentAsynchronousEvent ()
Verse.LongEventHandler:LongEventsUpdate (bool&)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Root.Update_Patch1 (Verse.Root)
Verse.Root_Entry:Update ()

 

Edited by plutocene
Posted (edited)
17 hours ago, Wolfblade57 said:

What other mods were used to take the photos if i may Ask, also Cool mod.

Thanks.

 

My full mod list has 380 entries. The ones that stand out on the screenshot:

 

UI

  • RimHUD
  • Better Needs Tab (Colored/rearranged need bars)
  • Colonist Bar Adjuster
  • [NL] Custom Portraits
  • [NL] Dynamic Portraits
  • [NL] Facial Animation

Construction

  • Hull Style: NANAME Walls (Diagonal walls)
  • Flooring Floors
  • Better Trees (Big Trees)
  • Alpha Biomes (Feralisk Jungle Biome)
  • Tang's Retexture (Food/item retextures)

 

7 hours ago, plutocene said:

Cool, I didn't even know about vanilla races expanded. Do other races require RJW patches too?

 

The patch throws an error:

 

  Reveal hidden contents

Error in static constructor of RJWHighmatePatch.ModInitializer: System.TypeInitializationException: The type initializer for 'RJWHighmatePatch.ModInitializer' threw an exception. ---> HarmonyLib.HarmonyException: Patching exception in method static System.Void rjw.SexUtility::SatisfyPersonal(rjw.SexProps props, System.Single satisfaction) ---> System.Exception: Parameter "pawn" not found in method static System.Void rjw.SexUtility::SatisfyPersonal(rjw.SexProps props, System.Single satisfaction)
[Ref A7EF28E7]
  at HarmonyLib.MethodCreatorTools.EmitCallParameter (HarmonyLib.MethodCreator creator, System.Reflection.MethodInfo patch, System.Boolean allowFirsParamPassthrough, System.Reflection.Emit.LocalBuilder& tmpInstanceBoxingVar, System.Reflection.Emit.LocalBuilder& tmpObjectVar, System.Boolean& refResultUsed, System.Collections.Generic.List`1[T] tmpBoxVars) [0x00a37] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.MethodCreator.AddPostfixes (System.Boolean passthroughPatches) [0x00079] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.MethodCreator.CreateReplacement () [0x00500] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.PatchFunctions.UpdateWrapper (System.Reflection.MethodBase original, HarmonyLib.PatchInfo patchInfo) [0x0007c] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.PatchClassProcessor.ProcessPatchJob (HarmonyLib.PatchJobs`1+Job[T] job) [0x000f8] in <024a0e6ec8c2437ead047b6279389c23>:0 
   --- End of inner exception stack trace ---
[Ref BCB63A03]
  at HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) [0x0013c] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.PatchClassProcessor.Patch () [0x00096] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.Harmony.<PatchAll>b__10_1 (System.Type type) [0x00007] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.CollectionExtensions.Do[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Action`1[T] action) [0x00014] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.CollectionExtensions.DoIf[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Func`2[T,TResult] condition, System.Action`1[T] action) [0x00007] in <024a0e6ec8c2437ead047b6279389c23>:0 
  at HarmonyLib.Harmony.PatchAll (System.Reflection.Assembly assembly) [0x00006] in <024a0e6ec8c2437ead047b6279389c23>:0 
RJWHighmatePatch.ModInitializer..cctor()
   --- End of inner exception stack trace ---
[Ref 64F24772]
(wrapper managed-to-native) System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(intptr)
  at System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor (System.RuntimeTypeHandle type) [0x0002a] in <51fded79cd284d4d911c5949aff4cb21>:0 
  at Verse.StaticConstructorOnStartupUtility.CallAll () [0x00028] in <46372f5dadbf4af8939e608076251180>:0 
    - POSTFIX LunarFramework.Bootstrap: Void LunarFramework.Internal.Patches.Patch_Verse_StaticConstructorOnStartupUtility:CallAll_Postfix()
    - POSTFIX PerformanceOptimizer.Main: Void PerformanceOptimizer.InitializeMod:Postfix()
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch3 (string)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.StaticConstructorOnStartupUtility.CallAll_Patch2 ()
Verse.PlayDataLoader/<>c:<DoPlayLoad>b__4_4 ()
Verse.LongEventHandler:ExecuteToExecuteWhenFinished ()
Verse.LongEventHandler:UpdateCurrentAsynchronousEvent ()
Verse.LongEventHandler:LongEventsUpdate (bool&)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Root.Update_Patch1 (Verse.Root)
Verse.Root_Entry:Update ()

 

 

@plutocene & @ToastBaron

Hello, what version of RJW are you using?

 

The following part of the error seems to be from using an older version of RJW.

"System.Exception: Parameter "pawn" not found in method static System.Void rjw.SexUtility::SatisfyPersonal(rjw.SexProps props, System.Single satisfaction)"

 

Regarding other VRE patches: RJW Extra Race Patches comes to mind. RJW Genes fixed some things too.

Edited by kilana
Posted (edited)
1 hour ago, kilana said:

@plutocene & @ToastBaron

Hello, what version of RJW are you using?

 

The following part of the error seems to be from using an older version of RJW.

"System.Exception: Parameter "pawn" not found in method static System.Void rjw.SexUtility::SatisfyPersonal(rjw.SexProps props, System.Single satisfaction)"

 

Regarding other VRE patches: RJW Extra Race Patches comes to mind. RJW Genes fixed some things too.

 

Latest RJW release 6.1.3. The extra race patches currently do not cover vanilla races expanded, see https://rjw.miraheze.org/wiki/RJW_Extra_Race_Patches/1.6
RJW genes mentions VGE Hybrids, which is vanilla genes expanded I think, but no mention of VRE patches.

Unfortunately, the author of VRE does explicitly state that he does not care about RJW, so I can't ask there either.

Edited by plutocene
Posted

Checked the SatisfyPersonal function and it really doesn't have the pawn object. Should have known better than to trust an AI answer without verifying.

The patch works in game despite the loading error though.

 

Tested a fix and error doesn't pop up this time.

Still working so hopefully all will be good with this version.

Posted

@plutocene

The coding is just me being bad at coding :sweat_smile:.

 

I asked Google Gemini what was causing the error from your post: it quoted an error line and concluded it was probably from an outdated version of RJW.

 

After you mentioned you are on the latest version, I asked it to describe what was going on in the error code. Saw there was a problem with the patch function object declarations.

Once I loaded the game myself, I saw I had the same error (I have long since given up on an error free load and have just been closing the debug log that pops up).

 

I fixed the patch to declare the same objects as the original RJW function and the error went away.

 

BTW: Thank you for reporting.

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...