Difference between revisions of "Planetinfo.plist"

From Elite Wiki
(Added Cody's "How to")
(Formatting Tweaks, added link for example, and link to World Builder OXP)
Line 88: Line 88:
 
*And probably other stuff I missed!
 
*And probably other stuff I missed!
  
=Where Settings Apply=
+
==Where Settings Apply==
  
==Universal Settings==
+
===Universal Settings===
  
Universal options are applied to all 2048 systems, this is useful for settings such as ambient lighting levels, eg.
+
Universal options are applied to all 2048 solar systems, this is useful for settings such as ambient lighting levels, eg.
 
  "universal" =
 
  "universal" =
 
  {
 
  {
Line 99: Line 99:
 
Universal options can be over-ridden by specifying the same option for a specific system or. Obviously, not all options make sense to apply to the whole universe.
 
Universal options can be over-ridden by specifying the same option for a specific system or. Obviously, not all options make sense to apply to the whole universe.
  
==Interstellar Space==
+
===Interstellar Space===
  
 
Conditions for interstellar space in general can be set with the “interstellar space” key.
 
Conditions for interstellar space in general can be set with the “interstellar space” key.
Line 105: Line 105:
 
Note: [https://bb.oolite.space/viewtopic.php?f=2&t=17191 Procedure to find all interstellar spaces] (2015)
 
Note: [https://bb.oolite.space/viewtopic.php?f=2&t=17191 Procedure to find all interstellar spaces] (2015)
  
==Specific Systems==
+
===Specific Systems===
  
 
Each system is keyed by a string consisting of the galaxy number (0..7) followed by a space and then the planet number (0..255), eg.
 
Each system is keyed by a string consisting of the galaxy number (0..7) followed by a space and then the planet number (0..255), eg.
Line 114: Line 114:
 
specifies system 7, in galaxy 0, ''Lave''.
 
specifies system 7, in galaxy 0, ''Lave''.
  
==Specific Interstellar Spaces==
+
===Specific Interstellar Spaces===
  
 
You can also specify a position in interstellar space, eg.
 
You can also specify a position in interstellar space, eg.
Line 188: Line 188:
  
  
=About the Inhabitants=
+
==About the Inhabitants==
  
==Concealment==
+
===Concealment===
 
{{oolite-prop-added|1.83}}
 
{{oolite-prop-added|1.83}}
  
Line 203: Line 203:
 
* 300 or more: system vanishes entirely from chart, will not be used in route plotting, cannot be targeted by player (NPCs can still jump to it, though)
 
* 300 or more: system vanishes entirely from chart, will not be used in route plotting, cannot be targeted by player (NPCs can still jump to it, though)
  
==Government==
+
===Government===
  
 
An integer between 0 and 7 indicating the government type of the system.
 
An integer between 0 and 7 indicating the government type of the system.
Line 220: Line 220:
 
: 7: Corporate State
 
: 7: Corporate State
  
==Economy==
+
===Economy===
 
An integer between 0 and 7 indicating the economy type of the system.
 
An integer between 0 and 7 indicating the economy type of the system.
  
Line 236: Line 236:
 
: 7: Poor Agricultural
 
: 7: Poor Agricultural
 
   
 
   
==Tech Level==
+
===Tech Level===
  
 
An integer between 0 and 14 indicating the sophistication of the planets technology. The tech level displayed on the system data screens in game is one higher than this number (range 1 to 15).
 
An integer between 0 and 14 indicating the sophistication of the planets technology. The tech level displayed on the system data screens in game is one higher than this number (range 1 to 15).
Line 247: Line 247:
 
Further Note: The [[Famous Planets]] OXP transmogrifies [[Sector1/Sori]] into the Anarchy "Ascension" with a TL of 16! This is virtually no different to Ceesxe's TL 15.
 
Further Note: The [[Famous Planets]] OXP transmogrifies [[Sector1/Sori]] into the Anarchy "Ascension" with a TL of 16! This is virtually no different to Ceesxe's TL 15.
  
==Population==
+
===Population===
  
 
An integer between 0 and 67 indicating the number of inhabitants of a planet in hundreds of millions
 
An integer between 0 and 67 indicating the number of inhabitants of a planet in hundreds of millions
Line 256: Line 256:
 
See Wildeblood's note on no upper limit [https://bb.oolite.space/viewtopic.php?p=299408#p299408 here] (2025)
 
See Wildeblood's note on no upper limit [https://bb.oolite.space/viewtopic.php?p=299408#p299408 here] (2025)
  
==Productivity==
+
===Productivity===
  
 
An integer indicating the productivity of a planet.
 
An integer indicating the productivity of a planet.
Line 263: Line 263:
 
  "productivity" = "1000";
 
  "productivity" = "1000";
  
==Name==
+
===Name===
  
 
The name of the planet.
 
The name of the planet.
Line 272: Line 272:
 
'''Note''': See the [https://bb.oolite.space/viewtopic.php?t=12131 Pronounceable Planets Project] thread on the forum for some ideas!
 
'''Note''': See the [https://bb.oolite.space/viewtopic.php?t=12131 Pronounceable Planets Project] thread on the forum for some ideas!
  
==Inhabitant==
+
===Inhabitant===
  
 
The name for one of the inhabitants of the main planet.
 
The name for one of the inhabitants of the main planet.
Line 279: Line 279:
 
  "inhabitant" = "Green Platypus";
 
  "inhabitant" = "Green Platypus";
  
==Inhabitants==
+
===Inhabitants===
  
 
The name of the inhabitants of the main planet.
 
The name of the inhabitants of the main planet.
Line 286: Line 286:
 
  "inhabitants" = "Green Platypi";
 
  "inhabitants" = "Green Platypi";
  
==Description==
+
===Description===
  
 
A short description of the planet.
 
A short description of the planet.
Line 295: Line 295:
 
'''Note''': For more than 1 oxp describing a system see [https://bb.oolite.space/viewtopic.php?p=165471#p165471 here] (2012) - and elsewhere. Note that ''eg''. [[System Features Rings]] does this through Javascript. rather than a .plist.
 
'''Note''': For more than 1 oxp describing a system see [https://bb.oolite.space/viewtopic.php?p=165471#p165471 here] (2012) - and elsewhere. Note that ''eg''. [[System Features Rings]] does this through Javascript. rather than a .plist.
  
==Government Description==
+
===Government Description===
 
{{oolite-prop-added|1.81}}
 
{{oolite-prop-added|1.81}}
  
Line 303: Line 303:
 
   "government_description" = "Dictatorship (Monarchy)";
 
   "government_description" = "Dictatorship (Monarchy)";
  
==Economy Description==
+
===Economy Description===
 
{{oolite-prop-added|1.81}}
 
{{oolite-prop-added|1.81}}
  
Line 311: Line 311:
 
   "economy_description" = "Mainly Industrial (Machine Tools)";
 
   "economy_description" = "Mainly Industrial (Machine Tools)";
  
==Population Description==
+
===Population Description===
 
{{oolite-prop-added|1.77}}
 
{{oolite-prop-added|1.77}}
  
Line 319: Line 319:
 
   "population_description" = "13 Billion";
 
   "population_description" = "13 Billion";
  
==Random Seed==
+
===Random Seed===
 
{{oolite-prop-added|1.81}}
 
{{oolite-prop-added|1.81}}
  
Line 327: Line 327:
 
  random_seed = "74 90 72 2 83 183";
 
  random_seed = "74 90 72 2 83 183";
  
=System population=
+
==System population==
 
These properties are only used in Oolite 1.79 or later.
 
These properties are only used in Oolite 1.79 or later.
  
==Populator==
+
===Populator===
  
 
The name of the worldscript function which will be used to [[Oolite_System_Populator|populate the system]]
 
The name of the worldscript function which will be used to [[Oolite_System_Populator|populate the system]]
Line 337: Line 337:
 
  "populator" = "systemWillPopulate";
 
  "populator" = "systemWillPopulate";
  
==Repopulator==
+
===Repopulator===
  
 
The name of the worldscript function which will be used to [[Oolite_System_Populator|repopulate the system]]
 
The name of the worldscript function which will be used to [[Oolite_System_Populator|repopulate the system]]
Line 539: Line 539:
 
  "texture_normspec" = "planetNormalAndSpecularMap.png";
 
  "texture_normspec" = "planetNormalAndSpecularMap.png";
  
=Properties of the Sky=
+
==Properties of the Sky==
  
==Ambient Level==
+
===Ambient Level===
  
 
Sets how much ambient light (shed by stars and nebulae) illuminates the dark side of objects like planets and ships. Values should typically be between 0.0 and 1.0 (1.0 is the default) but can be higher for a flat lit, cartoon-like effect.
 
Sets how much ambient light (shed by stars and nebulae) illuminates the dark side of objects like planets and ships. Values should typically be between 0.0 and 1.0 (1.0 is the default) but can be higher for a flat lit, cartoon-like effect.
Line 548: Line 548:
 
  "ambient_level" = "0.0";
 
  "ambient_level" = "0.0";
  
==Nebula Count Multiplier==
+
===Nebula Count Multiplier===
 
This is used for defining the number of nebulas. Default is 1.0. Number can be greater or less than default and is also randomised a bit.  
 
This is used for defining the number of nebulas. Default is 1.0. Number can be greater or less than default and is also randomised a bit.  
  
Line 554: Line 554:
 
  "nebula_count_multiplier" = "1.5";
 
  "nebula_count_multiplier" = "1.5";
  
==Sky Blur Alpha==
+
===Sky Blur Alpha===
 
Default 0.1
 
Default 0.1
  
Line 560: Line 560:
 
  "sky_blur_alpha" = "0.0 .. 1.0";
 
  "sky_blur_alpha" = "0.0 .. 1.0";
  
==Sky Blur Cluster Chance==
+
===Sky Blur Cluster Chance===
 
This is used for creating nebulae (typically 0.80)
 
This is used for creating nebulae (typically 0.80)
  
Line 566: Line 566:
 
  "sky_blur_cluster_chance" = "0.85";
 
  "sky_blur_cluster_chance" = "0.85";
  
==Sky Blur Scale==
+
===Sky Blur Scale===
 
Default 10. Larger numbers generate bigger nebula, but slow down the game considerable on slower machines.
 
Default 10. Larger numbers generate bigger nebula, but slow down the game considerable on slower machines.
  
Line 572: Line 572:
 
  "sky_blur_scale" = "0.0 .. 128.0 or more";
 
  "sky_blur_scale" = "0.0 .. 128.0 or more";
  
==Sky N Blurs==
+
===Sky N Blurs===
 
This is used for defining the number of nebulas (typical is 80, maximum is 1280). This key is multiplied by a "nebula_count_multiplier" definition in Oolite 1.81 or later.
 
This is used for defining the number of nebulas (typical is 80, maximum is 1280). This key is multiplied by a "nebula_count_multiplier" definition in Oolite 1.81 or later.
  
Line 578: Line 578:
 
  "sky_n_blurs" = "800";
 
  "sky_n_blurs" = "800";
  
==Sky N Stars==
+
===Sky N Stars===
 
This is used for defining the number of stars (typical = 600, maximum in 1.76 or earlier is 4800). This key is multiplied by a "star_count_multiplier" definition in Oolite 1.81 or later. In reduced detail mode, this number will be capped to 2400.
 
This is used for defining the number of stars (typical = 600, maximum in 1.76 or earlier is 4800). This key is multiplied by a "star_count_multiplier" definition in Oolite 1.81 or later. In reduced detail mode, this number will be capped to 2400.
  
Line 584: Line 584:
 
  "sky_n_stars" = "1200";
 
  "sky_n_stars" = "1200";
  
==Sky and Nebula RGB Colors==
+
===Sky and Nebula RGB Colors===
  
 
These are rgb values (from 0.0 to 1.0) for the two colours between which the colour of the stars (and nebulaesque blurs) vary, ordered r1 g1 b1 r2 g2 b2 where (r1 g1 b1) defines the first colour and (r2 g2 b2) the second.<br>
 
These are rgb values (from 0.0 to 1.0) for the two colours between which the colour of the stars (and nebulaesque blurs) vary, ordered r1 g1 b1 r2 g2 b2 where (r1 g1 b1) defines the first colour and (r2 g2 b2) the second.<br>
Line 603: Line 603:
 
  "nebula_color_2" = "blueColor";
 
  "nebula_color_2" = "blueColor";
  
==Star Count Multiplier==
+
===Star Count Multiplier===
 
This is used for defining the number of stars. Default is 1.0. Number can be greater or less than default and is also randomised a bit.  
 
This is used for defining the number of stars. Default is 1.0. Number can be greater or less than default and is also randomised a bit.  
  
Line 610: Line 610:
  
  
=Properties of the Station=
+
==Properties of the Station==
  
==Market Script==
+
===Market Script===
 
{{oolite-prop-added|1.81}}
 
{{oolite-prop-added|1.81}}
  
Line 622: Line 622:
 
'''Note:''' [https://bb.oolite.space/viewtopic.php?p=235837#p235837 What's the difference between the market script specified in planetinfo.plist and the one called for by trade-goods.plist?] (2015)
 
'''Note:''' [https://bb.oolite.space/viewtopic.php?p=235837#p235837 What's the difference between the market script specified in planetinfo.plist and the one called for by trade-goods.plist?] (2015)
  
==Station==
+
===Station===
 
The type of station orbiting the main planet.
 
The type of station orbiting the main planet.
  
Line 628: Line 628:
 
  "station" = "coriolis..dodec..special";
 
  "station" = "coriolis..dodec..special";
  
==Station Roll==
+
===Station Roll===
 
The speed at which the station rotates (as with all rotational velocities this is in radians per second) and affects all rotating stations in a system. For a specific station you can use the key [[Shipdata.plist#station_roll | station_roll]] in shipdata.plist.
 
The speed at which the station rotates (as with all rotational velocities this is in radians per second) and affects all rotating stations in a system. For a specific station you can use the key [[Shipdata.plist#station_roll | station_roll]] in shipdata.plist.
  
Line 634: Line 634:
 
  "station_roll" = "0.5";
 
  "station_roll" = "0.5";
  
==Station Vector==
+
===Station Vector===
 
The direction of the main station from the main planet
 
The direction of the main station from the main planet
 
   
 
   
Line 640: Line 640:
 
  "station_vector" = "-0.717 -0.668 0.201";
 
  "station_vector" = "-0.717 -0.668 0.201";
  
==Stations Require Docking Clearance==
+
===Stations Require Docking Clearance===
  
 
Specifies if a player has to explicit ask docking permission. See also [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|Oolite Docking Clearance]]
 
Specifies if a player has to explicit ask docking permission. See also [[Oolite_Docking_Clearance_Protocol_%28v1.72_or_later%29|Oolite Docking Clearance]]
  
==Market (defunct)==
+
===Market (defunct)===
 
The market to be used in this system as the default market. It points to a key in commodities.plist
 
The market to be used in this system as the default market. It points to a key in commodities.plist
  
Line 653: Line 653:
 
In 1.81 and later, this is replaced by market_script
 
In 1.81 and later, this is replaced by market_script
  
=Properties of the Sun=
+
==Properties of the Sun==
 
;N.B.
 
;N.B.
 
The corona effect, modified by the first three properties mentioned below, is disabled by setting ''Reduced Detail:On'' in the game setting menu. ''Enabled'' by default (''Reduced Detail:Off'').
 
The corona effect, modified by the first three properties mentioned below, is disabled by setting ''Reduced Detail:On'' in the game setting menu. ''Enabled'' by default (''Reduced Detail:Off'').
  
==Corona Flare==
+
===Corona Flare===
  
 
Sets the overall size of the corona in proportion to its sun. (See note above.)
 
Sets the overall size of the corona in proportion to its sun. (See note above.)
Line 666: Line 666:
 
  "corona_flare" = "0.075";
 
  "corona_flare" = "0.075";
  
==Corona Hues==
+
===Corona Hues===
  
 
Specifies whether the corona should have visible bands of colours within the corona. (See note above.)
 
Specifies whether the corona should have visible bands of colours within the corona. (See note above.)
Line 675: Line 675:
 
  "corona_hues" = "0.6";
 
  "corona_hues" = "0.6";
  
==Corona Shimmer==
+
===Corona Shimmer===
  
 
Specifies how quickly the corona colours change. (See note above.)
 
Specifies how quickly the corona colours change. (See note above.)
Line 684: Line 684:
 
  "corona_shimmer" = "0.4";
 
  "corona_shimmer" = "0.4";
  
==Sun Color==
+
===Sun Color===
  
 
Sets the colour of a system's sun.
 
Sets the colour of a system's sun.
Line 693: Line 693:
 
  "sun_color" = "blueColor";
 
  "sun_color" = "blueColor";
  
==Sun Distance==
+
===Sun Distance===
 
{{oolite-prop-added|1.81}}
 
{{oolite-prop-added|1.81}}
  
Line 703: Line 703:
 
Ignored if sun_distance_modifier is set.
 
Ignored if sun_distance_modifier is set.
  
==Sun Distance Multiplier==
+
===Sun Distance Multiplier===
 
{{oolite-prop-added|1.81}}
 
{{oolite-prop-added|1.81}}
  
Line 713: Line 713:
 
Ignored if sun_distance_modifier is set.
 
Ignored if sun_distance_modifier is set.
  
==Sun Distance Modifier==
+
===Sun Distance Modifier===
  
 
Sets the approximate distance between a system sun and its main planet. The standard distance is 20 planetary radii. Setting it much lower (10, or even less) will cause delays when generating systems, as Oolite compensates for possible collisions between the sun and other system objects.
 
Sets the approximate distance between a system sun and its main planet. The standard distance is 20 planetary radii. Setting it much lower (10, or even less) will cause delays when generating systems, as Oolite compensates for possible collisions between the sun and other system objects.
Line 722: Line 722:
 
In Oolite 1.81 or later, sun_distance_multiplier is more useful.
 
In Oolite 1.81 or later, sun_distance_multiplier is more useful.
  
== Sun Gone Nova ==
+
=== Sun Gone Nova ===
  
 
Sets a nova sun in the system.
 
Sets a nova sun in the system.
Line 729: Line 729:
 
  "sun_gone_nova" = "YES";
 
  "sun_gone_nova" = "YES";
  
==Sun Name==
+
===Sun Name===
  
 
Stores the name of a system's sun. This is only implemented in Oolite from version 1.79 onwards, though was used by OXPs before then.
 
Stores the name of a system's sun. This is only implemented in Oolite from version 1.79 onwards, though was used by OXPs before then.
Line 736: Line 736:
 
  "sun_name" = "Alpha Centauri";
 
  "sun_name" = "Alpha Centauri";
  
==Sun Radius==
+
===Sun Radius===
  
 
Sets the radius of a system's sun. A number between 1000 and 1000000.
 
Sets the radius of a system's sun. A number between 1000 and 1000000.
Line 743: Line 743:
 
  "sun_radius" = "100000";
 
  "sun_radius" = "100000";
  
==Sun Vector==
+
===Sun Vector===
 
The direction of the sun from the main planet
 
The direction of the sun from the main planet
 
   
 
   
Line 749: Line 749:
 
  "sun_vector" = "-0.717 -0.668 0.201";
 
  "sun_vector" = "-0.717 -0.668 0.201";
  
=Additional Planets=
+
==Additional Planets==
  
 
Finally you can also define your own custom planets and moons:
 
Finally you can also define your own custom planets and moons:
Line 760: Line 760:
 
To add them to the system, use JS methods <code>[[Oolite_JavaScript_Reference:_System#addPlanet|system.addPlanet]]</code> and <code>[[Oolite_JavaScript_Reference:_System#addPlanet|system.addMoon]]</code>. For the example above, the <code>planetInfoKey</code> will be <code>"LavesPurpleMoon"</code>.
 
To add them to the system, use JS methods <code>[[Oolite_JavaScript_Reference:_System#addPlanet|system.addPlanet]]</code> and <code>[[Oolite_JavaScript_Reference:_System#addPlanet|system.addMoon]]</code>. For the example above, the <code>planetInfoKey</code> will be <code>"LavesPurpleMoon"</code>.
  
==Position==
+
===Position===
 
Position of the planet in space. The first parameter is 3-character code of the coordinate system, other three is x, y and z components of position vector.
 
Position of the planet in space. The first parameter is 3-character code of the coordinate system, other three is x, y and z components of position vector.
 
  "position" = "pwm 0 -50000 0";
 
  "position" = "pwm 0 -50000 0";
Line 770: Line 770:
 
See [[Oolite coordinate systems]] for more info about it.
 
See [[Oolite coordinate systems]] for more info about it.
  
==Orientation==
+
===Orientation===
Orientation of the planet in space (seems not to be working correct).
+
Orientation of the planet in space (seems not to be working correctly).
  
 
Example:
 
Example:
 
  "orientation" = "0.0 1.0 0.0 0.0";
 
  "orientation" = "0.0 1.0 0.0 0.0";
  
==Other keys==
+
===Other keys===
  
 
You can use other keys from the [[#Properties_of_the_Planet| Properties of the Planet]] section for your planets and moons.
 
You can use other keys from the [[#Properties_of_the_Planet| Properties of the Planet]] section for your planets and moons.
Line 793: Line 793:
 
:#define MULTIPLIER_LIGHTSRCRADIANCE 2.0
 
:#define MULTIPLIER_LIGHTSRCRADIANCE 2.0
 
:#define MULITPLIER_EXPOSURE 1.0
 
:#define MULITPLIER_EXPOSURE 1.0
 +
 +
*For another example see cbr's modifed "Tionisla is Mars" texture [https://bb.oolite.space/viewtopic.php?p=306156#p306156 here] (2026)
  
 
== Links ==
 
== Links ==
Line 800: Line 802:
 
*[https://bb.oolite.space/viewtopic.php?f=3&t=17678 How to regenerate planetinfo?] (cim, 2015) Replacing the current 7Mb .plist with the original goatsoup recipe.
 
*[https://bb.oolite.space/viewtopic.php?f=3&t=17678 How to regenerate planetinfo?] (cim, 2015) Replacing the current 7Mb .plist with the original goatsoup recipe.
  
[[image:Anerbe (Animation).gif|right]]
+
*Wildeblood's [[World Builder]] allows you to experiment with these settings in-game.
 +
 
 +
 
 
=== Assorted Tweaks ===
 
=== Assorted Tweaks ===
 
*[[User:Submersible|Submersible]]'s collection of [https://www.youtube.com/user/submersibletoaster YouTube videos] of planet textures (2012)
 
*[[User:Submersible|Submersible]]'s collection of [https://www.youtube.com/user/submersibletoaster YouTube videos] of planet textures (2012)

Revision as of 08:42, 9 July 2026

planetinfo.plist in 'AddOns/Config' contains a dictionary for each of systems for which you wish to set custom data. A list of all galaxies and planets can be found here. Each of the properties mentioned below can be set (but, notably, not the location of the main planet, which is hard coded into the system seed value):


Ian Bell worksheet for the goatsoup recipe from his vanished archives
See Where do these crazy names come from?

Contents

Colour Specifiers

Colour specifiers are used to declare colours in material attribute dictionaries, and in other contexts such as lasers in shipdata.plist. Colour specifiers take any of several forms: Named colours, RGB / RGBA tuples, RGB / RGBA dictionaries or HSBA dictionaries.

Colours can be viewed at https://rgbcolorpicker.com/0-1 and many other websites

Click on the "gory details" for more: --->

Named colours

The simplest form of colour specifier is a string containing a colour name. The following names are supported:

Colour names
Name RGBA value
blackColor 0, 0, 0, 1
darkGrayColor 1/3, 1/3, 1/3, 1
lightGrayColor 2/3, 2/3, 2/3, 1
whiteColor 1, 1, 1, 1
grayColor 1/2, 1/2, 1/2, 1
redColor 1, 0, 0, 1
greenColor 0, 1, 0, 1
blueColor 0, 0, 1, 1
cyanColor 0, 1, 1, 1
yellowColor 1, 1, 0, 1
magentaColor 1, 0, 1, 1
orangeColor 1, 1/2, 0, 1
purpleColor 1/2, 0, 1/2, 1
brownColor 0.6, 0.4, 0.2, 1
clearColor 0, 0, 0, 0

RGBA tuples

Colours may also be specified in RGB or RGBA (red, green, blue, alpha [transparency]). RGB or RGBA tuples may be specified as arrays or as strings separated by spaces. The values may range from 0 to 1 or 0 to 255. (If no value is greater than 1, 0–1 is assumed, otherwise 0–255.) Examples:

  • "1 1 0" — yellow
  • "0 128 0 128" — medium green at 50% opacity
  • (1, 0, 0) – red


RGBA dictionaries

Just in case you’re unsure of the order the RGB[A] components come in, you can use a dictionary:

{
   blue = 0.8;
   green = 0.8;
}

Accepted keys are red, green, blue and alpha (or opacity), all optional (default: 0.0 for red, green and blue, 1.0 for alpha).

HSBA dictionaries

But wait, there’s more! Colours may also be specified as dictionaries in the HSB colour space. Accepted keys are hue (hue angle in degrees, required), saturation, brightness (or value) and alpha (or opacity). The default for the optional keys is 1.0.

{
   // Pale magenta
   hue = 300;
   saturation = 0.3;
}

Added for Oolite v.1.91

  • air_density / or the Javascript planet entity airDensity - see below (pretty picture!)

Added for Oolite v.1.89

This needs editing by somebody who understands it! Snatched from the Progress thread

Where Settings Apply

Universal Settings

Universal options are applied to all 2048 solar systems, this is useful for settings such as ambient lighting levels, eg.

"universal" =
{
...
}

Universal options can be over-ridden by specifying the same option for a specific system or. Obviously, not all options make sense to apply to the whole universe.

Interstellar Space

Conditions for interstellar space in general can be set with the “interstellar space” key.

Note: Procedure to find all interstellar spaces (2015)

Specific Systems

Each system is keyed by a string consisting of the galaxy number (0..7) followed by a space and then the planet number (0..255), eg.

"0 7" =
{
...
}

specifies system 7, in galaxy 0, Lave.

Specific Interstellar Spaces

You can also specify a position in interstellar space, eg.

"interstellar: 0 7 129" =
{
...
}

specifies the space in galaxy 0 between systems 7 and 129, Lave and Zaonce.

Note that

"interstellar: 0 7 129" = // jumping from Lave towards Zaonce
{
...
}

and

"interstellar: 0 129 7" = // jumping from Zaonce towards Lave
{
...
}

are distinct locations and if they both need the same properties this must be explicitly set for both.

In 1.81 the property "link_color" when set on a specific interstellar space changes the colour of the link between the two systems in the advanced navigation array (assuming no route is in place above it). When setting link_color, the lower system ID must be placed first, because of how the chart is drawn.

Note that Switeck has done a lot of work on this - there are intermediate spots in the interstellar spaces - but only on the line between two systems. See the OXPs on his User: page

Layers

Settings other than "universal" in Oolite 1.81 or later have a 'layer' property from 0 to 3. The default value for planetinfo.plist files is 1. If multiple OXPs specify a setting for a particular property, the order they will be checked in is: * Layer 3 settings * Layer 2 settings (default for Javascript changes to data) * Layer 1 settings (default for planetinfo.plist) * Universal settings * Layer 0 settings (value for core game settings)

This allows OXPs to safely override each other's changes if necessary, and for OXPs which really need a specific setting in a particular system to set it at layer 3

Example

"layer" = 2;

Terraforming Example

For the planet Lave, you would use the key '0 7' (planet 7 in galaxy 0) Then you set the values. The following example sets Lave's sea to blue, land to green, and land to sea ratio to 75%.

Code:

{ 
   "0 7" = 
   { 
      "percent_land" = "75";
      "land_color" = "0.5 1.0 0.5";
      "sea_color" =  "0.3 0.7 1.0";
   } 
} 

Then you can override any of the settings listed above, for example to change Zaatxe's (Galaxy 0 Planet 8) inhabitants into blue frogs you'd enter

Code:

    "0 8" =  
   { 
        "inhabitants" = "Blue Frogs";
   } 


You can use any or all of the keys in each of the entries. It's probably best to only use the key's you want to change. So, another example, to change the sky_blur_xxx settings for Zaonce (Galaxy 0 Planet 129) to big, heavily clustered, but pale blurs - you'd enter

Code:

    "0 129" = 
   { 
        "sky_blur_cluster_chance" =  "0.9";
        "sky_blur_alpha" = "0.1";
        "sky_blur_scale" = "32.0";
   }


About the Inhabitants

Concealment

This property was added in Oolite test release 1.83.

An integer that determines how much information about the system is unknown.

Example:

 "concealment" = "300";

The following values are recognised:

  • 0: default, all information visible
  • 100 or more: F7 screen shows no information, economy/government/TL/star colour not visible on chart
  • 200 or more: system name is not shown
  • 300 or more: system vanishes entirely from chart, will not be used in route plotting, cannot be targeted by player (NPCs can still jump to it, though)

Government

An integer between 0 and 7 indicating the government type of the system.

Example:

"government" = "7";

Possible values:

0: Anarchy
1: Feudal
2: Multi-Governmental
3: Dictatorship
4: Communist
5: Confederacy
6: Democracy
7: Corporate State

Economy

An integer between 0 and 7 indicating the economy type of the system.

Example:

"economy" = "5";

Possible values:

0: Rich Industrial
1: Average Industrial
2: Poor Industrial
3: Mainly Industrial
4: Mainly Agricultural
5: Rich Agricultural
6: Average Agricultural
7: Poor Agricultural

Tech Level

An integer between 0 and 14 indicating the sophistication of the planets technology. The tech level displayed on the system data screens in game is one higher than this number (range 1 to 15).

Example:

"techlevel" = "13";

Note: Episodic minor variations in TL (2010)

Further Note: The Famous Planets OXP transmogrifies Sector1/Sori into the Anarchy "Ascension" with a TL of 16! This is virtually no different to Ceesxe's TL 15.

Population

An integer between 0 and 67 indicating the number of inhabitants of a planet in hundreds of millions

Example:

"population" = "23";

See Wildeblood's note on no upper limit here (2025)

Productivity

An integer indicating the productivity of a planet.

Example:

"productivity" = "1000";

Name

The name of the planet.

Example:

"name" = "The planet's name";

Note: See the Pronounceable Planets Project thread on the forum for some ideas!

Inhabitant

The name for one of the inhabitants of the main planet.

Example:

"inhabitant" = "Green Platypus";

Inhabitants

The name of the inhabitants of the main planet.

Example:

"inhabitants" = "Green Platypi";

Description

A short description of the planet.

Example:

"description" = "Really, anything you want to say about the place!";

Note: For more than 1 oxp describing a system see here (2012) - and elsewhere. Note that eg. System Features Rings does this through Javascript. rather than a .plist.

Government Description

This property was added in Oolite test release 1.81.

Overrides the default text used to describe the government.

Example:

 "government_description" = "Dictatorship (Monarchy)";

Economy Description

This property was added in Oolite test release 1.81.

Overrides the default text used to describe the economy.

Example:

 "economy_description" = "Mainly Industrial (Machine Tools)";

Population Description

This property was added in Oolite test release 1.77.

Overrides the default text used to describe the population.

Example:

 "population_description" = "13 Billion";

Random Seed

This property was added in Oolite test release 1.81.

A seed for a random number generator used in Oolite 1.81 to generate system properties impractical to store in this file (e.g. the positions of each star on the background starfield)

For historical reasons, this is a string of 6 integers between 0 and 255, for example:

random_seed = "74 90 72 2 83 183";

System population

These properties are only used in Oolite 1.79 or later.

Populator

The name of the worldscript function which will be used to populate the system

Example:

"populator" = "systemWillPopulate";

Repopulator

The name of the worldscript function which will be used to repopulate the system

Example:

"repopulator" = "systemWillRepopulate";

Properties of the Planet

Most of these properties are ignored if a planet texture is set.

Note that the available planet texture generator properties changed in places between Oolite 1.77 and Oolite 1.80

Air Color

A colour specifier determining the color of the planet's sky, as well as the atmosphere scatter color.

Example:

"air_color" = "0.0..1.0 0.0..1.0 0.0..1.0";

Air Color Mix Ratio

This property was added in Oolite test release 1.89.

The amount of air color that be mixed in the overall atmosphere color. A number from 0.0 to 1.0 (default 0.5).

Example:

"air_color_mix_ratio" = "0.0..1.0";

Atmosphere Rotational Velocity

Sets how fast the atmosphere is rotating. (A random value between 0.0 to 0.03 is the default).

Example:

"atmosphere_rotational_velocity" = "0.1";

Cloud Alpha

This property was added in Oolite test release 1.77.

The transparency level of the cloud layer, relative to the standard transparency. 1.0 is the default. Texture packs which include clouds on the planetary texture may wish to reduce this.

Example:

"cloud_alpha" = "0.2";

Has Atmosphere

This property was added in Oolite test release 1.81.

This boolean property is used for the main planet only. If it is unset or true, the main planet has an atmosphere, as is always the case in 1.80 and before. If it is set to be false, then the planet will not have an atmosphere.

Example:

"has_atmosphere" = 0;

This has no effect on secondary planets - their atmosphere is determined by whether addition uses addPlanet or addMoon.

Atmosphere Density examples: Stranger's FPO Lave in four increasing atmosphere densities: 0.2, 0.5, 0.75 and 1.0. Every other parameter in the planet definition is the same in all pictures.

Air Density

This property was added in Oolite test release 1.91.

A number clamped in range from 0.0 to 1.0 describing the density of the planet's atmosphere. All planets in the core use 0.75 as default.

Example:

"air_density" = "0.0..1.0";

Illumination Color

This property was added in Oolite test release 1.91.

A colour specifier determining the colour of the planet's illumination such as cities light. Illumination is inserted as a grayscale map in the alpha channel of the planet's diffuse texture. You can specify this key even if no illumination map is defined, but it won't have any effect - without an illumination map the dark side of the planet remains dark in all cases.

Example:

"illumination_color" = "0.0..1.0 0.0..1.0 0.0..1.0";

Land Color

Example:

"land_color" = "0.0..1.0 0.0..1.0 0.0..1.0";

Percent Cloud

The percentage of the planet's atmosphere occupied by clouds.

Example:

"percent_cloud" = "0..100";

Note that with a low cloud_alpha setting not all of the clouds defined here may actually be visible

Percent Ice

The percentage of the planet occupied by the polar ice caps. Oolite 1.81 or later.

Example:

"percent_ice" = "0..100";

Percent Land

The percentage of the planet occupied by land.

Example:

"percent_land" = "0..100";

Planet Distance

This property was added in Oolite test release 1.81.

The distance from the centre of the planet to the witchpoint. Only used for the system main planet - secondary planets are positioned separately.

Example:

"planet_distance" = "410000";

The main planet is always positioned on the z-axis.

Planet Distance Multiplier

This property was added in Oolite test release 1.81.

Multiplies the distance from the centre of the main planet to the witchpoint.

Example:

"planet_distance_multiplier" = "1.5";

Planet Name

This property was added in Oolite test release 1.79.

The planet's name. For the main planet, this defaults to being the same as the system name - the property is mainly intended for secondary planets.

Example

 "planet_name" = "Earth";

Polar Land Color

This property was added in Oolite test release 1.81.

Sets the land colour in polar regions.

Example:

"land_color" = "0.0..1.0 0.0..1.0 0.0..1.0";


Polar Sea Color

This property was added in Oolite test release 1.81.

Sets the sea colour in polar regions.

Example:

"sea_color" = "0.0..1.0 0.0..1.0 0.0..1.0";

Radius

An integer between 3000 and 7000 indicating the radius of the main planet. On the F7 screen, this is measured in kilometres. The radius in game is 1/100th of this.

Example:

"radius" = "5500";

Rotational Velocity

A number describing the rotational velocity of the planet in radians per second. Overrides rotation_speed if both are set.

Example:

"rotational_velocity" = 0.0015;

Rotation Speed

A number describing the rotational velocity of the planet in radians per second. Unlike rotational_velocity, this is affected by rotation_speed_factor.

Example:

"rotation_speed" = 0.0015;

Rotation Speed Factor

The rotational speed of all planets whose rotational speed was set by rotation_speed and not by rotational_velocity will be multiplied by this number.

Example:

 "rotation_speed_factor" = 1.0;

(Intended more for the universal section as a "personal taste" option than for individual planets)

Sea Color

Example:

"sea_color" = "0.0..1.0 0.0..1.0 0.0..1.0";

Terminator Threshold Vector

This property was added in Oolite test release 1.89.

This property gives control over the color of the planet's terminator. The way the property works is not entirely straightforward, so see this post on BB for more information.

Example:

"terminator_threshold_vector" = "0.0..1.0 0.0..1.0 0.0..1.0";

By default the terminator vector is "0.105 0.18 0.28" - which results in a reddish orange colour.

Texture

The replacement texture to be used by a system's main planet.

For textures you can use lat-long maps (twice as wide as high) with a special elongation at the poles, or cube maps. Other maps will also be wrapped around planets, but will always give distortions.
Since Oolite 1.74 you can also use cube maps for planets. Cube maps are 6 times higher than wide and will be recognised automatically by Oolite, based on the dimensions. Cube maps are the preferred method, because lat-long give some distortion and have the poles improperly placed in Oolite's implementation. See also Planettool for conversion from lat-long into cube maps.

From Oolite 1.89 onwards, illumination mapping on custom planets is supported. The illumination map goes in the diffuse map's alpha channel. Low alpha values translate to high illumination. This allows for effects like city lights on a planet's dark side.

Example:

"texture" =  "newPlanetTexture.png";
N.B.

The illumination mapping feature is disabled by setting Graphics Detail: Shaders Enabled or lower in the game setting menu. Enabled at Graphics Detail: Extra Detail.

Texture HSB Color

This changes the overall hue of the replacement texture.

Example:

"texture_hsb_color" =  "0.0..1.0 0.0..1.0 0.0..1.0";

Texture NormSpec

This property was added in Oolite test release 1.89.

The external texture that will be used as a normal and specular map for the given planet. Colorspace should be linear, with the normal map in the r,g and b and the specular map in the a channel. The texture can be of either equirectangular or cubemap formats. This feature is available at the Extra Detail setting only. To set:

"texture_normspec" = "planetNormalAndSpecularMap.png";

Properties of the Sky

Ambient Level

Sets how much ambient light (shed by stars and nebulae) illuminates the dark side of objects like planets and ships. Values should typically be between 0.0 and 1.0 (1.0 is the default) but can be higher for a flat lit, cartoon-like effect.

Example:

"ambient_level" = "0.0";

Nebula Count Multiplier

This is used for defining the number of nebulas. Default is 1.0. Number can be greater or less than default and is also randomised a bit.

Example:

"nebula_count_multiplier" = "1.5";

Sky Blur Alpha

Default 0.1

Example:

"sky_blur_alpha" = "0.0 .. 1.0";

Sky Blur Cluster Chance

This is used for creating nebulae (typically 0.80)

Example:

"sky_blur_cluster_chance" = "0.85";

Sky Blur Scale

Default 10. Larger numbers generate bigger nebula, but slow down the game considerable on slower machines.

Example:

"sky_blur_scale" = "0.0 .. 128.0 or more";

Sky N Blurs

This is used for defining the number of nebulas (typical is 80, maximum is 1280). This key is multiplied by a "nebula_count_multiplier" definition in Oolite 1.81 or later.

Example:

"sky_n_blurs" = "800";

Sky N Stars

This is used for defining the number of stars (typical = 600, maximum in 1.76 or earlier is 4800). This key is multiplied by a "star_count_multiplier" definition in Oolite 1.81 or later. In reduced detail mode, this number will be capped to 2400.

Example:

"sky_n_stars" = "1200";

Sky and Nebula RGB Colors

These are rgb values (from 0.0 to 1.0) for the two colours between which the colour of the stars (and nebulaesque blurs) vary, ordered r1 g1 b1 r2 g2 b2 where (r1 g1 b1) defines the first colour and (r2 g2 b2) the second.
(Default values are "0.75 0.8 1.0 1.0 0.85 0.6")

Example:

"sky_rgb_colors" = "0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0 0.0..1.0";

Alternatively, two colour specifiers may be used:

"sky_color_1" = "redColor";
"sky_color_2" =
{
    "hue" = "60";
    "brightness" = "0.8";
}

"nebula_color_1" = "greenColor";
"nebula_color_2" = "blueColor";

Star Count Multiplier

This is used for defining the number of stars. Default is 1.0. Number can be greater or less than default and is also randomised a bit.

Example:

"star_count_multiplier" = "0.5";


Properties of the Station

Market Script

This property was added in Oolite test release 1.81.

A Javascript file used to load a market script for global system price and quantity modifications.

Example:

"market_script" = "myoxp_newsystemmarket.js";

Note: What's the difference between the market script specified in planetinfo.plist and the one called for by trade-goods.plist? (2015)

Station

The type of station orbiting the main planet.

Example:

"station" = "coriolis..dodec..special";

Station Roll

The speed at which the station rotates (as with all rotational velocities this is in radians per second) and affects all rotating stations in a system. For a specific station you can use the key station_roll in shipdata.plist.

Example:

"station_roll" = "0.5";

Station Vector

The direction of the main station from the main planet

Example:

"station_vector" = "-0.717 -0.668 0.201";

Stations Require Docking Clearance

Specifies if a player has to explicit ask docking permission. See also Oolite Docking Clearance

Market (defunct)

The market to be used in this system as the default market. It points to a key in commodities.plist

Example:

"market" = "rockhermit";

Will use the rockhermit market as default for for all stations in the system. When no market is defined a key in commodities.plist is used that matches the role of the main station. Than that is not defined, the default market is used in this system.

In 1.81 and later, this is replaced by market_script

Properties of the Sun

N.B.

The corona effect, modified by the first three properties mentioned below, is disabled by setting Reduced Detail:On in the game setting menu. Enabled by default (Reduced Detail:Off).

Corona Flare

Sets the overall size of the corona in proportion to its sun. (See note above.)

A number from 0.0 (invisibly small) to 1.0 (huge)

Example:

"corona_flare" = "0.075";

Corona Hues

Specifies whether the corona should have visible bands of colours within the corona. (See note above.)

A number from 0.0 (monochromatic) to 1.0 (vivid alternating colours).

Example:

"corona_hues" = "0.6";

Corona Shimmer

Specifies how quickly the corona colours change. (See note above.)

A number from 0.0 (very slow) to 1.0 (very fast).

Example:

"corona_shimmer" = "0.4";

Sun Color

Sets the colour of a system's sun.

Can be any colour specifier or named colour. The specified colour is blended with 50% white so it will never be a saturated colour. Dark colours will be brightened by this blending.

Example:

"sun_color" = "blueColor";

Sun Distance

This property was added in Oolite test release 1.81.

Sets the distance between the sun and the main planet in metres.

Example:

"sun_distance" = 924122;

Ignored if sun_distance_modifier is set.

Sun Distance Multiplier

This property was added in Oolite test release 1.81.

Multiplies the distance between the sun and the main planet by this factor.

Example:

"sun_distance_multiplier" = 2;

Ignored if sun_distance_modifier is set.

Sun Distance Modifier

Sets the approximate distance between a system sun and its main planet. The standard distance is 20 planetary radii. Setting it much lower (10, or even less) will cause delays when generating systems, as Oolite compensates for possible collisions between the sun and other system objects.

Example:

"sun_distance_modifier" = "15.0";

In Oolite 1.81 or later, sun_distance_multiplier is more useful.

Sun Gone Nova

Sets a nova sun in the system.

Example:

"sun_gone_nova" = "YES";

Sun Name

Stores the name of a system's sun. This is only implemented in Oolite from version 1.79 onwards, though was used by OXPs before then.

Example:

"sun_name" = "Alpha Centauri";

Sun Radius

Sets the radius of a system's sun. A number between 1000 and 1000000.

Example:

"sun_radius" = "100000";

Sun Vector

The direction of the sun from the main planet

Example:

"sun_vector" = "-0.717 -0.668 0.201";

Additional Planets

Finally you can also define your own custom planets and moons:

"LavesPurpleMoon" =
{
...
}

To add them to the system, use JS methods system.addPlanet and system.addMoon. For the example above, the planetInfoKey will be "LavesPurpleMoon".

Position

Position of the planet in space. The first parameter is 3-character code of the coordinate system, other three is x, y and z components of position vector.

"position" = "pwm 0 -50000 0";

You can omit the coordinate system parameter, then the absolute coordinate system will be used:

"position" = "0 -50000 0";


See Oolite coordinate systems for more info about it.

Orientation

Orientation of the planet in space (seems not to be working correctly).

Example:

"orientation" = "0.0 1.0 0.0 0.0";

Other keys

You can use other keys from the Properties of the Planet section for your planets and moons.

Here are some of the keys you may want to use:

  • "radius": Radius of the planet in km. e.g. a value of 500 is drawn with a radius of 5000 meters but in player dialogues this value is presented as 500 km.
  • "rotational_velocity": Rotation of the planet in rotations per second.
  • "texture": The name of the texture file that is used to wrap around the surface.
  • "seed": Seed value used to create the planet's surface features. If no seed is defined it uses the same seed as the main planet, and will create a copy of it.
Click for more detail (eg the Ico station)

Experimentation

The effect to the right was created by Cody. "OXPs were a Griff Icosahedron station, a Deep Horizon Nav Buoy, a core planet (I think - if not, Povray Planets), a mix of KeeperSky & Zygo Cinematic Sky & Nebulas, plus star_count_multiplier = 56; sun_distance_multiplier = 5; and ambient_level = 0.15;

For a similar "lights down" look, you'd have to tweak oolite-default-shader.fragment thusly:

  1. define MULTIPLIER_LIGHTSRCRADIANCE 2.0
  2. define MULITPLIER_EXPOSURE 1.0
  • For another example see cbr's modifed "Tionisla is Mars" texture here (2026)

Links

  • Wildeblood's World Builder allows you to experiment with these settings in-game.


Assorted Tweaks