RimWorld

RimWorld

Questionable Ethics Enhanced
Cloning starts without genome, resulting in broken cloning vats for the save
So here's a weird bug:
it seems that sometimes for some reason a colonist will put the nutrient and the protein in a cloning vat but forget the genome. The sprite of the cloning vat will not show a growing clone and extracting the clone will just clear the "growing" status but not create anything.
The genome assigned to the vat will remain in storage after the cloning process begins, confirming that it has indeed been omitted.

This results in the game no longer considering cloning vats to be cloning vats and they suddenly all become useless, the "grow clone" option becomes "grow organ" but doesn't work at all.
It appears to corrupt clone vats functionality for the entire save from that point on.

No clue how to reproduce the pawns not putting the genome in the vat but testing on a different save did show that the cloning works as long as this doesn't happen.



Looking at the save file, the broken vat looks like this:

<thing Class="QEthics.Building_PawnVatGrower">
<def>QE_PawnVat</def>
<id>QE_PawnVat1959662</id>
<map>0</map>
<pos>(179, 0, 141)</pos>
<rot>1</rot>
<health>1000</health>
<faction>Faction_31</faction>
<parentThing>Thing_PowerConduit413519</parentThing>
<glowOn>True</glowOn>
<craftingProgress>1320000</craftingProgress>
<status>Finished</status>
<innerContainer Class="Verse.ThingOwner`1[Verse.Thing]">
<innerList />
</innerContainer>
<orderProcessor>
<desiredThings />
</orderProcessor>
<pawnKindToGrow>Colonist</pawnKindToGrow>
<scientistMaintenance>0.6447106</scientistMaintenance>
<doctorMaintenance>0.6265738</doctorMaintenance>
<pawnBeingGrown IsNull="True" />
</thing>

error log when opening the vat:

JobDriver threw exception in initAction for pawn Saio driver=JobDriver_ExtractGrowerProduct (toilIndex=3) driver.job=(QE_ExtractFromGrowerJob (Job_9776207) A=Thing_QE_PawnVat1959662) lastJobGiver=Verse.AI.ThinkNode_QueuedJob
System.NullReferenceException: Object reference not set to an instance of an object
at QEthics.Building_PawnVatGrower.ExtractProduct (Verse.Pawn pawn) [0x00000] in <filename unknown>:0
at QEthics.JobDriver_ExtractGrowerProduct.<MakeNewToils>b__1_0 () [0x00000] in <filename unknown>:0
at Verse.AI.JobDriver.TryActuallyStartNextToil () [0x00000] in <filename unknown>:0
Verse.Log:Error(String, Boolean)
Verse.AI.JobUtility:TryStartErrorRecoverJob(Pawn, String, Exception, JobDriver)
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:DriverTick_Patch1(Object)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick_Patch1(Object)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

error log when clicking on the grow button on a broken vat:

System.NullReferenceException: Object reference not set to an instance of an object
at QEthics.Building_PawnVatGrower.<GetGizmos>b__35_0 () <0x003d0>
at Verse.Command_Action.ProcessInput (UnityEngine.Event) <0x0002c>
at Verse.GizmoGridDrawer.DrawGizmoGrid (System.Collections.Generic.IEnumerable`1<Verse.Gizmo>,single,Verse.Gizmo&) <0x00bb6>
at (wrapper dynamic-method) RimWorld.InspectGizmoGrid.DrawInspectGizmoGridFor_Patch0 (System.Collections.Generic.IEnumerable`1<object>,Verse.Gizmo&) <0x00702>

Verse.Log:Error(String, Boolean)
Verse.Log:ErrorOnce(String, Int32, Boolean)
RimWorld.InspectGizmoGrid:DrawInspectGizmoGridFor_Patch0(IEnumerable`1, Gizmo&)
RimWorld.MainTabWindow_Inspect:DrawInspectGizmos()
RimWorld.InspectPaneUtility:ExtraOnGUI(IInspectPane)
RimWorld.MainTabWindow_Inspect:ExtraOnGUI_Patch1(Object)
Verse.WindowStack:WindowStackOnGUI()
RimWorld.UIRoot_Play:UIRootOnGUI()
Verse.Root:OnGUI()
< >
Showing 1-7 of 7 comments
anoelusmc Aug 28, 2019 @ 10:39am 
i got screwed the same way. looking to see if i can fix it. wish me luck
Thain Sep 1, 2019 @ 1:00am 
Just got hit with the same thing. Man, it really dose break the vats forever. Can't reproduce the glitch either, but you're right. Somehow the genome was never placed in the vat. I started with a stack of 4 and still have a stack of 4.
KongMD  [developer] Sep 8, 2019 @ 2:36pm 
This bug seems really frustrating for players. I'll prioritize a fix! Thanks for the detailed information.
J'ee Sep 29, 2019 @ 6:22pm 
Same issue after opening the vat, here. The genome got extracted from the vat, but nothing else happened. Turned on dev mode to see the debug log, and it's the same "JobDriver threw exception in initAction for pawn" log as reported by the OP.
J'ee Sep 29, 2019 @ 6:46pm 
I reinstalled the mod, making sure to place it after mods for other races, and now it works; I didn't notice the dev had said he would be working on a fix, until just now.
J'ee Sep 29, 2019 @ 7:17pm 
Nope -- it worked exactly once.
J'ee Sep 29, 2019 @ 7:52pm 
Looks like there was something wrong with the second genome I was using. Its <thing> definition in the save files I noticed didn't have the QEthics.GenomeSequence class like the genome which worked. Making a new genome from the source's (by now skeletal) corpse worked. Note, these genomes were from two different sources. I now have the clone I wanted BWAHAHAHA! And bonus that my clone's first task was to haul her own genome to the stockpile. :3

So if it doesn't work, make a new genome and try that. If doing aliens, logic follows that QEE should be loaded after the aliens are loaded.
< >
Showing 1-7 of 7 comments
Per page: 1530 50