RimWorld

RimWorld

6,605 ratings
Geological Landforms
233
52
21
60
72
18
33
16
45
21
10
29
11
21
14
13
10
8
6
5
2
2
   
Award
Favorite
Favorited
Unfavorite
Mod, 1.3, 1.4, 1.5, 1.6
File Size
Posted
Updated
15.373 MB
Mar 5, 2022 @ 2:10pm
Aug 2 @ 5:27am
60 Change Notes ( view )

Subscribe to download
Geological Landforms

In 2 collections by m00nl1ght
m00nl1ght's Mods
4 items
m00nl1ght's Essentials: Medieval World [1.5]
36 items
Description
Compatibility with the Odyssey DLC

Content that overlaps with the Odyssey DLC is automatically disabled when the DLC is active. This means 14 out of the 43 landforms in this mod are disabled when the DLC is present. The river landforms from this mod remain enabled by default, and replace the ones from Odyssey. You can customize this in the "Map Features" tab of the mod settings.


Description

Adds 43 landforms to the game, which generate biome-independently.

You can see an example of each landform in the image gallery on this workshop page.

The goal of this mod is to make map generation more interesting and varied, compared to the vanilla experience of having either a cliff or a coast on one edge of your map.

Some of the landforms significantly affect gameplay and can make the game both easier or much more challenging in various ways. For example, Islands and Archipelagos are very remote but provide very little stone and ores, and Canyons and Rifts are very easy to defend and have plenty of ores, but provide very little natural resources like food, light, wood, and space to grow plants or keep animals.

The landforms are optimized for the standard map size (250x250). Using a larger map size is also fine, but the landforms might not generate correctly if the map is too small.

Direct downloads for non-Steam users are available here: GitHub Releases[github.com]


Add-ons

Biome Transitions: Generates maps with multiple biomes on them when you settle at the border between two or more biomes on the world map.


Creating your own landforms

Pretty much everything about the landforms provided by this mod is fully configurable, including where and how often they appear on the world map, and how exactly they affect map generation. This mod includes a node-based landform editor that can be accessed from the mod settings.

If you would like to create new landforms, this is also possible. If you don't know how the internals of RimWorld's map generation and the math behind it work yet, I recommend using one of the existing landforms as a template, so you can play around with the values and see what they do.

Landforms are stored as xml files, so if you want to share a landform you created, simply upload its file to a filesharing service and post the link. You can find the landform files by clicking the "Open custom landform data directory" button in the mod settings.


FAQ

> How is this mod different from other map generation mods?
Geological Landforms does not add or modify any biomes, and instead adds a separate layer to map generation that can then independently be applied to any biome, including ones added by other mods.

> How do events and raids work on islands?
All landforms (should) always leave at least one part of the map edge walkable, which allows events and raids to happen normally. For islands specifically, at least one side will always have shallow water to allow entering and leaving the map.

> Can I add this mod to an existing save?
Yes, it can be added at any time. Of course existing colony maps will not be affected, only new ones generated after the mod was added.

> Can I safely remove this mod from an existing save?
Yes, unless you have settled on an impassable mountains tile, which is not supported by vanilla. In that case, move to a normal tile before removing the mod.

> How can I easily find a specific landform on the world map?
Select any tile, open the "Terrain" tab and click the "Search for landform nearby" button. Alternatively, you can install Prepare Landing which allows filtering all world tiles based on selected criteria. Geological Landforms contains an integration patch that adds a filter for landforms, you can find it in the "Terrain II & Temp" tab.

> Does this mod prevent overhead mountain from collapsing?
Yes, Geological Landforms disables roof collapsing on any maps that are on Impassable Mountains world tiles. This is necessary because the cave landforms that appear on those tiles have roof areas much bigger than what vanilla would allow with the roof collapse mechanic enabled.


Recommended Mods

  • Map Preview: Adds a map preview to the world map. It shows you the map that will generate if you settle on the currently selected world tile.

  • Prepare Landing: Allows filtering all world tiles based on selected criteria, including specific landforms, so you can find your perfect starting spot.


Compatibility

  • Biomes! Islands: Compatible, and there is an integration feature that allows the plants and animals from Biomes! Islands to spawn on coastal landforms.

  • ReGrowth Collection, Alpha Biomes and other biome mods: Compatible, landforms will generate in any biome as long as its requirements (temperature, rainfall, etc) are fulfilled.

  • Map Designer and [KV] Configurable Maps: Compatible, but not all settings from those mods will still apply if there is a landform present, and some will override landforms.

Geological Landforms provides a XML DefModExtension that authors of biome mods can use to control which landforms are allowed to spawn in their biomes. More details and an example are available on the Wiki page[github.com].


Credit

This mod uses Harmony[github.com], thanks to Andreas Pardeike for creating this awesome patching library.

The landform editor uses the C# library "Node Editor Framework" by Seneral, a flexible and modular framework for creating node based displays and editors in Unity.

Landform ideas:

Included translations:

This mod is inspired by multiple great mods from earlier versions which unfortunately seem to be abandoned. Geological Landforms does not use any content or code from these mods though.


Links

[discord.gg]
[github.com]

Popular Discussions View All (4)
376
Aug 18 @ 5:16pm
PINNED: Bug Reports
m00nl1ght
119
Aug 17 @ 10:05am
PINNED: Suggestions and Ideas
m00nl1ght
1,558 Comments
m00nl1ght  [author] Aug 12 @ 10:20am 
@ilyvion

Some parts of Map Preview are included in this mod, in order to provide the preview functionality in the landform editor.

The first time the mod is loaded, it analyzes all terrain textures (both from the base game and from other mods) to determine which color they should have in previews. This should only happen once. The first time you launch the game after installing the mod, the colors are calculated and saved in a file TrueTerrainColorsCache.xml in your Config folder. On subsequent game launches, the colors are simply read from the file and not calculated again, unless you add new mods which contain new terrain textures.
ilyvion Aug 12 @ 3:21am 
Presumably there's not much to do about this 90 second long process, but it was annoying enough to get to the bottom of that I had to write about it to make it feel like it wasn't wasted effort. 😅
ilyvion Aug 12 @ 3:20am 
I don't know if this is a bug report, exactly, but this mod seems to include (parts of) Map Preview in it? I noticed when I enabled this mod that my loading screen would hang for ~90 seconds, and I added some debug output to my Loading Progress mod to figure out who the culprit was, and this is what's "hanging":

[Loading Progress][DEV] About to run static constructor for MapPreview.TrueTerrainColors @ 12:05:34.400
[TrueTerrainColors v1.12.22] Extracted true colors from 1571 terrain defs in 103.55 seconds using a RenderTexture of size 2048x2048.
[Loading Progress][DEV] Finished running static constructor for MapPreview.TrueTerrainColors @ 12:07:18.035; took 01:43.634

Except... I don't have the "map preview" mod enabled. Looking in the directory for this mod, it turns out there's a 1.6/Lunar/Components/MapPreview.dll with the expensive MapPreview.TrueTerrainColors class in it.
m00nl1ght  [author] Aug 12 @ 3:18am 
@Trump prime(convicted felon)

This is not caused by Geological Landforms, at least not by itself. My guess would be that some other mod is involved, possibly one that adds custom terrains. If you can narrow down which mod(s) are needed to trigger the issue, I can look into it further.
at Verse.MapGenerator.GenerateContentsIntoMap (System.Collections.Generic.IEnumerable`1[T] genStepDefs, Verse.Map map, System.Int32 seed, System.Boolean stepDebugger) [0x001c3] in <cb53cd4422904947932d33f561ad8d15>:0
- PREFIX GeologicalLandforms.Main: Void GeologicalLandforms.Patches.Patch_Verse_MapGenerator:GenerateContentsIntoMap_Prefix(Map map, IEnumerable`1& genStepDefs)
- POSTFIX GeologicalLandforms.Main: Void GeologicalLandforms.Patches.Patch_Verse_MapGenerator:GenerateContentsIntoMap_Postfix(Map map)

Sorry, no clue what exactly that means, but some sort of error prevents map generation. Full log:
https://gist.github.com/HugsLibRecordKeeper/01793b913869313fe6a5bb1c2beb97e6
m00nl1ght  [author] Aug 11 @ 3:32am 
@Citrix

Looks like the author of RimWar removed the code that was targeted by the compatibility patch, so it is no longer needed. You can safely ignore the error for now, I will remove the patch in the next update.
Citrix Aug 10 @ 7:18pm 
@m00nl1ght: iam getting this error since the RimWar Update "[Geological Landforms v1.7.10] Failed to apply compatibility patches for RimWar
HarmonyLib.HarmonyException: Patching exception in method null ---> System.ArgumentException: Undefined target method for patch method static System.Boolean GeologicalLandforms.Compatibility.ModCompat_RimWar::WorldReachability_CanReach_Patch(System.Boolean& __result)"
m00nl1ght  [author] Aug 10 @ 10:25am 
@BlueberryMuffin

Sorry but I don't understand what you mean. The "Crater" landform from this mod is in no way limited to specific biomes, and when testing I'm getting plenty of Crater maps with no lava.
BlueberryMuffin Aug 10 @ 8:55am 
I am only getting craters on lava maps. Is there a way to make this y'know... not be only on lava?
R as in "Robert Loggia" Aug 8 @ 7:55pm 
Should've seen that. Many thanks!