Planet Editor Tutorial

**Planets Expansion Required**

*Some or all of the features on this page requires the **Planets Expansion** in-app purchase.*

This tutorial gets some insight on how to edit planet files in the current version of Spaceflight Simulator (1.5.10). A planet file can be located at:

* **Android\data\com.StefMorojna.SpaceflightSimulator\files\Custom Solar Systems\Example\Planet Data** in Android devices),

* **On My (iPhone/iPad)\Spaceflight Simulator\files\Custom Solar Systems\Example\Planet Data** in iOS devices, or

* **C:\Program Files (x86)\Steam\steamapps\common\Spaceflight Simulator\Spaceflight Simulator Game\SpaceflightSimulator\_Data\Custom Solar Systems\Example\Planet Data** for PC users.

If you edited a planet file, copy the *Example* folder in the *Custom Solar Systems* folder and create a new world to see the effects.

Please note that the *Custom Solar Systems* folder is unavailable for players that do not own the Planets Expansion in-app purchase.

# File structure

This part explains what each line of a file does. Take Earth as an example.

## BASE\_DATA

```
{
  "version": "1.5",
  "BASE_DATA": {
    "radius": 315000.0,
    "radiusDifficultyScale": {},
    "gravity": 9.8,
    "gravityDifficultyScale": {},
    "timewarpHeight": 25000.0,
    "velocityArrowsHeight": 5000.0,
    "mapColor": {
      "r": 0.45,
      "g": 0.68,
      "b": 1.0,
      "a": 1.0
    },
    "significant": true,
    "rotateCamera": true
  },

```

* version: Indicates the file version (1.5)
* radius: The radius of the planet in meters. Radius is the measurement of length between the planet's surface and center
* gravity: acceleration due to gravity in meters/second squared (m/s²) (on the planet's surface)
* timewarpHeight: the minimum height you can time warp in meters
* velocityArrowsHeight: This is when the arrow disappears and when two arrows appear showing as separate left/right and up/down arrows. Cannot be applied on Earth.
* mapColor: the color you see in map view. To convert the decimal numbers to rgb (r, g, b), divide 1 to 255 and multiply the quotient by any number between 0 and 255. "a" tells the transparency.
* significant: If it is a significant body in the solar system or not. Set it to `false` and it will hide the celestial body.
* rotateCamera: Rotate the camera or not below the timewarpHeight.

## Atmospheric values

```
"ATMOSPHERE_PHYSICS_DATA": {
    "height": 30000.0,
    "density": 0.005,
    "curve": 10.0,
    "curveScale": {},
    "parachuteMultiplier": 1.0,
    "upperAtmosphere": 0.333,
    "heightDifficultyScale": {},
    "shockwaveIntensity": 1.0,
    "minHeatingVelocityMultiplier": 1.0
  },
  "ATMOSPHERE_VISUALS_DATA": {
    "GRADIENT": {
      "positionZ": 4000,
      "height": 45000.0,
      "texture": "Atmo_Earth"
    },
    "CLOUDS": {
      "texture": "Earth_Clouds",
      "startHeight": 1200.0,
      "width": 40845.87,
      "height": 36000.0,
      "alpha": 0.1,
      "velocity": 2.0
    },
    "FOG": {
      "keys": [
        {
          "color": {
            "r": 0.461872876,
            "g": 0.463235319,
            "b": 0.3644572,
            "a": 0.09803922
          },
          "distance": 500.0
        },
        {
          "color": {
            "r": 0.647058845,
            "g": 0.848739564,
            "b": 0.891,
            "a": 0.117647059
          },
          "distance": 3000.0
        },
        {
          "color": {
            "r": 0.647058845,
            "g": 0.848739564,
            "b": 1.0,
            "a": 0.416
          },
          "distance": 30000.0
        }
      ]
    }
  },

```

### ATMOSPHERE\_PHYSICS\_DATA

* height: How high the atmosphere goes in meters
* density: atmospheric pressure at surface level. 0.005 (1/200) is equal to 1 bar of pressure. A realistic Venus atmosphere will have the density at 0.465 (93 bar)
* parachuteMultiplier: How high parachutes can be used in the atmosphere. Multiply this to deploy a parachute in higher altitudes, but it will cause only less drag when deployed higher.
* curve: the coefficient on how fast or slow the atmosphere thins. A curve of 10 means that the atmosphere fades at the same speed until reaching the boundary between the atmosphere and space, where it ceases to exist. A curve lower than 7 means that the atmosphere fades slower in the beginning, then fades faster, and a curve higher than 13 means that the atmosphere fades faster in the beginning, then slower. A curve of 0 means that the atmosphere stays at the same density all the way up to the boundary between the atmosphere and space, where it suddenly becomes non-existent.

* upperAtmosphere: How high the upper atmosphere is. An ideal value will be somewhere between 0.1 and 0.5.
* shockwaveIntensity: The intensity of shockwaves (parts detaching and disappearing) during atmospheric entry.
* minHeatingVelocityMultiplier: Multiplies maximum velocity a rocket can travel inside the atmosphere without heating up. Higher numbers make the velocity higher before heating starts. The actual velocity is 250 m/s multiplied by the number you enter here.

### ATMOSPHERE\_VISUALS\_DATA

#### GRADIENT

* texture: The texture used for rendering the atmosphere.
* height: How tall the atmosphere texture is in meters.
* positionZ: How "deep" the texture is.

#### CLOUDS

* Texture: The texture used for rendering the clouds.
* startHeight: The altitude in which the clouds start.
* width: How often the clouds repeat. Set the circumference of the planet in this value for a single cloud texture.
* height: When the clouds stop or how thick the clouds are.
* alpha: How transparent the clouds are. Raise the number to make thick clouds.
* velocity: How fast the clouds move around the planet in meters per second. If you want to make your planet windy/stormy, opt for higher velocity. Numbers below 5.0 mean that the clouds are calm.

#### FOG

Fog is used for covering some or all of the planet or a planet's surface because of an atmosphere.

* color: (r, g, b)
* a: tells how much the fog covers the planet (transparency). 1.0 hides the texture of the planet completely. This is applied on Venus. Make this value smaller for planets with a thin atmosphere, and larger for planets with a thick atmosphere.
* distance: Tells how much to zoom out from the rocket to see the fog.

## TERRAIN\_DATA

```
  "TERRAIN_DATA": {
    "TERRAIN_TEXTURE_DATA": {
      "planetTexture": "Earth",
      "planetTextureCutout": 1.0,
      "surfaceTexture_A": "Blured",
      "surfaceTextureSize_A": {
        "x": 20.0,
        "y": 8.0
      },
      "surfaceTexture_B": "None",
      "surfaceTextureSize_B": {
        "x": -1.0,
        "y": -1.0
      },
      "terrainTexture_C": "Blured",
      "terrainTextureSize_C": {
        "x": 100.0,
        "y": 30.0
      },
      "surfaceLayerSize": 40.0,
      "minFade": 0.0,
      "maxFade": 1.0,
      "shadowIntensity": 6.0,
      "shadowHeight": 15.0
    },
    "terrainFormulaDifficulties": {
      "normal": [
        "OUTPUT = AddHeightMap(Perlin,19030.8016515536, 35)",
        "OUTPUT = AddHeightMap(Perlin,2452.54445075783, 5)",
        "OUTPUT = AddHeightMap(Perlin,1319.46891450771, 1)"
      ]
    },
    "textureFormula": [],
    "verticeSize": 4.0,
    "collider": true,
    "flatZones": [
      {
        "height": 18.0,
        "angle": 1.5707,
        "width": 900.0,
        "transition": 200.0
      }
    ]
  },

```

* planetTexture: the texture used to see the planet in physics mode
* planetTextureCutout: How much is removed from the original image. Lower this number to cut away the texture's outer edge. This stretches the image to fill the parameters you have set elsewhere such as radius.
* surfaceTexture\_A: the image that defines the surface texture.
* surfaceTexture\_B: the image that defines the surface texture when under a significant shadow on the planet.
* terrainTexture\_C: the image that defines the terrain texture.
* surfaceLayerSize: What is the size of each layer of the terrain.
* minFade: Minimum fading of the terrain
* maxFade: Maximum fading of the terrain
* shadowIntensity: How dark the shadows are in the terrain.
* shadowHeight: How deep the shadow goes into the ground.
* terrainFormula: How the terrain is modeled. Check out Planet Editor Tutorial/Terrain Editing for advanced terrain editing.
* textureFormula: How both the terrain *and* the texture is modeled. The texture will follow the shape of the terrain. Make sure you must have the same values from the terrainFormula section.

* collider: The values are **true** and **false**. **True** means the planet has a surface; **false** means it has no solid surface. Use **false** when your planet is a gas giant or a star.
* verticeSize: The planet's terrain resolution. Higher numbers make the planet (and its terrain) less detailed. Stick with lower numbers such as **3.0** or lower. Smaller numbers (such as **0.5** or lower) can lag or even crash the game (because the game loads those *pixels* on the terrain; if too much, the game loads them longer) if applied on large planets; apply those small numbers at smaller planets.

### flatZones

This is used for creating a flat surface on a part of a celestial body. They can be used for terrain features such as oceans, flat plains, mountains, holes, and more.

* height: Shows the depth/height of the flat zone on the terrain.
* angle: the location of the flat zone in radians. A radian is 57.296 degrees
* width: The size of the flat zone
* transition: the size of the transition from flat to the normal terrain

### Rocks

The moon is used as an example of rocks.

```
"rocks": {

```

```
      "rockType": "Rock Square",

```

```
      "rockDensity": 0.5,

```

```
      "minSize": 0.12,

```

```
      "maxSize": 0.4,

```

```
      "powerCurve": 2.0,

```

```
      "maxAngle": 25.0

```

```
    }

```

* rockType: The type of rocks that are used. There are two types of rocks in the game: Rock Round and Rock Square. Rock Round produces smoother rocks, and Rock Square produces sharper rocks.
* rockDensity: How many rocks are there for every meter of the surface. Higher values produce more rocks on the surface. For example, if rockDensity is set to 0.5, there are 0.5 rocks on average per every meter of the surface of the planet. In other terms, there will 1 rock every 2 meters on the planet.
* minSize: Minimum size of rocks in meters
* maxSize: Maximum size of rocks in meters
* powerCurve: How sharp the rocks are. Higher values make the rocks smoother.
* maxAngle: The maximum angle of the terrain before rocks disappear.

## POST\_PROCESSING

```
"POST_PROCESSING": {
    "keys": [
      {
        "height": 0.0,
        "shadowIntensity": 1.35,
        "starIntensity": 0.0,
        "hueShift": 0.0,
        "saturation": 0.95,
        "contrast": 1.2,
        "red": 1.03,
        "green": 1.02,
        "blue": 1.0
      },
      {
        "height": 7000.0,
        "shadowIntensity": 1.5,
        "starIntensity": 0.0,
        "hueShift": 0.0,
        "saturation": 0.95,
        "contrast": 1.2,
        "red": 1.0,
        "green": 1.0,
        "blue": 1.0
      },
      {
        "height": 25000.0,
        "shadowIntensity": 1.75,
        "starIntensity": 0.0,
        "hueShift": 0.0,
        "saturation": 0.95,
        "contrast": 1.2,
        "red": 1.0,
        "green": 1.0,
        "blue": 1.0
      },
      {
        "height": 40000.0,
        "shadowIntensity": 1.75,
        "starIntensity": 0.0,
        "hueShift": 0.0,
        "saturation": 0.95,
        "contrast": 1.2,
        "red": 1.0,
        "green": 1.0,
        "blue": 1.0
      },
      {
        "height": 50000.0,
        "shadowIntensity": 1.75,
        "starIntensity": 1.0,
        "hueShift": 0.0,
        "saturation": 0.95,
        "contrast": 1.2,
        "red": 1.0,
        "green": 1.0,
        "blue": 1.0
      }
    ]
  },

```

* shadowIntensity: shadows on the rocket
	+ 1.0–1.35 for light backgrounds, 1.75 for darker backgrounds, and 0 for flat textures. You can also use negative numbers.
* starIntensity: How bright the stars are in the game. After skipping the atmosphere you will see the stars start to get brighter.
* hueShift: The shift in colour in a rocket that is in the environments of a planet.
* saturation and contrast: Shifts the rocket's colour to brighter/darker colours.
* the RGB values are for multiplying the color values of both the rocket and the environment.
	+ r: 1.12, g: 1.08, b: 1.0 is soft light
	+ r: 1.0, g: 1.0, b: 1.0 is white light.

## ORBIT\_DATA

```
  "ORBIT_DATA": {
    "parent": "Sun",
    "semiMajorAxis": 7480000000.0,
    "smaDifficultyScale": {},
    "eccentricity": 0.0,
    "argumentOfPeriapsis": 0.0,
    "direction": 1,
    "multiplierSOI": 2.5,
    "soiDifficultyScale": {}
  },

```

* parent: the object your body is orbiting (the name of object file, not object name)
* semiMajorAxis: Also known as semi-major axis, this is the distance in meters the body is away from the center of the primary body.
* eccentricity: How elliptical the orbit is. 0.0 means the orbit is round; higher numbers make the orbit elliptical (more oval in shape); 1.0 is parabolic; numbers above 1.0 is hyperbolic
* argumentOfPeriapsis: Indicates where the planet is in its orbit. All planets will start at their periapsides when starting a world.
* direction: The speed of the celestial body. Set to 0 for stationary planets; -1 for planets to orbit the opposite direction (counterclockwise). All planets orbit clockwise in the game. In the future, it will support decimal values.
* multiplierSOI: Multiplies the planet's sphere of influence by this number to get the final SOI. Lower this number for a smaller SOI. Increase this number to increase the size of the SOI; good for small planets. If you want everything to be realistic, use **1.0**. Beware making this number too high as it can cause glitches when you have two SOIs overlapping each other.

## ACHIEVEMENT\_DATA

True means it appears; False means it does not appear.

````
 "ACHIEVEMENT_DATA": {
   "Landed": true,
   "Takeoff": true,
   "Atmosphere": true,
   "Orbit": true,
   "Crash": true
 },

````

* Landed: Shows if the achievements that include landing on a surface of a celestial body are shown or not.
* Takeoff: Shows if the achievements that include in the atmosphere while going up are shown or not.
* Atmosphere: Shows if the achievements that include in the atmosphere while going down are shown or not.
* Orbit: Shows if the achievements that include by reaching orbit are shown or not.
* Crash: Shows the crashing achievement or not.

## LANDMARKS

To make multiple landmarks copy the curly brackets bit and paste it under the bit you copied. We'll use the Moon for example.

```
  "LANDMARKS": [
    {
      "name": "Tycho Crater",
      "angle": 202.0,
      "startAngle": 197.0,
      "endAngle": 209.0
    },
    {
      "name": "Ocean of Storms",
      "angle": 227.0,
      "startAngle": 219.0,
      "endAngle": 242.0
    },
    {
      "name": "Copernicus Crater",
      "angle": 262.0,
      "startAngle": 254.8,
      "endAngle": 268.8
    },
    {
      "name": "Sea of Tranquility",
      "angle": 310.0,
      "startAngle": 301.0,
      "endAngle": 317.0
    },
    {
      "name": "Sea of Serenity",
      "angle": 354.0,
      "startAngle": 343.0,
      "endAngle": 366.0
    }
  ]
}

```

* name: The name of the landmark.
* angle: Position of the landmark around the planet (counterclockwise).
* startAngle: How far you need to be zoomed out to see the landmark.
* endAngle: How far you need to be zoomed in to see the landmark.

# Import Settings

This setting can include default things in the game and hiding stars in an atmosphere.

```
{
  "includeDefaultPlanets": false,
  "includeDefaultHeightmaps": true,
  "includeDefaultTextures": true,
  "hideStarsInAtmosphere": true
}

```

* includeDefaultPlanets: This setting enables/disables the main planets in the default solar system.
* includeDefaultHeightmaps: Same as the last one but with heightmaps
* includeDefaultTextures: Same as the last two but with textures
* hideStarsInAtmosphere: This setting enables/disables stars while in the atmosphere.

# Space Center Data

This tells the location of the Space Center.

```
{
  "address": "Earth",
  "angle": 90.0,
  "position_LaunchPad": {
    "horizontalPosition": 365.0,
    "height": 26.2
  }
}

```

* address: the celestial body where the Space Center is located.
* angle: Position of the Space Center in degrees. 0° is on the right; 90° is on the top

## position\_LaunchPad

* horizontalPosition: The offset of the Space Center from the original location. Negative values put the Space Center more to the left.
* height: The height of the Space Center + 8.2.