Edit world generation rules

Oxygen Not Included1.1k views12 favorites6 min readby NilfsenView on Steam ↗

[1] General information

This tutorial is work in progress. I’m discovering how it exactly works on my own and tutorial will be updated along.

I recommend using notepad++ to edit this files but any text editor will be fine (just sometimes it will be less user-friendly). Later on I might tackle some external tool to provide GUI and scripts for files modification, but keep in mind that is end goal.

Another recommendation is to make backups of files before they are changed as some things might be game breaking if not done properly. If you don't have backups then you can restore original game files by deleting edited files or even whole worldgen folder and going to:
Steam app->Library->right click Oxygen Not Included->Properties->Local files-> Check file integrity
This option will download all missing files with its original installation versions.

If you discover something interesting on your own, help in creating this tutorial is always appreciated. So feel free to leave comment with details.
If you want to get specific feature also leave comment and I’ll try to get instruction for it.

This tutorial will contain both information about setting files (section 2 and 3) and tips how to change specific features (section 4).

[2] Files structue

Settings of world generation can be found in multiple files in folder:
*\steamapps\common\OxygenNotIncluded\OxygenNotIncluded_Data\StreamingAssets\worldgen
They are split in to:
-general world settings
-biome settings
-object settings
-default settings

World Settings
Here you can find general rules of world generation. Like how big it is, what biomes are allowed and how often specific biome can be generated. If it’s closed world with 4 walls or if it have access to space.

Biome settings
Here you can find templates of biomes. You can make your own biomes or modify current.
Just remember not to delete default biomes as it might crash game on world generation (if it will try to put in to world not existing biome). If you want to get rid of any biome you need to change it in world settings. In configuration file you can change from what elements biomes are build (tile material, temperatures, gases, liquids) and its temperatures. Also witch objects/geysers are possible to spawn.

Objects settings.
Like world is filled with biomes, biomes are filled with objects.
To spawn specific object it need to be described in its configuration file and then add as possible to spawn in one (or more) biome configuration files.

Default settings
These are options that will be used if some settings are omitted in any other configuration file and some general rules (like max world size). If you are changing any worldgen/biome/object file and it broke your game it is worth checking default file if it doesn't have simiilar setting are it might be reason of crash when your settings are in conflict with default.

[3a] Editing worldgen files

All files related to worlds can be found in (each file means new option of world in new game menu):
*\steamapps\common\OxygenNotIncluded\OxygenNotIncluded_Data\StreamingAssets\worldgen\worlds
I strongly recommend adding files than editing default ones as they are useful templates and removing broken world won’t remove default worlds this way.
First step is to setup name and description of your world to do so:
Make copy of default.yaml and edit lines:
name: <put here your own name>
description: <put description>
Name will correspond to name of world in new game menu and description will allow you to easily show in game world details like changes made.
Next step is to adjust world content, some options are just comments (marked with “#”), don’t try to activate them as they are not present in game. Specific parts of world are split into sections of file and need to be set in correct section to work.

ZoneFiles:
If you want to add custom biome, add it name here, so it can be generated in new world.
To remove any biome, just remove its line from file.
Do not remove/change lines for StartWorld, Space, Bottom and Surface. These are crucial parts of world and if not replaced with something with similar features will break game or will make some features missing.

DefineTagSet:
These tags translate part of map in to areas that later in file can be used to control which parts of map can contain what type of zones(by controlling temperatures of map parts). Each custom tag needs to contain at least one default tag that game engine recognizes. Default tags can be understood as “layers” of map.
By default game recognizes:
StartNear – area around start area
StartMedium – area just around start area
StartFar – far from start area
AtDepths – bottom of map
NearDepths – area just above bottom
AtSurface – top of map
NearSurface – area just below top of map
From those “build blocks” parts of map are made that will have defined rules for generating content.
For example:
FarAndUp:
- NearSurface
- StartFar
This tag means any area that is far from start area and in upper part of it.

UnknownCellsAllowedSubworlds:
This section controls zones spawned in specific parts of map (parts of map identified with specific tag). Here can be set what temperatures, subworlds, objects are allowed in defined areas.

[3b] Editing biomes

Biome specific files can be found in:
*\steamapps\common\OxygenNotIncluded\OxygenNotIncluded_Data\StreamingAssets\worldgen\biomes
Each files corespond to specific biome and if it is added to worldgen file it will add this biome type to new game in this world.

[3c] Editing objects

[4a] Changing world size

To make world bigger/smaller it is necessary to start new game with modified world gen settings.
Recommended option is to create copy of default world and edit its content.
To do so, go to:
D:\SteamLibrary\steamapps\common\OxygenNotIncluded\OxygenNotIncluded_Data\StreamingAssets\worldgen\worlds
Copy default.yaml and rename it in to your liking.
Next open this file with text editor and change lines:
  • name: Default <change this to change name of world in new game module>
  • description: The vanilla of starting asteroids <change this to get useful in game world description>
Next go to line worldsize: and change:
  • X: 256 <controls width of map>
  • Y: 384 <control height of map>
Important is to not make x: value greater than y:. Can be equal but not greater or world generation will crash at ~51%.
Also default world size need to be taken in to account as generated world size cannot be bigger than default (if any world is bigger than default menu of new game will crash game). It can be changed in:
*steamapps\common\OxygenNotIncluded\OxygenNotIncluded_Data\StreamingAssets\worldgen\defaults.yaml
Look for lines SubWorldWidth: and SubWorldHeight: and set it equal or greater than max value of width/height that you can use of worldgen files.

[4b] Control number of geysers

Geysers are objects so to control their amount you need to change biome config files.
Bu default geysers are spawning in:
-Frozen
-HotMarsh
-Jungle
-OilPockets
To change amount of geysers spawned you need to edit* those files and change line feature_geyser_generic: <put value of geysers spawned>.
It means that across all biomes of that type on map sum of geyser will be equal to that value.
This option doesn’t control which geysers are spawned.

*By editing these files you are changing every world that contains those biomes. Other option is to create own biome, set amount of geysers there and add this new biome to world gen file. By doing so, you can control in which worlds amount of geysers will be changed. Having to many/too few of them can make map unplayable or very hard to survive for duplicants.

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.