[A17/B18] Simple Slavery v0.5k (updated 2018/1/29)

Started by Thirite, June 15, 2017, 11:07:32 AM

Previous topic - Next topic

stigma

Quote from: Thirite on July 15, 2017, 02:49:54 PM
Hum, I wasn't expecting that error message to actually trigger; I suppose it's good I put it in just in case. I'm have to look into it.

As for this:
Quote...it strikes me as being a little superfluous in terms of mechanics.
That's absolutely a fair point. I want to give the player freedom to control their slaves how they desire, but if slavery is just another recruit mechanic it isn't very interesting. On one hand, I would very much like to keep the mod's mechanics simple enough (hence the name), but it would also be nice to have slaves operate differently. I actually like the idea of decreased move speed- they're supposed to be shackled, right? And when they make an escape attempt, they strangely suddenly become shackled ( to slow down their movement so your warden actually has a chance to catch them). But I think it would make more sense both from a mechanical and realistic perspective if they were always treated as shackled.

I think one of the biggest things to consider is if these slaves count towards the population cap or not.

If they do then it's essentially just "alternative recruitment" and it makes sense for them to not be very limited.
If they don't then slaves are free labor - and if they aren't restricted in some way it can be gamebreakingly powerful.

-Stigma

_FantasyName_

Is this mod available on steam and if not, can you upload it there, or give someone the permission to do so?

Thirite

If I do put this on steam it won't be until it's bug free. Why don't you just install it normally?

_FantasyName_

I did install it normally, But I'm lazy, so i don't want to spare the extra 60 seconds needed to manually update the mod when an update comes out.  :P

FoxXeL

#94
An idea for how to use this mod:

Give a slave collar to two of your prisoners and make them fight. The one who wins will get a prize: set him free, give him his lung back or just give him food ffs, whatever you seem fit. Basically, use it like a gladiator mod.

PS: equip a piece of wood to be able to force melee attack.

FoxXeL

#95
Hi, I started recently to get this error when I'm trying to enslave a prisoner:

Wattis started 10 jobs in one tick. newJob=EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753 jobGiver=RimWorld.JobGiver_Work jobList=(EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753) (EnslavePrisoner A=Thing_Human4510019 B=Thing_Apparel_SlaveCollar4573753)  lastJobGiver=RimWorld.JobGiver_Work
Verse.Log:Error(String)
Verse.AI.Pawn_JobTracker:StartErrorRecoverJob(String)
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.<Reserve>c__AnonStorey4F7:<>m__7DF()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


It simply stops a colonist from enslaving a prisoner. Others can still enslave that prisoner.

Zkupt

Question; you get the debuff (I believe -10) for owning a slave, but does the psychopath trait remove that debuff? Or is there some other way to make your colonists not angry for having slaves. Because I don't want my pirate colony to get debuffs for owning slaves, when in reality they would be perfectly okay with that.
Thx

Jimmy: OMG! Why do we have the slaves! Its so inhumane! -10 debuff
*Looks at traits*
*Looks at Cannibal trait*
Me: So your saying that its more humane to eat raiders and colonists with bad skills than it is to enslave them? Not to mention no matter how hard I try, they still eat our lavish meals?

Thirite

Only colonists with the Kind trait will get the "Slave colony" negative thought.

ptx

Thanks for your great mod Thirite.
Long time lurker here.

Could you please add human branding / tattoo to the torso as a way to mark pawn as slave.
Maybe like how scar works, so any other mod that forces pawn to undress (taking a bath) doesn't interfere with the slave status.
To emancipate the slave, well, same process as healing scar.

nylem

I too would like to second ptx's suggestion. Could keep the collar for those that want it and those of us that use mods that remove clothing can use the non-removable/branding option.

GngBngBus

does this work with hospitality

gimmily

Hello, im getting some bugs after playing with it for a while. here are the logs (which is 180mb atm lol)

QuoteUsed SetFaction to change Bertus to same faction

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

System.NullReferenceException: Object reference not set to an instance of an object
  at SimpleSlavery.Hediff_EmancipateFix.PostTick () [0x00000] in <filename unknown>:0
  at Verse.Pawn_HealthTracker.HealthTick () [0x00000] in <filename unknown>:0
  at Verse.Pawn.Tick () [0x00000] in <filename unknown>:0
  at RimWorld.Planet.WorldPawns.WorldPawnsTick () [0x00000] in <filename unknown>:0
  at RimWorld.Planet.World.WorldTick () [0x00000] in <filename unknown>:0
  at Verse.TickManager.DoSingleTick () [0x00000] in <filename unknown>:0

usually this happens after a while when playing probably after a slave escapes or die, looking at the save bertus is still listed on the player faction but im almost sure he escaped since all the deaths on the colony happened to colonists(why the sniper always aim for my colonists?x.x) otherwise he is dead but that should change him to the original faction no?

im guessing that for a quick fix is when the pawn dies or escape he drops the slave colar the same way he drops his weapons when he tries to escape and great mod btw im really enjoying it!

Flimflamshabam

Swear I saw on steam a while back a mod that had a more 'prison work detail' sort of thing, the only one I can find isn't what I thought I saw, but untill a more 'work off your debt' style of gameplay rolls out this will do, this will also work alongside it :)

Out of Curiosity what happens if you 'free' a slave you bought from a trader, I assume they leave the map like they were a prisoner? Could be a fun side game to this mod of being instead of a slave trader, a slave emancipator.
It would be interesting if bought slaves could possibly return your kindness of freeing them by offering to join the colony if that doesn't happen.
Also are there non-slave npcs you can 'hire' or do all npcs in traders 'inventories' get flagged as slaves?

CookieWizard

In the future could you add a mod setting to remove the need for the collar after placed initially for continued servitude? That or add a lock function to the item? I've had issue with slaves putting on neck-items simply to replace the collar and emancipate themselves. While I can manually prohibit them to do so it's a hassle to have to repeat the process when installing new apparel mods.

Flimflamshabam

Quote from: CookieWizard on August 31, 2017, 11:17:42 PM
In the future could you add a mod setting to remove the need for the collar after placed initially for continued servitude? That or add a lock function to the item? I've had issue with slaves putting on neck-items simply to replace the collar and emancipate themselves. While I can manually prohibit them to do so it's a hassle to have to repeat the process when installing new apparel mods.
By default the collar is a forced item, and I personally don't have slaves changing clothes manually at all I always have to tell them what to wear. I also don't know of any clothes that conflict with the collars, what clothes mods do you have?