3.1 KiB
Title, Sort_Priority
| Title | Sort_Priority |
|---|---|
| Planet Generation | 80 |
Planet Generation
This guide covers some aspects of generating your planet, a lot of stuff is already explained in [the celestial body schema]({{ "Celestial Body Schema"|route }}).
Heightmaps
Heightmaps are a way to generate unique terrain on your planet. First you specify a maximum and minimum height, and then specify a [heightMap]({{ "Celestial Body Schema"|route }}#HeightMap_heightMap) image. The more white a section of that image is, the closer to maxHeight that part of the terrain will be. Finally, you specify a textureMap which is an image that gets applied to the terrain.
Here's an example heightmap or earth from the Real Solar System addon.

{
"name": "My Cool Planet",
"HeightMap": {
"minHeight": 5,
"maxHeight": 100,
"heightMap": "planets/assets/my_cool_heightmap.png",
"textureMap": "planets/assets/my_cool_texturemap.png"
}
}
There are also tools to help generate these images for you such as Textures For Planets{ target="_blank" }.
Variable Size Modules
The following modules support variable sizing, meaning they can change scale over the course of the loop.
- Water
- Lava
- Star
- Sand
- Funnel
- Ring
To do this, simply specify a curve property on the module
{
"name": "My Cool Planet",
"Water": {
"curve": [
{
"time": 0,
"value": 100
},
{
"time": 22,
"value": 0
}
]
}
}
This makes the water on this planet shrink over the course of 22 minutes.
Quantum Planets
In order to create a quantum planet, first create a normal planet. Then, create a second planet config with the same name as the first and isQuantumState set to true.
This makes the second planet a quantum state of the first, anything you specify here will only apply when the planet is in this state.
{
"name": "MyPlanet",
"Orbit": {
"semiMajorAxis": 5000,
"primaryBody": "Sun"
}
}
{
"name": "MyPlanet",
"isQuantumState": true,
"Orbit": {
"semiMajorAxis": 1300,
"primaryBody": "TIMBER_HEARTH"
}
}
Barycenters (Focal Points)
To create a binary system of planets (like ash twin and ember twin), first create a config with FocalPoint set
{
"name": "My Focal Point",
"Orbit": {
"semiMajorAxis": 22000,
"primaryBody": "Sun"
},
"FocalPoint": {
"primary": "Planet A",
"secondary": "Planet B"
}
}
Now in each config set the primaryBody to the focal point
{
"name": "Planet A",
"Orbit": {
"primaryBody": "My Focal Point",
"semiMajorAxis": 0,
"isTidallyLocked": true,
"isMoon": true
}
}
{
"name": "Planet B",
"Orbit": {
"primaryBody": "My Focal Point",
"semiMajorAxis": 440,
"isTidallyLocked": true,
"isMoon": true
}
}