Jump to content

I've made a fix for the Simple Slavery mod to work with RJW [for version 1.1]


Recommended Posts

TL;DR version: I make the SimpleSlevery mod compatible (I think fully) with the RJW mod, slaves can be raped and all that. you need to delete your version of RJW and install this one instead. this is the 4.3.3 version of the RJW mod

first post here so first off, sorry in advance if I am doing something wrong here.

Simple Slavery. (this is the version I am using: https://steamcommunity.com/sharedfiles/filedetails/?id=2144935009)
For those who don't know this mod let's you enslave prisoners and use them as workers. The mod doesn't treat them as prisoners anymore thou. it's more like they are colonist with less freedom and a few extra stuff.

RJW let's you set prisoners (and masochists) as comfort rape targets. Due to the fact that Simple Slavery treats slaves as colonists pretty much, this has the sad effect of not being able to set slaves as comfort rape targets. I didn't like that, so I decided to fix it.

let it be known thou, that I am in no way good at modding and programming in general. but after learning some new stuff and spending a few hours scratching my head I figured out how this stuff works (more or less)

for those people who are interested how I did it, I am not sure if there are any, here is an explanation:


so, the function to determine if a pawn can be comfort raped or not is pretty much solely located in the designators folder in the Comfort.cs file. 
the function we will be mostly playing with is UpdateCanDesignateComfort. 

before we do any of that we must include the SimpleSlavery mod as a reference (just add the .dll file of the mod from the assembly folder into references in the project like any other reference) and after we do that, we need to add using SimpleSlavery; to the top of the Comfort.cs file. now we can use the SlaveUtility.IsPawnColonySlave(pawn) function, which pretty much returns true if the pawn is a slave of the colony.

after that, in the UpdateCanDesignateComfort function, we need to find this line of code:

if (pawn.IsPrisonerOfColony || xxx.is_slave(pawn))
    return SaveStorage.DataStore.GetPawnData(pawn).CanDesignateComfort = true;

we just need to paste the function form SimpleSlavery like this:

if (pawn.IsPrisonerOfColony || xxx.is_slave(pawn) || SlaveUtility.IsPawnColonySlave(pawn))
    return SaveStorage.DataStore.GetPawnData(pawn).CanDesignateComfort = true;

after that, we also need to fix the IsDesignatedComfort function. Simply find this line of code again:

if (!(xxx.is_masochist(pawn) || xxx.is_slave(pawn))

and again we need to insert the function from SimpleSlavery like such:

if (!(xxx.is_masochist(pawn) || xxx.is_slave(pawn) || SlaveUtility.IsPawnColonySlave(pawn)))

after that, and after we build a .dll file using this code, the RJW mod should work with no issues, and now you can set your slaves as comfort rape targets with no issues at all (as far as I tested it there were no issues or errors)

I went extra and also edited the Breedee.sc file in a similar manner, by searching for instances of pawn.IsPrisonerOfColony || xxx.is_slave(pawn) in the file, and adding the SlaveUtility.IsPawnColonySlave(pawn) to the two if statements in the file. I am not sure if it's needed, but I also did the same for the Service.cs file.

one last thing that can be changed, is in the MainTab folder in the PawnColumnWorker_IsPrisoner.cs file, we can add the SlaveUtility.IsPawnColonySlave(pawn) to the return pawn.IsPrisonerOfColony || xxx.is_slave(pawn) ? comfortOn : null; line. it should look like this: return pawn.IsPrisonerOfColony || xxx.is_slave(pawn) || SlaveUtility.IsPawnColonySlave(pawn) ? comfortOn : null;


now for a quick list of what I fixed:
- slaves can now be designated as comfort rape targets.
- slaves can now be designated for animal breeding (which results in animals raping the slave as far as I've seen).
- in the brothel tab, slaves are marked as prisoner or slave (the shackles icon)

sadly, I don't know (yet) how to make a separate mod with my solution, and if it is even possible, might look into that later. For now you sadly need to delete the old RJW version and install this one instead. The good part is that, at least so far, I didn't saw any problems when testing, even when disabling the SimpleSlavery mod. Lastly I will add that I modified the 4.3.3 version of the RJW mod.

RJW simple slavery fix.zip

Link to comment
  • 2 weeks later...
  • 2 weeks later...
  • 2 weeks later...

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