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

Topics - MoparGamer

#1
How can I make it so that select plants will grow naturally in a ice sheet biome (0 degrees celsius to -50). I've got them spawning on the map with a comfort zone that prevents them from dying, but they won't grow due to being "Out of ideal temperature range". Is there a field that allows me to change that, or how would I do this?

Current Plant:
<ThingDef ParentName="PlantBase">
<thingClass>Plant</thingClass>
    <defName>IceMoss</defName>
    <label>icemoss</label>
    <description>Ice Moss, bioengineered to survive in cold climates and provide nutrients for wild life.</description>
    <statBases>
      <MaxHitPoints>85</MaxHitPoints>
      <Beauty>1</Beauty>
  <ComfyTemperatureMin>-200</ComfyTemperatureMin>
  <ComfyTemperatureMax>200</ComfyTemperatureMax>  
    </statBases>
<selectable>True</selectable>
    <graphicData>
      <texPath>Things/Plant/IceMoss</texPath>
      <graphicClass>Graphic_Random</graphicClass>
    </graphicData>
    <hideAtSnowDepth>1.5</hideAtSnowDepth>
    <ingestible>
      <preferability>Plant</preferability>
      <nutrition>1</nutrition>
    </ingestible>
    <plant>
      <leaflessGraphicPath>Things/Plant/Grass_Leafless</leaflessGraphicPath>
      <harvestWork>40</harvestWork>
      <fertilityMin>0.25</fertilityMin>
      <maxMeshCount>9</maxMeshCount>
      <visualSizeRange>
        <min>0.4</min>
        <max>0.6</max>
      </visualSizeRange>
      <growDays>0.2</growDays>
      <topWindExposure>1.4</topWindExposure>
      <seedEmitMTBDays>7</seedEmitMTBDays>
      <fertilityFactorGrowthRate>0.90</fertilityFactorGrowthRate>
      <fertilityFactorPlantChance>0.90</fertilityFactorPlantChance>
    </plant>
  </ThingDef>


https://www.dropbox.com/s/b9cclurlqeg7e2z/Plant.png?dl=0

#2
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.
<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:
<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.
<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

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