Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - JT

#121
Outdated / Re: [A14] MELTDOWN - More Mental Breaks!
August 15, 2016, 12:47:22 AM
Pure awesomesauce with a damn'yo-glace.  Thanks!

Looks as though the download includes the entire repository, i.e., also includes the Apocalypse mod -- which is fascinating as heck, but I don't know where the stated dependency is.  Definitely using it for the Meltdowns mod, though. =)
#122
Two new minimods up:

Butchery Spot/Butchering Spot (I apparently call it both) is a "spot", just like the Crafting Spot, where you can chop up animals without building a full butchering table.  Since it doesn't include a work surface you can't chop meat into kibble.  Simple non-scripted mod that should be forward compatible.

[edit]Whoops, apparently this was broken. For whatever reason I assumed that the recipe appearing in the list was enough, but I also need a job giver too.  Will implement and fix. ;-)

Sleeping Pallet is a bed made of smaller amounts of wood, with a lower comfort factor. It helps bridge the cotton-free period when using T's Extended Fabrics and More Beds.  Also fairly simple definition-only mod.
#123
Outdated / Re: [A14] Field Surgery [2016-AUG-14 v2]
August 14, 2016, 12:31:21 PM
I've been running alongside DESurgeries and EPOE for a while now. =)

New version 2 up.  Fixes a CCL compatibility issue and raises the masochist code from the dead -- the existing masochist code was commented out because it didn't seem right for someone who likes pain to like dismemberment, but makes perfect sense for someone who likes both pain and dismemberment. =)

[edit]Hotfix up in first post.  When I threw a version number into the About.xml, I accidentally put it in outside the closing /description tag.  Duh.  The mod itself would have worked fine, but running in debug mode would give you a pop-up error.
#124
Mods / Re: A note to modders about xml definitions
August 13, 2016, 09:24:11 PM
Interesting. Had no idea this was a thing. Will fix mine pronto.
#125


Field Surgery

This quick-and-dirty mod allows you to chop infected or otherwise damaged body parts off of injured people without the use of anaesthetic, for use in emergencies when there is absolutely no medicine available; in a medieval society, you no longer have to sit and watch a pawn progress from minor to major to extreme infection without being able to do a single thing about it but palliative care.  Of course, without proper anaesthesia, the procedure is extremely painful and even if you wind up saving their life, they will receive a negative social opinion of the surgeon for causing them pain.  Chance of dying under the knife is of course very high -- an unanaesthetised amputation should only be attempted if you have no other option, or if you intend for the person to suffer.

(That said, this mod was battle-tested: a raider attacked my colony when I had no medicine.  He was downed without being killed.  We took him into custody and treated his wounds without medicine in the dirty cell -- so, of course, his lung got infected.  My excellent surgeon cut it out, and after a rapid recovery we sent him on his way.)

This feature can also be used to remove otherwise healthy body parts from prisoners and visitors.  Although removed limbs will be fresh, they are not salvageable for resale as they are merely hacked off rather than carefully preserved for transplant.  Removal of benign body parts amounts to torture, and your colony will receive negative thoughts accordingly -- all colonists will be accessories (without concern if psychopathic), the torturer will be culpable (with positive thoughts for psychopaths), and the tortured will be furious (except masochists who are also prosthophiles).  Doing this act will of course severely damage relations with the faction of the victim.

By intention, the part is always removed.  If you fail the procedure, the victim will bleed profusely and it will be treated as "cut off" rather than "removed", although the difference is only cosmetic -- the limb is gone one way or another.

Compatibility
* 100% compatible with Expanded Prosthetics and Organ Engineering, Rah's Bionics and Surgery Expansion, and/or DE Surgeries (original thread).

Known Issues

       
  • If a pawn is already anaesthetised before you began the procedure, the anaesthesia will be removed after this procedure.  This means that you can lop a pinky finger off of a prisoner to wake them up from anaesthesia (although even minor body parts still incur the full mood penalty for torture, so this exploit is somewhat self balancing).
  • As I reuse the silly vanilla failure functions, it is possible to wind up cutting out someone's eye and accidentally stabbing them in the chest while chopping off their infected big toe if you wind up failing the task.  Bug Tynan for a fix -- I just work here! =)
  • After mutilating a prisoner in this manner, as long as they leave the map without any bleeding wounds, you will still receive the positive +15 to relations.  This would require a core detour and is probably an overkill solution to the problem.
  • It is possible to chop off prostheses with this system.  It's actually somewhat hard to detect prosthetic hediffs, so I didn't bother.  It's a potential future improvement.
Source code is included for future maintainability.  Licence is Simplified BSD. =)

Changelog:

19 April 2017 - A16 Version 3:
* Updated to Alpha 16, finally.
* Since Tynan and crew threw me a bone and converted a utility class from protected to public, I no longer have to use a ridiculous IL reflection in the code, so this is now also safer and more robust.
* Changed: For colonists, "elective" dismemberment will no longer appear in the list of operations -- only injured parts can be dismembered.
* Prisoners can however still be Reservoir Dogs'ed, with all normal penalties intact.

14 August 2016 - A14 Version 2b:
* Hotfix: Whoops, stuck my version identifier in About.xml after the closing tag of the description, which caused debug errors on load. (The mod still worked fine, though.)  Which, naturally, I changed after I finished testing and before uploading... sigh.
* No other changes. =P

14 August 2016 - A14 Version 2:
* Finally came up with a solution for masochism I liked -- positive thoughts from limb(s) removed occur only if both masochist and prosthophile
* Fixed missing abstracts (for CCL compatibility notice) (as of Alpha 16 2017 without CCL, this is no longer a significant issue)

12 August 2016 - A14 Version 1:
* First release

Dropbox Download:
A16 | D O W N L O A D (v3 - A16 - 2017-APR-19)
A14 Download (v2b - A14E - 2016-AUG-14)




Sleeping Pallet

This adds a simple and cheap sleeping pallet, a step up from sleeping on the bare ground and a step down from sleeping in a nice, cozy bed.

This mod is entirely standalone (which is how I use it), but is intended to fill the gap caused by mods which add a cloth requirement to beds (which require processing on a textile bench and/or a whole growing season to produce).

Licence: Simplified BSD.  Feel free to adapt, claim, use, abuse, or embed in a modpack.

Changelog:
19 April 2017 - A16 Version 3:
* Updated for Alpha 16.
* Now using a vanilla-friendlier graphic with better contrast and an outline.

17 August 2016 - A14 Version 2:
* Adjusted comfort level to 55%, down from 60%, for less comfort on finely-made pallets (and more discomfort on shoddy ones)
* Fixed unnecessary shader in graphicData causing white pallets

15 August 2016 - A14 Version 1b:
* First release (hotfixed immediately after upload)

Dropbox Download:
A16 | D O W N L O A D (v3 - A16 - 2017-APR-19)
A14 Download (v2 - A14E - 2016-AUG-17)



Butchery Spot
(Mod Deprecated)

Unless requested, I won't be updating this anymore as a functionally identical spot is now available in Nandonalt's Camping Stuff.

This is a spot where you can butcher animal corpses without the need to build a butchering table.  It's small, compact, and free to build.  Because it provides no chopping surface for close knife work, you cannot use this spot to make kibble and any mod-added recipes (e.g., EPOE organ grinding) will not apply to it.

Licence: Simplified BSD.  Feel free to adapt, claim, use, abuse, or embed in a modpack.

Changelog:
16 August 2016 - A14 Version 2:
* Fixed missing workgiver

14 August 2016 - A14 Version 1:
* First (buggy) release

Dropbox Download:
A14 Download (v2 - A14E - 2016-AUG-16)
#126
Help / Re: How can i decompile this ?
August 09, 2016, 12:11:14 PM
Quote from: notfood on August 08, 2016, 10:06:21 PM
With Reflection, everything is accessible regardless of what it says.

True, sort of, but the compiler flags it as an error.  I'd have to unprotect the game's Assembly DLL to compile against a different type safety, from what little I know of IL/Mono/Reflection from The Sims 3 -- if there are other ways I never learned them. =)

It was, at least, easy enough to copy those methods as private into my own class, though -- they were simple enough that I wouldn't mind the added workload of updating them to follow suit in the unlikely event the code that the MedicalRecipesUtility targets is restructured.


[edit]Ah, I misinterpreted-- not Reflector, System.Reflection.  Ah well.  After I did my research, that's good to know!  The quick-and-dirty copy/paste solution did it for me, though, so I don't need to worry about accessing the RimWorld.MedicalRecipesUtility Assembly in code.
#127
Help / Re: Can't find a type/class name from recipe
August 08, 2016, 05:41:50 PM
Heh, figures it'd be something easy. =)

Thanks!  Seems to be loading just fine now.  And now, the always time-consuming testing phase... ;-)
#128
Help / Can't find a type/class name from recipe
August 08, 2016, 05:30:47 PM
So I'm puzzling over this one.  Here's the relevant portion of the assembly's source:

using System;
using System.Reflection;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Text;

using UnityEngine;
using RimWorld;
using Verse;

namespace JTFieldSurgery
{
class Recipe_JTFieldSurgeryFieldAmputate : Recipe_MedicalOperation
{
...


which compiles successfully and is placed in my mod's Assemblies subfolder.

Here's my RecipeDef:<RecipeDef ParentName="SurgeryFlesh">
<defName>JTFieldSurgeryFieldAmputate</defName>
<label>field amputation</label>
<description>Removes a natural body part without the use of anaesthetic, for use in emergencies if no medicine is available. Removed limb will not be usable.</description>
<jobString>Amputating without anaesthetic.</jobString>

<workerClass>Recipe_JTFieldSurgeryFieldAmputate</workerClass>
...


Yet for reasons I completely fail to understand, I receive a "Could not find a type named Recipe_JTFieldSurgeryFieldAmputate" error during boot.  Is there somewhere I have to "register" an assembly for it to be loaded by the game?  What could be going wrong here?
#129
Help / Re: How can i decompile this ?
August 08, 2016, 03:57:47 PM
Heh, I'm running into the exact same problem here.  I'm trying to decode the return value of GetPartsToApplyOn so I can use a similar list of body parts as Recipe_RemoveBodyPart in my own Recipe_JTBlahBlahXYZ, to create a custom job class that allows removal of body parts under other unique circumstances, but because GetPartsToApplyOn uses a compiler-generated class I can't make heads or tails of it.  I wonder if Tynan would be willing to post the original source of that function?

[edit]Blech.  Making some headway, but for unfathomable reasons MedicalRecipesUtility is marked as internal rather than public. Oy.
#130
Mods / Re: Dropbox save path
May 29, 2016, 10:24:58 PM
One thing I like to do is to use symbolic links to hardlink a Dropbox folder as my save folder.  I use this technique for The Pit (Sword of the Stars) since I tend to run that on both my ultrabook and desktop.  I don't use it for Rimworld (I only play it on my desktop -- Rimworld is too CPU intensive for me to run it on my ultrabook without fear of nuking my battery), but the principle will almost certainly translate.  I don't know how to do symbolic linking on a Mac, although I know it's possible, but I can at least give instructions on how to use LinkShellExtensions on Windows.

Basically, locate your game's save folder and cut and paste it into a convenient folder in your dropbox folder, then Pick Link Source on that folder and Drop As Junction into your Appdata folder.

1) Install LinkShellExtension and reboot to allow registry to populate.
2) Cut folder "C:\Users\yourname\AppData\LocalLow\Ludeon Studios\Saves".
3) Make Dropbox folder (e.g. "\Dropbox\CloudSave\Rimworld").
4) Paste Saves folder into new Dropbox folder (now "\Dropbox\CloudSave\Rimworld\Saves").
5) Right-click Saves folder on Dropbox and choose "Pick Link Source".
6) Go back to "C:\Users\yourname\AppData\LocalLow\Ludeon Studios\"
7) Right-click any whitespace in the folder window and choose "Drop As->Junction".  A new symlink is produced to the Saves folder in the same directory.
8) To Rimworld, nothing appears to have changed -- it still writes to "C:\Users\yourname\AppData\LocalLow\Ludeon Studios\Saves".  However, the data is actually read from/stored on your Dropbox folder.  Dropbox will upload it automatically in the background whenever you have access to internet, as normal.
9) On any other computer where you also have Dropbox and LinkShellExtensions installed and want to re-use the same files, simply delete its own "Ludeon Studios\Saves" folder and repeat steps 5 through 7.  Make sure that Dropbox writes to the same folder on both computers, though, or else it won't work.

This method also works for copying the whole Ludeon folder from Appdata, if you want the other stuff to be synched too.  Just bear in mind that typical saves will take around 15-20 MB, so you'll quickly run out of space with a basic free Dropbox account (2 GB).  You can get a little more with referral bonuses, but if you use the technique for everything you'll probably need a paid plan.

[edit]Come to think of it, you'll almost certainly want to copy the whole LocalLow\Ludeon Studios folder over, rather than just the saves.  Otherwise you won't have access to the world file, which would probably be bad.
#131
Quote from: Orion on March 22, 2016, 08:29:46 AM
You can safely keep Autosell. But you'll have to decide between Hospitality and Miscellaneous. It is possible to make them compatible (see Hardcore SK modpack), but it's not quickly or easily done.

I had pulled MAI from my mod order a long time ago, long before starting these colonies.  It's certainly not under the "Miscellaneous_VanillaEnhanced" folder that came with the ZIP.  Man, now I'm gonna have to pick through with a fine-toothed comb to figure out what's bringing the traders.

[edit] Looks like Raid Plus is indeed the culprit -- it's missing a class constructor on load, so it implodes like a neutron star.  Noticing a couple references to "FractionPawnsLost", it seems to align with the fact that it only tends to occur once the merchants have berserked and been dealt with suitably, but that's a massive call stack if ever I've seen one:

InvalidOperationException: SaveableFromNode exception: System.InvalidOperationException: SaveableFromNode exception: System.InvalidOperationException: SaveableFromNode exception: System.InvalidOperationException: SaveableFromNode exception: System.InvalidOperationException: SaveableFromNode exception: System.MissingMethodException: No constructor found for RaidPlus.TransitionActions.TransitionAction_MerchantArrived::.ctor()
  at System.Activator.CreateInstance (System.Type type, BindingFlags bindingAttr, System.Reflection.Binder binder, System.Object[] args, System.Globalization.CultureInfo culture, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type, System.Object[] args, System.Object[] activationAttributes) [0x00000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type, System.Object[] args) [0x00000] in <filename unknown>:0
  at Verse.ScribeExtractor.SaveableFromNode[TransitionAction] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
Subnode:
<li Class="RaidPlus.TransitionActions.TransitionAction_MerchantArrived" />
  at Verse.ScribeExtractor.SaveableFromNode[TransitionAction] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at Verse.Scribe_Collections.LookList[TransitionAction] (System.Collections.Generic.List`1& list, System.String label, LookMode lookMode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at RimWorld.SquadAI.Transition.ExposeData () [0x00000] in <filename unknown>:0
  at Verse.ScribeExtractor.SaveableFromNode[Transition] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
Subnode:
<li><sources><li>1157267910</li></sources><target>1450570471</target><triggers><li Class="RimWorld.SquadAI.Trigger_Memo"><memo>TravelArrived</memo></li></triggers><actions><li Class="RaidPlus.TransitionActions.TransitionAction_MerchantArrived" /></actions></li>
  at Verse.ScribeExtractor.SaveableFromNode[Transition] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at Verse.Scribe_Collections.LookList[Transition] (System.Collections.Generic.List`1& list, System.String label, LookMode lookMode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at RimWorld.SquadAI.StateGraph.ExposeData () [0x00000] in <filename unknown>:0
  at Verse.ScribeExtractor.SaveableFromNode[StateGraph] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
Subnode:
<graph><states><li Class="RimWorld.SquadAI.State_Travel"><id>1157267910</id><dest>(136, 0, 150)</dest><destAssigned>True</destAssigned></li><li Class="RaidPlus.States.State_Defend"><id>1868702802</id></li><li Class="RaidPlus.States.State_Defend"><id>1450570471</id><defendPoint>(136, 0, 150)</defendPoint></li><li Class="RimWorld.SquadAI.State_Travel"><id>977786360</id><dest>(-1000, -1000, -1000)</dest><destAssigned>True</destAssigned></li><li Class="RaidPlus.States.State_Defend"><id>715374566</id></li><li Class="RaidPlus.States.State_MerchantFlee"><id>1411229349</id></li></states><transitions><li><sources><li>1157267910</li></sources><target>1868702802</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions><li Class="RaidPlus.IncidentWorkers.Trade.TransitionAction_SetDefendLocation" /></actions></li><li><sources><li>1868702802</li></sources><target>1868702802</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions /></li><li><sources><li>1868702802</li></sources><target>1157267910</target><triggers><li Class="RimWorld.SquadAI.Trigger_TicksPassed"><duration>5000</duration></li></triggers><actions /></li><li><sources><li>977786360</li></sources><target>715374566</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions><li Class="RaidPlus.IncidentWorkers.Trade.TransitionAction_SetDefendLocation" /></actions></li><li><sources><li>715374566</li></sources><target>715374566</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions /></li><li><sources><li>715374566</li></sources><target>977786360</target><triggers><li Class="RimWorld.SquadAI.Trigger_TicksPassed"><duration>5000</duration></li></triggers><actions /></li><li><sources><li>1157267910</li></sources><target>1450570471</target><triggers><li Class="RimWorld.SquadAI.Trigger_Memo"><memo>TravelArrived</memo></li></triggers><actions><li Class="RaidPlus.TransitionActions.TransitionAction_MerchantArrived" /></actions></li><li><sources><li>1157267910</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>1868702802</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>1450570471</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>977786360</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>715374566</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li></transitions></graph>
  at Verse.ScribeExtractor.SaveableFromNode[StateGraph] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at Verse.Scribe_Deep.LookDeep[StateGraph] (RimWorld.SquadAI.StateGraph& target, System.String label, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at RimWorld.SquadAI.Brain.ExposeData () [0x00000] in <filename unknown>:0
  at Verse.ScribeExtractor.SaveableFromNode[Brain] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
Subnode:
<li><loadID>1958941613</loadID><faction>Fisherman'sTownship1261176695</faction><curState>1450570471</curState><ticksInState>154120</ticksInState><numPawnsEverGained>4</numPawnsEverGained><ownedPawns><li>Human241781</li></ownedPawns><graph><states><li Class="RimWorld.SquadAI.State_Travel"><id>1157267910</id><dest>(136, 0, 150)</dest><destAssigned>True</destAssigned></li><li Class="RaidPlus.States.State_Defend"><id>1868702802</id></li><li Class="RaidPlus.States.State_Defend"><id>1450570471</id><defendPoint>(136, 0, 150)</defendPoint></li><li Class="RimWorld.SquadAI.State_Travel"><id>977786360</id><dest>(-1000, -1000, -1000)</dest><destAssigned>True</destAssigned></li><li Class="RaidPlus.States.State_Defend"><id>715374566</id></li><li Class="RaidPlus.States.State_MerchantFlee"><id>1411229349</id></li></states><transitions><li><sources><li>1157267910</li></sources><target>1868702802</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions><li Class="RaidPlus.IncidentWorkers.Trade.TransitionAction_SetDefendLocation" /></actions></li><li><sources><li>1868702802</li></sources><target>1868702802</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions /></li><li><sources><li>1868702802</li></sources><target>1157267910</target><triggers><li Class="RimWorld.SquadAI.Trigger_TicksPassed"><duration>5000</duration></li></triggers><actions /></li><li><sources><li>977786360</li></sources><target>715374566</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions><li Class="RaidPlus.IncidentWorkers.Trade.TransitionAction_SetDefendLocation" /></actions></li><li><sources><li>715374566</li></sources><target>715374566</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions /></li><li><sources><li>715374566</li></sources><target>977786360</target><triggers><li Class="RimWorld.SquadAI.Trigger_TicksPassed"><duration>5000</duration></li></triggers><actions /></li><li><sources><li>1157267910</li></sources><target>1450570471</target><triggers><li Class="RimWorld.SquadAI.Trigger_Memo"><memo>TravelArrived</memo></li></triggers><actions><li Class="RaidPlus.TransitionActions.TransitionAction_MerchantArrived" /></actions></li><li><sources><li>1157267910</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>1868702802</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>1450570471</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>977786360</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>715374566</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li></transitions></graph><avoidGrid IsNull="True" /></li>
  at Verse.ScribeExtractor.SaveableFromNode[Brain] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at Verse.Scribe_Collections.LookList[Brain] (System.Collections.Generic.List`1& list, System.String label, LookMode lookMode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at RimWorld.SquadAI.BrainManager.ExposeData () [0x00000] in <filename unknown>:0
  at Verse.ScribeExtractor.SaveableFromNode[BrainManager] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
Subnode:
<aiKingManager><allSquadBrains><li><loadID>269115911</loadID><faction>AMechanoidHive312057399</faction><curState>2121302580</curState><ticksInState>761944</ticksInState><numPawnsEverGained>5</numPawnsEverGained><ownedPawns><li>Mechanoid_Centipede21892</li><li>Mechanoid_Scyther21894</li><li>Race_Drone21896</li><li>Mechanoid_Centipede21899</li><li>Mechanoid_Centipede21901</li></ownedPawns><graph><states><li Class="RimWorld.SquadAI.State_DefendPoint"><id>2121302580</id><defendPoint>(184, 0, 284)</defendPoint></li></states><transitions /></graph><avoidGrid IsNull="True" /></li><li><loadID>2062797403</loadID><faction>AMechanoidHive312057399</faction><curState>856242620</curState><ticksInState>761944</ticksInState><numPawnsEverGained>1</numPawnsEverGained><ownedPawns><li>Mechanoid_Centipede21943</li></ownedPawns><graph><states><li Class="RimWorld.SquadAI.State_AssaultColony"><id>856242620</id></li><li Class="RimWorld.SquadAI.State_ExitMapAnywhere"><id>1668076433</id></li></states><transitions><li><sources><li>856242620</li></sources><target>1668076433</target><triggers><li Class="RimWorld.SquadAI.Trigger_BecameColonyAlly" /></triggers><actions><li Class="RimWorld.SquadAI.TransitionAction_Message"><message>Mechanoids from a mechanoid hive are leaving.</message><sound>Standard</sound></li></actions></li></transitions></graph><avoidGrid IsNull="True" /></li><li><loadID>1958941613</loadID><faction>Fisherman'sTownship1261176695</faction><curState>1450570471</curState><ticksInState>154120</ticksInState><numPawnsEverGained>4</numPawnsEverGained><ownedPawns><li>Human241781</li></ownedPawns><graph><states><li Class="RimWorld.SquadAI.State_Travel"><id>1157267910</id><dest>(136, 0, 150)</dest><destAssigned>True</destAssigned></li><li Class="RaidPlus.States.State_Defend"><id>1868702802</id></li><li Class="RaidPlus.States.State_Defend"><id>1450570471</id><defendPoint>(136, 0, 150)</defendPoint></li><li Class="RimWorld.SquadAI.State_Travel"><id>977786360</id><dest>(-1000, -1000, -1000)</dest><destAssigned>True</destAssigned></li><li Class="RaidPlus.States.State_Defend"><id>715374566</id></li><li Class="RaidPlus.States.State_MerchantFlee"><id>1411229349</id></li></states><transitions><li><sources><li>1157267910</li></sources><target>1868702802</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions><li Class="RaidPlus.IncidentWorkers.Trade.TransitionAction_SetDefendLocation" /></actions></li><li><sources><li>1868702802</li></sources><target>1868702802</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions /></li><li><sources><li>1868702802</li></sources><target>1157267910</target><triggers><li Class="RimWorld.SquadAI.Trigger_TicksPassed"><duration>5000</duration></li></triggers><actions /></li><li><sources><li>977786360</li></sources><target>715374566</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions><li Class="RaidPlus.IncidentWorkers.Trade.TransitionAction_SetDefendLocation" /></actions></li><li><sources><li>715374566</li></sources><target>715374566</target><triggers><li Class="RimWorld.SquadAI.Trigger_PawnHarmed" /></triggers><actions /></li><li><sources><li>715374566</li></sources><target>977786360</target><triggers><li Class="RimWorld.SquadAI.Trigger_TicksPassed"><duration>5000</duration></li></triggers><actions /></li><li><sources><li>1157267910</li></sources><target>1450570471</target><triggers><li Class="RimWorld.SquadAI.Trigger_Memo"><memo>TravelArrived</memo></li></triggers><actions><li Class="RaidPlus.TransitionActions.TransitionAction_MerchantArrived" /></actions></li><li><sources><li>1157267910</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>1868702802</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>1450570471</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>977786360</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li><li><sources><li>715374566</li></sources><target>1411229349</target><triggers><li Class="RimWorld.SquadAI.Trigger_FractionPawnsLost"><fraction>0.33</fraction></li></triggers><actions /></li></transitions></graph><avoidGrid IsNull="True" /></li></allSquadBrains></aiKingManager>
  at Verse.ScribeExtractor.SaveableFromNode[BrainManager] (System.Xml.XmlNode subNode, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at Verse.Scribe_Deep.LookDeep[BrainManager] (RimWorld.SquadAI.BrainManager& target, System.String label, System.Object[] ctorArgs) [0x00000] in <filename unknown>:0
  at Verse.Map.ExposeComponents () [0x00000] in <filename unknown>:0
  at Verse.MapIniter_LoadFromFile.InitMapFromFile (System.String fileName) [0x00000] in <filename unknown>:0
  at Verse.RootMap.Start () [0x00000] in <filename unknown>:0


[edit 2] It appears this is a known issue on Latta's thread, actually, but only came out because of the new CCL -- I note Latta's even pulled the mod for now! yikes! -- which is why I'd never had it happen before, since I only updated CCL when I updated Hospitality.

[edit 3] Or rather, someone else reported corruption and I can't find the mod anywhere anymore, but no official mention why. =)
#132
I think I've found an incompatibility with this and Rimworld Autosell, since using RW Autosell along with Hospitality causes merchant groups to remain on my map permanently until they go berserk, and eventually causes the buggy loading behaviour reported a few pages back (spamming about null object references and failing to load the game) if the game is saved with the merchants still on the map.  No idea where the game log is saved and Google wasn't very helpful, so I only get to see it in the debug console... ;-)

Both RWAutosell and Hospitality provide Incidents_Good_Misc.xml files, which is the prime source of my suspicion, but I haven't gone deep into their bowels in ILSpy or anything.  It also depends on Rimworld's XML concatenation behaviour which is well beyond my level of understanding.

RWAutosell will probably be the one to go, since I only added it a few days ago, although that'll be the third time I've started a new colony in as many days due to file corruption and lack of backups.  Naturally I'll report in with my final discoveries, if it turns out to be something else.  (It could be LT Raid Plus, but I've been using that one since I installed it without issues, with the VisitorGroup incident commented out.)
#133
Mods / Re: Mod Request- No power Crafting Benches.
March 21, 2016, 07:07:25 PM
Quote from: Z0MBIE2 on March 18, 2016, 04:47:48 PM
It would probably also need a really, realllyyyy hot fire and smithing experience.

Depends.  We've been cold-wrighting even iron for centuries, although the amount of work involved is profound, since the only mallets you can use that are hard enough (under traditional methods) have to be made of polished stone.  Copper and bronze of course are more malleable and were the originals.  Brass is a bit too stiff and was usually cast and then "machined" down with hand tools.

A simple anvil ought to be enough for basic bronzeworking and ironworking, although it would likely have a substantial speed penalty applied to anyone using it (as little as 5-10% work efficiency).  Since we mine compacted steel from the crashed ships of ancient civilisations, however, some sort of fuel source would be necessary for the general case.  Essentially, something like the campfire with an automated job to "restoke" it whenever it is depleted (which can be suspended, of course), would work swimmingly for metalcrafting. The goal isn't to smelt the metal and cast it, but merely to heat it to the point where it is more ductile to forge it.  Blacksmithing is of course more efficient if you have access to a bellows to oxygenate the coals so they burn hotter, and the ability to temper the metal with water, but anything under steel can be softened with high heat and be cold wrought (even steel begins to soften at around 450 degrees Celsius and is twice as soft at 600 degrees Celsius -- too high for a normal fire, but well within the capability of a blacksmith's forge).

[edit]Fact checking, it looks as though campfires do burn hot enough to get well above 600 degrees Celsius -- but not hot enough to melt the constituent parts together if all you have is pig iron and charcoal.  So if you already have steel, I think you're good to go!
#134
I'm still getting red errors about Megascarab_Leather -- I'm not playing with the Hardcore SK pack, which is likely why.

[edit] Hm. Actually, since I have ItchyFlea's Animal Hideworking, an incompatibility between the two might be the cause rather than Enviro SK by itself.  Lemme take a look.

[edit2] Yep, actually, that seems to be exactly what's up.  I'll try a fix by modifying Enviro_SK to have the same leatheramount as does Animal Hideworking, since I don't want to give up the bug chitin armour. =)

[edit3] Confirmed fixed! For anyone who is experiencing the same problem using both mods together, the fix is as simple as modifying <leatheramount>0</leatheramount> to <leatheramount>3</leatheramount> in Enviro_SK's Races_Animal.xml under the Megascarab defName tree.  Alternatively, just delete AR-Megascarab_Leather.xml from AnimalHideWorking if you don't want megascarab crafting.
#135
I dunno, that seems like picking straws. =) It's exposed by a mod, but is caused by a vanilla bug unless the now-late author is making any particularly unusual hooks into the graphics code.

Since it doesn't come up in normal gameplay, it would however render the fix lower priority -- 12 cells per second is ludicrously fast -- but given the possibility of having things like vehicles, mounts, and other extremely fast-moving objects added by mods legitimately, then unless it's a specific case scenario isolated to the mod itself it should be investigated and patched somewhere in the long term.