Ludeon Forums

Ludeon Forums

  • July 04, 2022, 04:55:59 PM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: A Guide To Save Editing (In Construction)  (Read 50594 times)

MoparGamer

  • Drifter
  • **
  • Posts: 66
  • Refugee
    • View Profile
A Guide To Save Editing (In Construction)
« on: August 29, 2014, 07:09:31 PM »

This is my attempt to share my limited knowledge of save editing with Windows 7 (Using a different OS can change file locations & other things).
Warning: You may corrupt your save/blow up the planet while editing, create backups before toying with things.

Part 1: Getting Started

Save file location
There's a few ways to find the save file location.

The Easy Way:
Open Rimworld
Start a game
Open the in-game menu
Click on Options
Look under Gameplay and click "Open save data folder"
A folder should open up with your saves & stuff

(Windows 7) Manual navigation:
Navigate to C:\Users\*\AppData\LocalLow\Ludeon Studios\RimWorld
* is my windows user name, replace it with your own and find your way there.
Open the saves folder and you're there.

(Windows 7) The Minecraft Way:
Search for %appdata% in the Start menu
Open the folder "Roaming" when it appears
Click on appdata in the Navigation bar
Open LocalLow
Open Ludeon Studios
Open Rimworld
Open saves folder and you're there.

Opening a .rwm save file requires you to select a program to open it with. Notepad will work, personally I recommend using Notepad++.

Notepad ++
I recommend grabbing Notepad++ for editing save files, it allows you to open multiple save files in different tabs (It's nice to be able to compare save files)

Part 2: A colonist and what they look like in a save file

Here's what a colonist looks like in a save file.
Code: [Select]
<thing Class="Pawn">
<def>Human</def>
<id>Human1</id>
<pos>(140, 0, 120)</pos>
<rot>1</rot>
<faction>Colony</faction>
<kindDef>Colonist</kindDef>
<jailerFaction>null</jailerFaction>
<story>
<name.first>Julian</name.first>
<name.last>Kocher</name.last>
<name.nick>Julian</name.nick>
<childhood>MedievalLordlingUntitledShort1206230971</childhood>
<adulthood>LudditeRebelLuddite1864176822</adulthood>
<skinColor>RGBA(1.000, 0.937, 0.835, 1.000)</skinColor>
<hairColor>RGBA(0.310, 0.280, 0.260, 1.000)</hairColor>
<crownType>Average</crownType>
<headGraphicPath>Things/Pawn/Humanoid/Heads/Male/Male_Average_Pointy</headGraphicPath>
<hairDef>Spikes</hairDef>
<traits>
<allTraits>
<li Class="Trait">
<def>Psychopath</def>
</li>
</allTraits>
</traits>
</story>
<age>32</age>
<apparel>
<wornApparel>
<li Class="Apparel">
<def>Apparel_CollarShirt</def>
<id>Apparel_CollarShirt3</id>
<health>100</health>
<color>RGBA(0.389, 0.398, 0.388, 1.000)</color>
</li>
</wornApparel>
</apparel>
<equipment>
<primary IsNull="True" />
<secondaries />
</equipment>
<mind>
<MindState>
<lastJobTag>Idle</lastJobTag>
<duty IsNull="True" />
<enemyTarget>null</enemyTarget>
</MindState>
</mind>
<playerController>
<drafter>
<autoUndrafter>
<lastNonWaitingTick>300</lastNonWaitingTick>
</autoUndrafter>
</drafter>
</playerController>
<jobs>
<curJob>
<def>Goto</def>
<targetA>(143, 0, 121)</targetA>
<targetC>(0, 0, 0)</targetC>
<targetQueueA IsNull="True" />
<targetQueueB IsNull="True" />
<placedTargets IsNull="True" />
<numToBring IsNull="True" />
<bill>null</bill>
<moveSpeed>Walk</moveSpeed>
<commTarget>null</commTarget>
<eqToUse>null</eqToUse>
</curJob>
<curJobDriver Class="JobDriver_Goto">
<curToilIndex>0</curToilIndex>
<ticksLeftThisToil>-109</ticksLeftThisToil>
<curToilCompleteMode>PatherArrival</curToilCompleteMode>
</curJobDriver>
</jobs>
<healthTracker>
<pawnHealth>100</pawnHealth>
<bodyModel>
<injuries />
<nonlocalInjuries />
<missingParts />
<maxPainLevelMultiplier>1</maxPainLevelMultiplier>
</bodyModel>
</healthTracker>
<pather>
<nextSquare>(141, 0, 121)</nextSquare>
<ticksUntilMove>14</ticksUntilMove>
<totalMoveDuration>40</totalMoveDuration>
<pathMode>OnSquare</pathMode>
<destination>(143, 0, 121)</destination>
</pather>
<inventory>
<container>
<maxStacks>99999</maxStacks>
<contents>
<li Class="ThingWithComponents">
<def>DoorKey</def>
<id>DoorKey2</id>
<health>30</health>
</li>
</contents>
</container>
</inventory>
<filth>
<carriedFilth />
</filth>
<food>
<pieceFood>
<curLevel>79.56024</curLevel>
</pieceFood>
</food>
<rest>
<pieceRest>
<curLevel>79.71382</curLevel>
</pieceRest>
</rest>
<carryHands>
<container>
<maxStacks>1</maxStacks>
<contents />
</container>
</carryHands>
<psychology>
<thoughts>
<thoughts>
<li Class="Thought">
<def>NewColonyOptimism</def>
<age>150</age>
</li>
</thoughts>
</thoughts>
<mood>
<curLevel>51.3125</curLevel>
</mood>
<environment>
<curLevel>54.8</curLevel>
</environment>
<openness>
<curLevel>92.5</curLevel>
</openness>
<recentMemory>
<lastLightTick>999999</lastLightTick>
<lastOutdoorTick>312</lastOutdoorTick>
</recentMemory>
</psychology>
<prisoner IsNull="True" />
<ownership>
<ownedBed>null</ownedBed>
</ownership>
<talker />
<skills>
<skills>
<li Class="SkillRecord">
<def>Construction</def>
<level>5</level>
<xpSinceLastLevel>3311.884</xpSinceLastLevel>
<passion>Minor</passion>
</li>
<li Class="SkillRecord">
<def>Growing</def>
<level>2</level>
<xpSinceLastLevel>2565.002</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Research</def>
<level>3</level>
</li>
<li Class="SkillRecord">
<def>Mining</def>
<level>4</level>
<xpSinceLastLevel>763.1116</xpSinceLastLevel>
<passion>Minor</passion>
</li>
<li Class="SkillRecord">
<def>Shooting</def>
<level>3</level>
<xpSinceLastLevel>1717.906</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Melee</def>
<level>6</level>
<xpSinceLastLevel>5459.545</xpSinceLastLevel>
<passion>Major</passion>
</li>
<li Class="SkillRecord">
<def>Social</def>
<level>7</level>
<xpSinceLastLevel>1400.784</xpSinceLastLevel>
<passion>Minor</passion>
</li>
<li Class="SkillRecord">
<def>Cooking</def>
<level>3</level>
<xpSinceLastLevel>1405.521</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Medicine</def>
<level>3</level>
<xpSinceLastLevel>3038.747</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Artistic</def>
<level>3</level>
<xpSinceLastLevel>2915.657</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Crafting</def>
<level>3</level>
</li>
</skills>
</skills>
<workSettings>
<workPriorities>
<keys>
<li>Warden</li>
<li>Repair</li>
<li>Construction</li>
<li>Hunting</li>
<li>Mining</li>
<li>Cleaning</li>
<li>Hauling</li>
<li>Patient</li>
<li>Firefighter</li>
<li>Research</li>
<li>Crafting</li>
</keys>
<values>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>0</li>
<li>0</li>
</values>
</workPriorities>
</workSettings>
</thing>

What is "Thing"?

Reading through the contents of the colonist save section is mostly self explanatory, the first area:
Code: [Select]
<thing Class="Pawn">
<def>Human</def>
<id>Human1</id>
<pos>(140, 0, 120)</pos>
<rot>1</rot>
<faction>Colony</faction>
<kindDef>Colonist</kindDef>
<jailerFaction>null</jailerFaction
Tells you what the "thing" is, It is a Human located at 140,0,120 facing east. The human is also a member of the colony and a Colonist, also the human is not jailed by any faction.

Some notes:
Colonists gained from randomly joining will be listed as villagers, not colonist. <kindDef>Villager</kindDef> instead of <kindDef>Colonist</kindDef>.
The <jailerFaction> section states what faction has jailed this person.
Directions are as follows North=0? East=1 South=2 West=3, this is for the <rot> value (Rotation), North isn't actually defined the <rot> </rot> section is entirely removed when facing north (back towards player)

What is Thing's story? - Backstory, traits, name, skin, and hair colour

And the next section is Story, the backstory name and colonists skin & hair colour are defined here.
Code: [Select]
<story>
<name.first>Julian</name.first>
<name.last>Kocher</name.last>
<name.nick>Julian</name.nick>
<childhood>MedievalLordlingUntitledShort1206230971</childhood>
<adulthood>LudditeRebelLuddite1864176822</adulthood>
<skinColor>RGBA(1.000, 0.937, 0.835, 1.000)</skinColor>
<hairColor>RGBA(0.310, 0.280, 0.260, 1.000)</hairColor>
<crownType>Average</crownType>
<headGraphicPath>Things/Pawn/Humanoid/Heads/Male/Male_Average_Pointy</headGraphicPath>
<hairDef>Spikes</hairDef>
<traits>
<allTraits>
<li Class="Trait">
<def>Psychopath</def>
</li>
</allTraits>
</traits>
</story>
Again self explanatory, for editing traits & back stories I recommend Neurotoxin's save editor paired with the Rimworld wiki, Just a note, changing backstory manually or with Neuro's editor won't affect stats, but it will allow your colonist to do jobs disabled by their old backstory.

What is Thing up to? - Age, Apparel, equipment(Weapon), Mindstate, and current job details

This next section I'm entirely unfamiliar with but a few things are again self explanatory
Code: [Select]
<age>32</age>
<apparel>
<wornApparel>
<li Class="Apparel">
<def>Apparel_CollarShirt</def>
<id>Apparel_CollarShirt3</id>
<health>100</health>
<color>RGBA(0.389, 0.398, 0.388, 1.000)</color>
</li>
</wornApparel>
</apparel>
<equipment>
<primary IsNull="True" />
<secondaries />
</equipment>
<mind>
<MindState>
<lastJobTag>Idle</lastJobTag>
<duty IsNull="True" />
<enemyTarget>null</enemyTarget>
</MindState>
</mind>
<playerController>
<drafter>
<autoUndrafter>
<lastNonWaitingTick>300</lastNonWaitingTick>
</autoUndrafter>
</drafter>
</playerController>
<jobs>
<curJob>
<def>Goto</def>
<targetA>(143, 0, 121)</targetA>
<targetC>(0, 0, 0)</targetC>
<targetQueueA IsNull="True" />
<targetQueueB IsNull="True" />
<placedTargets IsNull="True" />
<numToBring IsNull="True" />
<bill>null</bill>
<moveSpeed>Walk</moveSpeed>
<commTarget>null</commTarget>
<eqToUse>null</eqToUse>
</curJob>
<curJobDriver Class="JobDriver_Goto">
<curToilIndex>0</curToilIndex>
<ticksLeftThisToil>-109</ticksLeftThisToil>
<curToilCompleteMode>PatherArrival</curToilCompleteMode>
</curJobDriver>
</jobs>
From here you can see the humans age, apparel, equipment, state of mind (Mental brakes: dazed/rampage) and finally their current job.
Note: for editing this, I'd experiment with in-game resources to see different values depending on what that person was doing/wearing at the time.
Ex. For apparel wear power armour and then save to see its <def> & <id> so that you know the proper names to edit in as desired.
« Last Edit: August 30, 2014, 12:27:06 PM by MoparGamer »
Logged

MoparGamer

  • Drifter
  • **
  • Posts: 66
  • Refugee
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #1 on: August 29, 2014, 07:09:42 PM »

What is wrong with Thing physically? - Missing limbs, injuries, and health

This is a healthy colonist.

Code: [Select]
<healthTracker>
<pawnHealth>100</pawnHealth>
<bodyModel>
<injuries />
<nonlocalInjuries />
<missingParts />
<maxPainLevelMultiplier>1</maxPainLevelMultiplier>
</bodyModel>
</healthTracker>
This is a injured raider (possibly dead)

Code: [Select]
<healthTracker>
<bodyModel>
<injuries>
<li Class="Injury">
<def>Shredded</def>
<body>Human</body>
<damage>21</damage>
<source>Artillery_CannonShell</source>
<oldDamageThreshold>9999</oldDamageThreshold>
<part>25</part>
<startTicks>11801771</startTicks>
</li>
<li Class="Injury">
<def>Shredded</def>
<body>Human</body>
<damage>21</damage>
<source>Artillery_CannonShell</source>
<oldDamageThreshold>9999</oldDamageThreshold>
<startTicks>11802862</startTicks>
</li>
<li Class="Injury">
<def>Burn</def>
<body>Human</body>
<damage>19</damage>
<oldDamageThreshold>9999</oldDamageThreshold>
<startTicks>11809248</startTicks>
</li>
<li Class="Injury">
<def>Burn</def>
<body>Human</body>
<damage>2</damage>
<oldDamageThreshold>9999</oldDamageThreshold>
<part>32</part>
<startTicks>11807214</startTicks>
</li>
<li Class="Injury">
<def>Burn</def>
<body>Human</body>
<damage>3</damage>
<oldDamageThreshold>9999</oldDamageThreshold>
<part>29</part>
<startTicks>11808196</startTicks>
</li>
<li Class="Injury">
<def>Burn</def>
<body>Human</body>
<damage>4</damage>
<oldDamageThreshold>9999</oldDamageThreshold>
<part>44</part>
<startTicks>11809195</startTicks>
</li>
<li Class="Injury">
<def>Burn</def>
<body>Human</body>
<damage>1</damage>
<oldDamageThreshold>9999</oldDamageThreshold>
<part>25</part>
<startTicks>11808921</startTicks>
</li>
</injuries>
<nonlocalInjuries>
<li Class="NonlocalInjury">
<def>BloodLoss</def>
<damage>4</damage>
<ticksToNextHeal>1000</ticksToNextHeal>
</li>
</nonlocalInjuries>
<missingParts>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>47</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>48</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>49</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>50</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>51</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>52</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>35</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>36</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>37</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>38</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>39</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>40</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>41</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>42</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11801771</startTicks>
<isFresh>True</isFresh>
<part>43</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>53</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>54</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>55</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>56</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>57</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>58</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>59</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>60</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>61</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Crack</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>63</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>62</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>64</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>65</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>66</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>67</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>68</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>69</part>
</li>
<li Class="MissingBodyPart">
<body>Human</body>
<lastInjury>Shredded</lastInjury>
<startTicks>11802862</startTicks>
<isFresh>True</isFresh>
<part>70</part>
</li>
</missingParts>
<extraPain>232</extraPain>
<maxPainLevelMultiplier>1</maxPainLevelMultiplier>
</bodyModel>
<incapacitated>True</incapacitated>
<ticksToNextBleed>823</ticksToNextBleed>
<ticksToNextExtraPainReduction>223</ticksToNextExtraPainReduction>
</healthTracker>
Another self explanatory section, Injuries are things like bruises and stab scars, Non local injuries I think are things like blood loss & starvation. The missing parts section contains info about missing/destroyed body parts. I don't know what <maxPainLevelMultiplier>1</maxPainLevelMultiplier> does. If the incapacitated section shows a value of True, it means that the colonist in question is incapacitated, you can set it to False to wake them up or delete the <incapacitated>True</incapacitated> altogether (as the game does after a successful healing).

Tips to heal a colonist: You can remove injuries individually, set values to false, but this allows a lot of room for error. What I do is copy a healthy colonist <healthTracker> section and paste it over the injured colonist's healthTracker.

More what is Thing up to? - Pathing, carried object, Food, & Sleep level
Code: [Select]
<pather>
<nextSquare>(141, 0, 121)</nextSquare>
<ticksUntilMove>14</ticksUntilMove>
<totalMoveDuration>40</totalMoveDuration>
<pathMode>OnSquare</pathMode>
<destination>(143, 0, 121)</destination>
</pather>
<inventory>
<container>
<maxStacks>99999</maxStacks>
<contents>
<li Class="ThingWithComponents">
<def>DoorKey</def>
<id>DoorKey2</id>
<health>30</health>
</li>
</contents>
</container>
</inventory>
<filth>
<carriedFilth />
</filth>
<food>
<pieceFood>
<curLevel>79.56024</curLevel>
</pieceFood>
</food>
<rest>
<pieceRest>
<curLevel>79.71382</curLevel>
</pieceRest>
</rest>
<carryHands>
<container>
<maxStacks>1</maxStacks>
<contents />
</container>
</carryHands>
Another section I'm unfamiliar with. <pather> displays details about where the colonist are going and their path, <inventory> holds non-equipment or apparel items, the most interesting parts are <pieceFood> & <pieceRest> as they dictate whether your colonist is Hungry/Tired, once pieceFood reaches 0 it changes to <ticksToNextStarveDamage>281</ticksToNextStarveDamage>, and when pieceRest reaches 0 the colonist passes out. <carryHands> I believe is what is currently being carried (metal/logs/etc)

What's your colonist thinking? - Thoughts/moods and Prisoner status

Code: [Select]
<psychology>
<thoughts>
<thoughts>
<li Class="Thought">
<def>NewColonyOptimism</def>
<age>150</age>
</li>
</thoughts>
</thoughts>
<mood>
<curLevel>51.3125</curLevel>
</mood>
<environment>
<curLevel>54.8</curLevel>
</environment>
<openness>
<curLevel>92.5</curLevel>
</openness>
<recentMemory>
<lastLightTick>999999</lastLightTick>
<lastOutdoorTick>312</lastOutdoorTick>
</recentMemory>
</psychology>
<prisoner IsNull="True" />
<ownership>
<ownedBed>null</ownedBed>
</ownership>
<talker />

The main things here are thoughts and moods, some are determined by environment factors like openness which is based on the size of a room, Environment by what surrounds them (Nice carpet or blood stained dirt, decorations or dead bodies?[and no, dead bodies don't count as nice decorations]), the recentMemory section is simply a comparison about when the colonist was last in light- Determines if you get the "In darkness" thoughts and another comparison of when they were last outside- to determine cabin fever status. The main thing here is determined by everything else; Mood, My guess is a colonist idle with 50 mood and based on their thoughts it changes for better or worse. The rest of the things in this section are rather boring, the only thing is the prisoner section which changes to
Code: [Select]
<prisoner>
<interactionMode>FriendlyChat</interactionMode>
<getsFood>True</getsFood>
<attemptRecruit>True</attemptRecruit>
<doctorsCare>True</doctorsCare>
<getsMedicine>True</getsMedicine>
<lastInteractionTime>-9999</lastInteractionTime>
</prisoner>
when the Pawn/Prisoner/Colonist is imprisoned, the contents of the <prisoner> section are based on options you set in-game.

What is your Colonist good at? - Skills & work priorities
Code: [Select]
<skills>
<skills>
<li Class="SkillRecord">
<def>Construction</def>
<level>5</level>
<xpSinceLastLevel>3311.884</xpSinceLastLevel>
<passion>Minor</passion>
</li>
<li Class="SkillRecord">
<def>Growing</def>
<level>2</level>
<xpSinceLastLevel>2565.002</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Research</def>
<level>3</level>
</li>
<li Class="SkillRecord">
<def>Mining</def>
<level>4</level>
<xpSinceLastLevel>763.1116</xpSinceLastLevel>
<passion>Minor</passion>
</li>
<li Class="SkillRecord">
<def>Shooting</def>
<level>3</level>
<xpSinceLastLevel>1717.906</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Melee</def>
<level>6</level>
<xpSinceLastLevel>5459.545</xpSinceLastLevel>
<passion>Major</passion>
</li>
<li Class="SkillRecord">
<def>Social</def>
<level>7</level>
<xpSinceLastLevel>1400.784</xpSinceLastLevel>
<passion>Minor</passion>
</li>
<li Class="SkillRecord">
<def>Cooking</def>
<level>3</level>
<xpSinceLastLevel>1405.521</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Medicine</def>
<level>3</level>
<xpSinceLastLevel>3038.747</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Artistic</def>
<level>3</level>
<xpSinceLastLevel>2915.657</xpSinceLastLevel>
</li>
<li Class="SkillRecord">
<def>Crafting</def>
<level>3</level>
</li>
</skills>
</skills>
<workSettings>
<workPriorities>
<keys>
<li>Warden</li>
<li>Repair</li>
<li>Construction</li>
<li>Hunting</li>
<li>Mining</li>
<li>Cleaning</li>
<li>Hauling</li>
<li>Patient</li>
<li>Firefighter</li>
<li>Research</li>
<li>Crafting</li>
</keys>
<values>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>4</li>
<li>0</li>
<li>0</li>
</values>
</workPriorities>
</workSettings>
</thing>

This is probably one of the more useful sections to edit, whether you want to create specific skill-sets or super humans. Again its self-explanatory. But I shall explain it as well, this section contains the skills of your colonist and his/her passion for each skill.
The simplest way to explain it is with a single example
Code: [Select]
<li Class="SkillRecord">
<def>Construction</def>
<level>5</level>
<xpSinceLastLevel>3311.884</xpSinceLastLevel>
<passion>Minor</passion>
</li>
Construction is the skill here, it's a level 5 skill and currently has 3311.884 exp towards level 6, It is a minor passion meaning the colonist will learn at a regular pace. (1x)

The rest of the skills follow the same format. You can edit skills to make them all major passions by setting <passion> to Major instead of minor or adding <passion>Major</passion> to skills where there is no passion. You can also set the skills to whatever level you desire.

For doing all of this I recommend using Neuro's Save editor (Mentioned & Linked in the first post)

The only other part of this section is the workPriorities, these can be set ingame and don't really gain any benefits from save editing. (You can set priorities beyond 4, but not sure of side effects/value)
« Last Edit: August 30, 2014, 12:22:11 PM by MoparGamer »
Logged

MoparGamer

  • Drifter
  • **
  • Posts: 66
  • Refugee
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #2 on: August 29, 2014, 07:09:52 PM »

Reserved
Logged

MoparGamer

  • Drifter
  • **
  • Posts: 66
  • Refugee
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #3 on: August 29, 2014, 07:10:00 PM »

Reserved
Logged

UrbanBourbon

  • Colonist
  • ***
  • Posts: 254
  • Not a cat
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #4 on: August 29, 2014, 07:57:21 PM »

The first post gives me a bunch of thoughts.

Hmm. Wear power armor... save and exit... Open save file. Copy the guy's outfit to all the other colonists... Got it.

Would you happen to remember something about the coordinates? Where is 0,0? Lower left corner?

Personally, I sometimes open a save file to see where the steam vents are. Especially if I suspect there's one more inside the mountain. I just take a quick glance at the save file and count the geysir instances, because they're all there since day 0, and compare it to how many I've found on the map already. So it can be used to get a helpful hint or a downright and exact cheat, depending how well one pays attention to the details.

Could... Could I make a clone of another colonist? If.. if I just zeroed out the clone's current job maybe? And tweak the coordinates a bit?

It occurs to me that by editing the save, one might be able to get rid of scars.
Logged

MoparGamer

  • Drifter
  • **
  • Posts: 66
  • Refugee
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #5 on: August 29, 2014, 08:08:06 PM »

Lower left corner is 0,0 (There's an inspector tool in Dev mode that can help with finding co-ordinates)

Personally, I just turn fog off while in Dev mode to see hidden things if needed (I didn't know about your way, I've so far only looked at Colonist editing)

As for cloning... It appears to work, but I've only tested it for about 5 seconds now, so no guarantees.

Healing scars and other damage is done by resetting the health tracker, getting ready to post that part soon.
« Last Edit: August 29, 2014, 08:38:17 PM by MoparGamer »
Logged

Goo Poni

  • Colonist
  • ***
  • Posts: 437
  • Refugee
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #6 on: August 30, 2014, 11:36:03 AM »

You can certainly remove all wounds with a little save editing. If you plan to edit away a colonist's crippling injuries, remember to also set incapacitation to false or remove it altogether. From what I saw, the game won't check the injuries to see if incapacitation makes sense, so colonists will stay bed bound.

Personally, I play TechTreeMinami, so I save edit crippling injuries away and then use the console to delete a Regenulant which heals all injuries, if only colonists could actually reach it. Can't order other colonists to give someone Regenulant.

I just delete everything after <missingParts> including </missingParts> and then edit it to read <missingParts />.
Logged

Rahjital

  • Colonist
  • ***
  • Posts: 533
  • Iguana Herder
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #7 on: August 30, 2014, 12:50:35 PM »

From what I saw, the game won't check the injuries to see if incapacitation makes sense, so colonists will stay bed bound.

Incapacitation depends on pain, which slowly goes down if the colonists are healthy enough. Eventually it reaches a low enough level where the pawn can get up again. Still, if you don't want your colonists to have your colonists take a few more days to recover, it's a good idea to remove it anyway. :)
Logged

Bodog999

  • Colonist
  • ***
  • Posts: 324
  • Calm Player
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #8 on: August 30, 2014, 01:48:22 PM »

You just got me (resonable save editor) reading I even learned some stuff. I'm slowly but surely being able to fully edit a colonist. Atm I can change traits, wounds, missing parts and stats including adding minor/major interests
Logged

electrose

  • Muffalo
  • *
  • Posts: 2
  • Refugee
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #9 on: October 21, 2016, 10:00:34 PM »

Hey, so I've got to remove something that was researched as it causes incompatibilities between two mods. I found the research in the save but how would I reset it so that I could research it later when a compatibility patch comes out.
Basically, how do you make a researched topic (ie. Stonecutting) become unresearched?
Logged

shadowblasta

  • Muffalo
  • *
  • Posts: 4
  • Refugee
    • View Profile
Re: A Guide To Save Editing (In Construction)
« Reply #10 on: May 08, 2018, 04:34:07 AM »

Hey just wanna say, THANK YOU, like seriously, i started using steam workshop for my mods and someone pulled a mod out of nowhere, and it had given my best colonist custom body parts, without the mod, the characters got pulled out the game, so thanks to this i was able to remove the parts from my colonist and continue my play through
Logged