Space Engineers

Space Engineers

114 ratings
Official Guide: How to create your own planet - the guide
By Simon5 and 3 collaborators
This is a walkthrough how to create and mod planets in Space Engineers.
 
Rate  
Favorite
Favorited
Unfavorite
1. Introduction


Hello fellow Space Engineers players!

I would like to present you with a guide that will help you understand how we created planets at Keen Software House and how we are letting you make your own.

We all hope that this guide will help you understand our systems, implementation of models, and material definitions that you will need if you want to create/edit planets.

So let's get to it!
2. Recommended software
  • Microsoft Visual Studio - or Notepad++ (Link[notepad-plus-plus.org]) - for editing code/definitions
  • Adobe Photoshop - for editing textures mostly but can also be used for heightmap creation
  • World Machine Professional - for heightmap creation (much more realistic looking terrain)

(Basic Edition is also available, but the max resolution output is limited to 512x512 pixels)
Link[www.world-machine.com]

Advice:
We would like to mention one thing before you get into modding planets:
For your own sake we recommend you to load either PlanetTemplate or EarthLikeModExample and test/edit all the things there, so you get to know the system and how everything works.

After that you can create your own from scratch. This is entirely up to you.
2.1. Example mods
Here you can download example mods to edit on your own to test how the system works:

Example planet with a modded Alien tree (blue) and modded voxel material Grass (blue)
Link: http://steamcommunity.com/sharedfiles/filedetails/?id=572570154
Modded voxel material Grass (blue) with modded grass foliage (also blue)
Link: http://steamcommunity.com/sharedfiles/filedetails/?id=572647925
Modded Alien tree (changed from red to blue)
Link: http://steamcommunity.com/sharedfiles/filedetails/?id=572666778
2.2. INFORMATION about custom foliage, materials
In case you are thinking about making your own trees and voxel materials, we have some good news for you!

There are two separate guides that you can follow to make your own stuff.

Here are their links:
Tree modding for planets:
http://steamcommunity.com/sharedfiles/filedetails/?id=568303446
Voxel material modding:
http://steamcommunity.com/sharedfiles/filedetails/?id=568406623
3. Size of your planet
The size of your planet is chosen in the game when you spawn your planet by pressing Shift + F10.

You can spawn a planet that can be anything from 19 - 120 km in diameter. Keep in mind that the ratio of the whole planet will change.

For example:
If I want to make a planet with a diameter of 60 kilometers, it will mean that 1 pixel on the biome map will be 10 meters instead of 20 meters with the standard texture resolution (2048x2048 pixels).

If you make a planet half the normal size with half the resolution of all textures, the resolution meters per pixel will remain the same (1 pixel = 20 meters).

It also means that you have a heightmap, Biome map and Occlusion map, a resolution of 2048x2048 might be a bit too big (it also takes longer to load). You can also make all these maps 1024x1024 if you want to, but the planet will keep the same resolution (1 pixel = 20 meters).

If we do the maths:
2x smaller texture resolution, 2x smaller planet size = the textures will keep the same resolution in the game.
Smaller resolution = less resolution pixel/meters.
Smaller planet = more resolution per pixel/meters.
4. Usage of a Biome map - what is it for?

There are two ways of defining/placing voxel materials in planet generators: using biome maps or material rules.

Biome maps are 6 textures that are used to assign properties to specific areas of the planet surface.

The map is a 8-bit 2048x2048 texture where:
  • The RED channel is the voxel material placement map.
  • The GREEN channel is the foliage placement map (including voxel stones)
  • The BLUE channel is the ore placement map


Each RGB channel affects something else on the planet.
So when you are editing something, always check each RGB channel separately!

Here is a location of a biome map that is used on the EarthLike planet that you can have a look at:
C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\PlanetDataFiles\EarthLike

There is only one Biome map per planet which includes six textures that connect together to cover the whole planet surface:

Here is a list of textures that conclude the Biome map:
  • front_mat.png
  • back_mat.png
  • up_mat.png
  • down_mat.png
  • left_mat.png
  • right_mat.png

NOTE:
You should still try to aim for a seamless texture, because it will be noticeable if there is a tree line at the edge of one texture and not on the connecting texture (although this a lot more important when creating heightmaps).
4.1. RGB channels in your Biome map

Voxel materials:
This is the RED channel stored on front_mat/back_mat/... which forces placement of a specific voxel material on a specific area of the planet. Each voxel material needs to have a separate ID assigned to it, and then when this is edited in this map and loaded, that material will be put in that location.

Keep in mind that this does not alter the terrain in any way, so if you want to create a "lake" you will have to adapt your heightmap so that exact area is flat.



The RED channel is used by
<CustomMaterialTable>
and by
<ComplexMaterials>
in combination with
<MaterialGroup Name="XXX" Value="XX">

The lighter grey is for lake placement that would otherwise be very complicated to place if done with standard material placement definitions (more about that later).
The darker grey is sand placement on the equator.


NOTE: This picture is zoomed in, so you can see how ore deposits are placed on the Vanilla EarthLike planet.

Ores:
This is the BLUE channel stored in front_mat/back_mat/... which decides where ore deposits are spawned under the surface of the planet. Each ore can have multiple IDs assigned to it, and you can set the depth of the ore from the surface as well as how deep below it goes.





The BLUE channel is used by
<OreMappings>
which says which Ore spawns, how deep it spawns and how deep it goes.
All placement is hand-painted in this channel.


Biome:
This the GREEN channel stored in front_mat/back_mat/... which decides where which foliage spawns. You can not only implement your own foliage (or any model for that matter) but you can also decide other rules, like on which slope the foliage spawns, its latitude and height.







The GREEN channel is used by
<EnvironmentItems>
which says what foliage and voxel stones spawn, on what material, on what slope and at what latitude.


4.2. Dark spots on planets texture
I guess if you decided to mod Space Engineers, you have already played the game, so you will know this.

The Occlusion map creates those dark spots on the surface of the planet which mark ore deposits.

When you make an Occlusion map, you have to name it like this:
front_add
back_add
up_add - pole
down_add - pole
left_add
right_add



This map is created directly from the BLUE channel from the Biome map. But on the Occlusion map only the RED channel is used to create these dark spots.

These values are inverted from the blue channel and then a Value from 0 (non existent) to 255 (black-hole dark) is set which sets how dark the spot will be.

The default value we use for Occlusion now in the game is 128.
4.3. Create your Biome map + dark spots
The process is really simple. You have two options:
  • Copy an existing map to your folder and overwrite the channels and edit them to your liking
    (This is highly recommended to avoid errors!)
  • create a new: step by step in Photoshop:
  • Set both width and height to 2048 pixels
    (for smaller planets this can also be 1024 or less, but all textures need to have the same resolution! Even the heightmap)
  • Set resolution - Pixels/Inch to 72.
  • Set colour mode to RGB Colour - 8bit
  • Now start painting with the pencil tool on each RGB Channel separately.
    Never on all three at once! (It will F. up everything - trust me).

Location of your Biome and Occlusion maps:
C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\PlanetDataFiles\YOUR PLANET NAME\

When you have created your files in Photoshop, save them here in .PNG format!


Click on the image for better resolution.
4.4. Working with RGB channels
Ok, Steam won't let me share that link to a small RGB Photoshop tutorial with you, so just go to photoshopessentials.com and search for RGB and it's the first link.

This is a simple tutorial to explain you what we mean when we say Grayscale ID, which can also be called the RGB values
(each channel only has one number per shade of that color ranging from 0 to 255).

Here I have loaded a Biome map texture front_mat texture which is used on the Vanilla EarthLike planet.


These are the RGB channels as you can see them in Photoshop.

NOTE: Edit each RGB channel separately!






Always use the pencil tool to paint pixels.
The brush tool has a falloff that has different values and you will not have control over those!



You can see if the numbers are correct on the top right of the screen if you have your workspace set to Essentials.

Here you will enter the values you want to paint.
Make sure you check them before saving, sometimes Photoshop can move the number +-1 (personal experience).

It doesn't matter if the numbers match, just as long as you have the correct value (ID) in the correct channel!
4.5. Heightmap creation
As mentioned in 2. Required software, we used the program World Machine to create our heightmaps and then we did some minor tweaks by hand (like putting in lakes and desert areas)

First, to explain how our planet heightmaps work:
We have 6 textures that connect together (image below). Our standard resolution for a big 120km planet is 2048x2048. But you can use a lower one if you want to.

To create your own heightmap, the best action would be to find a heightmap here:
C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\PlanetDataFiles

Then you can open the texture and place yours/paint yours on a new layer, flatten the image and save it as a .PNG

There are other options for you also!
  • You can visit[terrain.party] this site and download a heightmap from a real place on Earth. You can even set the size of the map (maximum is 60 km). And then you can edit it further in Photoshop.
  • You can try painting it yourself in Photoshop (or any other similar software, like Gimp).
  • You can also just try Googling for heightmaps and try which one suits you the best (keep in mind the resolution must be 512,1024, 2048!)

However you get your heightmap, always keep in mind how each texture of the heightmap is connected, so the seams need to fit together. Bad texture connection is very visible in the game.

Here is an image of how the textures are connected:
5. Let's find the main definitions file
First, we need to open PlanetGeneratorDefinitions.sbc, where all the base definitions are stored.
All other definitions are directly linked to this one, so this is the one you will spend the most time editing.

Location of the main definitions file:
Navigate to: C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\
and open this file: PlanetGeneratorDefinitions.sbc in either Visual Studio (recommended) or Notepad/Notepad++ (much better for editing code than standard Notepad).

This file contains all the definitions for each Vanilla planet in the game. This is where we decide where what voxel materials should spawn, what/where foliage spawns, ambient sounds, cloud textures, and so on.

This guide is meant to help you understand how all of our planet systems work, so please open the main planets file (PlanetGeneratorDefinitions.sbc) so you can see what we are talking about here and check/read all the definitions as we go through them in this guide.

When you open this file, it should start like this:
<?xml version="1.0"?> <Definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <PlanetGeneratorDefinitions> <!--Planets --> <PlanetGeneratorDefinition> <Id> <TypeId>PlanetGeneratorDefinition</TypeId> <SubtypeId>EarthLike</SubtypeId> </Id>
And so on...
<PlanetGeneratorDefinition>
This is the start of a definition of one particular planet like EarthLike and so on...
It contains all of the definitions which are required for the planet's specific visual style.
</PlanetGeneratorDefinition>
This is the end of a planet definition and anything that you edit below this will only affect a different planet.

Advice:
The first thing I suggest you do is to press Ctrl+F and search: EarthLikeModExample which is an example planet which uses the core definitions from the EarthLike planet. Many rules were deleted so you can try to add them, and experiment without having to touch the vanilla planets.

You can also search for SystemTestMap which is an extremely simple planet which contains all the voxel materials and foliage we currently use in the game. It is used for testing new foliage, voxel materials and so on...

You can also have a look here where all the material maps are stored for it:
C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\PlanetDataFiles\SystemTestMap



5.1. To create your own planet
Your options:
  1. You can either choose a planet that you want to start with and copy everything between <PlanetGeneratorDefinition> and </PlanetGeneratorDefinition>
  2. Use EarthLikeModExample as your template and change all the things there and make a new planet from that.
  3. Start writing the whole code on your own and just look at what definitions are already there.

Naming your planet

<SubtypeId>EarthLikeTutorial</SubtypeId>
Here you can choose the name of your planet. Use only letters when naming your planet!
Upper-case and lower-case letters matters, but this can be changed anytime, although there will also be a folder that has to be renamed in order to work.

6. Definitions and how they affect your planet
6.1. <CustomMaterialTable>
Simple placement of materials using your Biome map

<CustomMaterialTable> <Material Material="Grass_old" Value ="10" MaxDepth ="3"/> <Material Material="Sand_02" Value ="40" MaxDepth ="3"/> <Material Material="Rocks_grass" Value ="70" MaxDepth ="3"/> <Material Material="Woods_grass" Value ="100" MaxDepth ="3"/> <Material Material="Snow" Value ="130" MaxDepth ="3"/> <Material Material="Stone" Value ="160" MaxDepth ="3"/> <Material Material="Grass" Value ="180" MaxDepth ="3"/> </CustomMaterialTable>
Custom material table is for the RED channel in your Biome maps.
This is a simple way to place voxel material in the Biome map.

The list of available Vanilla voxel materials can be found in creative mode when you equip the voxel hand and press [ ] these brackets on the keyboard to browse. Keep in mind that each material is case sensitive when you enter it in the definitions!

Value="X"
This is the RGB value (ID) that you specify for that voxel material. This is the value that a pixel needs to have in order to place that voxel material.
MaxDepth ="X"
This value specifies how deep that material will go underground. Units are in meters.

You cannot specify height, slope or latitude in this definition.
Where you paint the material, it will appear there not following any rules whatsoever.


This is not limited by number, only by number of voxel materials available and ID numbers assigned to it from 0 - 255.

Since you will be doing this in Photoshop, we suggest you have a bigger jumps between each material so you can see the difference in Photoshop. For example, we used +30 for every added material. But this also depends on how many materials you want to add to the planet this way.
6.2. <SurfaceDetail>
Add that extra rockiness to your planet's voxels

<SurfaceDetail> <Texture>Textures/Miscellaneous/MaterialDetailProto4</Texture> <Size>384</Size> <Scale>5</Scale> <Slope Min="30" Max="80" /> <Transition>10</Transition> </SurfaceDetail>

This piece of code can create extra polygons/voxels on a specified slope. It uses a texture like a heightmap, but on an extremely small scale.

All textures in the game can be found here:
C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Textures\Miscellaneous

You can use any of the existing textures that are named: MaterialDetailProto2,3, ...

Here are the textures that you can currently use:


































To create this texture, just make square 1024x1024 pixels in grayscale and save it as a .PNG


what does each line do?
<Texture>Textures/Miscellaneous/MaterialDetailProto4</Texture>
Here you need to lead the definition to your texture however you named it. You do not need to include the .png at the end. The definition will look for any texture that is supported (.png or .jpg.)

<Size>384</Size>
This defines the size of the texture that is used in the game. To really see the results of this, I suggest finding a spot on your planet where you can see your texture shaping the terrain, changing the values and reloading the save.

<Scale>5</Scale>
The scale defines how much the newly generated polygons should bulge out. I'd say that 5 is a lot, but see for yourself. Three is usually the best choice.

<Slope Min="30" Max="80" />
Here you can set on what slope your definition should apply. Again, trial and error is probably the best choice. These is the default values we used.

<Transition>10</Transition>
It's the range of degrees over which the detail map (texture) fades.
6.3. <OreMappings>
Placing ore deposits on your Biome map

This is our complete definition for ores that spawn underground on our EarthLike planet.
<OreMappings> <!--!INSERT ONLY IN THE BLUE CHANNEL on MaterialTexture --> <!-- Tier 1--> <!-- EASY START--> <Ore Value="200" Type="Iron_02" Start="3" Depth="7" /> <Ore Value="220" Type="Nickel_01" Start="3" Depth="7" /> <Ore Value="240" Type="Silicon_01" Start="3" Depth="7" /> <!-- Fe 1--> <Ore Value="1" Type="Iron_02" Start="10" Depth="3" /> <Ore Value="4" Type="Iron_02" Start="12" Depth="3" /> <Ore Value="8" Type="Iron_02" Start="14" Depth="4" /> <!-- Fe 2--> <Ore Value="12" Type="Iron_02" Start="25" Depth="5" /> <Ore Value="16" Type="Iron_02" Start="28" Depth="5" /> <Ore Value="20" Type="Iron_02" Start="31" Depth="8" /> <!-- Ni 1--> <Ore Value="24" Type="Nickel_01" Start="10" Depth="4" /> <Ore Value="28" Type="Nickel_01" Start="11" Depth="4" /> <Ore Value="32" Type="Nickel_01" Start="11" Depth="6" /> <!-- Ni 2--> <Ore Value="36" Type="Nickel_01" Start="24" Depth="5" /> <Ore Value="40" Type="Nickel_01" Start="27" Depth="5" /> <Ore Value="44" Type="Nickel_01" Start="30" Depth="8" /> <!-- Si 1--> <Ore Value="48" Type="Silicon_01" Start="9" Depth="4" /> <Ore Value="52" Type="Silicon_01" Start="13" Depth="4" /> <Ore Value="56" Type="Silicon_01" Start="10" Depth="6" /> <!-- Si 2--> <Ore Value="60" Type="Silicon_01" Start="22" Depth="6" /> <Ore Value="64" Type="Silicon_01" Start="25" Depth="7" /> <Ore Value="68" Type="Silicon_01" Start="27" Depth="9" /> <!-- ORE Tier 2 --> <!-- Co 1--> <Ore Value="72" Type="Cobalt_01" Start="20" Depth="3" /> <Ore Value="76" Type="Cobalt_01" Start="22" Depth="4" /> <Ore Value="80" Type="Cobalt_01" Start="26" Depth="6" /> <!-- Co 2--> <Ore Value="84" Type="Cobalt_01" Start="52" Depth="5" /> <Ore Value="88" Type="Cobalt_01" Start="55" Depth="6" /> <Ore Value="92" Type="Cobalt_01" Start="62" Depth="9" /> <!-- Ag 1--> <Ore Value="96" Type="Silver_01" Start="21" Depth="3" /> <Ore Value="100" Type="Silver_01" Start="25" Depth="3" /> <Ore Value="104" Type="Silver_01" Start="31" Depth="5" /> <!-- Ag 2--> <Ore Value="108" Type="Silver_01" Start="55" Depth="8" /> <Ore Value="112" Type="Silver_01" Start="58" Depth="9" /> <Ore Value="116" Type="Silver_01" Start="63" Depth="11" /> <!-- Mg 1--> <Ore Value="120" Type="Magnesium_01" Start="23" Depth="4" /> <Ore Value="124" Type="Magnesium_01" Start="26" Depth="4" /> <Ore Value="128" Type="Magnesium_01" Start="29" Depth="5" /> <!-- Mg 2--> <Ore Value="132" Type="Magnesium_01" Start="53" Depth="7" /> <Ore Value="136" Type="Magnesium_01" Start="55" Depth="8" /> <Ore Value="140" Type="Magnesium_01" Start="59" Depth="10" /> <!-- ORE Tier 3 --> <!-- U 1--> <Ore Value="144" Type="Uraninite_01" Start="32" Depth="2" /> <Ore Value="148" Type="Uraninite_01" Start="35" Depth="3" /> <Ore Value="152" Type="Uraninite_01" Start="38" Depth="5" /> <!-- U 2--> <Ore Value="156" Type="Uraninite_01" Start="80" Depth="8" /> <Ore Value="160" Type="Uraninite_01" Start="89" Depth="9" /> <Ore Value="164" Type="Uraninite_01" Start="96" Depth="11" /> <!-- Au 1--> <Ore Value="168" Type="Gold_01" Start="40" Depth="1" /> <Ore Value="172" Type="Gold_01" Start="42" Depth="2" /> <Ore Value="176" Type="Gold_01" Start="45" Depth="3" /> <!-- Au 2--> <Ore Value="180" Type="Gold_01" Start="100" Depth="4" /> <Ore Value="184" Type="Gold_01" Start="107" Depth="5" /> <Ore Value="188" Type="Gold_01" Start="112" Depth="8" /> </OreMappings>

Now this is a big one. Here you can either edit or create new definitions to spawn ore on planets. Editing this does not say where the ore will spawn. You will do that in the BLUE channel on the Biome map.

The game has 9 ores that the player can mine.
You are not limited to one rule per ore as you can see in the file. You can create as many definitions as you want, and you are only limited by the number of RGB Values (IDs).

If the ore is not written in OreMappings, you will not be able to spawn this ore underground with a specific size and depth.
<OreMappings> <Ore Value="200" Type="Iron_02" Start="3" Depth="7" />
Value stands for the ID of that specific ore spawn (as mentioned above the allowed values are from 0-255).
Type stands for what type of ore you want to spawn under that ID.
Start means how many meters underground it should start (meters).
Depth is how deep that ore will go in the ground (meters).

Do not forget to close the definition like this(!):
</OreMappings>

Placing your own ore deposits

First, look at how to create your own Biome map as mentioned above, place it in the folder you created for your planet and load it in Photoshop.

The next thing you need to do is go to your <OreMappings> definition and look at what you have copied over, or wrote yourself, so you can place ore based on the RGB Value that you assigned to it. You don't have to worry about what Value you assign to it as long as it is a unique number in that definition.



<Ore Value="200" Type="Iron_02" Start="3" Depth="7" /> <Ore Value="220" Type="Nickel_01" Start="3" Depth="7" /> <Ore Value="240" Type="Silicon_01" Start="3" Depth="7" />
Here I wrote three base ore deposits for Iron. You can see that each ore spawns at a different depth, but two of them have the same size per pixel, and only the last one is a bit bigger.

This is how it looks when you create a new ore placement on the Biome map. For each planet you will have to edit six textures so you can cover the whole planet with ore deposits.


This is how the Blue channel on Biome map looks. These groups of pixels are ore deposits. You can do this however you want. You can place pixels a few meters from each other, whatever fits you. Just make sure that each pixel has the right Value.

You can also test this by choosing the eyedropper tool (shortcut: I) and then clicking on the pixels that you want to check.
6.4. <SoundRules>
Ambient sounds

Sound rules are here to play a specific sound based on player's location on the planet.
<SoundRule> <Height Min="0" Max="0.5"/> <Latitude Min="55" Max="80"/> <SunAngleFromZenith Min="0" Max="180"/> <EnvironmentSound>AmbIcelandDay</EnvironmentSound> </SoundRule>

Height stands for where you want the sound to play at the height of the heightmap (0-7200m). It is always +12% of the planet's diameter. 0 is from the the lowest start of the surface to 1.0 which is 100% of the surface (maximum height).
Latitude means angle from the equator. Therefore 0 to 20 will mean that this sound will mostly play in the desert area, 20-50 is mostly the green forest area, and so on.
SunAngleFromZenith NEEDS MORE INFO!!!
EnvironmentSound this is the name of the sound you want to use.

You can find all available sounds in Audio.sbc (location shown below) Here you will also put your own ambient sound with your own custom name.

How to implement custom ambient sound

All Ambient sounds are stored here:

C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Audio\ARC\AMB\

If you want your own sounds, they should be a loop sound, and on average should not be bigger than +-5 MB.
The supported format is: .xwm but .wav can also work, even though its file size is usually a lot bigger (not recommended).

Once your audio is done, implement it here in this file:

C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\Audio.sbc

<Sound> <Id> <TypeId>MyObjectBuilder_AudioDefinition</TypeId> <SubtypeId>AmbAlienForestDay</SubtypeId> </Id> <Category>AMB</Category> <MaxDistance>100</MaxDistance> <Volume>0.2</Volume> <Loopable>true</Loopable> <Waves> <Wave Type="D2"> <Loop>ARC\AMB\AmbAlienForestDayLoop2d.xwm</Loop> </Wave> </Waves> </Sound>

Here edit only what is highlighted, otherwise I cannot guarantee that it will work properly!
<SubtypeId> This is how you will name your AMB sound, keeping in mind upper and lower case letters. Do not use _ or other special characters!
<Volume> This is self explanatory I hope.
<Loop> Here you just need to lead the definition to your file. ARC/AMB/ is the default location, so do not change that.
But if you want, you can make another folder in AMB for your custom ambient sounds for better organisation.
6.5. <ComplexMaterials>
More specific placement of materials either using only rules or Biome map

This is one of the most important definitions in the creation of the planet. It decides where each voxel material spawns based on all the rules you can see below. The rules are pretty self-explanatory but I will go through them and explain what each does and how will it affect your planet.

<ComplexMaterials> <MaterialGroup Name="Lake areas" Value="82"> <!-- Lakes on EarthLikeModExample planet --> <Rule> <Layers> <Layer Material="Ice_03" Depth="20"/> </Layers> <Height Min="0.0" Max="1.0"/> <Latitude Min="0" Max="90"/> <Slope Min="0" Max="5"/> </Rule> </MaterialGroup> </ComplexMaterials>

Summary of this rule:
This rule says that if you paint a pixel with the Value of 82 on the RED channel of the Biome map, it will place material Ice_03 in any height (0-1.0) in 0-5% angle (slope).

<Height Min="0.0" Max="1.0"/>
Here you define where you want the material to spawn in terms of height. Height is computed by adding +6% to planet's/moon's diameter. For your planets which are 120 km in diameter, the setting for placing your material is 0 m - 7200 m (0-1.0).

<Latitude Min="0" Max="90"/>

Here you define how close/far from the equator you want to place your voxel material.

0 is the equator (desert area on Earthlike)
90 are the top points of the planet (north and south poles)

NOTE:
I would suggest trying to keep your rules consistent, so the materials intended for that biome stay in it.





For example, if you want to spawn a certain material only on or near the desert area of the planet, you can set the Latitude to this:
<Latitude Min="0" Max="35"/>

This will cover the whole area from 0 - 35 degrees. Keep in mind that this covers both sides.
90 are the North and South poles.

<Slope Min="0" Max="5"/>
Here you can define on what Slope/angle you want that specific material to appear. As you can see here 0-5 degrees means almost a completely flat surface. this can be set by a jump of 5 degrees minimum to 90 degrees, and therefore a completely vertical surface (but almost no materials will be placed if you set this to 85-90 so a better rule would be like 70-90 -> very steep)

Difference between ComplexMaterials and CustomMaterialTable

Both definitions use the Biome map, although CustomMaterialTable is dependent on it and will not work without it. It applies all rules where they are placed on the Biome map without checking. Each voxel material is placed exactly where you paint it.

ComplexMaterials can either use MaterialGroup with a Value of 0 which does not use the Biome map and only relies on the rules that are set there. If a MaterialGroup has a different Value, and if that Value can also be found on the RED channel of the Biome map, it will put all the materials that are in that MaterialGroup if the rules match the terrain (height,slope,latitude).

Using material group with Biome map in ComplexMaterials
<MaterialGroup Name="Lake areas" Value="82">
This is another useful feature that we have. We can be more specific with this feature with material placement. Lake areas is just a name so you know what you are placing, or where you are placing it. It does not affect anything. You can even leave it blank if you want.

NOTE:
Keep in mind that if you do not see your voxel material, it may be that you placed it inside a group with an ID different than 0, and If you haven't painted that material in the Biome map, it will not be put there.
<MaterialGroup Name="XXX" Value="XX">

If you do not want to use specific material groups and just want general rules for voxel material placement, just place all those rules under 0:
<MaterialGroup Name="General material placement" Value="0">

Layer Material means what voxel material you want.
Depth says is how deep that material should go in meters - so here it says that the "lake" (Ice_03) we are placing will be 20 meters deep.

IMPORTANT:
  • Layers are read from first to last, so if some rules collide (same area, height, slope), the first rule will always overwrite the ones below (if in the same material group).

  • Number of layers per rule is unlimited. The first layer that the engine reads is the one that will be on the surface. Any other layer will go beneath the previous one. We use this a lot. For example: we put 1 meter of Grass and then 5 meters of Soil. But there are other rules that have to be met for the material to spawn.
6.5.1. Placing lakes on your Biome map
To place a lake on your planet that looks realistic, here is what you should do:
  1. First, you must create a rule in ComplexMaterials that uses a Material group. Like this:
    <!-- Lake Areas --> <MaterialGroup Name="Lake areas" Value="82"> <Rule> <Layers> <Layer Material="Ice_03" Depth="20"/> </Layers> <Height Min="0.0" Max="1.0"/> <Latitude Min="0" Max="90"/> <Slope Min="0" Max="5"/> </Rule> </MaterialGroup>
    Here we use the material Ice_03 that looks like a frozen lake. Then we specified that it can be any height and the maximum slope of this material is really low 0 - 5 degrees, so it does not go up or down a hill.

  2. Then we open our Biome map and paint the Value we set for our MaterialGroup, which is 82.

    Open this file in Photoshop to see how it is done on EarhLike planet:
    C:\ProgramFiles(x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\PlanetDataFiles\EarthLike\front_mat.png and go to the Red channel where the material placement is.

  3. Paint the lakes where you want them. Just make sure you're editing your files and saving them in your planet folder. Otherwise, if you load a save on a planet that you edited, it could break your base (if you accidentally placed a lake on the same position).

  4. Advice: drag and drop your heightmap in your opened Photoshop file in a new layer and set the opacity of that layer to something below 50% so you can see where you are placing the lake.

  5. Now when this is done, use the magic wand tool and set its Tolerance to 0 so it only selects your RGB value and nothing else. When all your lakes are selected, press CTRL + C and copy them to your heightmap on a new layer. Very important: When pasting it in a new layer, press CTRL + SHIFT + V to paste in your lakes, so they are on the same position (otherwise their position can be somewhere else, Photoshop could move it for some reason, derp)

    This is how it should look when you have pasted in your lakes on a new layer to see where you're going to be smoothing the terrain for them.

  6. When this is done, you need to prepare the terrain for the lakes, and therefore you will be editing your heightmap by hand. To do this, I suggest using the standard brush as it has falloff, which will make sure that the sides of the lake are not big jumps (L shaped). Therefore it will look more realistic.

  7. Switch to your heightmap layer and choose a grayscale that fits the surrounding area (so the lake is in average on the same height, but well, it depends what you want anyways).

    Here is where you can see the average percentage around your lake. If you choose the Eye dropper tool (shortcut I) and hold the left mouse button, you can move around the area of the lake.

  8. This is the result you want for your lake to look "realistic"
    The image on the top is with the lakes layer turned on, on the bottom is the final result (in the heightmap).

    This is how the lake looks in the game:
6.6. <EnvironmentItems>
Placement of trees, bushes and voxel stones

This definition defines where all foliage and voxel stones spawn.
<Item> <Biomes> <Biome>113</Biome> </Biomes> <Materials> <Material>Snow</Material> </Materials> <Items> <Item TypeId="MyObjectBuilder_Trees" SubtypeId="SnowForestEdge" Density="0.3"/> <Item TypeId="MyObjectBuilder_DestroyableItems" SubtypeId="SnowBushForestEdge" Density="0.4"/> <Item TypeId="MyObjectBuilder_VoxelMapStorageDefinition" SubtypeId="stone_snowtop_smallstone" Density="0.008" /> <Item TypeId="MyObjectBuilder_VoxelMapStorageDefinition" SubtypeId="stone_snowtop_mediumstone" Density="0.006"/> </Items> <Rule> <Height Min="0" Max="0.7"/> <Latitude Min="0" Max="75"/> <Slope Min="0" Max="50"/> </Rule> </Item>
What does it all mean?

This is a good example of a complex rule that includes multiple items to spawn on one voxel material.
<Biome>113</Biome>
This setting says under what RGB Value it will allow these items to spawn.
You can paint any Value that you set for it in the GREEN channel of your Biome map.

<Material>Snow</Material>
This setting says on what voxel material the items listed in that rule can spawn. If there is no snow in the area specified, then nothing will spawn from this rule.

NOTE: You can have multiple materials with the same rule.
You can just copy the rule below the one you have and change the material to whatever material you desire.

<Item TypeId="MyObjectBuilder_Trees" SubtypeId="SnowForestEdge" Density="0.3"/> <Item TypeId="MyObjectBuilder_DestroyableItems" SubtypeId="SnowBushForestEdge" Density="0.4"/> <Item TypeId="MyObjectBuilder_VoxelMapStorageDefinition" SubtypeId="stone_snowtop_smallstone" Density="0.008" /> <Item TypeId="MyObjectBuilder_VoxelMapStorageDefinition" SubtypeId="stone_snowtop_mediumstone" Density="0.006" />
Item TypeId
This just says where the game should look for that group of items specified (SnowForestEdge).

SubtypeId
This says what group of items should spawn. SnowForestEdge is a group of snow trees that are used on the edge of the forest, so we can create a realistic feeling of a forest that gets denser when the player is in the middle of it. And we could only achieve it by creating multiple groups of these trees with different density settings.

Density
Pretty self explanatory. Keep in mind that even a setting like 0.4 is pretty high and will already spawn quite a dense area of trees.

<Rule> <Height Min="0" Max="0.7"/> <Latitude Min="0" Max="75"/> <Slope Min="0" Max="50"/> </Rule>
These rules work exactly same as in ComplexMaterials. When painting in the Biome map, you can still limit your trees from spawning on terrain that is either too steep or too high.

NOTE:
Items in EnvironmentItems can only spawn if they are part of a group, even if that group contains one item, you cannot spawn a single tree by typing its name in the definition!

For a full guide how to spawn your trees take a look at our Tree guide:
http://steamcommunity.com/sharedfiles/manageguide/?id=568303446

You can find all the vanilla item groups (like trees that spawn only in the Desert biome and so on) here:
  • C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\EnvironmentItemClasses.sbc

  • If you want to have a look at specific vanilla trees, then you can find the full list here:
    C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\Trees.sbc

  • If you want to have a look at specific vanilla bushes, then you can find the full list here:
    C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Content\Data\Bushes.sbc

MyObjectBuilder_DestroyableItems
This is a definition which contains all bushes that are in the game. We are using the name Destroyable because they do not have a collision mesh.

MyObjectBuilder_VoxelMapStorageDefinition
This definition contains all the vanilla voxel stones in the game.
6.6.1. "Painting" foliage in the G channel in Biome map
Painting foliage is almost the same as when you paint materials. The system is the same, but the approach is different.

Let's have a look a at a rule that we can paint in the Biome map. First, you need to set your RGB Value to paint the number that your created/copied rules apply to.
Like in the rule above, for example.

The lines you can see on the sides of this picture is a grid I made to get a better sense of scale per texture.
The grid is 128x128 pixels. That means 128x20m = 2560 meters x 2560 meters.
That's how big this square is. Each texture can be divided into 256 of these squares.




Here is a link on how to set up a grid in Photoshop:
http://www.sitepoint.com/how-to-setup-a-layout-grid-in-photoshop/

The pixels you can see combine different RGB Values that spawn foliage. It is an RGB Value that is set to spawn the same types of trees as a different Value but with higher density, so you can better simulate a forest by increasing tree density in the middle of it and lowering it on the sides.

How we do forests now in the game:
  • Value of 113 will spawn not only trees, but also different types of bushes and also voxel stones. The rule you can see above is only for snow. It is a rule that was created to work as the forest edge.

  • Value of 141 works as a medium forest with a higher density than 113, but still does not reach the full density we have set for the planet that works for us and our game design.

  • Value of 198 is the core of the forest, and the most dense area of the forest. It only spawns forest, no bushes etc (there would be no room and our spawning system is still not perfect, so we want to avoid mesh collisions between bushes/trees/voxel stones).

NOTE:
The area where you "paint" your rule needs to have the appropriate material for the rule to work.
So if you paint 113 without having a rule that would spawn desert trees on sand or other material that can be found on equator, the game will not spawn anything!

Each rule with the above Values was created for all the voxel materials that were made to have foliage on them (meaning that Stone does not have foliage, etc...). so no matter where you "paint" 113,141,198 or a new rule that you made, it will always spawn the correct foliage that is assigned to the material in the rule.

Only if you overwrite the rule and set a material like Sand_02 and that it should spawn SnowForestLarge will it happen. Otherwise, the code performs this reality check for you.

Here is how the planet can look if you place a lake, paint some foliage, and use ComplexMaterials to place materials...
6.7. Modifying Atmosphere settings 1/2

Here, you will find everything you ever wanted to know about Atmosphere Settings in Space Engineers but were afraid to ask, my dear friend. So without any further ado. Let’s start with the “Atmosphere” settings window which you access in-game by hitting F12 -> Render Button -> Atmosphere checkbox. The new Atmosphere settings window opens immediately on the right side of the screen, showing a bunch of tricky sliders.


If your pants are still dry, and if by any chance you’re still reading this, let us assure you that everything is pretty simple and not so scary as it may seem when you first open it. So let’s start with the brief and really quick explanation of what every slider or group of sliders are meant for. Lastly, remember that to alter any setting in this Window you have to hold “Alt” on your keyboard.

Enable Atmosphere (checkbox) – Well, as Captain Obvious immediately states to us – it just enables or disables Atmosphere on a planet and nothing more.

Time of Day (slider) – Controls rotation of the Sun around a Planet. You’re given the Power to decide which time of day it is now. Cool isn’t it?

Pick Planet (Button) – In situations when you have more than one planet in your world, you may want to alter the settings of each planet’s atmosphere individually. So this button enables you to immediately pick the current atmosphere values of the planet you’re currently on. For example, fly to the Moon, press “Pick planet” button and you will get corresponding atmosphere values of that planet to play with. Fly back to Earth or any alien planet, and do the same to alter atmosphere settings of these planets. Yay!

Rayleigh Scattering R,G and B (sliders) – Group of three sliders which control the main, overall color of the Atmosphere. It’s that atmosphere color which is going to be seen from outer space and on the ground too! If you want to make your atmosphere alien green or purple – these are the correct set of sliders to play with. Each slider controls corresponding R,G or B (0-255) values. Pretty straightforward.

Mie Scattering R, G and B (sliders) – Group of three sliders to control the color of the Sun glow. It would be weird to have Green atmosphere and Red sun glow right? You would normally want to set it to yellow or something light green or so. But it’s your choice you can make any color you want. But please note that in order to have noticeable results you have to actually HAVE that glow around your sun. This setting is called “Mie Height” and it has to be set to a fairly high value otherwise it wouldn’t be too prominent. We will talk about this “Mie Height” setting in a minute. No worries.

The following three sliders are complementary and play well together. It means you have to find a good balance setting them which is quite easy:

Rayleigh Height Surface (slider) – Controls the thickness of the atmospheric layer when you’re on or near planet’s Surface. For example. You normally want atmosphere layer to be fairly thick to cover high points of the planet’s surface like mountains and high hills while you’re on the ground because you have actual high picks in your surface geometry which you have to cover. Otherwise you would see black space when you’re on the high mountain. But technically, when you’re leaving the planet’s atmosphere all of these high peaks and mountains are starting to slowly collapse vertically forming a smooth spherical shape of the planet, if they wouldn’t - we would have planets looking like a spiky balls with mountain peaks sticking out in all directions. That’s why when all the high peaks are collapsed to the ground to form a perfect sphere - we are left with abnormally thick and wrong looking atmospheric layer thickness when observed from the outer space. How to fix this?! That’s where “Rayleigh Height Space” slider comes into play, as it controls the thickness of the atmospheric layer seen from outer space.

Rayleigh Height Space (slider) – Controls the thickness of atmospheric layer when you observing the planet from outer space. Like it was said earlier, settings for atmosphere thickness when you’re on the Surface and when you’re in an outer Space can’t be same and normally you want to make it much thinner when it is seen from outer space like it’s in real world. Refer to the following Pic to get better understanding.

Rayleigh Transition (slider) – Ok, so now that we have set the width of the planetary atmosphere for both - when we’re on the Surface and when we’re observing it from outer space, it is time to decide at which distance to switch between two, right? So that’s exactly what this slider does – sets the exact value at which distance that transition must happen. You can play around with this value to find the best setting, just remember that the main goal is to have this transition as smooth as possible, fortunately it’s super easy to achieve. Just make sure that while you’re on the ground and standing on a highest point you still see some atmosphere color (like Blue color in earthlike planets) ,and just about when you start to see the whole planet on your way to the outer space, switch it to the thinner (Rayleigh Height Space) version.


Mie Height (slider) – Controls the size of the outer glow effect of the Sun. Like it was said earlier, when you’re setting your color of the Glow effect via “Mie Scattering RGB” sliders, this particular setting (Mie Height) must be set to a fairly high value otherwise you won’t see it as there won’t be any glow. Look, you can’t change the color of a non-existing thing, soldier. Dismissed!

Sun size (slider) – Controls the size of the Sun.. What else did you expect from it?!

Sea Floor modifier (slider) – Defines the lowest (starting) edge of the atmosphere. Sometimes it is needed to set how low (or how high) actual atmospheric layer starts. It depends on your planet’s relief, your lowest and highest peaks. Adjust individually for each planet. You’ll “feel” the right value immediately.

Atmosphere Top Modifier (slider) – Defines the highest (ending) edge of the atmosphere. Sometimes it is needed to set how low (or how high) actual atmospheric layer stops. It depends on your planet’s relief. Adjust individually for each planet. You’ll “feel” the right value immediately. But normally you want this value to be set pretty high.

Intensity (slider) – Actually it should be called “Fog Intensity” as it’s exactly what it’s responsible for but I hope it will be changed by some coder guys eventually J. Controls the amount or intensity of the fog while you’re on or near the planet’s surface (doesn’t do anything when you’re in outer space).

Fog Intensity (slider) – And this, should be actually called “Fog Distance”. It controls the distance fog actually covers. The higher this value – more objects in front of view are covered with fog. (doesn’t do anything when you’re in outer space).

Restore (Button) – Ok, just in case you screw everything up, you always have a chance to revert all the changes you’ve made by clicking this Restore button, soldier! Very convenient isn’t it?!
6.7. Modifying Atmosphere settings 2/2
Modding the Atmosphere

Ok, now that we got acquainted with all Atmosphere settings and know how they work, it is time for us to actually change a few settings to alter the look of our Atmosphere! Now the fun part begins. Let’s say that we want to change the color of Earthlike planet’s atmosphere from its natural Blue color to the Green one, so it looks more “alienish”. Please note, that all atmosphere settings are stored in “PlanetGeneratorDefinitions.sbc” file and they are NOT replaced even when you change these values in game and make a save. If you want to change those values you have to change them directly in the code of the “PlanetGeneratorDefinitions.sbc” file only! The system reads those atmosphere values from this file every time you’re loading your worlds.

But how for God’s sake would you know which values are correct and really desirable to put them in the code? This is really simple. You just adjust your atmosphere settings to your liking right in the game, and when you’re done and happy with it, you just copy those values into the code (you can screen grab the in-game view with Atmosphere Settings window or just write them down manually, not a big deal) But to paste those values in the code, you have to know WHERE to paste it, right? You don’t just randomly paste numbers into the code, do you? You may hurt yourself!

So please open “PlanetGeneratorDefinitions.sbc” file in any decent text editor and find the following line:

<SubtypeId>EarthLike</SubtypeId>

It’s a name or identifier of a planet, and since it’s named Earthlike, we know for sure that below are the definitions related to Earthlike planet. Cool! Now just scroll down to the part where you will see a commented (inactive) line of code which goes like:

<!-- Earthlike Planet's Atmosphere settings -->

Or alternatively, just Ctrl+F to find the following line. You must see something similar to this:

So here as you can see everything is pretty self-explanatory. Except a few lines that are just named differently in the code. If you want your atmosphere to “remember” the settings you have made you have to enter those values here to the corresponding lines. The following schematic pic shows dependencies between the code lines and the slider names in Atmosphere Settings window quite clearly:
(Click to enlarge)


Now let’s just change the blue color of the atmosphere to orange. As you remember, group of three RGB sliders named “Rayleigh Scattering” are responsible for changing the main color of the Atmosphere. So why wait?


Spectacular right? Now, let’s change the sun glow color “Mie Scattering RGB” to an orange tint too. It could stay the same yellow of course but let’s change it so you could have an idea. Remember to press “Alt” on your keyboard while you’re dragging those sliders.


Ok, now it’s more orange but we have to increase the glow effect a bit to see it more prominently. And as we remember, the glow size control is “Mie Height” slider. Crank it up from 30 to 50.


Good, the glow effect became more prominent. Looking nice isn’t it? Of course, you can continue adjusting it and come up with really crazy results, but if you’re ok with what we already have, then just write down all the values that you currently have in your Atmosphere Settings window on the right or screenshot them and paste into any image editor for your reference. And back in the code editor, just enter those values into corresponding tags in the code and save it:


That’s it! From now on, every time you load up your world with Earthlike planet in it, or spawn Earthlike planet, the atmosphere on it will be exactly the way you adjusted it via Atmosphere Settings! The God himself must have been using something like this we suppose..

6.8. Modification of Clouds
The first thing that should (probably) come in to your mind when you finally learn how to tweak Atmosphere settings, is probably how to change the look of the Clouds! Because, normally, when you change the color of the atmosphere you would like the clouds color to be relatively close to the Atmosphere color. In our Atmosphere guide (if you read it) we were sharing some knowledge about changing the look of the Atmosphere. We made it orange which is kind of cool all on its own, but what really draws our attention and not in a very good way – is the color of the clouds. As you can see they’re white which is looking wrong isn’t it? In an orange atmosphere environment you would expect orange or yellow clouds right? So that’s what we’ll be doing in a minute – changing the look of our cloud layer and getting to know their under-the-hoods.

Like with Atmosphere settings, the Clouds setting are stored in the same “PlanetGeneratorDefinitions.sbc” file located in KeenSWH\Sandbox\Sources\SpaceEngineers\Content\Data and are individual for each planet. Usually we base our code lines so the Cloud definitions come right after Atmosphere definitions which makes it very convenient to search for. Just open your “PlanetGeneratorDefinitions.sbc” file in any decent advanced text editor and search for this commented (inactive) line of code:

<!-- Earthlike Planet's Clouds settings-->

Note: you can download the DDS files from here[mirror.keenswh.com]

That’s where all the cloud settings for particular planet are stored. The following picture is a brief breakdown of cloud definitions:


Basically, the structure of placing clouds on any planet is as follows:

<CloudLayers> <CloudLayer> Blah Blah Blah Beautiful Clouds Blah Blah Blah </CloudLayer> </CloudLayers>

So, as you can see everything is super easy. Simply put, <CloudLayers> tags are meant for global separation of Cloud definitions from other code definitions and are here just to define where the code for the clouds start, while <CloudLayer> tags (again, don’t mistake with CloudLayers) are the actual cloud layers and each pair of these tags (<CloudLayer>…</CloudLayer>) define the look and behavior of each cloud layer. As Captain Obvious states - The more <CloudLayer> pairs you have.. umm - the more cloud layers you will have!

For example. You can have more than one Cloud layer, to simulate even more complex cloud patterns than you initially had in your texture file! And that’s when <InitialRotation> and <RotationAxis> tags come into play. You can assign values to these tags for each Cloud layer individually thus having the cloud spheres to be initially rotated and spinning on different angles creating more interesting and natural cloud patterns. So you basically just stack them this way:

<CloudLayers> <CloudLayer> Blah Blah Blah Beautiful Clouds Blah Blah Blah </CloudLayer> <CloudLayer> Blah Blah Blah Beautiful Clouds Blah Blah Blah </CloudLayer> <CloudLayer> Blah Blah Blah Beautiful Clouds Blah Blah Blah </CloudLayer> </CloudLayers>

That’s it! Now you have three Cloud Layers! And of course you can do it for the Far and the Near cloud layers as well.

Your main cloud color texture must be 4096x2048px RGB file saved in DDS format without alpha as “CloudName_cm.dds file” and it must contain only the color information of your clouds. For Alphamask file please create a separate file of the same 4096x2048px dimensions containing only Alpha mask, make it a greyscale file, save as DDS luminance format and name it “CloudName_Alphamask.dds”. Back in the code, in <texture> tags you just write “Cloudname.dds”, no worries - the engine will identify required “cm” and “alphamask” files itself, just make sure both files are in the correct folder. (KeenSWH\Sandbox\Sources\SpaceEngineers\Content\Textures\Models\Environment\Sky).

As you know, clouds that are seen from the outer space and the clouds that you see through your window don’t look the same because of the huge differences in scales in both cases. That’s why we have two types of clouds on each planet. First one (commented as “Far layer” in the code) – the clouds that you see from the outer space. They usually look like NASA satellite orbital photo shots.


And the Second one (commented as “Near layer” in the code) – the clouds that are seen when you’re on the ground or close to it. These should look like a significantly zoomed version of the first ones - more detailed, wispy and more individual. Like the ones you used to see in the sky every day. Refer to the picture.


Now, how to actually separate these two types of cloud layers and to make them come in layers – one after the other. This is very simple too. The maximum overall Altitude (height) of our atmosphere layer is 2. So we have to set up our cloud layers in a tricky way, so that when we’re in outer space - we would see the “Far layer” clouds ONLY, and as we’re getting lower (approaching the ground), on a particular altitude (height) smoothly switch to the “Near layer” clouds and have the “Far layer” clouds hidden. Sounds crazy but it will become clear if you look at the following pic:


As you can see things are really self-explanatory here too. By setting the Start and End values in <FadeOutRelativeAltitude..> you basically create a vector, the starting point of which is infinity which means anything below this start point will be constant value, thus – making it possible to set the Far layer to be seen from outer space (values greater than 2), and preventing Near cloud layer from being seen - because it is set to fade out on 1.6. And vice versa – when you’re on the ground, you won’t see Far layer clouds layer because it faded out on much higher distance of 1.4. Not so hard right? Of course you can alter and tweak those values to your liking depending on the planets height maps/relief to get the desired transition between Far and Near cloud layers.

So now that we’re empowered with this knowledge, the only thing we’re left to do is to actually change the color of the clouds from white to yellow color so our clouds look more natural in an orange Atmosphere environment. As we remember, our clouds are consisting of two texture files – a file containing color information (usually just a plain color) and a file with an alpha mask only. We already know that the “Far layer” clouds (the ones seen from space) use “EarthFarClouds_cm.dds” texture file and the “Near layer” clouds use “Landsky_texture_cm.dds”. How we know that? It’s written in <texture> </texture> definitions, remember?


Great! So now just open “EarthFarClouds_cm.dds” and the “Landsky_texture_cm.dds” and fill both files with plain yellow color and save them!


Start the game and spawn an Earthlike planet and voila! You got perfect yellow clouds!

7. Other planetary settings
<MaximumOxygen>1.0</MaximumOxygen>
Pretty self explanatory. If this is set below 0.5, the player will start receiving damage. The lower the number, the higher damage the player will get (this only applies if the player has his helmet taken off and/or is out of oxygen in his suit and inventory).


<SurfaceGravity>1.0</SurfaceGravity>
This says how much gravity you want to have on your planet. 1.0 is 100% and therefore Earth gravity. Setting this above 1 can cause unpredictable game behavior.


<DefaultSurfaceMaterial Material="Rocks_grass" MaxDepth="1"/>
Here you can define what the default surface material should be. This setting has the lowest priority in material placement and will basically cover the areas where there are no rules. So any area where you did not say to place a specific material, this material will appear.

<DefaultSubSurfaceMaterial Material="Stone"/>
Here you can define what material will be anywhere else, where there are no rules (including ore deposits). We currently do not use a layer system for subsurface, so this stone will go all the way to the core of the planet.

<MaterialsMaxDepth Min="4000" Max="4000"/>


<MaterialsMinDepth Min="20" Max="20"/>


<HillParams Min = "-0.01" Max ="0.12"/>



7.1. General atmosphere settings
<HasAtmosphere>true</HasAtmosphere>
Turn Atmosphere on/off typing in either true or false. This setting says if the game should load the atmosphere mesh with a texture.

<Breathable>true</Breathable>
You can decide if the atmosphere on your planet will be breathable or not.

<OxygenDensity>0.9</OxygenDensity>
We recommend not to edit this value, only edit <MaximumOxygen>.

<Density>1.0</Density>
This is the density of the atmosphere on your planet. The lower the value, the less effective Atmospheric thrusters will be (0.5 will mean that atmospheric thrusters will only have 50% of power).

<LimitAltitude>2.0</LimitAltitude>
This specifies the strength of the atmosphere in heightmap units. So 1.0 means +6% of the planet's radius (7200m on a 120km planet (60km radius)). Atmosphere will reach up to 14400m from the 0m point of the heightmap.

< >
87 Comments
riotgrrl_adria Mar 14 @ 8:04am 
I'll do an updated guide when I get the chance, and figure out all of the new features.
riotgrrl_adria Mar 14 @ 8:02am 
This guide is horribly outdated and is missing a lot of things such as how clouds are now done, and emissive effects which is typically used for making lava 'glow'.
I would highly suggest that those who wish to learn how to do this to download some planets off of the workshop and see how they are constructed.
riotgrrl_adria Mar 14 @ 7:56am 
@Wizard Toast: Sorry, but there's no way of doing that.
NorusTheFourth Mar 9 @ 6:00am 
Anyone here know what the (new ?) SunColor and SunSpecularColor (PlanetGeneratorDefinitions, AtmosphereSettings) do ?
I have tried a bunch of different settings but I can`t even figure out where the difference between these to is (they just seem to do exactly the same).
Wizard Toast ★ Mar 6 @ 6:09pm 
Hi I had an idea to copy the King Kai planet from dragonball z and ended up here trying to figure out how to do it, and immediately I notice the minimum planet diameter is 19km and the kai "planet" is only 63m in diameter

I figure this only leaves me with the option of rigging up an asteroid to imitate a planet, but I don't know how I would get the grass and other features on an asteroid

I would appreciate any ideas on how to approach this
Burstar Dec 28, 2018 @ 9:26pm 
Thanks for responding. I JUST figured it out. When I pasted in the layer onto the vanilla file I deleted the original layer and saved. The game was not recognizing the file because Photoshop was slipping in a non-visible 'alpha' layer that messed up ME. All I had to do was flatten the image and then save it. FML there goes an entire evening figuring out something so simple. I only figured it out after comparing my saves to known working mod files with ImageMagick and noticed my saves were of type GreyscaleAlpha, not Greyscale like the others.
Derp Dolphin Dec 28, 2018 @ 8:59pm 
Need info on clouds thats 2018 accurate... nobody has it or given it out yet
Derp Dolphin Dec 28, 2018 @ 8:58pm 
@burstar I forget exactly what process i used but its something with the game not recognizing the file, need to convert it to "8-bit" file i believe, was something bout the color settings with 256 color and greyscale. can right click the image an check its properties for what bit its saved as

fixed that and most of my issue cleared up. you also want whatever your "down" image is to be rotated 180 degrees for good smoothness if your using the same image for entire planet.
Burstar Dec 28, 2018 @ 1:58pm 
Having same problem as Derp Dolphin with Heightmaps. Using Photoshop to make the 6 16 bit greyscale .pngs @ 2048x2048 resolution results in smooth ball planet.
Derp Dolphin Dec 11, 2018 @ 2:29pm 
am i missing something? Ive tried 5 times to make a heightmap using world machine finally got one I can tolerate and format them to PNG's at 512x512, flatten the terrain and greyscale the image and all I get are flat planets.. no matter what i do now. Or i get half a planet with the heightmaps and then random faces of the planet entirely flat.

This tutorial gives no real direction i swear..